本发明涉及机器人技术领域,尤其涉及一种机器人控制方法、装置、机器人及存储介质。
背景技术:
近年来,深度学习技术为机器人控制领域的研究提供了新的思路。深度神经网络的优势是特征提取的自动化,以及理论上对任意复杂非线性函数的拟合能力。然而深度神经网络具有数据驱动的特性,模型的训练往往需要收集大量数据,这在机器人领域是比较困难的。人们可以把一个在源任务上已经训练好的模型在目标任务上重新训练,以使得模型适应新的任务,该过程被称为网络参数的精调。但在参数精调的过程中,由于不能马上发现已学习的特征与当前任务之间的关系,可能导致部分已学习到的经验被丢失,这种现象也被称为“灾难性遗忘”。
技术实现要素:
本发明的主要目的在于提供一种机器人控制方法、装置、机器人及存储介质,可以在源任务和目标任务间进行经验的转移,从而避免训练过程中的灾难性遗忘现象,加快对目标任务的学习。
为实现上述目的,本发明实施例第一方面提供一种机器人控制方法,包括:
根据源任务,利用深度确定性策略梯度算法对第一控制模型进行训练,得到训练好的第一控制模型,所述训练好的第一控制模型用于执行所述源任务;
当接收到执行目标任务的指令时,建立所述第一控制模型与第二控制模型之间的侧向连接,以将所述第一控制模型的控制经验转移至所述第二控制模型;
基于所述目标任务,利用所述控制经验对所述第二控制模型进行训练,得到训练好的第二控制模型,所述训练好的第二控制模型用于执行所述目标任务。
进一步地,所述利用所述控制经验对所述第二控制模型进行训练时,利用深度确定性策略梯度算法对第二控制模型进行训练,以及,保持所述第一控制模型的各层的参数不变。
进一步地,所述深度确定性策略梯度算法包括行为策略网络和深度q网络;
所述建立所述第一控制模型与第二控制模型之间的侧向连接包括:
在所述源任务的深度q网络和所述目标任务的深度q网络之间,以及,所述源任务的行为策略网络和所述目标任务的行为策略网络之间分别建立侧向连接。
进一步地,所述建立所述第一控制模型与第二控制模型之间的侧向连接之后,令第二控制模型第i层的输出为
其中,
进一步地,所述得到训练好的第一控制模型之后,还包括:
将所述训练好的第一训练模型保存至本地模型库中,保持所述训练好的第一控制模型的参数不变。
进一步地,所述将所述第一控制模型的控制经验转移至所述第二控制模型包括:
建立所述第一控制模型到所述第二控制模型的经验转移通路,以将所述第一控制模型的控制经验转移至所述第二控制模型。
本发明实施例第二方面提供一种机器人控制装置,包括:
第一训练模块,用于根据源任务,利用深度确定性策略梯度算法对第一控制模型进行训练,得到训练好的第一控制模型,所述训练好的第一控制模型用于执行所述源任务;
连接建立模块,用于当接收到执行目标任务的指令时,建立所述第一控制模型与第二控制模型之间的侧向连接,以将所述第一控制模型的控制经验转移至所述第二控制模型;
第二训练模块,用于基于所述目标任务,利用所述控制经验对所述第二控制模型进行训练,得到训练好的第二控制模型,所述训练好的第二控制模型用于执行所述目标任务。
进一步地,所述建立所述第一控制模型与第二控制模型之间的侧向连接之后,令第二控制模型第i层的输出为
其中,
本发明实施例第三方面提供了一种机器人,所述机器人执行目标任务时,实现本发明实施例第一方面所述的机器人控制方法。
本发明实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面提供的机器人控制方法。
与已有技术相比,本公开的有益效果体现在:
1、本发明使用深度强化学习方法对源任务模型进行训练,深度强化学习是一种无模型的控制策略学习方法,算法通过不断地尝试和犯错来学习,只需要设计者提供一个表示当前行为好坏的奖励函数,训练过程不需要人工干预,因此学习过程自动化程度高。
2、本发明基于渐进式神经网络,渐进式神经网络将所有在源任务上训练的第一控制模型都保存到模型库中,当需要迁移到目标任务时,在第一控制模型和目标任务模型(第二控制模型)间建立侧向连接作为经验转移的通路。训练过程中第一控制模型的参数保持不变,只训练侧向连接中的权重和第二控制模型的权重,因此可以避免出现灾难性遗忘现象。通过侧向连接源任务上学习到的经验可以转移到目标任务,因此可以大大加快目标任务的学习。
3、衡量源任务和目标任务的相似性一直是迁移学习的难点,本发明通过渐进式神经网络中的侧向连接自动调整从源任务迁移经验的强弱,避免了人为定义任务的相似性。而且第一控制模型与第二控制模型的侧向连接使得低层次特征的迁移成为可能,提高了经验迁移的丰富性和灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的机器人控制方法的流程示意图;
图2为本发明一实施例提供的机器人控制方法中梯度在深度q网络与行为策略网络间的流动示意图;
图3为本发明一实施例提供的机器人控制方法中三列网络组成的渐进式神经网络的示意图;
图4为本发明一实施例提供的机器人控制方法中深度确定性策略梯度与渐进式神经网络结合示意图;
图5为本发明一实施例提供的机器人控制装置的结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供的机器人控制方法包括:基于深度确定性策略梯度(ddpg,deepdeterministicpolicygradient)算法的源任务训练和从源任务到目标任务的经验迁移两部分。在经验迁移的部分中,在第一控制模型与第二控制模型间通过建立侧向连接来搭建迁移通道,侧向连接中的权重会在训练过程中自动调整,增加了经验迁移的效率。
在本实施例中,源域,即数据量充足,或数据获取方便,已经获取到知识的领域。
源任务是指源域中的一个具体任务,例如,轨迹跟踪,目标物体抓取等任务。
目标域,即想将源域中知识迁移到的领域。
目标任务是指目标域中的一个具体任务,例如,轨迹跟踪,目标物体抓取等任务。
请参阅图1,图1为本发明一实施例提供的机器人控制方法的流程示意图,该方法主要包括以下步骤:
s101、根据源任务,利用深度确定性策略梯度算法对第一控制模型进行训练,得到训练好的第一控制模型,该训练好的第一控制模型用于执行该源任务;
该深度确定性策略梯度算法包括行为策略网络和深度q网络。该建立该第一控制模型与第二控制模型之间的侧向连接包括:在该源任务的深度q网络和该目标任务的深度q网络之间,以及,该源任务的行为策略网络和该目标任务的行为策略网络之间分别建立侧向连接。
具体的,随机初始化源任务的深度q网络q(st,at|θq)和行为策略网络μ(st|θμ)的参数θq和θμ,并赋值给目标任务的深度q网络和行为策略网络的参数θq′和θμ′,其中st表示时间t时机器人的状态,at表示时间t时机器人需要执行的动作。
然后,初始化一个先进先出队列r,作为训练过程中存储数据的经验池;初始化一个奥恩斯坦-乌伦贝克过程n,作为行为策略网络探索时的噪声。
然后,对于训练过程中的时间步t=1,2,3…t,重复执行以下步骤(a)至(e):
(a)开始执行源任务,设时间t时机器人处于状态st,选取at=μ(st|θμ)+nt作为时间t时机器人需要执行的动作。
(b)使机器人执行动作at,记录机器人获得的奖励rt和转移到的下一个状态st+1,并将四元组(st,at,rt,st+1)存储到经验池r中。
(c)从经验池r中随机抽取m个四元组作为训练数据,按照式1计算深度q网络的输出损失,并使用梯度下降法最小化该输出损失,以更新参数θq。
其中γ=0.99,为获得的奖励的衰减因子。
(d)根据由深度q网络传导过来的梯度更新行为策略网络的参数θμ。
(e)使用指数滑动平均法更新目标任务的深度q网络的参数θq′和目标任务的行为策略网络的参数θμ′。
进一步地,得到训练好的第一控制模型之后,将该训练好的第一训练模型保存至本地模型库中,保持该训练好的第一控制模型的参数不变。
s102、当接收到执行目标任务的指令时,建立该第一控制模型与第二控制模型之间的侧向连接,以将该第一控制模型的控制经验转移至该第二控制模型;
进一步地,将该第一控制模型的控制经验转移至该第二控制模型包括:建立该第一控制模型到该第二控制模型的经验转移通路,以将该第一控制模型的控制经验转移至该第二控制模型。
令第二控制模型第i层的输出为
其中,
其中,第一控制模型和第二控制模型为渐进式神经网络。
s103、基于该目标任务,利用该控制经验对该第二控制模型进行训练,得到训练好的第二控制模型,该训练好的第二控制模型用于执行该目标任务。
进一步地,利用该控制经验对该第二控制模型进行训练时,利用深度确定性策略梯度算法对第二控制模型进行训练,以及,保持该第一控制模型的各层的参数不变。即每次进行梯度的反向传播计算时,梯度的反向传播到侧向连接处为止,不进入第一控制模型。
以下对本实施例提供的机器人抓取方法进行具体说明:
步骤1:基于ddpg算法的源任务训练。ddpg算法是一种actor-critic算法,actor-critic算法可以分为两部分:价值迭代和策略改进。价值迭代指的是在当前策略下,通过迭代的方法更新当前价值函数或动作价值函数的参数,从而得到一个对当前价值函数或动作价值函数的更好的估计。而策略改进则指的是根据更新后的价值函数或动作价值函数,改进智能体的行为策略,使得遵循改进后的策略后,智能体获得更多的累积奖励。
步骤1.1:价值迭代。
ddpg算法中采用的是q-learning算法中估计动作价值函数的方式,即先使用随机的参数初始化动作价值函数,得到动作价值函数的初始值;然后,根据某种策略产生一个动作,执行动作a后转移到状态,根据式3对动作价值函数进行更新。
ddpg算法中使用了神经网络(深度q网络)来近似动作价值函数,根据q-learning更新动作价值函数的方式,则深度q网络的损失函数应该为:
l(θq)=e[rt+γq(st+1,μ(st+1|θμ)|θq)-q(st,at|θq)]2式4
其中,μ(s|θμ)是一个以θμ为参数的函数,表示当前行为策略;rt+γq(st+1,μ(st+1|θμ)|θq)是更新时的目标q值,它给出了q网络输出的更新方向。
步骤1.2:策略改进。步骤1.1给出了通过价值迭代估计当前动作价值函数值的过程,我们还需要进行策略改进。此过程需要计算行为策略μ(s|θμ)的参数的梯度。为此,构建一个性能度量函数j(μ)来衡量行为策略μ(s|θμ)的好坏,j(μ)定义为
其中,ρμ(s)是在当前行为策略下,环境状态s的稳态分布,qμ(s,μ(s))则是在同样策略下的动作价值函数。根据链式求导法则,性能度量函数j(μ)关于行为策略函数μ(s|θμ)的参数θμ的导数为
其中,
步骤2:从源任务到目标任务的经验迁移。
步骤2.1:渐进式神经网络的构建。如图3所示,渐进式神经网络以一系列训练好的预训练模型(第一控制模型)作为开始。当需要迁移到目标任务上时,这些第一控制模型被加入到模型库中并且保持它们的参数不变。之后,初始化一列新的神经网络(第二控制模型),在第一控制模型与第二控制模型之间构造侧向连接以进行控制经验的迁移。
设第k列网络的第i层神经元的输出用
其中,wik是第k列网络第i层神经元的权重矩阵,
限定侧向连接只能是线性投影变换无疑会限制可迁移特征的范围,因此,构造一种新的非线性的侧向连接。设前k-1列网络的所有第i-1层的输出构成向量
其中,
步骤2.2:渐进式神经网络与ddpg算法相结合。ddpg算法中中包含行为策略网络和深度q网络两部分。显然,仅仅迁移行为策略网络或者深度q网络中的特征,都是不完全的。因此,设计一种同时迁移策略网络和深度q网络中的经验的方法。如图4所示,在源任务和目标任务的q网络和行为策略网络之间都建立了侧向连接,图中虚线表示权重是不可变的,实线表示参数可训练。由于输入动作a本身不包含任何源任务学习到的特征,因此我们在侧向连接中不包括a。
步骤2.3:对目标任务进行训练。我们已经在源任务上训练好了一个控制模型(第一控制模型),并在该第一控制模型和第二控制模型间建立了侧向连接,在第二控制模型的训练过程应保持第一控制模型参数不变。对于目标任务,其训练方式与原始的深度确定性策略梯度算法相同,网络间的侧向连接会在训练过程中自动调整其权重以进行经验的迁移。
请参阅图5,图5是本发明一实施例提供的机器人控制装置的结构示意图,该装置主要包括:
第一训练模块201,用于根据源任务,利用深度确定性策略梯度算法对第一控制模型进行训练,得到训练好的第一控制模型,该训练好的第一控制模型用于执行该源任务;
进一步地,该深度确定性策略梯度算法包括行为策略网络和深度q网络;
该建立该第一控制模型与第二控制模型之间的侧向连接包括:
在该源任务的深度q网络和该目标任务的深度q网络之间,以及,该源任务的行为策略网络和该目标任务的行为策略网络之间分别建立侧向连接。
进一步地,得到训练好的第一控制模型之后,将该训练好的第一训练模型保存至本地模型库中,保持该训练好的第一控制模型的参数不变。
连接建立模块202,用于当接收到执行目标任务的指令时,建立该第一控制模型与第二控制模型之间的侧向连接,以将该第一控制模型的控制经验转移至该第二控制模型;
进一步地,该建立该第一控制模型与第二控制模型之间的侧向连接之后,令第二控制模型第i层的输出为
其中,
进一步地,将该第一控制模型的控制经验转移至该第二控制模型包括建立该第一控制模型到该第二控制模型的经验转移通路,以将该第一控制模型的控制经验转移至该第二控制模型。
第二训练模块203,用于基于该目标任务,利用该控制经验对该第二控制模型进行训练,得到训练好的第二控制模型,该训练好的第二控制模型用于执行该目标任务。
进一步地,该利用该控制经验对该第二控制模型进行训练时,利用深度确定性策略梯度算法对第二控制模型进行训练,以及,保持该第一控制模型的各层的参数不变。
本发明实施例还提供了一种机器人,所述机器人执行目标任务时,实现图1至图4所示实施例中描述的机器人控制方法。
进一步地,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的机器人中。该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述图1~图4所示实施例中描述的机器人控制方法。进一步地,该计算机可存储介质还可以是u盘、移动硬盘、只读存储器(rom,read-onlymemory)、易失性存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的多个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的机器人控制方法、装置、机器人及存储介质的描述,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。