小样本学习&元学习经典论文整理||持续更新

核心思想

  经过多篇文章的铺垫,小样本模仿学习终于走到了最后一步,通过观察一次人类完成某个新任务的示教动作,机器人就可以学会该任务。完成这一艰巨的任务面临两大困难:人类示教动作相比于机器人存在外表和形态学上的变化,即存在一致性问题;其次,从原始的视觉输入中学习需要依赖大量的数据,通常需要用成千上万张图像进行训练。而本文采取了一种领域自适应的元学习算法(Domain-Adaptive Meta-Learning)解决了这两大难题。
  作者首先还是回顾了一下MAML算法,并且将内层次训练的损失函数成为自适应目标(Adaptation Objective),将外层次训练的目标成为元目标(Meta-Objective)。从人类动作视频中学习的问题可以看做一个推断的问题,目的就是利用人类示教动作中的线索信息推断出完成任务 T i T_i Ti应采取的策略参数 ϕ T i \phi_{T_i} ϕTi。在过去的模仿学习方法中需要认真编码大量的先验知识,如预先设定的视觉系统,预先选定的人类目标和已知的动态模型等。而这种方法只能针对特定的任务,而且费时费力。本文选择直接从人类和机器人的示教动作中自动地学习到这些先验知识。将示教动作分为两类:人类示教动作 d h d^h dh包含一系列观察到的图像,和机器人示教动作 d r d^r dr不仅包含一系列的图像而且还有每个时刻对应的机器人状态state和动作action。因为人类示教动作不包含对应的动作信息(这里指机器人完成该动作应采取的动作指令),因此不能采用简单的监督训练方式。在上一篇文章中,作者提出了一种双头结构可在无示教动作的条件下完成模仿学习,这里正好可以利用这一点。作者将人类示教动作用于内层次训练过程,也就是上文说到的自适应目标,而相同任务中的机器人示教动作用于外层次训练过程,也就是元目标。上篇文章中介绍过,为解决无示教动作的学习问题,作者利用pre-update head 去学习一种损失函数,可以实现只观察示教图像序列,就能输出对应的梯度信息来帮助策略网络的参数进行更新。本文依旧延续了这一思想,但不同的是从人类动作视频中学习,必须有效地捕捉视频中相关联的信息,要同时观察多帧图像,原来简单的线性组合的方式并不能满足这一需求,因此作者提出一种采用时间卷积(Temporal Convolution)的pre-update head结构,如下图所示。

  动作视频序列经过策略网络(Policy Architecture, 下文将介绍)后转变成多个一维的特征向量,经过三层时间卷积后再求L2范数的平方得到自适应目标损失 L ψ L_{\psi} Lψ。对于外层次训练过程,即元目标而言,机器人的示教图像和对应的状态与动作都是具备的,因此可以采用简单的行为克隆(Behavior Cloning)损失来进行监督,损失函数如下:

整个任务的训练目标为

  在元训练过程中对于每个任务先利用人类动作视频进行内层次训练,并由自适应目标损失 L ψ L_{\psi} Lψ更新得到任务 T T T对应的策略网络中的参数 ϕ T \phi_T ϕT,然后再由机器人动作视频进行外层次训练,利用行为克隆损失 L B C L_{BC} LBC在进一步更新策略网络中的参数 θ \theta θ和自适应目标损失函数中的参数 ψ \psi ψ。在元测试过程中,只需输入一个人类动作视频序列,就能由 L ψ L_{\psi} Lψ输出梯度信息对策略网络进行微调,以满足新的任务要求。

实现过程

网络结构


  上文提到的策略网络的结构如图所示,人类示教动作视频和机器人示教动作视频输入到一个由多个卷积层构成的特征提取网络之中(两者不是同时输入的!在内训练阶段输入人类动作,外训练阶段输入机器人动作),然后经过一个空间softmax函数转为一维的特征向量 f f f,并与机器人配置信息(夹具上3个非轴向点的三维位置)级联起来,经过三个全连接层后得到隐藏层的输出向量 h h h,此时网络分成两个支路,一个 h h h与前面提取的特征向量 f f f在此级联起来,经过三层时间卷积和范数计算(前面介绍的pre-update head)得到自适应目标损失 L ψ L_{\psi} Lψ;另一个 h h h经过一个全连接层后输出预测的动作指令,在外训练过程中计算克隆损失 L B C L_{BC} LBC。除此之外,可以看到本文利用特征向量 f f f预测了在接触到目标对象或容器时夹具的位姿,并对此进行监督(只在外训练过程中进行)。

损失函数

  内训练过程损失函数 L ψ L_{\psi} Lψ由学习得到,外训练过程 L B C L_{BC} LBC对于连续动作采用混合密度网络(MDN)表示输出动作的分布,对于离散动作(如夹具的开或关)采用sigmoid层输出和交叉熵损失函数。对于接触到目标对象或容器时夹具的位姿的监督训练采用平方差损失函数。

训练策略

  上文已介绍过,分成内外训练两个阶段,并在多个任务中进行反复迭代训练,卷积神经网络在ImageNet数据集上做了预训练。

网络推广

  根据作者的试验该算法能在不同的背景环境,不同的人类示教者,不同的机器人上实现模仿学习的一眼学习,具有强大的适应能力和鲁棒性。

创新点

  • 实现了通过观察人类动作视频完成模仿学习的一眼学习的任务
  • 利用时间卷积实现自适应目标损失函数的学习,使得网络能够同时捕捉多帧人类动作图像信息
  • 对夹具位姿进行了额外的监督

算法评价

  经过两年多时间的研究,该团队终于实现了对于人类示教动作的模仿学习,整个过程也展现出清晰的研究脉络:先提出一种不受模型限制的小样本元学习算法MAML为后续的研究奠定了基础,然后实现了在输入示教动作信息(物体的三维坐标和机器人的状态)的条件下实现少样本模仿学习任务,接着实现了通过观察机器人示教动作视频完成模仿学习任务,最后实现了对于人类示教动作的模仿学习。中间关于策略网络的结构和梯度的传递也做了非常详实的研究,发表了一系列的文章,这展示了一个强大团队的团队协作能力和执行能力。回到本文,该算法利用领域自适应元学习算法实现了在不同环境下,不同任务中的一眼模仿学习,具有较强的实际应用价值和研究价值。作者也指出该算法目前只能对与训练任务比较接近的任务进行一眼学习,并且训练过程还是需要大量的示教动作,因此未来作者希望能够设计出一种通用性机器人,能够对更大范围内的任务进行快速的一眼学习。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。