我们已经知道梯度下降法,需要沿着整个训练集的梯度反向下降。使用随机梯度下降方法,选取小批量数据的梯度下降方向,可以在很大程度上进行加速。SGD及其变种可能是机器学习中应用最多的优化算法。我们按照下面的顺序一一理解一下这些算法。
SGD->SGDM->NAG->AdaGrad->RMSProp->Adam->Nadam
1、随机梯度下降(SGD)
核心是按照数据生成分布抽取m个小批量样本,通过计算它们的梯度均值,来得到整体梯度的无偏估计。
- 需要:学习率 ϵk ϵ k , 初始参数 θ θ
- 迭代过程:
while 未满足停止准则 do
从训练集中采样m个样本 { x(1)...,x(m)} { x ( 1 ) . . . , x ( m ) } 的小批量, x(i) x ( i ) 对应 y(i) y ( i )
计算梯度估计: ĝ :=1m∇θ∑iL(f(x