Concept

DAgger

Dataset Aggregation:让 learner 自己 rollout,再由专家在这些状态上重新标注动作,把训练分布拉回 learner 真正会访问的状态。

Dataset Aggregationdagger

DAgger (Dataset Aggregation) 改的不是 loss,而是数据采集方式。它反复执行:learner rollout → 收集访问到的状态 → 专家在这些状态上标注正确动作 → 并入数据集重新训练。

因此它训练的是:

(s∼dπθ, aE=πE(s))(s\sim d_{\pi_\theta},\ a^E=\pi_E(s))

而 BC 训练的是 (s∼dπE, aE)(s\sim d_{\pi_E},\ a^E)。两者的损失函数可以完全相同。

代价是必须能在训练循环里反复请求专家。具身系统里的 human intervention、corrective demonstration、failure recovery、online correction 都带有这一结构。

关键洞察

DAgger 的核心不是「采更多专家数据」,而是让专家专门覆盖 learner 自己暴露出来的盲区,因此数据 集里会第一次出现 recovery behavior。