🎯 一句话理解逆强化学习

逆强化学习(IRL)= 看老司机开车,然后猜’他为什么这么开’——猜他的’奖励函数’长什么样。一旦猜出来了,就可以用这个奖励函数训练一个自己的驾驶员。

IRL 解决的是一切模仿学习(Imitation Learning)最根本的困惑:行为可以被模仿,但动机是什么?


🧩 IRL 的问题设定

标准 RL 的视角

在标准强化学习中,reward 函数 $R(s,a)$ 是已知的。智能体的任务是:

  • 给定:环境 dynamics $P(s’|s,a)$ 和 reward 函数 $R(s,a)$
  • 求解:最优策略 $\pi^*(a|s)$ 最大化累积奖励

IRL 的反向视角

IRL 把上述问题反转:

  • 给定:专家演示 $\mathcal{D} = {\tau_1, \tau_2, \dots, \tau_N}$(每条轨迹 $\tau = (s_0, a_0, s_1, \dots)$)
  • 求解:reward 函数 $R(s,a)$,使得专家行为在这个 reward 下是最优的

这本质上是一个 逆向优化(inverse optimization) 问题——从最优行为反推目标函数。

IRL 的数学形式

最直接的 IRL 公式是 Feature Matching

$$\text{Find } R \text{ such that } \mathbb{E}_{\pi_E}[\phi(s,a)] = \mathbb{E}_{\pi^*}[\phi(s,a)]$$

其中 $\phi$ 是状态-动作的特征向量,$\pi_E$ 是专家策略,$\pi^*$ 是在 $R$ 下的最优策略。这个条件说:在专家策略下观察到的特征期望,应该等于在最优策略下的特征期望。

但这个公式有严重问题——解不唯一。任何 $R$ 让专家是最优之一都是"解",实际上有无穷多个可能的 reward 函数可以解释同一组专家数据。


🧠 最大熵 IRL

从"唯一解"的困境中走出

最大熵 IRL(Maximum Entropy IRL)由 Ziebart 等人在 2008 年提出,是 IRL 领域的奠基性工作。它引入最大熵原理来唯一确定一个 reward 函数:在所有能解释专家行为的 reward 中,选择使轨迹分布熵最大的那个

核心思想

最大熵 IRL 假设专家行为服从一个 Boltzmann 分布

$$P(\tau | R) = \frac{1}{Z} \exp\left(\sum_{t} R(s_t, a_t)\right)$$

其中 $Z = \int \exp\left(\sum_{t} R(s_t, a_t)\right) d\tau$ 是配分函数(partition function)——对所有可能轨迹的指数 reward 求和。

概念含义在最大熵 IRL 中的作用
Boltzmann 分布reward 越高,概率越高将 reward 映射为轨迹概率
配分函数 $Z$所有轨迹的归一化因子确保概率和为 1
最大熵原理在约束下选择最随机的分布唯一确定 reward 函数

学习算法

最大熵 IRL 通过最大化专家轨迹的 log-likelihood 来学习 reward:

$$\mathcal{L}(R) = \mathbb{E}_{\tau \sim \mathcal{D}}[\log P(\tau | R)] = \mathbb{E}_{\tau \sim \mathcal{D}}\left[\sum_{t} R(s_t, a_t)\right] - \log Z$$

梯度计算为:

$$\nabla_R \mathcal{L} = \mathbb{E}_{\tau \sim \mathcal{D}}[\nabla_R \sum R] - \mathbb{E}_{\tau \sim P(\tau|R)}[\nabla_R \sum R]$$

直观解释:让专家的平均 reward 尽可能高,同时让所有轨迹的平均 reward 尽可能低——使专家轨迹从"所有可能轨迹"中脱颖而出。

最大熵 IRL 的局限性

  • 配分函数计算昂贵:需要对所有可能轨迹求和,需要在已知 dynamics 下做 soft 价值迭代
  • 需要环境模型:必须知道状态转移概率,这在连续控制中不可行
  • 表达能力受限:线性 reward 形式限制了可以表达的目标函数

⚔️ 对抗式 IRL:GAIL 与 AIRL

GAIL:生成对抗模仿学习

GAIL(Generative Adversarial Imitation Learning)由 Ho & Ermon 在 2016 年提出,它用 GAN 的思路做 IRL——不需要显式地学习 reward 函数,而是用一个**判别器(discriminator)**来区分专家和策略的轨迹。

GAIL 的结构

Gmeinne_rπatmoarx_Dπ𝔼_π_ED[ilsocgriDmv(issn,aat)o]r+D(𝔼s_,πa[)log(1-D(s,a))]
  • 判别器 $D(s,a)$:输出 $(s,a)$ 是专家还是策略生成的概率
  • 策略 $\pi$:试图"欺骗"判别器,让它无法区分
  • 训练达到纳什均衡时:策略的轨迹分布匹配专家的轨迹分布

GAIL 的损失函数

$$\mathcal{L}_{\text{GAIL}} = \mathbb{E}_{\pi_E}[\log D_\omega(s,a)] + \mathbb{E}_{\pi_\theta}[\log(1 - D_\omega(s,a))] - \lambda \mathcal{H}(\pi_\theta)$$

其中熵正则 $\mathcal{H}(\pi_\theta)$ 鼓励探索。判别器 $D_\omega$ 可以分解为:

$$D_\omega(s,a) = \frac{\exp(f_\omega(s,a))}{\exp(f_\omega(s,a)) + \pi_\theta(a|s)}$$

此时 $\log D_\omega - \log(1 - D_\omega) = f_\omega(s,a) - \log \pi_\theta(a|s)$ 可以被解释为 reward 函数。

GAIL 的优缺点

优势局限
不需要环境 dynamicsreward 不具可解释性
与任何 RL 算法兼容训练不稳定(GAN 通病)
高维连续控制有效需要大量交互
策略分布匹配好学到的 reward 不可移植

AIRL:解耦 reward 函数

AIRL(Adversarial Inverse Reinforcement Learning)是 GAIL 的改进版,它的贡献在于恢复一个可解释、可移植的 reward 函数

AIRL 的判别器结构为:

$$D_{\omega,\Phi}(s,a,s') = \frac{\exp(f_{\omega,\Phi}(s,a,s'))}{\exp(f_{\omega,\Phi}(s,a,s')) + \pi(a|s)}$$

其中 $f_{\omega,\Phi}(s,a,s’) = g_\omega(s,a) + \gamma h_\Phi(s’) - h_\Phi(s)$ 被分解为 reward 近似 $g_\omega$ 和 shaping term $h_\Phi(s’) - h_\Phi(s)$。

这个结构的关键在于:shaping term 仅在训练时起作用,最终的 reward 函数从 $g_\omega$ 中提取,使得学习到的 reward 可以迁移到新环境(因为 shaping term 被消掉)。

方法输出reward 可解释性reward 可迁移性
MaxEnt IRL显式 $R(s,a)$✅ 高✅ 高
GAIL隐式 reward(判别器)❌ 低❌ 不可
AIRL显式 $g_\omega(s,a)$✅ 中✅ 可迁移

🔍 IRL vs BC vs RL

IRL vs BC(行为克隆)

BC 是直接模仿动作

$$ \text{BC: } \pi_{\text{BC}}(a|s) \leftarrow \arg\max_\pi \mathbb{E}_{(s,a) \sim \mathcal{D}} [\log \pi(a|s)] $$

IRL 是模仿动机

$$ \text{IRL: } \underbrace{\mathcal{D} \rightarrow R}_{\text{学会reward}} \rightarrow \underbrace{R \rightarrow \pi}_{\text{RL 优化}} $$
维度BCIRL
学什么动作奖励函数
数据效率高(一步监督)低(需要在 RL 循环中)
泛化能力弱(分布偏移直接爆炸)(reward 可以泛化到新场景)
是否超越专家❌ 不可能理论上可以
计算开销(需内层 RL 循环)

IRL 的核心优势体现在分布偏移(distribution shift)场景。BC 学到的策略一旦遇到训练数据中不存在的新状态,行为不可预测;而 IRL 学到的是"好与坏的标准",即使在新状态下,策略也能根据 reward 找出合理动作。

IRL vs RL

维度RLIRL
输入reward 函数专家演示
输出最优策略reward 函数
目标最大化已知 reward恢复未知 reward
谁是最优策略专家
计算量单层优化双层优化(内层 RL)

IRL 内部嵌套了一个 RL 问题:每次更新 reward,都需要重新求解对应的最优策略来评估 reward 的质量。这使得 IRL 的计算量远大于标准 RL。


🚗 IRL 在自动驾驶中的应用

为什么驾驶需要 IRL?

驾驶 reward 的设计是自动驾驶最困难的问题之一。“安全"和"舒适"的权重应该是多少?“效率"和"合规"如何权衡?这些不是工程师能完美手动定义的。

IRL 的路径:从人类驾驶数据中自动学习 reward 函数,让奖励函数体现真实驾驶员的偏好和权衡

IRL 在驾驶中的典型流程

SSSStttteeeepppp1234::::IRRLLR(s,a)rewardπR(s,a)

驾驶场景中 reward 需要捕捉的因素

Reward 因素含义IRL 是否容易捕捉
安全距离保持跟车前车距离✅ 容易(有明确度量)
车道中心偏好是否偏向车道中央✅ 容易
平滑转向方向角变化速度✅ 中等
变道时机何时变道最合适⚠️ 困难(场景依赖)
社会互动礼让/博弈行为❌ 非常困难
风险容忍度激进 vs 保守⚠️ 困难(需要大量数据)

代表性驾驶 IRL 工作

工作IRL 方法场景特色
MaxEnt IRL for Driving最大熵 IRL高速驾驶学习车道保持 + 变道 reward
GAIL for Urban DrivingGAIL + PPO城市路口从人类日志学习通过路口的 reward
AIRL for HighwayAIRL高速汇入学到可迁移的交互 reward

IRL 在驾驶中的实践挑战

  1. 驾驶行为的噪声:人类驾驶员并非完美最优,同一个驾驶员在相同场景可能做出不同决策——IRL 需要处理这种次优性
  2. 多个目标冲突:驾驶涉及安全、效率、舒适等多个目标,IRL 需要从中解耦不同的 reward 分量
  3. 状态空间巨大:城市驾驶的状态空间几乎是无限的,IRL 需要在高维空间中恢复 reward

🌟 最新趋势:偏好 IRL + VLM Reward

偏好 IRL

传统 IRL 要求专家演示是完整的轨迹。偏好 IRL(Preference-based IRL) 放松了这个要求——只需要人类对轨迹片段的相对偏好:

  1. 展示两段轨迹 $(\tau_A, \tau_B)$
  2. 人类选择偏好哪个
  3. 从偏好对中学习 reward

这本质上是对逆强化学习和 RLHF 的融合。与标准 IRL 相比:

维度标准 IRL偏好 IRL
标注难度需要完整专家轨迹只需要相对比较
数据来源人类驾驶数据任何轨迹的比较
reward 质量依赖专家最优性依赖偏好一致性

VLM 作为 IRL 的 Reward 函数

最新趋势是使用 VLM(Vision-Language Model) 作为 reward 信号源。VLM 可以理解驾驶场景的语义含义——它不仅能判断"是否安全”,还能判断"是否礼貌”、“是否合理”。

VLM-as-Reward 的工作流程:

  1. 给定驾驶场景的图像或视频
  2. 向 VLM 提问:评估这条轨迹的 安全性舒适性合规性(0-10 分)
  3. 用 VLM 的评分作为 reward 信号
  4. 用 RL 或 IRL 优化策略

VLM reward 的优势在于开箱即用、不需要人类标注偏好对。劣势在于 VLM 的评分可能不一致、对细粒度差异不敏感。

结合 IRL 和 VLM 的最新进展

最新的研究工作正在将 IRL 的框架与 VLM 的能力结合:

  1. VLM 初始化 IRL reward:用 VLM 的驾驶知识初始化 reward 函数,避免从零开始 IRL
  2. VLM 验证 IRL reward:用 VLM 评估 IRL 恢复的 reward 是否合理
  3. VLM 作为偏好标注器:用 VLM 替代人类标注偏好对,大规模做偏好 IRL

📝 个人思考

IRL 从理论上看是最优雅的"学习驾驶"方式——学会人类的目标而非人类的行为,才能在不同场景中灵活适应。但三十年来,IRL 在实践中的影响力远不如 BC 和 RL。原因在于双层优化的计算开销和配分函数近似的困难一直在制约它的可扩展性。

但最近两个趋势正在改变这个局面:

第一,对抗方法(GAIL/AIRL)和偏好方法的成熟让 IRL 不再依赖显式的环境 dynamics 和配分函数计算,实用性大幅提升。AIRL 的可迁移 reward 尤其适合驾驶——在高速场景学到的 reward 可以用于城市场景,节省了大量重复训练。

第二,VLM 作为 reward 参考的崛起正在弥补 IRL 的一个固有短板:recovered reward 往往 too specific——它只能解释训练数据中的驾驶行为,对没见过的新场景没有判断力。VLM 提供了一种常识性 reward 先验,让 IRL 的 reward 更鲁棒、更通用。

我认为 IRL 在自动驾驶中最有前途的方向是 偏好 IRL + VLM 初始化:用 VLM 给 reward 函数一个合理的初始点,然后用人类的轨迹偏好做微调。这结合了 VLM 的常识和人类的具体偏好,同时避免了纯 IRL 的冷启动困难。


📖 这是知识点拆解系列的第 14 篇。IRL 教会我们的不是’怎么开车’,而是’为什么这么开车’——比掌握技能更重要的是理解动机。