Skip to the content.

Progressive Differentiable Architecture Search: Bridging the Depth Gap between Search and Evaluation

Contact me

本系列博客主页及相关见此处


ABSTRACT

可微搜索方法在验证搜索到的结构或者迁移到其他数据集上的时候,准确率比较低。可能的原因是结构在搜索和验证的深度不同。我们提出了一个高效的算法让搜索结构的深度随训练增长。这种方法会出现两个问题:计算量大,搜索不稳定,我们分别使用搜索空间近似和正则来解决。

1. Introduction

DARTS在浅层结构上搜索,在深层结构上验证,导致一个问题,搜索到的运算适合浅层结构,在深层上不见得好。

我们提出了Progressive DARTS (PDARTS),把搜索过程分为几个阶段,不断增加深度。

可以在CIFAR10上用0.3 GPU天搜索完成。【略】

3. Method

3.1. Preliminary: DARTS

【可以参考DARTS

3.2. Progressively Increasing the Searching Depth

在DARTS中,网络结构用8个cell搜索,验证使用20个cell。但是由于浅层网络和深层网络的行为不同,搜索到的可能不是最好的,我们称之为深度缺口(depth gap)。DARTS的普通cell中,网络倾向于保留较浅的连接,这是因为浅层网络通常有更快的梯度,但是深层的网络性能更好。

有两个困难:首先,模块的数量随着深度指数增长,消耗时间和内存。我们提出了搜索空间近似,不断地减少候选运算的数量。其次,搜索较深的结构时,可微搜索倾向于跳跃连接,因为有更快的下降梯度。我们提出了搜索空间正则化,通过运算级别的dropout防止模型过拟合于跳跃连接,增加稳定性。

3.2.1 Search Space Approximation

搜索空间近似如图2,把搜索框架分成多个阶段,每个阶段$\mathfrak{S}_{k}$,网络包括$L_k$个cell,运算的空间是$O_k$,即$\vert o_{(i,j)}^k = O_k$

在初始阶段,网络比较浅,但是运算空间比较大,在每个阶段$\mathfrak{S}_{k-1}$,学习网络参数$\alpha_{k-1}$,和候选运算的分数。增加网络深度,新的运算空间变小了$O_{i,j}^k < O_{i,j}^{k-1}$,或者相等。然后根据前面得到的运算分数,删除掉最不重要的运算。

3.2.2 Search Space Regularization

在每一个阶段$\mathfrak{S}_{k}$,重新初始化训练网络,(试过用上一阶段的权重,性能差)。由于浅层网络更倾向于选择跳跃连接,限制了可以学习的参数数量,导致性能比较差。

我们通过正则化解决这个问题,首先,插入运算级别的dropout,可以部分剪切掉跳跃连接,帮助网络探索其他的运算。为了防止网络直接删除掉跳跃连接运算,我们逐渐减弱dropout,这样最后还是网络自己来选择。

我们发现跳远连接对于验证阶段的准确率有重要的影响,多次实验发现,最终阶段跳跃连接的数量在2到4个,而识别的性能也于这个数量高度相关,因此,控制跳跃连接的数量为常数$M$。

4. Experiments

5. Conclusions

不断增大深度的DARTS。【略】