Pytorch Note21 优化算法对比

Posted Real&Love

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pytorch Note21 优化算法对比相关的知识,希望对你有一定的参考价值。

Pytorch Note21 优化算法对比

全部笔记的汇总贴:Pytorch Note 快乐星球

在Note15-20中,我们介绍了多种基于梯度的参数更新方法,实际中,我们可以使用Adam作为默认的优化算法,往往能够达到比较好的效果,同时SGD+Momentum的方法也值得尝试。

下面放一张各个优化算法的对比图

SGD optimization on saddle point

img

这两张图生动形象地展示了各种优化算法的实际效果,上面两种情况都可以看出,Adagrad, Adadelta, RMSprop 几乎很快就找到了正确的方向并前进,收敛速度也相当快,而其它方法要么很慢,要么走了很多弯路才找到。

如何选择优化算法

如果数据是稀疏的,就用自适用方法,即 Adagrad, Adadelta, RMSprop, Adam。

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

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

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

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

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

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

以上是关于Pytorch Note21 优化算法对比的主要内容,如果未能解决你的问题,请参考以下文章

Pytorch Note20 优化算法6 Adam算法

Pytorch Note18 优化算法4 RMSprop算法

Pytorch Note15 优化算法1 梯度下降(Gradient descent varients)

Pytorh Note19 优化算法5 Adadelta算法

Pytoch Note17 优化算法3 Adagrad算法

工科生实用链接(图像处理优化算法压缩深度学习)