深度学习算法优化背景知识---指数加权平均

背景:在深度学习优化算法,如:Momentum、RMSprop、Adam中都涉及到指数加权平均这个概念。为了系统的理解上面提到的三种深度学习优化算法,先着重理解一下指数加权平均(exponentially weighted averages)

定义

指数移动平均(EMA)也称为指数加权移动平均(EWMA),是一种求平均数的方法,应用指数级降低的加权因子。 每个较旧数据的权重都呈指数下降,从未达到零。

m个数据的数据集 [θ1,θ2,...,θm] [ θ 1 , θ 2 , . . . , θ m ]

  • 平均数的一般求解方法: vaver=θ1+θ2+...+θmm v a v e r = θ 1 + θ 2 + . . . + θ m m ;
  • 指数加权平均的求解方法:
    • 参数 β β , v0=0 v 0 = 0 ;
    • vt=βvt1+(1β)θt v t = β v t − 1 + ( 1 − β ) θ t :前t个样本的平均数由前(t-1)个样本的平均数和第t个样本决定
符号含义
β β 参数
v0 v 0 初始平均值
vt v t 前t条记录的平均值
θt θ t 第t条记录值

举例

有100天伦敦温度记录 [θ1,θ2,...,θ100] [ θ 1 , θ 2 , . . . , θ 100 ] ,计算伦敦100天温度平均值。如果 β=0.9 β = 0.9

计算公式:

展开公式:

即: v100=0.1θ100+0.10.9θ99+0.1(0.9)2θ98+...+0.10.999θ1 v 100 = 0.1 θ 100 + 0.1 ∗ 0.9 θ 99 + 0.1 ∗ ( 0.9 ) 2 θ 98 + . . . + 0.1 ∗ 0.9 99 θ 1

可以看出:各个记录前的权重系数是以指数级下降的,但不为0。所以这种平均值的求解方法称为指数加权平均

温度平均值变化图:

平均值

应用

主要用在深度学习优化算法中,用来修改梯度下降算法中参数的更新方法

在优化算法中, 11β 1 1 − β 可以粗略表示指数加权平均考虑的样本数[由于随着样本容量t的逐渐增多,其系数指数下降,对平均值的贡献程度逐渐降低;影响平均值计算的几个关键样本就是最近几天的样本值,而这个样本量可以通过 11β 1 1 − β 来进行大致估算]。

Momentum

初始化: vdW=np.zeros(dW.shape) v d W = n p . z e r o s ( d W . s h a p e ) ; vdb=np.zeros(db.shape) v d b = n p . z e r o s ( d b . s h a p e ) —-初始为0;分别与dW、db shape相同;

  • vdW v d W vdb v d b 用来计算关于 W W b 梯度的平均值;

在第t次迭代中On iteration t t :

  • Compute dW, db d b on the current mini-batch; 现在当前batch中计算 dW d W db d b ;

    • vdW=βvdW+(1β)dW v d W = β v d W + ( 1 − β ) d W 【计算关于 dW d W 的平均。解释:dW看做是加速度, vdW v d W 下山速度, β β 摩擦系数; momentum动量】
    • vdb=βvdb+(1β)db v d b = β v d b + ( 1 − β ) d b 【计算关于 db d b 的平均】
    • W=WαvdW,b=bαvdb W = W − α v d W , b = b − α v d b 【参数更新:用关于 W W b 梯度的平均值来替换原来的 dW d W db d b
    • 超参数: α,β α , β , — β β usually be 0.9. (a very robust number)

      RMSprop

      初始化: SdW=np.zeros(dW.shape) S d W = n p . z e r o s ( d W . s h a p e ) ; Sdb=np.zeros(db.shape) S d b = n p . z e r o s ( d b . s h a p e ) —-初始为0;分别与dW、db shape相同;

      在t次迭代中On iteration t t :

      • Compute dW, db d b on current mini-batch

      • vdW=βvdW+(1β)(dW)2 v d W = β v d W + ( 1 − β ) ( d W ) 2 ; vdb=βvdb+(1β)(db)2 v d b = β v d b + ( 1 − β ) ( d b ) 2 【计算梯度平方的平均值】
      • W=WαdWvdW+ϵ W = W − α d W v d W + ϵ ; b=bαdbvdb+ϵ b = b − α d b v d b + ϵ 【参数更新:除以平方根;加上 ϵ ϵ 防止开平方根过小】
      • Adam = Momentum + RMSprop

        初始化: vdW=np.zeros(dW.shape) v d W = n p . z e r o s ( d W . s h a p e ) ; SdW=np.zeros(dW.shape) S d W = n p . z e r o s ( d W . s h a p e ) ; vdb=np.zeros(db.shape) v d b = n p . z e r o s ( d b . s h a p e ) Sdb=np.zeros(db.shape) S d b = n p . z e r o s ( d b . s h a p e ) ; —-初始为0;分别与dW、db shape相同;【 vdW v d W vdb v d b 是Momentum算法; SdW S d W Sdb S d b 是RMSprop优化算法】

        t次迭代过程On iteration t t :

        • Compute dW,db on current mini-batch;

        • vdW=β1vdW+(1β1)dW v d W = β 1 v d W + ( 1 − β 1 ) d W , vdb=β1vdb+(1β1)db v d b = β 1 v d b + ( 1 − β 1 ) d b ———–“Momentum” 超参数: β1 β 1
        • SdW=β2SdW+(1β2)(dW)2 S d W = β 2 S d W + ( 1 − β 2 ) ( d W ) 2 , Sdb=β2Sdb+(1β2)(db)2 S d b = β 2 S d b + ( 1 − β 2 ) ( d b ) 2 ————“RMSprop” 超参数: β2 β 2
        • biases correction 偏差修正:
          • vcorrectdW=vdW(1βt1) v d W c o r r e c t = v d W ( 1 − β 1 t ) , vcorrectdb=vdb(1βt1) v d b c o r r e c t = v d b ( 1 − β 1 t ) ;
          • ScorrectdW=SdW(1βt2) S d W c o r r e c t = S d W ( 1 − β 2 t ) , Scorrectdb=Sdb(1βt2) S d b c o r r e c t = S d b ( 1 − β 2 t ) ;
        • W=WαvcorrectdWScorrectdW+ϵ W = W − α v d W c o r r e c t S d W c o r r e c t + ϵ , b=bαvcorrectdbScorrectdb+ϵ b = b − α v d b c o r r e c t S d b c o r r e c t + ϵ 【更新方法:结合Momentum和RMSprop优化算法】
        • 问题及改正

          存在问题

          指数加权平均早期估算过程中存在:偏差

          由于指数加权平均初始值 v0=0 v 0 = 0 β=0.9 β = 0.9 则:

          • v1=0.9v0+0.1θ1=0.1θ1 v 1 = 0.9 ∗ v 0 + 0.1 ∗ θ 1 = 0.1 θ 1
          • v2=0.9v1+0.1θ2=0.09θ1+0.1θ2 v 2 = 0.9 ∗ v 1 + 0.1 ∗ θ 2 = 0.09 θ 1 + 0.1 θ 2

          就是说在平均值求解的刚开始几次计算过程中,计算的平均值过小,偏差过大。表现在下面的图里,绿线 是理想情况;紫线 是指数加权平均线。可以看出前几次平均值紫线比绿线要高一些! 紫线早期过下,偏差过大。

          改正方法

          进行偏差纠正。

          将计算的平均值结果除以 1βt 1 − β t ,即 vt=vt1βt=βvt1+(1β)θt1βt v t = v t 1 − β t = β v t − 1 + ( 1 − β ) θ t 1 − β t ;

          从计算公式可以看出 vt v t 随着计算样本t的增大,不断接近于没有进行偏差纠正的指数加权平均值。在图中表现就是随着样本的增大,紫线和绿线逐渐重合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值