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

编程入门 行业动态 更新时间:2024-10-27 11:25:37

0.1## 梯度下降的优化算法,SGD中的momentum<a href=https://www.elefans.com/category/jswz/34/1762418.html style=冲量的理解"/>

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

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

前言

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

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

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

一个例子方便您的理解

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

1.第一天气温:40
2.第二天气温:49
3.第三天气温:45
4. …
5. 第一百八十天气温:56
则给出下列公式:

去β=0.9
将数据带入公式之中得到:

其中v是移动指数加权平均,所对应的是右图红色的线条。从上式可以看出指数加权平均是有记忆的,每一个v都包含了之前所有数据的信息。


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

在实践中,在衰减初期我们需要对偏差进行修正:

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

对于神经网络的应用

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



利用指数加权平均的思想,平滑梯度的计算,进而加快模型的收敛速度

数据来源:
BV1nd4y1X7KN

更多推荐

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

本文发布于:2024-03-23 18:00:46,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1741143.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:冲量   梯度   算法   momentum   SGD

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!