华为诺亚方舟+同济大学
https://github.com/chenxin061/pdarts
摘要:
由于NAS受限于memory和计算消耗,一般都会在proxy集进行较小的initial channel及layer depth搜索,然后把搜好的模型再扩充较大的channel和depth放到target集上重训重测,这样通常在目标数据集上的测试准确率较低。这是由于网络搜索和网络评估中的架构深度之间存在巨大差距。本文提出的方法允许网络结构的深度在搜索过程中不断增长,但是这会带来两个问题,较高的计算负担和较差的搜索稳定性,本文以搜索空间估近似和正则化来解决。大大缩短了搜索时间:单GPU大约7个小时。
介绍:
DARTS受限于GPU显存,在较浅的网络中进行搜索但是测试是以较深的网络进行,这会带来depth gap,这意味着在搜索阶段倾向于寻找在浅层结构中表现良好的那些操作,但评估阶段实际上更倾向适合深层架构的其他操作。这种差距阻碍了这些方法应用于更复杂的视觉识别任务。
DARTS和P-DARTS的区别DARTS搜索出来的结构包含8个单元(50 epochs),在ImageNet上训练测试时将网络加深到20个单元。
在本文中,提出Progressive DARTS,将搜索过程分成多个阶段,在每个阶段结束时逐渐增加网络深度,但是搜索较深的网络结构带来较高的计算负担,因此提出搜索空间近似,随着网络深度的提高,根据之前搜索过程的得分来减少候选操作的数量。另一个问题,搜索稳定性也会受到影响,在深层体系结构中进行搜索,其中算法可能会严重偏向skip connection,因为它通常会导致搜索优化过程中最快收敛速度,但实际上,更好的选择通常在于可学习的操作比如卷积,因为实际中,过多的skip-connection(无可学习参数)会使得表征能力下降。为了避免这个问题,本文提出搜索空间正则化,引入操作层面的Dropout来抑制搜索过程中skip-connection的强度,同时对评估阶段的skip-connection的表达进行控制。
在CIFAR-10上进行搜索,在CIFAR-10和ImageNet上进行评估,在CIFAR-10上,测试错误率为2.50%,参数量为3.4M,迁移到ImageNet上,top-1/5 错误率为24.4%/7.4%。搜索空间近似将帮助大大缩短搜索时间(0.3 GPU-days),搜索空间正则化使得P-DARTS更容易应用于另外的proxy数据集,在CIFAR-100上,测试错误率15.92%,3.6M参数。
Progressively Increasing the Searching Depth
在搜索过程中逐渐增加网络深度,这样搜索结束时网络深度将与测试网络的深度相当,本文用渐进式方式,而不是直接将深度增加到目标级别,因为浅层网络中的搜索将有助于缩减搜索空间(减少候选操作),从而减轻深度网络中搜索的风险。
P-DARTS这里仅显示一个中间阶段,搜索网络的深度由5增加到11,再增加到17,候选操作集合的大小由5降到3,再降到2,上一阶段得分最低的操作被舍弃。
搜索空间近似:
在每个搜索阶段,搜索网络包含个单元(cell),搜索空间为,有,在初始阶段,操作的搜索空间很大(),在每个搜索阶段()完成后,结构参数被学习并通过它计算每个连接上候选操作的得分。通过堆叠更多的单元(cell)来增加网络深度,因此(),同时将搜索空间近似,意即新的候选操作集合比上一阶段的候选操作集合更小(),搜索空间的近似就是丢弃一部分不重要的操作(在前一阶段权重较低的那些操作)。在最后的搜索结束后,根据学到的结构参数决定最后的单元拓扑,仿照DARTS,为每个中间节点保留两个权重最高的操作。
搜索空间正则:
在每一个阶段的开始,从头训练调整后的结构,意即网络的权重是初始化的,因为有一些候选操作是要被丢弃的。搜索空间正则包括:第一部分,在每个skip-connect之后增加操作层面的Dropout,以此来部分切除直连路径,使得算法去寻找其他的操作。但是,如果不断阻塞skip-connect路径,算法会通过为它们分配低权重来删除它们,这对最终性能有害,为了解决这个问题,在每个阶段的训练过程中逐渐降低Dropout的比例,这样直联路径会在刚训练初始阶段被阻塞,但是会在其他操作的参数学习好之后被“公平对待”,让算法自行选择。
除了使用Dropout,本文还观察到skip-connect作为一种典型操作,对于测试阶段的精度影响较大。在CIFAR-10上设置三个阶段(三个阶段均设置同样的搜索操作),但是发现在最后搜索阶段结束后,在正常单元中保留的skip-connect操作个数在2到4之间。本文提出结构精细化(architecture refinement),简单地来控制最后搜索阶段之后保留的skip-connection操作数量是一个定值M=2,这是通过迭代过程完成的,该过程从使用DARTS描述的标准算法构建单元拓扑开始,如果skip-connection的个数不是M,则在单元拓扑中搜索M个有最大结构权值的skip-connection操作,并将其余的skip-connection的权重置零,以调整之后的结构参数来重新构建单元。
第二种正则化技术必须应用于第一种正规化技术之上,否则,在没有操作级别的Dropout的情况下,搜索过程会产生低质量的体系结构权重,基于此我们无法构建强大的体系结构,即使有固定数量的skip-connection。
实验结果:
实验结果
网友评论