2.7 RMSprop-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授


←上一篇↓↑下一篇→
2.6 动量梯度下降法回到目录2.8 Adam 优化算法

RMSprop (Root Mean Square Rrop)

你们知道了动量(Momentum)可以加快梯度下降,还有一个叫做RMSprop的算法,全称是root mean square prop算法,它也可以加速梯度下降,我们来看看它是如何运作的。

在这里插入图片描述

回忆一下我们之前的例子,如果你执行梯度下降,虽然横轴方向正在推进,但纵轴方向会有大幅度摆动,为了分析这个例子,假设纵轴代表参数 b b b ,横轴代表参数 W W W,可能有 W 1 W_1 W1 W 2 W_2 W2 或者其它重要的参数,为了便于理解,被称为 b b b W W W

所以,你想减缓 b b b 方向的学习,即纵轴方向,同时加快,至少不是减缓横轴方向的学习,RMSprop算法可以实现这一点。

在这里插入图片描述

在第 t t t 次迭代中,该算法会照常计算当下mini-batch的微分 d W dW dW d b db db ,所以我会保留这个指数加权平均数,我们用到新符号 S d W S_{dW} SdW ,而不是 v d W v_{dW} vdW ,因此 S d W = β S d W + ( 1 − β ) d W 2 S_{dW}=\beta S_{dW}+(1-\beta)dW^2 SdW=βSdW+(1β)dW2 ,澄清一下,这个平方的操作是针对这一整个符号的,这样做能够保留微分平方的加权平均数,同样 S d b = β S d b + ( 1 − β ) d b 2 S_{db}=\beta S_{db}+(1-\beta)db^2 Sdb=βSdb+(1β)db2 ,再说一次,平方是针对整个符号的操作。

接着RMSprop会这样更新参数值, W : = W − α d W S d W W:=W-\alpha \frac{dW}{\sqrt{S_{dW}}} W:=WαSdW dW b : = b − α d b S d b b:=b-\alpha \frac{db}{\sqrt{S_{db}}} b:=bαSdb db ,我们来理解一下其原理。记得在横轴方向或者在例子中的 W W W 方向,我们希望学习速度快,而在垂直方向,也就是例子中的 b b b 方向,我们希望减缓纵轴上的摆动,所以有了 S d W S_{dW} SdW S d b S_{db} Sdb ,我们希望 S d W S_{dW} SdW 会相对较小,所以我们要除以一个较小的数,而希望 S d b S_{db} Sdb 又较大,所以这里我们要除以较大的数字,这样就可以减缓纵轴上的变化。你看这些微分,垂直方向的要比水平方向的大得多,所以斜率在 b b b 方向特别大,所以这些微分中, d b db db 较大, d W dW dW 较小,因为函数的倾斜程度,在纵轴上,也就是 b b b 方向上要大于在横轴上,也就是 W W W 方向上。 d b db db 的平方较大,所以 S d b S_{db} Sdb 也会较大,而相比之下, d W dW dW 会小一些,亦或 d W dW dW 平方会小一些,因此 S d W S_{dW} SdW 会小一些,结果就是纵轴上的更新要被一个较大的数相除,就能消除摆动,而水平方向的更新则被较小的数相除。

在这里插入图片描述

RMSprop的影响就是你的更新最后会变成这样(绿色线),纵轴方向上摆动较小,而横轴方向继续推进。还有个影响就是,你可以用一个更大学习率 α \alpha α ,然后加快学习,而无须在纵轴上垂直方向偏离。

要说明一点,我一直把纵轴和横轴方向分别称为 b b b W W W ,只是为了方便展示而已。实际中,你会处于参数的高维度空间,所以需要消除摆动的垂直维度,你需要消除摆动,实际上是参数 W 1 W_1 W1 W 2 W_2 W2 等的合集,水平维度可能 W 3 W_3 W3 W 4 W_4 W4 等等,因此把 W W W b b b 分开只是方便说明。实际中 d W dW dW 是一个高维度的参数向量, d b db db 也是一个高维度参数向量,但是你的直觉是,在你要消除摆动的维度中,最终你要计算一个更大的和值,这个平方和微分的加权平均值,所以你最后去掉了那些有摆动的方向。所以这就是RMSprop,全称是均方根,因为你将微分进行平方,然后最后使用平方根。

在这里插入图片描述

最后再就这个算法说一些细节的东西,然后我们再继续。下一个视频中,我们会将RMSpropMomentum结合起来,我们在Momentum中采用超参数 β \beta β ,为了避免混淆,我们现在不用 β \beta β ,而采用超参数 β 2 \beta_2 β2 以保证在MomentumRMSprop中采用同一超参数。要确保你的算法不会除以0,如果 S d W S_{dW} SdW 的平方根趋近于0怎么办?得到的答案就非常大,为了确保数值稳定,在实际操练的时候,你要在分母上加上一个很小很小的 ϵ \epsilon ϵ ϵ \epsilon ϵ 是多少没关系, 1 0 − 8 10^{-8} 108 是个不错的选择,这只是保证数值能稳定一些,无论什么原因,你都不会除以一个很小很小的数。所以RMSpropMomentum有很相似的一点,可以消除梯度下降中的摆动,包括mini-batch梯度下降,并允许你使用一个更大的学习率 α \alpha α ,从而加快你的算法学习速度。

在这里插入图片描述

所以你学会了如何运用RMSprop,这是给学习算法加速的另一方法。关于RMSprop的一个有趣的事是,它首次提出并不是在学术研究论文中,而是在多年前Jeff HintonCoursera的课程上。我想Coursera并不是故意打算成为一个传播新兴的学术研究的平台,但是却达到了意想不到的效果。就是从Coursera课程开始,RMSprop开始被人们广为熟知,并且发展迅猛。

我们讲过了Momentum,我们讲了RMSprop,如果二者结合起来,你会得到一个更好的优化算法,在下个视频中我们再好好讲一讲为什么。

课程PPT

在这里插入图片描述
在这里插入图片描述


←上一篇↓↑下一篇→
2.6 动量梯度下降法回到目录2.8 Adam 优化算法

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhao-Jichao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值