改善深层神经网络:超参数调整、正则化以及优化——2.7 RMSprop

Jessica ·
更新时间:2024-09-21
· 561 次阅读

RMSprop算法全称是root mean square prop算法,该算法可以加速梯度下降,回忆一下之前的例子,如果执行梯度下降,虽然横轴方向正在推进,但纵轴方向会有大幅度的摆动,假设纵轴代表参数b,横轴代表参数W,可能有W1W_1W1​,W2W_2W2​或者其它重要的参数,为了便于理解,称为b和W。所以如果想减缓b方向的学习,同时加快横轴方向的学习,RMSprop算法可以实现这一点。
在这里插入图片描述

在第t次迭代中,该算法会照常计算当下mini-batch的微分dWdWdW和dbdbdb。这里用新符号SdwS_{dw}Sdw​,Sdw=β∗Sdw+(1−β)∗(dW)2S_{dw}=\beta*S_{dw} +(1-\beta)*(dW)^2 Sdw​=β∗Sdw​+(1−β)∗(dW)2公式中平方的操作是针对这一整个符号的,这样做能够保留微分平方的加权平均数。同样有Sdb=β∗Sdb+(1−β)∗(db)2S_{db}=\beta * S_{db}+(1-\beta)*(db)^2Sdb​=β∗Sdb​+(1−β)∗(db)2参数更新公式变为W=W−α∗dWSdWW=W-\alpha * \frac{dW}{\sqrt{S_{dW}}}W=W−α∗SdW​​dW​b=b−α∗dbSdbb=b-\alpha*\frac{db}{\sqrt{S_{db}}}b=b−α∗Sdb​​db​我们理解一下其中的原理,在横轴方向或者在例子中的W方向,我们希望学校速度快,而在垂直方向,也就是例子中的b方向,我们希望减缓纵轴上的摆动。所以有了SdWS_{dW}SdW​和SdbS_{db}Sdb​,我们希望SdWS_{dW}SdW​会相对较小,所以W参数更新要除以一个较小的数,而希望SdbS_dbSd​b较大,这样b更新会除以一个较大的数字,这样就可以减缓纵轴上的变化。

RMSprop的影响就是,纵轴方向上的摆动较小,而横轴方向继续推进。还有个影响就是,可以用更大学习率α\alphaα加快学习。

在RMSprop中要确保算法不会除于0,如果SdWS^{dW}SdW的平方根趋近于0怎么办?这样得到的答案非常大,为了确保数值稳定,在实际中操作的时候,要在分母加上一个很小很小的ε\varepsilonε,ε\varepsilonε是多少没关系,KaTeX parse error: Expected 'EOF', got '&' at position 3: 10&̲{-8}是个不错的选择,这只是保证数值能够稳定一些。无论什么原因,都不会除以一个很小很小的数,所以RMSprop跟Momentum有很相似的一点,可以消除梯度下降中的摆动,并允许使用一个更大的学习率alphaalphaalpha,从而加快算法学习速度。


作者:AI就是爱



超参数 正则化 参数 神经网络 优化 正则

需要 登录 后方可回复, 如果你还没有账号请 注册新账号