Maxton‘s Blog

返回

RL学习笔记:随机近似与随机梯度下降

梳理随机近似理论与Robbins-Monro算法,推导随机梯度下降(SGD)的演变过程与收敛特性,并对比BGD、MBGD与SGD的采样差异。

随机近似理论与随机梯度下降#

均值估计 (Mean Estimation)#

首先,考虑样本均值的估计问题:

wk+11ki=1kxi,k=1,2,w_{k+1} \doteq \frac{1}{k} \sum_{i=1}^{k} x_{i}, \quad k=1,2, \dots

对于上一步的均值,我们有:

wk=1k1i=1k1xi,k=2,3,w_{k} = \frac{1}{k-1} \sum_{i=1}^{k-1} x_{i}, \quad k=2,3, \dots

通过代数变换,可以将全量计算转化为递推形式:

wk+1=1ki=1kxi=1k(i=1k1xi+xk)=1k((k1)wk+xk)=wk1k(wkxk)w_{k+1} = \frac{1}{k} \sum_{i=1}^{k} x_{i} = \frac{1}{k}\left(\sum_{i=1}^{k-1} x_{i}+x_{k}\right) = \frac{1}{k}\left((k-1) w_{k}+x_{k}\right) = w_{k}-\frac{1}{k}\left(w_{k}-x_{k}\right)

即:

wk+1=wk1k(wkxk)w_{k+1} = w_k - \frac{1}{k}(w_k - x_k)
  • 这是一种迭代算法,无需保存并重复计算所有历史数据。
  • 在迭代初期,由于样本量不足,估计值可能不够精确;但随着样本量 kk 的增加,结果会逐渐逼近真实均值。

由此可以引出一个更广义的迭代等式:

wk+1=wkαk(wkxk)w_{k+1} = w_{k} - \alpha_{k}(w_{k} - x_{k})
  • 当步长序列 {αk}\{\alpha_k\} 满足一定条件时,估计值 wkw_k 依然会收敛于期望 E[X]\mathbb{E}[X]
  • 这种形式可以被视为随机近似(SA)算法的一种特例,同时也是随机梯度下降(SGD)算法的基础形态。

Robbins-Monro (RM) 算法#

随机近似 (Stochastic Approximation, SA)#

  • SA 是一大类依赖随机迭代来求解方程根或最优化问题的算法。
  • SA 的核心优势在于黑盒求解:无需知晓目标方程的解析表达式或全局性质,仅依赖带噪声的观测数据即可进行参数更新。

RM 算法定义#

寻找函数极值的一个必要条件是梯度为零,即 g(w)wJ(w)=0g(w) \doteq \nabla_{w} J(w) = 0。同理,对于 g(w)=cg(w) = c 的情况,可以通过移项转化为求根问题。SGD 正是一种特殊的 RM 算法。

RM 算法通过以下迭代格式求解 g(w)=0g(w) = 0

wk+1=wkakg~(wk,ηk),k=1,2,3,w_{k+1} = w_k - a_k \tilde{g}(w_k, \eta_k), \quad k = 1, 2, 3, \dots

其中:

  • wkw_k 是第 kk 次迭代对根的估计值。
  • g~(wk,ηk)=g(wk)+ηk\tilde{g}(w_k, \eta_k) = g(w_k) + \eta_k 是第 kk 次带有随机噪声 ηk\eta_k 的观测值。
  • aka_k 是控制步长的正系数。

收敛性定理与条件解析#

若以下条件成立:

(a) 0<c1wg(w)c20 < c_1 \leq \nabla_w g(w) \leq c_2,对于所有 ww; (b) k=1ak=\sum_{k=1}^{\infty} a_k = \inftyk=1ak2<\sum_{k=1}^{\infty} a_k^2 < \infty; (c) E[ηkHk]=0\mathbb{E}[\eta_k | \mathcal{H}_k] = 0E[ηk2Hk]<\mathbb{E}[\eta_k^2 | \mathcal{H}_k] < \infty

其中 Hk={wk,wk1,}\mathcal{H}_k = \{w_k, w_{k-1}, \dots\} 表示直到时刻 kk 的历史记录,那么序列 wkw_k以概率 1(Almost surely)收敛于满足 g(w)=0g(w^*) = 0 的根 ww^*

  • 条件 (a):要求函数 g(w)g(w) 的导数(或梯度)有严格的上下界。这保证了函数足够平滑,且其斜率不会趋于零或无穷大,从而确保更新方向能稳定且持续地指向目标解 ww^*
  • 条件 (b):经典的步长(学习率)约束。ak=\sum a_k = \infty 保证了步长总和无限大,算法有能力跨越任意初始距离到达目标点;ak2<\sum a_k^2 < \infty 则保证步长衰减得足够快,使得算法最终能够收敛,避免在根节点附近永久震荡。
  • 条件 (c):对随机噪声性质的约束。给定历史序列的条件期望为零(构成鞅差分序列),说明噪声的估计是无偏的;条件方差有限则限制了单步探索时的波动幅度,防止算法发散。

随机梯度下降 (SGD)#

SGD 主要用于解决期望风险最小化问题:

minwJ(w)=E[f(w,X)]\min_{w} \quad J(w) = \mathbb{E}[f(w, X)]
  • ww 是待优化的参数。
  • XX 是随机变量,期望是关于 XX 的分布计算的。
  • 函数 f()f(\cdot) 输出标量,参数 ww 和输入 XX 可以是标量或向量。

梯度下降演变#

1. 梯度下降 (Gradient Descent, GD)

wk+1=wkαkwE[f(wk,X)]=wkαkE[wf(wk,X)]w_{k+1} = w_k - \alpha_k \nabla_w \mathbb{E}[f(w_k, X)] = w_k - \alpha_k \mathbb{E}[\nabla_w f(w_k, X)]

2. 批量梯度下降 (Batch Gradient Descent, BGD)

通过有限样本的经验均值近似数学期望:

E[wf(wk,X)]1ni=1nwf(wk,xi)\mathbb{E}[\nabla_w f(w_k, X)] \approx \frac{1}{n} \sum_{i=1}^n \nabla_w f(w_k, x_i) wk+1=wkαk1ni=1nwf(wk,xi)w_{k+1} = w_k - \alpha_k \frac{1}{n} \sum_{i=1}^n \nabla_w f(w_k, x_i)

3. 随机梯度下降 (Stochastic Gradient Descent, SGD)

wk+1=wkαkwf(wk,xk)w_{k+1} = w_k - \alpha_k \nabla_w f(w_k, x_k)
  • 与 GD 相比:将真实梯度 E[wf(wk,X)]\mathbb{E}[\nabla_w f(w_k, X)] 替换为单样本的随机梯度 wf(wk,xk)\nabla_w f(w_k, x_k)
  • 与 BGD 相比:相当于将批量大小设定为 n=1n = 1

根据 RM 算法的理论,如果满足海森矩阵正定有界(0<c1w2f(w,X)c20 < c_1 \le \nabla^2_w f(w, X) \le c_2)、学习率满足 Robbins-Monro 序列条件,且样本序列独立同分布(i.i.d.),则 SGD 同样会以概率 1 收敛于最优解。

SGD 梯度的相对误差与随机性#

引入相对误差 δk\delta_k 来衡量随机梯度偏离真实梯度的程度:

δkwf(wk,xk)E[wf(wk,X)]E[wf(wk,X)]\delta_k \doteq \frac{|\nabla_w f(w_k, x_k) - \mathbb{E}[\nabla_w f(w_k, X)]|}{|\mathbb{E}[\nabla_w f(w_k, X)]|}

在最优解 ww^* 处,满足 E[wf(w,X)]=0\mathbb{E}[\nabla_w f(w^*, X)] = 0。将其代入分母,并应用积分中值定理:

δk=wf(wk,xk)E[wf(wk,X)]E[wf(wk,X)]E[wf(w,X)]=wf(wk,xk)E[wf(wk,X)]E[w2f(w~k,X)(wkw)]\delta_k = \frac{|\nabla_w f(w_k, x_k) - \mathbb{E}[\nabla_w f(w_k, X)]|}{|\mathbb{E}[\nabla_w f(w_k, X)] - \mathbb{E}[\nabla_w f(w^*, X)]|} = \frac{|\nabla_w f(w_k, x_k) - \mathbb{E}[\nabla_w f(w_k, X)]|}{|\mathbb{E}[\nabla_w^2 f(\tilde{w}_k, X)(w_k - w^*)]|}

由于存在强凸性假设 w2fc>0\nabla_w^2 f \ge c > 0,对分母放缩可得:

E[w2f(w~k,X)(wkw)]=E[w2f(w~k,X)](wkw)=E[w2f(w~k,X)]wkwcwkw\begin{aligned} |\mathbb{E}[\nabla_w^2 f(\tilde{w}_k, X)(w_k - w^*)]| &= |\mathbb{E}[\nabla_w^2 f(\tilde{w}_k, X)] \cdot (w_k - w^*)| \\ &= |\mathbb{E}[\nabla_w^2 f(\tilde{w}_k, X)]| \cdot |w_k - w^*| \ge c|w_k - w^*| \end{aligned}

进而得到相对误差的上限:

δkwf(wk,xk)随机梯度E[wf(wk,X)]真实梯度cwkw距最优解的距离\delta_k \leq \frac{|\overbrace{\nabla_w f(w_k, x_k)}^{\text{随机梯度}} - \overbrace{\mathbb{E}[\nabla_w f(w_k, X)]}^{\text{真实梯度}}|}{\underbrace{c|w_k - w^*|}_{\text{距最优解的距离}}}

该不等式严格揭示了 SGD 的一种重要收敛模式:

  • 相对误差 δk\delta_k 与距最优解的距离 wkw|w_k - w^*| 成反比。
  • wkw_k 距离最优解较远时,分母较大,δk\delta_k 较小。此时 SGD 的更新方向非常接近真实梯度,表现出与 GD 高度相似的下降轨迹。
  • wkw_k 逐渐逼近最优解 ww^* 时,分母趋于零,相对误差 δk\delta_k 会显著增大。这意味着在最优解邻域内,噪声的干扰占据主导,导致算法在收敛末期表现出较强的随机震荡(这也是为何 SGD 需要配合学习率衰减的原因)。

BGD, MBGD, 和 SGD 采样对比#

这种随机采样策略与截断(truncated)方法有异曲同工之妙。

假设我们需要最小化 J(w)=E[f(w,X)]J(w) = \mathbb{E}[f(w, X)],并拥有一组 XX 的随机样本 {xi}i=1n\{x_i\}_{i=1}^n。三种算法的迭代公式对比:

wk+1=wkαk1ni=1nwf(wk,xi)(BGD)w_{k+1} = w_k - \alpha_k \frac{1}{n} \sum_{i=1}^n \nabla_w f(w_k, x_i) \quad \text{(BGD)} wk+1=wkαk1mjIkwf(wk,xj)(MBGD)w_{k+1} = w_k - \alpha_k \frac{1}{m} \sum_{j \in \mathcal{I}_k} \nabla_w f(w_k, x_j) \quad \text{(MBGD)} wk+1=wkαkwf(wk,xk)(SGD)w_{k+1} = w_k - \alpha_k \nabla_w f(w_k, x_k) \quad \text{(SGD)}
  • BGD:每次迭代计算完整的 nn 个样本。当 nn 足够大时,更新方向极其接近真实期望梯度。
  • MBGD:每次迭代从全局样本中抽取大小为 mm 的子集 Ik\mathcal{I}_k。该集合是通过 mm 次独立同分布(i.i.d.)采样获得的。
  • SGD:每次迭代仅在时刻 kk 随机抽取单一标本 xkx_k

核心差异注意:即使当 m=nm=n 时,MBGD 与 BGD 也并不等价。因为 MBGD 的 mm 次随机采样通常是有放回的(可能抽取到重复的样本),而 BGD 则是严格遍历所有不重复的全局样本数据。