注:文章内容译自斯坦福大学cs231n课程,只翻译了原文的一部分。
原文请访问:
http://cs231n.github.io/neural-networks-3/#sgd
·······················································································································
随机梯度下降方法及其变种
Vanilla update
最简单的更新方式,沿着负梯度的方向更新参数(梯度指示着函数增长的方向,但我们通常是要最小化损失函数的),假设我们要更新的参数x和其梯度dx,则参数更新的形式如下:
x += -learning_rate * dx
Momentum update
这里的learning rate是个超参数–一个固定的常数。
动量更新是在深度网络中常常收敛更快的一种方法。这种方法收到物理学中动量的启发,可以从物理的角度来看待优化问题。特别地,损失可以解释为丘陵地形的高度(并且因此也可以解释为势能Uαh,因为U = mgh
)。用随机数初始化参数等同于在某个位置设置零初始速度的粒子。然后可以将优化过程视为与在横向上滚动的模拟参数矢量(即,粒子)的过程。
由于粒子上的力与势能的梯度(即F =-∇U
)