机器学习基础篇-梯度优化方法2

动量梯度下降

Gradient Descent with Momentum

先上公式:
在 每 一 个 时 刻 t 的 m i n i − b a t c h 迭 代 中 1 ) 计 算 d W , d b 2 ) V d W = β V d W + ( 1 − β ) d W 3 ) V d b = β V d b + ( 1 − β ) d b 4 ) W : = W − α V d W 5 ) b : = b − α V d b \begin{aligned} &在每一个时刻t的mini-batch迭代中\\ &1)计算dW,db\\ &2)V_{dW} = \beta V_{dW}+(1-\beta)dW\\ &3)V_{db} = \beta V_{db}+(1-\beta)db\\ &4)W := W - \alpha V_{dW} \\ &5)b := b - \alpha V_{db} \end{aligned} tminibatch1)dW,db2)VdW=βVdW+(1β)dW3)Vdb=βVdb+(1β)db4)W:=WαVdW5)b:=bαVdb

在上面公式中展示的超参数由α(学习率)和β,在公式中,会引入动量的维度,V_dW是之前的历史梯度信息。如果我们设置β=0.9,这意味着我们要考虑最近 10 次迭代的梯度来更新参数。每一次梯度更新,都会考虑到上两次梯度更新的情况。

RMS-PROP

先上公式:
在 每 一 个 时 刻 t 的 m i n i − b a t c h 迭 代 中 1 ) 计 算 d W , d b 2 ) S d W = β S d W + ( 1 − β ) ( d W ) 2 3 ) S d b = β S d b + ( 1 − β ) ( d b ) 2 4 ) W : = W − α d W S d W + ε 5 ) b : = b − α d b S d b + ε \begin{aligned} &在每一个时刻t的mini-batch迭代中\\ &1)计算dW,db\\ &2)S_{dW} = \beta S_{dW}+(1-\beta)(dW)^2\\ &3)S_{db} = \beta S_{db}+(1-\beta)(db)^2\\ &4)W := W - \alpha \frac{dW}{\sqrt {S_{dW}}+\varepsilon} \\ &5)b := b - \alpha \frac{db}{\sqrt {S_{db}}+\varepsilon} \end{aligned} tminibatch1)dW,db2)SdW=βSdW+(1β)(dW)23)Sdb=βSdb+(1β)(db)24)W:=WαSdW +εdW5)b:=bαSdb +εdb
RMS-PROP会根据上一步梯度更新的情况,改变当前梯度更新的步子Step的大小

Adam ( Momentum + RMSprop )

先上公式:
V d w t = β 1 V d w t − 1 + ( 1 − β 1 ) d W t V d b t = β 1 V d b t − 1 + ( 1 − β 1 ) d b t S d w t = β 2 S d w t − 1 + ( 1 − β 2 ) ∣ ∣ d w t ∣ ∣ 2 S d b t = β 2 S d b t − 1 + ( 1 − β 2 ) ∣ ∣ d b t ∣ ∣ 2 V d w c o r r e c t e d = V d w 1 − β 1 t V d b c o r r e c t e d = V d b 1 − β 1 t S d w c o r r e c t e d = S d w 1 − β 2 t S d b c o r r e c t e d = S d b 1 − β 2 t W = w − α V d w c o r r e c t e d S d w c o r r e c t e d + ϵ b = b − α V d b c o r r e c t e d S d b c o r r e c t e d + ϵ \begin{aligned} &V_{dw}^t = \beta_1V_{dw}^{t-1}+(1-\beta_1)dW^{t}\\ &V_{db}^t = \beta_1V_{db}^{t-1}+(1-\beta_1)db^{t}\\ &S_{dw}^t = \beta_2S_{dw}^{t-1} + (1-\beta_2)||dw^{t}||^2\\ &S_{db}^t = \beta_2S_{db}^{t-1} + (1-\beta_2)||db^{t}||^2\\ &V^{corrected}_{dw} = \frac{V_{dw}}{1-\beta_1^{t}}\\ &V^{corrected}_{db} = \frac{V_{db}}{1-\beta_1^{t}}\\ &S^{corrected}_{dw} = \frac{S_{dw}}{1-\beta_2^{t}}\\ &S^{corrected}_{db} = \frac{S_{db}}{1-\beta_2^{t}}\\ &W = w-\alpha\frac{V^{corrected}_{dw}}{\sqrt{S^{corrected}_{dw}}+\epsilon}\\ &b = b-\alpha\frac{V^{corrected}_{db}}{\sqrt{S^{corrected}_{db}}+\epsilon} \end{aligned} Vdwt=β1Vdwt1+(1β1)dWtVdbt=β1Vdbt1+(1β1)dbtSdwt=β2Sdwt1+(1β2)dwt2Sdbt=β2Sdbt1+(1β2)dbt2Vdwcorrected=1β1tVdwVdbcorrected=1β1tVdbSdwcorrected=1β2tSdwSdbcorrected=1β2tSdbW=wαSdwcorrected +ϵVdwcorrectedb=bαSdbcorrected +ϵVdbcorrected

Adam会引入动量和方向这两个维度,根据上一步梯度更新的情况,改变当前梯度更新的步子Step的大小和步子变化方向V

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mr.Wiggles

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

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

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

打赏作者

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

抵扣说明:

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

余额充值