神经网络优化——梯度下降常用算法:随机梯度下降、批处理梯度下降、Momentum、move average、RMSprop、Adma

神经网络优化——梯度下降常用算法:min-batch、随机梯度下降(SGD)、批量梯度下降、Momentum、move average、RMSprop、Adma

简介

  • 梯度下降算法是应用于神经网络反向传播过程的计算梯度,然后更新参数,最终找到最优的位置。本博客主要介绍随机梯度下降、批处理梯度下降、Momentum、move average、RMSprop、Adma。也是对Andrew NG 的deeplearning.ai 课程的部分内容进行总结。
    在这里插入图片描述

算法原理

  • 1、 随机梯度下降和批量梯度下降都是基于min-batch的,他们区别是 batch size大小不一样。

    • min-batch就是把数据分为 n u m b e r s m i n − b a t c h \frac{numbers}{min-batch} minbatchnumbers组, n u m b e r s numbers numbers代表样本总数目,每组里有 m i n − b a t c h min-batch minbatch个样本,随机梯度下降就是 min-batch size = 1。批处理是m-batch size >1,正常是 2 n 2^n 2n(64 128 256 512 1024 …),假设loss是Cross Entrophy, Cross Entrophy 公式里的 m m m就是等于min-batch size。按批次的计算梯度和loss,而不是所有样本处理完再计算,这样会加快训练速度.
      在这里插入图片描述
      上图左边图像就是没采用mini-batch策略的loss图,右侧是采用mini-batch策略,可以看出来右边曲线上下抖动,那是因为参数可能对有些batcn里面数据效果比较好或差,不过只要有下降趋势,效果还是比左侧图好并训练速度更快。
  • 2、 move average
    move average也称为指数加权平均算法。用前面一个优化后的值和当前值进行加权计算,优化当前值,让曲线更加平滑。
    在这里插入图片描述
    v t = β v t − 1 + ( 1 − β ) θ t ( 1 ) v_t = \beta v_{t-1} + (1-\beta) \theta_t \qquad(1) vt=βvt1+(1β)θt(1)
    v t v_t vt:代表 t t t时刻优化后的 v v v,上图就是 t t t时刻优化后温度
    v t − 1 v_{t-1} vt1:代表 t − 1 t-1 t1时刻优化后的温度。
    β \beta β:代表权重,正常取0.8-0.999,正常取0.9.
    θ t \theta_t θt:代表 t t t时刻的值,上图就是 t t t时刻的温度
    利用 v t − 1 、 β 、 θ t v_{t-1}、 \beta、\theta_t vt1βθt优化 v t v_{t} vt,优化后的曲线。
    在这里插入图片描述

    • move average 偏差纠正,由于 v 0 初 始 时 候 v 0 = 0 v_0初始时候 v_0=0 v0v0=0,所以 v 1 = β v 0 + ( 1 − β ) θ 1 = ( 1 − β ) θ 1 v_1 = \beta v_0 + (1- \beta)\theta_1 = (1-\beta)\theta_1 v1=βv0+(1β)θ1=(1β)θ1会造成刚开始时候 v t v_t vt较小,很偏离 θ t \theta_t θt,所以要进行偏差纠正。用公式(1)计算完后,再对 v t v_t vt纠正偏差。
      v t = v t 1 − β t ( 2 ) v_t = \frac{vt}{1-\beta^t}\qquad(2) vt=1βtvt(2)
  • 3、Momentum 梯度下降算法是结合move average的。在神经网络中,主要计算梯度 d W , d b dW,db dW,db, α \alpha α代表学习速率。这里就举例这两个。moment就是对 d W , d b dW,db dW,db进行优化。 v d W 、 v d b 初 始 化 为 0 , 维 度 和 W 、 b 相 同 vdW、vdb初始化为0,维度和W、b 相同 vdWvdb0,Wb
    v d W = β ∗ v d W + ( 1 − β ) d W ( 3 ) vdW = \beta *vdW + (1-\beta)dW \qquad (3) vdW=βvdW+(1β)dW(3)
    v d b = β ∗ v d b + ( 1 − β ) d b ( 4 ) vdb = \beta *vdb + (1-\beta)db \qquad(4) vdb=βvdb+(1β)db(4)
    W : = W − α ∗ v d W ( 5 ) W := W - \alpha*vdW \qquad(5) W:=WαvdW(5)
    b : = b − α ∗ v d b ( 6 ) b := b - \alpha*vdb\qquad(6) b:=bαvdb(6)

  • 4、RMSprop梯度下降优化算法
    RMSprop和momentum区别就是对 d W d b dW db dWdb取平方,是整个矩阵平方。
    s d W = β ∗ s d W + ( 1 − β ) d W 2 ( 7 ) sdW = \beta *sdW + (1-\beta)dW^2 \qquad (7) sdW=βsdW+(1β)dW2(7)
    s d b = β ∗ s d b + ( 1 − β ) d b 2 ( 8 ) sdb = \beta *sdb + (1-\beta)db^2 \qquad(8) sdb=βsdb+(1β)db2(8)
    W : = W − α ∗ d W s d W ( 9 ) W := W - \alpha*\frac{dW}{\sqrt {sdW}} \qquad(9) W:=WαsdW dW(9)
    b : = b − α ∗ d b s d b ( 10 ) b := b - \alpha*\frac{db}{\sqrt{sdb}}\qquad(10) b:=bαsdb db(10)

  • 5、Adam*梯度优化算法
    Adam是把momentum和RMSprop结合起来,有个特点就是他的超参比较多。 β 1 、 β 2 、 α \beta_1、\beta_2、\alpha β1β2α,主要是调节参数 α \alpha α
    v d W = β 1 ∗ v d W + ( 1 − β 1 ) d W ( 11 ) vdW = \beta_1 *vdW + (1-\beta_1)dW \qquad (11) vdW=β1vdW+(1β1)dW(11)
    v d b = β 1 ∗ v d b + ( 1 − β 1 ) d b ( 12 ) vdb = \beta_1 *vdb + (1-\beta_1)db \qquad(12) vdb=β1vdb+(1β1)db(12)
    s d W = β 2 ∗ s d W + ( 1 − β 2 ) d W 2 ( 13 ) sdW = \beta_2 *sdW + (1-\beta_2)dW^2 \qquad (13) sdW=β2sdW+(1β2)dW2(13)
    s d b = β 2 ∗ s d b + ( 1 − β 2 ) d b 2 ( 14 ) sdb = \beta_2 *sdb + (1-\beta_2)db^2 \qquad(14) sdb=β2sdb+(1β2)db2(14)
    W : = W − α ∗ v d W s d W ( 15 ) W := W - \alpha*\frac{vdW}{\sqrt {sdW}} \qquad(15) W:=WαsdW vdW(15)
    b : = b − α ∗ v d b s d b ( 16 ) b := b - \alpha*\frac{vdb}{\sqrt{sdb}}\qquad(16) b:=bαsdb vdb(16)

总结

  • 利用指数加权平均可以让梯度在纵轴方向上下抖动减小,加快训练和收敛。
    在这里插入图片描述
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值