从NAS到Apollo,优化方法如何助力设计空间探索(续)

从NAS到Apollo,优化方法如何助力设计空间探索(续)

  • 发布时间:2021-03-20 18:13
  • 访问量:

【概要描述】优化方法在AutoML和Apollo中扮演着非常重要的角色,针对空间设计问题,本文研究了主流的空间探索优化方法。

从NAS到Apollo,优化方法如何助力设计空间探索(续)

【概要描述】优化方法在AutoML和Apollo中扮演着非常重要的角色,针对空间设计问题,本文研究了主流的空间探索优化方法。

  • 分类:研究院
  • 作者:壁仞科技研究院
  • 来源:
  • 发布时间:2021-03-20 18:13
  • 访问量:
详情

摘要

不管是AutoML中的自动化调参和神经架构搜索(Neural architecture search, NAS),还是Google在硬件架构设计方面的最新研究工作[1],优化方法都在空间设计探索中扮演着非常重要的角色。优化方法种类繁多,适用场景也可能会不同。本文借助当前热门研究方向NAS的空间设计问题,开展了对主流优化方法的研究,主要内容包括优化方法类别(黑盒子优化、可微分方法以及其他优化方法)、优化方法评估库、拓展思考等。

因篇幅较长,此次研究分为两部分。在第一部分中,我们已经介绍了主流的三种黑盒子方法。本篇为第二部分,主要研究基于可微分的非黑盒子方法DARTS(Differentiable architecture search)及其带约束条件的变体NASP(Proximal-based NAS)、可有效避免重复从零开始训练的权重分享方法、优化方法评估库、以及对现有优化方法的评述。

 

可微优化方法

 

虽然很多主流黑盒子NAS算法都取得了非常出色的成绩,如之前介绍的进化算法、强化学习和贝叶斯优化,然而规模化地进行大模型探索仍然是一个难题。主要原因是黑盒子方法无法给出一个映射函数,只能将操作从离散的空间里进行筛选。针对该问题,卡内基梅隆大学CMU和Google DeepMind将离散化约束条件进行松弛化处理,提出了一种离散空间到连续空间的映射方法[2],如图1(a)所示。基本思想是,按照主流的cell-based方式[3]搜索一个最佳的cell单元,通过一定方式堆叠cell基本单元获得完整的神经网络结构。一个cell单元以图形结构表示,其中节点为初始输入数据或者上层结构的输出,边为对数据采取的操作(如卷积操作)。与黑盒子方法不同的是,文[2]则将连接节点图片和节点图片的边(代表操作图片)映射到连续变量,将操选择问题转化为了对连续变量的softmax计算,然后优化问题的目标函数就可以表达成的可微函数,因此可以采用基于梯度的方法进行求解,这也是与gradient-free黑盒子方法的主要区别。

离散到连续空间的转换如式(1)所示:

同时,文[2]的实验结果表明,在确保与SOTA的强化学习和进化方法取得同等性能的情况下,实现了三个数量级的搜索速度提升,如图2所示(见红色框凸显部分)。该文指出计算量的大幅度减少可归功于梯度方法的使用。

 

图1:可微分方法(来源文[15])

 

在DARTS的基础上,文[13]进一步考虑了体系结构的约束条件,将架构搜索限制在一个离散空间内。具体做法是:针对可能应用于某个边的所有操作向量,施加零范数约束,迫使只有一种操作适用于该边,如图1(b)所示(x表示不使用对应的操作)。这种只有单一操作的架构搜索方法避免了DARTS中因为混合多个操作所造成的完整性和关联性问题。在实现上,文[13]将正则化器引入到优化目标中,用于控制网络结构的大小。然而,现有DARTS可微分求解方法不能直接适用于这种带约束的目标函数。因此,文[13]提出了一种由近端迭代衍生的新优化算法NASP,并消除了DARTS所需的昂贵二阶近似计算。

 

图2: DARTS实验结果(来源文[2])

 

从本质上来说,作为主要操作的卷积操作实际上是实现线性函数的转换,现有DARTS预先将设计空间限定在有限的可能操作(如卷积,max pooling等),再通过连续变量获取不同线性函数的混合操作。这种设计空间效果受限于事先人为对可能操作的选择,是否可以进一步放松这个限制?比如,高斯进程是刻画函数分布的一种简单、高效的方法,将每个操作对应的线性转化函数f从高斯进程中采样,效果又会如何?

 

其他优化方法

 

在黑盒子优化方法和DARTS方法中,都绕不开一个昂贵的计算步骤:针对新的神经网络结构,在训练数据上完成模型参数的训练。虽然网络结构在一定程度上存在差异,但每次重新训练模型中全部参数的做法很可能会造成不必要的计算。针对该问题,很多研究者开始关注知识迁移(knowledge transfer)方法的设计,以实现利用事先训练好的模型来更快、更好地获得新模型。文[4]在已经完成训练的父模型上,将父模型的网络结构在宽度和深度两个角度上进行扩展来获得子模型。同时,采用了函数保持(function preserving)的思想,确保子模型与父模型描述同样的函数,即在给定输入,确保函数经过父模型和子模型的输出是一样的。子模型在继承了父模型结构的同时,父模型中相关部分的参数也被直接继承或者经过一定数学处理获得。这种从父模型到子模型的结构和参数映射方法称为网络态射(network morphism),其中结构映射如图3所示。类似的网络态射研究工作如文[8-9]。

 

图3:Network morphism(来源文[6])

 

除了上述的从现有模型的扩展获得新模型的“从小到大“的探索方式,也有一些研究采取相反的“从大到小”的设计思路。文[5]通过建立neural fabrics,将网络架构探索的任务转换为开启或者终止fabrics中某些连接的任务。简单地来看,可以将neural fabrics看成一个神经网络,通过dropout神经元得到不同的网络结构。因此,只要one-shot训练一个neural fabrics就能实现所有子模型的训练,而neural fabrics可以看成是不同神经网络结构的混合。另一个主流的方法是ENAS[10],将神经网络结构以计算图的方式来表示,从整图中衍生出的不同子图组成了架构探索的空间,训练要求所有子模型共享权重。

此外,Transfer learning方法也在架构探索上有了新探索[1,7],利用之前架构探索中的经验迅速地学习新的架构。文[7]在现有强化学习方法[14]的基础上,事先在多个任务上训练得到一个控制器,然后将其在新任务上进行微调,从而使新任务得到与相似任务的表达方式。

 

优化方法评估库

 

虽然优化方法在NAS空间探索方面不断取得了出色的成就,然而,如何进行公平地比较各种优化方法的研究还是屈指可数。同时,实验代码缺乏可复用性也是学术界一个公认的问题。这种不公平性主要来源于不同的实验环境设计。比如,1)使用不同的搜索空间和架构轮廓;2)基于同样架构,但使用不同训练策略和性能评估指标,例如正则化、scheduler和超参数的不同选择;3)使用不一致方式划分数据集,使得测试数据集所占比例大小不一。

针对上述问题,文[15]提出了首个优化方法评估库NAS-Bench,精心设计了NAS网络空间、超参数配置等多个变量,采用统一的cell-based的NAS搜索方法,为不同的优化方法提供了统一化的实验环境。比如,提供统一最新NAS算法的基准线和训练集、验证集、测试集的数据划分方式。同时,提供用于模型诊断和分析的工具,如所有必要的训练日志信息、在搜索空间上的系统化分析。

文[15]设计的NAS-Bench-201将架构搜索空间限制为五种操作(zeroize,skip-connect,1x1 conv, 3x3 conv, 3x3 avg pool)以及四个节点,如图4所示。这种简单空间设计是否具有通用性也是值得注意的问题,文[15]的作者也指出这是一个未来值得探索的研究方向。

 

图4:NAS-Bench-201的架构示意图(来源文[15])

 

扩展思考

 

虽然本研究对现在主流优化方法(进化方法、强化学习、贝叶斯优化、可微分优化方法等)分别进行了单独介绍,但在实际应用中,很多研究表明基于“集成思想“的优化方法效果往往会更好,如文[12]在多种不同的优化算法中间进行切换。目前,这些集成优化方法用于超参数优化比较多,类似集成方法在NAS、硬件架构探索、甚至是软硬件协同优化的助力作用可能也是一个值得关注的点,如文[11]已经集成了多种种群算法的架构探索。

这几年,神经网络架构探索取得了较多的研究进展。从目前研究态势来看,优化方法的研究方向似乎逐步从黑盒子方法向可微分方法转变,主要原因是神经网络结构的搜索时间训练速度得到了大幅度提高,如DARTS方法及其变种方法NASP。同时,NAS-Bench提供了基准线和较为公平的实验环境,为后续研究人员设计新优化方法提供了很好的参考,也为NAS优化方法在工业界、学术界的进一步推广使用做好了铺垫,虽然目前空间设计只局限于常见的五种操作。从整体来看,架构探索的研究进度与深度学习还存在一段较大的差距,反映在探索的结构还只是停留在简单的卷积神经网络和循环神经网络,有关更复杂网络研究还是寥寥无几,如生成对抗网络。

此外,正如在前文中提到,在采用基于cell-based的方式探索网络结构时,往往只局限于设计者基于经验所选择的有限个操作,很可能会忽略潜在更优的其他操作,因为这些操作尚不在设计者的经验范围之内。如何打破这种设计局限来获得更广的探索空间,也是值得思考的问题。

 

总结

 

继上篇有关黑盒子优化方法的文章之后,本文主要对神经网络架构探索的可微分方法、其他优化方法和优化方法评估库进行了归纳、总结。同时,评述了现有优化方法和NAS总体研究的状况。最后,给出了将集成思想引入到架构优化方法中的思考。

由于水平有限,文中存在不足的地方,请各位读者批评指正,也欢迎大家参与我们的讨论。

 

参考文献

 

[1]Yazdanbakhsh, Amir, et al. "Apollo: transferable architecture exploration." arXiv: 2102.01723.

[2]Liu, Hanxiao, et al. "DARTS: differentiable architecture search." ICLR, 2019.

[3]Zoph, Barret, et al. "Learning transferable architectures for scalable image recognition." CVPR,2018.

[4]Chen, Tianqi, et al. "Net2net: accelerating learning via knowledge transfer." ICLR 2016.

[5]Saxena, Shreyas, et al. "Convolutional neural fabrics." NIPS 2016.

[6]Wei, Tao, et al. "Network morphism." ICML, 2016.

[7]Wong, Catherine, et al. "Transfer learning with neural AutoML." NIPs 2018.

[8]Cai, Han, et al. "Path-level network transformation for efficient architecture search." ICML, 2018.

[9]Bender, Gabriel, et al. "Understanding and simplifying one-shot architecture search." ICML, 2018.

[10]Pham, Hieu, et al. "Efficient neural architecture search via parameters sharing." ICML, 2018.

[11]Angermueller, Christof, et al. "Population-based black-box optimization for biological sequence design." ICML, 2020.

[12]Awad, Noor, et al. "Squirrel: a switching hyperparameter optimizer." NeurIPS, 2020

[13]Yao, Quanming, et al. "Efficient neural architecture search via proximal iterations." AAAI, 2020.

[14]Zoph, Barret, et al."Neural architecture search with reinforcement learning." ICLR, 2017.

[15]Dong, Xuan, et al."NAS-bench-201: extending the scope of reproducible neural architecture search." ICLR, 2020. 

近期文章

流体力学与物理导引神经网络

流体力学与物理导引神经网络

现代科学中众多复杂的关键应用依赖着对流体运动的精确预测。然而,由于流体力学方程数值求解的复杂性,基于传统数值方法的高分辨率长周期数值模拟运算量大且难以保证数值稳定性。本文将深入介绍PINN方法在流体计算中的应用并分析其与传统数值方法的差别。
2021-10-25
物理导引神经网络方法分析

物理导引神经网络方法分析

随着GPU能力的提升,支撑深度学习的软硬件生态得到了快速发展。通过深度学习来解决科学计算问题成了一种趋势,其中用深度学习来求解偏微分方程的方法也逐渐兴起。尤其引人注意的是一种称为物理导引神经网络的方法,其为科学计算领域注入了新的活力。
2021-10-18

联系我们

这是描述信息

招贤纳士

公众号二维码
这是描述信息

 版权所有   ©   上海壁仞科技有限公司   |    沪ICP备19047354号