基于多个历史最佳Q网络的深度强化学习方法及设备与流程

文档序号:17994938发布日期:2019-06-22 01:07阅读:201来源:国知局
基于多个历史最佳Q网络的深度强化学习方法及设备与流程

本发明属于计算机人工智能技术领域,具体涉及一种适用于智能机器人交互系统中基于多个历史最佳q网络的深度强化学习方法及设备。



背景技术:

近几年来,强化学习广泛用于人工智能因为其出色的决策能力,因而常被用于智能机器人的交互系统中。在强化学习(rl)中,通过优化累积未来的奖励信号(参见文献[1]),智能体寻求最优策略来解决连续决策问题。随着时间的推移,很多流行的强化学习算法已经被提出包括q学习(参见文献[2]),时间差异学习(参见文献[3]),和策略梯度法(参见文献[4])。但是,这些早期的方法的强化学习(rl)算法主要依靠人工的特征提取,它们很难处理中的问题复杂的高维状态空间。随着深度学习的发展,这些算法可以直接提取特征来自原始的高维数据。深度学习有强大的感知能力,但缺乏一定的决策能力;而强化学习则具有很强的能力做决定。因此,在复杂的情况下,两者的结合可为认知决策问题提供解决方案。

深度q网络deepq-network(dqn)算法(参见文献[5])创造性地结合深度神经网络(dnn)和q学习(q-learning)算法,在人工智能领域的智能交互中取得了不错的效果,这种智能交互被应用到许多atari2600游戏(ale)中,其智能水平达到人类的水准(参见文献[6])。dqn只使用原始图像作为输入,并通过使用经验池(参见文献[7])和重新构建目标来使训练趋于稳定。dqn同样留有一些空间来进一步增加训练的稳定性。在这项工作中,要解决的问题是如何制作一个目标,这是处于q学习和函数逼近结合的阶段。在dqn中,最大化的操作会导致高估状态行为的价值(参见文献[8]),即用相同的值来选择和评估一个动作。为了减轻这个问题,vanhasselt等人(参见文献[9])建议使用double-dqn(ddqn)学习算法,它使用doubleq-learning(参见文献[10])来改变目标。anschel等人(参见文献[11])提出averaged-dqn方法,这是基于先前学习到的q值的平均值,而平均化的操作降低了目标近似值误差方差。

dqn存在高估的现象,在有的交互环境中,会出现后期越训练,交互评价的得分越低的现象。已有改进的方法大多都是一个目标网络,且没有利用好过往的曾经的目标网络,一般都是丢弃掉,因此这种操作效率较低。



技术实现要素:

对于以往历史上训练的q网络,它们之间的差别是由不同的样本训练出的。因此历史上的达到高分时的q网络,肯定拥有其擅于处理的状态,用这些历史上最佳的q网络去辅助当前q网络进行训练,同样能很好消除后期越训练,交互评价的得分越低的现象。基于上述发明构思,针对现有智能机器人交互系统,本发明提出了一种基于多个历史最佳q网络的深度强化学习方法,使训练过程更加稳定,以解决现有技术中存在的后期越训练,交互评价得分越低的技术问题。为解决上述问题,本发明提出的技术方案在明确智能机器人的智能体运动环境的基础上,基于交互评价的得分高低,从所有历史上的q网络当中选出最佳的几个q网络;使用多个历史最佳q网络与当前q网络重新构建目标,去指导所述智能体选择动作的策略,并训练学习模型的参数。

为实现上述目的,第一方面,本发明提出的一种用于智能机器人交互系统的基于多个历史最佳q网络的深度强化学习方法,其中,所述智能机器人包含一智能体,包括以下步骤:

步骤1:明确所述智能体的属性和规则,调用或构建所述智能体的运动环境;

步骤2:基于q网络的深度强化学习算法,建立q评估网络与t个q目标网络以及k个辅助网络,其中t、k均为大于1的正整数,随机初始化q评估网络与t个q目标网络以及k个辅助网络的参数,其中q评估网络与q目标网络以及辅助网络的网络结构是一致的,但是内部参数不一样,它们常被统称为q网络;

步骤3:所述智能体在步骤1的环境中,自主进行探索,即:根据当前状态s,由q评估网络输出当前动作a,同时到达下一状态s',并得到回报r,将每一步的所述当前状态s,当前动作a,下一步状态s'和回报r构成元组数据<s,a,s',r>,并储存到经验池中;

步骤4:根据步骤3经验池中存储的<s,a,s',r>,对q评估网络参数进行训练学习,同时用新产生的<s,a,s',r>替换经验池中之前存储的<s,a,s',r>,便于q评估网络的更新学习;

步骤5:使用所述t个q目标网络以及k个辅助网络对q评估网络进行更新,且在训练过程中,若所述q评估网络存在交互评价得分超过所述k个辅助网络中评价分数最低的q评估网络,那么保留这个评估网络,替换掉k个辅助网络中分数最低的网络。

作为优选,步骤1的还包括以下步骤:

步骤1.1:根据调用或构建的所述运动环境的说明,明确所述智能体的动作空间,状态空间以及奖惩机制;

步骤1.2:所述智能体的动作和状态,环境中的奖励共同构建了一个智能体的交互环境:对于所述智能体,依据当前的观察,得到下一步的动作与奖惩信息,并根据q目标网络以及辅助网络,以指导决策的不断优化。

作为优选,步骤2包括以下子步骤:

步骤2.1:q评估网络的参数更新需要建立在经验学习的基础上,用经验池来存储由当前状态s,当前动作a以及所述智能体做出动作后的环境反馈,即下一个状态s'与回报r构成的元组,所述元组记为:<s,a,s',r>;

步骤2.2:对于q评估网络的结构设计,将所述智能体的状态s作为所述q评估网络的输入,经过多个隐含层得到所述智能体的下一步输出动作a;同时,在每一轮迭代的过程中,所述q评估网络的参数都是动态变化的,为了使所述q评估网络的网络结构的参数学习更加稳定,保留一个q评估网络结构的副本,称为当前q目标网络,经过一定的时间步长,当前q目标网络复制q评估网络的参数,进行当前q目标网络参数的更新;

步骤2.3:对于t个q目标网络的结构设计,保留最近的先前的t个q评估网络作为目标网络组;对于k个辅助网络的结构设计,是从所有之前的q目标网络选出k个网络作为辅助网络。

作为优选,步骤3包括以下子步骤:

步骤3.1:对于探索模块,一开始是以ε=1的概率开始探索新动作,1-ε的概率选择q评估网络输出的动作。之后的1m(即106)步数,ε线性减小,直到ε=0.1保持不变;

步骤3.2:存储模块内存大小为1m个元组,每次批量更新的大小为32个元组,所述元组是由当前状态s,当前动作a以及所述智能体做出动作后的环境反馈,即下一个状态s'与回报r构成,所述元组记为:<s,a,s',r>。

作为优选,步骤5的具体实现包括以下子步骤:

步骤5.1:q评估网络,表示为q,参数为θ;t个目标网络,表示为参数为k个辅助网络,表示为q1~k,参数为θ1~k;

更新q评估网络,首先生成一个新的目标网络;使用t个q目标网络以及k个辅助网络生成的新的目标网络值为:

其中s′,a′分别为下一个状态与下一个动作,为所述目标网络的值,以下一步的状态s′与动作a′作为网络的输入,代表网络的参数,其中1≤m≤t;q(s′,a′;θn)为所述辅助网络的值,以下一步的状态s′与动作a′作为网络的输入,θn代表网络的参数,1≤n≤k;

那么目标y的计算公式为:

其中,γ∈[0,1]表示衰减系数,r为环境给出的奖励;为得到的新的目标网络值;maxa′为在自变量为a′的情况下,选出最大的值;

计算得到q的动作-状态值,则执行梯度下降的损失函数l为:

l=||y-q(s,a;θ)||2

其中q(s,a;θ)表示q评估网络的参数为θ,并处于状态s与动作a时的值,||y-q(s,a;θ)||2表示y=q(s,a;θ)的计算结果的范数的平方值。

步骤5.2:对于更新t个目标网络,每10000步,替换中出现时间的最早的目标网络;

步骤5.3:对于更新k个辅助网络时,用大小为k的数组,该数组记为r_compare,用于存储k个交互评价得分最高的训练网络,当一轮训练结束时得到的交互评价累计得分记为reward,当累计得分reward大于数组r_compare中最小的值时,那么替换掉辅助网络里交互评价分值最小的网络,之后再更新数组,把当前的reward替换掉数组r_compare中最小的值;

随着模型的不断优化,用新产生的<s,a,s',r>替换经验池中之前的<s,a,s',r>,并继续更新参数,直到满足终止条件或者达到最大迭代步数。

另一方面,本发明还提出了一种用于智能机器人交互系统中的基于多个历史最佳q网络的深度强化学习的设备,其中,所述智能机器人包括智能体,包括:

处理器和存储器,所述存储器具有存储有程序代码的介质,当所述处理器读取所述介质存储的程序代码时,所述设备能够执行上述方法。

本发明与现有技术相比的优点和积极效果如下:

(1)对原有的深度强化学习方法进行改进,在大框架不变的情况下,改进了q学习与函数逼近结合的阶段,让训练过程更稳定,可以很好消除后期越是训练,得分越低的现象;

(2)基于多个历史最佳q网络的学习方法,可以很好的利用以往训练过程出现的q网络,不再随意丢弃掉。由于不同的样本训练,形成不同的q网络,这种利用之前q网络的操作能提高样本的使用效率。这些不同的历史上达到高分时期的q网络,分别地擅于处理不同的状态。本发明使用最大化的操作,结合多个历史最佳q网络与当前q网络重新构建目标,去指导智能体选择动作的策略,并训练学习模型的参数;

(3)对于评价q网络的好坏,本发明使用智能交互环境的最终得分来衡量。使用这个直接由环境反馈的指标,可减少其它的计算量,不需要单独的进行额外比较,从而使得智能机器人能够得到一更好选择动作的策略,分数更高

附图说明

图1为本发明提出的用于智能机器人交互系统中的基于多个历史最佳q网络的深度强化学习方法的一个较佳实施方式的示意图;

图2为智能体与环境交互并训练q网络的示意图;

图3为q网络结构图;

图4为目标网络与辅助网络更新的示意图;

图5为本发明提出的用于智能机器人交互系统中的基于多个历史最佳q网络的深度强化学习设备的一个较佳实施方式的结构示意图。

下面对本发明进一步详细说明。但下述的实例仅仅是本发明的简易或者最佳例子,并不代表或限制本发明的权利保护范围,本发明的保护范围以权利要求书为准。

具体实施方式

下面结合实施例和说明书附图,对本发明的具体实施方案进行详细描述。此处所描绘的实施例仅用于说明和解释本发明,但不用于限定本发明。

针对包含智能体的智能机器人的交互系统,本发明提出的基于多个历史最佳q网络的深度强化学习方法,如图1所示,主要包括以下步骤:首先,定义单智能体的属性和规则,明确智能体的状态空间和动作空间,构建或调用单智能体运动交互环境,即观察到环境o,根据策略π,智能体做出动作a;然后,基于交互评价得分的高低,即根据每一局的交互评价得分从所有历史上的q网络当中选出最佳的几个q网络;最后,使用max操作,即最大化的操作去联合这多个历史最佳q网络与当前q网络,去指导智能体选择动作的策略,并训练学习模型的参数,根据智能体所处的环境,自主地进行下一步的决策行动。本发明可以根据实际需求构建合理的运动环境,通过利用训练过程中产生的最佳q网络,来更好地指导智能体进行决策,达到智能策略优化的目的,对我国机器人以及无人系统的发展具有积极作用。

为了便于理解,以游戏交互环境作为一种容易理解的实施方式来阐述本发明的技术方案,但并不表明,本发明所要保护的技术方案仅限于游戏交互环境中,而是广泛应用于智能机器人的任何交互系统中。

下面详细说明。

步骤1:明确单智能体的属性和规则,调用或构建智能体的运动环境;

步骤2:基于多个历史最佳q网络的深度强化学习算法,建立q评估网络与t个q目标网络以及k个辅助网络,随机初始化参数;其中,q评估网络与q目标网络以及辅助网络的网络结构是一致的,但是内部参数不一样,它们统称为q网络;

步骤3:智能体在步骤1的环境中,自主进行探索:根据当前的状态s,由q评估网络输出动作a,同时到达下一状态s',并得到回报r,将每一步的构成的元组“<当前状态s,当前动作a,下一步状态s',回报r>”储存到经验池中;

步骤4:根据步骤3经验池中存储的<s,a,s',r>,对q评估网络参数进行训练学习,同时用新产生的<s,a,s',r>替换经验池中之前存储的<s,a,s',r>,便于网络的更新学习;

步骤5:使用t个q目标网络以及k个辅助网络对q评估网络进行更新,且在训练过程中,若存在得分超过所述辅助网络分数最低的q评估网络,那么保留这个网络,替换掉k个辅助网络中分数最低的网络。

上述各模块的具体实现过程如下:

1.智能体与环境交互

实现示意图如图2所示,分为以下2个子步骤:

1)根据调用或构建的运行环境说明,明确智能体的动作空间,状态空间以及奖惩机制;

2)智能体的动作和状态,环境中的奖励等内容共同构建了一个智能体的交互环境:对于智能体,依据当前的观察,得到下一步的动作与奖惩信息,并根据q目标网络以及辅助网络,以指导决策的不断优化。

2.建立q网络结构,初始化网络参数

对于q评估网络的结构设计,将智能体的状态s作为网络的输入,经过若干隐含层得到智能体的下一步输出动作a。分为以下3个步骤:

1)本发明所使用的q网络结构示意图如图3所示,游戏的图像大小调整为(84,84)灰度图像,神经网络的输入是4张灰度图像。第一层包含32个大小为(8,8)步长为4的卷积核。第二个隐含层有64个(4,4)步长为2的卷积核,第三个隐含层同样是个卷积层,有64个(3,3)步长为1的卷积核。最后的隐含层是有512个单元的全连接层。最后一层同样是全连接层,维度等于动作空间的维度。非线性整流器作为每一层的激活函数。

2)q评估网络的参数更新需要建立在经验学习的基础上,用经验池来存储状态,动作以及智能体做出动作后的环境反馈,即下一个状态与回报<当前状态s,当前动作a,下一步状态s',回报r>;

3)同时,在每一轮迭代的过程中,网络的参数都是动态变化的,为了使网络结构的参数学习更加稳定,保留一个q评估网络结构的副本,称为当前q目标网络,在一定的时间步长进行参数的更新,即复制q评估网络的参数;

3.训练并优化多个历史最佳q网络的深度强化学习算法

q评估网络,表示为q,参数为θ;t个目标网络,表示为参数为k个辅助网络,表示为q1~k,参数为θ1~k。分为以下4个步骤:

1)更新q评估网络。如图2所示,首先生成一个新的目标网络。使用t个q目标网络以及k个辅助网络生成的网络为:

其中s′,a′分别为下一个状态与下一个动作,为所述目标网络的值,即下一步的状态s′与动作a′为网络的输入,代表网络的参数,其中1≤m≤t,q(s′,a′;θn)为所述辅助网络的值,即下一步的状态s′与动作a′为网络的输入,θn代表网络的参数,1≤n≤k;

那么target计算公式为:

计算得到动作-状态值q,则执行梯度下降的损失函数为:

l=||y-q(s,a;θ)||2

2)对于更新t个目标网络,如图4所示。每c步,替换中最早(出现时间的最早)的目标网络,c为10000。

3)对于更新k个辅助网络,如图4所示。每一局游戏都有从零开始的步数t,智能体每做一个动作,到达新的状态,如果游戏没有结束,那么步数t增加1。如果步数t是目标网络更新的步数c的整数倍,那么用q评估网络替换最早的的目标网络q1~t←q。对于更新k个辅助网络;用大小为k数组,记为r_compare保留k个得分最高的训练网络。一局游戏结束时得到的总分数记为reward,当总得分reward大于数组r_compare中最小的值时,那么替换掉辅助网络里得分最小的网络,之后再更新数组,把当前的reward替换掉数组r_compare中最小的值。

4)随着模型的不断优化,用新产生的<s,a,s',r>对替换经验池中之前的<s,a,s',r>,并继续更新参数,直到满足终止条件或者达到最大迭代步数。

作为本发明的第二个方面,还提供一种电子设备,如图5所示,包括:处理器1120和存储器1140,所述存储器1140具有存储有程序代码的介质(计算机可读存储介质),当所述处理器读取所述介质存储的程序代码时,通过输入单元1130和输出单元1150的协助,使得所述电子设备能够执行上述方法步骤。对于方法实施,本发明提出的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,本发明提出的各种实施方式可以通过使用特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理装置(dspd)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)、处理器、处理器、微处理器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,本发明提出的各种实施方式可以在图所示的处理器1120中实施。对于软件实施,本发明提出的各种实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器1140中并且由处理器1120执行。

本发明未详细阐述部分属于本领域公知技术。

申请人声明,本发明通过上述实施例来说明本发明的详细结构特征,但本发明并不局限于上述详细结构特征,即不意味着本发明必须依赖上述详细结构特征才能实施。所属技术领域的技术人员应该明了,对本发明的任何改进,对本发明所选用部件的等效替换以及辅助部件的增加、具体方式的选择等,均落在本发明的保护范围和公开范围之内。

以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1