模仿学习主流方法全景梳理
模仿学习(Imitation Learning,简称IL)的核心思路非常直接:避开奖励函数设计的繁琐流程,直接从专家(人类或高水平策略)的演示数据中“照猫画虎”学习策略。本文将对主流方法的原理和横向对比进行系统化梳理,帮助你在工程选型时做到心中有数。
PART 01 行为克隆 (Behavior Cloning, BC)
BC 是最朴素的方式——将模仿学习视为监督回归问题。给定状态 s,拟合专家动作分布 π(a|s),最小化期望负对数似然。说得通俗点就是“抄答案”:利用 (st, at) 配对数据直接训练策略网络进行动作回归。
| 优势 | 劣势 |
|---|---|
| 实现最简,逻辑清晰 | 协方差偏移(Covariate Shift):训练与测试分布不同,误差会累积 |
| 训练稳定,收敛速度快 | 泛化能力差,无法应对未见过的状态 |
| 可使用任意离线专家数据 | 对数据质量敏感,错误标签会直接导致模型学偏 |
| 适合数据充足的简单任务 | 难以处理高维连续动作空间的长时序任务 |
PART 02 数据集聚合 (DAgger)
DAgger 通过迭代式“打标签→训练→收集新数据”来解决上述问题:当前策略 πi 采集数据 → 专家在策略轨迹状态上打标签 a* = πexpert(s) → 合并到训练集,训练新策略 πi+1。
核心思想在于:BC 仅在专家数据的状态上训练,而 DAgger 将专家的覆盖范围扩展到策略自身的状态分布,从而在理论上消除了累积误差。
| 优势 | 劣势 |
|---|---|
| 理论上可消除累积误差 | 需要在线交互,无法纯离线使用 |
| 收敛到最优策略(线性近似下) | 迭代过程中策略可能变差→引入标签噪声 |
| 适合长时序任务 | 需要专家全程在线标注,成本较高 |
| 不依赖奖励函数设计 | 训练不稳定(策略分布漂移) |
代表工作:Ross & Bagnell 2010 (DAgger),核心引理:在 ε-贪婪专家下,BC 累积误差 O(T²ε),DAgger 可降至 O(Tε)。
PART 03 生成对抗模仿学习 (GAIL)
GAIL 将 GAN 框架引入模仿学习:训练一个判别器 D(s,a) 来区分专家数据和策略生成数据,策略 π 作为生成器试图欺骗判别器。奖励信号从判别器推导出来:r(s,a) = -log(1-D(s,a)),相当于隐式的奖励塑形。
| 优势 | 劣势 |
|---|---|
| 不需要显式奖励函数 | 训练不稳定(GAN 的模式坍塌、梯度消失) |
| 泛化能力强于 BC | 对超参数敏感,调参难度大 |
| 探索能力比 BC 强 | 判别器收敛不等于策略收敛,两者相互博弈 |
| 适合高维复杂任务 | 奖励信号间接,难以调试 |
PART 04 Q 函数类方法(逆强化学习 IRL)
逆强化学习走了另一条路:先从专家轨迹反推奖励函数 rψ(s,a),再基于该奖励函数训练强化学习策略。核心假设是专家轨迹的概率正比于 exp(∑t r(st,at))(最大熵原理),通过最大化专家数据似然来反推奖励函数。
| 优势 | 劣势 |
|---|---|
| 学习到可迁移的奖励函数 | 计算代价极高——需要内外层循环(IRL + RL) |
| 奖励函数可解释 | IRL 内层优化通常非凸,收敛慢 |
| 学到的策略更鲁棒 | 不适合大规模问题(网格搜索/神经网络逼近奖励函数都很昂贵) |
| 可处理多专家数据 | 真实场景下奖励函数往往未知,无法验证 |
PART 05 离线模仿学习 / Offline IL
针对无法在线交互、仅有固定离线数据集的场景,近年涌现出几种代表性思路:
Conditional IL (cIL):训练时对状态-动作条件分布建模,将状态作为额外输入以缓解分布偏移。当前 SOTA 离线 IL 如 IKL、Action Chunking Transformer 均属此类。
IQ-Learn / Implicit Q-Learning:不显式建模奖励函数,而是从隐式 Q 函数推导策略,绕开了传统 IRL 的内外层嵌套问题。
Diffusion Policy(扩散策略):使用扩散模型建模动作分布 at = Diffusion(st, noise),在机器人操作任务上效果显著。
PART 06 方法对比总览
| 方法 | 在线交互 | 显式奖励函数 | 训练稳定性 | 泛化能力 | 计算成本 | 典型场景 |
|---|---|---|---|---|---|---|
| BC | 否 | 否 | 稳定 | 差 | 极低 | 数据充足、状态分布稳定 |
| DAgger | 必需 | 否 | 需迭代 | 好 | 中等 | 能在线交互的机器人 |
| GAIL | 交互式 | 否(隐式) | 不稳定 | 好 | 高 | 高维视觉/复杂任务 |
| MaxEnt IRL | 需要 RL | 是(反推) | 双层优化 | 好 | 极高 | 奖励函数未知、需可解释奖励函数 |
| Offline IL / cIL | 否 | 否 | 稳定 | 取决于数据 | 低-中 | 真实世界数据集、遥操作数据 |
| Diffusion Policy | 否 | 否 | 稳定 | 好 | 中-高 | 机器人操作、多模态动作 |
PART 07 工程选型建议
数据来源
├── 静态离线数据集 无在线能力
│ ├── 数据分布覆盖好 → BC / cIL + behavior regularizer
│ └── 数据稀疏/分布窄 → Offline RL 思路(IQ-Learn)
│
├── 可在线交互 专家在线
│ ├── 短 horizon / 状态简单 → DAgger
│ └── 长 horizon / 高维视觉 → GAIL / Model-based IL
│
└── 有大量演示数据 目标可定义 reward
└── MaxEnt IRL(学奖励函数再做 RL)
避坑提示:
- BC 是 baseline,不是终点——上生产前至少测一次 DAgger 或 offline IL 进行对比
- GAIL 的训练不稳定性是工程大坑,生产部署前需设置 early stopping 并配合离线评估策略
- 真实机器人场景下,扩散策略 + 动作分块 (action chunking) 是目前工程落地最成熟的组合
