当前位置:   article > 正文

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

带动量的随机梯度下降法

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}',然后再求梯度。

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

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/338830?site
推荐阅读
相关标签
  

闽ICP备14008679号