Lstm纸

论文:通过参数共享进行有效的神经结构搜索

?目前,神经网络结构搜索(NAS)在设计图像分类的模型结构方面取得了很大的成就,但它非常耗时,主要花在训练搜索到的子模型上。本文的主要工作是提出高效神经架构搜索(ENAS),强制所有子模型享受权重* * *以避免从头训练,从而达到提高效率的目的。虽然不同的模型使用不同的权重,但是从迁移学习和多任务学习的研究结果来看,将当前任务的模型A学习到的参数应用到其他任务的模型B是可行的。从实验来看,享受参数不仅可行,还能带来强劲的性能。实验只用了1080Ti的单页,比NAS快1000倍。

?NAS的搜索结果可以看作是大图中的一个子图,搜索空间可以用一个单向无环图(DAG)来表示。每个搜索的结构可以被视为图2中DAG的子网。ENAS定义的DAG是所有子网的叠加,其中每个节点对于每种计算类型都有自己的参数,这些参数仅在特定计算方法被激活时使用。所以ENAS的设计是让子网享受参数* * *,下面会详细介绍。

?为了设计递归单元,采用了节点的DAG,其中节点表示计算类型,边表示信息流方向,ENAS的控制者也是RNN,主要定义为:1)激活的边2)每个节点的计算类型。在NAS(Zoph 2017)中,循环单元的搜索空间在具有预定义结构的拓扑结构(二叉树)上,只学习每个节点的计算类型,而NAS同时学习拓扑结构和计算类型,更加灵活。

?为了创建一个循环单元,控制器RNN首先对一个块的结果进行采样,获取当前单元的信息(如单词嵌入),并输出它用于前一时间步的隐藏层。具体步骤如下:

?注意每对节点()都有独立的参数,使用哪个参数是根据选择的索引决定的。因此,ENAS的所有环路单元可以共享相同的参数集。本文的搜索空间包含指数数量的配置。假设有n个节点和四个激活函数,* *有三种配置。

?ENAS的控制器是具有100个隐单元的LSTM,选择决策是通过softmax分类器以自回归方式做出的。上一步的输出作为下一步的输入嵌入,控制器的第一步接受空的嵌入输入。学习参数主要包括控制器LSTM参数和子网* * *分担权值。ENAS的训练分为两个重叠的阶段。第一阶段是在完整的训练集上学习* * *共享权重,第二阶段是训练控制器LSTM的参数。

?控制器的策略是固定的,然后进行随机梯度下降,使交叉熵损失函数的期望值最小。对于小批量模型的交叉熵损失,模型来源于抽样。

?梯度的计算公式为1,该公式来自采样并更新所有模型的梯度。公式1是对梯度的无偏估计,但是方差很大(和NAS一样,采样模型的表现也不一样),论文发现使用时训练效果还不错。

?修正并更新了策略参数,目标是最大化预期回报。使用Adam优化器,使用Williams加强法进行梯度计算,并加入指数移动平均以减小方差。计算是在一个独立的验证集上进行的,该验证集与Zoph的NAS基本相同。

?训练有素的ENAS进行新模式建设。首先,从训练策略中抽取几个新的结构。对于每个采样的模型,计算验证集的小批的准确度,并且从零开始重新训练具有最高准确度的模型。所有的样本网络都可以从零开始训练,但本文的方法具有相近的精度和更大的经济效益。

?为了创建卷积网络,控制器的每个决策块做出两个决策,这构成了卷积网络的一层:

?进行二次选择以生成该层的网络,* * *种网络。实验中,L取12。

?NASNet提出设计小模块,然后堆叠成完整的网络,主要设计对流单元和还原单元。

?用ENAS生成一个卷积单元,构造一个节点B的DAG来表示单元内的计算,其中节点1和节点2表示单元输入,是完整网络中前两个单元的输出,预测其余节点的两个选择:1)选择两个前面的节点作为当前节点输入2)为两个输入选择计算类型,* * *五个运算符:恒等式 核大小为3× 3和5× 5的可分离卷积,以及核大小为3× 3的平均池和最大池,然后将运算符结果相加。 对于,搜索过程如下:

?对于归约单元,上述搜索空间生成可以用同样的方法:1)采样a计算如图5所示;图2)将所有计算的步距更改为2。这样,归约单元可以将输入归约为1/2,控制器***预测块。

?最后,计算搜索空间的复杂度。对于节点I,troller先选择两个节点,然后选择五个算子中的两个,分别是* * *坑单元格。因为这两个单元是独立的,所以搜索空间的大小最终取决于网络的种类。

?对节点的计算做了一些修改,例如,添加了高速公路连接到,其中是元素乘法。搜索结果如图6所示,有意思:1)所有激活方式都是tanh或Relu2)结构可能是局部最优的,节点激活函数的随机替换会造成性能显著下降;3)搜索输出是六个节点的平均值,类似于混合上下文(MoC)。

?单1080Ti已培训10小时。Penn Treebank上的结果显示在表1中。PPL越低,性能越好。可以看出,ENAS的复杂度低,参数数量很少。

?表2中的第一块是最佳分类网络DenseNet的结构,第二块是ENAS设计整个卷积网络的结果(我感觉这里应该没有微搜索空间),第三块是设计单位的结果。

?全网搜索的最优结构如图7所示,错误率为4.23%,优于NAS。单卡搜索大概需要7个小时,比NAS快50000倍。

?单元搜索的结构如图8所示。单卡搜索11.5小时,错误率3.54%。通过剪切增强,它比NASNet更好。发现ENAS搜索的结构是局部最优的,修改会降低性能,而ENAS不采样多个网络进行训练,给NAS带来很大的性能提升。

?NAS是自动设计网络结构的重要方法,但它需要巨大的资源,这使得它无法被广泛应用。而本文提出的高效神经架构搜索(ENAS)享有子网的参数,比NAS快1000倍以上,单卡搜索耗时不到半天,性能不降反升,非常值得参考。