搜索引擎优化论文(基于前面所有的节点代表网络的搜索框架跟NASNet等方法一样)
优采云 发布时间: 2022-02-02 14:03搜索引擎优化论文(基于前面所有的节点代表网络的搜索框架跟NASNet等方法一样)
论文: DARTS:可微架构搜索
介绍
目前流行的神经网络搜索方法大多选择离散的候选网络,而 DARTS 搜索一个连续的搜索空间,并根据验证集的性能使用梯度下降来优化网络结构。论文的主要贡献如下:
可微架构搜索搜索空间
DARTS的整体搜索框架与NASNet等方法相同,都是通过搜索计算单元(cell)作为网络的基本结构,然后堆叠成卷积网络或循环网络。计算单元是一个有向无环图,收录有序的节点序列,每个节点代表网络的中间信息(如卷积网络的特征图),边代表操作对。每个计算单元有两个输入和一个输出。对于卷积单元,输入是计算单元前两层的输出。对于循环网络,输入是当前步骤的输入和上一步的状态,两者的输出都结合了中间节点的所有输出。
这包括一个特殊的零操作来指定两个节点之间没有连接。DARTS 将计算单元的学习转化为边缘操作的学习。整体搜索框架与 NASNet 等方法相同。本文主要关注 DARTS 如何进行基于梯度的搜索。
持续松弛和优化
让 是一组候选操作,每个代表要应用的功能。为了使搜索空间连续,将原创的离散操作选择转换为所有操作的 softmax 加权输出:
节点之间操作的混合权重表示为一个维度向量,整个架构搜索被简化为学习连续值,如图1所示。搜索结束时,每个节点选择概率最高的操作而不是构建最终网络。
简化后,DARTS 的目标是同时学习网络结构和所有操作权重。与以前的方法相比,DARTS 能够基于验证集损失使用梯度下降进行结构优化。损失定义为训练和验证集损失。损失由网络结构和网络权重决定。搜索的最终目标是找到最优的,以最小化验证集损失,通过最小化训练损失获得网络权重。这意味着DARTS是一个双层优化问题,使用验证集优化网络结构,使用训练集优化网络权重,对于上层变量,对于下层变量:
近似架构梯度
公式3中计算网络结构梯度的开销很大,主要是由于公式4的内层优化,即对结构的每一次修改都需要重新训练以获得网络的最优权重。为了简化这个操作,本文提出了一种改进,它提出了一个简单的近似值:
表示当前网络权重,即内层优化单次更新的学习率。总体思路是在网络结构改变后通过单步训练优化来逼近,而不是公式3。完成训练直到收敛。实际上,当权重是内层优化的局部最优解( )时,公式 6 等价于公式 5。
迭代过程,如算法1,交替更新网络结构和网络权重,每次更新只使用少量数据。根据链式法则,方程 6 可以展开为:
,上式第二项的计算是非常昂贵的。论文使用有限差分来近似计算,这是论文中非常关键的一步。是一个小标量,我们得到:
计算最终差值需要两次正向+反向计算,计算复杂度由 .
届时,公式7的二阶导数将消失,梯度确定,即认为当前权重始终最优,通过修改网络结构直接优化验证集的损失. 可以加快搜索过程,但也可能带来较差的性能。当时论文称其为一阶近似,当时论文称其为二阶近似。
派生离散架构
在构建最终的网络结构时,每个节点选择来自不同节点的响应最强的top-k非零操作,计算响应强度。为了使搜索的网络性能更好,设置了卷积单元,设置了循环单元。过滤归零操作主要是让每个节点都有足够的输入,以便与当前的 SOTA 模型进行公平的比较。
实验和结果
搜索是耗时的,其中 run 表示多次搜索以获得最佳结果。
搜索到的结构。
CIFAR-10 的性能比较。
PTB 上的性能比较。
迁移到 ImageNet 的性能比较。
结论
DARTS 是一种非常经典的 NAS 方法。它的出现打破了以往的离散网络搜索模式,实现了端到端的网络搜索。由于 DARTS 基于梯度更新网络,因此更新方向更准确,搜索时间也比之前的方法有很大提升。CIFAR-10 的搜索只需要 4 个 GPU 天。
如果本文对你有帮助,请点赞或观看~