Rmsprop方法是怎样利用Rprop方法的优点,进行改进的

实在抱歉,今日才有空回答您的问题。下面是我的一些愚见。
Rmsprop方法其实和 Adadelta 很类似,确切的是Rmsprop方法是 Adadelta 的一个特例。其参数更新过程为:
Rmsprop方法是怎样利用Rprop方法的优点,进行改进的

其中,g表示梯度项。这里的Rms指的是当前时刻梯度项平方的期望(加上平滑因子Rmsprop方法是怎样利用Rprop方法的优点,进行改进的
)的均方根。也就是:
Rmsprop方法是怎样利用Rprop方法的优点,进行改进的


■网友
简介RMSprop,全称Root Mean Square prop,是一种用于深度学习梯度计算的方法。要想理解RMSprop算法,我们先从梯度下降开始说起。
梯度下降我们来看一下张经典的三维图片
Rmsprop方法是怎样利用Rprop方法的优点,进行改进的

可以看到我们在上面任何一个点采用梯度下降以达到最低点,得到水平方向的梯度将会是零。而垂直方向梯度则随着接近最低点逐渐减小,最终达到最优结果。但是这是理想情况下的凸函数,如果我们面对的是非凸函数,如下图所示:
Rmsprop方法是怎样利用Rprop方法的优点,进行改进的

在这种情况下,梯度方向和大小计算都将受到严重的干扰。此时,随机初始化的起始点所计算的梯度大小往往含有特别大的噪声,若直接采用计算出的梯度大小,就会出现以下问题:
- 鞍点(Saddle point)
Rmsprop方法是怎样利用Rprop方法的优点,进行改进的

从高处落入鞍点时,可能遇到的问题就是一个方向的梯度大,另一个方向的梯度接近于0,导致在鞍点停留此摆动而无法继续靠近最优点。实际上此时为0的梯度不该严格遵守,因为从初始化到得到最优解的过程中,大部分情况的梯度大小都并没有直接为靠近最优点服务。
- 高原(plateau) 而另一种情况就是在高损失区域出现平地,就好像在内蒙古高原丢一个铁球,它不会因为高海拔而一直滑落,反而会因为出现平原地区而保持静止。平地导致各方向梯度均趋近于0,这种情况也将造成收敛困难。同样,我们可以认为此时的梯度大小都并没有直接为靠近最优点服务,需要作出优化。
总的来说,梯度太高或者太低,很可能就是局部造成的,是对接近最优点没有意义的暂时结果。没有大局观需要宏观调控。
优化方法Rprop算法为了解决上面说到的梯度大小问题。为梯度增加上下限是有必要的。
假设 Rmsprop方法是怎样利用Rprop方法的优点,进行改进的
为最终采用梯度大小, Rmsprop方法是怎样利用Rprop方法的优点,进行改进的
为学习率 , dw为参数计算得梯度值。
若
Rmsprop方法是怎样利用Rprop方法的优点,进行改进的
:
Rmsprop方法是怎样利用Rprop方法的优点,进行改进的

若
Rmsprop方法是怎样利用Rprop方法的优点,进行改进的

Rmsprop方法是怎样利用Rprop方法的优点,进行改进的

直观来说,梯度一直朝着某个方向前进时,会加一个上限,不让梯度因为局部陡峭而造成大量偏差。而出现前面说到的两种情况,某些方向梯度降到接近于0而无法收敛时。梯度将采用一个最小值,防止无法摆脱局部。


推荐阅读