QUESTION

RMSProp怎样改进AdaGrad,近期梯度权重更大是什么意思?

A

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,才同时平滑历史方向与历史大小。