深度学习-带动量的随机梯度下降算法

1.指数加权平均

类比n个数求平均:average=\frac{1+2+3+....+n}{n}

如果 v_{t-1} 表示前 t-1 个数的平均,n_{t} 表示第 t 个数,那么 t 个数的指数加权平均定义为:

                                       v_{t}=\alpha v_{t-1}+\beta n_{t}       

其展开为:

                                       v_{t-1}=\alpha v_{t-2}+\beta n_{t-1}

                                       v_{t-2}=\alpha v_{t-3}+\beta n_{t-2}

                                         ....

                                       v_{3}=\alpha v_{2}+\beta n_{3}

                                       v_{2}=\alpha v_{1}+\beta n_{2}

                                       v_{1}=\beta n_{1}

                          则有    v_{t}=\alpha (\alpha v_{t-2}+\beta n_{t-1})+\beta n_{t}=\alpha ^{2}v_{t-2}+\alpha \beta n_{t-1}+\beta n_{t}=.......

         全部展开有          v_{t}=\alpha ^{t-1}\beta n_{1}+\alpha ^{t-2}\beta n_{2}+\alpha ^{t-3}\beta n_{3}+.......+\alpha \beta n_{t-1}+\beta n_{t}

    将\beta提取出来得        v_{t}=\beta (\alpha ^{t-1} n_{1}+\alpha ^{t-2} n_{2}+\alpha ^{t-3} n_{3}+.......+\alpha n_{t-1}+ n_{t})

可以看出来,括号中\alpha即为加权平均系数完整系数应该是\alpha\beta的乘积,为了便于理解此处忽略\beta),又因为\alpha为指数形式,所以称之为指数加权平均。                                

2.动量

众所周知,使用梯度下降算法更新参数的公式为:

                                         \Theta=\Theta -\epsilon \Delta\Delta为梯度,\epsilon是学习率)

在具体的迭代过程中,上式只利用本次迭代计算的梯度更新参数,而加入动量机制则是考虑了之前每次迭代计算的梯度。

 

3.带动量的随机梯度下降算法中参数更新公式

设动量为  v  ,其动量更新公式:

                                       v=\alpha {v}'-\epsilon \Delta   ({v}'是本次更新之前的动量,参考上面的指数加权平均)

                                       \Theta =\Theta +v        

 动量v其实是负梯度(梯度方向表示上升最快的方向,反方向则表示下降最快的方向)的指数加权平均,所以v是负数,所以上面的参数更新公式中是加上v,算法如下:

4.Nesterov动量

相比于标准动量(上面描述的动量),Nesterov动量在计算梯度\Delta之前,首先用{v}'更新了参数:{\Theta }'=\Theta +\alpha {v}',然后再求梯度。

其步骤除了求梯度之前更新了参数之外,其他步骤和标准动量的步骤一致,具体算法如下。

 

 

 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值