当前位置:   article > 正文

0.1## 梯度下降的优化算法,SGD中的momentum冲量的理解_sgd momentum如何取值

sgd momentum如何取值

0.1梯度下降的优化算法,SGD中的momentum冲量的理解

前言

在学习卷积神经网络的时候,会遇见一个优化器SGD算法,对于全梯度下降、随机梯度下降、minibatch梯度下降学习了之后,写代码的时候发现有一个momentum的参数,如下所示:

optimizer = optim.SGD(model.parameters(), lr=(0.1), momentum=0.9)
  • 1

其中momentum为冲量。具体是什么意思呢?

一个例子方便您的理解

给出某地区的一年全部气温:

1.第一天气温:40
2.第二天气温:49
3.第三天气温:45
4. …
5. 第一百八十天气温:56
则给出下列公式:
在这里插入图片描述

去β=0.9
将数据带入公式之中得到:
在这里插入图片描述
其中v是移动指数加权平均,所对应的是右图红色的线条。从上式可以看出指数加权平均是有记忆的,每一个v都包含了之前所有数据的信息。

在这里插入图片描述
公式中的β就是所谓的冲量,我们可以看出,冲量的取值可以有效修改曲线的平滑程度,若冲量取得太大,所抑制曲线波动能力太强,则会导致曲线整体偏移,所以选取β=0.9为最佳

在实践中,在衰减初期我们需要对偏差进行修正:在这里插入图片描述

带有动量的SGD本质:使用指数加权平均之后的梯度代替原梯度进行参数更新。因为每个指数加权平均后的梯度含有之前梯度的信息,动量梯度下降法因此得名。

对于神经网络的应用

在进行反向传播的时候,我们会对每一个权重进行更新,每一个权重就像气温一样是参数,我们需要对每一个权重进行动量优化,利用一下公式:

在这里插入图片描述
在这里插入图片描述
利用指数加权平均的思想,平滑梯度的计算,进而加快模型的收敛速度

数据来源:
BV1nd4y1X7KN

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号