DAgger(数据集聚合)
定义
DAgger(数据集聚合)是由Stephane Ross、Geoffrey Gordon和Drew Bagnell在2011年提出的迭代算法,用于解决行为克隆中的根本问题:分布偏移。在标准行为克隆中,策略在专家演示的状态上进行训练。但在部署时,策略会犯小错误,将其推入专家从未访问过的状态。这些错误会随时间复合,导致策略偏离专家行为越来越远,通常导致灾难性失败。
DAgger通过在策略推出和专家纠正之间迭代来解决这个问题。在初始行为克隆后,学习的策略在环境中执行(推出)。策略访问的状态——包括由其错误引起的新的、分布外的状态——被记录并发送给专家,由专家用正确的动作进行标记。这些新的(状态,动作)对被添加到训练数据集中,策略在聚合数据上重新训练。经过多次迭代,策略学会从自己的错误中恢复,因为它已经在实际遇到的状态上进行了明确的训练。
DAgger的理论贡献是一个遗憾界,其随时间范围T线性缩放,相比之下朴素行为克隆的二次T²缩放。这使DAgger成为第一个在顺序决策设置下具有无遗憾保证的模仿学习算法。
工作原理
DAgger算法分轮进行:
第1轮:从专家收集初始演示。通过该数据集D₁上的行为克隆训练策略π₁。
第n轮(n≥2):在环境中推出当前策略πₙ₋₁,记录策略访问的状态s₁、s₂、...、sₜ。查询专家在每个状态下的最优动作a*。将新的(s,a*)对添加到数据集:Dₙ = Dₙ₋₁ ∪ {(sₜ, a*ₜ)}。在Dₙ上重新训练策略以获得πₙ。
在实践中,混合参数β在推出期间混合专家的动作和策略的动作。在早期轮次中,β较高(主要是专家控制,为了安全)。在后期轮次中,β降低,使策略越来越自主,并遇到自己的状态分布。专家只需要用正确的动作标记状态——他们不需要实时控制机器人,尽管存在实时干预变体。
关键变体
- SafeDAgger(Zhang & Cho,2017)——添加一个安全策略,当学习策略的不确定性超过阈值时接管。这防止机器人在推出期间进入危险状态,使DAgger在现实世界部署中实用,其中碰撞成本高昂。
- EnsembleDAgger(Laskey等,2017)——使用策略集合来估计不确定性。仅当集合成员不同意时才请求专家干预,减少每轮所需的专家查询数量。
- HG-DAgger(Kelly等,2019)——人工门控DAgger允许人类专家在他们判断机器人即将失败时进行干预,而不是标记每个状态。干预情节被添加到训练集中。这对人类操作员更自然,需要更少的专家时间。
- ThriftyDAgger(Hoque等,2021)——通过训练一个次级模型来学习何时寻求帮助,该模型预测当前状态是否需要专家干预。在保持安全的同时最小化专家负担。
- DAgger + ACT——将DAgger与Action Chunking with Transformers结合。ACT策略被部署,失败状态被记录,人类提供纠正演示。这种混合方法在现实世界操纵任务中越来越受欢迎。
与替代方案的比较
DAgger与行为克隆:行为克隆在专家数据上训练一次并部署。DAgger迭代:部署、收集纠正、重新训练。BC更简单更快,但在长期任务上失败,其中复合误差占主导。DAgger更稳健,但需要持续的专家可用性。
DAgger与强化学习:RL通过带有奖励信号的试错发现最优行为。DAgger使用专家直接提供正确的动作,这样样本效率更高,但需要人在循环中。RL可以超越专家性能;DAgger受专家质量限制。
DAgger与逆强化学习(IRL):IRL从演示推断奖励函数,然后优化策略以最大化该奖励。DAgger直接在(状态,动作)对上训练策略,无需推断奖励。DAgger更简单更直接,但不产生可转移的奖励函数。
实际挑战
专家可用性:DAgger要求专家在每个迭代轮次中可用。对于机器人操纵,这意味着人类操作员待命以通过遥操作提供纠正。这是最大的实际障碍——专家时间昂贵且难以安排。
推出期间的安全性:在真实硬件上部署不完美的策略存在损坏机器人、环境或附近人员的风险。SafeDAgger和HG-DAgger解决了这个问题,但增加了复杂性。许多团队首先在模拟中运行DAgger,然后在最后几轮转移到真实硬件。
标记难度:专家必须为策略访问的状态提供正确的动作,包括专家自己永远不会到达的状态。为"你如何从这个不寻常的位置恢复"标记动作比演示正常任务执行更困难。
收敛:在实践中,3-10个DAgger轮次对大多数操纵任务足够。每轮添加10-50个纠正演示。总专家时间通常是纯行为克隆的2-4倍,但生成的策略显著更稳健。
理论基础
DAgger的关键理论结果是其无遗憾保证。将策略的遗憾定义为其预期成本与专家在长度为T的轨迹上的预期成本之间的差异。对于朴素行为克隆,遗憾缩放为O(T²),因为复合误差以二次方式累积。DAgger通过在策略自己的状态分布上训练将其减少到O(T)。
形式上,DAgger将模仿学习问题简化为在线学习。在每个轮次n,学习者从假设类中选择一个策略,环境揭示该策略在当前混合分布下的损失。聚合数据集收敛到策略的平稳分布,确保训练分布与测试时分布渐近匹配。经过N轮后,事后最佳策略满足:平均成本≤类内最小成本 + O(1/√N)。
这个理论框架推广到结构化预测问题(例如机器翻译、语音识别),使DAgger在机器人学之外具有影响力。实际含义:有足够的DAgger轮次,学习的策略可证明收敛到模型类可表示的最佳策略,无论初始行为克隆质量如何。
DAgger在现代机器人工作流中
虽然DAgger在2011年被引入,其原理仍然是现代机器人学习工作流的核心,通常隐含地实现而不是作为正式算法:
迭代数据收集:许多团队遵循类似DAgger的工作流,但不将其命名为这样。他们收集初始演示、训练策略、观察失败情况、收集覆盖这些失败情况的有针对性的演示,并重新训练。这个"修复失败"循环是DAgger的核心见解的非正式应用。
与纠正的共同训练:在生产遥操作系统中,操作员监控自主策略并在其即将失败时进行干预。这些干预情节自动添加到训练集中。这本质上是HG-DAgger在实践中的应用,也是许多已部署机器人系统持续改进的方式。
用于数据效率的主动学习:DAgger的在策略不确定的地方收集数据的原理推广到主动学习策略。现代实现使用集合分歧或学习的不确定性估计器来决定何时请求专家演示,最小化所需的演示总数。
在RCSV,我们的遥操作基础设施支持DAgger风格的工作流,训练有素的操作员可用于纠正演示。我们的数据平台跟踪哪些演示是初始收集与DAgger纠正,能够分析轮次间的学习曲线和数据效率。
在RCSV运行DAgger
Robotics Center of Silicon Valley提供完整的DAgger管道:通过遥操作进行初始数据收集、在GPU工作站上进行策略训练、用于策略评估的真实机器人推出单元,以及训练有素的操作员可用于多个DAgger轮次的纠正演示。
探索数据服务 联系我们







