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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值