模仿学习(Imitation Learning)是一类让智能体直接向专家示范学习的方法:给大量“当时状态→专家动作”的样本,学一个策略,遇到类似状态就模仿专家。它不设计奖励函数(reward function),不靠试错打分,而是把专家轨迹当成标准答案。
打个比方。学开车,教练坐旁边。数据是(车速、车道位置、前车距离)对应(方向盘角度、油门、刹车)。最直接的做法叫行为克隆(Behavior Cloning):把它当监督学习,输入路况,输出动作。训练时,模型看到的是教练开出来的“专家状态分布”。
问题也在这里。上车后,方向盘由模型自己控制。模型只要有一点小误差,车就会偏离专家轨迹,进入训练数据里很少见的状态。比如专家一直开在车道中间,模型从没学过“已经偏左 30 厘米该怎么回正”。一旦偏了,它可能继续左打,越偏越不会,越不会越偏。这就是分布漂移(distribution shift),误差会在时间步上复合(compounding error)。步数越多,累积越明显。
| 维度 | 模仿学习 | 强化学习 |
|---|---|---|
| 学习信号 | 专家示范 | 奖励函数 |
| 数据来源 | 专家轨迹 | 自己与环境交互 |
| 主要难点 | 分布漂移、误差累积 | 探索、稀疏奖励 |
| 部署时状态 | 策略自己产生 | 策略自己产生 |
和监督学习相比:监督学习默认训练和测试样本同分布;模仿学习测试时的状态是模型自己“走”出来的,会不断变化。和强化学习相比:强化学习用奖励函数试错,模仿学习直接抄专家;但抄得对不对,要看它偏离后能不能恢复。
对从业者,别只收集专家正常操作,要收集“纠错恢复”的片段;可以用让专家标注模型自己走到状态的方式迭代,或加入噪声、多策略数据。评估要看闭环跑起来的结果,而不是离线动作误差。对普通人,带新人、做培训、写 SOP 也一样:标准流程只覆盖正常路径,真正难的是“偏了怎么拉回来”。具体算法实现细节以官方文档和相关论文为准。
