优化算法(Optimizer)总结

BGD SGD Mini-batch
Momentum NAG
深度学习常见的优化方法(Optimizer)总结:Adam,SGD,Momentum,AdaGard等
知乎 张戎:深度学习中的优化算法
优化方法——AdaGrad、RMSProp、Adam

SGD

花书

SGD+Momentum

花书

alpha越大,惯性也就越大


这个地方为什么是 :
假设初始 ,因为总是观测到梯度g,所以g不变。



(等比数列求和)

SGD+Nesterov

提前先更新一下参数得到。这个好像不咋用。

花书

Adagrad


此前我们都没有用到二阶动量。二阶动量的出现,才意味着“自适应学习率”优化算法时代的到来。

1.简单来讲,设置全局学习率之后,每次通过,全局学习率逐参数的除以历史梯度平方和的平方根,使得每个参数的学习率不同

2.效果是:在参数空间更为平缓的方向,会取得更大的进步(因为平缓,所以历史梯度平方和较小,对应学习下降的幅度较小)

3.缺点是,使得学习率过早,过量的减少

4.在某些模型上效果不错。

  • 问题:为啥Adagrad在下图效果会好??不就是速度逐渐减小了?方向跟sgd还是一样的。

RMSprop:(root mean square propagation)

花书

修改的思路很简单。前面我们讲到,指数移动平均值大约就是过去一段时间的平均值,因此我们用这一方法来计算二阶累积动量。这就避免了二阶动量持续累积、导致训练过程提前结束的问题了。

花书

Adam

Adam:集大成
SGD-M在SGD基础上增加了一阶动量,AdaGrad和AdaDelta在SGD基础上增加了二阶动量。把一阶动量和二阶动量都用起来,就是Adam了——Adaptive + Momentum。

花书

可视化

你可能感兴趣的:(优化算法(Optimizer)总结)