作者:陈扬
编辑:陈人和
一种简单有效的网络结构搜索:
github:https://github.com/markdtw/awesome-architecture-search (未开源代码)
arxiv:https://arxiv.org/abs/1711.04528
前 言
这篇文章主要介绍了一种方法用于解决网络结构搜索中,搜索空间过大且训练时间过长,算力 要求过高的问题。运用了爬山算法来搜索优秀的网络结构,主要是用了一个很nb的技术叫 network morphism的算法,极大的减小了训练时间,原因就是利用了之前训练的网络权重。
AUTOML相关介绍
爬山算法是什么
morphism/transformation
summary
01
AUTOML提供方法和流程,使机器学习可用于非机器学习专家,提高机器学习效率和加速机 器学习研究。机器学习(ML)近年来取得了相当大的成功,并且越来越多的学科依赖它。然 而,这种成功至关重要地依赖于人类机器学习专家来执行手动任务。由于这些任务的复杂性往 往超出非ML专家,因此机器学习应用程序的快速增长产生了对现成机器学习方法的需求,这 些方法可以在没有专业知识的情况下轻松使用。我们将最终的研究领域称为机器学习AutoML 的逐步自动化。 作者很良心的帮我们总结了近些年来在自动网络架构搜索领域的方法,当然我也很良心地写出 来了。
random search随机搜索:
H. Mendoza, A. Klein, M. Feurer, T. Springenberg, and F. Hutter. Towards automatically-tuned neural net works.In AutoML, 2016.
Sampling the optimal hyperparameter(贝叶斯采样):
(Bayesian optimization) J. Bergstra, R. Bardenet, Y. Bengio, and B. Kegl. Algorithms for hyper-parameter optimization. In NIPS, 2011. J. Snoek, H. Larochelle, and RP Adams. Practical Bayesian optimization of machine learning algorithms. In NIPS, 2012.
Hyperparameter optimization. H. Mendoza, A. Klein, M.
Feurer, T. Springenberg, and F. Hutter. Towards automatically-tuned neural net works. In AutoML, 2016.
Reinforcement learning强化学习:
. L. Li, K. G. Jamieson, G. DeSalvo, A. Rostamizadeh, and A. Talwalkar. Efficient hyperparameter optimization and infinitely many armed bandits. CoRR, abs/1603.06560, 2016a. 2. I. Loshchilov and F. Hutter. CMA-ES for hyperparameter optimization of deep neural net works. CoRR, abs/1604.07269, 2016. 3. M Jaderberg, C Fernando, K Simonyan, I Dunning, T Green, O Vinyals, A Razavi, J Donahue, W M Czarnecki, S Osindero, V Dalibard, K Kavukcuoglu. Population Based Training of Neural Net works. CoRR, abs/1711.09846, 2017.
based on reinforcement learning基于强化学习
Bowen Baker, Otkrist Gupta, Nikhil Naik, and Ramesh Raskar. Designing neural net work architectures using reinforcement learning. ICLR 2017, 2016. Barret Zoph and Quoc V. Le. Neural architecture search with reinforcement learning. 2017.Barret Zoph, Vijay Vasudevan, Jonathon Shlens, and Quoc V. Le. Learning transferable architectures for scalable image recognition. 2017.
02
一个很经典的问题,求一个函数的最大值,有三个常见的方法:爬山算法、模拟退火算法和遗 传算法。 我们可以把函数曲线理解成一个一个山峰和山谷组成的山脉(如图片所示)。那我可以设想所 得到的每一个解就是一只袋鼠,我希望它们不断的向着更高处跳去,直到跳到最高的山峰。所 以求最大值的过程就转化成一个“袋鼠跳”的过程。
他们之间的区别:
爬山算法:
从搜索空间中随机产生邻近的点,从中选择对应解最优的个体,替换原来的个体,不断重复上 述过程。因为只对“邻近”的点作比较,所以目光比较“短浅”,常常只能收敛到离开初始位 置比较近的局部最优解上面。对于存在很多局部最优点的问题,通过一个简单的迭代找出全局 最优解的机会非常渺茫。因为一路上它只顾上坡,没有下坡。
模拟退火算法:
这个方法来自金属热加工过程的启发。在金属热加工过程中,当金属的温度超过它的熔点 (Melting Point)时,原子就会激烈地随机运动。与所有的其它的物理系统相类似,原子的 这种运动趋向于寻找其能量的极小状态。在这个能量的变迁过程中,开始时。温度非常高,使 得原子具有很高的能量。随着温度不断降低,金属逐渐冷却,金属中的原子的能量就越来越 小,最后达到所有可能的最低点。利用模拟退火算法的时候,让算法从较大的跳跃开始,使到 它有足够的“能量”逃离可能“路过”的局部最优解而不至于限制在其中,当它停在全局最优 解附近的时候,逐渐的减小跳跃量,以便使其“落脚”到全局最优解上。 说白了就是,就是容许搜索出下山的状态,不过随着时间的推移,这个概率会越来越小,最终 也只能往上走。可以跳出初期的局部最优解。(paper中用得上cos退火)
遗传算法:
就是一开始,像绝地求生一样,袋鼠们跳伞掉到各个山腰上,然后设置一个毒圈,这个毒圈不 是一个圆,而是相对一个上升的海平面,不断地往上淹没,低的袋鼠就会被淹死,然后幸存的 袋鼠就好和旁边的袋鼠“结合”,交换他们的属性信息,再进行变异产生更多个体,然后这些 个体再进行下一圈跑毒………… 经过猴年马月之后,只剩下最后一个活着的个体了,我们称为大吉大利今晚吃鸡,近似最优解。 再另一篇专栏有这个:https://zhuanlan.zhihu.com/p/36758195
03
好了我终于把淡扯完了
Tianqi Chen, Ian J. Goodfellow, and Jonathon Shlens. Net2net: Accelerating learning via knowledge transfer. arXiv preprint, 2015.
这篇文章主要的思想就是借鉴了迁移的思想。
我们先把神经网络抽象成一个函数fw(x)变成gw(x),作者希望通过给出一个简单的设计 好的神经网络,经过一轮的训练,对这个训练好的网络进行“不回头的映射”,把他变成复杂的网络,并继承了之前训练的结果,因为网络更复杂了,隐含的参数更多了,所以经过一个 short-train之后,准确率可能会上升,不断的迭代这个过程,以求得更复杂更准确的模型。
这是没有后退的变形,w是权重,X是Rn维的输入。is layer number,fwi(x)是 fw(x)的一个部分,相当于其中一层的特征图。
Type I: Addition of layer (including regularization layer):
用Replace替换。当A=1,b=0时(这似乎可以让你学习初始值A=1,b=0。,这与下面的 Morph相同),这显然满足了这个假设。 它只是通过对当前图层进行加权来为其添加偏置, 因此可以用来添加所谓的图层。您还可以定义一个执行输出正则化的层(批处理标准化等)。很显然,当假设
TYPE II:Out Concat
替换=hh+b。这显然满足A〜= 0时的假设。这意味着在h〜= h的情况下,网络的 大小将会扩大,如果h(x)是一个连续的隐层,h〜(x)是x,则可以表示连接类型Skip-Connection。(2~4倍)
TypeIII: Addition of ReLU
简单的说就是把这一层的权重简单的进行一个替换,也可以拿来加relu
Type IV: Output Merge
当λ=1时保持不变,
当λ≠1时理论上可以合并各种非线性函数。
同时这个还能实现跳跃连接,(又是不写都不好意思发文的resnet思想了) ####图解
用的是随机梯度下降法进行训练,我们可以看到到进行了applynetmorphs之后,神经网络的 准确率并不会下降,说明了这个方法可以利用先前训练的数据,再进行一个短训练,有可能获 得更好的准确率,因为网络结构发生了改变,拥有了比之前更深更多的参数。把训练后最优秀 的一代保留下来, 继续这样一轮的学习。
一些训练的细节
Morph是随机选择的。
for type I:添加layers的地方是随机的,kernel的size只有{3,5},通道数量与最新的卷积核 数目相同。
for type II:扩展宽度从2到4倍随机选择,要跳过的层的范围(i到j)是随机选择的(同样在 tvpe IV中)。
使用余弦退火来学习变形网络。
根据余弦曲线提高和降低学习率的方法。(从下的文章中也可以看出 使用)。将错误率降低
约1%的效果。可以避免过早地陷入局部最优解。
###实验对比
可以看得出来,准确率上是没有优势的,但是这个方法的训练时间和计算量真的是能拯救广大 普通老百姓于水深火热啊。之前deepmind,google那些土豪级别的大公司,设计autoML时 的手笔大的让人怀疑人生。
想作者这种1day5GPU的简直就是学术界的一股清流啊。
04
summary
通过逐渐发展网络,不需要从零开始学习
可以评估降低结构搜索的速度和成本的观点。
然而,变形和启发式并没有太多的变化,而且它似乎可以轻松达到像Dense / ResNet这样 的简单结构
即使没有大规模的计算资源,也能自动设计网络架构
我们的算法很容易扩展
END
联系客服