Home / 机器人学习 / DAgger:修复模仿中的分布偏移

006|DAgger:修复模仿中的分布偏移

系列首页 · 上一篇 · 下一篇

原论文:A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning,Ross、Gordon、Bagnell,AISTATS 2011。原文。

先接住前作的问题

学徒学习从示范的长期统计讨论接近专家,但另一条常用路线仍是直接拟合专家动作。DAgger追问这条路线的执行漏洞:学习者偏离后访问了示范外状态,谁来提供恢复标签?这是对数据分布的补课,不是学徒学习算法的后续版本。

五个前置概念

五个前置概念是协变量偏移、占用分布、数据聚合、在线遗憾和专家查询。它们分别解释训练执行差别、状态访问、旧数据保留、理论收敛视角与新增监督成本。

一、问题设定:学习者偏离示范后从哪里得到恢复标签

专家开车总在车道中央,因此示范里很少出现“已经偏到路边,应该怎样回正”。一个监督模型即使在专家数据上预测准确,执行时只要稍有偏差,就可能进入陌生状态,再做出更大错误。

设监督策略在专家状态分布上的错误率为 ϵ\epsilon,任务长度为 TT。一旦某步偏离专家轨迹,后面可能持续访问未训练状态。在最坏情况下,早期一次错误影响许多后续步骤,累积损失可以出现 T2ϵT^2\epsilon 量级。

这个量级是说明分布偏移可能多严重的界,不是说每个机器人任务的损失必然二次增长。若环境自动恢复、专家数据覆盖广,或错误不会改变后续状态,实际累积可以小得多。

要素 DAgger 中的角色
场景 交互式模仿学习
学习信号 专家在给定状态上的动作标签
奖励 算法可不依赖显式环境奖励
数据来源 专家示范与学习者运行时访问的状态
输出 经过多轮聚合训练的策略
核心假设 专家能对查询状态提供有意义标签

在机械臂上,专家可能是遥操作员、优化器或已知控制程序。专家如何获知状态,学习者执行时又能看到什么,必须分别说明。若专家依赖学习者不可见的信息,同一观察可能对应不同正确动作,单步监督问题本身就有歧义。

二、在自访问分布上聚合专家纠正

DAgger 的回答是改变数据收集位置:让当前学习策略运行,在它访问的状态上询问专家应该怎样行动,再把这些标注加入已有数据。专家不只是演示完美行为,还为学习者实际遇到的局面提供纠正。原文 §2、算法 3

令 π^i\hat\pi_i 为当前学习策略,πE\pi_E 为专家。采样时可使用混合策略:

πi=βiπE+(1−βi)π^i.\pi_i=\beta_i\pi_E+(1-\beta_i)\hat\pi_i.

早期较多依赖专家,后期逐渐让学习者控制。这里的混合描述行动选择,不是简单平均两个网络参数。

在访问状态 ss 上,收集标签 πE(s)\pi_E(s),得到新数据 DiD_i,然后:

D←D∪Di,π^i+1←Train⁡(D).D\leftarrow D\cup D_i,\qquad \hat\pi_{i+1}\leftarrow\operatorname{Train}(D).

保留旧数据是关键。如果只训练最近一轮,策略可能忘掉之前学过的恢复场景,产生来回摆动。数据聚合让每轮新策略也需要兼顾过去造成过问题的分布。

理论上,训练器对应一个无遗憾在线学习过程。每轮损失定义在该轮访问分布上,平均遗憾小使算法能够找到在自身相关状态上损失较小的策略。它不是把任意深度网络训练几轮,就自动获得原文全部保证。

理论的关键量还包括专家恢复能力。若一次错误的额外长期成本最多为 uu,自分布上的错误率为 ϵ\epsilon,在长度 TT 的回合中性能差可随 uTϵuT\epsilon 增长;如果离开示范后一次错误会永久摔倒,uu 也可能随时域增大。于是“从二次变线性”有条件,不能理解为消除了不可恢复事故。原文定理3.1—3.4

教学例:100步走廊中每次偏航只需2步恢复,与悬崖边一次失足损失余下全程,虽然一步动作误差相同,长期代价完全不同。DAgger能补偏航后的标签,却不能在真实悬崖上安全制造所需训练状态。游戏里能重置、精确查询专家的实验条件,因此是理论与真机之间必须明确的一层。

一个恢复场景

教学构造:机器人推方块向目标移动。专家每次都准确接触方块中心,示范只覆盖居中推动。学习者偶尔接触偏左,方块发生转动;继续照着“向前推”的监督规则,方块可能越来越歪。

DAgger 让专家在这个歪斜状态给出动作,例如先调整接触点,再继续推动。下一轮训练就新增了“如何恢复”的例子。注意标签不是原先理想轨迹同一时刻的动作,而是当前实际状态下的专家行动。

若方块已经掉到机器人够不到的桌外,专家也无法恢复。DAgger 不能逆转物理不可达状态,只能在收集与任务边界允许的区域获得更合适标签。因此它解决分布偏移,不能被解释成对任何失败都能自我纠正。

三、在学习者访问状态查询并累积专家标签

把一步监督损失记为ℓ(s)\ell(s),即使它的定义不变,Es∼dEℓ(s)\mathbb E_{s\sim d_E}\ell(s)与Es∼dπℓ(s)\mathbb E_{s\sim d_\pi}\ell(s)也可能差很多:前者按专家到访频率加权,后者按学习者到访频率加权。DAgger改的是收集到的状态与这些权重,不是要求把平方误差换成另一种损失。这个读法借鉴BAIR对分布偏移的展开,具体聚合流程仍是本篇算法3。

输入:可查询专家 Expert、初始策略、训练器
D = 空集合
对第 i 轮:
    设置专家混合概率 beta_i
    在环境运行当前混合策略
    对每个访问状态 s:
        询问专家动作 a_E
        将 (s, a_E) 加入新数据
    D = D 与新数据的并集
    在 D 上训练下一轮学习策略
在独立运行中评价候选策略
输出:选定的策略

在真实机器人中,这份伪代码还没有定义如何处理危险状态与专家响应延迟。把专家动作询问写在循环里,不代表人能够在毫秒级完成标注。离线回放标注、暂停环境、共享控制会改变数据收集过程,需要视具体系统设计。

四、用恢复场景核对分布改变是否真正发生

原图怎么读: 图2,PDF第6页。纵轴是每圈平均跌出赛道次数,越低越好;图4则是每关行进距离,越高越好。两种纵轴方向相反,比较的是各自任务下随训练数据增长的表现。

A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning,图4:纵轴是每关平均行进距离,横轴是训练数据量;曲线衡量模仿控制表现,并非每关通关率。
原图摘引:Ross、Gordon、Bagnell,AISTATS 2011,PDF第7页,图4。核对原文。纵轴是每关平均行进距离,横轴是训练数据量;曲线衡量模仿控制表现,并非每关通关率。

A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning,图2:纵轴是每圈平均跌出赛道次数,越低越好;图4则是每关行进距离,越高越好。两种纵轴方向相反,比较的是各自任务下随训练数据增长的表现。
实验图原图摘引:Ross、Gordon、Bagnell,AISTATS 2011,PDF第6页,图2。核对原文。原版权保留。
原文位置 设置 检验假设 阅读边界
前文误差界与无遗憾分析 时序预测问题 专家分布损失不足以保证自身分布表现 理论条件需与训练器对应
算法 3 交互聚合过程 学习者访问状态可形成新的监督数据 查询专家并非免费
图2 Super Tux Kart 平均每圈跌落 增加专家原分布数据与交互数据的差别 使用固定游戏赛道与视觉特征
图4 Super Mario 每关行进距离 恢复状态数据有助于解除卡住情形 非真实机器人安全证明
图4相关设置 不同专家混合衰减 专家占比影响学习者状态覆盖 参数选择与预算应一同考虑

Mario 实验使用每轮 5000 个数据点、20 轮;图4 给出 95% 置信区间。专家拥有游戏内部状态和精确规划能力,学习器采用图像特征。因此实验检验的是利用强专家训练受限观察策略,而不是让两个信息完全相同的策略直接比赛。

学习曲线横轴是训练数据数量,不能直接理解为人工耗时或真实交互时长。论文观察到只增加完美专家轨迹,无法解决贴近障碍后卡住的问题;交互方法会访问这些局面并获得恢复标签。这是对分布偏移机制的具体证据。

五、把专家可查询性与危险状态分开处理

数学上最小化的是专家动作的代理损失,例如分类或回归误差。机制上改变的是数据由谁产生以及是否长期保留。任务指标则是跌落、距离或机器人成功率。代理损失较小不一定改善所有任务指标:某些极少出现的危险动作在平均误差里权重很小,却可能造成巨大任务成本。

原文的策略性能界还涉及一步动作偏差对未来成本的影响。如果专家无法恢复,或错误代价极大,较低单步误差也需要更谨慎解读。这也是为何机器人应用常将 DAgger 与约束、接管或局部恢复机制结合,但这些后续工程手段不能冒充原始算法自带功能。

追问:专家标注有延迟时,如何避免把正确动作贴到错误状态上?

参考答案:聚合数据需要的是被查询状态及其对应专家动作。若专家响应时环境已向前运行,直接把迟到动作与新状态配对会改变监督问题。可暂停、回放或记录带时间戳的状态再标注,并分别报告交互延迟和标注延迟。各方案改变采集协议,应先验证配对和可恢复性,不能认为原无悔学习条件自动覆盖人类实时延迟。

六、沿机制关系继续读

DART是平行数据收集方法:在专家演示中加噪以接近学习者将访问的状态,避免直接让差策略控制全程;本篇则显式在学习者访问状态查询专家。共同解决分布偏移,不等于两者具有相同安全性和查询成本。

七、自测题与参考答案

问题 1:为什么再收集十倍完美示范,也可能不如少量交互纠正有效?

参考答案:更多同分布示范主要改善专家常到状态的估计,学习者犯错后访问的状态仍可能缺失。交互纠正把标注放在真正需要恢复的位置。若原示范已充分覆盖这些状态,差距则可能缩小。

问题 2:DAgger 是否在强化学习中优化奖励?

参考答案:它通常用专家动作代理损失训练,属于交互式模仿学习。环境运行负责产生状态,专家负责监督标签。可以用回报评价结果,但评价指标是回报不等于训练信号就是 RL 奖励。

问题 3:为什么必须保留旧数据,而不能只学最新一轮?

参考答案:每轮策略产生不同访问分布。只拟合最新一轮可能忘掉过去的错误,导致旧问题复发;聚合让训练持续覆盖历轮分布,也是原文在线学习归约的重要部分。