一种用于战场仿真环境下深度强化学习推演决策训练的加速方法与流程

文档序号:20370746发布日期:2020-04-14 13:08阅读:820来源:国知局
一种用于战场仿真环境下深度强化学习推演决策训练的加速方法与流程

本发明涉及仿真领域和智能算法领域,尤其涉及基于深度强化学习技术的战场仿真环境下的智能推演决策方法。



背景技术:

随着计算机技术以及信息化装备的发展,基于仿真技术的战场仿真对军事作战领域进行逼真模拟,形成虚拟的数字化战场,能够以较低的人力、物力和时间成本进行想定环境下的实战演练和作战效能分析。基于战场仿真平台的推演能够辅助进行战法研究,制定或检验作战计划等。

近年来,人工智能技术迅猛发展。随着alphago系列算法成为此次人工智能热潮的标志性工作之一,其背后的深度强化学习技术引起学术界和工业界广泛关注,也被越来越多的应用于生产生活中。如淘宝将深度强化学习技术应用于电商推荐服务以增加成交量,deepmind公司将其应用于谷歌公司数据中心的资源调配工作以降低电力成本等。在特定想定环境下的推演任务在本质上可被抽象化为序列决策任务,基于深度强化学习所获得的推演决策将丰富作战计划的制定,同时可通过对战等形式更好的进行作战计划的效能分析。因此,基于深度强化学习的推演决策有着重要的实用价值和深远意义。

但是,深度强化学习技术在落地应用过程中还存在诸多困难。众所周知,深度学习技术需要大量数据驱动。而强化学习技术以试错的方式进行策略学习,虽然不同于监督学习因为对大量标注数据的需求而开展繁琐的数据标注工作,但也需要通过与环境持续交互获取足够多的样本。因此,结合深度学习和强化学习的深度强化学习势必需要更多的样本和更多次数的训练。所以深度强化学习技术落地的一大重要挑战便是需要大量与环境交互产生的样本,学习速度慢。而在现实生活以及战场仿真的很多场景中,与环境交互获取样本的时间、金钱成本较高。

针对深度强化学习的样本效率和训练速度问题,多种改进算法分别从不同角度去提升算法性能。经验优先级回放方法通过给样本设置优先级,令引起较大参数更新的样本被采样的概率增加,从而提高训练速度;duelingdqn方法通过更改神经网络架构,将动作值函数分成优势值函数和状态值函数的加和,以提高对动作值函数的更新,从而提高训练速度;值函数分布方法通过使用一个离散分布来表示动作值函数,以提高对动作值函数的估计。rainbow算法将多种不同角度的改进方法组合成为一种方法,取得了更好的算法性能,表明不同角度的改进方法可以协同作用。



技术实现要素:

本发明的目的是针对深度强化学习训练次数多、样本需求量大的问题,从更准确评定当前动作执行效果的角度提出一种用于战场仿真环境下深度强化学习推演决策训练的加速方法。该方法引入基于期望值函数的启发动作值函数更好的对执行动作的性能表现进行评价,从而更准确的估计动作值函数,进而更准确的更新神经网络参数,最终提高训练速度,减少样本需求量。

本发明提出的一种用于战场仿真环境下深度强化学习推演决策训练的加速方法主要包括以下步骤:

(1)任务建模,构建动作空间、状态空间和回报函数;

(2)agent算法的初始化;

(3)agent持续基于当前神经网络与战场仿真环境交互,并将获取的信息存放在经验缓存池d;

(4)在经验缓存池中随机选择信息作为在线神经网络和目标神经网络的输入,并分别获取两个神经网络的输出

(5)分别基于两个神经网络的输出计算期望值函数

(6)基于计算所得的期望值函数计算启发动作值函数

(7)使用启发动作值函数更新启发神经网络的参数;

(8)结合启发动作值函数更新在线神经网络的参数;

(9)定期进行目标神经网络的参数更新。

以上是本发明的总体步骤,特别是在基本的深度q神经网络算法上添加步骤(6)、(7)、(8)后,整个算法才具有较快完成训练的先进性。其具体步骤如下:

步骤(6)中所述,基于计算所得的期望值函数计算启发动作值函数。其中,基于步骤(5)中期望值函数计算启发动作值函数,并通过启发动作值函数来辅助衡量所选择样本中在状态所选择动作的好坏,从而获得更好的策略。启发动作值函数为

步骤(7)中所述,使用启发动作值函数更新启发神经网络的参数。其中,为了增强启发动作值函数的泛化能力,增加并训练启发神经网络。具体操作为将状态输入到启发神经,输出为。通过启发动作值函数作为启发神经网络训练目标,对启发神经网络的参数更新方式为

在不需要考虑泛化的情况下,可直接使用启发动作值函数而不必重新设置一个启发神经网络。所以,通过启发神经网络训练所获得的启发动作值函数和步骤(5)所得启发动作值函数在后面均使用表示。

步骤(8)中所述,结合启发动作值函数更新在线神经网络的参数。其中,当采用启发神经网络时,为避免神经网络在训练初期输出值偏差过大而影响训练,通过结合-贪婪策略的参数来调节启发动作值函数的影响量级。所以在线神经网络的更新方式为

当不采用启发神经网络时,直接使用基于在线神经网络和目标神经网络计算的启发动作值函数进行在线神经网络的参数更新,更新

本发明具有如下优点及效果:

(1)本发明适用于所有采用deepqnetwork(dqn)网络架构的算法,即包含一个在线网络和一个目标网络的算法,具有普适性、通用性;

(2)本发明通过引入基于神经网络所输出动作值函数的启发动作值函数,能够更准确的衡量所执行动作的性能表现,从而更高效的完成神经网络参数的更新,进而提高训练效率、减少所需样本;

(3)本发明所使用添加启发动作值函数项的损失函数,当对性能表现较好的动作所对应的动作值函数进行更新时,能够加强该动作值函数的增加或者抑制该动作值函数的减小;当对性能表现较差的动作所对应的动作值函数进行更新时,能够加强其减小或抑制其增加。最终,使得不同动作的动作值函数差距加大,能够缓解动作值函数的过估计问题。

附图说明

图1是本发明一种用于战场仿真环境下深度强化学习推演决策训练的加速方法的流程图;

图2是本发明一种用于战场仿真环境下深度强化学习推演决策训练的加速方法的侦察机控制器示意图;

图3是本发明一种用于战场仿真环境下深度强化学习推演决策训练的加速方法的神经网络结构及参数更新示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,参照附图,对本发明进行进一步详细说明。有必要指出,以下实施例只用于该方法做进一步的说明,不能理解为对该方法保护范围的限制,该领域技术熟练人员根据上述该方法内容对该方法做出一些非本质的改进和调整,仍属于本发明的保护范围。

本发明提出的一种用于战场仿真环境下深度强化学习推演决策训练的加速方法的具体实施方式,包括以下步骤:(1)任务建模,构建动作空间、状态空间和回报函数;(2)agent算法的初始化;(3)agent持续基于当前神经网络与战场仿真环境交互,并将获取的信息存放在经验缓存池d;(4)在经验缓存池d中随机采样信息作为在线神经网络和目标神经网络的输入,并分别获取两个神经网络的输出;(5)分别基于两个神经网络的输出计算期望值函数;(6)基于计算所得的期望值函数计算启发动作值函数;(7)使用启发动作值函数更新启发神经网络的参数;(8)结合启发动作值函数更新在线神经网络的参数;(9)定期进行目标神经网络的参数更新。

下面结合图1,以仿真战场中控制侦察机执行侦查任务为实例,对该发明的各步骤进行详细说明。图1是本发明一种用于战场仿真环境下深度强化学习推演决策训练的加速方法的流程图。如图1所示,该方法包括以下几个步骤:

(1)任务建模,构建动作空间、状态空间和回报函数基于战场基本规则和想定环境条件,设置任务执行成功与否的奖励值和状态空间以及动作空间。在控制侦查飞机执行侦查任务的本实例中,如图2所示,图2为一种用于战场仿真环境下深度强化学习推演决策训练的加速方法的侦察机控制器示意图,算法的agent即侦察机控制器。该侦查机的动作空间大小||a||为16,具体为方向动作(保持方向、上升、下降、左转、右转)和速度动作(加速、匀速、减速)的动作组合,以及撤退动作;将自身坐标和可视范围内的单位坐标放入状态张量作为当前时刻的状态;将到达指定侦查目的地的奖励值设置为+1,将被对方发现的奖励值设置为-1。

(2)侦察机控制器的算法初始化

本发明中侦察机控制器的神经网络结构如图3所示,图3为一种用于战场仿真环境下深度强化学习推演决策训练的加速方法的神经网络结构及参数更新示意图。在本发明中,共有3个神经网络:分别为在线神经网络online-network、目标神经网络target-network和启发神经网络heu-network。三个神经网络使用相同的神经网络结构,其中在线神经网络和目标神经网络的输出个数对应于环境动作空间大小||a||,启发神经网络的输出个数为1。在训练开始前,对三个神经网络进行参数的随机初始化。

另外,在本发明中需要使用经验缓存池d保存训练过程中agent与战场环境交互获取的数据。所以,训练前将经验缓存池大小设计为nbuffer。

(3)侦察机控制器持续基于当前神经网络与战场仿真环境交互,并将获取的信息存放在经验缓存池d

侦察机控制器在状态基于当前神经网络的输出遵循-贪婪策略π(at|st)选择动作at,在战场环境中执行动作at并在下一时刻获取状态st+1,并接收来自环境反馈的奖励值rt。之后,侦察机控制器将状态,st,所执行动作at,下一状态,st+1和奖励值rt打包成(st,at,rt,st+1)一同存入经验缓存池d中。

其中,ε-贪婪策略为:

此算法为在线学习算法,侦察机控制器依赖当前神经网络按照上述方式与战场环境进行持续的交互并储存信息,并利用该储存信息来训练侦察机控制器中神经网络的训练。

(4)在经验缓存池中随机选择信息作为在线神经网络online-network和目标神经网络target-network的输入,并分别获取两个神经网络的输出

当经验缓存池d中储存的样本数量达到事先设定的可以进行训练的数量n后,便可以对侦察机控制器的神经网络结构进行训练。具体为从中随机选择一批样本;首先将所选样本中的状态先进行同等程度的标准化处理;然后分别输入到在线神经网络,并输出||a||个动作值函数;将所选样本中的下一状态输入到目标神经网络中,输出动作值函数

(5)分别基于两个神经网络的输出计算期望值函数

分别基于侦察机控制器中在线神经网络和目标神经网络的输出,即动作值函数,结合-贪婪策略通过求期望的方式获得期望值函数.

状态的期望值函数为

其中,为当前最优动作值函数所对应的贪婪动作。

同理,下一状态的期望值函数为

(6)基于期望值函数计算启发动作值函数

基于上述期望值函数计算启发动作值函数,并通过启发动作值函数来辅助衡量所选择样本中在状态上侦察机控制器所选择动作的好坏,从而获得更好的策略。启发动作值函数为

(7)使用启发动作值函数更新启发神经网络heu-network的参数

通过训练启发神经网络,增强启发动作值函数的泛化能力。具体操作为将状态输入到启发神经,输出为。通过启发动作值函数作为启发神经网络训练目标,对启发神经网络的参数更新方式为

在不需要考虑泛化的情况下,可以直接使用启发动作值函数而不必重新设置一个启发神经网络。所以,通过启发神经网络训练所输出的启发动作值函数和步骤(5)所得启发动作值函数在后面均使用表示。

此外,在本实例中,侦察机控制器使用了启发神经网络。

(8)结合启发动作值函数更新在线神经网络online-ntwork的参数

在采用启发神经网络的本实例中,为避免神经网络在训练初期输出值偏差过大而影响训练,通过结合-贪婪策略的参数来调节启发动作值函数的影响量级。所以在线神经网络的更新方式为

当不采用启发神经网络时,直接使用基于在线神经网络和目标神经网络计算的启发动作值函数进行在线神经网络的参数更新,更新方式为

(9)定期进行目标神经网络target-network的参数更新

当训练次数达到预先设定的nupdate时,将在线神经网络的参数直接复制给目标神经网络,完成目标神经网络参数的更新;如训练次数没有达到nupdate,则跳过目标神经网络的参数更新,继续下一次迭代。

经过上述步骤,整个算法具体表现为在未添加启发动作值函数之前,动作值函数主要依靠基于奖励值的折扣累积回报;在添加动作值函数之后,在每一步的更新中都可以基于相邻的状态值函数来辅助评估引起该状态转移的动作的性能表现,从而更准确的评估该动作对应的动作值函数,特别是在类似于本控制侦察机执行侦查任务实例所述稀疏奖励问题中。最终,使用本发明方法能够有效加快战场仿真环境下深度强化学习推演决策的训练速度,提高样本效率。

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