随机梯度下降(SGD)
随机选用一个样本即可对参数进行更新:
优点
- 单条数据就可以完成参数的更新
- 参数更新速度更快
缺点
- 由于采用的数据量小,如果初始学习率选择过大,容易导致振荡现象,难以收敛
- 如果初始学习率选择过小,学习过程会非常缓慢,容易进入局部最小值
批量梯度下降(BGD)
所有的数据都参与参数的更新。优点是梯度下降更加稳定。缺点是由于所有参数都参与,导致运算量增大,参数更新很慢
小批量梯度下降(MBGD)
只选取一小批数据参与参数更新,梯度更新同样更加平滑,运算速度也比BGD快。相当于SGD和BGD的折中方案。
Momentum
引入参数‘动量’,代表参数移动的方向和速度。将本次计算得到的梯度更新与上一次的梯度更新加权求和,作为本次的梯度更新的值。
由于累积了上一次梯度更新的方向,所以如果当前梯度更新方向与上一次的一致则会加速网络收敛,抑制震荡现象。
AdaGrad
不同于上面的优化方法,在AdaGrad中会将每一个参数分开进行处理,对每一个参数进行自适应加权。由于累积平方梯度会不断增大,最终导致学习率减小速度过快。
RMSProp
该方法主要是解决AdaGrad中最后学习率过小的问题。引入了一个新的参数——衰减速率,用来减小累积平方梯度,来减缓学习率急剧下降。
Adam
Momentum和RMSProp两种方法的结合。对每一个参数都有自适应学习率。是目前最常用的优化器。