机器人操纵场景的抽象表示,说明已学策略在执行期间访问的状态分布
DAgger模仿学习行为克隆机器人学习理论

DAgger讲解:行为克隆为何漂移以及数据集聚合实际证明了什么

AY-Robots ResearchAugust 27, 202615分钟阅读

行为克隆在专家的状态分布上拟合一个策略,然后在其自身基础上部署。这两个分布之间的差距是为什么在验证中看起来很好的策略在第300步时从桌子上走下去。这是我们DAgger系列的理论章节:二次误差项来自何处、数据集聚合改变了什么、无悔证明假设了什么,以及人类专家还需要支付多少成本。

有一种特殊的失败,每个训练操纵策略的人迟早都会遇到。策略伸向立方体,靠得很近(两厘米以内),犹豫不决,横向漂移,然后做与任务无关的事情。验证损失很好。针对保留样本的开环重放很好。但手臂最终停留在训练数据中不存在的位置,从那里它没有什么明智的说法。

这个失败有一个名字和一个坚实的理论。这是四篇关于DAgger的文章中的第一篇,它涵盖论证本身:为什么在示范者自己的轨迹上拟合策略会产生可以随episode长度平方增长的误差,数据集聚合改变了什么,以及无悔证明不承诺什么。在真实硬件上的循环在在SO-100上运行DAgger循环中涵盖,人类门控变体在HG-DAgger和人类门控干预中,测量问题在测量DAgger循环中。

简版

  • 行为克隆在专家的状态分布上训练,并在策略自身的基础上进行评估。不匹配会在episode中积累。
  • Ross和Bagnell证明额外成本可以随T平方乘以单步误差增长;DAgger论文重新陈述该界限并指出它是紧的。
  • DAgger标记策略本身访问的状态,并根据迄今为止收集的每个数据集(而不仅仅是最新的)进行重新训练。
  • 保证是对无悔在线学习的reduction:聚合和重新训练是Follow-The-Leader。
  • 它与策略类中可达到的最佳损失有关,而不是与零有关——专家仍然必须标记它从未产生的状态。

行为克隆悄悄做出的假设

演示数据集是观察-动作对的集合。行为克隆用普通监督学习将函数拟合到该集合中,然后停止。它是该领域最古老的想法。Pomerleau的ALVINN在1988年是一个三层反向传播网络,它从摄像头和激光测距仪获取图像,并产生车辆应该行进的方向;它在模拟道路图像上训练,在某些现场条件下跟随真实道路。配方没有改变太多;网络已经改变。

跳过的是对这些对来自何处的检查。每一对都位于示范者产生的轨迹上。您部署的策略会产生自己的。它偏离的那一刻,它被询问了不在训练分布中的状态,它的答案使其进一步偏离。Ross、Gordon和Bagnell以完全这个开始DAgger论文:顺序预测违反了统计学习下的i.i.d.假设,因为学习者自己的预测决定了它接下来看到的输入。

该论文中最清晰的插图根本不是机器人。克隆Super Mario Bros.的近优策略规划器产生了一个策略,该策略反复被卡在障碍物上而不是跳过它。原因是整个论证只用一句话:专家总是从舒适的距离跳跃,所以数据集不包含任何Mario被压在障碍物上的状态,因此没有标签说明一旦他在那里应该做什么。

将Mario换成SO-100手臂,结构完全相同。您的演示显示了干净的接近和干净的抓取,而不是夹爪关闭两厘米过短——所以策略不知道从那里做什么,无论它猜什么都会使其进一步偏离。协变量转移是数据收集程序的属性,而不是网络架构的属性。

二次项来自何处

2010年Ross和Bagnell的AISTATS论文,Efficient Reductions for Imitation Learning,精确化了复合。设T为任务horizon,设task cost在单位区间内有界,设epsilon为在专家的状态分布下测量的surrogate loss——您的验证集报告的数字。然后运行该策略T步的额外成本相对于专家的界限是T平方乘以epsilon。Ross、Gordon和Bagnell在DAgger论文中将其重新陈述为定理2.1,并添加了重要的句子:界限是紧的。存在问题,其中在专家分布上具有epsilon损失的策略确实会导致额外成本以T的二次方增长。

紧密不意味着典型。二次项是一类问题上的最坏情况,而不是对您的pick-and-place任务的预测。它建立的是更多专家演示无法消除问题:它只是锐化了对策略将不被测试的分布的epsilon估计。

逃生路线在同一篇论文中,重新陈述为定理2.2。如果策略在其自身状态分布下实现epsilon损失,并且单一错误动作的成本最多为u(在专家下的cost-to-go),额外成本由u乘以T乘以epsilon限制——在horizon中是线性的。常数u是有趣的量:对于与专家的0-1disagreement最多为1,以及每当专家可以在几步内恢复时O(1)。在最坏的情况下它是O(T),线性界限就不比二次方更好了。

设置额外成本相对于专家的界限它基于什么
行为克隆(Ross & Bagnell 2010,在Ross等人2011中重新陈述为Thm. 2.1)T平方乘以epsilonepsilon在专家的状态分布下测量;cost在[0,1]中;界限是紧的
任何在其自身分布下具有epsilon损失的策略(Thm. 2.2)u乘以T乘以epsilonu约束了单个错误动作的cost-to-go惩罚;对于0-1 loss最多1,O(T)最坏情况
前向训练(Ross & Bagnell 2010)u乘以T乘以epsilon每个时间步一个策略;需要T个策略和已知的有限T
SMILe(Ross & Bagnell 2010)在某些问题类上近似线性于T和epsilonalpha在O(1/T平方)中,N在O(T平方 log T)中;产生随机混合
DAgger(Thm. 3.2, Ross等人2011)u乘以T乘以epsilon_N,加O(1)N在uT的量级上;强凸有界损失;无悔学习器;epsilon_N是hindsight中的最佳损失
机器人工作空间代表策略访问但从未在演示集中出现的状态
DAgger轮中重要的状态是没有人演示的:几乎错失的抓取、半开的夹爪、手臂越过物体。

DAgger之前的两次尝试

前向训练是诚实但不切实际的答案。为每个时间步按顺序训练一个单独的策略,每个在由已经为较早步骤修复的策略引发的状态分布上,所以每个策略看到完全是它将面对的分布。问题在于描述中:T个策略,按顺序训练,没有提前停止。对于操纵episode以每秒30帧,T以数百为单位。

来自同一论文的SMILe和来自Daume、Langford和Marcu关于结构化预测工作的SEARN采取另一条路线:一个固定的确定性策略,但随机。每次迭代训练一个分量并将其添加到混合中,将概率质量从专家转移。结果是一个混合体,其中一些分量比其他分量更差——在物理手臂上,一个可以在运动中采样坏分量的控制器。这是想要一个固定的确定性策略而不是随机混合的明确动机。

DAgger:一个想法,一个框

数据集聚合将确定性策略保留在保持,并将修复移动到数据收集中。每轮:运行当前策略,记录它访问的状态,询问专家在每一个中正确的动作是什么,将这些对添加到您已有的数据集中,在并集上重新训练。名称就是算法——你聚合,你永远不丢弃。

text
D            <- {}                      # the aggregate dataset
pi_hat_1     <- any policy in Pi

for i = 1 .. N:
    pi_i  = beta_i * expert  +  (1 - beta_i) * pi_hat_i
    roll out pi_i for T steps, record every visited state s
    D_i   = { (s, expert(s))  for every visited state s }
    D     = D  union  D_i               # aggregate, do not replace
    pi_hat_{i+1} = train on all of D

return the best pi_hat_i on a validation set
DAgger meta-算法,Ross、Gordon & Bagnell(2011)的算法3.1。

三个细节比看起来的重量更多。标签是针对混合策略访问的状态,但动作来自专家——策略提供问题,专家提供答案。重新训练是在整个聚合上,这使得每轮都是Follow-The-Leader步骤:在轮n处,您选择迄今为止每个轨迹上的hindsight中最好的策略。这个框架是证明所基于的。算法通过在验证集上选择序列中的最佳策略来结束,因为定理保证某个序列中的策略很好,而不是最后一个是。

β计划,以及为什么它不是调优旋钮

混合策略是beta_i乘以专家加上一减去beta_i乘以学习者。要点是实际的:前几个学到的策略在非常少的数据上训练,犯许多错误,否则会在变得irrelevant的状态中花费rollout一旦策略改进。

理论仅施加一个条件:betas的运行平均值必须趋于零。分析使用beta_i受(1 - alpha)的(i-1)次幂限制,对于T独立的常数alpha。

计划它做什么论文报告了什么
beta_1 = 1第一轮是纯专家演示;不需要初始策略每个变体中推荐的起点
beta_i = 1如果i = 1,否则0仅第一轮的专家;无免费参数论文的无参数版本,它说在实践中通常表现最好;Super Mario Bros.后20次迭代2980
beta_i = p^(i-1),p = 0.5专家概率几何衰减3030在相同基准上,略领先于无参数版本
beta_i = p^(i-1),p = 0.9专家在循环中停留的时间要长得多显著较慢的收敛;当20次迭代结束时仍在改进

2980和3030之间的差距在大约4300的规模上很小,但论文对其的解释是该部分中最有用的实践说明。使用无参数计划,Mario早期卡在同一位置并从该一个位置生成大量near-duplicate数据;让专家有时间驾驶既让他摆脱了困境,又扩大了状态的多样性。计划不如其他混合比例那样,而是关于您的数据收集是否继续产生新状态或相同失败。

为什么计划不能按写法转移到物理手臂

随机的每时间步混合意味着在控制速率下切换控制权限,在典型的SO-100设置上每秒30次。没有远程操作界面能够安全或有意义地做到这一点。在真实硬件上,β计划让步于关于何时接管的人类决定:一个具有不同算法和不同分析的算法。

保证:对无悔在线学习的reduction

这是使论文成为其本身的举措。将每个DAgger轮视为在线学习问题中的一个示例,其中轮i处的损失是在轮i处使用的策略的状态分布下的surrogate loss。学习者在看到该损失之前提交一个策略,序列是非固定的,因为它取决于迄今为止产生的策略。

一个算法是无悔的,如果其N轮上的平均损失接近hindsight中最佳单一策略的损失。Follow-The-Leader关于强凸损失是这样的算法,平均regret以1/N的顺序缩小——重新训练关于完整聚合正好是Follow-The-Leader。任何其他无悔学习器都可以服用:分析是一个reduction,而不是一个优化器的属性。

一个引理桥接了收集数据的混合策略和将被部署的学到策略之间的差距:引理4.1将它们的状态分布之间的L1距离约束为2 T beta_i。这就是为什么betas必须衰减——虽然专家仍然拥有可观的控制权限,但你收集的状态不是你的策略会产生的状态。将引理与regret界限组合,主要结果如下:大约T次迭代后,序列中的某个策略在其自身分布下的surrogate loss在O(1/T)的epsilon_N内。将其馈送到线性界限中,您落在定理3.2处。

实证方面按当前标准是适度的。在Super Tux Kart中,监督基线没有随着更多数据的到达而改进其每圈平均摔落,DAgger在15次迭代后达到了从不摔下轨道的策略,SMILe在20次后仍每圈摔落大约两次。在手写笔记中,字符准确度运行82%不结构化,83.6%监督,85.5% DAgger。这些都不是操纵结果。

证明不承诺什么

定理陈述是条件的,条件是load-bearing。

仔细阅读DAgger保证
它给你什么
  • 在所述假设下相对于T的线性而不是二次的界限。
  • 确定性策略而不是随机混合。
  • 真实的reduction:任何无悔在线学习器都可以插入。
  • 具体的迭代计数——大约T轮之前regret项停止重要。
  • 对序列中至少一个策略的保证,因此是closing验证通过。
它不给你什么
  • 它与epsilon_N有关,hindsight中类中的最佳损失,而不是零。如果您的类无法代表专家,在实践中它是空的。
  • 它需要一个无悔方法或强凸surrogate loss——比其构建的分类reduction强——如作者所注。
  • 常数u在最坏情况下可以是O(T),线性界限随后崩溃回二次方。
  • 它约束迭代,而不是专家标签。在机器人上,标签是预算。
  • 它假设专家可以在每个访问的状态被查询并在那里正确回答。该假设是整个成本。

另一个经常被引用为反驳的结果不是。Rajaraman、Yang、Jiao和Ramachandran研究了有限状态空间S和horizon H的episodic MDPs中的模仿学习的minimax限制,并证明了一个suboptimality下界,即使学习者可以主动查询专家在访问的状态处也存在。这是在一个MDPs类固定episode预算上的最坏情况rate,它排除的想法是互动改进了minimax rate;DAgger的定理是不同的陈述,限定了相对于其自身策略类可以实现的已部署策略。

Swamy、Choudhury、Bagnell和Wu后来将这些算法按其匹配的专家行为的哪些moment进行分类,并引入了moment recoverability概念,该概念描绘了每个系列如何缓解复合误差。Osa和Celemin的调查涵盖了算法景观和人类反馈界面。

账单:标记专家从未产生的状态

上述所有内容都假设了一个可以在任何地方被查询的专家。在具有几乎免费的规划者的模拟中——Mario实验使用了具有对游戏状态完全访问的近优规划者。使用机器人上的人类,这是主要成本,是一个特殊的成本:人类必须在配置中产生正确的动作,他们自己的能力永远不会创建。

Kelly、Sidrane、Driggs-Campbell和Kochenderfer在HG-DAgger论文中直接陈述了异议。Vanilla DAgger要求专家在不完全控制系统的情况下提供动作标签。这降低了安全性,使用人类专家可能会降低收集标签的质量,他们将其归结为感知到的执行器lag。您获得回来的标签不是算法假设的标签。

Laskey和同事从另一方从另一侧使用DART攻击问题,他们的框架是直率的:在线策略技术对人类监督者繁琐,增加计算负担,可能在训练期间访问危险状态。他们的替代方案将校准的噪声注入主管自己的演示中,所以恢复在没有机器人运行不受信任的策略的情况下被演示。在MuJoCo人形上,他们报告DART减少监督员的累积奖励在训练期间5%,而DAgger执行的策略的累积奖励比监督员少80%;在与Toyota HSR集群中的抓取上,平均比行为克隆增加62%。

Zhang和Cho的SafeDAgger将对参考策略的查询视为稀缺资源:一个单独的safety策略在没有查询的情况下预测,主策略是否即将超过阈值偏离参考,只有这些状态被交付。全部三个对相同事实作出反应——DAgger分析对专家标签不收费,现实收费很多。

没有人警告你的部分

标记分布外状态比演示任务在精神上更难。正常的演示意味着执行您已经拥有的motor plan。纠正一项策略将夹爪放在您永远不会意味着在现场制作恢复,在时间压力下,机器人仍然移动。预期每个会议中可用的少于纯粹记录会议的分钟数,并观察您自己的更正质量在一个过程中衰减。

LeRobot数据集结构显示episode、frame和存储在磁盘上的每帧列
更正只有在干预frame被标记后才成为数据集——在LeRobot格式中,一个每帧列与观察和动作一起。

这对您桌上的SO-100意味着什么

将horizon翻译成您自己的单位。每秒30帧的20秒episode是600个决策步骤,上述所有界限中的T是该数字。在T = 600处,以T和以T平方缩放的术语之间的差异是策略从不良接近恢复的策略和不恢复的策略之间的差异。

这是action chunking有帮助的部分原因:当一项策略每个推理步骤发出短动作序列时,决策点数下降,所以复合的机会。Zhao、Kumar、Levine和Finn命名复合误差作为动作分块变压器的动机,并报告了六项困难真实世界任务上的80到90%成功,在低成本双手臂硬件上,来自10分钟价值的演示。分块不会删除协变量转移——状态仍然是策略自己的——但它缩短了有效horizon。查看action chunkingSO-100模仿学习指南

第二种翻译是进度metric。您无法直接在策略自身分布下测量epsilon——这需要为每个访问的状态提供真实专家行动,即您试图避免生成的事情。人类门控循环给您的是干预率:human在运行中接管的frame分数。这是一个proxy,它因与策略无关的原因而移动——耐心的操作员干预较少。一贯使用,它是唯一的一个数字,说明一个轮是否值得下午。

第三种翻译是一个数据质量警告,分析不涵盖。Mandlekar和同事研究了六个离线学习算法在五个模拟和三个真实世界多阶段操纵任务上,并报告了对算法设计选择的敏感性、对演示质量的依赖,以及由停止标准导致的变异性。Belkhale、Cui和Sadigh辩称数据集质量应该通过动作分异和转移多样性形式化,并指出state多样性并不总是有益的。一个DAgger轮添加没有人故意选择的状态:一些是您需要的恢复数据,一些是机器人在您摸索接管控制时挥动。

机械上一轮是六个步骤:运行推理并录制开启,在策略不当行为时接管,审核运行和文件每个episode,同步更正,从原件加更正组成混合数据集,每个源明确进行episode选择,然后从以前的checkpoint继续训练而不是基础模型。在ay-robots那些步骤存在作为按钮,这消除了管道但不是判断。两个注意事项:从checkpoint继续初始化权重,而不是优化器resume,leader-arm对齐移动仍然在硬件上轻度测试。查看trainingdatasets

DAgger循环,已经接线

在实时推理运行期间接管,每帧干预标记,将episode归档为更正或评估,使用来自源的explicit episode选择组成混合数据集,以及从现有checkpoint继续训练都内置。您仍然决定何时接管和保留什么——那部分不会自动化。

查看DAgger循环如何工作

家族树,在一个表中

方法谁选择状态专家提供什么主要成本
行为克隆专家清晰的演示没有恢复数据;错误可以以T的二次方复合
前向训练学习者,每个时间步诱导分布标签T个单独的策略;对于长horizon不可用
SMILe / SEARN专家和学习者的随机混合混合的分布标签混合的分量质量不同
DAgger混合策略,β衰减为零每个访问的状态的正确动作标记专家永远不会产生的状态,同时不控制
DART专家,由注入的噪声扰动校准噪声下的演示噪声必须校准为学习者的错误
HG-DAgger学习者,直到human接管仅在人类门控段中更正取决于human关于何时干预的判断
SafeDAgger学习者,由safety门控过滤仅当门控询问时标签门控本身必须被训练和信任

常见问题

我真的会在我的机器人上观察到二次误差增长吗?

不作为一条干净的曲线。界限是最坏情况:以某些问题达到它的意义上紧,不是你的会。你看到的是结果——一个在保留frame上得分很好的策略,在真实任务上失败,当你录制更多相同的东西时不改进。如果更多干净的数据停止帮助,那就是协变量转移,而不是数据体积问题。

我必须实现β混合来称其为DAgger吗?

无参数版本——第一轮的专家,之后纯学习者——是一个合法的特殊情况,通常在原始实验中表现最好。你不能丢弃的是聚合:仅在最新的更正上重新训练打破了Follow-The-Leader解释,这是无悔论证的来源。仅针对更正进行训练是一个更弱的程序。

为什么返回验证集上的最佳策略而不是最后一个?

因为定理保证一个好策略存在序列中的某处,不是它是最终迭代——界限是序列上的最小值。运送最后一轮出来的任何东西都会丢弃陈述结果的条件,最后一轮不可靠地最好。

我应该计划多少轮?

理论想要T量级的迭代,对于600步episode不是任何人在硬件上运行的数字。原始实验在每个基准上运行20次迭代。在实践中,您运行轮直到干预率停止下降,远低于分析假设的计数——理论和实践之间的真实差距。

如果我的策略类根本无法代表专家怎么办?

那么DAgger不会拯救你,界限这样说——它与epsilon_N有关,类中的最佳损失。如果这是大的,因为架构错误、缺少观察或无法看到场景的摄像头,聚合给你一个在无法完成任务的类中最优的策略。在收集更正前针对保留episode运行开环重放。

从这里去哪里

如果您还没有训练一项策略,这个理论是过早的:首先录制一个数据集,从训练您的第一个策略桌面客户端开始。如果您在另外一百次干净演示和开始更正之间权衡:干净演示不会解决分布问题。对于机制,继续人类门控变体然后SO-100漫游.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started