从贝尔曼方程到 Actor–Critic:梳理强化学习的核心关系
强化学习里的名词很多,但大都围绕三个问题展开:哪些信息足以构成状态?怎样估计未来回报?又该如何改进策略?贝尔曼方程把状态与回报估计联系起来,Actor–Critic 再把价值估计用于策略优化。理解这两层关系后,就不容易把 on-policy、off-policy 等概念混成一条僵硬的分类链。
先确认状态是否包含足够信息
折扣马尔可夫决策过程可以写成
马尔可夫性质的含义是:在给定当前状态和动作之后,下一状态与奖励的条件分布不再依赖更早的历史。它并不要求有限马尔可夫链一定不可约或非周期;这两个条件只会出现在某些平稳分布或收敛性结论中,不属于马尔可夫动力学的定义。
如果智能体看到的观测 漏掉了与决策有关的历史,那么即便环境内部状态满足马尔可夫性,送入学习算法的输入也可能不满足。这通常称为状态混叠或部分可观测,不能简单归因于“环境不稳定”。常见办法是补充已知的充分统计量、维护信念状态,或者用循环策略编码动作—观测历史。
对一条轨迹,从时刻 开始的折扣回报定义为
策略 下的状态价值、动作价值和优势函数分别为
它们只是数学定义,并不预设要使用哪一种神经网络架构。
贝尔曼方程把长期回报拆成一步关系
对一步状态转移进行条件分解,可以得到贝尔曼期望方程:
具体怎样利用这些恒等式,要看我们掌握了哪些信息:
- 动态规划在模型已知时直接计算期望,并遍历状态进行更新;
- 蒙特卡洛估计依赖采样得到的完整或较长回报,需要等待后续结果;
- 时序差分估计观察一步或多步转移后,利用当前价值估计进行自举更新。
对于一步状态价值 Critic,TD 残差写作
自举通常可以降低目标方差,也便于在线更新;代价是当前价值估计中的误差可能进入目标,并在后续更新中继续传播。蒙特卡洛目标没有这种自举误差,却常常承受更大的采样方差。因此,“蒙特卡洛无偏、TD 有偏”最多只能作为入门直觉。要作严格判断,还必须说明优化目标、轨迹如何截断、是否使用函数逼近,以及数据来自什么分布。
策略梯度:因果性与基线
对可微随机策略,策略梯度定理给出如下形式的估计器:
在一条回合轨迹中, 之前已经出现的奖励不可能由 造成。把得分函数旁的整轨迹回报换成从当前时刻开始的回报(reward-to-go),可以在通常的采样假设下去掉期望为零的项,同时保持期望梯度不变。这里依靠的是因果关系,而不是“求和项越少,方差一定越小”这样的经验说法。
可以减去不依赖当前采样动作的基线 ,因为
合适的基线往往能降低方差,但随便选一个基线未必有效。取 时,就得到优势函数。实现 Actor 损失时,通常应当对采样得到的优势停止梯度,除非算法明确需要这条耦合路径。学习得到或采用自举目标的 Critic 会因价值逼近带来偏差—方差取舍;基线恒等式本身不会引入偏差。
Actor–Critic 描述的是函数分工,不是数据来源
Actor–Critic 方法包含两个角色:
- Actor 参数化并改进策略;
- Critic 估计价值、动作价值、优势或其他供 Actor 使用的回报信号。
这种结构既可以用于 on-policy,也可以用于 off-policy。A2C 和 PPO 通常使用刚采集的 on-policy 轨迹,并配合状态价值 Critic;DDPG 与 SAC 则从经验回放中训练动作价值 Critic,属于 off-policy Actor–Critic。DQN 同样是 off-policy,却是纯价值方法,没有独立参数化的 Actor。因此,下面几条分类轴应当分开理解:
| 分类轴 | 常见选择 | 所回答的问题 |
|---|---|---|
| 数据分布 | on-policy、off-policy | 训练数据由哪个策略生成? |
| 改进机制 | 价值贪心、随机策略梯度、确定性策略梯度 | 策略如何变化? |
| 回报估计 | 蒙特卡洛、TD、多步、资格迹 | 如何估计未来回报? |
| 函数组织 | 仅价值、仅策略、Actor–Critic | 哪些函数被显式表示? |
当目标策略相对于行为策略满足绝对连续条件时,重要性采样可以修正部分分布偏差,但跨越很长时域的概率比乘积往往方差极大。采用经验回放的 off-policy Actor–Critic,则依赖贝尔曼目标、对相关状态—动作区域的覆盖,以及算法自身的稳定化设计。把 简单换成 ,并不会自动得到正确的 off-policy 算法。
GAE 把估计器的取舍写进一个参数
广义优势估计(GAE)以指数权重组合 TD 残差:
当 接近零时,估计结果主要依赖短时域自举;当 接近一时,它更接近减去基线后的蒙特卡洛式 reward-to-go。实际的偏差—方差表现还取决于 Critic 误差、轨迹截断、折扣和数据相关性,不能概括成“优势估计总是低方差但有偏”。
PPO 会把这些优势带入裁剪后的替代目标。概率比使算法可以围绕新采集的一批数据做若干轮受限更新,但通常仍把 PPO 归为 on-policy。对当前一批 rollout 重复训练多个 epoch,与长期保留并反复抽取经验回放数据,是两种不同的数据使用方式。
从推导到代码的实践流程
固定优化目标
明确任务优化的是有限时域回报、持续折扣回报还是平均回报。折扣可能属于目标定义,也可能属于估计器设计;如果不说明参照的未折扣量是什么,就不应简单称其为“偏差”。
验证状态
尝试由候选状态—动作对预测下一观测与奖励。如果存在系统性大残差、更长历史能显著改善预测,或策略必须读取隐藏仿真变量才能成功,就说明状态表征可能不充分。
检查训练目标
分别记录 reward-to-go、自举价值、TD 残差和优势。真实终止状态需要应用终止掩码,并与达到时间上限造成的截断明确区分。优势归一化应放在无效样本被屏蔽之后。
监控策略更新幅度
对 on-policy 方法,应跟踪近似 KL、裁剪比例和策略熵;对 off-policy 方法,则要关注经验数据的新旧程度、行为覆盖范围、Critic 目标尺度和价值高估。仅仅看到 Critic 损失下降,不能说明策略真的变好了。
每次只改变一个维度
如果一次实验同时更换编码器、经验回放方式、Critic 目标和策略目标,就很难判断提升究竟来自哪里。更稳妥的顺序是先用表格型问题或小型确定性测试验证贝尔曼目标,再逐步加入函数逼近和随机性。
这套关系并不复杂:贝尔曼方程规定价值函数之间应当满足什么关系,采样方法负责估计这些量,Actor 再把估计出的改进方向落实为新策略。on-policy 与 off-policy、蒙特卡洛与 TD、价值方法与 Actor–Critic 分别回答不同问题,不应混成同一种分类。