我第一次接触强化学习时,最困惑的就是为什么时序差分(TD)学习能神奇地通过"猜测-验证"的方式收敛到正确值。后来才发现,这套方法的理论基础可以追溯到1951年的Robbins-Monro算法。让我们从一个最简单的例子开始理解这个脉络。
假设我们要计算某地区每日平均气温。传统做法是收集整月数据后求平均,但这样必须等待30天才能得到结果。更聪明的做法是采用增量式计算:第一天记录28°C时,我们直接认为平均值是28;第二天测得30°C时,取(28+30)/2=29;第三天26°C时变为(29*2+26)/3≈28.67...这种方式不仅实时更新,而且数学上可以证明最终会收敛到真实均值。
这个看似简单的均值估计算法,实际上是Robbins-Monro算法的特例。1951年,两位数学家Herbert Robbins和Sutton Monro提出了一种解决方程g(w)=0的通用方法,特别适用于函数g本身未知(比如通过神经网络表示)或只能通过采样获取的情况。其核心迭代公式为:
python复制w_{k+1} = w_k - α_k * g_hat(w_k)
其中α_k是步长参数,g_hat(w_k)是对g(w_k)的带噪声估计。这个公式的惊人之处在于:即使每次使用的g_hat都带有随机误差,只要满足三个关键条件:
算法就能保证收敛到真值。我在实现时发现,第二条最容易被忽视——如果步长衰减太快(如α_k=1/k²),算法可能"未达目标就先停下";而衰减太慢(如α_k=0.1)又会导致在最优值附近震荡。实践中常用α_k=1/k的折中方案。
在机器学习领域,Robbins-Monro算法最著名的特例就是随机梯度下降(SGD)。考虑线性回归问题,我们希望最小化损失函数L(w)=Σ(y_i-wx_i)²。传统梯度下降需要计算所有样本的梯度后更新:
python复制w_new = w - η * Σ2(wx_i-y_i)x_i
而SGD每次随机选一个样本计算近似梯度:
python复制i = random.choice(n)
w_new = w - η * 2(wx_i-y_i)x_i
这种看似"偷懒"的做法,实则是Robbins-Monro算法的完美应用场景。根据RM理论,只要学习率η满足前述条件,SGD就能收敛到最优解。我在图像分类任务中做过对比实验:
| 方法 | 迭代速度 | 最终准确率 | 内存占用 |
|---|---|---|---|
| BGD | 慢(1x) | 92.3% | 高 |
| SGD | 快(20x) | 91.8% | 低 |
虽然SGD的收敛路径看起来像醉汉走路,但实际应用中这种随机性反而有助于逃离局部最优。特别是在深度学习中,批量梯度下降(BGD)几乎不可行,而SGD及其变种(如Adam)成为标配。这正体现了RM算法的强大之处——用随机性换取计算效率,同时保证理论上的收敛性。
理解了前两节的基础后,现在我们终于可以揭开时序差分(TD)学习的神秘面纱。以经典的TD(0)算法为例,其更新规则为:
python复制V(s) ← V(s) + α[r + γV(s') - V(s)]
这个看似简单的公式实际上是一个典型的Robbins-Monro过程。让我们拆解其中的对应关系:
我在实现GridWorld实验时发现,当设置α=0.1时,价值函数估计会剧烈震荡;而采用α=1/t衰减时,收敛过程就平稳得多。这与RM理论完全吻合——步长的选择直接影响收敛性。
更精妙的是,TD学习还解决了RM算法中的"函数未知"问题。在传统RM设置中,虽然函数g未知,但其输入输出关系是明确的。而在强化学习中,贝尔曼算子T本身也随着V的更新而变化!这意味着我们实际上是在用RM算法求解一个移动的目标。令人惊讶的是,在满足马尔可夫性质的环境下,这种双重近似仍然能够收敛。
理论上的收敛条件在实际应用中需要灵活调整。以TD学习为例,RM理论要求步长最终趋于零,但在持续学习场景下,我们往往希望算法保持对环境变化的适应能力。这时可以采用小常数步长或滑动窗口平均。
我在机器人控制项目中就遇到过这种情况:当使用α=1/t时,算法在模拟环境中表现良好;但部署到真实机器人后,由于传感器噪声和机械磨损,需要保持α=0.01的固定步长才能持续适应。这看似违背RM条件,但实际上:
另一个重要发现是,现代深度强化学习算法(如DQN)虽然表面上看是SGD优化神经网络,但其本质仍是RM过程。DQN中target network和experience replay的设计,本质上都是在控制TD误差的噪声特性,使其更符合RM算法的收敛条件。
现在我们可以梳理出从Robbins-Monro到时序差分的完整技术脉络:
这种层级结构解释了为什么许多RL算法看似不同却共享相似收敛特性。例如,Q-learning可以视为在动作空间上的RM过程,而Policy Gradient则是参数空间上的随机逼近。
在实现SARSA算法时,我特别注意了其与经典RM的差异点:由于策略改进导致的非平稳性,需要更谨慎地控制步长。这促使我设计了自适应步长方案:当策略更新幅度大时自动减小步长,本质上是在动态调整RM条件中的α_k序列。