梯度下降算法 | 优点 | 缺点 |
BGD(batch) | 1、相对噪声低 2、凸函数可以收敛到全局小值 |
|
SGD | 1、收敛速度快 2、有机会跳出局部最小值 |
1.失去所有向量化带来的加速(无法利用矩阵操作加速计算过程) 2.噪声大 3.永远不会收敛,一直在最小值附近波动
|
Mini-batch SGD (一般提到的SGD是Mini-batch SGD) |
|
不能收敛到最小值,在最小值附近波动
|
Momentum
| 收敛速度非常快 | 参数采用相同的学习率,对于稀疏数据不友好 |
Adagrad |
为不同的参数设置不同的学习率,易于处理稀疏数据
| 学习率不断较小最终达到一个非常小的值,模型学习速度很慢 |
RMSprop |
| 相对于Adagrad收敛速度慢 |
Adam |
1、结合了Adagrad善于处理稀疏梯度和RMSprop善于处理非平稳目标的优点
| 可能不收敛或者收敛到局部最小值 |
1.SGD + Momentum
被大量用在CNN 、NLP 问题上
2.Adam + SGD
Adam加速收敛过程,可能陷入到局部最小值或无法收敛,此时用小学习率 SGD 帮助 adam 跳出局部最小值。