一、梯度下降法
二、SGD
这里SGD和min-batch是同一个意思,抽取m个小批量(独立同分布)样本,通过计算他们的梯度均值。后面几个改进算法,均采用mini-batch的方式。
三、动量梯度下降法(Mometum)
由于SGD具有强烈的振荡,momentum就是为了缓解这种振荡而提出的:
直观上讲就是,要是当前时刻的梯度与历史时刻梯度方向相似,这种缺失在当前时刻则会加强;要是不同,则当前时刻的梯度方向减弱。
四、AdaGrad
自适应梯度。通过将learning rate除以S的平方根进行更新。S指的是历史和当前梯度的平方的累加。
当前梯度越大,S越大,学习率越小;当前梯度越小,S越小,学习率越大;
五、RMSProp
是对AdaGrad的一种改进。
六、Adam
是对Momentum和RMProp的一个结合。
综合解决:振荡和自适应学习率的问题。
1. Adam算法可以看做是修正后的Momentum+RMSProp算法;
2. 动量直接并入梯度-一阶矩估计中(指数加权);
3. Adam通常被认为对超参数的选择相当鲁棒;
4. 学习率建议为0.001