智能机器人的核心目标是实现机器人的类人智能水平学习能力,当前机器人的学习方法针对精确、重复性的任务已经能够胜任,但很多时候还不能够灵活地为新任务进行自我调整,例如模仿学习、强化学习已经成功应用于机器人抓取[1]、装配[2]等任务,但仍存在须要大量数据训练、相似任务场景须重复训练、不能积累经验指导新任务实现快速学习等问题.人类能够从少量的样本中进行学习,通过学习和记忆方式完成复杂多样的任务,利用以往的经验知识,通过少量的训练快速掌握技能完成学习任务.如何利用已学知识解决新任务,适应新的任务目标和初始条件是机器人研究领域的挑战性问题[3].元学习是以一种系统的、数据驱动的方式从以前的经验中学习的方法,在机器人导航问题[4]、分类问题[5]、自然语言处理[6]等领域均有应用.当前在元学习机械臂技能学习领域,文献[7]中使机器人在学习各种任务后形成一个核心指导网络,面对新任务时利用核心指导网络来加速学习;文献[8]提出了适用于元学习算法的记忆权重整合项,将其与元模仿学习算法相结合搭建了学习模型,并通过分类实验验证了其方法的有效性;文献[9]提出了一种元学习框架下的分层模仿学习,根据人类演示视频和其他目标子任务的示例,完成多步骤视觉任务.上述元学习方法通过训练学习后,未将任务相关的技能经验存储复用,在少样本跨任务学习时的成功率较低.而从训练任务的元数据中学习元知识,以类人记忆的形式存储经验指导新任务学习,可为解决该问题提供一种途径.情景记忆来源于哺乳动物的海马体与内嗅皮层[10],其存储的经验信息主要反映时空中经历的情景和事件,其也是人类能够实现快速学习的重要原因之一[11].当前对情景记忆的机器人应用研究主要为采用感知和行为参数建模事件形成情景记忆[12],多为面向机器人仿真环境或示教任务复现.文献[13]提出了一种带有记忆增强神经网络的元学习算法,采用显示的外部记忆模块保留样本特征信息,并利用元学习算法优化神经图灵机的读取和写入过程,最终实现小样本图片分类;文献[14]提出了一种结合记忆的视觉-记忆的室内导航元学习方法,采用多模态信息聚合,记忆短期甚至长期的记忆,提高了机器人对环境的理解能力.虽然已有结合记忆模块的元学习方法,但大多应用在图片分类和导航等任务的学习,在机器人的技能学习方面的研究较少.通过在学习中建立事件与技能的联系,利用记忆模块存储经验知识,可在机器人面对新任务时指导机器人技能学习,实现技能的复用.本研究从提高机器人在少样本跨任务的学习能力角度出发,提出一种结合情景记忆的元学习机器人技能学习模型.首先,在学习过程中通过元学习方法对任务进行学习,并将场景观测值和训练得到的网络权重等作为经验信息存储到情景记忆模型中;其次,通过余弦距离度量情景间的相似性,进行记忆匹配读取,采用LURA算法对记忆进行写入更新;最后,结合机器人感知规划模块的感知环境、目标检测、路径规划能力,与目标对象进行交互,完成任务.1 引入情景记忆的元学习模型框架本研究提出的学习框架主要包含三个模块:感知规划模块,元学习系统模块,情景记忆模块,如图1所示.10.13245/j.hust.211211.F001图1引入情景记忆的元学习框架感知规划模块包括三个组成部分,分别通过构建机器人世界坐标系实现物体的定位,通过目标检测实现物体的识别,通过机械臂路径规划算法实现机械臂的路径规划.该模块一方面将感知信息传入到元学习网络,对网络进行训练,另一方面通过任务编码器将事件感知信息编码存储到对应的情景记忆中.元学习系统针对技能学习目标设置任务训练集,对模型进行训练,针对每个任务元学习器在低层次上学习当前任务,掌握当前任务;在高层次针对所有学习任务进行学习,并将经验知识通过情景记忆模型进行存储,指导元学习器对后续任务的学习.情景记忆模块通过任务编码器和任务解码器与元学习网络进行交互,编码器将元学习网络学习过的每个任务的经验信息编码为可寻址的情景,同时将场景信息编码为可寻址的标签,在面对新任务时任务解码器将情景中的经验信息解码,传递到元学习网络中,作为经验指导任务学习.2 情景记忆模型人类面对复杂任务的方法是把其分解成一系列高级别的行为,依据以往经验把已经学过的行为组合起来快速学习到新技能.基于以上考虑,本研究提出基于技能的事件建模方法,建立机器人情景记忆数学模型M,构成情景记忆的每条情景m,包含时变的事件序列组合E,隶属于该条情景的元学习网络学习到的经验知识G,以及用于检索匹配相似事件的键值特征向量K,即m=E,G,K.事件序列组合E由i个事件构成,即E={e1,e2,⋯,ei},每个事件存储了与情景相关的环境观测值、动作等信息,通过事件匹配获取经验知识,进而引导决策行为.2.1 情景记忆建模事件序列组合E和经验知识G是构成情景的两大主要部分,每条情景中的事件序列组合在时间维度上表示机器人在该任务中经历过的场景及动作序列,经验知识则是在该任务中学习到的技能等经验知识.机器人在学习中不断积累经验,同时将任务中的重要场景信息保存在事件中,其中每个事件e由四元组〈o,pe,a,pt〉组成(见图2),o为通过传感器获得的对环境的状态感知,包括图像中物体的分布、相互之间的位置关系和机器人的关节信息等;pe为机械臂末端执行器三维坐标;a为机械臂执行的动作,在时间维度上表示机器人在当前任务采取的动作序列;pt为机械臂进行交互操作的目标物三维坐标.10.13245/j.hust.211211.F002图2情景记忆建模在不同任务的训练过程中,一方面情景记忆能通过检索匹配存储的经验信息指导任务的学习;另一方面将任务中学习到的经验知识存储保留在情景记忆内,不断扩充经验知识库.2.2 记忆权重为满足情景记忆读写过程中的不同阶段选择目标所作衡量标准,本研究通过构建读取权重Wtr(i)、写入权重Wtw(i)、覆盖权重Wte(i)、使用权重Wtu(i)四种权重作为对选取记忆的评判标准.读取权重Wtr(i):在读取情景记忆指导机器人学习时作为选取指标使用,首先使用余弦距离计算当前事件的场景的键值特征向量与情景记忆中存储事件的键值特征向量的距离大小作为两事件的相似性,然后对当前时刻的相似性度量值与上一时刻的相似性度量值进行加权计算,得到读取权重.写入权重Wtw(i):当情景记忆存储区达到存储上限时,新的记忆将会暂存在缓存区,根据写入权重选取写入位置,将缓存区的记忆覆盖到写入位置,将旧的记忆进行更新替换.对于缓存区记忆内每条情景事件,将每条情景事件与存储区内各记忆进行相似性度量,并将每条情景事件的相似性度量结果通过softmax函数转化为写入权重,若存储区记忆内的情景与缓存区的情景相似性越高,则经过softmax函数转换之后所得的结果数值就越大.覆盖权重Wte(i):覆盖权重与写入权重配合使用,在对缓存区每条情景事件进行计算写入权重后,将存储区每个情景记忆所获得的写入权重求和取平均值作为覆盖权重.使用权重Wtu(i):通过使用权重记录存储区每条情景记忆被选取指导新任务学习的次数,每当该条情景记忆被调用,使用权重加1.2.3 情景记忆创建情景记忆创建系统输入为场景感知和目标物信息,判断当前是否需要构建新事件(见图3).10.13245/j.hust.211211.F003图3情景记忆创建判断当前位置是否构建新事件后,在确定当前任务为未训练过的任务后,机器人会对已存储的情景记忆进行创建或者更新,通过对当前任务的事件感知状态和已存储事件感知状态的相似性度量,决定去更新事件或者新建情景记忆记录事件,具体处理如下.a. 若是未训练过的新任务,则记录任务,提取当前场景感知,提取场景中的物体进行识别,并对各个物体进行编码,计算机械臂的位姿和各个物体的坐标,根据任务操作序列记录机械臂的每个动作,最后在任务训练完成后,封装网络参数.b. 若检测到当前任务与己有任务相似性程度较高,则根据场景感知,直接在相似性任务基础上更新与其对应的场景观测值和动作序列,同时更新以前的经验信息,即通过训练样本更新网络参数,对网络参数进行调整.2.4 情景记忆读取在元学习训练阶段,任务编码器将每个时刻的事件信息编码生成键值特征向量Kst,存储到记忆中.当对情景进行检索匹配时,通过计算当前事件与情景记忆中存储的事件的键值特征向量的相似性,选取合适的情景记忆,新任务与训练过的任务越相似,可利用的情景越多.在元学习测试阶段,当感知到与先前已编码的事件相似,或新事件与先前已感知到的事件不同时,任务编码器将感知系统传递过来的场景信息编码生成键值特征向量Kt(i).本研究采用余弦距离作为相似性度量函数,通过计算当前事件的场景信息与情景记忆中存储的事件信息的相似性度量值检索匹配情景,有D(Kst,Kt(i))=KstKt(i)||Kst||∙||Kt(i)||; (1)然后通过加权计算读取权重Wtr(i),Wtr(i)=γDt-1r+Dtr,(2)式中γ为衰减系数,γ值越大代表前一个事件对当前状态影响越大,当t=1时,γ=0.根据读取权重Wtr(i)计算结果选择执行下列两个操作之一,解码情景指导新任务学习.a. 若读取权重值大于给定阈值,则抽取该事件所属情景内的经验信息,将该条情景作为新任务的经验,指导新任务的学习.b. 若遍历过往时空中所存储情景内事件读取权重均小于给定阈值,则定义当前事件为新事件,为当前任务建立新情景,选取读取权重值最高的情景,指导新任务进行学习.通过当前任务环境感知oi判断任务是否完成,给定任何状态s∈S,若任务t在状态s中完成,即oi与任务完成时of相同则g(S,T)=1,结束当前任务;若不相同,g(S,T)=0,则继续匹配,进行下一个事件的调用.2.5 情景记忆写入更新增量式情景记忆构建系统输入为任务的场景感知,其中场景感知包括视觉图像与目标物信息,输出为新任务与情景记忆库中所有任务的相似性度量最大值.情景记忆构建过程中,机器人先根据相似性度量值判断当前是否须要构建新事件,具体过程为:a. 在机器人学习时期,针对不同任务学习构建新的情景记忆;b. 在测试阶段,若当前任务与情景记忆库内所有任务距离大于设定距离,构建一个新的任务;c. 若判定当前任务非新事件,将基于相似任务参数进行学习,对情景记忆进行更新.当存储的情景记忆数量达到设定阈值(20)时,存储区仅剩预留的记忆存储缓冲区,此时将当前任务记忆暂存在缓冲区,待任务结束后类比LRUA算法对记忆进行更新.在覆盖写入记忆时使用softmax函数将缓冲区情景记忆各事件余弦距离转化为写入权重Wtw(i),Wtw(i)=softmax(D(Kt,Mt(i))).(3)然后将属于同一情景记忆的事件写入权重Wtw(i)求和并求平均值为覆盖权重Wte,根据Wte计算结果,新的记忆将会被覆盖写入到:a. 缓冲区情景最相似的情景的位置,这是由于两情景间具有很高的相似性,避免经验信息重复;b. 将记忆存储区中每个情景被匹配到的次数定义为使用权重Wtu,每当情景被匹配到时,将其使用权重加1,若Wte0.75,表明缓冲区内情景与记忆存储区内的情景不是特别相似,则选取使用权重最低的情景的位置,将该情景覆盖丢弃,以保证存储区的高效利用.3 元学习模型3.1 元学习网络元学习在两个层面上进行,第一个学习层面是在每个单独的任务中快速获取知识,第二个学习层面则是从所有任务中缓慢提取信息.由于反向传播中基于梯度的更新机制和LSTM中细胞状态更新具有相似之处,同时LSTM网络长短时记忆的结构与元学习的思路非常相似,因此本研究采用以LSTM替代反向传播的元学习网络.在时间t设定学习率为αt,则学习器参数更新方式为θt=θt-1-αt∇θt-1Lt,式中:θt为第t次更新迭代之后的参数;∇θt-1Lt为第t-1时刻损失函数相对于θt-1的梯度;Lt为在第t次更新时的损失函数,损失函数的计算和求梯度都是相对于上一次迭代完之后的参数θt-1.这个过程与LSTM中的单元状态的更新具有相同的形式ct=ftct-1+itc˜t,式中:ct和ct-1为细胞单元状态;ft为遗忘门;it为学习率.令遗忘门ft=1,细胞单元状态ct-1=θt-1,学习率it=αt,ct-1=-∇θt-1Lt即可让LSTM单元状态更新与反向传播二者的形式相似.当网络参数陷入“鞍点”时,须收缩当前的参数并对之前的参数进行遗忘,因此须重新定义学习率it和遗忘门ft,即:it=σ(WI[∇θt-1Lt,Lt,θt-1,it-1]+bI);ft=σ(WF[∇θt-1Lt,Lt,θt-1,ft-1]+bF).元学习器通过以上两步更新LSTM细胞状态,在避免发散的同时快速地训练[15].3.2 网络优化改进通过调整每层网络输出数据的分布批量归一化,使其进入激活函数的作用区.对于每层的每个特征通道,计算当前批量内的所有样本的对应输入,并统计其均值和方差.然后用该均值和方差,对每个样本对应的输入进行归一化.经过归一化后,所有的输入特征的均值为0,标准差为1;同时,为了防止归一化导致特征信息的丢失,为每一个特征引入一组可学习参数γ,β,用于恢复原始输入特征,yi←γx˜i+β≡BNγ.本研究在卷积神经网络层中采用缩放指数线性单元(SeLU)激活函数,能够克服修正线性单元(ReLU)的缺点并且防止梯度消失和梯度爆炸.在激活后方差过大时可以减小方差,防止梯度爆炸,并且在正半轴上梯度大于1,在方差过小时可使其增大,同时防止了梯度消失,神经网络每一层的输出都是均值为0方差为1,其表达式为SeLU(x)=λx (x0);αex-α (x≤0).4 实验结果4.1 实验环境设置如图4所示,实验平台为UR3e机器人搭载Kinect摄像机和robotiq 2指夹持器,场景图片为分辨率960×540的彩色图与深度图,并搭建基于Gazebo物理引擎的三维仿真环境.在仿真环境中构建与实际机器人具有相同属性的机器人模型,从而实现实验数据的互通,提高训练效率.10.13245/j.hust.211211.F004图4实验平台4.2 元训练训练集从Gazebo仿真环境中采集,在元测试阶段,对于每个任务采集20组样本,其中15组用于训练,5组用于测试,每组样本物体的位置均为随机的.本研究通过图5和图6所示两个任务对模型进行元训练,通过训练使机器人掌握堆叠、分类等技能.10.13245/j.hust.211211.F005图5木块堆积实验10.13245/j.hust.211211.F006图6桌面清理实验木块堆积实验为将随机散落在桌面上4个不同颜色的木块按照颜色顺序要求堆叠;桌面清理实验为将随机散落在桌面上的物品整理到收纳盒中.4.3 元测试实验结果分析模型训练完成后,在图7和图8所示两个任务上进行测试,每个测试任务中5组样本数据用于训练,15组用于测试,同时测试任务中的每组样本物体的初始位置均为随机放置,每项任务测试三次取平均值,并在以下三种模型进行性能对比实验,分别为无情景记忆的LSTM元学习方法,采用情景记忆的LSTM元学习方法和采用情景记忆的GRU元学习方法.通过统计三种模型在验证集两个任务上的成功率对模型性能进行评估.学习率设置为0.01,最大迭代次数为1×105次.10.13245/j.hust.211211.F007图7木块堆积构型变化实验10.13245/j.hust.211211.F008图8混杂物体分类实验实验1为木块堆积构型变化实验:将随机散落在桌面上不定数量的木块按照要求堆叠,木块数量随机,如5块、6块或7块;堆叠构型随机,如2堆或3堆.实验2为混杂物体分类实验:将可口可乐、苹果、香蕉三种形状不同的物品随机摆放在桌面上,使机器人将相同类型的物品分类到对应的收纳盒中.图9为在不同迭代次数下各种方法预测的平均成功率,由图可以看出带有情景记忆的学习方法在相同测试数据、不同迭代次数下的预测成功率均高于无记忆模块的元学习方法,同时由于LSTM在数据上的高层化处理和结构的优越性,可以看出以LSTM为元学习网络核心的方法会优于以GRU为核心的方法.10.13245/j.hust.211211.F009图9不同迭代次数下各种方法预测的平均成功率同时随着迭代次数的增加,预测成功率也稳步提升,但在7.5×104次迭代后增速降低,这意味着记忆机制和门限结构在机器人技能学习中发挥了重要作用,但由于少样本学习的训练样本较少,很难将准确率提升到98%以上.在图9(a)中有情景记忆的LSTM元学习方法在迭代1×105时的成功率高于无情景记忆约为8%,在图9(b)中则为16%.相较于现有的结合记忆的元学习方法,采用分层存储的记忆结构以及构建事件与技能间的联系,保留了更多的任务特征信息,因此本研究提出的方法相较于当前基于记忆的元学习方法在相似性程度较低的任务上泛化性会强一些.图10为木块堆积构型变化实验在真实实验环境下的实验过程,机械臂应用本研究提出方法训练后,按照测试集任务要求完成木块的堆叠.10.13245/j.hust.211211.F010图10木块堆积构型变化实验过程图11为两个测试任务的训练过程中的损失函数变化曲线,随着迭代次数的增加,训练过程的损失值逐渐下降,在7×104次后逐渐趋于平稳收敛.10.13245/j.hust.211211.F011图11训练过程中的损失函数变化曲线5 结语本研究通过模仿人类利用经验对技能进行分层组合、实现快速学习的方式,通过建模情景记忆存储过去时空中所经历的事件从而积累经验;搜索过去时空经历过的情景事件中的行为,抽取行为进行组合排列指导当前任务的学习;通过对比模型在元测试集上的成功率,在相同的实验条件下本研究提出的方法相对无情景记忆的元学习模型成功率提高12%左右,并且在相似性更低的任务上的泛化性更强.
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读
复制地址链接在其他浏览器打开
继续浏览