微信号:weixin888
1、优化算法
(1)SGD:随机梯度下降
指mini-batch gradient descent,SGD就是每一次迭代计算mini-batch的梯度,然后对参数进行更新,是最常见的优化方法了
缺点:选择合适的learning rate比较困难 - 对所有的参数更新使用同样的learning rate。对于稀疏数据或者特征,有时我们可能想更新快一些对于不经常出现的特征,对于常出现的特征更新慢一些,这时候SGD就不太能满足要求了;
SGD容易收敛到局部最优,并且在某些情况下可能被困在鞍点。
(2)momentum
是模拟物理里动量的概念,积累之前的动量来替代真正的梯度。momentum项能够在相关方向加速SGD,抑制振荡,从而加快收敛。
(3)Adam(Adaptive Moment Estimation)
Adam(Adaptive Moment Estimation)本质上是带有动量项的RMSprop,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。
优点:
2、如何选择
整体来讲,Adam 是最好的选择。
很多论文里都会用 SGD,没有 momentum 等。SGD 虽然能达到极小值,但是比其它算法用的时间长,而且可能会被困在鞍点。
如果需要更快的收敛,或者是训练更深更复杂的神经网络,需要用一种自适应的算法。