用少量样本估计梯度
大多数拟合问题都在最小化数据上的平均 f(w)=n1∑i=1nℓi(w),例如 n 个观测上的平方误差。精确梯度每步都要用到全部 n 项,当 n 是数百万笔 tick 时太慢。随机梯度下降抽取由 b 个观测组成的随机小批量 B,改用它们的平均梯度 gB。这个估计是无偏的,即平均而言等于真实梯度。
gB=b1i∈B∑∇ℓi(w),w←w−ηgB,E[gB]=∇f,Var(gB)=bσ2(1) 这条捷径的代价是噪声。批量梯度的方差按 1/b 下降,所以把标准差减半需要把批量扩大到四倍,收益急剧递减。一个 epoch 是对数据的完整一遍,含 n/b 次更新。步长恒定时迭代点永远不会安定:即使在极小点,批量梯度也不为零,所以会在极小点周围的小球里持续抖动。解决办法是让步长缩小。经典的 Robbins-Monro 条件要求 ∑tηt=∞,使迭代能走到需要的远处,以及 ∑tηt2<∞,使噪声逐渐消失。步长表 ηt=η0/t 同时满足两者。
四个数据点用损失
ℓi=21(w−xi)2(梯度为
w−xi)把水平
w 拟合到数据
x=2,4,6,12。在
w=0 时四个单样本梯度为
−2,−4,−6,−12,其平均即完整梯度为
−6。单样本梯度围绕该平均的方差为
416+4+0+36=14。因此有放回抽取
b=7 的批量,其梯度方差为
14/7=2。
- 无偏:随机批量的梯度平均等于完整梯度。
- 有噪声:方差 σ2/b,批量扩大四倍标准差减半。
- 递减步长:∑ηt=∞ 且 ∑ηt2<∞(如 ηt=η0/t)可保证收敛。
按时间排列的数据不是随机样本上述无偏性依赖于随机抽取批量。由连续日期组成的批量来自同一个市场状态,其梯度会偏向该状态,按时间顺序训练还可能随状态漂移。每个 epoch 开始时要打乱样本下标。当顺序本身重要时(如时间序列模型),在每个样本内部保持序列,只打乱样本之间的顺序。
实验:评分内容
- 完整梯度15 分
- 单个样本的噪声15 分
- 批量的噪声15 分
- 每个 epoch 的更新次数15 分
- 能收敛的步长表15 分
- 小批量循环10 分
- 为什么恒定步长不会安定15 分