模仿学习
概述
模仿学习(Imitation Learning, IL)是机器人学习中最实用的范式之一:给定专家演示数据集 \(\mathcal{D} = \{(o_1, a_1^*), (o_2, a_2^*), \ldots, (o_N, a_N^*)\}\),学习一个策略 \(\pi_\theta: \mathcal{O} \rightarrow \mathcal{A}\),使机器人能够复现专家行为。
与强化学习不同,模仿学习不需要奖励函数,大幅降低了任务设计的门槛。然而,它面临独特的挑战:分布偏移、多模态动作分布、以及数据获取成本。
行为克隆(Behavioral Cloning)
基本公式
行为克隆(BC)将模仿学习化简为标准的监督学习问题。给定专家数据集 \(\mathcal{D} = \{(\mathbf{o}_i, \mathbf{a}_i^*)\}_{i=1}^N\),目标是最小化策略预测与专家动作之间的损失:
对于确定性策略,这等价于最小二乘回归。对于随机策略 \(\pi_\theta(\mathbf{a}|\mathbf{o})\),目标变为最大化对数似然:
高斯策略
假设动作服从条件高斯分布 \(\pi_\theta(\mathbf{a}|\mathbf{o}) = \mathcal{N}(\mu_\theta(\mathbf{o}), \Sigma_\theta(\mathbf{o}))\),则负对数似然为:
当 \(\Sigma_\theta = \sigma^2 I\) 为常数时,退化为 MSE 损失。
输入表示
BC 策略的输入通常包括:
| 输入类型 | 表示方式 | 维度示例 |
|---|---|---|
| 关节位置 | \(q \in \mathbb{R}^{n}\) | 7-DOF 机械臂: \(\mathbb{R}^7\) |
| 关节速度 | \(\dot{q} \in \mathbb{R}^{n}\) | \(\mathbb{R}^7\) |
| 末端位姿 | \((p, R) \in SE(3)\) | \(\mathbb{R}^{7}\)(位置+四元数) |
| RGB 图像 | \(I \in \mathbb{R}^{H \times W \times 3}\) | \(224 \times 224 \times 3\) |
| 深度图 | \(D \in \mathbb{R}^{H \times W}\) | \(224 \times 224\) |
| 点云 | \(P \in \mathbb{R}^{N \times 3}\) | \(N = 1024\) |
| 语言指令 | Token embedding | \(\mathbb{R}^{512}\) |
分布偏移问题
理论分析
BC 的核心缺陷是分布偏移(Distribution Shift),也称 covariate shift。训练时,策略在专家分布 \(d_{\pi^*}\) 下的状态上学习;部署时,策略的微小偏差会将其带到未见过的状态,导致误差累积。
定理(Ross & Bagnell, 2010):设策略 \(\pi_\theta\) 在每一步犯错误的概率为 \(\epsilon\)(即 \(\mathbb{E}_{o \sim d_{\pi^*}}[\mathbb{1}[\pi_\theta(o) \neq \pi^*(o)]] \leq \epsilon\)),则在时间步长为 \(T\) 的轨迹上,BC 策略的期望总损失为:
即误差随时间步二次增长。这意味着对于长时间任务(如 \(T = 100\)),即使每步 \(\epsilon = 0.01\),总误差也会达到 \(100\)。
直观理解
考虑一个简单的沿直线行走任务:
- 专家始终沿直线行走,训练数据全部来自直线上的状态
- BC 策略学会了"在直线上时,继续向前走"
- 部署时,微小的偏差将机器人带离直线
- 在直线外的状态上,策略从未见过任何数据,输出随机
- 随机动作导致更大偏差,误差雪崩式累积
DAgger 算法
算法框架
DAgger(Dataset Aggregation, Ross et al., 2011)通过在策略自身访问的状态上查询专家来解决分布偏移:
算法流程:
- 初始化:用专家数据 \(\mathcal{D}_0\) 训练初始策略 \(\pi_0\)
- For \(i = 1, 2, \ldots, N\):
- 使用当前策略 \(\pi_i\) 收集轨迹 \(\tau_i\)
- 对轨迹中的每个状态 \(o_t\),查询专家标签 \(a_t^* = \pi^*(o_t)\)
- 聚合数据集:\(\mathcal{D}_{i+1} = \mathcal{D}_i \cup \{(o_t, a_t^*)\}\)
- 在 \(\mathcal{D}_{i+1}\) 上重新训练策略 \(\pi_{i+1}\)
理论保证:DAgger 将误差上界从 \(O(\epsilon T^2)\) 降低到 \(O(\epsilon T)\)(线性增长)。
局限性
DAgger 需要在线查询专家,这在机器人领域代价很高:
- 需要人类操作员实时提供标注
- 交互过程耗时,难以规模化
- 某些状态下专家也难以给出最优动作
逆强化学习(Inverse RL)
问题定义
逆强化学习(IRL)不直接学习策略,而是从专家演示中推断奖励函数 \(r(s, a)\),再用标准 RL 求解最优策略。
动机:奖励函数比策略更紧凑、更可迁移。学到的奖励函数可以适应新的环境动力学。
最大熵 IRL(MaxEntIRL)
核心假设:专家在满足"行为接近演示"的约束下,以最大熵的方式行动。
推导:定义轨迹的奖励为 \(R(\tau) = \sum_{t=0}^T r(s_t, a_t)\),最大熵分布为:
其中配分函数 \(Z = \int \exp(R(\tau)) d\tau\)。
目标是最大化专家轨迹的对数似然:
梯度计算:
即专家的特征期望 - 当前策略的特征期望。这是经典的特征匹配条件。
IRL 的实际困难
- 内层优化:每次更新奖励后,需要重新求解 RL(计算极其昂贵)
- 奖励模糊性:多个奖励函数可以解释同一组演示
- 高维问题:特征工程困难
GAIL:生成对抗模仿学习
对抗框架
GAIL(Generative Adversarial Imitation Learning, Ho & Ermon, 2016)巧妙地绕过了 IRL 的内层优化问题,将模仿学习转化为对抗博弈。
目标函数:
其中: - \(D(s, a)\):判别器,区分策略生成的 \((s, a)\) 和专家的 \((s, a)\) - \(\pi\):生成器(策略),试图欺骗判别器 - \(H(\pi)\):策略的熵正则项,鼓励探索
训练流程:
- 用当前策略 \(\pi\) 收集轨迹
- 训练判别器 \(D\) 区分策略和专家的数据
- 将 \(-\log D(s, a)\) 作为奖励,用 RL(如 TRPO/PPO)更新策略
- 重复步骤 1-3
与 GAN 的对应关系
| GAN 组件 | GAIL 对应 |
|---|---|
| 生成器 \(G\) | 策略 \(\pi_\theta\) |
| 判别器 \(D\) | 奖励函数 \(r(s,a) = -\log D(s,a)\) |
| 生成样本 | 策略轨迹 \((s, a) \sim \pi\) |
| 真实样本 | 专家轨迹 \((s, a) \sim \pi^*\) |
| 反向传播 | RL 策略梯度 |
GAIL 的理论联系
定理(Ho & Ermon, 2016):在判别器最优时,GAIL 最小化策略占据度量与专家占据度量之间的 Jensen-Shannon 散度:
其中占据度量 \(\rho_\pi(s, a) = \pi(a|s) \sum_{t=0}^T \gamma^t P(s_t = s | \pi)\)。
ACT:Action Chunking with Transformers
ACT 是模仿学习走向 chunk-based policy 的代表模型。这里保留它作为方法入口,但更完整的模型级解释请直接看 ACT模型。
为什么它属于模仿学习主线
ACT 仍然是标准的离线示教学习:给定专家演示轨迹,直接拟合策略,不需要奖励函数,也不需要在线 RL。它的重要创新不是“换任务范式”,而是把经典 BC 的输出对象改成了未来一段动作块。
核心结构
graph LR
OBS[观测 o_t + 状态 s_t] --> ENC[编码器]
GT[未来动作块 a_t:t+H-1] --> CVAE[CVAE 编码器]
ENC --> DEC[Transformer 解码器]
CVAE --> Z[z]
Z --> DEC
DEC --> CHUNK[预测动作块]
style ENC fill:#e3f2fd
style CVAE fill:#fff3e0
style DEC fill:#e8f5e9
方法要点
- Action chunking:一次预测未来 \(H\) 步动作,而不是单步 \(a_t\)。
- CVAE latent:用潜变量刻画同一观测下的多种合理动作风格。
- Temporal ensembling:执行时融合重叠 chunk,减少抖动。
对应的 chunk 预测可以写成:
训练目标通常写成重建项与 KL 正则的组合:
在模仿学习谱系中的意义
ACT 的重要性在于它证明了:
- 仅靠少量高质量演示,也能做出精细双臂操作
- 模仿学习不一定只能做单步回归
- “动作块”可以成为后续更大模型的自然动作表示
如果你想进一步理解它为什么会影响后来的 VLA 和 action tokenization 设计,请继续读 ACT模型 和 模型发展路线图。
方法对比
| 方法 | 数据需求 | 在线交互 | 多模态 | 长任务 | 典型应用 |
|---|---|---|---|---|---|
| BC | 离线演示 | 否 | 差 | 差 | 快速原型 |
| DAgger | 离线+在线 | 是 | 差 | 中 | 自动驾驶 |
| IRL/MaxEntIRL | 离线演示 | 是(RL) | 好 | 好 | 奖励学习 |
| GAIL | 离线演示 | 是(RL) | 好 | 好 | 运动模仿 |
| ACT | 离线演示 | 否 | 好(CVAE) | 中 | 灵巧操作 |
| 扩散策略 | 离线演示 | 否 | 优 | 好 | 接触丰富任务 |
前沿趋势
- 扩散策略:用去噪扩散模型建模多模态动作分布,详见 扩散策略
- VLA 模型:将视觉-语言大模型与动作预测结合,详见 VLA模型
- 数据规模化:通过更好的遥操作系统大规模收集数据,详见 遥操作与数据收集
- 跨实体迁移:在不同机器人形态之间迁移模仿学习策略
参考文献
- Pomerleau, D. (1989). ALVINN: An Autonomous Land Vehicle in a Neural Network. NeurIPS.
- Ross, S., Gordon, G., & Bagnell, D. (2011). A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning. AISTATS.
- Ziebart, B., et al. (2008). Maximum Entropy Inverse Reinforcement Learning. AAAI.
- Ho, J. & Ermon, S. (2016). Generative Adversarial Imitation Learning. NeurIPS.
- Zhao, T., et al. (2023). Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware. RSS.
- Chi, C., et al. (2023). Diffusion Policy: Visuomotor Policy Learning via Action Diffusion. RSS.