随机梯度下降

1. 简介

梯度下降法即沿着训练集的梯度方向下降。随机梯度下降(stochastic gradient descent:SGD)按照数据生成分布抽取 mm 个小批量(独立同分布的)样本,通过计算它们的梯度均值,从而得到梯度的无偏估计;然后随机梯度下降算法沿着随机挑选的小批量数据的梯度下降方向,能够很大程度加速梯度下降的过程。

2. 思路

2.1 梯度下降

tt 次迭代时:

Wt=Wt1ηLWt1\begin{array}{c} \boldsymbol{W}_t = \boldsymbol{W}_{t-1} - \eta \frac{\partial L}{\partial \boldsymbol{W}_{t-1}} \end{array}

其中,W\boldsymbol{W} 为需要更新的参数,LL 为损失函数,η\eta 为学习率。

2.2 伪代码

1
2
3
4
5
6
7
Require: 学习率 e
Require: 初始参数 o
while 停止准则未满足 do
从训练集中采集包含 m 个样本的小批量 {x1,...,xm},对应的目标为 {y1,...,ym}
计算梯度估计: g =
应用更新:o = o - eg
end while