lr自动调整
- 先从吴恩达老师开始,了解指数加权(移动)平均的相关内容;
- 还是吴恩达老师,了解动量梯度下降;
- 接下来是吴恩达与李宏毅老师,了解lr自动调整,以及Adam优化算法
-
指数加权(移动)平均
这里,相当于计算平均即10天内的平均温度。
是给过去的权重,是给当前的权重。
将上述公式展开,可看到其指数加权平均的过程。
-
偏差修正(Bias correction in exponentially weighted average)
为减小初始偏差(详见吴恩达老师课程),可使用来进行预估。
随着的增大,会慢慢变回
图中紫线为,未使用偏差估计;
图中绿线为,使用偏差估计;
图中红线为,使用偏差估计。
-
-
动量梯度下降法(Gradient descent with momentum)
相较于普通的梯度下降法,动量梯度下降法速度更快。
其基本思想是,计算梯度的指数加权平均。
图中紫线,使用了过大的学习率,偏离了函数范围,可能导致无法收敛;
图中蓝线,学习率适中,但上下的摆动还是会减慢梯度下降的速度。
我们希望,纵轴上学习慢一点(不想要这些摆动),横轴学习快一点。为此我们使用动量梯度下降法。
-
在第次迭代,计算梯度
-
计算,。
(类似上面的指数加权(移动)平均;一般取值0.9;一般忽略偏差修正)
-
最后在更新参数的时候,使用和,而不是和。(为lr学习率)
这样操作,纵轴方向,平均过程中正负数相互抵消,因此摆动平均值接近于零。横轴方向,所有微分都指向横轴同方向,因此学习的速度会更快。
图中红线为理想的动量梯度下降法的效果。
-
-
lr自动调整
不同参数,使用不同lr
该图中,横轴方向坡度小,需要较大lr;纵轴方向坡度大,需要较小lr。
:时刻第个参数的值
:梯度
:初始学习率
:每个参数实际的lr
-
Root Mean Square方法(used in Adagrad)
通过这样处理,坡度越大,就越大,就越小,即lr越小;坡度越小,就越小,就越大,即lr越大。
-
RMSProp方法
支持手动调整当前梯度的影响大小。
-
lr Scheduling(lr decay)
使lr随时间(训练过程)不断变化。即变为
原理与代码实现,详见另一篇总结:lr_scheduler
-
-
Adam优化算法
原理:RMSProp + Momentum
参数,用于Momentum,一般取0.9
参数,用于RMSProp ,一般取0.999
(Adam算法也需要lr decay,即lr应随着训练过程不断变化)
参考: