近期,来自微软和中国科学技术大学的刘铁岩等人发表论文,介绍了一种新型自动神经架构设计方法NAO,该方法由三个部分组成:编码器、预测器和解码器。实验证明,该方法所发现的架构在CIFAR-10上的图像分类任务和PTB上的语言建模任务中都表现强劲,在计算资源明显减少的情况下优于或持平于之前的架构搜索最佳方法。
从几十年前 [13, 22] 到现在 [48, 49, 28, 39, 8],无人干预的神经网络架构自动设计一直是机器学习社区的兴趣所在。关于自动架构设计的最新算法通常分为两类:基于强化学习(RL)的方法 [48, 49, 37, 3] 和基于进化算法(EA)的方法 [42, 35, 39, 28, 38]。在基于 RL 的方法中,对架构组件的选择被看作是一个动作。一系列动作定义了神经网络的架构,其开发集准确率被用作奖励。在基于 EA 的方法中,搜索是通过架构组件的变异和再组合来进行的,性能更优的架构会被筛选出来继续进化。
可以很容易观察到,基于 RL 和 EA 的方法本质上都是在离散的架构空间中执行搜索。因为神经网络架构的选择通常都是离散的,例如 CNN 中的滤波器大小还有 RNN 单元中的连接拓扑(connection topology)。然而,在离散空间中直接搜索最优架构是很低效的,因为随着选择的增加,搜索空间会呈指数增长。本研究提出一种优化网络架构的新方法,将架构映射到一个连续的向量空间(即网络嵌入),利用基于梯度的方法在该连续空间进行优化。一方面,与自然语言的分布式表示类似,架构的连续表示在表示拓扑信息时更加紧凑和有效; 另一方面,由于更加平滑,在连续空间中进行优化比在离散空间内直接搜索容易得多。
研究者将这种基于优化的方法称为神经架构优化(NAO),如图 1 所示。NAO 的核心是一个编码器模型,负责将神经网络架构映射到一个连续表示(图 1 左侧蓝色箭头)。在连续表示上建立一个回归模型来逼近架构的最终性能(如开发集上的分类准确率,图 1 中间黄色部分)。这里值得注意的是,回归模型类似于之前研究中的性能预测器 [4, 27, 11]。新方法与之的区别在于如何利用性能预测器:之前的研究 [27] 使用性能预测器作为启发来选择已生成的架构,以加速搜索过程,而新方法直接优化模块,并通过梯度下降获得更好网络的连续表示(图 1 中间底部黑色箭头)。然后利用优化的表示来产生预测性能更好的新神经网络架构。为了实现这一点,NAO 的另一个关键模块被设计成解码器,从连续表示中恢复离散架构(图 1 右侧红框箭头)。解码器是配备了注意力机制的LSTM模型,可以实现精准恢复。这三个组件(即编码器、性能预测器和解码器)在多任务设置中接受联合训练,这有利于连续表示:恢复架构的解码器目标能进一步改善架构嵌入的质量,更有效地预测性能。
图 1:NAO 的总体框架。原始架构 x 通过编码器网络映射到连续表示 e_x。然后通过最大化性能预测器 f 的输出将 e_x 优化为 ex',然后使用解码器网络将 ex'转换为新架构 x'。
研究者进行了大量实验来验证 NAO 在图像分类和语言建模任务上的有效性。使用之前研究 [48, 49, 37, 27] 常用的架构空间,通过 NAO 找到的架构在 CIFAR-10 上达到了 2.07% 的测试集误差率(使用了 cutout正则化[12])。此外,在 PTB 数据集上,该架构实现了 55.9 的困惑度,也超过了神经架构搜索方面的之前最优方法。此外,研究者还展示了:使用最近 [37] 提出的 ENAS 中的权重共享机制来减少子模型参数空间中的较大复杂度,该方法可以提高发现强大的对流和循环架构的效率,例如,在 1 个 GPU 上花费不到 10 小时。研究者将很快发布代码和模型。
论文:Neural Architecture Optimization
论文链接:https://arxiv.org/abs/1808.07233
摘要:自动神经架构设计非常有助于发现强大的神经网络结构。现有的方法,无论是基于强化学习(RL)还是进化算法(EA),都是在离散空间中进行架构搜索,效率非常低。本文提出了一种基于连续优化的自动神经架构设计方法。这种新方法被称为神经架构优化(NAO)。该方法有三个关键部分:(1)编码器,将神经网络架构嵌入/映射到连续空间;(2)预测器,将网络的连续表示作为输入,并预测其准确率;(3)解码器,将网络的连续表示映射回其架构。性能预测器和编码器使我们能够在连续空间中执行基于梯度的优化,以找到潜在的准确率更高的新架构嵌入。然后将这个更优的嵌入使用解码器解码到网络。实验表明,该方法所发现的架构在 CIFAR-10 上的图像分类任务和 PTB 上的语言建模任务中都表现强劲,在计算资源明显减少的情况下都优于或持平于之前的架构搜索最佳方法。其中 CIFAR-10 图像分类任务的测试集误差率为 2.07%,PTB 语言建模任务的测试集困惑度为 55.9。在两个任务中发现的最优架构可被成功迁移到其他任务,如 CIFAR-100 和 WikiText-2。此外,结合最近提出的权重共享机制,我们在计算资源都很有限的情况下(在一个 GPU 上 10 小时)在 CIFAR-10 和 PTB 上发现了功能强大的架构,前一个任务上的最优模型误差率为 3.53%,后一个任务上的困惑度为 56.3。
表 1:CIFAR-10 数据集上不同 CNN 模型的表现。
B 是单元内的节点数。N 是发现的正常单元(normal cell)被展开形成最终 CNN 架构的次数。F 表示滤波器大小。#op 是对单元中一个分支的不同操作数,是自动架构设计算法的架构空间尺度指标。M 是经过训练以获得所需性能的网络架构总数。/ 表示该标准对特定算法无意义。NAONet-WS 表示 NAO 发现的架构和权重共享方法。
表 2:CIFAR-100 数据集上不同 CNN 模型的表现。NAONet 代表 NAO 在 CIFAR-10 上发现的最优架构。
表 3:PTB 数据集上不同模型和技术的表现。与 CIFAR-10 实验类似,NAO-WS 代表具备权重共享机制的 NAO。
表 4:WT2 数据集上不同模型和技术的表现。NAONet 代表 NAO 在 PTB 上发现的最优架构。
相关数据
Attention mechanism
我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。
来源:机器之心
Neural Network
(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。
来源:机器之心
Gradient Descent
梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。
来源:Vapnik V. N. (2000). The Nature of Statistical Learning Theory. Information Science and Statistics. Springer-Verlag. Wikipedia
Long-Short Term Memory
长短期记忆(Long Short-Term Memory) 是具有长期记忆能力的一种时间递归神经网络(Recurrent Neural Network)。 其网络结构含有一个或多个具有可遗忘和记忆功能的单元组成。它在1997年被提出用于解决传统RNN(Recurrent Neural Network) 的随时间反向传播中权重消失的问题(vanishing gradient problem over backpropagation-through-time),重要组成部分包括Forget Gate, Input Gate, 和 Output Gate, 分别负责决定当前输入是否被采纳,是否被长期记忆以及决定在记忆中的输入是否在当前被输出。Gated Recurrent Unit 是 LSTM 众多版本中典型的一个。因为它具有记忆性的功能,LSTM经常被用在具有时间序列特性的数据和场景中。
Machine Learning
机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。
来源:Mitchell, T. (1997). Machine Learning. McGraw Hill.
Mapping
映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。
来源: Wikipedia
Regularization
当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。
来源:李航著 统计学习方法 清华大学出版社
Reinforcement learning
强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。
来源:机器之心
Weight
线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。
来源:Google AI Glossary
Accuracy
分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数
机器之心编辑
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
多任务下的数据结构与算法
周伟明 / 华中科技 / 2006-4 / 58.00元
本书和传统同类书籍的区别是除了介绍基本的数据结构容器如栈、队列、链表、树、二叉树、红黑树、AVL树和图之外,引进了多任务;还介绍了将任意数据结构容器变成支持多任务的方法;另外,还增加了复合数据结构和动态数据结构等新内容的介绍。在复合数据结构中不仅介绍了哈希链表、哈希红黑树、哈希AVL树等容器,还介绍了复合数据结构的通用设计方法;在动态数据结构中主要介绍了动态环形队列、动态等尺寸内存管理算法。在内存......一起来看看 《多任务下的数据结构与算法》 这本书的介绍吧!