本发明涉及视频游戏决策方法,尤其涉及一种基于辅助任务学习的视频游戏决策方法。
背景技术:
视频游戏出现于20世纪70年代初,自视频游戏诞生起,通过人工智能技术实现视频游戏中的智能体的自动决策这项技术,一直是工业界和学术界研究的热点,有着巨大的商业价值。近年来,深度强化学习方法的快速发展为实现这项技术提供了有效途径。通常来讲,游戏决策技术的好坏完全由游戏中得分多少或者能否赢得比赛而决定,视频游戏也是如此。
人工智能技术的发展日新月异,机器博弈作为其中的热门研究领域受到了研究者的广泛关注。近年来,以深度强化学习算法为代表的机器博弈方法得到了长足的发展。一方面,alphago等围棋智能体的成功标志着深度强化学习算法在完备信息机器博弈领域已取得了重大突破。另一方面,非完备信息机器博弈因其复杂度高、信息感知不完全等特点,已成为人工智能领域新的研究焦点。
针对视频游戏博弈中高维状态空间与信息感知不完全的问题虽然利用基于内在奖励策略优化算法的深度强化学习方法可以较好的解决,但是内在奖励生成模块的原理是根据对未见状态的不确定度量化产生相应的内在奖励值,当智能体逐渐展开对环境的探索之后,其在场景中的活动范围越来越广,因此智能体经历未见状态的概率也就越来越小。因此,随着智能体探索区域的扩大,内在奖励值会逐渐减小并且逐渐成为经验回放池中非主要的奖励信号来源。此时为了从复杂的三维视频游戏信号输入中获取到对智能体学习长期行动的有用奖励值,只从利用内在奖励增加奖励信息来源这个角度考虑问题不够全面。另一方面三维视频游戏中智能体做出行动决策通常是一个阶段性且较长时间序列的过程,并且智能体的动作决策与当前所处的状态画面具有较高的关联度,智能体做出的动作会引起状态画面的变化,深度强化学习中以神经网络对状态价值进行估计,这种估计是有偏的,从这个角度出发,如何更准确地估计三维场景中的状态价值以及引起状态改变的智能体动作是一个重要问题。
技术实现要素:
为了解决现有技术中的问题,本发明提供了一种基于辅助任务学习的视频游戏决策方法。
本发明提供了一种基于辅助任务学习的视频游戏决策方法,包括以下步骤:
s1、构建神经网格模型;
s2、启动多进程视频游戏环境;
s3、判断是否运行了指定轮次,如果否,则进入步骤s4,如果是,则进入步骤s6;
s4、获取游戏经验,更新经验池;
s5、将经验输入到神经网格模型,更新神经网格模型参数,返回步骤s3;
s6、保存神经网格模型;
s7、在视频游戏里利用神经网格模型决策;
s8、结束。
本发明的有益效果是:通过上述方案,可以更准确地估计三维场景中的状态价值以及引起状态改变的智能体动作。
附图说明
图1是本发明一种基于辅助任务学习的视频游戏决策方法的流程图。
图2是本发明一种基于辅助任务学习的视频游戏决策方法的数据样本训练奖励预测网络的模型结构图。
图3是本发明一种基于辅助任务学习的视频游戏决策方法的数据样本训练状态价值辅助网络的模型结构图。
图4是本发明一种基于辅助任务学习的视频游戏决策方法的数据样本训练动作价值辅助网络的模型结构图。
图5是本发明一种基于辅助任务学习的视频游戏决策方法的aibpo模型示意图。
图6是本发明一种基于辅助任务学习的视频游戏决策方法的aibpo网络结构图。
图7是本发明一种基于辅助任务学习的视频游戏决策方法的强化学习模型图。
图8是本发明一种基于辅助任务学习的视频游戏决策方法的动作决策过程图。
图9是本发明一种基于辅助任务学习的视频游戏决策方法的vizdoom平台寻路场景图。
图10是本发明一种基于辅助任务学习的视频游戏决策方法的vizdoom平台生存场景图。
具体实施方式
下面结合附图说明及具体实施方式对本发明作进一步说明。
应用深度强化学习方法,结合先进的内在奖励机制,形成具有一定智能水平的决策模型和技术,从而使游戏智能体在视频游戏获取高分,是本发明的核心内容。
如图1所示,一种基于辅助任务学习的视频游戏决策方法,包括以下步骤:
s1、构建神经网格模型;
s2、启动多进程视频游戏环境;
s3、判断是否运行了指定轮次,如果否,则进入步骤s4,如果是,则进入步骤s6;
s4、获取游戏经验,更新经验池;
s5、将经验输入到神经网格模型,更新神经网格模型参数,返回步骤s3;
s6、保存神经网格模型;
s7、在视频游戏里利用神经网格模型决策;
s8、结束。
本方法从增强智能体对环境奖励信息的感知能力和对强化学习状态信息的估计准确度的角度出发,本发明依据多任务学习中的辅助任务学习机制,提出和设计了三种类型的辅助学习任务。通过使用经验回放技术,采样智能体的交互数据用于辅助任务的训练,实现了深度强化学习与辅助任务学习的有效结合。在此基础上将辅助任务学习机制与内在奖励策略优化算法结合,进一步提升了原始强化学习算法训练出的智能体在三维场景中的性能。
本方法主要是为增强智能体对环境奖励信息的感知能力,提高对强化学习状态信息的估计准确度提供一种可行方案。
辅助任务学习机制是多任务学习领域中的一类方法。多任务学习利用不同任务之间的相似性辅助决策,与只优化单一目标的学习任务相比,能够从多个角度利用更丰富的辅助信息,而辅助任务学习机制使用相关任务改善原主任务模型,通常能带来加快学习速度、使算法更加鲁棒以及提升算法的训练效果等好处,这恰好满足三维场景智能体行动策略训练过程的需求。通过设计与三维场景的智能体训练过程相关的辅助任务,从而改善智能体在三维视频游戏场景中的性能表现。就深度强化学习算法而言,智能体训练过程中的关键部分是代表智能体行动策略的策略网络参数的学习和更新,智能体训练过程的目标是最大化所获得的奖励值,因此设计辅助任务学习的目标还是使智能体在主要行动策略的基础上,利用辅助任务提供的隐含决策信息学习到更加高效和鲁棒的行动策略,将不同辅助任务表示成为智能体提供决策支撑信息的不同的辅助策略,提出基于辅助任务学习机制的奖励特征增强框架定义如下:
式中
公式(3-1)定义了辅助任务学习机制的基本框架,辅助任务为智能体在三维场景中提供对应的辅助性策略。寻找辅助任务的基本假设是:辅助任务应该是与主任务密切相关的,或者是能够对主任务的学习过程有益的任务,并且辅助任务地设计目的是使智能体倾向于学习到更加有效地行动策略。从以上假设出发,本发明提出了奖励预测辅助任务、状态价值辅助任务和动作价值辅助任务作为内在奖励策略优化算法的相关任务,从增强智能体对环境信息的感知能力和对状态信息的估计准确度方面改善三维视频游戏中的深度强化学习算法的训练效果。
构建神经网络的具体过程如下:
1、基于辅助任务学习的奖励特征增强算法;
a.基于奖励预测的特征增强方法;
奖励值是深度强化学习算法进行智能体策略更新的驱动因素,在三维场景中智能体可能直接在当前状态获得环境的奖励反馈,但智能体的最终决策目标是最大化所获得的累计奖励值,这通常需要通过一系列连续的动作才能得到。针对三维场景中深度强化学习算法训练过程所具有的这种特点,本文设计了奖励预测辅助任务,该辅助任务基于这样的假设:为了使算法从整体上学习到环境信息的动态变化,智能体需要识别出能够在将来时刻带来较高奖励回馈值的输入状态所具有的特征,此时智能体能够倾向于做出带来长期最大化奖励的行动决策。因此,如果辅助策略能够使智能体较好地预测出下一时刻收获的环境奖励值,那么该辅助策略就有可能帮助智能体学习到更有效的状态价值表示,它从状态中提取出来的信息也能够促进主任务的行动策略学习。
本方法提出奖励预测辅助任务如下:利用经验回放池
奖励预测辅助任务当中,采样连续三个时刻的输入帧画面作为网络的输入,经过卷积层与全连接层的处理输出分类类别,而分类类别定义为智能体所获奖励值的类别,包括正值奖励、负值奖励和零值奖励。分类任务的标签是从经验回放池中采样的下一时刻的奖励信息对应的独热编码,根据常用于分类任务的多类别交叉熵损失函数把奖励预测网络的损失函数
式中:
由于深度强化学习算法经验回放池中存在的奖励值包括正值奖励、负值奖励和零值奖励,且三类奖励值所占比例均有不同,其中对于三维视频游戏场景而言,智能体交互产生的经验回访样本中零值奖励占比较多,如果直接从回放池中采样样本用于奖励预测网络的训练会导致大批量的训练样本都与零值奖励相关。因此在采样经验回放池的数据样本时使用了有偏的采样策略,保证非零值奖励信息与零值奖励信息具有同等的采样概率,从而保证训练样本中不同类别奖励值的占比不会有太过明显的差异性。通过设计奖励预测辅助任务,使算法在智能体的训练过程中关注近期的输入状态画面与即时的未来奖励信息间的联系,使智能体识别出三维场景环境中可能带来奖励信号的状态画面,倾向于做出能够带来奖励值回馈的动作。
b.基于状态价值的特征增强方法;
内在奖励策略优化算法中进行策略更新时使用了存储于经验回放池的优势函数估计值进行计算,而优势估计值的计算过程需要用到奖励值与状态价值,其中奖励值来源于内在奖励生成模块产生的内在奖励信号与环境反馈的外部奖励信号,而状态价值来源于内在奖励策略优化算法价值网络对当前输入状态的价值估计,而深度强化学习中的价值估计是有偏的,因此,如果辅助策略能够使深度强化学习算法倾向于做出更准确的状态价值估计输出,那么以此计算的优势估计值将更加准确,该辅助策略就有可能使智能体的训练过程更加稳定,从而使主要行动策略的学习更加高效。基于这样的考虑,本文提出了如下的状态价值辅助任务:内在奖励策略优化算法智能体在训练过程中存储环境交互数据元组于经验回放池中,对算法训练经验池中的历史状态价值
图3所示的状态价值网络中,采样连续三个时刻的输入帧画面作为网络的输入,经过卷积层、全连接层与lstm层的处理预测输出对应下一时刻帧画面的状态价值,该回归预测任务的标签是从经验回放池中采样的下一时刻的状态画面对应的状态价值,根据常用于回归任务的均方误差损失函数把状态价值网络的损失函数
式中
状态价值辅助任务中目标状态价值
c.基于动作价值的特征增强方法;
在内在奖励策略优化算法智能体的训练过程当中,策略网络输出了智能体的行动概率分布,算法通过该行动概率分布采样生成某个动作,作为提智能体在对应该输入状态下的行动输出,智能体在环境中的动作决策会引起自身所处环境状态的改变,并因此获得环境的奖励反馈。而动作价值则表示了智能体在当前状态下采取某一特定动作所能获得的即时奖励反馈,如果智能体的某一动作能够带来更高的即时奖励值反馈,就表示该动作具备更大的动作价值。因此,如果辅助策略能够使深度强化学习智能体倾向于做出具有更大动作价值的行为,那么在整体的训练过程中智能体将更容易学习到高效获取奖励反馈的主要行动策略。因此,本文提出了如下动作价值辅助任务:采样内在策略优化算法智能体训练过程中存储的动作价值,以连续时刻的输入帧画面和时序差分动作价值作为数据样本训练动作价值辅助任务。动作价值网络由浅层卷积神经网络与长短期记忆网络构成,该任务的模型结构如图4所示。
动作价值网络中采样连续三个时刻的输入帧画面作为网络的输入,经过卷积层、全连接层与lstm层的处理预测输出对应下一时刻帧画面的动作价值,该回归预测任务的标签是从经验回放池中采样的时序差分动作价值,即根据经验回放池中即时奖励值与折扣状态价值计算得到的。根据常用于回归任务的均方误差损失函数把动作价值网络的损失函数
式中
动作价值辅助任务中,时序差分动作价值
2、结合辅助任务的内在奖励策略优化算法;
深度强化学习算法的策略网络参数的学习和更新决定智能体在三维场景中的行动决策,智能体的主要行动策略由该网络决定。辅助任务的提出是为智能体的行动提供辅助性的决策支撑信息,通过不同的辅助任务使智能体在优化主要行动策略的同时兼顾辅助策略,从而学习到更加有效、鲁棒的三维场景行动策略。本方法所提出的内在奖励策略优化算法可用于智能体行动策略的学习,因此将辅助任务与内在奖励策略优化算法相结合,可为内在奖励策略优化智能体提供辅助性的决策信息。两者结合的要点是深度强化学习中的经验回访池,辅助任务的训练需要与相应状态信息、奖励信息和动作信息相关的数据样本,而内在奖励策略优化智能体的训练过程恰好存储了这些数据样本。因此通过经验回放池就能结合辅助任务与内在奖励策略优化算法,做法是在内在奖励策略优化算法的策略更新过程中加入根据经验回放样本更新辅助任务网络参数的步骤。采用这种做法,将结合辅助任务的内在奖励策略优化算法(auxiliaryintrinsicbasedpolicyoptimazation,aibpo)定义为:
式中
公式(3-5)给出了aibpo算法的整体框架,通过引入不同的辅助任务使ibpo算法在训练过程中能够学习到不同辅助性任务提供的相关信息,这些相关信息或者与深度强化学习算法的策略更新有关,或者与场景中的信息感知有关,分别从不同角度提升了策略优化算法在三维场景中的表现效果。此外,通过对辅助任务损失函数设置权重参数决定辅助任务对主任务的影响大小。aibpo算法的整体模型结构如图5所示。
深度强化学习算法在训练智能体时将相应的强化学习状态信息以元组的方式存储于经验回放池,将基于内在奖励策略优化算法的智能体在训练过程中与环境交互所得到的信息样本存储到相应的经验回放池,并基于不同的采样策略将经验回放池中的数据作为辅助任务的训练样本,从而有效地利用了深度强化学习算法的特性,为辅助任务提供充足的训练样本。
3、网络模型构建;
本方法是在ibpo(intrinsicbasedpolicyoptimazation)的基础上改进而来,在ibpo的基础上加入基于辅助任务学习的奖励特征增强算法,主体结构如图6所示。利用深度学习框架pytorch搭建神经网络整体分为3部分。
a.策略优化部分,其中包含actor网络和critic网络,两者共享部分隐层神经元。为了赋予外部奖励与内在奖励独立的监督信息,策略优化算法网络结构中的critic网络具有两个独立的奖励输出头,网络结构如表3-1所示
表3-1策略优化算法网络结构
b.内在奖励部分,其中目标映射网络与预测网络具有相同的网络结构,网络结构如表3-2所所示
表3-2内在奖励模型网络结构
c.提出了基于辅助任务学习的奖励特征增强算法,从增强智能体的环境感知能力与状态估计能力的角度改进算法的三维视频游戏中的表现,所提出的三种辅助任务的数据样本,来源于深度强化学习算法训练出的智能体与环境交互时存储的经验回放数据。奖励预测、状态价值和动作价值辅助任务的网络结构均由浅层卷积神经网络和长短期记忆网络构成。辅助学习任务的网络结构如表3-3所示
表3-3辅助任务学习网络结构
启动多进程视频游戏环境包括:强化学习需要大量数据来优化网络,单进程无法满足训练数据获取的要求,故通过利用torch的multiprocessing模块,在计算资源足够的情况下,尽可能的多的运行游戏进程。利用multiprocessing模块可以实现cuda的张量共享、避免和防止死锁、重用通过队列发送的缓冲区以及异步多进程训练。
获取游戏经验,更新经验池具体为:游戏胜利目标可以被广义的认为是在环境状态s下寻求合理行为a,而本方法要做的就是寻求利用环境反馈r来做出修正。这里,状态s是指随着行动发生,个体与相关区域所处的状态(state);行为a是指在状态s下,智能体所做出的对应行为(action);反馈r是指智能体在环境s中做出行为a的评价激励(reward)。在强化学习问题中,智能体可以通过行为a来改变环境状态s;提升手段利用评价反馈r来改变行为a;行为a和状态s联合起来,决定对应的反馈值r,其流程如图7所示。这一步要做的就是收集(s,a,r,s’)这四元组,存入经验池,为模型训练提供数据基础。
经验输入网络,更新网络参数具体为:根据上一步获取的数据,计算优势值、内部奖励以及辅助任务的值。利用公式3-5
更新网络,利梯度上升,更新网络参数,从而不断优化网络,智能体获得更高的收益。
在视频游戏利用模型决策具体为:如图8所示,启动游戏后,智能获得游戏的每一帧画面,归一化每一帧画面,把连续的4帧画面作为输入值,输入到训练好的模型中。模型计算后返回能获得高收益的动作,智能体在游戏中执行这个的动作,进而获得新的游戏画面,重复上面的过程直到游戏结束。
如图9至图10所示,本发明应用于各种视频游戏,以vizdoom为例展现本技术的优势。vizdoom平台是第一人称视角的三维视频游戏,智能体在该平台场景中的行动与真实世界中物体的行动类似,同样是接受视觉信号然后做出行动决策。作为目前较为主流的深度强化学习算法的测试平台,vizdoom平台提供了接口接受动作输入和反馈奖励信号,模拟了强化学习模型中的环境。目前vizdoom平台为训练智能体进行三维环境探索提供了较全面的测试能力,本文基于该平台的寻路场景、生存场景和探索场景进行了应用。
本方法应用开发环境如表1所示:
表1、实验开发环境
将本发明与以下几种现有方法进行比较:
(1)ibpo:内在奖励策略优化算法(intrinsicbasedpolicyoptimazation)。
(2)drqn:deeprecurrentq-networks,卷积层后加入循环层,来处理部分可观测状态。
(3)dfp:directfutureprediction,该算法在visualdoomaicompetition2016中的fulldeathmatchcompetition拔得头筹。
(4)a3c:asynchronousadvantageactor-critic,将actor-critic放到多个线程中同步训练,可以有效的利用计算机资源,提升训练效用。
(5)rainbow:该算法将比较常见的几种dqn改进方法都融合,实现了智能体性能的提升。
aibpo算法性能对比如下:
在vizdoom生存场景中,以存活时间步(
表2生存场景实验结果数据对比表一
由表2可知,ibpo算法在
虽然aibpo算法与dfp算法存在一些性能差距,但aibpo算法相较于传统深度强化学习算法具有较大的性能提升,其与a3c算法和rainbow算法的实验对比如表3所示.
表3生存场景实验结果数据对比表二
由表3可知,a3c算法和rainbow算法作为基于actor-critic和基于值迭代的深度强化学习算法中性能较为优秀的已有算法,所训练出的智能体在生存场景上的性能表现均逊色于aibpo算法。原因在于a3c算法和rainbow算法中缺少针对三维场景强化学习任务的特殊处理,因此在生存场景这种兼具探索迷宫与获取奖励的三维场景中难以达到其在atari视频游戏和连续控制任务中的性能。
综合以上分析,结合辅助任务学习机制的aibpo智能体在生存场景中的性能。表现有明显的提高,智能体的存活时间步数和获取生命值药物包能力显著超越了传统深度强化学习算法,并达到了与比赛智能体接近的水平。
辅助任务对比实验如下:
aibpo算法中包含奖励预测任务
表4辅助任务实验结果数据对比
由表4可知,结合不同辅助任务的基准算法所训练出的智能体,在生存场景中的表现效果均有所提升,且各辅助任务对基准算法的提升效果不尽相同。其中,奖励预测辅助任务在
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
1.一种基于辅助任务学习的视频游戏决策方法,其特征在于,包括以下步骤:
s1、构建神经网格模型;
s2、启动多进程视频游戏环境;
s3、判断是否运行了指定轮次,如果否,则进入步骤s4,如果是,则进入步骤s6;
s4、获取游戏经验,更新经验池;
s5、将经验输入到神经网格模型,更新神经网格模型参数,返回步骤s3;
s6、保存神经网格模型;
s7、在视频游戏里利用神经网格模型决策;
s8、结束。
2.根据权利要求1所述的基于辅助任务学习的视频游戏决策方法,其特征在于:步骤s1包括以下子步骤:
s101、基于辅助任务学习的奖励特征增强方法;
s102、结合辅助任务学习的内在奖励策略优化方法;
s103、构建神经网格模型。
3.根据权利要求2所述的基于辅助任务学习的视频游戏决策方法,其特征在于:基于辅助任务学习的奖励特征增强方法,其框架定义如下:
式(3-1)中;
式(3-1)定义了辅助任务学习机制的基本框架,辅助任务学习为智能体在三维场景中提供对应的辅助性策略。
4.根据权利要求2所述的基于辅助任务学习的视频游戏决策方法,其特征在于:步骤s101包括以下子步骤:
s1011、基于奖励预测的特征增强方法;
s1012、基于状态价值的特征增强方法;
s1013、基于动作价值的特征增强方法。
5.根据权利要求4所述的基于辅助任务学习的视频游戏决策方法,其特征在于:步骤s1011包括:利用经验回放池中的状态信息和奖励信息,从中采样连续时间步的输入帧画面信息与下一状态的奖励信息作为数据样本训练奖励预测网络,数据样本训练奖励预测网络由浅层卷积神经网络表示,在数据样本训练奖励预测网络中,采样连续三个时刻的输入帧画面作为网络的输入,经过卷积层与全连接层的处理输出分类类别,而分类类别定义为智能体所获奖励值的类别,包括正值奖励、负值奖励和零值奖励,分类任务的标签是从经验回放池中采样的下一时刻的奖励信息对应的独热编码,根据常用于分类任务的多类别交叉熵损失函数把奖励预测网络的损失函数
式(3-2)中,
6.根据权利要求4所述的基于辅助任务学习的视频游戏决策方法,其特征在于:步骤s1012包括:内在奖励策略优化算法智能体在训练过程中存储环境交互数据元组于经验回放池中,对算法训练经验池中的历史状态价值进行采样,以连续时刻的输入帧画面和下一时刻的状态价值作为数据样本训练状态价值辅助网络,数据样本训练状态价值辅助网络主要由浅层卷积神经网络与长短期记忆网络构成,在数据样本训练状态价值辅助网络中,采样连续三个时刻的输入帧画面作为网络的输入,经过卷积层、全连接层与lstm层的处理预测输出对应下一时刻帧画面的状态价值,该回归预测任务的标签是从经验回放池中采样的下一时刻的状态画面对应的状态价值,根据常用于回归任务的均方误差损失函数把状态价值网络的损失函数
式(3-3)中,
7.根据权利要求4所述的基于辅助任务学习的视频游戏决策方法,其特征在于:步骤s1013包括:采样内在策略优化算法智能体训练过程中存储的动作价值,以连续时刻的输入帧画面和时序差分动作价值作为数据样本训练动作价值辅助网络,数据样本训练动作价值辅助网络主要由浅层卷积神经网络与长短期记忆网络构成,在数据样本训练动作价值辅助网络中,采样连续三个时刻的输入帧画面作为网络的输入,经过卷积层、全连接层与lstm层的处理预测输出对应下一时刻帧画面的动作价值,该回归预测任务的标签是从经验回放池中采样的时序差分动作价值,即根据经验回放池中即时奖励值与折扣状态价值计算得到的,根据常用于回归任务的均方误差损失函数把动作价值网络的损失函数
式(3-4)中,
8.根据权利要求2所述的基于辅助任务学习的视频游戏决策方法,其特征在于:步骤s102包括:在内在奖励策略优化方法的策略更新过程中加入根据经验回放样本更新辅助任务网络参数的步骤,将结合辅助任务学习的内在奖励策略优化方法定义为:
式(3-5)中,
