一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于累积迹强化学习的多机器人协同搜索方法

2022-05-18 00:46:47 来源:中国专利 TAG:


1.本发明涉及一种基于累积迹强化学习的协同搜索方法,具体涉及一种将基于累积迹的奖励与探索方法引入强化学习中的多机器人协同搜索方法,属于军事信息系统智能决策、智能任务规划和智能指挥与控制技术领域。


背景技术:

2.随着军事科技的迅猛发展,无人化作战逐渐成为未来战争的主要作战样式之一。对于陆地无人化作战而言,以机器人士兵取代真人作战是未来战斗系统发展的趋势。随着军事系统中越来越多的无人驾驶机、无人驾驶车等设备的使用,传统的集中式解决方式已经无法满足现代战争的要求。越来越多的军事系统要求采用分布式的,具有定位和通信功能的多机器人系统。多个机器人之间的协作,往往可以比单个机器人更加高效和快速地完成各种复杂的任务,主要包括定位、任务分配、避障、路径规划任务等。其中多机器人搜寻问题是目前主要研究问题之一。
3.多机器人搜寻问题又可以分为单目标搜索和多目标搜索,前者是后者的特殊情况,对于单目标搜寻方法而言,有明确规划机器人行为的意图合作式方法。例如梯度下降法和博弈论法等。有通过智能行为涌现来完成规定任务的涌现合作式方法,例如扩展微粒群算法和萤火虫算法等。其中,涌现合作式方法的效率较高。单目标协同搜索仅在个体层面发生,本质是细粒度协同,目前已进行了较为充分的研究。而多目标搜索涉及任务分解、分配、规划、决策及执行过程中对系统运行机制、各机器人的功能与角色,以及机器人之间的相互关系都有不同的要求,是面向动态环境、具有自主性和自适应性的复杂环境。
4.多机器人多目标协作搜寻的主要任务是在最短的时间内找到所有的目标,对于这一优化问题,可以使用微粒群算法、萤火虫算法、遗传算法等优化算法。譬如,pugh等将微粒群算法扩展后用于群机器人协同,tang和eberhard用微粒群算法进行目标搜索研究,着重关注算法参数优化,冯艳红针对萤火虫算法在全局寻优搜索中收敛速度慢,求解精度低,易陷入局部极值区域等缺陷,提出一种基于混沌理论的动态种群萤火虫算法。张毅针对传统遗传算法存在的搜索效率低,易于陷入局部最优解的问题,提出了一种改进的遗传算法:采用简单的一维编码替代复杂的二维编码,节约了存储空间。在遗传算子的设计中,重新定义了交叉算子和变异算子,避免了陷入局部最优,最后将最短路径和免碰撞相结合作为适应度函数进行遗传优化。但是这些启发式算法主要关注的问题中目标的全局位置信息是未知的,所以仅仅使用启发式算法很难获取较优解,要求利用所有可以利用的信息和知识来指导机器人的搜寻行动。
5.强化学习作为解决序贯决策问题的机器学习方法,通过与任务环境的“交互试错”直接学得策略,不需要人为的构建推理模型和大量的样本数据,具有很强的适用性和通用性,但存在的显著问题是学习效率较低,甚至在复杂的任务环境中无法学得有效的策略。如何在有限的计算资源下,提高强化学习的学习效率,实现多机器人在复杂环境下高效地协同探索,即是本发明要解决的主要问题。


技术实现要素:

6.本发明旨在提出一种基于累积迹的奖励与探索方法,用于解决强化学习方法训练过程中存在的探索与利用的矛盾,提高强化学习的学习效率。
7.本发明采用以下技术方案。
8.本发明提供一种基于累积迹强化学习的多机器人协同搜索方法,包括以下步骤:步骤1:根据任务确定多目标各时刻对应的状态和动作;
9.步骤2:初始化神经网络和目标神经网络,将神经网络与目标神经网络的神经元参数设为相同;设定奖励因子、折扣系数以及各动作对应的奖惩量;
10.步骤3:根据当前时刻的状态s
t
选择动作a
t
;执行动作a
t
,确定对应的奖惩量r
t
以及下一时刻的状态s
t 1
,获得包括当前状态s
t
、选择的动作a
t
、奖惩量r
t
以及下一时刻状态的状态s
t 1
的状态动作对数据(s
t
,a
t
,r
t
,s
t 1
),并将状态动作对(s
t
,a
t
)的访问次数count(s
t
,a
t
)加1;重复执行步骤3直至获得特定数量的状态动作对数据,状态动作对(s
t
,a
t
)的访问次数count(s
t
,a
t
)也就是状态s
t
下选择动作a
t
的次数;
11.步骤4:从获得的特定数量的状态动作对数据中选择设定个数n的状态动作对数据;针对选定的每个动作状态对数据,基于预设的奖励因子以及各状态动作对的访问次数计算该状态动作对的额外奖励;基于获得的额外奖励、所述折扣系数以及状态动作对数据中的奖惩量计算目标神经网络的输出量;计算目标神经网络的输出量与神经网络的输出量之间的误差,并根据随机梯度下降更新神经网络的神经元参数;设定步数后将神经网络与目标神经网络的神经元参数设为相同;
12.步骤5:返回步骤3直至神经网络收敛,结束训练得到神经网络策略模型;
13.步骤6:根据神经网络策略模型得到多机器人协同搜索策略,生成多机器人目标协同搜索方法。
14.进一步地,根据当前时刻的状态选择动作的具体方法如下:
15.产生随机数(可选地,产生的随机数范围为0到1,所述预设阈值为0.5),将产生的随机数与预设阈值比较;
16.若随机数小于预设阈值,则计算动作集中除去当前时刻的状态下使神经网络值最大时选择的动作以外的其它动作的选择概率,确定选择概率最大的动作并选择该动作;
17.若所述随机数大于等于预设阈值,则选择当前时刻的状态下使神经网络值最大时选择的动作,表达式下:
18.其中表示当前时刻的状态s
t
下使神经网络值最大时选择的动作a,θ为目标神经网络的神经元参数,a为动作集。
19.再进一步地,动作ai的选择概率的计算方法如下:
[0020][0021]
其中prob(aj)表示选择动作aj的选择概率;t表示温度大小,count(s,ai)表示状态
动作对(s,aj)的访问次数,也就是在状态s下选择动作ai的次数,count(s,ak)表示状态动作对(s,ak)的访问次数,也就是在状态s下选择动作ak的次数,k为动作的索引,其取值范围为动作空间(动作空间也就是动作集a)中所有的动作数目。
[0022]
进一步地,针对每个动作状态对,基于预设的奖励因子计算该状态动作对的额外奖励的具体方法包括:
[0023][0024]
其中r

为额外奖励,β为奖励因子,count(si,ai)表示状态动作对(si,ai)的访问次数,也就是在状态si下选择动作ai的次数。
[0025]
进一步地,基于获得的额外奖励、所述折扣系数以及状态动作对中的奖惩量计算目标神经网络的输出量yi的方法如下:若状态动作对(si,ai)是选择的最后一个状态动作对,则将该状态动作对应的奖惩量ri作为目标神经网络的输出量yi;表达式为:yi=ri;
[0026]
若状态动作对不是选择的最后一个状态动作对,则按照以下公式计算目标神经网络的输出量yi:其中i=1,2

n,r

为额外奖励,β为奖励因子,γ为折扣系数,表示在状态s
i 1
下评估目标神经网络输出的各个动作所对应的q值中最大的那个q值;θ-表示目标神经网络的神经元参数,a为动作集。
[0027]
进一步地,计算目标神经网络在状态动作对(si,ai)下的输出量与神经网络在状态动作对(si,ai)下的输出量之间的误差error的公式如下:
[0028][0029]
其中i=1,2

n,yi为目标神经网络在状态动作对(si,ai)下的输出,q(si,ai;θ)为为神经网络在状态动作对(si,ai)下的输出。
[0030]
本发明所取得的有益技术效果:
[0031]
本发明提供了基于累积迹强化学习的多机器人协同搜索方法,解决强化学习方法训练过程中存在的探索与利用的矛盾。本发明对智能体访问过的状态动作对进行记录,累积每个动作状态对的访问次数,引入玻尔兹曼分布方法,设计基于累积迹的探索方式,计算获得选择动作ai的概率大小,温度t大小,代表着随机性的大小。随着学习不断的深入,不断降低温度,保证之前学习的成果没有被破坏。本发明通过加入基于累积迹的额外奖励的方式,来引导智能体进行探索,是以强化学习算法作为主体算法,在强化学习算法基础上进行改进,能够和任意强化学习算法进行结合,提高了强化学习的学习效率,实现多机器人在复杂环境下高效地协同探索。
附图说明
[0032]
图1为本发明具体实施例基于累积迹探索与奖励方式的强化学习框架;
[0033]
图2为本发明具体实施例基于累积迹强化学习的多机器人目标搜索方法流程。
具体实施方式
[0034]
为了使本发明的目的、技术方案及优点更加清楚,下面对本发明作进一步描述。应当理解,以下实例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0035]
强化学习目标是智能体通过与未知环境的交互,进行试错行为,不断学习来调整自身策略以最大化自身得到的奖励。由于环境的未知性,智能体只有在“充分”探索环境后,才能找到最优策略。然而在大部分情况下,智能体为了获得最高的奖赏,在有限的计算资源下,需要有所权衡,这也就是强化学习应用到实际机器人目标搜索问题中关键挑战之一
---
探索与利用困境。即一方面需要利用已有的经验选择能够获益最大的行为策略,另一方面需要扩大搜索范围,选择新的策略,探索未知的空间,以期寻找到更优的行为策略。
[0036]
传统强化学习,由于没有真实的目标值对当前样本进行标记,所以强化学习常用时序差分的思路,用当前估计的值函数q替代真实值函数作为目标值y,即
[0037][0038]
其中,r
t
是智能体t时刻下收到的环境奖励,γ是强化学习中的折扣系数,s
t 1
代表t 1时刻下环境状态,a代表t时刻下智能体的动作,就是表示在状态s
i 1
下神经网络输出的特定动作所对应的q值中最大的那个q值。
[0039]
由于智能体动作选择存在的探索与利用的矛盾,导致了强化学习的学习效率较低,只有在迭代很多步后才会逐渐收敛。为在一定程度上克服这个缺点,本发明提出了一种基于累积迹的奖励与探索方法,对智能体访问过的状态动作对进行记录,累积每个动作状态对的访问次数,引入玻尔兹曼分布方法,设计基于累积迹的探索方式:
[0040]
prob(ai)代表选择动作ai的概率大小,t是温度大小,代表着随机性的大小。随着学习不断的深入,不断降低温度,保证之前学习的成果没有被破坏。
[0041]
另外,本发明通过加入基于累积迹的额外奖励的方式,来引导智能体进行探索,额外奖励计算方式如下:
[0042][0043]
β是奖励因子,count(s,a)记录智能体访问不同动作状态对的次数,访问动作状态对(s,a)也就是在状态s下选择动作a,每访问一次,count(s,a)累积加一。智能体通过奖励(r r

)进行训练,测试时不加入额外奖励。
[0044]
下面,以多个无人车在战场环境下搜寻目标,如何高效搜索找到所有目标为例,描述基于累积迹强化学习的多机器人协同搜索过程。流程图如图1所示,包括以下步骤:
[0045]
步骤1作战任务空间描述和环境的构建
[0046]
1)多个无人车在复杂山地中寻找多个目标基本态势
[0047]
无人车担负前沿阵地侦察测量任务。依据作战计划,无人车自某某地域开始出发,
战场环境中存在若干未知位置障碍,无人车需要到达计划地点,对当前蓝军守备的阵地进行侦察测量。预计,1000个时间步长后,到达x、y、z要点,完成侦察测量任务,保障上级纵深攻击力量进入战斗。
[0048]
2)无人车编成与部署
[0049]
无人车共5个组,每个组表示为1个侦察单位,一个组有1辆无人车。无人车首先部署于西北角。
[0050]
3)侦察任务完成条件
[0051]
我方无人车担负侦察任务,并于作战时间1000个时间步长后,x、y、z要点均至少有1个无人车单位到达。
[0052]
4)状态集、动作集和奖赏反馈
[0053]
每个t时刻的状态s
t
为:
[0054]st
={x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x8,y8}
[0055]
其中x和y分别代表每个实体的位置(横纵坐标)。下标代表实体编号:{1,2,3,4,5}代表我方作战单位(无人车),{6,7,8}代表任务目标位置。各维状态变量的取值范围为x∈[0,3000],y∈[0,3000]。
[0056]
每个t时刻的动作a
t
为:
[0057]at
={move1,move2,move3,move4}
[0058]
其中,move1代表无人车的机动动作,向前前进;move2代表无人车后退,move3代表无人车向左转,move4代表无人车向右转,机动动作的取值范围为move∈[0,50],0代表不机动,1-50代表机动至相邻的50个方格。
[0059]
奖赏反馈:
[0060]
到达x,y,z要点的奖励均为r= 500;
[0061]
碰到障碍惩罚r=-200
[0062]
无人车相碰惩罚r=-100;
[0063]
步骤2算法参数的初始化
[0064]
神经网络q(s,a;θ)和目标神经网络q^(s,a;θ-)均采用含2个隐层(64个神经元)的全连接神经网络,并初始化两神经网络的参数同步θ-=θ,优化方法采用adam梯度下降算法,学习率为0.0001。具体编程实现以google的tensorflow机器学习库为基础,使用python语言开发。初始化记忆存储单元d,容量为20000。初始化状态动作对(s,a)的访问次数计数器count(s,a)=1,其中s为状态,a为动作,对(s,a)的访问次数也就是状态s下选择动作a的次数。设置折扣系数γ=0.95,贪心策略ε=0.01,批处理大小η=32,温度t=20,目标神经网络更新间隔c=10。
[0065]
步骤3动作选择
[0066]
根据战场环境(即当前时刻t的状态)s
t
选择动作a
t
,选择方法如下:
[0067]
产生随机数,将产生的随机数与预设阈值比较;
[0068]
若随机数小于预设阈值,则计算动作集中除去当前时刻的状态下使神经网络值最大时选择的动作以外的其它动作的选择概率,确定选择概率最大的动作并选择该动作;
[0069]
若所述随机数大于等于预设阈值,则选择当前时刻的状态下使神经网络值最大时
选择的动作,表达式下:其中表示当前时刻的状态s
t
下使神经网络值最大时选择的动作a,θ为目标神经网络的神经元参数,a为动作集。
[0070]
动作aj的选择概率的计算方法如下:
[0071][0072]
其中prob(aj)表示选择动作aj的选择概率;t表示温度大小,count(s,aj)表示状态动作对(s,aj)的访问次数,也就是在状态s下选择动作aj的次数,count(s,ak)表示状态动作对(s,ak)的访问次数,也就是在状态s下选择动作ak的次数,k为动作的索引,其取值范围为动作集a中所有的动作数目。
[0073]
步骤4执行动作a
t
后,观察环境得到下一时刻的态势s
t 1
和奖赏r
t
,将(s
t
,a
t
,r
t
,s
t 1
)数据存储于记忆单元d。
[0074]
步骤5状态动作对计数器加一
[0075]
count(s
t
,a
t
)

count(s
t
,a
t
) 1
[0076]
步骤6若记忆存储单元d的容量d未填满,返回步骤3;若填满,进行步骤7。
[0077]
步骤7从d中,以随机采样方式,采样32组(si,ai,ri,s
i 1
)(i=1,2

n)数据,其中si表示i时刻的状态,s
i 1
表示下一时刻的状态。
[0078]
步骤8根据状态动作对计数器计算额外奖励:
[0079][0080]
步骤9若状态动作对(si,ai)是选择的最后一个状态动作对,则将该状态动作对应的奖惩量ri作为目标神经网络的输出量yi;表达式为:yi=ri;
[0081]
若状态动作对不是选择的最后一个状态动作对,则按照以下公式计算目标神经网络的输出量yi:其中i=1,2

n,r

为额外奖励,β为奖励因子,γ为折扣系数,表示在状态s
i 1
下评估目标神经网络输出的各个动作所对应的q值中最大的那个q值;θ-表示目标神经网络的神经元参数,a为动作集。
[0082]
注意:计算yi时使用的是目标神经网络而不是q。
[0083]
步骤10计算误差error=(y
i-q(si,ai;θ))2,并根据随机梯度下降更新神经网络神经元参数θ。
[0084]
步骤11每10步将目标神经网络的与神经网络q的网络神经元参数同步,即将神经网络和目标神经网络的神经元参数设定相等,θ=θ-。
[0085]
步骤12返回步骤3,直至值函数神经网络q收敛,结束。
[0086]
步骤13根据值函数q,得到策略并将该策略部署至仿真环境中,生成多机器人目标协同搜索方法。
[0087]
本发明是以强化学习算法作为主体算法,在强化学习算法基础上进行改进,能够和任意强化学习算法进行结合。下面分别以强化学习算法中的代表算法dqn和ddpg算法为例,进行改进。
[0088]
实施例二、改进后的dqn算法流程如图1所示,改进后的dqn算法具体的实施步骤如下,基于累积迹的奖励与探索设计位于步骤3和8。本实施例提供的基于累积迹强化学习的多机器人协同搜索方法,包括以下步骤:
[0089]
步骤1构建机器人目标搜索的仿真环境。仿真环境能够提供的输出有:每个时刻t的战场态势s
t
;当机器人根据战场环境s
t
做出决策a
t
后下一时刻的战场环境s
t 1
和奖赏r
t

[0090]
步骤2算法参数的初始化:初始化神经网络q(s,a;θ)。初始化目标神经网络q^(s,a;θ-),并令两神经网络的神经元参数同步θ-=θ。初始化状态动作对计数器count(s,a)=1。初始化记忆存储单元d,容量大小为d,设置折扣系数γ,温度t,批处理容量大小为η,目标神经网络更新间隔c。
[0091]
步骤3根据战场环境s
t
选择动作a
t
,选择方法与以上实施例中的选择方法一样,本实施例中不再赘述。
[0092]
步骤4执行动作a
t
后,观察环境得到下一时刻的环境s
t 1
和奖赏r
t
,将(s
t
,a
t
,r
t
,s
t 1
)数据存储于记忆单元d。
[0093]
步骤5状态动作对计数器加一
[0094]
count(s
t
,a
t
)

count(s
t
,a
t
) 1
[0095]
步骤6若记忆存储单元d的容量d未填满,返回步骤3;若填满,进行步骤7。
[0096]
步骤7从d中,以随机采样方式,采样n组(si,ai,ri,s
i 1
)(i=1,2

n)数据,其中s
i 1
表示下一时刻的状态。
[0097]
步骤8根据状态动作对计数器计算额外奖励:
[0098][0099]
步骤9对每组数据计算yi,方法如下:若状态动作对(si,ai)是选择的最后一个状态动作对,则将该状态动作对应的奖惩量ri作为目标神经网络的输出量yi;表达式为:yi=ri;
[0100]
若状态动作对不是选择的最后一个状态动作对,则按照以下公式计算目标神经网络的输出量yi:其中i=1,2

n,r

为额外奖励,β为奖励因子,γ为折扣系数,表示在状态s
i 1
下评估目标神经网络输出的各个动作所对应的q值中最大的那个q值;θ-表示目标神经网络的神经元参数,a为动作集。
[0101]
注意:计算yi时使用的是目标神经网络而不是q。
[0102]
步骤10计算误差error=(y
i-q(si,ai;θ))2,并根据随机梯度下降更新神经网络神经元参数θ。
[0103]
步骤11每c步将与q的参数同步
[0104]
步骤12返回步骤3,直至值函数神经网络q收敛,结束。
[0105]
步骤13根据值函数q,得到策略并将该策略部署至仿真环境中,生成机器人目标搜索策略。
[0106]
改进后的ddpg算法具体的实施步骤如下,基于累积迹的奖励与探索设计位于步骤3和8:
[0107]
步骤1构建机器人目标搜索的仿真环境。仿真环境能够提供的输出有:每个时刻t的战场态势s
t
;当机器人根据战场环境s
t
做出决策a
t
后下一时刻的战场环境s
t 1
和奖赏r
t

[0108]
步骤2算法参数的初始化:初始化critic神经网络q(s,a;θq)和actor网络u(s;θu)。初始化目标网络q

(s,a;θq′
)和u

(s;θu′
),同时令参数θq′
=θq,θ
μ

=θ
μ
,θq′
,θq,θu′
,θu分别表示目标网络中critic网络的参数,评估网络中critic网络的参数,目标网络中actor网络的参数,评估网络中actor网络的参数。初始化状态动作对计数器count(s,a)=1。初始化记忆存储单元d,容量大小为d,设置折扣系数γ,温度t,批处理容量大小为η,目标神经网络更新间隔c,目标神经网络更新系数τ。
[0109]
步骤3根据战场环境s
t
选择动作a
t
,选择方法与实施例一中描述一样。
[0110]
步骤4执行动作a
t
后,观察环境得到下一时刻的环境s
t 1
和奖赏r
t
,将(s
t
,a
t
,r
t
,s
t 1
)数据存储于记忆单元d。
[0111]
步骤5状态动作对计数器加一
[0112]
count(s
t
,a
t
)

count(s
t
,a
t
) 1
[0113]
步骤6若记忆存储单元d的容量d未填满,返回步骤3;若填满,进行步骤7。
[0114]
步骤7从d中,以随机采样方式,采样n组(si,ai,ri,s
i 1
)(i=1,2

n)数据,其中s
i 1
表示下一时刻的状态。
[0115]
步骤8根据状态动作对计数器计算额外奖励:
[0116][0117]
步骤9对每组数据计算
[0118]
这里达到终止状态指的是状态动作对(si,ai)是选择的最后一个状态动作对。
[0119]
注意:计算yi时使用的是目标神经网络q'而不是q。
[0120]
步骤10计算误差
[0121]
步骤11计算梯度并根据随机梯度下降更新神经网络神经元参数θq和θu。
[0122]
步骤12每c步对应更新目标网络参数θq′
=τθq (1-τ)θq′
,θ
μ

=τθ
μ
(1-τ)θ
μ

[0123]
步骤13返回步骤3,直至critic神经网络q(s,a|θq)和actor网络μ(s|θ
μ
)收敛,结束。
[0124]
步骤14根据actor网络μ(s|θ
μ
),得到策略并将该策略部署至
仿真环境中,生成机器人目标搜索策略。
[0125]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0126]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0127]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0128]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0129]
以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献