要成功训练一个深度学习模型,正确的优化策略是非常重要的,如果使用不当结果会产生很大的差异,今天来介绍 AutoML 与优化相关的问题。
Neural Optimizer Search
Neural Optimizer Search[1]是一个自动搜索优化方法的框架,它使用强化学习方法设计的 RNN 结构控制器进行学习,该控制器在每一步中给优化器生成权重更新方程,从而实现最大化模型准确率,示意图如下:
在搜索空间中包含 sgd,rmsprop,adam 等优化方法,这些方法都可以被表示为一个相同结构的树,如下:
因此一个优化器的应用可以被表示为 5 个操作,分别是选择 op1,op2,两个操作的幅度函数 u1,u2,以及最后对这两个操作的综合。
因此,不管选择什么优化器,完成一次优化步骤都是要做以上的 5 次操作,那么如果可以学习到这 5 次操作,就完成了一个优化器的搜索,搜索流程如下:
RNN 控制器每一次选择长度为 5 的子序列,如上图。搜索空间如下,具体操作解释可以阅读原文,使用的时候还有一些约束,比如树的左右两个操作不能相同等。
经过在 CIFAR10 数据集上对一个 2 层的简单网络进行学习后,它们搜索到了一些有效的优化器,如下图的 PowerSign 以及 AddSign。
当然,研究者们还对衰减机制也进行了搜索学习,感兴趣的读者可以去阅读原文。
最后,研究者们还将 PowerSign 和 AddSign 迁移到了 ImageNet 分类任务和谷歌机器翻译系统,发现它们具有非常好的泛化能力,这使得该框架具有非常大的应用价值。
其他
Neural Optimizer Search 并不是率先对自动优化器的设计进行学习的框架,在上个世纪[2]研究人员就在思考如何让算法自我学习,自动寻找更好的算法。
文[3-5]也致力于获得更好的更新规则,不过 Neural Optimizer Search 搜索的是函数的组合而不是具体的数值更新,原理更加清晰并且有更好的泛化能力。
参考链接
[1] Bello I, Zoph B, Vasudevan V, et al. Neural optimizer search with reinforcement learning[C]//Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017: 459-468.
[2] Bengio S, Bengio Y, Cloutier J. Use of genetic programming for the search of a new learning rule for neural networks[C]//Proceedings of the First IEEE Conference on Evolutionary Computation. IEEE World Congress on Computational Intelligence. IEEE, 1994: 324-327.
[3] Li K, Malik J. Learning to optimize[J]. arXiv preprint arXiv:1606.01885, 2016.
[4] Andrychowicz M, Denil M, Gomez S, et al. Learning to learn by gradient descent by gradient descent[C]//Advances in neural information processing systems. 2016: 3981-3989.
[5] Wichrowska O, Maheswaranathan N, Hoffman M W, et al. Learned optimizers that scale and generalize[C]//Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017: 3751-3760.
作者介绍
言有三,真名龙鹏,曾先后就职于奇虎 360AI 研究院、陌陌深度学习实验室,6 年多计算机视觉从业经验,拥有丰富的传统图像算法和深度学习图像项目经验,拥有技术公众号《有三 AI》,著有书籍《深度学习之图像识别:核心技术与案例实战》。
原文链接
https://mp.weixin.qq.com/s/E0ULyXGz3UEcD0cIg-XkNA
评论