Pytorch学习日志(5)——反向传播算法以及各种优化算法的变式

反向传播算法

反向传播算法本质上是一个链式求导法则的应用。

链式法则

在这里插入图片描述

反向传播算法


首先对公示拆分为几个基本函数;
线上为函数的值,线下为原函数对其求导后的值。

Sigmoid函数举例

在这里插入图片描述
在这里插入图片描述

各种优化算法的变式

梯度下降法的变式

SGD

每次使用一批数据进行梯度计算,但不是计算全部数据的梯度。
易于跳出局部极小点。

在运行代码时,input与out都是含多个样本的一个Tensor。那么Loss函数对这个Tensor如何操作呢?
我认为是对out和target的每一个样本点进行求和或连乘操作,得到一个实数。
那么SGD又是如何操作的呢?
SGD只选取了这些样本中的一个样本进行更新,并不是每个都取一遍求平均之类的操作。

Momentum

在梯度下降的同时,增加动量。
高处滑落的势能转化为了平地的动能,用惯性帮助其跳出局部极小点。
在之前的学习当中也讲过。

Adagrad

自适应学习率的方法。
在这里插入图片描述
学习率在不断变小,且受到每次计算出来的梯度影响。根号十分重要,去掉的话,影响十分大。epsilon是一个平滑参数,通常设置为十的负四次方到十的负八次方,这是为了避免分母为0.
缺点:在某些情况下一直递减的学习率并不好,会造成学习过早停止。

RMSprop

自适应学习率的改进方法。
公式为:
在这里插入图片描述
在这里插入图片描述
alpha是一个衰减率,不会将前面所有的梯度平方求和,而是通过衰减率将其变小。越靠前面的梯度对自适应的学习率影响越小,有效避免了学习率递减太多的问题。

Adam

在RMSprop中加上Momentum。

常用Adam+Momentum或者SGD+Momentum

问题:Adagrad和RMSprop的数学公式需再进一步推导一下。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

右边是我女神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值