卷积神经网络(五):SGD、adagrad与RMSprop,梯度下降法总结

版权声明:转载请注明出处 https://blog.csdn.net/Fire_Light_/article/details/79556939

SGD

SGD即随机梯度下降法,在每次更新中,计算一个Minibatch的数据,然后以Minibatch中数据的总损失对神经网络各权值求梯度来进行权值更新,作为训练中的一个step。
更新方程为:

W t + 1 , i = W t , i η g t , i

其中 W t , i 表示第t个step,第i个权值更新前的值, g t , i 表示其在第t个step的更新梯度,η表示学习率

adagrad

Adagrad在每一个更新步骤中对于每一个模型参数Wi使用不同的学习速率ηi,

W t + 1 , i = W t , i η l = 0 t g l , i 2 + e g t , i

可以看到,式中学习率会除以该权值历史所有梯度的平方根,由于梯度会累加得越来越大,也就可以达到衰减学习率的效果。
其中,e是一个平滑参数,为了使得分母不为0(通常e=1e−8),另外,如果分母不开根号,算法性能会很糟糕。

优点很明显,可以使得学习率越来越小,而且每个权值根据其梯度大小不同可以获得自适应的学习率调整。

缺点在于需要计算参数梯度序列平方和,并且学习速率趋势会较快衰减达到一个非常小的值

RMSprop

为了缓解Adagrad学习率衰减过快,首先当然就是想到降低分子里的平方和项,RMSprop是通过将平方和变为加权平方和,即

r t i = P r t 1 , i + ( 1 P ) g t , i 2

也就是说平方和项随着时间不断衰减,过远的梯度将不影响学习率

此时更新公式变为

W t + 1 , i = W t , i n r t , i + e g t , i

具体描述:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/Fire_Light_/article/details/79556939