主题
模仿学习演示:行为克隆的累积误差与 DAgger 修正
设定
小车以恒定速度前进,动作是转向角
内置专家是一个“纯跟踪”(pure pursuit)控制器:始终瞄准中心线前方 0.5 处的点。它在任何状态下都知道该怎么转,所以既可以录制演示,也可以充当 DAgger 中的标注员。
行为克隆与 DAgger
行为克隆把模仿当作监督学习:
DAgger(Ross et al., 2011)的做法:
- 用当前数据集训练学生
; - 让
自己去跑,记录它访问的状态; - 请专家为这些状态标注动作,加入数据集;
- 重复。
可以试试
- 录制专家演示后多点几次“行为克隆:测试”:大多数时候学生会在某个弯道冲出去,冲出前的轨迹往往是慢慢偏离、越偏越远。
- 点“DAgger 迭代一轮”两三次:散点图中出现大量蓝色的“偏离中心”的样本,学生开始能稳定跑完一圈。
- 把执行噪声调成 0:行为克隆也能跑完——误差累积需要“扰动”作为起点。
- 自己开一圈再训练:人的演示通常比专家“抖”,反而覆盖了更多偏离状态,但动作标签也更嘈杂。