Pytorch(六)优化器

优化器是用来干嘛的?
方法=模型+策略+算法
模型=logistic回归
策略=损失函数
算法=求解损失函数的方法,优化器
核心:如何更新权重

一.了解不同优化器

优化器主要分为3类梯度下降、动量优化法、自适应学习率优化。主要关注各种方法如何更新权重。

1、梯度下降

用于更新权重的误差不同
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

2、动量优化器

用于更新当前梯度的不止是代价函数当前的梯度,而是当前梯度与前一次更新时的梯度之和。
在这里插入图片描述

3、自适应学习率优化算法

对学习率η进行调整
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参考链接:
https://blog.csdn.net/weixin_40170902/article/details/80092628
https://blog.csdn.net/u010977034/article/details/82712471

2.代码实现
优化器参数选择
pytorch库的调用
按公式编写的优化器
在mnist中实现优化器
我的代码:https://github.com/viki6666/Pytorch_learn/blob/master/Optim.ipynb
3.PyTorch种优化器选择
如果数据是稀疏的,就用自适应方法,即 Adagrad, Adadelta, RMSprop, Adam。

RMSprop, Adadelta, Adam 在很多情况下的效果是相似的。

Adam 就是在 RMSprop 的基础上加了 bias-correction 和 momentum。

随着梯度变的稀疏,Adam 比 RMSprop 效果会好。

整体来讲,Adam 是最好的选择。

很多论文里都会用 SGD,没有 momentum 等。SGD 虽然能达到极小值,但是比其它算法用的时间长,而且可能会被困在鞍点。

如果需要更快的收敛,或者是训练更深更复杂的神经网络,需要用一种自适应的算法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值