Home / 机器人学习 / 一次示范模仿:学习如何使用新示范

019|一次示范模仿:学习如何使用新示范

系列首页 · 上一篇 · 下一篇

原论文:One-Shot Imitation Learning,Yan Duan 等,2017。原文。

先接住前作的问题

DAgger能在学习者访问的状态提供动作纠正,但没有单独定义怎样从一条新任务示范读出任务。One-shot模仿把示范当上下文,用大量相关任务训练任务推断;DAgger可参与聚合标签,却不是一条示范就学会控制的证明。

五个前置概念

五个概念分别是:元学习在任务分布上学习快速适应;条件策略把任务上下文作为输入;组合泛化把已学元素组成新任务;软注意力加权读取相关信息;DAgger在学习者访问状态上追加专家动作标签。

一、问题设定:怎样从一条新示范识别已学技能的组合

这里的 one-shot 不是从零开始只看一条示范就学会机器人控制。模型先在大量相关任务上学习“如何利用示范”,遇到新任务时,再把一条示范当作上下文,直接输出适合当前状态的动作。

策略记为 πθ(a∣o,d)\pi_\theta(a|o,d):oo 是当前观测,dd 是固定参考示范,aa 是动作。示范来自同一任务的另一初始配置,所以策略不能简单按时间复制绝对运动轨迹。

论文积木观测由各块相对夹爪的位置和夹爪状态组成。它不是直接观看人类视频后输出力矩;论文结尾仍把图像示范作为未来方向。状态中的对象对应关系与位置可获得,是重要前提。

本文主要比较行为克隆与 DAgger,不学习显式任务奖励或动力学。任务完成指标用于评估,成功示范用于训练。一次适应通过前向计算完成,不能与需要几次梯度更新的元学习方法混为一谈。

二、让示范注意力与状态控制共同训练

以搭积木为例,模型早已学过抓起、放下以及不同堆叠组合。新示范告诉它这次要把哪些块放到哪些块上,而不是重新教授电机控制。核心是把任务推断与操作执行组合起来。

训练时抽一个任务,选一条示范作为上下文,再从该任务的另一条执行中取状态动作对。离散动作可写为:

L(θ)=−Et,d,(o,a)∼D(t)[log⁡πθ(a∣o,d)].L(\theta)=- \mathbb E_{t,d,(o,a)\sim D(t)} [\log\pi_\theta(a|o,d)].

tt 是任务索引,D(t)D(t) 是任务数据。连续动作可采用平方误差。这个目标迫使策略结合当前情况理解示范,而非背诵同一条轨迹的下一帧。

若始终用一条轨迹同时作为上下文与预测目标,模型可能利用时间或状态匹配捷径。跨初始配置配对能减轻这种问题,但真正的组合泛化还要把完整任务留作测试,不能仅随机拆散同任务的帧。

三个模块如何分工

示范网络把长轨迹编码为保留时间和对象结构的表示。它使用时间卷积与邻域注意力,让对象间关系参与编码,而不是过早把全部内容压成一个向量。

上下文网络根据当前状态,先关注示范的相关阶段,再关注当前场景中的相关物体。对于一次堆叠,最重要的通常是源块与目标块。注意力允许物体数量变化,但最终提取固定维度的操作上下文。

操作网络读取上下文,给出当前动作。它可重用同一种“把源块放到目标块上”的局部能力。作者没有强行监督注意力必须对应源块和目标块,而是通过可视化提出这种解释。

软注意力的教学式为:

ei=v⊤tanh⁡(q+ci),αi=exp⁡(ei)∑jexp⁡(ej),z=∑iαimi.e_i=v^\top\tanh(q+c_i),\quad \alpha_i=\frac{\exp(e_i)}{\sum_j\exp(e_j)},\quad z=\sum_i\alpha_i m_i.

qq 是查询,cic_i 是用于匹配的上下文,mim_i 是被读取的内容。归一化权重使输入对象数可变,但如果多个相关对象被平均混在一起,位置信息仍可能模糊。因此模型使用多头与分层注意力,而非期待一个平均向量解释所有任务。

时间 dropout 与关键帧

长示范可达数百至数千步。原文训练随机丢弃95%的时刻,使序列缩短约20倍。这既节省计算,也增加时间采样变化;测试可对不同下采样版本集成。

这不是说95%的帧永远没有信息。稀有接触或快速事件可能被丢失,方法成功依赖任务阶段具有冗余时间结构。若应用到高速捕捉或精细接触,应该重新检验采样策略。

时间dropout还有一个可计算的失败概率。若决定任务顺序的事件只占 kk 帧,每帧独立保留概率为0.05,那么整次下采样漏掉事件的概率为 0.95k0.95^k:只持续1帧时为95%,持续20帧时仍约35.8%。这是基于独立保留的教学近似,不是作者测得的事件漏检率。

原文评估对多个下采样示范作集成,因此“只看一条示范”并不等于只做一次编码。其BC与DAgger接近的结果也伴随数据收集时的噪声注入,不能当作干净专家数据下DAgger没有价值的普遍结论。把示范条数、采样视图数与专家交互量分别记账,才看得清样本效率。原文§4.1与§5.1

一个自构例子

未运行的例子:示范把 A 放在 B 上,再把 C 放在 D 上。部署时四个块初始位置交换,策略不能照搬示范里的向左移动,而需从关系中识别“源 A、目标 B”,读取它们现在的位置。

当第一座塔已经搭好,上下文网络应转向第二阶段。若只给最终两座塔的状态,目标仍清楚,但策略要自行决定顺序;完整过程减少了这种计算负担。这个例子说明额外信息可以方便优化,即使它在信息论上不是唯一确定目标所必需的。

三、配对同任务示范与执行轨迹训练上下文策略

一条轨迹提供任务上下文,另一条提供该任务的动作监督;训练必须避免只记住同一次演示的时间表。时间dropout和对象注意力各自帮助读取不同信息。

元训练:
    采样一个训练任务
    抽参考示范,并随机丢弃部分时刻
    从同任务其他轨迹抽状态动作监督
    编码示范中的时间和对象关系
    用当前状态查询相关阶段与相关物体
    预测动作,以监督损失更新参数
    可选:执行策略,查询专家并追加 DAgger 标签
新任务:
    固定参数,输入一条新示范
    每步读取当前状态,重新查询示范上下文
    输出动作并执行,直到任务结束

这段伪代码把元训练与适应分开,避免把“测试一条示范”误报成“训练只有一条示范”。

四、分开验证新布局、新组合与训练任务量

作者提出带时间和对象注意力的示范条件策略,实验支持积木任务族中的组合泛化。

原图怎么读: 图4,PDF第8页。图中只展示每类注意力的一个查询头;高权重区域对应所看对象或示范时间段。局部热图能提示分段行为,却不能单独证明某个位置对动作有因果作用。

One-Shot Imitation Learning,图4:两张热图分别对齐当前物块和下采样示范的时间步,深色注意力的转移提供执行过程的可视化。
原图摘引:Yan Duan 等,2017,PDF第8页,图4。核对原文。两张热图分别对齐当前物块和下采样示范的时间步,深色注意力的转移提供执行过程的可视化。原引用入口

结果图怎么读: 内嵌图3把训练任务与未见任务分成左右两组,横轴是需要完成的阶段数,纵轴是平均成功率。难度增加时各方法都下降;完整示范、最终状态与带阶段提示的snapshot拥有不同条件信息,不能只用最深色的脚本专家柱当成可学习策略的成绩。

One-Shot Imitation Learning,图3:内嵌图3把训练任务与未见任务分成左右两组,横轴是需要完成的阶段数,纵轴是平均成功率。难度增加时各方法都下降;完整示范、最终状态与带阶段提示的snapshot拥有不同条件信息,不能只用最深色的脚本专家柱当成可学习策略的成绩。
实验图原图摘引:Yan Duan 等,2017,PDF第7页,图3。核对原文。原版权保留。
项目 原文设置与含义
主任务 Fetch积木堆叠任务族,2–10块,目标由塔的组合指定
数据 140个训练任务、43个测试任务;每训练任务1000条轨迹
专家 带噪声的硬编码策略,困难任务上也可能失败
条件对照 完整示范、最终状态、每阶段末帧snapshot
训练对照 同架构行为克隆与DAgger
评估 每任务100种初始配置,条件示范未见;按阶段数分组
推理预算 使用时间dropout的模型对10个下采样示范集成,再取贪心动作
数据范围 结构化状态任务,不能作为原始视觉真机系统证据
统计边界 配置重复反映测试情形,不等于100个独立训练种子

snapshot 对照获得了阶段分割信息,作者明确认为它有额外优势。完整示范与最终状态的差异,则在检验“过程是否能降低任务求解难度”,而非简单检验最终状态是否含有目标信息。

论文的主实验应按结构化积木控制基准理解;本文不把具身平台名称等同于已验证端到端真机部署。具体代码执行与硬件复现未在这里独立完成。

证据与值得保留的反例

以下定位依据原始 PDF。

位置 观察 支持与边界
图1、第3.3节 同任务示范配对训练 说明一条示范适应来自多任务训练
图2、第4节 三模块与双层注意力 结构为可变对象和长序列提供归纳偏置
图3 阶段越多,完整示范相对最终状态更有帮助 支持过程信息价值,不能推出所有任务必须完整视频
图4 注意力集中于少数物体与阶段 支持可解释直觉,不是因果证明
附录A粒子到达 只用最终状态也能很好泛化 说明过程上下文的价值具有任务依赖性

One-Shot Imitation Learning,图1:(a)为每任务独立训练,(b)是用一条示范指定任务,(c)是跨任务训练一次性模仿器。
原图摘引:Yan Duan 等,2017,PDF第2页,图1。核对原文。(a)为每任务独立训练,(b)是用一条示范指定任务,(c)是跨任务训练一次性模仿器。原引用入口
One-Shot Imitation Learning,图2:示范网络生成上下文,操作网络结合当前状态产生动作;注意力使策略在示范时间与物块之间选择信息。
原图摘引:Yan Duan 等,2017,PDF第5页,图2。核对原文。示范网络生成上下文,操作网络结合当前状态产生动作;注意力使策略在示范时间与物块之间选择信息。原引用入口

主文没有为图3各柱提供在该段落可直接核实的全部精确数值,因此这里不估读小数点数据。已明确的140、43、1000与100分别对应任务数、数据量与评估配置,应保持各自单位。

行为克隆与 DAgger 在本文设置表现接近,也是重要结果。数据采集注入噪声扩大了恢复状态覆盖,可能帮助BC。作者把它作为解释,不能据此宣布 DAgger 没有价值,或所有离线示范都自然具备这种覆盖。

五、结构化输入和共享技能限定单样本适应

限制来自任务族共享结构:所有任务主要由重复堆叠组成,局部操作规律高度一致。对一条同时包含拧螺丝、折布和倒水的陌生示范,模型未必有对应基本技能。新排列与新技能是不同泛化维度。

结构化对象观测也隐藏了真实机器人最困难的部分之一:对象跟踪、身份一致性和遮挡。若感知把两个块身份交换,注意力可以非常自信地执行错误关系。这是系统分析,不是论文已测出的某个失败率。

追问:若把示范中无关停顿删除后动作改变,应怎样解释?

参考答案:模型可能依赖轨迹时间结构,而非只读取任务目标;但停顿也可能携带阶段边界,所以不能直接判定失败。可保留关键事件顺序,只改变冗余重复帧与停顿长度,观察任务选择和执行是否稳定,并与时间dropout训练对照。这个测试检查上下文读取的依赖,不把注意力图当作因果证据。

六、沿机制关系继续读

与DAgger是模块组合:任务条件策略可采用交互式聚合训练;与VIMA是教学联系,二者都用上下文指定任务,但结构化对象示范与多模态提示的输入语义和泛化设置不同。

七、自测三题与参考答案

问题1:one-shot是否意味着只需要一条数据?

答案:仅指新任务条件示范为一条。模型先在140个训练任务及每任务大量轨迹上学会模仿机制,不能省略这笔元训练成本。

问题2:最终状态已完整定义目标,完整轨迹为何仍可能有益?

答案:定义目标不等于容易求解。轨迹提供中间阶段和顺序,减少策略从目标反推过程的负担。对简单到达任务,最终状态可能已经足够;对多阶段堆叠,过程更有帮助。

问题3:注意力热图对准源块,能否证明模型用源块位置决定动作?

答案:只能提供线索。要验证因果作用,可交换相关块位置、屏蔽对应注意力或干预上下文,检查动作是否按预测变化。热图本身不是机制完整证明。