作者丨苏剑林
单位丨广州火焰信息科技有限公司
研究方向丨NLP,神经网络
个人主页丨kexue.fm
在从动力学角度看优化算法SGD:一些小启示一文中,我们提出 SGD 优化算法跟常微分方程(ODE)的数值解法其实是对应的,由此还可以很自然地分析 SGD 算法的收敛性质、动量加速的原理等等内容。
在这篇文章中,我们继续沿着这个思路,去理解优化算法中的自适应学习率算法。
RMSprop
首先,我们看一个非常经典的自适应学习率优化算法:RMSprop。RMSprop 虽然不是最早提出的自适应学习率的优化算法,但是它却是相当实用的一种,它是诸如 Adam 这样更综合的算法的基石,通过它我们可以观察自适应学习率的优化算法是怎么做的。
算法概览
一般的梯度下降是这样的:
很明显,这里的 γ 是一个超参数,便是学习率,它可能需要在不同阶段做不同的调整。而 RMSprop 则是:
算法分析
对比朴素的 SGD,可以发现 RMSprop 在对 θ 的更新中,将原来是标量的学习率 γ,换成了一个向量。
如果把这个向量也看成是学习率,那么 RMSprop 就是找到了一个方案,能够给参数的每个分量分配不同的学习率。
这个学习率的调节,是通过因子来实现的,而
则是梯度平方的滑动平均。本质上来说,“滑动平均”平均只是让训练过程更加平稳一些,它不是起到调节作用的原因,起作用的主要部分是“梯度”,也就是说,可以用梯度大小来调节学习率。