1. stochastic gradient decent(CGD)
将data分小批放入神经网络中进行计算
W += -Learning rate * dx
缺点:选择合适的learning rate比较困难
速度慢
容易收敛到局部最优,并且在某些情况下可能被困在鞍点
2. momentum
模拟物理里动量的概念,积累之前的动量来替代真正的梯度。(利用斜坡的惯性)
m = b1 * m - Learning rate * dx
W += m
特点:在相关方向加速SGD,抑制振荡,从而加快收敛
依靠人工设置全局学习率,中后期分母上梯度平方的累加将会越来越大,使得训练提前结束
3. adagrad
每一个参数的更新都有自己的学习率(不好走的鞋子)
v += dx^2
W += -Learning rate * dx / √v
特点:前期放大梯度,后期约束梯度,适合处理稀疏梯度
4. RMSProp
综合了momentum和adagrad的优势
v = b1 * v + (1 - b1) * dx^2
W += -Learning rate * dx / √v
特点:依赖于全局学习率
适合处理非平稳目标 - 对于RNN效果很好
5. Adam(又快又好)
m = b1 * m + (1 - b1) * dx
v = b2 * v + (1 - b2) * dx^2
W += -Learning rate * m / √v
特点:结合了Adagrad善于处理稀疏梯度和RMSprop善于处理非平稳目标的优点
对内存需求较小
为不同的参数计算不同的自适应学习率
也适用于大多非凸优化 - 适用于大数据集和高维空间