006|DAgger:修复模仿中的分布偏移
原论文:A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning,Ross、Gordon、Bagnell,AISTATS 2011。原文。
先接住前作的问题
学徒学习从示范的长期统计讨论接近专家,但另一条常用路线仍是直接拟合专家动作。DAgger追问这条路线的执行漏洞:学习者偏离后访问了示范外状态,谁来提供恢复标签?这是对数据分布的补课,不是学徒学习算法的后续版本。
五个前置概念
五个前置概念是协变量偏移、占用分布、数据聚合、在线遗憾和专家查询。它们分别解释训练执行差别、状态访问、旧数据保留、理论收敛视角与新增监督成本。
一、问题设定:学习者偏离示范后从哪里得到恢复标签
专家开车总在车道中央,因此示范里很少出现“已经偏到路边,应该怎样回正”。一个监督模型即使在专家数据上预测准确,执行时只要稍有偏差,就可能进入陌生状态,再做出更大错误。
设监督策略在专家状态分布上的错误率为 ,任务长度为 。一旦某步偏离专家轨迹,后面可能持续访问未训练状态。在最坏情况下,早期一次错误影响许多后续步骤,累积损失可以出现 量级。
这个量级是说明分布偏移可能多严重的界,不是说每个机器人任务的损失必然二次增长。若环境自动恢复、专家数据覆盖广,或错误不会改变后续状态,实际累积可以小得多。
| 要素 | DAgger 中的角色 |
|---|---|
| 场景 | 交互式模仿学习 |
| 学习信号 | 专家在给定状态上的动作标签 |
| 奖励 | 算法可不依赖显式环境奖励 |
| 数据来源 | 专家示范与学习者运行时访问的状态 |
| 输出 | 经过多轮聚合训练的策略 |
| 核心假设 | 专家能对查询状态提供有意义标签 |
在机械臂上,专家可能是遥操作员、优化器或已知控制程序。专家如何获知状态,学习者执行时又能看到什么,必须分别说明。若专家依赖学习者不可见的信息,同一观察可能对应不同正确动作,单步监督问题本身就有歧义。
二、在自访问分布上聚合专家纠正
DAgger 的回答是改变数据收集位置:让当前学习策略运行,在它访问的状态上询问专家应该怎样行动,再把这些标注加入已有数据。专家不只是演示完美行为,还为学习者实际遇到的局面提供纠正。原文 §2、算法 3
令 为当前学习策略, 为专家。采样时可使用混合策略:
早期较多依赖专家,后期逐渐让学习者控制。这里的混合描述行动选择,不是简单平均两个网络参数。
在访问状态 上,收集标签 ,得到新数据 ,然后:
保留旧数据是关键。如果只训练最近一轮,策略可能忘掉之前学过的恢复场景,产生来回摆动。数据聚合让每轮新策略也需要兼顾过去造成过问题的分布。
理论上,训练器对应一个无遗憾在线学习过程。每轮损失定义在该轮访问分布上,平均遗憾小使算法能够找到在自身相关状态上损失较小的策略。它不是把任意深度网络训练几轮,就自动获得原文全部保证。
理论的关键量还包括专家恢复能力。若一次错误的额外长期成本最多为 ,自分布上的错误率为 ,在长度 的回合中性能差可随 增长;如果离开示范后一次错误会永久摔倒, 也可能随时域增大。于是“从二次变线性”有条件,不能理解为消除了不可恢复事故。原文定理3.1—3.4
教学例:100步走廊中每次偏航只需2步恢复,与悬崖边一次失足损失余下全程,虽然一步动作误差相同,长期代价完全不同。DAgger能补偏航后的标签,却不能在真实悬崖上安全制造所需训练状态。游戏里能重置、精确查询专家的实验条件,因此是理论与真机之间必须明确的一层。
一个恢复场景
教学构造:机器人推方块向目标移动。专家每次都准确接触方块中心,示范只覆盖居中推动。学习者偶尔接触偏左,方块发生转动;继续照着“向前推”的监督规则,方块可能越来越歪。
DAgger 让专家在这个歪斜状态给出动作,例如先调整接触点,再继续推动。下一轮训练就新增了“如何恢复”的例子。注意标签不是原先理想轨迹同一时刻的动作,而是当前实际状态下的专家行动。
若方块已经掉到机器人够不到的桌外,专家也无法恢复。DAgger 不能逆转物理不可达状态,只能在收集与任务边界允许的区域获得更合适标签。因此它解决分布偏移,不能被解释成对任何失败都能自我纠正。
三、在学习者访问状态查询并累积专家标签
把一步监督损失记为,即使它的定义不变,与也可能差很多:前者按专家到访频率加权,后者按学习者到访频率加权。DAgger改的是收集到的状态与这些权重,不是要求把平方误差换成另一种损失。这个读法借鉴BAIR对分布偏移的展开,具体聚合流程仍是本篇算法3。
输入:可查询专家 Expert、初始策略、训练器
D = 空集合
对第 i 轮:
设置专家混合概率 beta_i
在环境运行当前混合策略
对每个访问状态 s:
询问专家动作 a_E
将 (s, a_E) 加入新数据
D = D 与新数据的并集
在 D 上训练下一轮学习策略
在独立运行中评价候选策略
输出:选定的策略
在真实机器人中,这份伪代码还没有定义如何处理危险状态与专家响应延迟。把专家动作询问写在循环里,不代表人能够在毫秒级完成标注。离线回放标注、暂停环境、共享控制会改变数据收集过程,需要视具体系统设计。
四、用恢复场景核对分布改变是否真正发生
原图怎么读: 图2,PDF第6页。纵轴是每圈平均跌出赛道次数,越低越好;图4则是每关行进距离,越高越好。两种纵轴方向相反,比较的是各自任务下随训练数据增长的表现。


| 原文位置 | 设置 | 检验假设 | 阅读边界 |
|---|---|---|---|
| 前文误差界与无遗憾分析 | 时序预测问题 | 专家分布损失不足以保证自身分布表现 | 理论条件需与训练器对应 |
| 算法 3 | 交互聚合过程 | 学习者访问状态可形成新的监督数据 | 查询专家并非免费 |
| 图2 | Super Tux Kart 平均每圈跌落 | 增加专家原分布数据与交互数据的差别 | 使用固定游戏赛道与视觉特征 |
| 图4 | Super Mario 每关行进距离 | 恢复状态数据有助于解除卡住情形 | 非真实机器人安全证明 |
| 图4相关设置 | 不同专家混合衰减 | 专家占比影响学习者状态覆盖 | 参数选择与预算应一同考虑 |
Mario 实验使用每轮 5000 个数据点、20 轮;图4 给出 95% 置信区间。专家拥有游戏内部状态和精确规划能力,学习器采用图像特征。因此实验检验的是利用强专家训练受限观察策略,而不是让两个信息完全相同的策略直接比赛。
学习曲线横轴是训练数据数量,不能直接理解为人工耗时或真实交互时长。论文观察到只增加完美专家轨迹,无法解决贴近障碍后卡住的问题;交互方法会访问这些局面并获得恢复标签。这是对分布偏移机制的具体证据。
五、把专家可查询性与危险状态分开处理
数学上最小化的是专家动作的代理损失,例如分类或回归误差。机制上改变的是数据由谁产生以及是否长期保留。任务指标则是跌落、距离或机器人成功率。代理损失较小不一定改善所有任务指标:某些极少出现的危险动作在平均误差里权重很小,却可能造成巨大任务成本。
原文的策略性能界还涉及一步动作偏差对未来成本的影响。如果专家无法恢复,或错误代价极大,较低单步误差也需要更谨慎解读。这也是为何机器人应用常将 DAgger 与约束、接管或局部恢复机制结合,但这些后续工程手段不能冒充原始算法自带功能。
追问:专家标注有延迟时,如何避免把正确动作贴到错误状态上?
参考答案:聚合数据需要的是被查询状态及其对应专家动作。若专家响应时环境已向前运行,直接把迟到动作与新状态配对会改变监督问题。可暂停、回放或记录带时间戳的状态再标注,并分别报告交互延迟和标注延迟。各方案改变采集协议,应先验证配对和可恢复性,不能认为原无悔学习条件自动覆盖人类实时延迟。
六、沿机制关系继续读
DART是平行数据收集方法:在专家演示中加噪以接近学习者将访问的状态,避免直接让差策略控制全程;本篇则显式在学习者访问状态查询专家。共同解决分布偏移,不等于两者具有相同安全性和查询成本。
七、自测题与参考答案
问题 1:为什么再收集十倍完美示范,也可能不如少量交互纠正有效?
参考答案:更多同分布示范主要改善专家常到状态的估计,学习者犯错后访问的状态仍可能缺失。交互纠正把标注放在真正需要恢复的位置。若原示范已充分覆盖这些状态,差距则可能缩小。
问题 2:DAgger 是否在强化学习中优化奖励?
参考答案:它通常用专家动作代理损失训练,属于交互式模仿学习。环境运行负责产生状态,专家负责监督标签。可以用回报评价结果,但评价指标是回报不等于训练信号就是 RL 奖励。
问题 3:为什么必须保留旧数据,而不能只学最新一轮?
参考答案:每轮策略产生不同访问分布。只拟合最新一轮可能忘掉过去的错误,导致旧问题复发;聚合让训练持续覆盖历轮分布,也是原文在线学习归约的重要部分。