RMSProp怎样改进AdaGrad,近期梯度权重更大是什么意思?
RMSProp用梯度平方的指数加权平均控制步长,让旧信息逐渐衰减。
DETAILED ANSWER
直接结论
RMSProp和AdaGrad都会根据梯度平方调整每个参数的有效步长。区别是AdaGrad永久累加所有历史梯度平方,而RMSProp使用指数加权平均:新梯度直接加入,旧梯度的影响每轮再乘一次衰减系数,所以距离现在越远,权重越小。
RMSProp记录什么
设本轮梯度为g_t,衰减系数为β:
s_t = βs_(t-1) + (1−β)g_t²
更新参数时:
新w = 旧w − η / (sqrt(s_t) + ε) × g_t
s_t只负责估计这个参数近期的梯度通常有多大,从而调节移动距离。
“越近权重越大”怎样展开
假设β=0.9,那么:
当前梯度平方g_t²的权重:0.1
上一轮g_(t-1)²的权重:0.1 × 0.9 = 0.09
上两轮g_(t-2)²的权重:0.1 × 0.9² = 0.081
更早的梯度:继续乘0.9
这里的“近期权重更大”不是模型额外学习了一组注意力权重,而是公式中的指数衰减自然产生的结果。
它为什么不会像AdaGrad一样无限累积
AdaGrad是直接相加:
s_t = g_1² + g_2² + ... + g_t²
只要继续训练,s_t通常就越来越大。RMSProp每轮都会先把过去的整体影响乘β,旧信息会逐渐淡出,因此它反映的是近期尺度,而不是从训练开始以来的永久总和。
RMSProp是否还有方向
有。只是s_t中的平方没有方向,它只用来调节步长。真正的参数更新仍然乘以未平方的g_t:
g_t的正负:决定往哪边走
s_t的大小:决定这一步缩小多少
因此,更准确的说法是:RMSProp不“记忆历史方向”,但当前更新仍然有方向。Adam后来加入m,才同时平滑历史方向与历史大小。
