本文最后更新于 2026年7月27日 凌晨
赵老师开源的 Github 仓库、赵老师的 B站 课程视频
背景来自 XHS 真理线_ 《世界在下沉 我们在相爱》
Overview
上一讲介绍了蒙特卡洛学习,下一讲将介绍时序差分(Temporal-Difference,TD)学习。本讲我们按下暂停键,做好知识准备。
为什么需要本讲?
- TD 算法的思路和表达式与此前研究的算法有很大不同。
- 许多初次接触 TD 算法的学生可能会疑惑:这些算法最初为何这样设计?它们为何有效?
- 存在知识鸿沟!
本讲内容:通过介绍基本的随机逼近(Stochastic Approximation,SA)算法,填补之前和后续讲座之间的知识鸿沟。下一讲将看到,时序差分算法是特殊的 SA 算法,因此理解这些算法会容易得多。
Outline
- 动机示例
- Robbins-Monro 算法
- 随机梯度下降
- BGD、MBGD 与 SGD 之间的比较
引入:估计均值
Lec 21
问题回顾
考虑一个随机变量 X,目标是估计 E[X]。假设收集了一组 i.i.d. 样本 {xi}i=1N,则:
E[X]≈xˉ:=N1i=1∑Nxi
新问题:如何计算均值 xˉ?有两种方式:
- 第一种方式:收集所有样本然后计算平均值。
- 缺点:如果样本是逐个收集的,必须等到所有样本收集完毕才能计算
- 第二种方式:以 增量迭代 的方式计算平均值,避免等待。
增量式均值估计
如果设
wk+1=k1i=1∑kxi,k=1,2,…
则有,
wk=k−11i=1∑k−1xi,k=2,3,…
用 wk 和 xk 来表示 wk+1,以构造迭代算法,
wk+1=k1i=1∑kxi=k1(i=1∑k−1xi+xk)=k1((k−1)wk+xk)=wk−k1(wk−xk)
因此得到迭代算法:
wk+1=wk−k1(wk−xk)
- 一旦收到一个样本,就可以立即获得均值估计。
- 初始时由于样本不足,估计不准确(wk=E[X]),但总比没有好。随着更多样本的获得,估计会逐渐改进(wk→E[X] 当 k→∞)。
考虑更一般的算法:
wk+1=wk−αk(wk−xk)
其中,1/k 被 αk>0 替代。
- 该算法是否仍收敛到 E[X]?答案是肯定的,只要 {αk} 满足某些条件。
- 该算法是特殊的 SA 算法,也是特殊的随机梯度下降算法。
- 下一讲将看到时序差分算法具有类似(但更复杂)的形式。
Robbins-Monro 算法
Lec 22 & 23
问题设置
随机逼近(Stochastic Approximation,SA):泛指一类求解求根或优化问题的 随机迭代算法。
- SA 的强大之处在于:不需要知道目标函数的表达式或其导数。
Robbins-Monro(RM)算法:是随机逼近领域的开创性工作。著名的随机梯度下降算法是 RM 算法的特殊形式。
问题陈述:求方程 g(w)=0 的根,其中 w∈R 是待求解的变量,g:R→R 是一个函数。
许多问题最终可以转化为这个求根问题。例如,若 J(w) 是要最小化的目标函数,则优化问题可以转化为 g(w)=∇wJ(w)=0。
核心问题:如果不知道 g 或其导数的表达式怎么办?
RM 算法
wk+1=wk−akg~(wk,ηk),k=1,2,3,…
其中:
- wk 是第 k 次对根的估计
- g~(wk,ηk)=g(wk)+ηk 是第 k 次带噪声的观测
- ak 是正系数
函数 g(w) 是一个黑箱!该算法依赖数据:
- 输入序列:{wk}
- 带噪声的输出序列:{g~(wk,ηk)}
哲学:没有模型,就需要数据!这里的模型指函数的表达式。
两个示例
示例1:手动求解 g(w)=w−10。设 w1=20,ak≡0.5,ηk=0。
- w1=20⟹g(w1)=10
- w2=w1−a1g(w1)=20−0.5×10=15
- w3=w2−a2g(w2)=15−0.5×5=12.5
- …
- wk→10
示例2:求解 g(w)=w3−5.
- 真实根为 51/3≈1.71。
- 我们只知道 g~(w)=g(w)+η。
- 假设 ηk 是独立同分布的,且服从均值为零、标准差为 1 的标准正态分布。
- 初始猜测为 w1=0,步长 ak 取为 ak=1/k。
wk 的演化过程如下图所示。可以看出,估计值 wk 能够收敛到真实根。
w 和 eta 的数值曲线
收敛性分析
一个直观的例子:
- g(w)=tanh(w−1)
- g(w)=0 的真实根为 w∗=1。
- 参数取:w1=3,ak=1/k,ηk≡0(为简化起见,无噪声)
在此情况下的 RM 算法为
wk+1=wk−akg(wk)
因为当 ηk=0 时,g~(wk,ηk)=g(wk)。
绘制出的结果
这里能保证 wk+1 比 wk 更接近 w∗ 的前提是,ak 需要足够小
- 当 wk>w∗ 时,g(wk)>0,则 wk+1=wk−akg(wk)<wk,更接近 w∗。
- 当 wk<w∗ 时,g(wk)<0,则 wk+1=wk−akg(wk)>wk,更接近 w∗。
Robbins-Monro 定理:在 RM 算法中,若满足以下条件:
- 0<c1≤∇wg(w)≤c2 对所有 w 成立
- ∑k=1∞ak=∞ 且 ∑k=1∞ak2<∞
- E[ηk∣Hk]=0 且 E[ηk2∣Hk]<∞
则 wk 以概率 1 收敛到满足 g(w∗)=0 的根 w∗。
条件解释:
- g 单调递增,保证根存在且唯一;梯度有上界。
- ∑ak2<∞ 确保 ak→0;∑ak=∞ 确保 ak 不会收敛到零太快。
- {ηk} 满足零均值和有限方差。
满足条件的典型序列:ak=1/k,∑k=1∞1/k=∞,∑k=1∞1/k2=π2/6<∞
但在实际应用中,我们通常会选择一个非常小的正常数作为 ak,因为令 ak=1/k 会导致后面进来的数据影响越来越小,这不利于我们充分利用后续数据。
对第二个条件的详细分析
更仔细地考察第二个条件:
k=1∑∞ak2<∞,k=1∑∞ak=∞
首先,∑k=1∞ak2<∞ 表明当 k→∞ 时,ak→0。
由于
wk+1−wk=−akg~(wk,ηk),
- 如果 ak→0,那么 akg~(wk,ηk)→0,因此 wk+1−wk→0。
- 如果 wk 最终收敛,我们需要 wk+1−wk→0 这一事实。
- 如果 wk→w∗,则 g(wk)→0,且 g~(wk,ηk) 由 ηk 主导。
其次,∑k=1∞ak=∞ 表明 ak 不应过快地收敛到零。
结合 w2=w1−a1g~(w1,η1), w3=w2−a2g~(w2,η2), …, wk+1=wk−akg~(wk,ηk) 可得
w1−w∞=k=1∑∞akg~(wk,ηk).
假设 w∞=w∗。如果 ∑k=1∞ak<∞,那么 ∑k=1∞akg~(wk,ηk) 可能是有界的(此时,如果初始设置的 w1 不幸离 w∗ 较远,则上述等式将不成立)。
对均值估计的 RM 解释
均值估计算法 wk+1=wk+αk(xk−wk) 可视为 RM 算法的特例:
- 定义函数 g(w)=w−E[X],目标是求解 g(w)=0
- 可获得的观测为 g~(w,x)=w−x=(w−E[X])+(E[X]−x)=g(w)+η
- RM 算法:wk+1=wk−αkg~(wk,ηk)=wk−αk(wk−xk),正是均值估计算法!
Dvoretzky 定理
Dvoretzky 定理:考虑随机过程 wk+1=(1−αk)wk+βkηk. 若满足
- ∑αk=∞、∑αk2<∞、∑βk2<∞
- E[ηk∣Hk]=0、E[ηk2∣Hk]≤C,
则 wk 以概率 1 收敛到零。
其中,Hk={wk,wk−1,…,ηk−1,⋯,αk−1,⋯,βk−1,⋯}
该定理比 RM 定理更一般,可用于证明 RM 定理,也可直接分析均值估计问题,其扩展可用于分析 Q-learning 和 TD 学习算法。
SGD
Lec 24 & 25
随机梯度下降在机器学习和 RL 中广泛使用。SGD 是 RM 算法的特殊形式,而均值估计算法是 SGD 的特殊形式。
问题描述
求解优化问题:
wminJ(w)=E[f(w,X)]
其中 w 是待优化参数,X 是随机变量。
-
方法1:梯度下降(Gradient Descent,GD)
wk+1=wk−αk∇wE[f(wk,X)]=wk−αkE[∇wf(wk,X)]
缺点:期望值难以获得。
-
方法2:批量梯度下降(Batch Gradient Descent,BGD)
E[∇wf(wk,X)]≈n1i=1∑n∇wf(wk,xi)
wk+1=wk−αkn1i=1∑n∇wf(wk,xi)
缺点:每次迭代需要大量样本。
-
方法3:随机梯度下降(Stochastic Gradient Descent,SGD)
wk+1=wk−αk∇wf(wk,xk)
- 与 GD 相比:用随机梯度 ∇wf(wk,xk) 替代真实梯度 E[∇wf(wk,X)]
- 与 BGD 相比:取 n=1
示例
我们考虑例子:
wminJ(w)=E[f(w,X)]=E[21∥w−X∥2],
其中
f(w,X)=∥w−X∥2/2,∇wf(w,X)=w−X
可以推导出,其最优解 w∗=E[x] !这是因为,
∇w∗ J(w∗)=0⟹∇w∗ E[f(w∗,X)]=0⟹E[∇w∗ f(w∗,X)]=0⟹E[w∗−X]=0⟹w∗=E[X]
- 求解上述问题的 GD 算法为,
wk+1=wk−αk∇wJ(wk)=wk−αkE[∇wf(wk,X)]=wk−αkE[wk−X].
- 求解上述问题的 SGD 算法为,
wk+1=wk−αk∇wf(wk,xk)=wk−αk(wk−xk)
- 它与我们之前介绍的均值估计算法相同。
- 该均值估计算法是一种特殊的 SGD 算法。
SGD 的收敛性
GD:SGD:wk+1=wk−αkE[∇wf(wk,X)]wk+1=wk−αk∇wf(wk,xk)
∇wf(wk,xk) 可以被视为 E[∇wf(w,X)] 的一个带噪声的测量:
∇wf(wk,xk)=E[∇wf(w,X)]+η∇wf(wk,xk)−E[∇wf(w,X)].
由于 ∇wf(wk,xk)=E[∇wf(w,X)],通过 SGD,当 k→∞ 时,wk 是否收敛到 w∗?
下面我们证明 SGD 是一种特殊的 RM 算法。那么,其收敛性自然随之而来。
SGD 的目标是极小化
J(w)=E[f(w,X)]
该问题可以转化为一个求根问题:
∇wJ(w)=E[∇wf(w,X)]=0
令
g(w)=∇wJ(w)=E[∇wf(w,X)].
那么,SGD 的目标就是求 g(w)=0 的根。
我们能够测量的是,
g~(w,η)=∇wf(w,x)=g(w)E[∇wf(w,X)]+η∇wf(w,x)−E[∇wf(w,X)].
那么,求解 g(w)=0 的 RM 算法为
wk+1=wk−akg~(wk,ηk)=wk−ak∇wf(wk,xk).
- 它正是 SGD 算法。
- 因此,SGD 是一种特殊的 RM 算法。
SGD 的收敛性定理:SGD 算法若满足:
- 0<c1≤∇w2f(w,X)≤c2
- ∑k=1∞ak=∞ 且 ∑k=1∞ak2<∞
- {xk}k=1∞ 是 i.i.d.
则 wk 以概率 1 收敛到 ∇wE[f(w,X)]=0 的根。
SGD 的收敛模式
问题: 由于随机梯度是随机的,因此近似是不准确的,SGD 的收敛是缓慢的还是随机的?
为了回答这个问题,我们考虑随机梯度与批量梯度之间的相对误差:
δk≐∣E[∇wf(wk,X)]∣∣∇wf(wk,xk)−E[∇wf(wk,X)]∣.
由于 E[∇wf(w∗,X)]=0,我们进一步有
δk=∣E[∇wf(wk,X)]−E[∇wf(w∗,X)]∣∣∇wf(wk,xk)−E[∇wf(wk,X)]∣=∣E[∇w2f(w~k,X)(wk−w∗)]∣∣∇wf(wk,xk)−E[∇wf(wk,X)]∣.
其中,最后一个等式由中值定理得到,且 w~k∈[wk,w∗]。
假设 f 是严格凸的,使得
∇w2f≥c>0,∀w,X
其中,c 是一个正的下界。那么,δk 的分母变为
∣E[∇w2f(w~k,X)(wk−w∗)]∣=∣E[∇w2f(w~k,X)](wk−w∗)∣=∣E[∇w2f(w~k,X)]∣∣(wk−w∗)∣≥c∣wk−w∗∣.
将上述不等式代入 δk 可得
δk≤c∣wk−w∗∣∣∇wf(wk,xk)−E[∇wf(wk,X)]∣.
注意到,
δk≤到最优解的距离c∣wk−w∗∣∣∇wf(wk,xk)−E[∇wf(wk,X)]∣随机梯度真实梯度.
上述等式揭示了 SGD 一种有趣的收敛模式。
- 相对误差 δk 与 ∣wk−w∗∣ 成反比。
- 当 ∣wk−w∗∣ 较大时,δk 较小,SGD 表现得像 GD。
- 当 wk 接近 w∗ 时,相对误差可能较大,收敛在 w∗ 的邻域内表现出更多的随机性。
例子
X∈R2 表示平面上的一个随机位置。其分布以原点为中心、边长为 20 的正方形区域内均匀分布。真实均值为 E[X]=0。均值估计基于 100 个独立同分布样本 {xi}i=1100。
SGD 的计算结果
- 尽管均值的初始猜测远离真实值,SGD 估计仍能快速接近真实值的邻域。
- 当估计接近真实值时,它会表现出一定的随机性,但仍会逐渐逼近真实值。
SGD 的确定性形式
- 我们上面介绍的 SGD 形式涉及随机变量和期望。
- 在其他地方经常会遇到一种确定性的 SGD 形式,其中不涉及任何随机变量。
考虑如下优化问题:
wmin J(w)=n1i=1∑nf(w,xi),
- f(w,xi) 是一个参数化函数。
- w 是待优化的参数。
- {xi}i=1n 是一组实数,其中 xi 不必是任何随机变量的样本。
求解该问题的 GD 算法为
wk+1=wk−αk∇wJ(wk)=wk−αkn1i=1∑n∇wf(wk,xi).
假设该集合很大,我们每次只能获取一个数。在这种情况下,我们可以使用如下迭代算法:
wk+1=wk−αk∇wf(wk,xk).
问题:
- 这个算法是 SGD 吗?它并不涉及任何随机变量或期望值。
- 我们应该如何使用这组有限的数 {xi}i=1n?我们应该按某种顺序对这些数排序然后逐个使用?还是应该从集合中随机采样一个数?
Idea:我们可以手动引入一个随机变量,将确定性形式转化为 SGD 的随机形式。
特别地,假设 X 是定义在集合 {xi}i=1n 上的一个随机变量。假设其概率分布是均匀的,即
p(X=xi)=1/n
那么,该确定性优化问题就变成了一个随机优化问题:
wmin J(w)=n1i=1∑nf(w,xi)=E[f(w,X)].
- 上述等式中的最后一个等号是严格相等,而非近似。因此,该算法是 SGD。
- 如果 xk 是从 {xi}i=1n 中均匀且独立地采样得到的,则估计收敛。由于 xk 是随机采样的,它可能会重复取到 {xi}i=1n 中的同一个数。
BGD,MBGD 与 SGD
Lec 26
给定随机样本 {xi}i=1n,目标是最小化 J(w)=E[f(w,X)]:
- BGD:wk+1=wk−αkn1∑i=1n∇wf(wk,xi)
- MBGD:wk+1=wk−αkm1∑j∈Ik∇wf(wk,xj)
- SGD:wk+1=wk−αk∇wf(wk,xk)
比较:
- BGD 每次迭代使用所有样本,当 n 大时接近真实梯度
- MBGD 的 Ik 是大小为 m 的子集,通过 m 次 i.i.d. 采样获得
- SGD 在时刻 k 从 {xi} 中随机采样 xk
MBGD 与其他算法的关系:
- 相比 SGD,MBGD 随机性更小(使用更多样本)
- 相比 BGD,MBGD 不需要每次使用所有样本,更灵活高效
- 若 m=1,MBGD 变为 SGD
- 若 m=n,MBGD 并非严格意义上的 BGD(MBGD 可能多次使用同一值,而 BGD 每个数只用一次)
例子
给定一些数 {xi}i=1n,我们的目标是计算均值 xˉ=∑i=1nxi/n。该问题可以等价地表述为如下优化问题:
wmin J(w)=2n1i=1∑n∥w−xi∥2
求解该问题的三种算法分别为:
wk+1wk+1wk+1=wk−αkn1i=1∑n(wk−xi)=wk−αk(wk−xˉ),(BGD)=wk−αkm1j∈Ik∑(wk−xj)=wk−αk(wk−xˉk(m)),(MBGD)=wk−αk(wk−xk),(SGD)
其中,xˉk(m)=∑j∈Ikxj/m.
此外,如果 αk=1/k,则上述方程可以求解为
wk+1wk+1wk+1=k1j=1∑kxˉ=xˉ,(BGD)=k1j=1∑kxˉj(m),(MBGD)=k1j=1∑kxj.(SGD)
MBGD 和 SGD 的计算结果
- BGD 在每一步的估计值恰好就是最优解 w∗=xˉ。
- MBGD 的估计值比 SGD 更快地逼近均值,因为 xˉk(m) 已经是一个平均值。
总结
- 均值估计:使用 {xk} 计算 E[X],
wk+1=wk−k1(wk−xk)
- RM 算法:使用 {g~(wk,ηk)} 求解 g(w)=0,
wk+1=wk−akg~(wk,ηk)
- SGD 算法:使用 {∇wf(wk,xk)} 最小化 J(w)=E[f(w,X)],
wk+1=wk−αk∇wf(wk,xk)
这些结果非常有用:
- 下一章将看到时序差分学习算法可视为随机逼近算法,因此具有类似的表达式。
- 它们是可以应用于许多其他领域的重要优化技术。