写这个博客,主要是想做一下这方面的工作,想要使用代理模型来提高NAS效率。
运用代理模型求解优化问题是优化领域的一个重要思想,该思想是:
(1)将一个复杂的函数通过采集特征点构造一个相对简单的新的函数,我们称之为代理模型。
(2)再对代理模型进行优化求得最优解。
(3)由于该代理的模型只能一定程度上代表真实模型,它到最优解并不能直接代表原目标函数的最优解,所以需要对代理模型进行更新.
(4)通常是以一定的判据来重新采点,重新构造代理模型,直到满足收敛条件,便停止对代理模型的更新,所得的最优解即视为原函数的最优解。
在神经网络架构搜索过程中,代理模型简单来说就是,训练并利用一个计算成本较低的模型,去模拟原本计算成本较高的那个模型的预测结果,当需要计算的大模型的数量较多时,可以避开很多计算。
NSGANetV2:进化的多目标代理辅助神经体系结构搜索
这篇论文提出了一个高效的NAS算法,用于生成在多个竞争目标下具有竞争力的特定任务。包含两个代理模型:
(1)一个在体系结构级别,来提高的效率。
(2)一个在权重级别,通过超网,来提高梯度下降的训练效率。
NAS通常被视为双层优化问题,计算挑战来自上层和下层优化 :
(1)内部优化针对给定体系结构遍历网络的权重 。
(2)外部优化则遍历网络体系结构本身。
在已经提出的方法里,大多数集中在较低的层次上,在提高上层优化的样本效率方面的关注相对较少。
在这篇文章中,作者通过在上层和下层同时采用显式代理模型,提出了一种实用有效的NAS算法。
下层代理采用微调方法,其中微调的初始权重是通过超网模型获得的。
上层代理采用在线学习算法,该算法专注于搜索空间中接近当前权衡前沿的架构,而不是离线代理方法中使用的随机/统一架构集
给定一个数据集和目标,MSuNAS获得了一组任务特定的模型,这些模型在所有目标中都具有很高的搜索效率。它由两个代理组成,一个在较高级别,以提高样本效率,一个在较低级别,通过超网,来提高权重的学习效率。
SGD(随机梯度下降):SGD 每次更新时对每个样本进行梯度更新,每次迭代可以只用一个训练数据来更新参数。
下层代理:
现有方法主要集中在减轻下层基于SGD的权重优化所引起的计算开销,因为对于上层NAS方法采样的每个体系结构都需要重复此过程。
这些方法中的一个共同主题是:
训练一个包含所有可搜索架构作为其子网的超网,使用从超网继承的权重准确性成为选择体系结构的度量标准。
完全依靠超级网络代替实际权重优化来评估候选体系结构是不可靠的。
高层代理:
MetaQNN 使用代理模型,从前25%的学习曲线中预测候选体系结构的最终准确性。PNAS 使用替代模型来预测架构的top-1准确性。这两种方法的预测准确度和真实准确度之间的排名非常低。
OnceForAll:需要大量样本进行学习。
ChamNet:通过完全较低级别的优化来训练许多架构。
MSuNAS仅在接近当前权衡前沿的样本上,以在线方式在线学习替代模型。
多目标NAS:
考虑多个目标以优化体系结构的方法可分为两类:
(i)标量化
包括ProxylessNAS,MnasNet ,FBNet 和MobileNetV3 等方法,使用标量化目标,该目标可鼓励高精度并同时惩罚计算效率低下。
(ii)基于总体的方法
该方法方法旨在同时逼近整个帕累托有效边界,依靠试探法来有效地导航搜索空间,这允许从业者可视化目标之间的权衡,并选择适合于搜索的后验网络。
MSuNAS 在卷积神经网络(CNN)的四个重要维度上进行搜索,包括深度(层数),宽度(通道数),内核大小和输入分辨率。
将 CNN 架构分解为五个顺序连接的块,并逐渐减小了特征图的大小并增加了通道数。
使用整数字符串对这些体系结构选择进行编码,并且将零填充到具有较少层的体系结构的字符串中,从而进行固定长度的编码。
我们在上下两级都使用了替代模型:
(1)在较高的级别上,构建一个替代模型,该模型从编码体系结构的整数字符串中预测出 top-1 的准确性。
(2)在较低的级别上,采用了广泛使用的权重共享技术。
加快上层优化的速度
双层问题的嵌套性质使上层优化在计算上非常昂贵,因为每个上层函数评估都需要在下层进行另一个优化。
需要使用一个替代模型来预测架构的准确性,然后再进行实际训练。
这种预测器具有两个期望的属性:
(1)预测性能与真实性能之间的高等级相关性。
(2)有效采样,以使通过SGD训练所需的体系结构数量最少,以构建预测变量。
从文献中收集了四种不同的替代模型以进行准确度预测,即多层感知器(MLP),分类和回归树(CART),径向基函数(RBF)和高斯过程(GP)。
本文提出了一种称为自适应切换(AS)的选择机制,该机制会在每次迭代时构建所有四种类型的代理模型,并通过交叉验证自适应地选择最佳模型。
利用AS选择的精度预测器,应用NSGA-II算法同时针对用户所关注的精度(预测的)和其他目标进行了优化。
加快下层优化的速度
采用了广泛使用的权重共享技术。
首先,本工作需要一个超级网络,以使所有可搜索的体系结构都是其子网。
通过将搜索到的体系结构超参数取其最大值来构造这样的超网,即在五个块中的每一个中有四层,每层的扩展比设置为6,内核大小设置为7。
按照渐进式收缩算法训练超网,在架构搜索之前执行此过程一次。
从受训练的超级网络继承的权重在架构搜索期间用作梯度下降算法的热启动。
本文介绍了MSuNAS,这是一种有效的神经体系结构搜索算法,可在多个竞争目标下快速设计任务特定的模型。
方法的效率源于:
(i)在体系结构级别上进行在线代理建模以提高样本效率搜索。
(ii)基于超网的代理模型,以通过微调提高权重学习效率。