跳转到内容

行为克隆与 DAgger

行为克隆把模仿当作监督学习,但误差沿轨迹复合,偏离专家分布后无法恢复。DAgger 通过在学习者的状态分布上查询专家修复这一点。本章分析复合误差的 O(T2)O(T^2) 界与 DAgger 的 O(T)O(T) 改进。

行为克隆(Behavior Cloning, BC)把模仿问题直接变成监督学习:给定专家轨迹数据集 D={(st,at)}\mathcal{D} = \{(s_t, a_t)\},学一个映射 a=πθ(s)a = \pi_\theta(s),损失就是标准的监督损失(交叉熵、均方误差)。实现最简单——不需要环境交互、不需要奖励、不需要 RL。

BC 的根本缺陷是分布偏移:策略只在专家的状态分布上被训练,但它部署时面对的是自己的状态分布。一步小误差进入下一步的状态,下一步面对"专家从没见过的状态",再犯一步更大的错——误差沿轨迹复合。

Ross & Bagnell (2010) 的界:BC 的次优性上界为 O(ϵT2)O(\epsilon T^2),其中 ϵ\epsilon 是单步决策的平均误差、TT 是轨迹长度。T2T^2 的来源:每一步的误差都以概率进入"偏离专家分布"的状态,而偏离后的状态误差更大,二者复合。

直觉:开车时方向盘偏一度没人在意,但偏了之后看到的路况已经不对,修正后的下一度误差更大——偏差滚雪球。

DAgger:在学习者的状态上问专家

Section titled “DAgger:在学习者的状态上问专家”

DAgger(Dataset Aggregation, Ross et al., 2011)的修复思路:训练分布必须等于部署分布。循环:

  1. 用当前策略 πθ\pi_\theta 与环境交互,收集轨迹;
  2. 把轨迹上的状态交给专家,标注专家会怎么做(专家只需给动作,不需重新开车);
  3. 把新数据 {(s∼πθ,a∼πE)}\{(s \sim \pi_\theta, a \sim \pi_E)\} 聚合进训练集,重新训练;
  4. 重复。

关键:数据的状态分布来自学习者(部署分布),标注来自专家——监督学习在正确的分布上进行。次优性界从 O(ϵT2)O(\epsilon T^2) 降到 O(ϵT)O(\epsilon T):复合被打破。

代价:需要可交互的专家——在学习者到达的任意状态上都能查询专家。这个前提限制了 DAgger 的适用范围(专家是人时查询昂贵,专家是黑箱 API 时可能不可行)。

  • 数据充足、任务简单时,BC 依然是强基线:模仿学习竞赛与机器人任务中,BC 常常出乎意料地强,是所有方法必须比过的底线;
  • 复合误差被规模压制:数据量大、轨迹质量高、任务短时,T2T^2 的系数 ϵ\epsilon 可以压得很小;
  • 大规模 BC 重新流行:机器人基础模型(如 VPT 用视频数据、RT-X 用跨机构数据集)本质上是超大规模 BC——当模仿数据多到"偏离分布的概率足够小",BC 的缺陷被数据的广度覆盖(→ 机器人)。

BC 的另一个用途是预处理:先 BC 到一个不错的水准,再用 RL 微调(离线 RL、RLHF 的 SFT 阶段本质都是 BC,→ RLHF 全流程)。

  • BC 在数据充足、任务简单时依然是强基线
  • DAgger 需要可交互的专家
  • 大规模 BC(机器人基础模型)重新流行