优化器是用来干嘛的?
方法=模型+策略+算法
模型=logistic回归
策略=损失函数
算法=求解损失函数的方法,优化器
核心:如何更新权重
优化器主要分为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 虽然能达到极小值,但是比其它算法用的时间长,而且可能会被困在鞍点。
如果需要更快的收敛,或者是训练更深更复杂的神经网络,需要用一种自适应的算法。
公司名称: 亚游-亚游娱乐-注册登录站
手 机: 13800000000
电 话: 400-123-4567
邮 箱: admin@youweb.com
地 址: 广东省广州市天河区88号