摘要:
本文目的是给NAS过程加速(提高efficiency)。目前许多使用代理近似的方法(如search较少的cell,在小数据集上search,在大数据集上eval,search/train较少的epoch)在保持候选网络的精度排序上表现得不尽相同。有些代理方法是确实能够真实反映候选网络的性能好坏的。本文系统详细地分析一些广泛使用的缩放因子,并且提出一个层级代理策略(hierarchical proxy strategy)。该策略将计算资源倾斜在可能有更高精度的候选网络上,在早期就去掉那些不具有竞争力的候选网络,以此达到加速的目的。(8 vs. 1350 GPU Days)。
方法介绍:
常用的缩放因子是:网络的通道数(c),输入图片的分辨率(r),训练的epochs(e),在整个训练集中的采样比例(s),这些缩放因子都是为了加速NAS的过程,有的并不能保持候选网络的性能排序,但是有的表现优异,如图:
代理方法的效果通过探究几个缩放因子,两个主要的观察:1、当迭代次数相同时,使用更多的训练样本和更少的训练epochs,比使用更多的训练epoch和更少的训练样本更能够保持候选网络的性能排序。2、降低数据集的分辨率有时候是有用的,但是减小网络的通道数比降低分辨率更有效。因此本文构造的代理方法是降低通道数,降低分辨率,但是使用所有的训练样本。进一步,为基于遗传算法的NAS方法构造层级代理策略,目的是在搜索的早期拒绝那些不具有竞争力的候选网络,以此来进行加速。
缩放因子的分级,代表原始设置,相比于,是前者的,意即速度的倍。
缩放因子的分级采用斯皮尔曼系数来衡量缩放设置(reduction settings)的好坏,意即衡量原始设置和缩放设置之间网络模型的性能排序的相关性。假设用于测试的model zoo有K个,则:
其中代表网络i在原始设置和缩放之后的设置下的性能排序的差异。
斯皮尔曼系数越高,表明该缩放设置越好,即原始设置与缩放设置的网络排序结果正相关性很强,反之亦然,如图:
斯皮尔曼系数CIFAR10上不同缩放设置下网络性能排序的一致性和加速比例图:
加速比例Economical Evolutionary-Based NAS
基于遗传算法的NAS时间主要浪费在那些不具有竞争力的候选网络上,因此提出层级代理来过滤那些不具有竞争力的个体,更多地集中在那些性能优异的个体。根据加速比例来选择缩放因子,将加速比分为几个group,在每个group中列出表现最好的缩放设置,在EcoNAS中,使用作为缩放设置。
Hierarchical Proxy
再用一个代理设置下训练和评估所有的网络结构也是费时的,针对这个问题,可以采用减少训练epochs的方法来解决,但是那些性能优异的网络却会因此精度下降。因此提出使用层级代理进行平衡。
将Population划分为三个子集:P1,P2,P3,分别代表准确率低、中、高三种类型的网络(意即被选为父体进行交叉变异的可能性小、中、大)。从P1到P3,训练选择的策略是由快到慢,由坏到好,设计三种策略,共享相同的c,r,s,但是P3,P2,P1的训练epochs依次为3E,2E,E,因此对于那些不怎么有竞争力的网络只训练较少的epochs,而着重选择那些accuracy高的网络进行交叉变异产生子代。
算法流程在每一轮遗传中:
1、从P1,P2,P3中选择accuracy高的样本进行变异,变异规则遵循AmoebaNet,编译后的个体训练E个epochs,加入P1;
2、选择P1中的top-k加入P2,选择P2中的top-k加入P3,被选择的网络在原来训练epoch数量的基础上,在训练E个epochs(load from checkpoint);
3、去掉P1,P2,P3中那些不具有竞争力的网络。
实验结果:
实验结果
网友评论