LECTURE 22

期中复习 2:Q-learning、变分推断、控制即推断、模型、离线 RL、探索与理论

把课程后半段的 Part 4–Part 10 串成一条线:每个算法解决什么分布偏移 / 方差 / 过估计问题,考点在哪,易错在哪。

讲师:Sergey Levine UC Berkeley 原始材料:lec-22.pdf(73 页,全课程最长的一讲)

0. 本讲导读

这是期中复习的下半场。上半场(Lecture 21)覆盖了 Part 1–Part 3:模仿学习、策略梯度、actor-critic。这一讲把剩下的七个板块一次性过完:

Part主题核心矛盾本讲节次
Part 4Q-learning没有转移模型时怎么做「max」;非线性逼近下为什么不收敛§1 §2
Part 5变分推断 / VAE后验 $p(z|x)$ 算不出来 → 用 $q$ 逼近 + ELBO§3
Part 6控制即推断 / IRL把「最优」写成概率图模型里的观测变量§4 §5
Part 7基于模型的 RL模型误差被策略「对抗式」利用 → 不确定性感知§6
Part 8离线 RL分布偏移:$\pi_\theta \neq \pi_\beta$ 时 Q 值被高估§7 §8 §9
Part 9探索把 bandit 的乐观主义搬到 MDP:计数与伪计数§10
Part 10RL 理论Bellman 算子的收缩性、采样误差与逼近误差如何随 horizon 复合§11

复习课的组织方式和正课不同:Levine 会把每个板块最容易考的那一两张 slide 拎出来,然后在旁边写一个黄底问号——「why is this good? why is this bad?」「what is the prior / decoder / encoder?」「why is this suboptimal?」。这些问号就是考点。下面每一节都按同样的模式来:先还原题面与设定,再给完整解答与推导,最后标出易错点。

核心结论
  • 后半段课程的主线其实只有一个词:分布偏移(distributional shift)。Q-learning 的过估计、model-based RL 的模型被利用、离线 RL 的 OOD 动作、理论部分的 $\|\hat T Q - TQ\|_\infty$,全都是「训练分布 ≠ 使用分布」的不同面孔。
  • 第二条主线是方差 vs 偏差:重要性采样比值爆炸 → 换成策略约束;蒙特卡洛回报方差大 → 换成 bootstrapping,但 bootstrapping 带来偏差与不收敛。
  • 第三条主线是概率化重述:把控制问题写成图模型推断,就自然得到 soft value iteration、SAC、MaxEnt IRL、RLHF 这一整条支线。
  • 理论部分给出的量化答案是:误差以 $\frac{1}{1-\gamma}$ 或 $\frac{\gamma}{(1-\gamma)^2}$ 的量级随 horizon 放大,样本量 $N$ 只能以 $1/\sqrt N$ 的速度压下去。这解释了为什么长 horizon 的深度 RL 这么难调。

1. Part 4 · 从策略迭代到 fitted Q-iteration

题 1.1:策略迭代的两步各是什么?表格式表示要多大?

题面:给一个 $4\times 4$ 的网格世界,16 个状态、每个状态 4 个动作。写出策略迭代(policy iteration)的两个步骤,并说明存下 $V^\pi$ 和转移张量 $\mathcal{T}$ 各需要多大空间。

策略迭代与动态规划
左边是策略迭代的两步循环:策略评估(policy evaluation)算出 $V^\pi$,策略改进(policy improvement)把 $\pi$ 换成对 $Q^\pi$ 取 argmax 的贪心策略。右边是课程通用的 RL 三框图——橙色「生成样本」、绿色「拟合模型估计回报」、蓝色「改进策略」;动态规划里第一步被跳过(我们已知模型),绿框做的是 $V^\pi$ 的 Bellman 备份。左下角的 $4\times4$ 表格说明表格式方法的规模:16 个状态可以把 $V^\pi(s)$ 完整存成一张表,$\mathcal{T}$ 是 $16\times16\times4$ 的张量。

解答。策略迭代交替执行:

第 1 步,策略评估。反复应用

$$ V^\pi(\mathbf{s}) \leftarrow r(\mathbf{s}, \pi(\mathbf{s})) + \gamma\, \E_{\mathbf{s}' \sim p(\mathbf{s}'|\mathbf{s},\pi(\mathbf{s}))}\!\left[V^\pi(\mathbf{s}')\right] $$

直到收敛(或只做几步,即 modified policy iteration)。这是一个线性方程组,$\gamma \lt 1$ 时解唯一。

第 2 步,策略改进。取

$$ \pi'(\mathbf{a}_t|\mathbf{s}_t) = \begin{cases} 1 & \text{if } \mathbf{a}_t = \argmax_{\mathbf{a}_t} Q^\pi(\mathbf{s}_t, \mathbf{a}_t)\\ 0 & \text{otherwise}\end{cases} $$

其中 $Q^\pi(\mathbf{s},\mathbf{a}) = r(\mathbf{s},\mathbf{a}) + \gamma \E_{\mathbf{s}'}[V^\pi(\mathbf{s}')]$。空间开销:$V^\pi$ 是长度 16 的向量;$\mathcal{T}$ 是 $16 \times 16 \times 4 = 1024$ 个数($|\mathcal{S}| \times |\mathcal{S}| \times |\mathcal{A}|$)。考点:转移张量随状态数平方增长,这就是表格式方法只能处理玩具问题的根本原因。

题 1.2:为什么可以「跳过策略」直接算值?

值迭代:用 max 代替显式策略
把 $\argmax_\mathbf{a} Q(\mathbf{s},\mathbf{a})$ 红圈圈出来:既然改进后的策略是确定性的贪心策略,那么新策略下的值就是 $\max_\mathbf{a} Q(\mathbf{s},\mathbf{a})$。于是「策略改进 + 策略评估一步」被合并成一次 max 操作,得到值迭代(value iteration)。右上角是 $Q^\pi$ 的备份公式,右下是 $V^\pi(\mathbf{s}) \leftarrow \max_\mathbf{a} Q^\pi(\mathbf{s},\mathbf{a})$。中间的表格表示 $Q$ 是 $|\mathcal{S}|\times|\mathcal{A}|$ 的矩阵,每一行高亮的格子就是该状态的贪心动作。

解答。策略改进得到的 $\pi'$ 在状态 $\mathbf{s}$ 处以概率 1 取 $\argmax_\mathbf{a} Q^\pi(\mathbf{s},\mathbf{a})$,因此

$$ V^{\pi'}(\mathbf{s}) \approx \max_{\mathbf{a}} Q^\pi(\mathbf{s},\mathbf{a}). $$

既然新值可以直接由 $\max$ 得到,就没必要把策略显式写出来。值迭代算法只有两行:

$$ \text{1. } Q(\mathbf{s},\mathbf{a}) \leftarrow r(\mathbf{s},\mathbf{a}) + \gamma \E[V(\mathbf{s}')], \qquad \text{2. } V(\mathbf{s}) \leftarrow \max_\mathbf{a} Q(\mathbf{s},\mathbf{a}). $$
常见误区 「$V^{\pi'} = \max_\mathbf{a} Q^\pi$」只是一步备份后的近似值,不是新策略的真实值函数(真实值需要用 $\pi'$ 再做完整的策略评估)。值迭代之所以正确,是因为它把这个近似反复迭代,而迭代算子恰好是 Bellman 最优算子,具有 $\gamma$-收缩性(§11 会证)。

题 1.3:不知道转移动力学时,为什么 fitted value iteration 用不了、而 fitted Q-iteration 可以?

不知道转移时 fitted value iteration 失效
上方 fitted value iteration 的第 1 步 $y_i \leftarrow \max_{\mathbf{a}_i}(r(\mathbf{s}_i,\mathbf{a}_i) + \gamma \E[V_\theta(\mathbf{s}_i')])$ 被红线划出——要对所有动作取 max,就必须知道每个动作会导致什么后果,而样本里每个状态只试过一个动作。下方回到策略迭代:$V^\pi$ 的备份被红线划掉(同样需要模型),而 $Q^\pi(\mathbf{s},\mathbf{a}) \leftarrow r(\mathbf{s},\mathbf{a}) + \gamma\E_{\mathbf{s}'\sim p(\mathbf{s}'|\mathbf{s},\mathbf{a})}[Q^\pi(\mathbf{s}',\pi(\mathbf{s}'))]$ 可以直接用样本 $(\mathbf{s},\mathbf{a},\mathbf{s}')$ 拟合。

解答。关键区别在于「期望里条件了什么」。$V$ 的备份需要 $\E_{\mathbf{s}'\sim p(\mathbf{s}'|\mathbf{s},\pi(\mathbf{s}))}$——采样时用的动作是 $\pi(\mathbf{s})$,一旦策略变了,这个期望的采样分布就变了,必须重新与环境交互(或已知模型)。而 $Q$ 的备份需要 $\E_{\mathbf{s}'\sim p(\mathbf{s}'|\mathbf{s},\mathbf{a})}$——它条件在实际执行过的那个动作 $\mathbf{a}$ 上,所以数据集里的任意一条 $(\mathbf{s}_i,\mathbf{a}_i,\mathbf{s}_i')$ 都是这个期望的一个无偏样本,与产生数据的策略无关。这正是 Q 函数能 off-policy 的根源。

题 1.4:fitted Q-iteration 的完整算法与三条优缺点

fitted Q-iteration
橙色箭头表示「策略迭代 → 值迭代」的 max 技巧被搬到了 Q 上。核心近似是 $\E[V(\mathbf{s}_i')] \approx \max_{\mathbf{a}'} Q_\theta(\mathbf{s}_i',\mathbf{a}')$:用当前 Q 网络在下一状态上对所有动作取 max,因此不需要在环境里模拟这些动作。底下三行绿/红字是这个算法的完整评价。

解答。fitted Q-iteration:

$$ \text{1. } y_i \leftarrow r(\mathbf{s}_i,\mathbf{a}_i) + \gamma \max_{\mathbf{a}'} Q_\theta(\mathbf{s}_i',\mathbf{a}'), \qquad \text{2. } \theta \leftarrow \argmin_\theta \tfrac12\sum_i \|Q_\theta(\mathbf{s}_i,\mathbf{a}_i) - y_i\|^2 . $$

三条评价必须背下来:+ 对 off-policy 样本同样有效(因为期望条件在 $\mathbf{a}_i$ 上);+ 只需一个网络,没有高方差的策略梯度;− 非线性函数逼近下没有收敛性保证(§2 末尾解释原因)。

直觉 $\max_{\mathbf{a}'} Q_\theta(\mathbf{s}',\mathbf{a}')$ 是「反事实推理」:数据里在 $\mathbf{s}'$ 只做过某一个动作,但网络会对所有动作给出预测。这个反事实能力既是 Q-learning 高样本效率的来源,也是它一切病症(过估计、OOD 动作、发散)的来源。整个 Part 8 都在处理这个副作用。

2. Part 4 · DQN、过估计与「为什么会发散」

题 2.1:写出经典 DQN,并说明 $N$、$K$ 两层循环各控制什么

通用 Q-learning 与经典 DQN
上半部分是「带回放池和目标网络的广义 Q-learning」:最外层保存目标网络参数 $\bar\theta \leftarrow \theta$;$N$ 层循环收集数据放进回放池 $\mathcal{R}$;$K$ 层循环从 $\mathcal{R}$ 采 batch 做梯度步。下半部分是 Mnih 等人 2013 年的经典 DQN,取 $N=1$、$K=1$,只是把目标网络的同步改成「每 $N$ 步复制一次 $\theta$」。

解答。广义 Q-learning 的梯度步是

$$ \theta \leftarrow \theta - \alpha \sum_i \frac{dQ_\theta}{d\theta}(\mathbf{s}_i,\mathbf{a}_i)\Big(Q_\theta(\mathbf{s}_i,\mathbf{a}_i) - \big[r(\mathbf{s}_i,\mathbf{a}_i) + \gamma \max_{\mathbf{a}'} Q_{\bar\theta}(\mathbf{s}_i',\mathbf{a}')\big]\Big). $$

三个循环层次对应三个「时间尺度」:最外层(目标网络更新)最慢,保证回归目标 $y$ 在一段时间内是固定的、从而这一步真正是监督回归;$N$ 层控制数据收集与训练的比例(replay ratio);$K$ 层控制每批数据用几次梯度。易错点:注意 $\frac{dQ_\theta}{d\theta}$ 只对当前 Q 求导,目标里的 $Q_{\bar\theta}$ 被当成常数——这不是任何目标函数的真梯度,所以叫「半梯度」(semi-gradient),也是不收敛的伏笔之一。

题 2.2:Q-learning 的过估计从哪来?double Q 为什么能修

Double Q-learning
顶端的不等式 $\E[\max(X_1,X_2)] \ge \max(\E[X_1],\E[X_2])$ 是过估计的数学根源。中间把 $\max_{\mathbf{a}'} Q_{\bar\theta}(\mathbf{s}',\mathbf{a}')$ 拆成两部分:动作由 $Q_{\bar\theta}$ 选,值也由 $Q_{\bar\theta}$ 给——同一份噪声被用了两次。右下角的曲线图画了两条带噪声的 Q 曲线,星号标出各自的最大值点:如果两条曲线的噪声不相关,用 A 选动作、用 B 取值,就不会系统性地挑到「噪声正好很大」的那个点。

解答。设真实值为 $Q^\star$,网络估计 $Q = Q^\star + \varepsilon$,$\varepsilon$ 是零均值噪声。那么

$$ \E\left[\max_{\mathbf{a}} Q(\mathbf{s},\mathbf{a})\right] = \E\left[\max_\mathbf{a}\big(Q^\star(\mathbf{s},\mathbf{a}) + \varepsilon_\mathbf{a}\big)\right] \ \ge\ \max_\mathbf{a} Q^\star(\mathbf{s},\mathbf{a}), $$

因为 max 是凸函数,Jensen 不等式给出系统性正偏差。动作越多、噪声越大,偏差越大;而 bootstrapping 会把这个正偏差一轮一轮传播、累积。

关键观察是把 max 改写为

$$ \max_{\mathbf{a}'} Q_{\bar\theta}(\mathbf{s}',\mathbf{a}') = Q_{\bar\theta}\big(\mathbf{s}',\ \argmax_{\mathbf{a}'} Q_{\bar\theta}(\mathbf{s}',\mathbf{a}')\big), $$

「选动作」和「评估值」用的是同一个网络,所以噪声完全相关:只要某个动作的噪声碰巧偏大,它就既被选中、又被以那个偏大的值记账。double Q-learning 用两个网络交替:

$$ Q_{\theta_A}(\mathbf{s},\mathbf{a}) \leftarrow r + \gamma\, Q_{\theta_B}\big(\mathbf{s}', \argmax_{\mathbf{a}'} Q_{\theta_A}(\mathbf{s}',\mathbf{a}')\big),\qquad Q_{\theta_B}(\mathbf{s},\mathbf{a}) \leftarrow r + \gamma\, Q_{\theta_A}\big(\mathbf{s}', \argmax_{\mathbf{a}'} Q_{\theta_B}(\mathbf{s}',\mathbf{a}')\big). $$

实践中的 DQN 用当前网络 $Q_\theta$ 选动作、目标网络 $Q_{\bar\theta}$ 取值,因为这两者「已经是两个网络了」。易错点:这只削弱、不能消除过估计——两个网络在同一份数据上训练,噪声并非真正独立。

题 2.3:DDPG 与 off-policy actor-critic 的区别;还学过哪些改进?

DDPG 与 off-policy actor-critic 对照
上下两个算法框只差第 3、5 步:DDPG 用确定性 actor $\mu_{\bar\theta}(\mathbf{s}')$ 代替 $\max$、并用链式法则 $\frac{d\mu}{d\theta}\frac{dQ_\phi}{d\mathbf{a}}$ 更新 actor;off-policy actor-critic 用随机策略下的期望 $\E_{\mathbf{a}'\sim\pi_{\bar\theta}}[Q_{\bar\phi}]$ 做目标、用 $\nabla_\theta \log\pi_\theta \cdot Q_\phi$ 更新 actor。右侧箭头指出两者都能换成 clipped double-Q:$\E_{\mathbf{a}'\sim\pi_\theta}[\min_{i\in\{1,2\}} Q_{\bar\phi_i}(\mathbf{s}',\mathbf{a}')]$。

解答。连续动作空间没法穷举 $\max_{\mathbf{a}'}$,于是有两条路:(a) 训练一个确定性 actor $\mu_\theta(\mathbf{s}) \approx \argmax_\mathbf{a} Q_\phi(\mathbf{s},\mathbf{a})$,通过 $\theta \leftarrow \theta + \beta\sum_j \frac{d\mu}{d\theta}(\mathbf{s}_j)\frac{dQ_\phi}{d\mathbf{a}}(\mathbf{s}_j,\mu(\mathbf{s}_j))$ 沿 Q 的动作梯度爬坡,即 DDPG;(b) 用随机策略并对目标取期望,即 off-policy actor-critic(SAC 的骨架)。

Slide 上的黄框问「还有哪些改进」,标准答案清单:clipped double-Q(取两个 critic 的 min,进一步压过估计)、Polyak 平均的软目标更新 $\bar\phi \leftarrow \rho\bar\phi + (1-\rho)\phi$、多步回报(N-step return,降低 bootstrapping 偏差但引入 off-policy 偏差)、目标策略平滑(TD3 在目标动作上加噪声,防止 critic 出现尖锐虚假峰值)、优先经验回放、Q 值集成。

题 2.4:为什么表格值迭代收敛、fitted 值迭代不收敛?

非表格值函数学习的不收敛性
把 fitted value iteration 写成两个算子的复合 $V \leftarrow \Pi \mathcal{B} V$:$\mathcal{B}$ 是 Bellman 备份,在 $\infty$-范数下是 $\gamma$-收缩;$\Pi$ 是「投影到函数逼近器所能表示的集合」(图中的蓝色直线代表这个线性子空间),在 $\ell_2$ 范数下是非扩张的。右下的两幅小图对比:表格式情况下迭代点(蓝点)单调靠近星号(最优解);有投影时,$\mathcal{B}V$ 虽然朝星号走了一步,但投影回直线后得到的 $V'$ 反而可能离星号更远。

解答。两个事实:

$$ \|\mathcal{B}V - \mathcal{B}\bar V\|_\infty \le \gamma \|V - \bar V\|_\infty, \qquad \|\Pi V - \Pi \bar V\|^2 \le \|V - \bar V\|^2 . $$

问题在于两个收缩用的是不同的范数:$\mathcal{B}$ 在 $\infty$-范数下收缩,$\Pi$ 在 $\ell_2$ 范数下非扩张。复合算子 $\Pi\mathcal{B}$ 在任何范数下都不是收缩,因此没有不动点定理可用。结论三行:值迭代在表格情形收敛;fitted 值迭代不收敛——一般情况下没有保证,实践中也经常真的发散。同样的论证适用于 fitted Q-iteration 和用了神经网络的 Q-learning。

注意 这里的「不收敛」和 §11 的误差界不是一回事。§11 假设每步的逼近误差有界,给出最终误差的界;而这里说的是迭代可能根本不停下来。深度 RL 实践中用目标网络、小学习率、大回放池,本质上都是在让 $\Pi\mathcal{B}$ 的行为「更像」一个收缩。
速查公式卡片 · Q-learning 家族
对象目标 $y$要点
Q-learning / DQN$r + \gamma\max_{\mathbf{a}'}Q_{\bar\theta}(\mathbf{s}',\mathbf{a}')$max 造成过估计;半梯度
Double DQN$r + \gamma Q_{\bar\theta}(\mathbf{s}',\argmax_{\mathbf{a}'}Q_\theta(\mathbf{s}',\mathbf{a}'))$选动作 / 取值解耦
DDPG$r + \gamma Q_{\bar\phi}(\mathbf{s}',\mu_{\bar\theta}(\mathbf{s}'))$确定性 actor 代替 max
Clipped double-Q (TD3)$r + \gamma \min_{i\in\{1,2\}} Q_{\bar\phi_i}(\mathbf{s}',\mathbf{a}')$悲观化,压过估计
SAC$r + \gamma \E_{\mathbf{a}'\sim\pi_\theta}[Q_{\bar\phi}(\mathbf{s}',\mathbf{a}') - \beta\log\pi_\theta(\mathbf{a}'|\mathbf{s}')]$见 §4,soft 备份

3. Part 5 · 变分推断、VAE 与状态空间模型

题 3.1:从 $\log p(x_i)$ 推出 ELBO(要求写出 Jensen 那一步)

用 Jensen 不等式导出变分下界
右上蓝框是唯一用到的工具:$\log \E[y] \ge \E[\log y]$。左边四行是完整推导:先把边缘化写成积分,再乘除一个任意分布 $q_i(z)$ 把积分变成 $q_i$ 下的期望,最后把 $\log$ 挪进期望号里得到下界。最后一行右侧标注「maximizing this maximizes $\log p(x_i)$」,并把结果整理成「重构项 + 先验项 + 熵」。

解答。设隐变量为 $z$,逐步写:

$$ \log p(x_i) = \log \int_z p(x_i|z)p(z)\,dz = \log \int_z p(x_i|z)p(z)\frac{q_i(z)}{q_i(z)}\,dz = \log \E_{z\sim q_i(z)}\!\left[\frac{p(x_i|z)p(z)}{q_i(z)}\right] $$

用 Jensen($\log$ 是凹函数)把 $\log$ 换进去:

$$ \log p(x_i) \ \ge\ \E_{z\sim q_i(z)}\!\left[\log \frac{p(x_i|z)p(z)}{q_i(z)}\right] = \underbrace{\E_{z\sim q_i(z)}\big[\log p(x_i|z) + \log p(z)\big] + \mathcal{H}(q_i)}_{\mathcal{L}_i(p, q_i)} . $$

这个 $\mathcal{L}_i$ 就是证据下界(ELBO, evidence lower bound)。易错点:熵项来自 $-\E_{q_i}[\log q_i(z)] = \mathcal{H}(q_i)$,别把符号写反;很多人把它记成 $+\E[\log q_i]$,结果整个优化方向就反了。

题 3.2:什么样的 $q_i$ 是好的?为什么最大化 ELBO 等价于最小化 KL?

ELBO 与 KL 的恒等式
整页在做一件事:把 $\KL(q_i(z)\|p(z|x_i))$ 展开,发现它恰好等于 $-\mathcal{L}_i(p,q_i) + \log p(x_i)$。于是得到恒等式 $\log p(x_i) = \KL(q_i\|p(z|x)) + \mathcal{L}_i(p,q_i)$:证据 = KL 间隙 + 下界。因为 KL $\ge 0$,立刻重新得到 $\log p(x_i) \ge \mathcal{L}_i$。

解答。直觉答案:$q_i(z)$ 应该逼近真实后验 $p(z|x_i)$,「逼近」的度量是 KL 散度。推导:

$$ \KL\big(q_i(z)\,\|\,p(z|x_i)\big) = \E_{z\sim q_i}\!\left[\log\frac{q_i(z)}{p(z|x_i)}\right] = \E_{z\sim q_i}\!\left[\log \frac{q_i(z)p(x_i)}{p(x_i,z)}\right] $$ $$ = -\E_{z\sim q_i}\big[\log p(x_i|z) + \log p(z)\big] - \mathcal{H}(q_i) + \log p(x_i) = -\mathcal{L}_i(p,q_i) + \log p(x_i). $$
最大化 ELBO 即最小化 KL
把上式重排后用花括号标出 $-\mathcal{L}_i(p,q_i)$,并用箭头指出 $\log p(x_i)$「与 $q_i$ 无关」。因此对 $q_i$ 最大化 $\mathcal{L}_i$,与对 $q_i$ 最小化 $\KL(q_i\|p(z|x_i))$ 是同一件事——这正是变分推断的全部逻辑。

由于 $\log p(x_i)$ 不含 $q_i$,对 $q_i$ 最大化 $\mathcal{L}_i$ ⟺ 最小化 $\KL(q_i\|p(z|x_i))$;同时对 $p$ 最大化 $\mathcal{L}_i$ 就是在提升证据下界。考点:这里用的是反向 KL($q$ 在前),它有 mode-seeking 的性质,会让 $q$ 缩到后验的某一个峰上;这是 VAE 后验塌缩的一个来源。

题 3.3:amortized 变分推断怎么算 $\nabla_\phi \mathcal{L}$?

Amortized 变分推断
左边网络是解码器 $p_\theta(x|z)$,右边是编码器 $q_\phi(z|x) = \mathcal{N}(\mu_\phi(x),\sigma_\phi(x))$。所谓「amortized」是指:不再对每个数据点 $x_i$ 单独优化一套变分参数,而是训练一个网络一次性把 $x_i$ 映射到 $q$ 的参数。$\nabla_\theta \mathcal{L}$ 很简单:采一个 $z\sim q_\phi(z|x_i)$,然后 $\nabla_\theta \log p_\theta(x_i|z)$。但左下角箭头指着 $\phi \leftarrow \phi + \alpha\nabla_\phi\mathcal{L}$ 问:这个怎么算?

解答。难点在于采样分布本身依赖 $\phi$。两条路:(1) 用 score function / REINFORCE 估计器 $\nabla_\phi \E_{q_\phi}[f] = \E_{q_\phi}[f \nabla_\phi \log q_\phi]$——通用但方差大;(2) 重参数化技巧(reparameterization trick),对高斯 $q$ 写 $z = \mu_\phi(x_i) + \epsilon\,\sigma_\phi(x_i)$,$\epsilon \sim \mathcal{N}(0,1)$,随机性被挪到与 $\phi$ 无关的 $\epsilon$ 上,可以直接反向传播,方差小得多。

ELBO 的重构 + KL 形式与重参数化
把 ELBO 中的 $\E_{q_\phi}[\log p(z)] + \mathcal{H}(q_\phi)$ 合并成 $-\KL(q_\phi(z|x_i)\|p(z))$,于是 $\mathcal{L}_i = \E_{q_\phi}[\log p_\theta(x_i|z)] - \KL(q_\phi(z|x_i)\|p(z))$:第一项是重构,第二项对高斯有解析形式。再往下把期望用重参数化替换,最后一行用单样本近似。底部的计算图完整画出 VAE:$x_i \to (\mu_\phi,\sigma_\phi) \to z = \mu_\phi + \epsilon\sigma_\phi \to p_\theta(x_i|z)$。
$$ \mathcal{L}_i = \E_{\epsilon\sim\mathcal{N}(0,1)}\big[\log p_\theta\big(x_i \mid \mu_\phi(x_i) + \epsilon\,\sigma_\phi(x_i)\big)\big] - \KL\big(q_\phi(z|x_i)\,\|\,p(z)\big) \approx \log p_\theta(x_i|\mu_\phi + \epsilon\sigma_\phi) - \KL(\cdot\|\cdot). $$
import torch, torch.nn as nn

class VAE(nn.Module):
    def __init__(self, xdim, zdim, h=256):
        super().__init__()
        self.enc = nn.Sequential(nn.Linear(xdim, h), nn.ReLU(), nn.Linear(h, 2 * zdim))
        self.dec = nn.Sequential(nn.Linear(zdim, h), nn.ReLU(), nn.Linear(h, xdim))
        self.zdim = zdim

    def elbo(self, x):
        mu, log_sigma = self.enc(x).chunk(2, dim=-1)
        log_sigma = log_sigma.clamp(-5, 2)
        eps = torch.randn_like(mu)
        z = mu + eps * log_sigma.exp()              # 重参数化:梯度可穿过
        recon = -((self.dec(z) - x) ** 2).sum(-1)   # 高斯似然(固定方差)
        # KL(N(mu,sigma) || N(0,I)) 的解析式
        kl = 0.5 * (mu ** 2 + (2 * log_sigma).exp() - 1 - 2 * log_sigma).sum(-1)
        return (recon - kl).mean()

题 3.4:条件模型、扩散与 VAE 的关系

条件 VAE 与扩散 / 流匹配的关系
左列是条件 VAE:给定状态 $s$ 和一个 $z\sim\mathcal{N}(0,\mathbf{I})$ 生成动作 $a$,下界是 $\log p(a|s) \ge \E_{z\sim q(z|s)}[\log p(a|s,z)] - \KL(q(z|s), p(z))$。中列把这个结构堆叠很多层:每一层是一个去噪步 $p(a_{\tau-\Delta\tau}|s,a_\tau,\tau)$,从纯噪声 $a_1\sim\mathcal{N}(0,\mathbf{I})$ 一路走到 $a_0$。右上把扩散的下界写出来,「forward (noising) process」对应 $q(a_{\Delta\tau:1}|a_0)$,「reverse (denoising) process」对应 $p$。黄框结论:扩散可以看作层次化 VAE;DDPM 的噪声端是 $a_1$,flow matching 的噪声端是 $a_0$。

解答要点。条件模型只是把所有分布都条件在 $x_i$ 上:$\mathcal{L}_i = \E_{z\sim q_\phi(z|x_i,y_i)}[\log p_\theta(y_i|x_i,z) + \log p(z|x_i)] + \mathcal{H}(q_\phi(z|x_i,y_i))$,测试时先 $z\sim p(z|x_i)$ 再 $y \sim p(y|x_i,z)$。扩散模型的区别是:隐变量不是一个 $z$ 而是一整条加噪轨迹 $a_{\Delta\tau:1}$,且「编码器」$q$ 是固定的加噪过程(不学习),只学反向去噪。这就是为什么扩散训练稳定——没有编码器和解码器互相追逐的问题。

题 3.5(黄框三连):状态空间模型的 prior / decoder / encoder 各是什么?

状态空间模型作为一个 VAE
图模型:观测 $\mathbf{o}_1,\mathbf{o}_2,\mathbf{o}_3$ 各由隐状态 $\mathbf{z}_t$ 生成,隐状态之间按 $p(\mathbf{z}_{t+1}|\mathbf{z}_t,\mathbf{a}_t)$ 转移。左下角的小图把它对上标准 VAE 的模板:$\mathbf{z}$ 是整条隐状态序列,$\mathbf{x}$ 是整条观测序列。右侧三个黄框依次回答 prior / decoder / encoder,并标注「$p(\mathbf{z}_1)$ 是 $\mathcal{N}(0,\mathbf{I})$,转移是学出来的」。右上角的同心圆图示意隐空间里的一条轨迹 $\mathbf{z}_1\to\mathbf{z}_4$。

解答。把整条隐状态序列当作 $z$、整条观测序列当作 $x$:

$$ \underbrace{p(\mathbf{z}) = p(\mathbf{z}_1)\prod_t p(\mathbf{z}_{t+1}|\mathbf{z}_t,\mathbf{a}_t)}_{\text{prior:初始分布} + \text{学到的动力学}},\quad \underbrace{p_\theta(\mathbf{o}|\mathbf{z}) = \prod_t p(\mathbf{o}_t|\mathbf{z}_t)}_{\text{decoder:观测模型}},\quad \underbrace{q_\phi(\mathbf{z}|\mathbf{o}) = \prod_t q_\phi(\mathbf{z}_t|\mathbf{o}_{1:t})}_{\text{encoder:滤波式后验}} . $$

易错点:这里的 prior 不是标准正态——只有 $p(\mathbf{z}_1)$ 是 $\mathcal{N}(0,\mathbf{I})$,后面的转移是要学的动力学模型。这正是「潜空间模型 = VAE + 动力学」的意思,也是 §6 潜空间 model-based RL 的基础。另一个易错点是 encoder 的条件:写成 $q_\phi(\mathbf{z}_t|\mathbf{o}_{1:t})$(滤波)而不是 $q_\phi(\mathbf{z}_t|\mathbf{o}_t)$,因为部分可观测时单帧不足以确定状态。

4. Part 6 · 控制即推断:从图模型到 soft actor-critic

题 4.1:写出决策的概率图模型,并解释「不假设最优行为」的含义

决策问题的概率图模型
左上被红叉划掉的是确定性最优控制的写法 $\mathbf{a}_1,\dots,\mathbf{a}_T = \argmax\sum_t r(\mathbf{s}_t,\mathbf{a}_t)$——它无法解释人类那种「大致朝目标走但不完美」的行为(左边小图画了一条弯弯曲曲通向叉号的轨迹)。右边给出替代方案:引入二值最优性变量 $\mathcal{O}_t$,令 $p(\mathcal{O}_t|\mathbf{s}_t,\mathbf{a}_t) = \exp(r(\mathbf{s}_t,\mathbf{a}_t))$,那么在「全程最优」的条件下轨迹分布就是 $p(\tau|\mathcal{O}_{1:T}) \propto p(\tau)\exp(\sum_t r(\mathbf{s}_t,\mathbf{a}_t))$。底部是图模型:$\mathbf{s}_t \to \mathbf{s}_{t+1}$ 由 $p(\mathbf{s}'|\mathbf{s},\mathbf{a})$ 连接,每个 $(\mathbf{s}_t,\mathbf{a}_t)$ 指向一个灰色(已观测)的 $\mathcal{O}_t$。

解答。先验轨迹分布 $p(\tau) = p(\mathbf{s}_1)\prod_t p(\mathbf{s}_{t+1}|\mathbf{s}_t,\mathbf{a}_t)$ 里不含任何关于「好动作」的信息(动作先验通常取均匀)。所有的「想要高奖励」这件事都编码在观测 $\mathcal{O}_{1:T}=1$ 上:

$$ p(\tau|\mathcal{O}_{1:T}) = \frac{p(\tau,\mathcal{O}_{1:T})}{p(\mathcal{O}_{1:T})} \propto p(\tau)\prod_t \exp\big(r(\mathbf{s}_t,\mathbf{a}_t)\big) = p(\tau)\exp\Big(\sum_t r(\mathbf{s}_t,\mathbf{a}_t)\Big). $$

「no assumption of optimal behavior」的意思是:模型本身不强制智能体最优,只是说「越优的轨迹越可能被观察到」,概率按指数加权。奖励差 1 的两条轨迹概率比是 $e$ 倍——次优行为仍有非零概率,这正是它能解释真实人类/动物数据的原因,也是 IRL 的建模基础。

题 4.2:推导后向消息 $\beta_t$ 的递推

后向消息的推导
定义 $\beta_t(\mathbf{s}_t,\mathbf{a}_t) = p(\mathcal{O}_{t:T}|\mathbf{s}_t,\mathbf{a}_t)$,对 $\mathbf{s}_{t+1}$ 边缘化后按图模型的条件独立性拆成三段:绿线标出转移 $p(\mathbf{s}_{t+1}|\mathbf{s}_t,\mathbf{a}_t)$、红线标出当前的 $p(\mathcal{O}_t|\mathbf{s}_t,\mathbf{a}_t)$、蓝线标出下一步的 $\beta_{t+1}$。第二个式子对 $\mathbf{a}_{t+1}$ 边缘化,红划线的 $p(\mathbf{a}_{t+1}|\mathbf{s}_{t+1})$ 是动作先验——「哪些动作先验上更可能,暂时假设均匀」。

解答。从 $t=T-1$ 倒推到 $1$:

$$ \beta_t(\mathbf{s}_t,\mathbf{a}_t) = p(\mathcal{O}_t|\mathbf{s}_t,\mathbf{a}_t)\,\E_{\mathbf{s}_{t+1}\sim p(\mathbf{s}_{t+1}|\mathbf{s}_t,\mathbf{a}_t)}\big[\beta_{t+1}(\mathbf{s}_{t+1})\big],\qquad \beta_t(\mathbf{s}_t) = \E_{\mathbf{a}_t \sim p(\mathbf{a}_t|\mathbf{s}_t)}\big[\beta_t(\mathbf{s}_t,\mathbf{a}_t)\big]. $$
后向传递总结与值函数的对应
$\beta_t(\mathbf{s}_t,\mathbf{a}_t)$ 的语义写在右边:「在 $\mathbf{s}_t$ 采取 $\mathbf{a}_t$ 的前提下,从 $t$ 到 $T$ 都能保持最优的概率」。最下方两行做了关键的记号转换:令 $V_t(\mathbf{s}_t) = \log\beta_t(\mathbf{s}_t)$、$Q_t(\mathbf{s}_t,\mathbf{a}_t)=\log\beta_t(\mathbf{s}_t,\mathbf{a}_t)$——「$\beta$ 的对数长得像 Q 函数」。

取对数后(动作先验均匀,常数吸收进去):

$$ Q_t(\mathbf{s}_t,\mathbf{a}_t) = r(\mathbf{s}_t,\mathbf{a}_t) + \log \E\big[\exp(V_{t+1}(\mathbf{s}_{t+1}))\big], \qquad V_t(\mathbf{s}_t) = \log \int \exp\big(Q_t(\mathbf{s}_t,\mathbf{a}_t)\big)\,d\mathbf{a}_t . $$

第二式就是 soft max(log-sum-exp),当 $Q$ 值差距很大时 $\log\int e^{Q} \approx \max_\mathbf{a} Q$,退化为普通值迭代。

常见误区 第一式里的 $\log\E[\exp(V_{t+1})]$ 是对下一状态的期望做 log-sum-exp,这会产生「乐观」偏差:模型会假装自己能挑到运气最好的那个转移结果(risk-seeking)。这是 control-as-inference 的一个真实缺陷,只在确定性动力学下无害。修正办法就是下面的变分推断版本——把 $q$ 的动力学钉死成真实动力学。

题 4.3:由 $\beta$ 计算策略,并说明它为什么是 $\exp(A)$

从后向消息计算策略
推导链:$p(\mathbf{a}_t|\mathbf{s}_t,\mathcal{O}_{1:T}) = p(\mathbf{a}_t|\mathbf{s}_t,\mathcal{O}_{t:T})$(未来的最优性才与当前动作有关),用贝叶斯展开后 $p(\mathcal{O}_{t:T})$ 上下抵消(红划线),$p(\mathbf{a}_t|\mathbf{s}_t)$ 因均匀先验也被划掉,最后剩下 $\pi(\mathbf{a}_t|\mathbf{s}_t) = \beta_t(\mathbf{s}_t,\mathbf{a}_t)/\beta_t(\mathbf{s}_t)$。
用值函数表达 soft 最优策略
把 $V_t = \log\beta_t(\mathbf{s}_t)$、$Q_t = \log\beta_t(\mathbf{s}_t,\mathbf{a}_t)$ 代回策略公式,得到 $\pi(\mathbf{a}_t|\mathbf{s}_t) = \exp(Q_t - V_t) = \exp(A_t(\mathbf{s}_t,\mathbf{a}_t))$:soft 最优策略就是对优势函数取 softmax。
$$ \pi(\mathbf{a}_t|\mathbf{s}_t) = \frac{\beta_t(\mathbf{s}_t,\mathbf{a}_t)}{\beta_t(\mathbf{s}_t)} = \exp\big(Q_t(\mathbf{s}_t,\mathbf{a}_t) - V_t(\mathbf{s}_t)\big) = \exp\big(A_t(\mathbf{s}_t,\mathbf{a}_t)\big). $$

考点:优势为 0 的动作概率为 1 的「基准」,优势为 $-1$ 的动作概率降到 $1/e$。加上温度 $\beta$ 后是 $\pi \propto \exp(A/\beta)$,$\beta\to 0$ 时退化为确定性贪心策略。

题 4.4:变分版本——为什么要固定 $q$ 的动力学?推出「奖励 + 熵」目标

用变分推断做控制
令 $\mathbf{x} = \mathcal{O}_{1:T}$(观测)、$\mathbf{z} = (\mathbf{s}_{1:T},\mathbf{a}_{1:T})$(隐变量),于是 $p(\mathbf{z}|\mathbf{x})$ 就是上一节的后验轨迹分布。变分族取 $q(\mathbf{s}_{1:T},\mathbf{a}_{1:T}) = p(\mathbf{s}_1)\prod_t p(\mathbf{s}_{t+1}|\mathbf{s}_t,\mathbf{a}_t)q(\mathbf{a}_t|\mathbf{s}_t)$:初始分布与转移和 $p$ 完全相同,「唯一新的东西」只有策略 $q(\mathbf{a}_t|\mathbf{s}_t)$。下面两幅图对比 $p$ 与 $q$ 的图结构:$q$ 里没有 $\mathcal{O}_t$ 节点。

解答(第一问)。如果允许 $q$ 也改动力学,推断出来的「最优轨迹」会包含改变物理规律的成分——正是题 4.2 那个乐观偏差的来源。把 $q$ 的动力学钉死成真实动力学,就强制智能体只能通过选动作来提高奖励。

变分下界化简为最大熵目标
把 $q$ 的分解代入 ELBO:绿线标出的 $\log p(\mathbf{s}_1)$ 与 $-\log p(\mathbf{s}_1)$ 相消,橙线标出的 $\sum_t \log p(\mathbf{s}_{t+1}|\mathbf{s}_t,\mathbf{a}_t)$ 也两两相消(红叉),只剩 $\sum_t \log p(\mathcal{O}_t|\mathbf{s}_t,\mathbf{a}_t) = \sum_t r(\mathbf{s}_t,\mathbf{a}_t)$ 与 $-\sum_t\log q(\mathbf{a}_t|\mathbf{s}_t)$。最后一行整理成 $\sum_t \E[r(\mathbf{s}_t,\mathbf{a}_t) + \mathcal{H}(q(\mathbf{a}_t|\mathbf{s}_t))]$,底部一句话:「maximize reward and maximize action entropy!」
$$ \log p(\mathcal{O}_{1:T}) \ \ge\ \sum_t \E_{(\mathbf{s}_t,\mathbf{a}_t)\sim q}\Big[r(\mathbf{s}_t,\mathbf{a}_t) + \mathcal{H}\big(q(\mathbf{a}_t|\mathbf{s}_t)\big)\Big]. $$

这就是最大熵强化学习(MaxEnt RL)的目标。相消的两项正是「$q$ 与 $p$ 共享动力学」的红利:如果不共享,$\sum_t[\log p(\mathbf{s}_{t+1}|\cdot) - \log q(\mathbf{s}_{t+1}|\cdot)]$ 会留下一个 KL 项,鼓励智能体去「幻想」有利的转移。

变分后向传递与 soft 值迭代
左侧是变分版的后向递推:$Q_t = r + \E[V_{t+1}]$(注意:期望在外,没有 log-sum-exp,乐观偏差消失),$V_t = \log\int\exp(Q_t)$。右侧把普通值迭代与 soft 值迭代并排:唯一差别是第 2 步 $\max_\mathbf{a} Q$ 换成 $\operatorname{soft\,max}_\mathbf{a} Q$。

题 4.5:soft actor-critic 的四步;为什么要给熵加温度 $\beta$?

Soft actor-critic 算法
算法:1) 用 $\mathbf{a}\sim\pi_\theta$ 走一步得到 $(\mathbf{s}_i,\mathbf{a}_i,\mathbf{s}_i')$ 存进回放池;2) 目标 $y_i = r + \gamma\E_{\mathbf{a}'\sim\pi_\theta}[\hat Q^\pi_\phi(\mathbf{s}_i',\mathbf{a}')] + \mathcal{H}(\pi_\theta(\mathbf{a}'|\mathbf{s}_i'))$,也可等价写成 $r + \gamma\E_{\mathbf{a}'}[\hat Q^\pi_\phi - \log\pi_\theta(\mathbf{a}'|\mathbf{s}_i')]$;3) critic 回归;4) actor 目标 $J(\theta) = \sum_i \E_{\mathbf{a}\sim\pi_\theta}[\hat Q^\pi_\phi(\mathbf{s}_i,\mathbf{a})] + \mathcal{H}(\pi_\theta(\mathbf{a}|\mathbf{s}_i))$;5) 梯度上升。右下角提示:通常在熵项前放一个温度 $\beta$——「why?」

解答。温度 $\beta$ 的必要性有三层:(1) 量纲——奖励的尺度是任意的,$r$ 放大 10 倍等价于把熵项缩小 10 倍,所以熵的权重必须可调;(2) 退火——训练初期需要大熵探索,后期需要小熵以逼近真正的最优策略,$\beta$ 提供这个旋钮;(3) 自动调节——SAC 的实现把 $\beta$ 当作拉格朗日乘子,约束 $\E[-\log\pi] \ge \bar{\mathcal{H}}$,用对偶梯度自动调,省掉一个超参。

黄框问「为什么 SAC 是最常用的 off-policy actor-critic」:因为它同时拿到了三样东西——off-policy 的样本效率(回放池)、熵正则带来的探索与鲁棒性(不会过早坍缩到确定性策略)、以及 clipped double-Q 带来的稳定性。易错点:SAC 的 critic 学的是 soft Q 函数,目标里带 $-\log\pi$;如果照抄普通 TD 目标就会得到不一致的 actor 与 critic。

5. Part 6 续 · 逆强化学习与 RLHF

题 5.1:MaxEnt IRL 的最大似然目标;难点在哪

学习最优性变量:MaxEnt IRL 的目标
把 $p(\mathcal{O}_t|\mathbf{s}_t,\mathbf{a}_t) = \exp(r_\psi(\mathbf{s}_t,\mathbf{a}_t))$ 中的奖励参数化为 $\psi$。给定专家样本 $\{\tau_i\}\sim\pi^\star(\tau)$,做最大似然:$\max_\psi \frac1N\sum_i \log p(\tau_i|\mathcal{O}_{1:T},\psi) = \max_\psi \frac1N\sum_i r_\psi(\tau_i) - \log Z$。$p(\tau)$ 被划掉,因为它与 $\psi$ 无关。右下角箭头指着 $\log Z$:「partition function(难的部分)」。

解答。目标函数是「专家轨迹的奖励尽量高,减去所有可能轨迹的 log 配分函数」:

$$ \max_\psi \frac1N \sum_{i=1}^N r_\psi(\tau_i) - \log Z, \qquad Z = \int p(\tau)\exp\big(r_\psi(\tau)\big)\,d\tau . $$

难点是 $Z$——对所有轨迹积分,在连续高维空间里无法直接算。

题 5.2:推导 IRL 的梯度,并解释两项的物理意义

IRL 配分函数的梯度
对 $\log Z$ 求导得到 $\frac1Z\int p(\tau)\exp(r_\psi(\tau))\nabla_\psi r_\psi(\tau)d\tau$,花括号标出被积的权重 $\frac{1}{Z}p(\tau)\exp(r_\psi(\tau))$ 恰好是软最优轨迹分布 $p(\tau|\mathcal{O}_{1:T},\psi)$。于是梯度化为两个期望之差,左边「用专家样本估计」,右边「当前奖励下的软最优策略」。

解答。

$$ \nabla_\psi \mathcal{L} = \frac1N\sum_{i=1}^N \nabla_\psi r_\psi(\tau_i) - \frac1Z\int p(\tau)\exp\big(r_\psi(\tau)\big)\nabla_\psi r_\psi(\tau)\,d\tau = \E_{\tau\sim\pi^\star(\tau)}\big[\nabla_\psi r_\psi(\tau)\big] - \E_{\tau\sim p(\tau|\mathcal{O}_{1:T},\psi)}\big[\nabla_\psi r_\psi(\tau)\big]. $$

物理意义:抬高专家做过的事的奖励,压低当前策略爱做的事的奖励——这是能量模型(EBM)经典的「正相 − 负相」结构。两个期望相等时梯度为零,即当前软最优策略的行为分布与专家一致。易错点:第二项要求在每次奖励更新后重新求解一遍(软)RL 问题,这是 IRL 昂贵的根源;实践中用「部分优化」(只更新几步策略)来近似。

题 5.3:IRL 与 GAN 的等价——判别器该怎么参数化?

逆强化学习作为 GAN
先给出 GAN 的最优判别器 $D^\star(\mathbf{x}) = \frac{p^\star(\mathbf{x})}{p_\theta(\mathbf{x}) + p^\star(\mathbf{x})}$。对 IRL 而言最优策略趋向 $\pi_\theta(\tau)\propto p(\tau)\exp(r_\psi(\tau))$,于是把判别器写成 $D_\psi(\tau) = \frac{p(\tau)\frac1Z\exp(r(\tau))}{p_\theta(\tau) + p(\tau)\frac1Z \exp(r(\tau))}$;分子分母的 $p(\tau)$(初始分布与动力学)全部约掉(红划线),剩下 $\frac{\frac1Z\exp(r(\tau))}{\prod_t \pi_\theta(\mathbf{a}_t|\mathbf{s}_t) + \frac1Z\exp(r(\tau))}$。箭头说明:$Z$ 与 $\psi$ 用同一个目标一起优化。底部一句:「we don't need importance weights anymore – they are subsumed into $Z$」。

解答。判别器用上面这个特殊结构(而不是普通的黑箱二分类器),判别器的训练目标就是标准 GAN 的交叉熵:

$$ \psi \leftarrow \argmax_\psi\ \E_{\tau\sim p^\star}\big[\log D_\psi(\tau)\big] + \E_{\tau\sim\pi_\theta}\big[\log(1 - D_\psi(\tau))\big]. $$

好处有两点:一是所有与 $\psi$ 无关的动力学项被约掉,判别器只依赖可学的奖励和已知的策略密度;二是原本需要用重要性权重 $\frac{\exp(r)}{\pi_\theta}$ 来修正「负相样本来自 $\pi_\theta$ 而不是软最优分布」的偏差,现在这个权重被 $Z$ 自动吸收了。

题 5.4:可以直接用普通判别器吗?三条利弊

GAIL:使用普通判别器
流程图:策略 $\pi_\theta(\tau)$ 采样与专家数据 $p^\star(\tau)$ 一起喂给判别器训练;策略的更新则用 $\nabla_\theta \mathcal{L} \approx \frac1M\sum_j \nabla_\theta \log\pi_\theta(\tau_j)\log D_\psi(\tau_j)$——也就是把 $\log D$ 当奖励做策略梯度,「策略被改成让判别器更难区分」。右侧 Pros & cons 三条。

解答。$D_\psi$ 用普通二分类网络即可,这就是 GAIL(generative adversarial imitation learning)。+ 优化设置更简单、活动部件更少;− 收敛时判别器「什么都不知道」——当 $\pi_\theta = p^\star$ 时最优判别器恒等于 $1/2$,梯度里再也提取不出关于任务的信息;− 因此一般不能把学到的「奖励」拿去在新环境里重新优化。如果目的是学一个可迁移、可复用的奖励函数,就必须用题 5.3 的结构化判别器。

题 5.5:完整的 RLHF 算法;为什么第 3 步「看起来像逻辑回归」

从人类反馈中学习奖励的完整算法
四步循环:1) 从 $\pi_\theta$ 采样 2 条(或更多)轨迹;2) 请人标注偏好 $\{\tau_i \succ \tau_j\}$;3) 训练奖励 $\psi \leftarrow \argmax_\psi \sum_{i,j}\log\sigma(r_\psi(\tau_i) - r_\psi(\tau_j))$;4) 用 $r_\psi$ 训练策略(箭头标注「这里可以是不完全优化」)。右下角给出 Bradley–Terry 偏好模型 $p(\tau_i\succ\tau_j) = \frac{\exp(\sum_t r_\psi(\mathbf{s}^{(i)}_t,\mathbf{a}^{(i)}_t))}{\exp(\sum_t r_\psi(\tau_i)) + \exp(\sum_t r_\psi(\tau_j))}$。左下的三维曲面画的是奖励地形与几条候选轨迹,两个叉表示被比较的一对。

解答。Bradley–Terry 模型把两条轨迹的偏好概率写成回报差的 sigmoid:

$$ p(\tau_i \succ \tau_j) = \frac{\exp\!\big(\sum_t r_\psi(\tau_i)\big)}{\exp\!\big(\sum_t r_\psi(\tau_i)\big) + \exp\!\big(\sum_t r_\psi(\tau_j)\big)} = \sigma\big(r_\psi(\tau_i) - r_\psi(\tau_j)\big), $$

取对数似然正好是逻辑回归的形式,其中「特征」是回报差。为什么不用 §5.2 的配分函数版本:偏好是成对比较,配分函数只对这两条轨迹求和,天然可算——这就是 RLHF 相比 MaxEnt IRL 的最大工程优势。

直觉 第 4 步标注的「可以是不完全优化」很关键:如果每轮都把策略优化到收敛,策略会跑到奖励模型的错误外推区(reward hacking)。只走几步、然后重新采样问人,相当于让奖励模型的训练分布跟着策略走——这与 DAgger 修正模仿学习分布偏移的思路完全一样。
速查公式卡片 · 控制即推断 / IRL
量表达式对应的经典 RL 概念
最优性似然$p(\mathcal{O}_t|\mathbf{s}_t,\mathbf{a}_t)=\exp r(\mathbf{s}_t,\mathbf{a}_t)$奖励
后向消息$\beta_t(\mathbf{s},\mathbf{a}) = p(\mathcal{O}_{t:T}|\mathbf{s},\mathbf{a})$$\log\beta_t = Q_t$
soft 值$V(\mathbf{s}) = \log\int \exp Q(\mathbf{s},\mathbf{a})\,d\mathbf{a}$$\max_\mathbf{a} Q$ 的平滑版
soft 策略$\pi(\mathbf{a}|\mathbf{s}) = \exp(A(\mathbf{s},\mathbf{a}))$Boltzmann 策略
变分目标$\sum_t\E[r + \mathcal{H}(\pi)]$MaxEnt RL / SAC
IRL 梯度$\E_{\pi^\star}[\nabla r_\psi] - \E_{\text{soft opt}}[\nabla r_\psi]$EBM 正相 − 负相
RLHF 奖励损失$-\sum \log\sigma(r_\psi(\tau_i)-r_\psi(\tau_j))$Bradley–Terry / 逻辑回归

6. Part 7 · 基于模型的 RL:分布偏移与不确定性

题 6.1:model-based RL 的分布偏移长什么样?两类解法是什么?

model-based RL 中的分布偏移与两类对策
上框是朴素循环:用 $\pi_\beta$ 收数据 → 学模型 $f(\mathbf{s},\mathbf{a})=\mathbf{s}'$ → 在 $f$ 下把策略「改进一点」→ $\pi_\beta \leftarrow \pi_f$。右上给出对策 1:别把策略改太多,$\KL(\pi_f\|\pi_\beta)\le\epsilon$,即信赖域。下框是对策 2 的算法形态:学概率模型 $p(\mathbf{s}'|\mathbf{s},\mathbf{a})$,取在 $p$ 下期望意义最优的策略;配套两条要点:用不确定性感知模型、在模型不确定处施加悲观惩罚。

解答。模型是在 $\pi_\beta$ 的状态分布上拟合的,但策略优化会去最大化模型下的回报——优化器会主动搜索模型误差最大、看起来奖励最高的区域。这与对抗样本是同一现象:模型没错在平均意义上,而是错在被专门挑出来的那一小撮点上。两类解法:(1) 限制策略变化幅度(信赖域,让状态分布不要跑太远);(2) 只在模型「自信」的地方行动,用不确定性感知模型 + 悲观惩罚。

题 6.2(黄框):为什么输出熵不够?两类不确定性各是什么?

两类不确定性
左边网络输出 $p(\mathbf{s}_{t+1}|\mathbf{s}_t,\mathbf{a}_t)$,右上画了离散分布柱状图和连续高斯——这就是「输出熵」。中间大字问「why is this not enough?」。下方区分两类不确定性:右下小图是偶然不确定性(aleatoric,数据本身有噪声,抛硬币再多次也测不准);左下小图是认知不确定性(epistemic,几个数据点被一条剧烈震荡的高阶多项式完美拟合,模型对数据很确定,但我们对模型很不确定)。

解答。网络的输出熵只刻画了 aleatoric 不确定性,即「给定这个模型,结果本身有多随机」。但过拟合的模型可以在没有数据的地方非常自信地给出错误预测——输出熵极低,实际误差极大。我们真正需要的是 epistemic 不确定性:$p(\theta|\mathcal{D})$ 的分散程度,也就是「模型对数据很确定,但我们对模型不确定」。左下角的问题「what is the variance here?」的答案:那条震荡曲线在数据点之间的方差看起来是 0(曲线穿过每个点),但换一组随机种子重训会得到完全不同的曲线,这个「模型间的方差」才是我们要的量。实践中的近似:bootstrap ensemble(训 $N$ 个模型,用它们预测的分歧当不确定性)。

题 6.3:如何用不确定性做规划?

带不确定性的规划
Before:$J(\mathbf{a}_1,\dots,\mathbf{a}_H)=\sum_t r(\mathbf{s}_t,\mathbf{a}_t)$,单一确定性模型。Now:$J = \frac1N\sum_{i=1}^N\sum_{t=1}^H r(\mathbf{s}_{t,i},\mathbf{a}_t)$,其中 $\mathbf{s}_{t+1,i}=f_i(\mathbf{s}_{t,i},\mathbf{a}_t)$——右侧箭头注明这是「确定性模型上的一个分布」。下面四步给出一般形式:采 $\theta\sim p(\theta|\mathcal{D})$,用它逐步展开轨迹,累计回报,重复取平均。

解答。对同一个候选动作序列,在每一个集成成员上都 rollout 一遍,取平均回报作为该序列的评分。关键在于:一条 rollout 全程用同一个 $\theta$(不要每步换模型),否则不确定性会被平均掉。这样一来,只有在所有模型都认为好的动作序列才会得高分——模型分歧大的区域自动被降权。其他做法:矩匹配(moment matching)、贝叶斯神经网络后验估计。

题 6.4(红字):随机开环控制为什么是次优的?

随机开环控制
机器人先看到 $\mathbf{s}_1$,然后一次性把整串动作 $\mathbf{a}_1,\dots,\mathbf{a}_T$ 交给世界,中途不再接收反馈。目标是 $\argmax_{\mathbf{a}_{1:T}} \E[\sum_t r(\mathbf{s}_t,\mathbf{a}_t)\mid \mathbf{a}_{1:T}]$。红字问:为什么这是次优的?

解答。因为它假设自己在未来不会获得任何新信息,从而必须选一串对所有可能的随机结果都还凑合的动作。而真实的最优解是闭环策略 $\pi(\mathbf{a}_t|\mathbf{s}_t)$:在 $t$ 时刻已经观测到 $\mathbf{s}_t$,可以据此调整。举个数值例子:走迷宫时前方有两扇门,随机一扇是通的(各 50%)。开环最优只能盲选一扇,期望成功率 0.5;闭环策略走到门口看一眼再选,成功率 1.0。易错点:开环解不仅期望回报低,还会系统性地表现得「过分保守」,因为它把「我将来会知道更多」这件事的价值算成了 0。

随机闭环控制
对照图:机器人交出的是策略 $\pi(\mathbf{a}_t|\mathbf{s}_t)$ 而不是动作序列,轨迹分布变成 $p(\mathbf{s}_1)\prod_t\pi(\mathbf{a}_t|\mathbf{s}_t)p(\mathbf{s}_{t+1}|\mathbf{s}_t,\mathbf{a}_t)$,优化对象是 $\pi$ 本身。这就是标准 RL 的问题设定。

题 6.5:MBA / MVE / MBPO 这一类算法好在哪、坏在哪?

用模型生成的数据训练 Q 函数
六步算法:真实交互存入 $\mathcal{B}$ → 采 batch 更新模型 $\hat p(\mathbf{s}'|\mathbf{s},\mathbf{a})$ → 从 $\mathcal{B}$ 里采一批状态 $\{\mathbf{s}_j\}$ 作为起点 → 用 $\pi$ 在模型里做短 rollout → 把 rollout 上所有 $(\mathbf{s},\mathbf{a},\mathbf{s}',r)$ 拿去更新 Q 函数。右侧示意图:黑色粗线是真实轨迹,橙色短枝是从真实状态出发的模型 rollout——短、且从真实状态分支出去是这类方法的精髓。绿色 / 红色两行问:好在哪、坏在哪。

解答。好处:(a) 数据量放大——一条真实转移可以派生出几十条模型转移,样本效率大幅提升;(b) rollout 起点都在真实数据分布里,所以模型只需在真实状态的小邻域内准确,比从初始状态一路展开到 $T$ 要容易得多;(c) rollout 里的动作由当前策略产生,缓解了 Q 函数只见过 $\pi_\beta$ 动作的问题;(d) 短 rollout 让模型误差没有时间累积。

坏处:(a) 模型误差仍会污染 Q 函数——一旦 Q 学到了模型幻觉出的高回报状态,策略就会去追它;(b) 出现了两重分布偏移(模型的 + Q 的),互相放大;(c) rollout 长度 $k$ 是一个敏感超参:太短则收益有限,太长则误差爆炸;(d) 计算开销大。MBPO 的核心贡献正是给出「什么时候该信任模型」的分析,并给出随训练进度增长 $k$ 的调度。

题 6.6:潜空间模型的 prior / decoder / encoder(与题 3.5 的区别)

潜空间状态模型用于 model-based RL
与题 3.5 的图几乎一样,但箭头指向 $\mathbf{o}_3$ 并注明「we are not in partially observed setting」——这里我们的目标不是解 POMDP,而是学一个紧凑的隐空间来做规划,序列长度写成 $H$(规划视野)而非 $T$。三个黄框答案同前。

解答。形式完全相同:prior 是 $p(\mathbf{z}_1)\prod_t p(\mathbf{z}_{t+1}|\mathbf{z}_t,\mathbf{a}_t)$($\mathcal{N}(0,\mathbf{I})$ 初始 + 学到的隐动力学),decoder 是 $\prod_t p(\mathbf{o}_t|\mathbf{z}_t)$,encoder 是 $\prod_t q_\phi(\mathbf{z}_t|\mathbf{o}_{1:t})$。区别在用途:在 §3 里它是一个生成模型;在这里,$p(\mathbf{z}_{t+1}|\mathbf{z}_t,\mathbf{a}_t)$ 就是我们要用来做规划 / rollout 的动力学模型,图像重建只是为了给隐空间提供训练信号。考点:这是 Dreamer 系列方法的基本结构;训练时同时优化 ELBO(表示学习)和 RL 目标(在隐空间里做 actor-critic)。

7. Part 8 · 离线 RL:分布偏移出现在每一种算法的什么位置

题 7.1:on-policy / off-policy / offline 三种设定的区别

on-policy、off-policy 与 offline RL 的数据流对比
三张流程图:on-policy RL 中 $\pi_k$ 与环境交互产生 rollout,立即用来更新成 $\pi_{k+1}$,数据用完即弃;off-policy RL 多了一个缓冲区 $\mathcal{D}$,历史数据可以复用,但仍然持续与环境交互;offline RL 中虚线框圈出的「训练阶段」完全不含环境——数据由某个(任意的)行为策略 $\pi_\beta$ 一次性收集,训练完才部署。

解答。关键差别只有一条:训练过程中能否继续采集数据来纠正自己的错误。on-policy 和 off-policy 都能,offline 不能。这一条差别导致离线 RL 的核心困难:算法会对数据里没有的动作做出乐观的反事实推断,而没有任何机会去验证这个推断是错的。

题 7.2:分布偏移在 Q-learning / actor-critic 里出现在哪两处?

Q-learning 中分布偏移的两个位置
两个红圈:左边 $\phi\leftarrow\argmin_\phi \E_{\mathbf{s},\mathbf{a}\sim \pi_\beta(\mathbf{s},\mathbf{a})}\|Q^{\pi_\theta}_\phi(\mathbf{s},\mathbf{a}) - y\|^2$ 圈住 $\pi_\beta$——训练分布只能是数据分布,「因为我们只对 $\mathbf{s}_i,\mathbf{a}_i$ 有 $\mathbf{s}_i'$」;右边目标 $y_i = r + \gamma\E_{\mathbf{a}'\sim\pi_\theta(\mathbf{a}'|\mathbf{s}_i')}[Q_\phi(\mathbf{s}_i',\mathbf{a}')]$ 圈住 $\pi_\theta$——查询分布却是新策略。中间写着 $\pi_\theta \neq \pi_\beta$。下面「worse: $\theta\leftarrow\argmax_\theta\E_{\mathbf{a}\sim\pi_\theta}[Q_\phi(\mathbf{s},\mathbf{a})]$」。配图是经典对抗样本:熊猫加噪声被判成长臂猿。

解答。两处:训练分布是 $\pi_\beta$(数据),评估分布是 $\pi_\theta$(新策略)。监督学习只保证在训练分布上误差小,$\pi_\theta\neq\pi_\beta$ 时 $Q_\phi$ 在新动作上的误差没有任何保证。而「worse」的那一行说明了更致命的问题:actor 不是随机地在 $Q$ 上查询,而是专门去找 $Q$ 最大的动作——它主动搜索 $Q$ 高估最严重的点。这与对抗样本完全同构:熊猫图片加上专门优化过的噪声就被判成长臂猿,误差不是随机的,是被优化器找出来的。

题 7.3:model-based RL 与 off-policy policy gradient 里的对应位置

model-based RL 中的同一问题
模型训练目标是 $\E_{\mathbf{s},\mathbf{a}\sim\pi_\beta,\mathbf{s}'\sim p}\|f(\mathbf{s},\mathbf{a})-\mathbf{s}'\|^2$,这个量低;但 $\E_{\mathbf{s},\mathbf{a}\sim\pi_\theta}\|f(\mathbf{s},\mathbf{a})-\mathbf{s}'\|^2$ 对一般的 $\pi_\theta\neq\pi_\beta$ 不低。「worse: 我们还专门挑 $\pi_\theta$ 去最大化 $f$ 下的奖励!」——同样的对抗样本插图。
off-policy 策略梯度中的重要性权重与策略约束
重要性采样代理目标 $J(\theta) = \sum_i\sum_t \frac{\pi_\theta(\mathbf{a}^{(i)}_t|\mathbf{s}^{(i)}_t)}{\pi_\beta(\mathbf{a}^{(i)}_t|\mathbf{s}^{(i)}_t)}A^{\pi_\theta}(\mathbf{s}^{(i)}_t,\mathbf{a}^{(i)}_t) + \beta\log\pi_\theta(\mathbf{a}^{(i)}_t|\mathbf{s}^{(i)}_t)$。左侧花括号注「比值远离 1.0 = 方差爆炸」,右侧花括号注「just don't go there」,黄框指出后一项就是一个策略约束。底部一句话点题:「反事实问题的答案具有高方差(取决于你到底见没见过)」。

解答。model-based RL:模型误差在 $\pi_\beta$ 分布下低,在 $\pi_\theta$ 分布下不低,而策略优化又刻意去利用这个误差。off-policy policy gradient:重要性权重 $\prod_t \frac{\pi_\theta}{\pi_\beta}$ 在 $\pi_\theta$ 远离 $\pi_\beta$ 时方差指数爆炸。关键洞察:加一项 $\beta\log\pi_\theta(\mathbf{a}_t^{(i)}|\mathbf{s}_t^{(i)})$($\mathbf{a}^{(i)}$ 是数据里的动作,即行为克隆项),就是在告诉策略「别往那边走」——这已经是一个策略约束了。所以「重要性采样方差爆炸」与「策略约束」是同一个硬币的两面:要么忍受方差,要么限制偏移。

题 7.4:离线 RL 的三大原则

离线 RL 的三条通用原则
两条总纲写在顶端的黄条里:用基于值的方法(Q-learning 或 Q 函数 actor-critic);想办法解决分布偏移。下面并列三种解法:策略约束(绿框里的 $\KL(\pi(\mathbf{a}|\mathbf{s})\|\pi_\beta(\mathbf{a}|\mathbf{s}))\le\epsilon$,「训练策略使其贴近数据」);悲观主义(曲线图上红箭头指着一个虚假的尖峰,例如 CQL,「训练 Q 使其不高估」);回避 OOD 动作(右边的非对称损失曲线,例如 IQL,「把整个算法设计成不查询样本外动作」)。

解答。为什么必须用基于值的方法?因为纯策略梯度在离线设定下需要重要性权重,方差不可控;而 Q 函数可以直接用数据里的 $(\mathbf{s},\mathbf{a},\mathbf{s}')$ 做 Bellman 备份,唯一的偏移只在目标里的 $\mathbf{a}'$ 那一处,容易定点治理。三条原则的差别在于「治哪一头」:

原则改什么代表算法主要代价
策略约束actor 的目标BRAC, TD3+BC, AWAC过约束时无法超越行为策略;需要估计 $\pi_\beta$
悲观 / 保守critic 的目标CQL, MOPO低估过头,offline→online 时要长时间「恢复」
回避样本外动作整个更新规则IQL只能做「数据内的最好」,改进幅度受限
核心结论 离线 RL 里所有方法都在做同一件事的不同版本:阻止 Q 函数在没有数据支持的 $(\mathbf{s},\mathbf{a})$ 上被优化器利用。理解这一句,三大流派的公式都能自己推出来。

8. Part 8 续 · 显式与隐式策略约束

题 8.1:两种把约束塞进 actor 目标的写法,分别对应哪个方向的 KL?

显式策略约束的两种实现
原始 actor 目标 $\theta\leftarrow\argmax_\theta\sum_{\mathbf{s}_i\in\mathcal{D}}\E_{\mathbf{a}\sim\pi_\theta}[Q(\mathbf{s}_i,\mathbf{a})]$ 被红线划掉。方案 1a:加上 $\lambda\log\pi_\beta(\mathbf{a}|\mathbf{s}_i)$ 与 $\lambda\mathcal{H}(\pi_\theta)$,下面一行验证这两项合起来正是 $-\lambda \KL(\pi_\theta\|\pi_\beta)$,标注「reverse KL」。方案 1b:加上 $\lambda\log\pi_\theta(\mathbf{a}_i|\mathbf{s}_i)$(注意是数据里的动作 $\mathbf{a}_i$),对应 $\KL(\pi_\beta\|\pi_\theta) = -\E_{\pi_\beta}[\log\pi_\theta] + \text{const}$,标注「forward KL」,也就是「[method]+BC」(DDPG+BC、TD3+BC、SAC+BC)。$\lambda$ 被箭头标为拉格朗日乘子。底部黄条:一般不是最好的办法,但做对了也能 work。

解答。先看 1a。反向 KL 展开:

$$ \KL(\pi_\theta\|\pi_\beta) = \E_{\pi_\theta}\big[\log\pi_\theta(\mathbf{a}|\mathbf{s}) - \log\pi_\beta(\mathbf{a}|\mathbf{s})\big] = -\E_{\pi_\theta}\big[\log\pi_\beta(\mathbf{a}|\mathbf{s})\big] - \mathcal{H}(\pi_\theta), $$

所以在目标里加 $\lambda\E_{\pi_\theta}[\log\pi_\beta] + \lambda\mathcal{H}(\pi_\theta)$ 就等价于减去 $\lambda\KL(\pi_\theta\|\pi_\beta)$。代价:需要一个显式的行为策略模型 $\pi_\beta$(通常先用 BC 训一个),而 $\pi_\beta$ 的估计误差会直接注入约束。

再看 1b。前向 KL:$\KL(\pi_\beta\|\pi_\theta) = -\E_{\pi_\beta}[\log\pi_\theta(\mathbf{a}|\mathbf{s})] + \text{const}$,只需要数据样本就能估计——这就是加一项 $\lambda\log\pi_\theta(\mathbf{a}_i|\mathbf{s}_i)$ 的来历,也是 TD3+BC 那种「Q 项 + 行为克隆项」写法的理论依据。两者的性质差异:反向 KL 是 mode-seeking,策略会缩到行为分布的某一个峰上(对多模态数据可能只学到一种做法,但至少不会学出「峰间」的危险动作);前向 KL 是 mode-covering,策略会试图覆盖行为分布的全部支撑集,多模态数据下可能在两个峰的中间产生一个数据里根本不存在的动作。

题 8.2:BRAC 式与 AC+BC 式算法的差别在哪一行?

BRAC 式离线 actor-critic
四步:1) 目标里就带惩罚 $y_i = r + \gamma\E_{\mathbf{a}'\sim\pi_\theta}[\hat Q^\pi_\phi(\mathbf{s}_i',\mathbf{a}') - \lambda D(\pi_\theta(\cdot|\mathbf{s}_i'),\pi_\beta(\cdot|\mathbf{s}_i'))]$;2) critic 回归;3) actor 目标 $J(\theta)=\sum_i\E_{\pi_\theta}[\hat Q_\phi] - \lambda D(\pi_\theta,\pi_\beta)$;4) 梯度上升。例如取 $D=\KL(\pi_\theta\|\pi_\beta)$。
AC+BC 式离线 actor-critic
同样四步,但第 1 步的目标里没有惩罚项(就是普通的 $r+\gamma\E_{\pi_\theta}[\hat Q_\phi]$),惩罚只出现在第 3 步 actor 目标里,形式是 $+\lambda\log\pi_\theta(\mathbf{a}_i|\mathbf{s}_i)$。

解答。差别在于惩罚是否进入 critic 的备份目标。BRAC 把 $-\lambda D$ 写进 $y_i$,等于修改了奖励函数($\tilde r = r - \lambda D$),因此 Q 学到的是「受约束 MDP」的值——惩罚会沿着时间反向传播,策略会提前避开那些将来不得不偏离数据的状态。AC+BC 只在 actor 上加 BC 项,Q 学的还是原 MDP 的值,约束只是「当下这一步别偏太远」,没有长期视野。考点:前者理论上更彻底,后者实现简单、超参更好调(TD3+BC 只有一个 $\lambda$,还常做归一化 $\lambda = \alpha/\overline{|Q|}$)。

题 8.3:隐式约束——带 KL 约束的策略改进的闭式解是什么?

隐式策略约束与优势加权回归
约束优化问题 $\pi_{\text{new}} = \argmax_\pi \E_{\mathbf{a}\sim\pi}[Q(\mathbf{s},\mathbf{a})]$ s.t. $\KL(\pi\|\pi_\beta)\le\epsilon$ 的闭式解是 $\pi^\star(\mathbf{a}|\mathbf{s}) = \frac{1}{Z(\mathbf{s})}\pi_\beta(\mathbf{a}|\mathbf{s})\exp(\frac1\lambda A^\pi(\mathbf{s},\mathbf{a}))$,右侧注明「用对偶很容易证明」,并列出 REPS、psi-learning 等前身。下半部分把这个解投影回参数化策略:$\pi_{\text{new}} = \argmax_\pi \E_{(\mathbf{s},\mathbf{a})\sim\pi_\beta}[\log\pi(\mathbf{a}|\mathbf{s})\underbrace{\frac{1}{Z(\mathbf{s})}\exp(\frac1\lambda A^{\pi_{\text{old}}}(\mathbf{s},\mathbf{a}))}_{w(\mathbf{s},\mathbf{a})}]$——「加权最大似然」,样本来自数据集,权重由 critic 提供。

解答。用拉格朗日乘子 $\lambda$ 写出 $\E_\pi[Q] - \lambda(\KL(\pi\|\pi_\beta) - \epsilon)$,对 $\pi$ 变分求导并加上归一化约束,得到

$$ \pi^\star(\mathbf{a}|\mathbf{s}) = \frac{1}{Z(\mathbf{s})}\pi_\beta(\mathbf{a}|\mathbf{s})\exp\!\Big(\frac1\lambda A^\pi(\mathbf{s},\mathbf{a})\Big). $$

「隐式」的含义:我们从来没有显式写出约束,约束是通过解的形式自动满足的——解里带着因子 $\pi_\beta$,所以数据里概率为 0 的动作,新策略的概率也是 0。实际做法是用加权行为克隆逼近它:从数据里采 $(\mathbf{s},\mathbf{a})$,用 $w = \exp(A/\lambda)$ 加权做最大似然。最大好处:整个流程只用到数据里的动作,$\pi_\beta$ 从来不需要被显式建模。

题 8.4(黄框二连):AWAC 的优点与可能的问题

AWAC 式算法
五步:1) $y_i = r + \gamma\E_{\mathbf{a}'\sim\pi_\theta}[\hat Q^\pi_\phi(\mathbf{s}_i',\mathbf{a}')]$;2) critic 回归;3) 学一个 $\hat V^\pi_\psi(\mathbf{s}_i)$ 去回归 $\E_{\mathbf{a}\sim\pi_\theta}[\hat Q^\pi_\phi(\mathbf{s}_i,\mathbf{a})]$;4) actor 目标 $J(\theta) = \sum_i \log\pi_\theta(\mathbf{a}_i|\mathbf{s}_i)\exp(\hat Q^\pi_\phi(\mathbf{s}_i,\mathbf{a}_i) - \hat V^\pi_\psi(\mathbf{s}_i))$;5) 梯度上升。下面注明 $\hat V$ 也可以直接用 $\hat Q_\phi(\mathbf{s}_i,\mathbf{a}), \mathbf{a}\sim\pi_\theta$ 近似。两个黄框问优点与问题。

解答(优点)。(1) actor 更新只用数据里的动作 $\mathbf{a}_i$,不会在 OOD 动作上查询 $Q$;(2) 不需要显式的 $\pi_\beta$ 模型,避免了 BC 模型误差;(3) 权重 $\exp(A/\lambda)$ 恒非负,形式就是一个加权 BC,实现极简、数值稳定;(4) 天然支持 offline→online 微调(同一套目标,在线时数据分布自动更新)。

解答(问题)。(1) critic 的目标 $y_i$ 里仍然有 $\E_{\mathbf{a}'\sim\pi_\theta}$——只要 $\pi_\theta$ 偏离数据,这一处的 OOD 查询就还在,这是 AWAC 未彻底解决的漏洞(IQL 正是为堵这个洞而生);(2) 权重的指数会有极端值,需要裁剪,$\lambda$ 敏感;(3) 策略被约束在 $\pi_\beta$ 的支撑集里,如果数据质量差,改进上限低——它永远只能做「数据里的最好组合」;(4) 优势估计不准时权重就是噪声,退化成普通 BC。

9. Part 8 续 · IQL、CQL 与 offline-to-online

题 9.1:IQL 怎么做到「永远不查询 OOD 动作」?$\ell_2^\tau$ 是什么

Implicit Q-learning 的核心构造
左上:$Q(\mathbf{s},\mathbf{a})\leftarrow r(\mathbf{s},\mathbf{a}) + V(\mathbf{s}')$,而 $V\leftarrow\argmin_V\frac1N\sum_i \ell_2^\tau(V(\mathbf{s}_i), Q(\mathbf{s}_i,\mathbf{a}_i))$。右上的红色曲线画出 expectile 损失 $\ell_2^\tau$:一条不对称的抛物线,正误差被加权 $\tau$、负误差被加权 $1-\tau$,$\tau\to1$ 时几乎只惩罚「低估」,因此回归结果趋向上分位数而不是均值。左中:理想中我们想要 $V(\mathbf{s})\leftarrow\max_{\mathbf{a}\in\Omega(\mathbf{s})}Q(\mathbf{s},\mathbf{a})$,其中 $\Omega(\mathbf{s})=\{\mathbf{a}: \pi_\beta(\mathbf{a}|\mathbf{s})\ge\epsilon\}$ 是「数据支撑集」。绿箭头右侧给出等价形式:$Q\leftarrow r + \max_{\mathbf{a}'\in\Omega(\mathbf{s}')}Q(\mathbf{s}',\mathbf{a}')$,以及「隐式策略」$\pi_{\text{new}} = \delta(\mathbf{a} = \argmax_{\mathbf{a}\in\Omega(\mathbf{s})}Q)$。底部结论:现在可以在完全不冒 OOD 风险的情况下做值函数更新。

解答。普通 Q-learning 的目标是 $r + \gamma\max_{\mathbf{a}'}Q(\mathbf{s}',\mathbf{a}')$,这个 $\max$ 遍历所有动作,必然踩到 OOD。IQL 的想法是:既然数据集里对每个 $\mathbf{s}$ 只有若干个 $\mathbf{a}\sim\pi_\beta$,那么「在支撑集上取 max」就可以用对 $Q(\mathbf{s},\mathbf{a}), \mathbf{a}\sim\pi_\beta$ 的高分位数回归来实现。expectile 损失

$$ \ell_2^\tau(u) = |\tau - \mathbb{1}(u \lt 0)|\,u^2 $$

在 $\tau=0.5$ 时退化成普通平方损失(回归均值),$\tau\to 1$ 时回归的是条件分布的上端——也就是 $\max_{\mathbf{a}\in\Omega(\mathbf{s})}Q(\mathbf{s},\mathbf{a})$ 的近似。

IQL 的完整算法
五步:1) $y_i = r(\mathbf{s}_i,\mathbf{a}_i) + \gamma\hat V_\psi(\mathbf{s}_i')$——注意目标里只有 $V$,没有任何动作期望;2) $Q_\phi$ 回归 $y_i$;3) $\psi$ 用 $\ell_2^\tau(\hat V_\psi(\mathbf{s}_i) - \hat Q_\phi(\mathbf{s}_i,\mathbf{a}_i))$ 更新;4) actor 用 AWR 形式 $J(\theta)=\sum_i\log\pi_\theta(\mathbf{a}_i|\mathbf{s}_i)\exp(\hat Q_\phi - \hat V_\psi)$;5) 梯度上升。三行结论:整个算法里没有任何 $\pi_\theta$ 下的期望;critic 完全独立于 actor;所以它其实是「隐式 Q-learning」而不是真正的 actor-critic。

关键考点:IQL 中 critic 的训练完全不依赖 actor——可以先把 $Q,V$ 训到收敛,最后再抽取策略。这既是它稳定的原因,也是它的局限:策略改进只发生在「数据支撑集内」,$\tau$ 越大越激进(越接近真 max,也越接近 OOD 风险),$\tau$ 越小越保守($\tau=0.5$ 时退化为策略评估,等于纯 BC)。

题 9.2:CQL 的目标函数三项各起什么作用?它保证了什么、没保证什么

Conservative Q-learning
目标 $\hat Q^\pi = \argmin_Q\max_\mu\ \alpha\E_{\mathbf{s}\sim D,\mathbf{a}\sim\mu(\mathbf{a}|\mathbf{s})}[Q(\mathbf{s},\mathbf{a})] - \alpha\E_{(\mathbf{s},\mathbf{a})\sim D}[Q(\mathbf{s},\mathbf{a})] + \E_{(\mathbf{s},\mathbf{a},\mathbf{s}')\sim D}[(Q - (r + \E_\pi[Q(\mathbf{s}',\mathbf{a}')]))^2]$。第一项上方标注「always pushes Q-values down」,第二项标注「push up on (s, a) samples in data」。底下两行:不再保证对所有 $(\mathbf{s},\mathbf{a})$ 都有 $\hat Q^\pi\le Q^\pi$,但保证对所有 $\mathbf{s}\in D$ 有 $\E_{\pi(\mathbf{a}|\mathbf{s})}[\hat Q^\pi(\mathbf{s},\mathbf{a})]\le\E_{\pi(\mathbf{a}|\mathbf{s})}[Q^\pi(\mathbf{s},\mathbf{a})]$。

解答。三项分别是:压低项——对最坏情况的动作分布 $\mu$(内层 max 会把 $\mu$ 推向 $Q$ 最大的动作,实际实现里 $\mu\propto\exp Q$,于是这一项化为 $\log\sum_\mathbf{a}\exp Q(\mathbf{s},\mathbf{a})$)压低 $Q$;抬高项——把数据里真实出现过的 $(\mathbf{s},\mathbf{a})$ 的 $Q$ 抬回来;Bellman 项——普通的 TD 误差。前两项合起来的效果是「在数据分布之外压、在数据分布之内不动」,正好抵消了 max 造成的乐观偏差。

保证了什么:只加第一项时可以证明逐点下界 $\hat Q \le Q^\pi$,但那太保守;加上第二项(「a better bound」)后,逐点下界不再成立,取而代之的是期望意义的下界:对数据中出现的每个状态,$\E_{\pi}[\hat Q] \le \E_\pi[Q^\pi]$。这已经足够——策略改进只关心动作之间的相对大小和状态值的期望。$\alpha$ 控制保守程度,是 CQL 最关键的超参。

题 9.3:offline→online 微调为什么会掉性能?

CQL 的 offline-to-online 性能塌陷
左图纵轴成功率、横轴步数:蓝线(一直在线)平滑上升;红线(先离线 50k 步再切在线)在切换点骤降到接近 0,然后花掉一大段时间才爬回离线时的水平,黑括号标注「这段时间白白浪费在恢复离线性能上」。右图纵轴平均 Q 值:离线阶段 CQL 把 Q 压到 $-40$ 左右(标注「这里低估得太多了」),切到在线后 Q 值急速反弹。黄框:不同的离线 RL 算法有不同版本的这个问题,「但很难彻底解决」。

解答。保守训练让 Q 值被系统性压低(图中压到 $-40$,而真值接近 0)。切到在线后,新收集的数据不再需要那么强的保守约束,Q 函数必须重新校准整个值的尺度;在校准完成之前,$\argmax_\mathbf{a} Q$ 给出的动作是混乱的,策略性能因此崩塌。等价说法:离线阶段学到的 Q 只在相对排序上有意义,而在线 TD 更新需要它在绝对数值上正确。这个「重新校准期」就是浪费掉的样本。

题 9.4:IDQL 与 FQL——好在哪、坏在哪

IDQL:用扩散策略做 offline-to-online
三步:1) 用 IQL 训 $\hat Q_\phi$(不训任何 actor,只做前三步的 $\phi,\psi$ 更新);2) 用行为克隆把 $\pi_\theta(\mathbf{a}|\mathbf{s})$ 训成一个扩散 / 流模型,于是 $\pi_\theta\approx\pi_\beta$;3) 测试时从 $\pi_\theta$ 采 $K$ 个候选动作 $\{\mathbf{a}_1,\dots,\mathbf{a}_K\}$,挑 $\argmax_{\mathbf{a}_k}\hat Q_\phi(\mathbf{s},\mathbf{a}_k)$。右侧注明「不会有 OOD 动作,因为 $\pi_\theta\approx\pi_\beta$」。两个黄框问好坏。

解答。好:策略改进完全通过「采样 + 重排序」实现,不需要任何梯度穿过 $Q$,因此不存在「actor 去攻击 critic」的问题;扩散模型能精确拟合多模态的行为分布(普通高斯策略做不到);离线与在线用同一套机制,切换时没有目标函数的突变,缓解了题 9.3 的塌陷。坏:测试时要采 $K$ 次扩散(每次几十步去噪),推理开销巨大;改进幅度受限于 $K$——只能在行为策略采出的 $K$ 个动作里挑最好的,$K$ 有限时离真正的 $\argmax$ 还很远;而且 $K$ 越大,挑到 $Q$ 高估点的概率也越高(重排序本身就是一次弱化的 max)。

FQL:用一步 actor 蒸馏流模型
两步:1) 用 BC 把 $\pi_{\text{flow}}(\mathbf{a}|\mathbf{s},\mathbf{z})$ 训成流模型($\pi_{\text{flow}}\approx\pi_\beta$);2) 跑离线 actor-critic,但用一个特殊的 BC 正则:$J(\theta)=\sum_i\E_{\mathbf{z}\sim p(\mathbf{z})}[\E_{\mathbf{a}\sim\pi_\theta(\mathbf{a}|\mathbf{s}_i,\mathbf{z})}[\hat Q^\pi_\phi(\mathbf{s}_i,\mathbf{a})] + \E_{\mathbf{a}\sim\pi_{\text{flow}}(\mathbf{a}|\mathbf{s}_i,\mathbf{z})}[\lambda\log\pi_\theta(\mathbf{a}_i|\mathbf{s}_i,\mathbf{z})]]$。右侧黄框强调:这个 actor 不是扩散模型,只是一个吃 $\mathbf{z}$ 的普通网络。底部注解:「克隆 $\pi_{\text{flow}}$ 在那个 $\mathbf{z}$ 上会采取的动作」。

解答(why is this good?)。FQL 把「表达力」和「推理速度」解耦:流模型负责刻画复杂的多模态行为分布,但只在训练时用;actor 是一个一步网络 $\pi_\theta(\mathbf{a}|\mathbf{s},\mathbf{z})$,通过匹配「给定同一个噪声 $\mathbf{z}$ 时流模型的输出」被蒸馏成流模型的单步等价物,同时又被 $Q$ 项推向高价值动作。于是推理只需一次前向传播,且约束是逐 $\mathbf{z}$ 对齐的——比全局的 KL 约束更精细,不会把多模态压成单模态。

题 9.5:MOPO 把不确定性变成什么?

MOPO:基于模型的离线策略优化
解法一句话:「惩罚策略去利用模型」。修改后的奖励 $\tilde r(\mathbf{s},\mathbf{a}) = r(\mathbf{s},\mathbf{a}) - \lambda u(\mathbf{s},\mathbf{a})$,$u$ 是不确定性惩罚,「然后套用任何已有的 model-based RL 算法」。右侧示意图:黑色粗线是数据轨迹,橙色细枝是模型 rollout,红圈标出一条跑得太远、模型已经不可靠的分支。

解答。MOPO 把「悲观主义」实现在奖励层面:$u(\mathbf{s},\mathbf{a})$ 一般取集成模型预测的最大标准差。理论上这给出真实回报的一个下界(离数据越远,惩罚越大,因此策略不会被幻觉吸引)。它与 CQL 的对偶关系值得记:CQL 在 Q 上做悲观,MOPO 在 $r$ 上做悲观;后者的好处是可以复用整套 model-based 机器,坏处是 $u$ 的标定($\lambda$)极难,且神经网络集成的方差并不是可靠的 epistemic 不确定性估计。MOReL 是同期的另一个版本,用「不确定就转到吸收态并给最小奖励」的硬阈值。

10. Part 9 · 探索:从 UCB 到伪计数与 RND

题 10.1:UCB 怎么搬到 MDP 上?

RL 中的乐观探索
UCB 的动作选择规则 $a=\argmax \hat\mu_a + \sqrt{\frac{2\ln H}{N(a)}}$,第二项被标为「exploration bonus」,并注明「只要它随 $N(a)$ 递减,很多函数都行」。中间问「can we use this idea with MDPs?」,答案是基于计数的探索:用 $N(\mathbf{s},\mathbf{a})$ 或 $N(\mathbf{s})$ 构造 $r^+(\mathbf{s},\mathbf{a}) = r(\mathbf{s},\mathbf{a}) + \mathcal{B}(N(\mathbf{s}))$,然后把 $r^+$ 喂给任何 model-free 算法。底部两行:+ 加到任何 RL 算法上都很简单;− 需要调 bonus 的权重。

解答。UCB 的思想是「在不确定性面前保持乐观」:置信上界随访问次数下降,没试过的动作有很高的乐观加成,一旦试够了加成就消失。搬到 MDP 上只需把「臂的计数」换成「状态(或状态-动作)的计数」,并把 bonus 写进奖励:

$$ r^+(\mathbf{s},\mathbf{a}) = r(\mathbf{s},\mathbf{a}) + \mathcal{B}\big(N(\mathbf{s})\big),\qquad \mathcal{B} \text{ 随 } N \text{ 递减,例如 } \mathcal{B}(N)=\sqrt{\tfrac{2\ln n}{N}} \text{ 或 } \tfrac{1}{\sqrt N}. $$
常见误区 MDP 上的乐观探索不等价于 bandit 上的 UCB:bandit 里拉一次臂立刻知道结果,MDP 里要走很多步才能到达新状态,「乐观」需要通过值函数传播回来(这也是为什么 bonus 要放进奖励而不是放进动作选择)。另外 bonus 是非平稳奖励——它随训练在变,会让 Q 函数一直追一个移动的目标,这也是需要调权重的原因。

题 10.2:连续 / 高维状态里根本没有重复状态,怎么「计数」?

伪计数探索
左边两幅图是典型的稀疏奖励任务(Montezuma's Revenge 里红圈标出钥匙、骷髅、梯子等关键物体;以及一个灵巧手用锤子敲钉子的机器人任务)。右侧算法:用见过的所有状态 $\mathcal{D}$ 拟合密度模型 $p_\theta(\mathbf{s})$;走一步观测 $\mathbf{s}_i$;在 $\mathcal{D}\cup \mathbf{s}_i$ 上重新拟合得到 $p_{\theta'}(\mathbf{s})$;用两个密度估计出伪计数 $\hat N(\mathbf{s})$;设 $r^+_i = r_i + \mathcal{B}(\hat N(\mathbf{s}))$。下面给出解方程的过程。

解答。关键技巧:不直接数,而是从密度模型的更新量反推计数。假设密度模型表现得像一个经验频率估计:

$$ p_\theta(\mathbf{s}_i) = \frac{\hat N(\mathbf{s}_i)}{\hat n}, \qquad p_{\theta'}(\mathbf{s}_i) = \frac{\hat N(\mathbf{s}_i) + 1}{\hat n + 1}. $$

两个方程两个未知数($\hat N$ 和总数 $\hat n$),解得

$$ \hat N(\mathbf{s}_i) = \hat n\, p_\theta(\mathbf{s}_i), \qquad \hat n = \frac{1 - p_{\theta'}(\mathbf{s}_i)}{p_{\theta'}(\mathbf{s}_i) - p_\theta(\mathbf{s}_i)}\,p_\theta(\mathbf{s}_i). $$

直觉:如果加一个样本后密度涨了很多($p_{\theta'} \gg p_\theta$),说明这个状态很新鲜,伪计数小、bonus 大;如果几乎没变,说明模型早就见过很多类似状态。易错点:这里的密度模型不需要生成好看的样本,只需要给出相对合理的密度值;实践中用 CTS、PixelCNN 或简单的哈希都行。

题 10.3:RND 用预测误差估计新颖度——目标函数该选什么?

用预测误差估计计数(RND)
设有一个目标函数 $f^\star(\mathbf{s},\mathbf{a})$,用缓冲区 $\mathcal{D}$ 拟合 $\hat f_\theta(\mathbf{s},\mathbf{a})$,把 $\mathcal{E}(\mathbf{s},\mathbf{a}) = \|\hat f_\theta(\mathbf{s},\mathbf{a}) - f^\star(\mathbf{s},\mathbf{a})\|^2$ 当作 bonus。右侧曲线图:橙线是目标函数,绿线是拟合结果,蓝点是数据点;数据点附近两条曲线贴合(低新颖度,短蓝箭头),远离数据的地方差距很大(高新颖度,长蓝箭头)。下面两个选择:常见做法是 $f^\star(\mathbf{s},\mathbf{a}) = \mathbf{s}'$(下一状态预测);更简单的是 $f^\star = f_\phi$,$\phi$ 是一组随机参数。

解答。「见得多的地方拟合得好,没见过的地方误差大」——预测误差本身就是新颖度的代理。$f^\star = \mathbf{s}'$ 的问题是:环境的随机性(aleatoric 噪声)会让误差永远降不下去,智能体会被「电视机噪声」永久吸引(noisy-TV problem)。用随机固定网络 $f_\phi$ 做目标就绕开了这个陷阱:目标是 $(\mathbf{s},\mathbf{a})$ 的一个确定性函数,不含任何环境噪声,因此误差纯粹反映「这个输入见过没有」,这就是 random network distillation(RND)。考点:RND 的 bonus 只依赖状态覆盖,不依赖环境是否随机——这是它相比前向动力学预测误差的决定性优势。

11. Part 10 · RL 理论:收缩性、采样误差与逼近误差

题 11.1:证明 Bellman 最优算子是 $\infty$-范数下的 $\gamma$-收缩

值迭代收敛性的完整证明
定义 Bellman 最优算子 $TV = \max_a[r + \gamma PV]$。右上给出唯一用到的引理:$|\max_x f(x) - \max_x g(x)| \le \max_x|f(x)-g(x)|$。左边五行是完整推导:先把 $\|TV - TU\|_\infty$ 写成某个状态上的绝对差,用引理把两个 max 合成一个,$r$ 相消,提出 $\gamma$,最后用「概率加权平均不超过最大值」得到 $\gamma\|V-U\|_\infty$。

解答。设 $TV = \max_a[r + \gamma PV]$。取使 $|TV(s) - TU(s)|$ 最大的状态 $s$:

$$ \|TV - TU\|_\infty \le \Big|\max_a\big[r(s,a) + \gamma\sum_{s'}P(s'|s,a)V(s')\big] - \max_a\big[r(s,a) + \gamma\sum_{s'}P(s'|s,a)U(s')\big]\Big| $$ $$ \le \max_a\Big|r(s,a) + \gamma\sum_{s'}P(s'|s,a)V(s') - r(s,a) - \gamma\sum_{s'}P(s'|s,a)U(s')\Big| = \gamma\max_a\Big|\sum_{s'}P(s'|s,a)\big(V(s')-U(s')\big)\Big| $$ $$ \le \gamma\max_{s'}\big|V(s') - U(s')\big| = \gamma\|V - U\|_\infty . $$

三个不等号分别用到:max 的差不超过差的 max;$r$ 相消;概率加权平均不超过逐点最大值($\sum_{s'}P(s'|s,a) = 1$)。由 Banach 不动点定理,$T$ 有唯一不动点 $V^\star$,且 $\|V_k - V^\star\|_\infty \le \gamma^k\|V_0-V^\star\|_\infty$——几何收敛。$\gamma=0.9$ 时每次迭代把误差压到 90%,要压到 1% 需要约 $\log 0.01/\log 0.9 \approx 44$ 次迭代;$\gamma=0.99$ 则需要约 458 次。这就是「有效视界 $\frac{1}{1-\gamma}$」的来历。

题 11.2:oracle exploration 下,用估计的 $\hat P$ 学到的 $\hat Q^\pi$ 有多准?

理论分析的设定
设定叫「oracle exploration」:对每一个 $(s,a)$ 都独立采样 $s'\sim P(s'|s,a)$ 共 $N$ 次。简单的基于模型算法:1) 用频率估计 $\hat P(s'|s,a) = \frac{\#(s,a,s')}{N}$;2) 给定 $\pi$,在 $\hat P$ 下算 $\hat Q^\pi$。然后依次问三个问题:$\hat Q^\pi$ 离 $Q^\pi$ 多远?用 $\hat P$ 学的 $\hat Q^\star$ 离 $Q^\star$ 多远?由它导出的策略有多好?三个答案都是 $\le\epsilon$(在 $\infty$-范数下,概率至少 $1-\delta$,只要 $N\ge f(\epsilon,\delta)$)。右侧注:想要最坏情况的保证就该用 $\|\cdot\|_\infty$。
样本复杂度的结论
核心不等式:$\|Q^\pi - \hat Q^\pi\|_\infty \le \frac{\gamma}{(1-\gamma)^2}c_2\sqrt{\frac{|S|\log(1/\delta)}{N}}$。左侧箭头标注「误差随视界二次增长——每一次备份都在累积误差」;右侧箭头标注「样本越多误差越小」。

解答。结论是

$$ \|Q^\pi - \hat Q^\pi\|_\infty \le \frac{\gamma}{(1-\gamma)^2}\,c_2\sqrt{\frac{|S|\log(1/\delta)}{N}} . $$

两个因子分别解读:$\sqrt{|S|\log(1/\delta)/N}$ 是标准的集中不等式(Hoeffding)给出的单步转移估计误差,样本量 $N$ 翻 4 倍误差减半;$\frac{\gamma}{(1-\gamma)^2}$ 是误差放大因子——一个 $\frac{1}{1-\gamma}$ 来自单条轨迹上 $\frac{1}{1-\gamma}$ 次备份的累积,另一个 $\frac{1}{1-\gamma}$ 来自 $Q$ 值本身的量级 $O(R_{\max}/(1-\gamma))$。数值感受:$\gamma=0.99$ 时 $\frac{\gamma}{(1-\gamma)^2}\approx 9900$,也就是说单步 1% 的转移估计误差可以放大成 99 的值误差。这就是长视界 RL 难的定量原因。

题 11.3:从 $\|Q^\pi-\hat Q^\pi\|_\infty\le\epsilon$ 推出策略的次优性界

从值误差到策略次优性
第一步:$\|Q^\star - \hat Q^\star\|_\infty = \|\sup_\pi Q^\pi - \sup_\pi \hat Q^\pi\|_\infty \le \sup_\pi\|Q^\pi - \hat Q^\pi\|_\infty \le \epsilon$,用的是同一个 sup 引理。第二步:$\|Q^\star - Q^{\hat\pi^\star}\|_\infty = \|Q^\star - \hat Q^{\hat\pi^\star} + \hat Q^{\hat\pi^\star} - Q^{\hat\pi^\star}\|_\infty \le \|Q^\star - \hat Q^{\hat\pi^\star}\|_\infty + \|\hat Q^{\hat\pi^\star} - Q^{\hat\pi^\star}\|_\infty \le 2\epsilon$,两个箭头分别指出前一项其实就是 $\hat Q^\star$、后一项的两个 Q 是「同一个策略」。

解答。技巧是「加一项减一项 + 三角不等式」。第一项 $\hat Q^{\hat\pi^\star} = \hat Q^\star$(因为 $\hat\pi^\star$ 就是 $\hat P$ 下的最优策略),所以由第一步得 $\le\epsilon$;第二项是同一个策略 $\hat\pi^\star$ 在真实模型与估计模型下的值之差,由题 11.2 的结论也 $\le\epsilon$。合计 $\le 2\epsilon$。考点:这个「2」很重要——它说明用估计模型算出的最优策略在真实环境里的次优性只比值估计误差差一个常数倍,而不是指数放大。

题 11.4:fitted Q-iteration 的误差从哪来?最终误差界是什么?

fitted Q-iteration 的抽象分析
精确 Q 迭代写成 $Q_{k+1}\leftarrow TQ_k$,近似版写成 $\hat Q_{k+1}\leftarrow\argmin_{\hat Q}\|\hat Q - \hat T\hat Q_k\|$。右上:$TQ = r+\gamma P\max_a Q$,箭头问「which norm?」,答案是「$\|\cdot\|_2$ 下没有收敛性,我们假设 $\|\cdot\|_\infty$」。近似 Bellman 算子 $\hat TQ = \hat r + \gamma\hat P\max_a Q$,其中 $\hat r(s,a) = \frac{1}{N(s,a)}\sum_i\delta((s_i,a_i)=(s,a))r_i$、$\hat P(s'|s,a) = \frac{N(s,a,s')}{N(s,a)}$。加粗注解:这些不是模型,只是把数据里的转移平均在一起的效果。左下把误差分成两类:$T\neq\hat T$ 叫「采样误差」,$\hat Q_{k+1}\neq\hat T\hat Q_k$ 叫「逼近误差」。

解答。误差有且仅有两个来源:采样误差——我们只有有限样本,用经验平均 $\hat T$ 代替真算子 $T$;逼近误差——神经网络容量有限 + 优化不彻底,回归的结果 $\hat Q_{k+1}$ 并不精确等于 $\hat T\hat Q_k$。特别要注意 slide 上那句加粗的话:即使算法叫「model-free」,只要你用数据的经验分布做备份,效果上就等价于在一个经验模型上做精确备份——这是理解「model-free 与 model-based 的误差同源」的关键。

把两类误差合起来
采样误差的集中界:$\|\hat TQ - TQ\|_\infty \le 2R_{\max}c_1\sqrt{\frac{\log(|S||A|/\delta)}{2N}} + c_2\|Q\|_\infty\sqrt{\frac{\log(|S|/\delta)}{N}}$(前项来自 $\hat r$,后项来自 $\hat P$)。最终误差:$\lim_{k\to\infty}\|\hat Q_k - Q^\star\|_\infty \le \frac{1}{1-\gamma}\max_k\epsilon_k$,其中 $\epsilon_k = \|\hat Q_k - T\hat Q_{k-1}\|_\infty$。下面把 $\epsilon_k$ 再拆一次:$\|\hat Q_k - T\hat Q_{k-1}\|_\infty \le \underbrace{\|\hat Q_k - \hat T\hat Q_{k-1}\|_\infty}_{\text{逼近}} + \underbrace{\|\hat T\hat Q_{k-1} - T\hat Q_{k-1}\|_\infty}_{\text{采样}}$。
$$ \lim_{k\to\infty}\|\hat Q_k - Q^\star\|_\infty \ \le\ \frac{1}{1-\gamma}\max_k \epsilon_k, \qquad \epsilon_k \le \underbrace{\|\hat Q_k - \hat T\hat Q_{k-1}\|_\infty}_{\text{逼近误差}} + \underbrace{\|\hat T\hat Q_{k-1} - T\hat Q_{k-1}\|_\infty}_{\text{采样误差}} . $$

怎么读这个界。每一轮引入的误差 $\epsilon_k$ 不会无限累积(因为 $T$ 是收缩,旧误差按 $\gamma$ 衰减),但会被稳态放大 $\frac{1}{1-\gamma}$ 倍:几何级数 $\sum_k\gamma^k\epsilon = \frac{\epsilon}{1-\gamma}$。这是 fitted Q-iteration 最重要的定量结论。

题 11.5:这一切意味着什么?$\infty$-范数假设的问题在哪

理论部分的总结
重复上一页的三个式子,并在采样界的第一项上标出 $\mathcal{O}(R_{\max}\frac{1}{1-\gamma})$——因为 $\|Q\|_\infty$ 本身就是这个量级。三条总结:误差会随视界、随迭代、随采样三重「复合」;到目前为止我们需要很强的(无穷范数)假设;更高级的结果可以用某个分布下的 $p$-范数 $\|\hat Q_k - Q^\star\|_{p,\mu} = (\E_{(s,a)\sim\mu}[|\hat Q_k(s,a)-Q^\star(s,a)|^p])^{1/p}$ 得到。

解答。三层含义:(1) 误差在三个维度上复合——单步 → 一轮备份($\times\frac{1}{1-\gamma}$)→ 多轮迭代(再 $\times\frac{1}{1-\gamma}$),加上采样误差本身就带 $\|Q\|_\infty = O(R_{\max}/(1-\gamma))$,于是总量级来到 $O(R_{\max}/(1-\gamma)^2)$ 甚至更高。(2) $\infty$-范数假设非常强:它要求逼近误差在每一个状态-动作对上都小,而深度网络只能保证在训练分布上平均误差小。(3) 因此现代理论转向在某个分布 $\mu$ 下的 $p$-范数,代价是要引入「集中系数」(concentrability coefficient)来刻画训练分布与目标分布的比值——这又回到了分布偏移,正好和 §7 的离线 RL 对上。

核心结论 理论部分给出的是整个课程的「定量收尾」:值迭代收敛靠的是 $\infty$-范数收缩;函数逼近一进来($\Pi\mathcal{B}$)收缩就没了;即便假设每步误差有界,最终误差也要乘上 $\frac{1}{1-\gamma}$;而误差本身又随 $\sqrt{1/N}$ 下降。所以深度 RL 的三个经典痛点——长视界、样本效率、分布偏移——在这里得到了统一的数学表述。

本讲小结

一页速查:七个板块的一句话核心

板块一句话核心最常考的式子
Q-learningQ 的备份条件在执行过的动作上,因此天然 off-policy;但 max 带来过估计,$\Pi\mathcal{B}$ 不是收缩$y = r+\gamma\max_{\mathbf{a}'}Q_{\bar\theta}(\mathbf{s}',\mathbf{a}')$
变分推断$\log p(x) = \KL(q\|p(z|x)) + \mathcal{L}(p,q)$;重参数化让梯度穿过采样$\mathcal{L} = \E_q[\log p(x|z)] - \KL(q(z|x)\|p(z))$
控制即推断把「最优」当观测变量,后验推断自然给出 soft 值迭代与熵正则$\pi(\mathbf{a}|\mathbf{s}) = \exp(A(\mathbf{s},\mathbf{a}))$
IRL / RLHF奖励学习 = 能量模型的正相减负相;偏好比较让配分函数变得可算$\E_{\pi^\star}[\nabla r_\psi] - \E_{\text{soft}}[\nabla r_\psi]$
Model-based RL策略会对抗式地利用模型误差;解法是信赖域 + 不确定性感知(epistemic ≠ aleatoric)$J=\frac1N\sum_i\sum_t r(\mathbf{s}_{t,i},\mathbf{a}_t)$
Offline RL三条路:约束策略、悲观 critic、回避样本外动作$\pi^\star \propto \pi_\beta\exp(\tfrac1\lambda A)$
Exploration乐观主义 + 计数;高维下用伪计数或随机网络蒸馏$r^+ = r + \mathcal{B}(N(\mathbf{s}))$
RL 理论$T$ 是 $\gamma$-收缩;误差以 $\frac{1}{1-\gamma}$(乃至 $\frac{\gamma}{(1-\gamma)^2}$)放大,以 $\sqrt{1/N}$ 缩小$\lim_k\|\hat Q_k-Q^\star\|_\infty\le\frac{\max_k\epsilon_k}{1-\gamma}$

易错点总清单

  • ELBO 里的熵项符号:$\mathcal{H}(q) = -\E_q[\log q]$,写反了整个优化方向就反了。
  • 反向 KL($\KL(q\|p)$,mode-seeking)与前向 KL($\KL(p\|q)$,mode-covering):VAE、策略约束 1a/1b、AWR 里都出现过,方向弄错结论完全不同。
  • 朴素 control-as-inference 的 $Q = r + \log\E[\exp V']$ 有乐观偏差;变分版是 $Q = r + \E[V']$,期望在外面。
  • 状态空间模型的 prior 不是 $\mathcal{N}(0,\mathbf{I})$,只有 $p(\mathbf{z}_1)$ 是;encoder 的条件是 $\mathbf{o}_{1:t}$ 不是 $\mathbf{o}_t$。
  • Double Q 只削弱不消除过估计;clipped double-Q 是取 min不是取平均。
  • CQL 保证的是期望意义下界($\E_\pi[\hat Q]\le\E_\pi[Q^\pi]$),不是逐点下界。
  • IQL 的 $\tau=0.5$ 退化为策略评估(≈ BC),$\tau\to1$ 才有策略改进;critic 不依赖 actor。
  • AWAC 的 critic 目标里仍有 $\E_{\mathbf{a}'\sim\pi_\theta}$,OOD 漏洞没堵上——这正是 IQL 的动机。
  • RND 用随机固定网络做目标是为了避开 noisy-TV;用下一状态预测则会被环境随机性永久吸引。
  • $\mathcal{B}$ 在 $\infty$-范数收缩、$\Pi$ 在 $\ell_2$ 非扩张,范数不同,所以复合起来不是收缩。

复习清单(按讲次回查)

要点回查
MDP 定义、值函数、RL 算法的三框图Lecture 04 · 强化学习基础
策略梯度、因果性与 baseline 的方差分析Lecture 05 · 策略梯度
Actor-critic、bootstrapping 的偏差-方差权衡、GAELecture 06 · Actor-Critic
策略迭代 / 值迭代 / fitted value & Q iteration、$\Pi\mathcal{B}$ 不收敛(§1 §2)Lecture 07 · 基于值函数的 RL
DQN、目标网络、double Q、DDPG、clipped double-Q(§2)Lecture 08 · 深度 Q 学习实践
重要性采样、off-policy 策略梯度与方差爆炸(§7.3)Lecture 09 · Off-Policy 策略梯度
信赖域、KL 的二阶近似、TRPO / PPO(§6.1)Lecture 10 · 进阶策略梯度
ELBO、amortized VI、重参数化、VAE(§3.1–3.3)Lecture 11 · 变分推断
条件模型、扩散 / 流匹配、状态空间模型(§3.4 §3.5)Lecture 12 · 变分推断在 RL 中的应用
控制即推断、后向消息、soft 值迭代、SAC(§4)Lecture 13 · 控制即变分推断
MaxEnt IRL、IRL 即 GAN、GAIL、RLHF 与 Bradley–Terry(§5)Lecture 14 · RL with Sequences & LLMs
模型学习、开环 vs 闭环、不确定性感知模型(§6.1–6.4)Lecture 15 · 基于模型的 RL
MBA / MVE / MBPO、潜空间模型(§6.5 §6.6)Lecture 16 · 基于模型的 RL 算法
离线 RL 的问题诊断、三大原则(§7)Lecture 17 · 离线强化学习
策略约束、AWAC、IQL、CQL、MOPO、offline→online(§8 §9)Lecture 18 · 离线 RL 算法
UCB、Thompson sampling、伪计数、RND(§10)Lecture 19 · 探索
收缩性证明、样本复杂度、fitted Q-iteration 误差界(§11)Lecture 20 · 强化学习理论
模仿学习、DAgger、策略梯度与 actor-critic 的复习题Lecture 21 · 期中复习(上)

延伸阅读

Q-learning 与 off-policy actor-critic

变分推断与生成模型

控制即推断、IRL 与 RLHF

基于模型的 RL

离线 RL

探索与理论