常用优化器的详细解析请参考此文章:
- 通俗理解 Adam 优化器
- #深度解析# 深度学习中的SGD、BGD、MBGD、Momentum、NAG、Adagrad、Adadelta,RMSprop、Adam优化器
通过上边两幅图片可知:
- Adam在训练集上的准确率较高,MSGD在测试集上的准确率较高
- Adam的速度更快,但MSGD能够得到好的效果
Adam 得到最优解多数时候是 Sharp Minimum,而 MSGD 得到往往是Flat Minimum,这也就解释了为什么MSGD在测试集上能够得到更好的效果
至于第二个结论,原因是 Adam 在 MSGD的基础上增加了自适应学习率机制,能够使Adam针对不同的参数分配不同的学习率,从而增加优化速度
Lookahead(k step forward,1 step back)本质上是一种在各种优化器上层的一种优化器方法,内部可以使用任何形式的优化器,用作者的话说就是:universal wrapper for all optimizers
Lookahead 的就是:没使用优化器向前走k步,就对当前的第1步和第k步做一个加权平均(忽略中间的k-2步);以下图为例,蓝色线是优化器走的k步路径,然后将蓝线的起始点连接(图中红线),然后在红线上取一点作为k+1步的值(根据 α 而定)
在神经网络中,为了提高网络的泛化性我们一般会在损失函数中增加 L2 正则,这种网络使用Adam和SGDM优化器会出现问题