神经网络训练细节part2上
参数更新机制
- SGD
- Momentum update
- Nesterov Momentum update
- AdaGrad update
- RMSProp update
- Adam update
SGD
随机梯度下降:
x += - learning_rate * dx
特点:如果在水平方向上梯度较小,而在垂直方向上梯度较大,会造成在水平方向更新较慢,而在垂直方向上造成上下抖动。收敛速度慢。
Momentum update
动量更新
v = mu*v - learning_rate * dx
x += v
借用物理学动量的思想,给参数更新加上一个动量。其中mu是超参数,通常设置在0.5到0.9之间,v的初始值为0。
特点:(1)收敛速度比SGD快。(2)从实现可以看出动量更新会逐渐放慢速度,最终停下来。
Nesteriov Momentum update
不同于动量更新,动量更新是当前的梯度加上当前的动量值,得到实际更新的方向,而Nestreriov Momentum update是用当前的动量加上预测的梯度得到更新的方向。
左边