深度学习-带动量的随机梯度下降算法
1.指数加权平均
类比n个数求平均:
如果 表示前
个数的平均,
表示第
个数,那么
个数的指数加权平均定义为:
其展开为:
....
则有
全部展开有
将提取出来得
可以看出来,括号中即为加权平均系数(完整系数应该是
与
的乘积,为了便于理解此处忽略
),又因为
为指数形式,所以称之为指数加权平均。
2.动量
众所周知,使用梯度下降算法更新参数的公式为:
(
为梯度,
是学习率)
在具体的迭代过程中,上式只利用本次迭代计算的梯度更新参数,而加入动量机制则是考虑了之前每次迭代计算的梯度。
3.带动量的随机梯度下降算法中参数更新公式
设动量为 ,其动量更新公式:
(
是本次更新之前的动量,参考上面的指数加权平均)
动量v其实是负梯度(梯度方向表示上升最快的方向,反方向则表示下降最快的方向)的指数加权平均,所以v是负数,所以上面的参数更新公式中是加上v,算法如下:
4.Nesterov动量
相比于标准动量(上面描述的动量),Nesterov动量在计算梯度之前,首先用
更新了参数:
,然后再求梯度。
其步骤除了求梯度之前更新了参数之外,其他步骤和标准动量的步骤一致,具体算法如下。