跳转到正文
2022-10-23 zh

从贝尔曼方程到 Actor–Critic:梳理强化学习的核心关系

强化学习里的名词很多,但大都围绕三个问题展开:哪些信息足以构成状态?怎样估计未来回报?又该如何改进策略?贝尔曼方程把状态与回报估计联系起来,Actor–Critic 再把价值估计用于策略优化。理解这两层关系后,就不容易把 on-policy、off-policy 等概念混成一条僵硬的分类链。

先确认状态是否包含足够信息

折扣马尔可夫决策过程可以写成

M=S,A,P,R,ρ0,γ.\mathcal{M}=\langle\mathcal{S},\mathcal{A},P,R,\rho_0,\gamma\rangle.

马尔可夫性质的含义是:在给定当前状态和动作之后,下一状态与奖励的条件分布不再依赖更早的历史。它并不要求有限马尔可夫链一定不可约或非周期;这两个条件只会出现在某些平稳分布或收敛性结论中,不属于马尔可夫动力学的定义。

如果智能体看到的观测 oto_t 漏掉了与决策有关的历史,那么即便环境内部状态满足马尔可夫性,送入学习算法的输入也可能不满足。这通常称为状态混叠或部分可观测,不能简单归因于“环境不稳定”。常见办法是补充已知的充分统计量、维护信念状态,或者用循环策略编码动作—观测历史。

对一条轨迹,从时刻 tt 开始的折扣回报定义为

Gt=k=0Tt1γkrt+k.G_t=\sum_{k=0}^{T-t-1}\gamma^k r_{t+k}.

策略 π\pi 下的状态价值、动作价值和优势函数分别为

Vπ(s)=Eπ[Gtst=s],Qπ(s,a)=Eπ[Gtst=s,at=a],Aπ(s,a)=Qπ(s,a)Vπ(s).V^\pi(s)=\mathbb{E}_\pi[G_t\mid s_t=s],\qquad Q^\pi(s,a)=\mathbb{E}_\pi[G_t\mid s_t=s,a_t=a],\qquad A^\pi(s,a)=Q^\pi(s,a)-V^\pi(s).

它们只是数学定义,并不预设要使用哪一种神经网络架构。

贝尔曼方程把长期回报拆成一步关系

对一步状态转移进行条件分解,可以得到贝尔曼期望方程:

Vπ(s)=Eaπ,sP[R(s,a,s)+γVπ(s)],V^\pi(s)=\mathbb{E}_{a\sim\pi,\,s'\sim P}\left[R(s,a,s')+\gamma V^\pi(s')\right], Qπ(s,a)=EsP,aπ[R(s,a,s)+γQπ(s,a)].Q^\pi(s,a)=\mathbb{E}_{s'\sim P,\,a'\sim\pi}\left[R(s,a,s')+\gamma Q^\pi(s',a')\right].

具体怎样利用这些恒等式,要看我们掌握了哪些信息:

  • 动态规划在模型已知时直接计算期望,并遍历状态进行更新;
  • 蒙特卡洛估计依赖采样得到的完整或较长回报,需要等待后续结果;
  • 时序差分估计观察一步或多步转移后,利用当前价值估计进行自举更新。

对于一步状态价值 Critic,TD 残差写作

δt=rt+γVϕ(st+1)Vϕ(st).\delta_t=r_t+\gamma V_\phi(s_{t+1})-V_\phi(s_t).

自举通常可以降低目标方差,也便于在线更新;代价是当前价值估计中的误差可能进入目标,并在后续更新中继续传播。蒙特卡洛目标没有这种自举误差,却常常承受更大的采样方差。因此,“蒙特卡洛无偏、TD 有偏”最多只能作为入门直觉。要作严格判断,还必须说明优化目标、轨迹如何截断、是否使用函数逼近,以及数据来自什么分布。

策略梯度:因果性与基线

对可微随机策略,策略梯度定理给出如下形式的估计器:

θJ(θ)=Eπθ[θlogπθ(atst)Qπθ(st,at)].\nabla_\theta J(\theta)=\mathbb{E}_{\pi_\theta}\left[\nabla_\theta\log\pi_\theta(a_t\mid s_t)\,Q^{\pi_\theta}(s_t,a_t)\right].

在一条回合轨迹中,ata_t 之前已经出现的奖励不可能由 ata_t 造成。把得分函数旁的整轨迹回报换成从当前时刻开始的回报(reward-to-go),可以在通常的采样假设下去掉期望为零的项,同时保持期望梯度不变。这里依靠的是因果关系,而不是“求和项越少,方差一定越小”这样的经验说法。

可以减去不依赖当前采样动作的基线 b(st)b(s_t),因为

Eaπθ[θlogπθ(as)b(s)]=0.\mathbb{E}_{a\sim\pi_\theta}\left[\nabla_\theta\log\pi_\theta(a\mid s)\,b(s)\right]=0.

合适的基线往往能降低方差,但随便选一个基线未必有效。取 b(s)=Vπ(s)b(s)=V^\pi(s) 时,就得到优势函数。实现 Actor 损失时,通常应当对采样得到的优势停止梯度,除非算法明确需要这条耦合路径。学习得到或采用自举目标的 Critic 会因价值逼近带来偏差—方差取舍;基线恒等式本身不会引入偏差。

Actor–Critic 描述的是函数分工,不是数据来源

Actor–Critic 方法包含两个角色:

  1. Actor 参数化并改进策略;
  2. 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,则依赖贝尔曼目标、对相关状态—动作区域的覆盖,以及算法自身的稳定化设计。把 VV 简单换成 QQ,并不会自动得到正确的 off-policy 算法。

GAE 把估计器的取舍写进一个参数

广义优势估计(GAE)以指数权重组合 TD 残差:

A^tGAE(γ,λ)==0Tt1(γλ)δt+,δt=rt+γVϕ(st+1)Vϕ(st).\hat A_t^{\mathrm{GAE}(\gamma,\lambda)}=\sum_{\ell=0}^{T-t-1}(\gamma\lambda)^\ell\delta_{t+\ell},\qquad \delta_t=r_t+\gamma V_\phi(s_{t+1})-V_\phi(s_t).

λ\lambda 接近零时,估计结果主要依赖短时域自举;当 λ\lambda 接近一时,它更接近减去基线后的蒙特卡洛式 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 分别回答不同问题,不应混成同一种分类。

延伸阅读