机器学习

Adaptive learning rate: AdaGrad

2020-07-28  本文已影响0人  吃火锅只蘸麻酱

AdaGrad

详细
梯度下降算法以及动量方法都有一个共同点,即对于每一个参数都用相同的学习率(步长)进行更新。但是在实际应用中,各参数的重要性肯定是不同的,所以对于不同的参数要进行动态调整,采取不同的学习率,让目标函数能够更快地收敛。
AdaGrad:将每一个参数的每一次迭代的梯度取平方,然后累加并开方得到 r,最后用全局学习率除以 r,作为学习率的动态更新。

更新参数
α是全局学习率,r是累计梯度量,初始值为0,g表示当前迭代的梯度值。从 AdaGrad 算法的计算过程中可以看出,随着不断地迭代,r 的值会越来越大(梯度的平方为正值),那么在每一轮迭代中学习率会越来越小,也就是说当前位置的梯度对参数的影响也越来越小。简单地讲,AdaGrad 算法在初始时鼓励收敛,随着迭代的深入慢慢变成惩罚收敛,速度也越来越慢。

AdaDelta

详细
主要是为了解决AdaGrad中存在的问题
改进方法1:

将累计梯度信息从全部历史梯度变为当前时间向前的一个窗口期内的累积:


相当于历史梯度信息的累计乘上一个衰减系数ρ,然后用(1−ρ)作为当前梯度的平方加权系数相加。
改进方法2:
通过牛顿法可以知道,牛顿法迭代步长是f''(x),二阶牛顿迭代公式为(求最小值):

可以看出牛顿算法的迭代步长是二阶近似的解析解,不需要我们手动指定学习率。

RMSProp

详细
RMSProp和AdaDelta类似,关键是否用替换超参数学习率

上一篇 下一篇

猜你喜欢

热点阅读