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

1.指数加权平均

类比n个数求平均:深度学习-带动量的随机梯度下降算法

如果 深度学习-带动量的随机梯度下降算法 表示前 深度学习-带动量的随机梯度下降算法 个数的平均,深度学习-带动量的随机梯度下降算法 表示第 深度学习-带动量的随机梯度下降算法 个数,那么 深度学习-带动量的随机梯度下降算法 个数的指数加权平均定义为:

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

其展开为:

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

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

                                         ....

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

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

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

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

         全部展开有          深度学习-带动量的随机梯度下降算法

    将深度学习-带动量的随机梯度下降算法提取出来得        深度学习-带动量的随机梯度下降算法深度学习-带动量的随机梯度下降算法

可以看出来,括号中深度学习-带动量的随机梯度下降算法即为加权平均系数完整系数应该是深度学习-带动量的随机梯度下降算法深度学习-带动量的随机梯度下降算法的乘积,为了便于理解此处忽略深度学习-带动量的随机梯度下降算法),又因为深度学习-带动量的随机梯度下降算法为指数形式,所以称之为指数加权平均。                                

2.动量

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

                                         深度学习-带动量的随机梯度下降算法深度学习-带动量的随机梯度下降算法为梯度,深度学习-带动量的随机梯度下降算法是学习率)

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

 

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

设动量为  深度学习-带动量的随机梯度下降算法  ,其动量更新公式:

                                       深度学习-带动量的随机梯度下降算法   (深度学习-带动量的随机梯度下降算法是本次更新之前的动量,参考上面的指数加权平均)

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

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

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

4.Nesterov动量

相比于标准动量(上面描述的动量),Nesterov动量在计算梯度深度学习-带动量的随机梯度下降算法之前,首先用深度学习-带动量的随机梯度下降算法更新了参数:深度学习-带动量的随机梯度下降算法,然后再求梯度。

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

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