RMSProp算法 讨论区


#1

http://zh.diveintodeeplearning.org/chapter_optimization/rmsprop.html


#2

感觉有点问题啊:
image
就以上面这个公式而言,正因为x在不同的时间正负不同,所以会出现相加后正负抵消的情况,所以不会出现一直累积的情况
但是 RMSProp 算法的导数在指数加权平均时,g是平方的,所以换算到上面这个公式,表示x一直是正的,这样一直相加的话,都是正数累积,还是没有解决掉Adagrad的问题。
我的理解问题在哪里?


#3

指数加权平均的值不是单调递增的


#4

image
以以上公式为例。
g(t)元素相乘g(t)是大于0的。所以这么累积不是递增的吗?
还是说g(t)元素相乘g(t)不会影响正负号,g(t)是正的,g(t)元素相乘g(t)就是正的。g(t)是负的,g(t)元素相乘g(t)就是负的?


#5

由于指数加权,时间较晚的变量权重过小可以忽略不计。通常只考虑时间较近的变量(例如权重>0.3679)

http://zh.gluon.ai/chapter_optimization/momentum.html

指数加权移动平均
为了从数学上理解动量法,让我们先解释指数加权移动平均(exponentially weighted moving average)。给定超参数 γ 且 0≤γ<1,当前时刻 t 的变量 yt 是上一时刻 t−1 的变量 yt−1 和当前时刻另一变量 xt 的线性组合:

yt=γyt−1+(1−γ)xt.
我们可以对 yt 展开:

yt=(1−γ)xt+γyt−1=(1−γ)xt+(1−γ)⋅γxt−1+γ2yt−2=(1−γ)xt+(1−γ)⋅γxt−1+(1−γ)⋅γ2xt−2+γ3yt−3…
由于

limn→∞(1−1n)n=exp(−1)≈0.3679,
令 n=1/(1−γ),那么有 (1−1/n)n=γ1/(1−γ)。所以当 γ→1 时,γ1/(1−γ)=exp(−1)。例如 0.9520=0.358≈exp(−1)。如果把 exp(−1) 当做一个比较小的数,我们可以在近似中忽略所有含 γ1/(1−γ) 和比 γ1/(1−γ) 更高阶的系数的项。例如,当 γ=0.95 时,

yt≈0.05∑i=0190.95ixt−i.
因此,在实际中,我们常常将 y 看作是对最近 1/(1−γ) 个时刻的 x 值的加权平均。例如,当 γ=0.95 时,y 可以被看作是对最近 20 个时刻的 x 值的加权平均;当 γ=0.9 时,y 可以看作是对最近 10 个时刻的 x 值的加权平均。且离当前时刻越近的 x 值获得的权重越大(越接近 1)。


#6

好的,谢谢!