内容简介:本文转载自:专知【导读】我们中的很多人知道ResNet的成功,当我们使用ResNet作为预训练网络时,有没有好奇过,怎么会有人能够想出这样的网络呢?这就是神经架构搜索做的事。
本文转载自:专知
【导读】我们中的很多人知道ResNet的成功,当我们使用ResNet作为预训练网络时,有没有好奇过,怎么会有人能够想出这样的网络呢?这就是神经架构搜索做的事。
我们只需要将数据集输入神经架构搜索系统,它就能针对该数据集找到最适合的神经架构。神经架构搜索可以看出是一个AutoML的一个子领域,并与 超参数 优化有显著的替身。为了理解神经架构搜索,我们需要仔细思考它在做什么。它是在所有可能的结构中,以一定的搜索策略,找到最大化性能的结果。下图是对神经架构搜索的一个总结。
它有三个主要组成部分:搜索空间、搜索策略与性能评估。
搜索空间定义了神经架构搜索可能给出的模型。它可以是链式的结构,第n-1层的输出作为第n层的输入,或者也可以是现代化的复杂架构,包括skip connection等。
很多时候,人们都想手动设计外层的架构,在这种情况下,外层的架构是固定的,神经架构搜索只搜索一个网络单元的结构。这种类型的搜索被称为micro-search 或者单元搜素。
在许多神经架构搜索的方法中,细节与整体架构同时层次化地搜索。
第一层确定了一系列主要的操作,第二层确定了这些操作的链接方法,第三层确定了第二层中的一些模块是如何连接的,以此类推。
强化学习
强化学习通过一些策略来执行一些操作,然后智能体更加执行操作后得到的奖励更新策略的参数。在神经架构搜索的情况下,智能体产出一些模型架构,称为子网络,然后然后训练模型,并把在数据集上的性能表现作为奖励,以此完成对智能体的迭代更新。
经典的RNN神经网络作为一个控制器或者智能体,它生成一个字符串,然后从该字符串中构建模型。
例如,上图中RNN的输出构建了一个滤波器,包括滤波器的大学与补偿。输出锚点用于预测跳跃链接。在N层之后,锚点会包含N-1个基于内容的sigmiod函数,用于预测之前的层时候需要被连接。
渐进式神经架构搜索(PNAS)
PNAS是一种网络单元搜索方法,他们从网络块中构建单元然后使用一种预定义的方法逐步增加单元。
每个模型块有几个预定义的操作构成。
原始论文中使用了如上图所示的几个操作,但是这些操作是可以被扩展的。
上图是一个完整的例子,即使只是为了确定这个单元内的结构是否是最好的,也需要10^14 次验证。
因此,为了减少复杂度,第一个单元只有一个模型块。这很简单,因为前面提到过,我们只有256个模型块可以选择。然后前K个表现最好的单元被选中,然后开始构建第二个模型块,直到构建完第5个模型块。
但是对于一个合理的K,需要测试太多两个代码块的候选了。一个很简易的解决方案是使用surrogate模型。
举例而言,我们可以构建256个单个单元的模型,然后测试它们的性能。然后用这些数据训练surrogate模型。然后用这些模型来预测2个单元的性能,而并不实际训练这个模型。当然,surrogate模型需要对不同大小的输入数据鲁棒。在这之后,前K个两个单元的模型被选定了,当两个单元的模型用真实数据真正训练好之后,这个surrogate模型被微调,然后扩展到第三个单元。
可微架构搜索
神经架构的搜索空间是离散的,每一个神经架构与另外一个至少神经架构至少有一个层是不一样的。这种方法应用了一个连续的松弛方法,可以用梯度下降法来优化这个离散域的搜索。
单元可以看成是一个有向无环图,每个节点X可以看成是一个隐式的表示(如卷积神经网络中的特征图),每个有向边可以看成是一些操作(如卷积,最大池化等),这些操作可以将节点i储存的隐式表示转移到节点j储存的隐式表示。
每个节点的输出可以由左边的公式求出。
在连续松弛下,与连接两个节点的单个操作不同,使用每个操作的凸组合来刻画两个节点之间的多种可能的边,每个边对应了一个特定的操作。每条边上也有一个权重alpha
现在,O(i,j)是节点i,j 之间的边o(i,j)的线性组合, o(.)ϵ S, S是所有可能的操作的集合。
输出O(i,j) 由上边的公式得到。
w∗ = argmin L_train(w, α∗ ).
使用L_train和L_val作为训练与验证的误差,两个误差都由模型的参数alpha与网络的参数w决定。架构搜索的目标是找到最好的alpha,最小化验证误差L_val,而权值w则是最小化训练误差得到的。这是因为alpha是高层的变量而w是低层的变量。
α * = argmin L_va l(w ∗ (α), α)
s.t. w ∗ (α) = argmin L_train(w, α)
随着训练的进行,一些边的权值会比另一些高很多,为了再将这个连续的模型变为离散的,每两个节点之间只保留最大的边。
当所有的节点都确定之后,就可以构建更大的网络了。
原文链接:
https://medium.com/@ashiqbuet14/neural-architecture-search-nas-the-future-of-deep-learning-c99356351136
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 人工智能深度学习Caffe框架介绍,优秀的深度学习架构
- 微服务架构体系的深度治理
- 微服务架构体系的深度治理
- 应对深度学习人才缺口,百度黄埔学院发起深度学习架构师培养计划
- 7大类深度CNN架构创新综述
- Amazon Aurora深度探索--第一篇--整体架构
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。