CN109847366B - 用于游戏的数据处理方法和装置 - Google Patents

用于游戏的数据处理方法和装置 Download PDF

Info

Publication number
CN109847366B
CN109847366B CN201910088050.2A CN201910088050A CN109847366B CN 109847366 B CN109847366 B CN 109847366B CN 201910088050 A CN201910088050 A CN 201910088050A CN 109847366 B CN109847366 B CN 109847366B
Authority
CN
China
Prior art keywords
game
processing network
action
training
current frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910088050.2A
Other languages
English (en)
Other versions
CN109847366A (zh
Inventor
黄盈
张力柯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910088050.2A priority Critical patent/CN109847366B/zh
Publication of CN109847366A publication Critical patent/CN109847366A/zh
Application granted granted Critical
Publication of CN109847366B publication Critical patent/CN109847366B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

提供了用于游戏的数据处理方法和装置。所述方法包括:获取游戏的至少当前帧游戏图像的多个游戏特征;至少将所述多个游戏特征输入至第二处理网络,并从所述第二处理网络输出用以评价第一处理网络输出的动作的评价值,其中当向所述第一处理网络输入一帧游戏图像的多个游戏特征时,所述第一处理网络输出在该帧游戏图像中将要执行的动作;获取游戏角色在游戏中执行所述动作获得的奖励值;基于所述奖励值,训练所述第二处理网络;基于所述第二处理网络输出的评价值,训练所述第一处理网络。

Description

用于游戏的数据处理方法和装置
技术领域
本发明涉及人工智能领域,更具体地说,涉及用于游戏的数据处理方法和装置。
背景技术
随着多媒体技术的发展和无线网络的普及,人们的娱乐活动变得越来越丰富,如通过手持式终端设备玩单机或联网游戏等。游戏类型多种多样。例如,目前一种流行的游戏为第一人称射击游戏(First Person Shooting Game,FPS),其中以玩家的主观视角来进行射击游戏。
此外,随着人工智能技术的发展,提出了游戏AI(Artificial Intelligence,人工智能)的概念。通过训练游戏AI,使其可以在游戏中作为游戏角色执行各种动作,从而可以为玩家提供更强大和真实的虚拟敌人,也可以帮助开发人员对游戏进行测试和调试。
对游戏AI的训练本质上是对处理网络的训练。作为一种现有的技术方案,使用基于深度强化学习的DQN(Deep Q-Network)算法来执行用于游戏的处理网络训练。将当前帧图像输入处理网络,由该处理网络输出需要执行什么样的动作。DQN算法在Atari电子游戏中取得了很好的效果,但是其训练量非常巨大。这是因为游戏图像包括巨大的状态空间,同时还需要探索动作空间,所以即使对单一的二维Atari游戏都需要千万级别以上的训练量。如果直接将DQN算法应用于三维的FPS游戏AI的训练,那么需要超过千万级别以上的训练量才能够获得比较好的效果。此外,游戏AI的训练需要在游戏实际运行的环境中训练。例如,如果训练环境是实时在线的手游,那么最大训练速度取决于手机运行的游戏帧率。然而,手机运行的游戏帧率不会超过60帧/s。按照这样的速度训练,如果希望得到比较理想的效果,那么训练时间将会非常长。
此外,作为另一种现有的技术方案,基于策略梯度法(PG,Policy Gradient)来执行用于游戏的处理网络训练。将当前帧图像输入处理网络,由该处理网络输出需要执行什么样的动作。然而,其问题在于,首先,策略梯度法需要完成一局游戏后才能正确计算用以评价网络输出的动作的价值函数,因此不能实时在线训练。
并且,基于DQN算法和PG算法的处理网络训练都是使用图像作为输入,从而状态空间巨大,导致游戏AI的训练量巨大。此外,这还使得处理网络权重很大,从而在训练时对CPU和GPU的要求很高。
发明内容
鉴于以上情形,期望提供能够提供用于游戏的数据处理方法和装置,其能够实现用于游戏的处理网络的快速实时的训练。
根据本发明的一个方面,提供了一种用于游戏的数据处理方法,包括:获取游戏的至少当前帧游戏图像的多个游戏特征;至少将所述多个游戏特征输入至第二处理网络,并从所述第二处理网络输出用以评价第一处理网络输出的动作的评价值,其中当向所述第一处理网络输入一帧游戏图像的多个游戏特征时,所述第一处理网络输出在该帧游戏图像中将要执行的动作;获取游戏角色在游戏中执行所述动作获得的奖励值;基于所述奖励值,训练所述第二处理网络;基于所述第二处理网络输出的评价值,训练所述第一处理网络。
另外,在根据本发明实施例的方法中,至少将所述多个游戏特征输入至第二处理网络的步骤进一步包括:仅将所述多个游戏特征输入至第二处理网络,并且其中从所述第二处理网络输出的评价值是用以评价导致产生当前帧游戏图像的多个游戏特征的、所述第一处理网络基于上一帧游戏图像的多个游戏特征输出的动作的评价值。
另外,在根据本发明实施例的方法中,至少将所述多个游戏特征输入至第二处理网络的步骤进一步包括:将所述多个游戏特征和所述第一处理网络基于当前帧游戏图像的多个游戏特征输出的动作输入至所述第二处理网络,并且从所述第二处理网络输出的评价值是用以评价在当前帧游戏图像中执行的、所述第一处理网络基于当前帧游戏图像的多个游戏特征输出的动作的评价值。
另外,在根据本发明实施例的方法中,训练所述第一处理网络和训练所述第二处理网络的步骤进一步包括:基于近端策略优化算法,确定所述第一处理网络和所述第二处理网络中各节点参数的梯度下降的步长,使得每次训练时梯度下降朝着最优解方向下降正确的步长。
另外,在根据本发明实施例的方法中,与一帧游戏图像对应的游戏特征、所述游戏角色在该帧游戏图像中执行的动作以及该动作获得的奖励值为针对该帧游戏图像采集到的一组样本,并且所述方法进一步包括:判断采集到的样本组数是否达到预定阈值;当采集到的样本组数达到预定阈值时,将多组样本提供至所述第一处理网络和所述第二处理网络,并基于该多组样本对所述第一处理网络和所述第二处理网络执行多次训练,其中获取游戏的至少当前帧游戏图像的多个游戏特征包括依次获取包括当前帧的多帧游戏图像,并且分别获得所述第一处理网络基于所述多帧游戏图像输出的多个动作获得的奖励值。
另外,在根据本发明实施例的方法中,训练所述第一处理网络和训练所述第二处理网络的步骤进一步包括:基于确定性策略梯度算法训练所述第一处理网络和所述第二处理网络,其中当向所述第一处理网络提供相同的输入时,所述第一处理网络输出相同,并且当向所述第二处理网络提供相同的输入时,所述第二处理网络输出相同。
另外,在根据本发明实施例的方法中,获取游戏的至少当前帧游戏图像的多个游戏特征的步骤进一步包括:获取游戏的当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征,其中至少将所述多个游戏特征输入至第二处理网络的步骤进一步包括:将当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征输入至第二处理网络,并且其中当向所述第一处理网络输入当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征时,所述第一处理网络输出在当前帧游戏图像中将要执行的动作。
另外,在根据本发明实施例的方法中,获取游戏的至少当前帧游戏图像的多个游戏特征的步骤进一步包括:基于图像模版匹配和/或基于深度学习的物体检测方法来从至少当前帧游戏图像中提取多个游戏特征。
根据本发明的另一方面,提供了一种用于游戏的数据处理装置,包括:获取部件,用于获取游戏的至少当前帧游戏图像的多个游戏特征以及游戏角色在游戏中执行动作获得的奖励值;训练部件,用于基于所述获取部件获得的奖励值,训练第二处理网络,其中至少将所述多个游戏特征输入至所述第二处理网络,并从所述第二处理网络输出用以评价第一处理网络输出的动作的评价值,其中当向所述第一处理网络输入一帧游戏图像的多个游戏特征时,所述第一处理网络输出在该帧游戏图像中将要执行的动作,并且基于所述第二处理网络输出的评价值,训练所述第一处理网络。
另外,在根据本发明实施例的装置中,仅将所述多个游戏特征输入至第二处理网络,并且其中从所述第二处理网络输出的评价值是用以评价导致产生当前帧游戏图像的多个游戏特征的、所述第一处理网络基于上一帧游戏图像的多个游戏特征输出的动作的评价值。
另外,在根据本发明实施例的装置中,将所述多个游戏特征和所述第一处理网络基于当前帧游戏图像的多个游戏特征输出的动作输入至所述第二处理网络,并且从所述第二处理网络输出的评价值是用以评价在当前帧游戏图像中执行的、所述第一处理网络基于当前帧游戏图像的多个游戏特征输出的动作的评价值。
另外,在根据本发明实施例的装置中,所述训练部件进一步被配置为:基于近端策略优化算法,确定所述第一处理网络和所述第二处理网络中各节点参数的梯度下降的步长,使得每次训练时梯度下降朝着最优解方向下降正确的步长。
另外,在根据本发明实施例的装置中,与一帧游戏图像对应的游戏特征、所述游戏角色在该帧游戏图像中执行的动作以及该动作获得的奖励值为针对该帧游戏图像采集到的一组样本,并且所述装置进一步包括:判断单元,用于判断采集到的样本组数是否达到预定阈值;当采集到的样本组数达到预定阈值时,所述训练单元将多组样本提供至所述第一处理网络和所述第二处理网络,并基于该多组样本对所述第一处理网络和所述第二处理网络执行多次训练,其中所述获取部件进一步被配置为:依次获取包括当前帧的多帧游戏图像,并且分别获得所述第一处理网络基于所述多帧游戏图像输出的多个动作获得的奖励值。
另外,在根据本发明实施例的装置中,所述训练部件进一步被配置为:基于确定性策略梯度算法训练所述第一处理网络和所述第二处理网络,其中当向所述第一处理网络提供相同的输入时,所述第一处理网络输出相同,并且当向所述第二处理网络提供相同的输入时,所述第二处理网络输出相同。
另外,在根据本发明实施例的装置中,获取部件进一步被配置为:获取游戏的当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征,其中将当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征输入至第二处理网络,并且其中当向所述第一处理网络输入当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征时,所述第一处理网络输出在当前帧游戏图像中将要执行的动作。
另外,在根据本发明实施例的装置中,获取部件进一步被配置为:基于图像模版匹配和/或基于深度学习的物体检测方法来从至少当前帧游戏图像中提取多个游戏特征。
根据本发明的另一方面,提供了一种计算机可读记录介质,其上存储有计算机程序,当由处理器执行所述计算机程序时,执行如下步骤:获取游戏的至少当前帧游戏图像的多个游戏特征;至少将所述多个游戏特征输入至第二处理网络,并从所述第二处理网络输出用以评价第一处理网络输出的动作的评价值,其中当向所述第一处理网络输入一帧游戏图像的多个游戏特征时,所述第一处理网络输出在该帧游戏图像中将要执行的动作;获取游戏角色在游戏中执行所述动作获得的奖励值;基于所述奖励值,训练所述第二处理网络;基于所述第二处理网络输出的评价值,训练所述第一处理网络。
在根据本发明实施例的用于游戏的数据处理方法和装置中,由于不使用图像作为处理网络的输入,而使用提取后的游戏特征作为处理网络的输入,大大压缩了状态空间,使得处理网络的训练量比传统DQN算法的训练量有着数量级的差距。并且,传统的DQN和PG算法训练时由于采用图像作为输入,使得处理网络的权重很大,进而在训练时对CPU和GPU要求很高。由于本发明采用游戏特征作为输入,处理网络的权重大幅降低,从而对训练的CPU和GPU开销都很低,即使普通的没有GPU、小内存、CPU运算能力弱的机器都可以用来训练本发明的处理网络。
附图说明
图1是示出了本发明的实施例的应用环境的示意图;
图2是示出了根据本发明的实施例的用于游戏的数据处理方法的过程的流程图;
图3A是示出了如何提取血量特征的示意图;
图3B示出了如何提取击杀数特征的示意图;
图3C示出了如何提取攻击方向特征的示意图;
图4A示出了根据本发明的实施例的第一处理网络的第一示例的示意图;
图4B示出了根据本发明的实施例的第一处理网络的第二示例的示意图;
图5A示出了根据本发明的实施例的第二处理网络的第一示例的示意图;
图5B示出了根据本发明的实施例的第二处理网络的第二示例的示意图;
图6是示出了用以执行用于游戏的数据处理方法的服务器与实际运行游戏的终端设备之间的数据流图;
图7是示出了根据本发明实施例的用于游戏的神经训练方法的数据流图;
图8A示出了作为比较示例的根据现有技术训练的CFM的游戏AI运行时的画面;
图8B示出了根据本发明实施例的、使用PPO算法训练的CFM的游戏AI运行时的画面示例;
图8C示出了根据本发明实施例的、使用DPG算法训练的CFM的游戏AI运行时的画面示例;
图9是图示根据本发明的实施例的用于游戏的数据处理装置的配置的功能性框图;
图10示出了根据本发明的实施例的用于游戏的数据处理装置作为硬件实体的一个示例;以及
图11示出了根据本发明的实施例的计算机可读记录介质的示意图。
具体实施方式
下面将参照附图对本发明的各个优选的实施方式进行描述。提供以下参照附图的描述,以帮助对由权利要求及其等价物所限定的本发明的示例实施方式的理解。其包括帮助理解的各种具体细节,但它们只能被看作是示例性的。因此,本领域技术人员将认识到,可对这里描述的实施方式进行各种改变和修改,而不脱离本发明的范围和精神。而且,为了使说明书更加清楚简洁,将省略对本领域熟知功能和构造的详细描述。
首先,将简要描述本发明的实施例的应用环境。如图1所示,服务器10(或者,也可以称为训练机)通过网络30连接到多个终端设备20。所述多个终端设备20是运行游戏的设备。所述终端可以是智能终端,例如智能电话、PDA(个人数字助理)、台式计算机、笔记本计算机、平板计算机等,也可以是其他类型的终端。所述服务器10为与终端设备20连接以与终端设备20上运行的所述游戏交互并训练游戏AI的服务器。服务器10从终端设备20接收游戏的游戏数据(例如,下文中所述的当前帧的游戏特征),基于服务器10上待训练的游戏AI产生将要执行何种动作的指令,并将该指令传送到终端设备20以在游戏中执行确定的动作。进而,通过该动作的执行导致游戏的游戏数据发生改变。将改变后的游戏数据(例如,下文中所述的执行动作所得到的奖励值)传送给服务器10,并且服务器10基于游戏特征、动作和动作得到的奖励值组成的样本来训练游戏AI,使得在训练完成后游戏AI能够输出正确的动作,以模拟真实人类玩家的游戏行为。所述网络30可以是任何类型的有线或无线网络,例如因特网。应当认识到,图1所示的终端设备20的数量是示意性的,而不是限制性的。
当然,除了图1所示的服务器和终端设备的应用环境之外,根据本发明的数据处理方法还可以应用于未联网的训练机上(单机版)。在该训练机上,分别运行游戏和训练程序,并且基于游戏数据来完成游戏AI的训练。
如上文中所述,对游戏AI的训练本质上是对处理网络的训练。可以把用于游戏的处理网络看作一个大脑。通过观测游戏环境,向大脑输入游戏数据,并在大脑里决定将要执行什么样的动作。然后,把决定的动作输送到游戏环境,以影响游戏环境并获取相应的奖励。训练处理网络的过程就是不断地调整处理网络中各节点的参数的过程。在训练完成后,处理网络中各节点的参数被调整到最优解,从而当向处理网络提供游戏输入时,处理网络能够输出针对该游戏输入的合理动作。接下来,将参照图2描述根据本发明实施例的用于游戏的数据处理方法。如图2所示,所述方法包括如下步骤。
首先,在步骤S201,获取游戏的至少当前帧游戏图像的多个游戏特征。
例如,作为一种可能的实施方式,在步骤S201可以仅获取当前帧游戏图像的多个游戏特征。可以认为,当前帧游戏图像的游戏特征体现了当前的游戏状态。例如,这些游戏特征包括但不限于以下特征中的一个或多个:游戏角色自己的阵营、小地图中自己和队友的位置信息、大地图上敌人和队友的位置信息、自己的视角、受到攻击方向、自己的血量、弹药和击杀数。
作为一种可能的实施方式,可以使用基于图像模版匹配和/或基于深度学习的物体检测方法来从游戏图像中提取游戏特征。
具体来说,在游戏中,每一帧的游戏图像都包括显示在固定位置处的固定模式的图像。例如,在游戏图像下方的固定位置处显示指示游戏角色的血量的图标。因此,对于这部分固定图像,可以使用基于图像模板匹配的方法来从游戏中提取游戏特征。例如,可以使用图像模板匹配来实现对受到攻击的方向、自己的血量、自己的击杀数、弹药数等特征的识别。图3A示出了如何提取血量特征的示意图。预先存储与游戏对应的字符模板。通过将当前帧游戏图像与预先存储的字符模板进行比较,可以得到图3A中的方框所示的数值作为血量特征。图3B示出了如何提取击杀数特征的示意图。预先存储表示击杀数的图标。通过将当前帧游戏图像与预先存储的图标进行比较,可以得到图3B中的方框内的击杀数图标对应的数值(10+10=20)作为击杀数特征。图3C示出了如何提取攻击方向的示意图。通过在当前帧图像中查找并匹配图中所示的扇形区域,可以确定受到攻击方向。
除了显示在固定位置处的固定模式的图像之外,在游戏图像中还可能存在随机出现的物体(如随机出现的敌人等)。由于游戏图像内敌人的位置在屏幕内位置、大小和外观都会变化,所以不能采用上文中所述的图像模板匹配的方法来提取游戏特征。因此,对于该部分随机图像,可以使用基于深度学习的物体检测方法来提取游戏特征。例如,可以使用基于YOLO(You Only Look Once)的目标检测处理网络来提取游戏特征。
在根据本发明的实施例中,没有直接使用游戏图像作为后续处理网络的输入。这是因为直接使用图像虽然简单,但是其状态空间过于巨大。具体来说,图像中的每一个像素点可以对应于状态空间中的一种状态,其不仅包括指示其二维位置的两个数值,而且还包括指示其色彩值的RGB的数值。这使得后续的处理网络需要更多的探索和训练时间才能找到合理的动作策略。因此,为了压缩状态空间和缩短训练时间,在根据本发明的实施例中,选择使用经过视觉识别提取后的游戏特征作为提供到后续处理网络的输入。
并且,与使用图像作为输入的现有的DQN算法相比,使用从图像提取的特征作为输入,后续处理网络的权重能够大幅降低。这对于执行训练的CPU(Central ProcessingUnit)和GPU(Graphic Processing Unit)的开销都很低,因此对执行训练的CPU和GPU的要求很低,即使普通的GPU或CPU处理能力比较弱的机器都可以用来训练游戏AI。返回参照图2,在步骤S201之后,处理进行到步骤S202。在步骤S202,至少将所述多个游戏特征输入至第二处理网络,并从所述第二处理网络输出用以评价第一处理网络输出的动作的评价值。
这里,需要说明的是,第一处理网络是策略网络,用以决定输出何种动作。具体来说,当向所述第一处理网络输入一帧游戏图像的多个游戏特征(如,上文中所述的在步骤S201获取的多个游戏特征)时,所述第一处理网络输出游戏角色在该帧游戏图像中将要执行的动作。
第一处理网络可以包括一个或多个全连接层,且每一个全连接层中包括多个节点。其中,全连接层的数量以及每一个全连接层中的节点数量可以根据具体的设计而灵活地选择。
图4A示出了根据本发明的实施例的第一处理网络的第一示例的示意图。在图4A所示的第一处理网络中,游戏特征的输入将经过三个全连接层Dense1、Dense2和Dense3,这三个全连接层分别有256、512和512个节点。然后,根据CFM的动作设计,从全连接层输出三种动作分量,分别是左右转动视角(rotate)、移动的方向(direction)和移动的速度(speed)。最后将这三个动作分量合并在一起作为第一处理网络输出的三维动作向量。
图4B示出了根据本发明的实施例的第一处理网络的第二示例的示意图。在图4B所示的第一处理网络中,游戏特征的输入将经过两个全连接层Dense1和Dense2,这两个全连接层分别有300和600个节点。然后,根据CFM的动作设计,从全连接层输出三种动作分量,分别是左右转动视角(rotate)、移动的方向(direction)和移动的速度(speed)。最后将这三个动作分量合并在一起作为第一处理网络输出的三维动作向量。
第二处理网络是评价网络,用以评价第一处理网络输出的动作是好还是坏。至少将所述多个游戏特征输入至第二处理网络,并从所述第二处理网络输出用以评价所述第一处理网络输出的动作的评价值。与第一处理网络输出三维的动作向量不同,第二处理网络输出的是作为标量的评价值。在本发明中,第二处理网络可以在第一处理网络每输出一个动作并导致游戏特征发生变化时输出评价值,而无需完成一局游戏后再计算评价值,从而能够实时地在线训练。
例如,作为一种可能的实施方式,可以仅将在步骤S201中获取的当前帧的所述多个游戏特征输入至第二处理网络。可以认为当前帧游戏图像的游戏特征体现了当前的游戏状态。也就是说,以当前的游戏状态作为第二处理网络的输入。在这种情况下,从所述第二处理网络输出的评价值是用以评价导致当前游戏状态的评价值。由于当前游戏状态是由上一游戏状态下执行的动作而产生的,因此所述评价值事实上是用以评价产生当前帧游戏图像的多个游戏特征的、所述第一处理网络基于上一帧游戏图像的多个游戏特征输出的动作的评价值。
图5A示出了根据本发明的实施例的第二处理网络的第一示例的示意图。在图5A所示的第二处理网络中,游戏特征的输入将经过三个全连接层,这三个全连接层分别有256、512和512个节点。然后,把最后一个全连接层的节点输出的值合并,以输出评价值。
或者,作为另一种可能的实施方式,除了当前帧的所述多个游戏特征之外,还可以进一步将第一处理网络基于当前帧游戏图像的游戏特征输出的动作输入至所述第二处理网络。也就是说,以当前的游戏状态以及当前游戏状态下执行的动作作为第二处理网络的输入。在这种情况下,从所述第二处理网络输出的评价值是用以评价在当前帧游戏图像中执行的、所述第一处理网络基于当前帧游戏图像的多个游戏特征输出的动作的评价值。
图5B示出了根据本发明的实施例的第二处理网络的第二示例的示意图。图5B所示的第二处理网络包括两个输入部分。一个输入部分为游戏特征的输入(与图5A相同),而另一部分为动作的输入(即,由第一处理网络输出的三维动作向量)。游戏特征的输入将经过两个全连接层,这两个全连接层分别有300和600个节点。动作的输入仅经过一个600节点的全连接层。然后,把这两部分输出的向量拼接起来后再经过一个300节点的全连接层。最后将这个全连接层的节点输出的值合并,以输出评价值。
返回参照图2,在步骤S202之后,处理进行到步骤S203。在步骤S203,获取所述游戏角色在游戏中执行所述动作获得的奖励值(reward)。可以基于执行动作前后两帧的游戏图像的游戏特征来计算奖励值。例如,通过将执行动作前的血量减去执行动作后的血量,能够得到损失血量。然后,基于损失血量和奖励值函数来确定奖励值。
由于奖励值是通过执行动作而实际获得的,因此奖励值是能够体现动作好坏的相对准确的值。所以,将奖励值作为用以训练第二处理网络的参数。第二处理网络输出用以评价第一处理网络输出的动作的评价值。例如,所述评价值具体可以为执行该动作后在将来能够得到的所有奖励值之和。如果第二处理网络输出的评价值准确,那么前后两个动作获得的评价值之差应该等于后一动作获得的奖励值。基于这样的论断,可以调整第二处理网络中各节点的权重,使得当前输出的评价值与上一次输出的评价值之差逼近当前评价的动作所获得的奖励值。直观上来看,基于执行动作获得的奖励值来训练第二处理网络,使得第二处理网络输出的对于该动作的评价值能够与该动作获得的奖励值相一致。例如,获得的奖励值高的动作的评价值高,且获得的奖励值低的动作的评价值低。此外,评价值用以作为训练第一处理网络的参数,从而第一处理网络能够提升输出评价值高的动作的概率,且降低输出评价值低的动作的概率,进而在训练完成后,第一处理网络能够学会正确的游戏行为。因此,奖励值函数的设计可以决定训练出的游戏AI的行为倾向。例如,作为一种可能的实施方式,奖励值函数可以设计如下:自己杀伤一个敌人奖励值为1,自己开枪射击敌人每消耗一发子弹奖励值为0.1,自己受伤每损失10点血奖励值为-0.1。在这种情况下,训练好的游戏AI将更倾向于执行杀伤敌人的动作。又如,作为另一种可能的实施方式,奖励值函数也可以设计如下:自己杀伤一个敌人奖励值为0.1,自己开枪射击敌人每消耗一发子弹奖励值为0.1,自己受伤每损失10点血奖励值为-1。在这种情况下,训练好的游戏AI将更倾向于执行保护自己的动作。
如上文中所述,第一处理网络用以基于输入的游戏特征而输出将要执行的动作,且第二处理网络用以输出评价第一处理网络输出的动作的评价值。在最初开始训练时,第一处理网络随机地输出动作,且第二处理网络随机地输出评价值。也就是说,第一处理网络和第二处理网络中各节点的权重都未调整到合适的值。训练第一处理网络和第二处理网络就是逐步找到网络中各节点权重的最优解的过程。
在步骤S204,基于所述奖励值,训练所述第二处理网络。关于训练第二处理网络的具体细节将在下文中描述。奖励值是通过执行一动作而得到的,因此与该动作对应。第二处理网络输出的是对于一动作的评价值,并且相应地,基于与该动作对应的奖励值来训练第二处理网络。
在上文中所述的、向第二处理网络输入当前帧游戏图像的多个游戏特征(可看作当前游戏状态)的实施方式中,第二处理网络输出的是对于该当前游戏状态的评价值,用于评价该当前游戏状态是好还是坏。由于当前的游戏状态是由于在上一游戏状态下执行了第一处理网络输出的动作而引起的,因此事实上,第二处理网络输出的是用于评价上一游戏状态下第一处理网络输出的动作是好还是坏的评价值。当然,与此对应地,用于训练第二处理网络的参数为与上一游戏状态下做出的动作获得的奖励值。
或者,在上文中所述的、向第二处理网络输入当前帧游戏图像的多个游戏特征(当前游戏状态)以及第一处理网络基于当前帧游戏图像的多个游戏特征输出的动作向量的情况下,第二处理网络输出的是对于当前游戏状态和当前动作的评价值。当然,与此对应地,用于训练第二处理网络的参数为与当前游戏状态下做出的动作获得的奖励值。
如上文中所述,例如,所述评价值具体可以为执行一动作后在将来能够得到的所有奖励值之和。如果第二处理网络输出的评价值准确,那么前后两个动作获得的评价值之差应该等于后一动作获得的奖励值。基于这样的论断,可以调整第二处理网络中各节点的权重,使得上一次输出的评价值与当前输出的评价值之差逼近当前评价的动作所获得的奖励值。直观上来看,基于执行动作获得的奖励值来训练第二处理网络,使得第二处理网络输出的对于该动作的评价值能够与该动作获得的奖励值相一致。例如,获得的奖励值高的动作的评价值高,且获得的奖励值低的动作的评价值低。
最后,在步骤S205,基于所述第二处理网络输出的评价值,训练所述第一处理网络,直至达到训练停止条件。关于训练第一处理网络的细节将在下文中描述。这里,训练停止条件可以是损失函数收敛。损失函数为作为最优解的动作输出与实际的动作输出之间的差值,当所述差值达到最小值时可以认为损失函数收敛。或者,训练停止条件也可以是游戏AI在游戏中的表现可接受,例如第一处理网络输出的动作总是能够获得最高的奖励值。第二处理网络的训练响应于第一处理网络的训练停止而停止。
在训练开始时,第一处理网络将随机地输出动作,且第二处理网络将随机地输出评价值。基于执行动作获得的奖励值来训练第二处理网络输出的评价值,通过调整第二处理网络中各节点的权重,使得评价值逐步地接近能够准确评价动作好坏的评价值。并且,第一处理网络将根据第二处理网络输出的评价值来进行训练。在第一处理网络训练时,通过调整第一处理网络中各节点的权重,以提升输出评价值高的动作的概率,而降低输出评价值低的动作的概率。从而,第一处理网络将逐步地学习正确的游戏行为。
图6是示出了用以执行用于游戏的数据处理方法的服务器与实际运行游戏的终端设备之间的数据流图。如图6所示,终端设备向服务器发送一帧游戏图像。在服务器端,基于游戏图像获取游戏特征,并基于游戏特征确定将要执行的动作。然后,服务器向终端设备发送用于执行该确定的动作的指令。终端设备在接收到来自服务器的指令后,将确定的动作作用于游戏环境,并导致游戏图像发生改变。然后,终端设备向服务器发送下一帧游戏图像(即,通过执行动作而改变的游戏图像)。在服务器端,基于前后两帧游戏图像,确定动作获得的奖励值。到此为止,完成了一次样本采集,其中与一帧游戏图像对应的游戏特征、所述游戏角色在该帧游戏图像中执行的动作以及该动作获得的奖励值为针对该帧游戏图像采集到的一组样本。基于游戏特征、动作和奖励值,训练第一和第二处理网络。在完成一次训练后,将调整第一处理网络和第二处理网络中各节点的参数。然后,终端设备向服务器发送新一帧游戏图像,并且服务器基于调整后的第一处理网络和第二处理网络重复上文中所述的过程以执行新一轮的样本采集步骤和训练步骤,直至训练完成。在训练完成后,终端设备向服务器发送游戏图像,作为响应,服务器向终端设备发送将执行何种动作的指令。
此外,在上文中描述了步骤S201仅获取当前帧的游戏图像的多个游戏特征,并执行后续处理的情况。可替代地,作为另一种可能的实施方式,在步骤S201也可以获取游戏的当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征。例如,在步骤S201可以获取当前帧游戏图像以及当前帧之前的7帧游戏图像(共计连续8帧游戏图像)的游戏特征,并按照上文中所述的方式执行后续处理。所不同的是,在后续处理中,至少将所述多个游戏特征输入至第二处理网络的步骤S202进一步包括:将当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征输入至第二处理网络。并且,这种情况下,当向所述第一处理网络输入当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征时,所述第一处理网络输出在当前帧游戏图像中将要执行的动作。
也就是说,可以重复多次地执行图6中所示的样本采集步骤以采集多组样本,然后集中地对该多组样本执行训练步骤。
通过向第一处理网络和第二处理网络输入连续多帧游戏图像的游戏特征,第一处理网络和第二处理网络能够具备类似于人类大脑的记忆功能。
图7示出了根据本发明实施例的数据处理方法的数据流图。如图7所示,游戏环境产生游戏状态(游戏特征),并将其提供给第一处理网络作为输入。第一处理网络基于输入的游戏状态产生动作,并将动作作用于游戏环境以获得奖励值,并使得游戏环境产生新的游戏状态。可以将游戏状态或者游戏状态和第一处理网络输出的动作(图中以虚线示出,以表示这是可选的)提供至第二处理网络作为输入,第二处理网络基于所述输入产生用于评价一动作的评价值。在最初开始训练时,第一处理网络随机地输出动作,且第二处理网络随机地输出评价值。也就是说,第一处理网络和第二处理网络中各节点的权重都未调整到合适的值。训练第一处理网络和第二处理网络就是逐步找到网络中各节点权重的最优解的过程。基于待评价的动作的奖励值作为参数来训练第二处理网络,使得第二处理网络输出的评价值能够准确地评价动作的好坏。如上文中所述,所述评价值具体可以为执行该动作后在将来能够得到的所有奖励值之和。如果第二处理网络输出的评价值准确,那么前后两个动作获得的评价值之差应该等于后一动作获得的奖励值。基于这样的论断,可以调整第二处理网络中各节点的权重,使得上一次输出的评价值与当前输出的评价值之差逼近当前评价的动作所获得的奖励值。然后,基于第二处理网络输出的评价值,训练第一处理网络,使得增加评价值高的动作的输出概率,并降低评价值低的动作的输出概率。这样,训练完成的第一处理网络将学会正确的游戏行为。
传统的DQN算法使用卷积神经网络作为价值函数来拟合Q-learning中的动作价值,这是一个直接从原始像素中成功学习到控制策略的深度强化学习算法。DQN算法的核心就是卷积神经网络,使用Q-learning来训练,其输入为原始像素,输出为价值函数。通过神经网络计算出价值函数后,DQN使用预定策略(如,(\epsilon-greedy\)策略)来输出动作。然而,由于DQN算法基于价值(Value Based)的强化学习方法,因此只能处理离散动作,无法处理连续动作。
在现有技术中,还存在另一传统的PG算法。与基于价值(Value Based)的DQN算法不同,PG算法为基于策略(Policy Based)的强化学习方法。在基于策略(Policy Based)的强化学习方法中,利用参数化的策略函数,通过调整这些参数来得到一个最优的策略。如果遵循这个策略可以得到较多的奖励,那么这个策略就是优秀的策略。所以,具体的做法是设计一个关于策略的目标函数。向所述目标函数提供的输入为原始像素,所述目标函数的输出为将要执行的动作。通过梯度下降算法优化参数,最终使得奖励最大化。
基于以上的描述,可以看出,在根据本发明实施例的用于游戏的数据处理方法中,由于不使用图像作为处理网络的输入,而使用提取后的游戏特征作为处理网络的输入,大大压缩了状态空间,使得处理网络的训练量比传统DQN算法的训练量有着数量级的差距。并且,传统的DQN和PG算法训练时由于采用图像作为输入,使得处理网络的权重很大,进而在训练时对CPU和GPU要求很高。由于本发明采用游戏特征作为输入,处理网络的权重大幅降低,从而对训练的CPU和GPU开销都很低,即使普通的没有GPU、小内存、CPU运算能力弱的机器都可以用来训练本发明的处理网络。此外,通过采用分别确定动作和动作评价值的两个处理网络的架构,与传统的DQN算法和PG算法相比,能够保证更快的训练速度并实现实时在线训练。
这里,作为一种可能的实施方式,上文中所述的以及下文中提及的处理网络可以是神经网络。当然,本发明并不仅限于此。处理网络也可以是其他类型的非线性函数。
例如,作为训练第一和第二处理网络的一种方式,可以采用近端策略优化(Proximal Policy Optimization,PPO)算法。具体来说,训练所述第一处理网络和训练所述第二处理网络的步骤进一步包括:基于近端策略优化算法,确定所述第一处理网络和所述第二处理网络中各节点参数的梯度下降的步长,使得每次训练时梯度下降朝着最优解方向下降正确的步长。
因此,通过基于PPO算法训练第一处理网络和第二处理网络,能够选择梯度下降的正确的步长,不会因为过大的步长导致直接跳过最优解,也不会因为过小的步长而导致学习速度过于缓慢而损失函数无法正常收敛。并且,基于PPO算法训练得到的第一处理网络能够输出无限的动作空间。
图8A示出了作为比较示例的根据传统的DQN算法训练的CFM的游戏AI运行时的画面。图8B示出了根据本发明实施例的使用PPO算法训练的CFM的游戏AI运行时的画面示例。基于DQN算法训练出的处理网络只能输出有限动作空间内的动作。如图8A中的方框所示,基于DQN算法训练的处理网络只能使用固定的按钮来完成前后左右的固定速度移动,因此不能模拟人类输出连续的动作。相比之下,从图8B中可以看到,操作模式使用与人使用习惯更加接近的摇杆方式,与传统的DQN算法仅提供输出有限的动作空间相比,能够更好地模拟人类输出的动作。并且,训练得到的游戏AI在实际效果上也表现不错,例如,游戏AI可以在一些关键地点左右张望和蹲点射击(类似于人的侦查),例如营地左边右边的通道在快速旋转到敌人方向时,游戏AI就会左右转动来侦查敌人。
此外,在PPO算法中,可以不是每采集一次样本就训练一次,而是在采集到一批样本后再一起训练多次。如上文中所述,一帧游戏图像对应的游戏特征、所述游戏角色在该帧游戏图像中执行的动作以及该动作获得的奖励值为针对该帧游戏图像采集到的一组样本(minibatch)。并且,所述方法进一步包括:判断采集到的样本组数是否达到预定阈值;当采集到的样本组数达到预定阈值时,将多组样本提供至所述第一处理网络和所述第二处理网络,并基于该多组样本对所述第一处理网络和所述第二处理网络执行多次训练。例如,作为一种可能的实施方式,可以每采集到32个样本,就执行10次的PPO训练。
因此,与现有的DQN算法只能每次样本采集时训练一次且样本利用率低相比,通过积累多组样本并集中训练多次的方式,每组样本可以不仅训练一次,从而提高了样本利用率。这对于在手机上面采样游戏样本的应用场景尤其有用,因为手机上的样本生成速度受限于手机运行的游戏帧率(例如,不会超过60帧/s)而很低。通过提升样本利用率,可以进一步使得处理网络的训练速度也得到提升。此外,传统的DQN算法或PG算法需要使用特定的存储器(Replay Memory)来打破样本的关联性。在本发明中,由于积累多组样本并集中训练多次,可以在不使用特定存储器的情况下打破样本关联性,从训练资源的角度来看可以极大节省硬件开销。
又如,作为训练第一和第二处理网络的另一种方式,可以采用确定性策略梯度(Deterministic Policy Gradient,DPG)算法来训练所述第一处理网络和所述第二处理网络。
与上文中所述的PPO训练算法类似,DPG算法训练得到的处理网络也能够输出连续动作,即能够输出无限的动作空间。图8C示出了根据本发明实施例的、使用DPG算法训练的CFM的游戏AI运行时的画面示例。从图8C中可以看到,操作模式使用与人使用习惯更加接近的摇杆方式,与传统的DQN算法仅提供输出有限的动作空间相比(参照图8A),能够更好地模拟人类输出的动作。并且,训练得到的游戏AI在实际效果上也表现不错,在营地中能够完成10个以上的击杀。
不同的是,上文中所述的PPO训练算法为随机策略算法,也就是说,即使向处理网络提供相同的输入,该处理网络的输出也不相同。因此,在基于随机策略算法来训练处理网络时,不仅需要探索状态空间,还需要探索动作空间。与随机策略算法不同,在基于确定性策略梯度算法来训练处理网络时,如果向处理网络提供相同的输入,那么该处理网络的输出一定相同。也就是说,基于确定性策略算法来训练处理网络时,不需要探索动作空间,而仅需要探索状态空间。具体来说,在当向所述第一处理网络提供相同的输入时,所述第一处理网络输出相同,并且当向所述第二处理网络提供相同的输入时,所述第二处理网络输出相同。因此,基于DPG算法执行的处理网络训练的训练量将大幅降低。
此外,当使用深度处理网络的情况下,DPG算法将变为DDPG(Deep DeterministicPolicy Gradient,基于深度学习的确定性策略梯度)算法。
在上文中,已经参照图1至图8C详细描述了根据本发明实施例的用于游戏的数据处理方法。接下来,将参照图9描述根据本发明实施例的用于游戏的处理网络训练装置。例如,处理网络训练装置可以是上文中所述的服务器。如图9所示,用于游戏的处理网络训练装置900包括:获取部件901和训练部件902。
获取部件901用于获取游戏的至少当前帧游戏图像的多个游戏特征以及游戏角色在游戏中执行动作获得的奖励值。
例如,作为一种可能的实施方式,获取部件901可以仅获取当前帧游戏图像的多个游戏特征。可以认为,当前帧游戏图像的游戏特征体现了当前的游戏状态。例如,这些游戏特征包括但不限于以下特征:游戏角色自己的阵营、小地图中自己和队友的位置信息、大地图上敌人和队友的位置信息、自己的视角、受到攻击方向、自己的血量、弹药和击杀数。
在根据本发明的实施例中,没有直接使用游戏图像作为后续处理网络的输入。这是因为直接使用图像虽然简单,但是其状态空间过于巨大。具体来说,图像中的每一个像素点可以对应于状态空间中的一种状态,其不仅包括指示其二维位置的两个数字,而且还包括指示其色彩值的RGB的数值。这使得后续的处理网络需要更多的探索和训练时间才能找到合理的动作策略。因此,为了压缩状态空间和缩短训练时间,在根据本发明的实施例中,选择使用经过视觉识别提取后的游戏特征作为提供到后续处理网络的输入。
并且,与使用图像作为输入的现有的DQN算法相比,使用从图像提取的特征作为输入,后续处理网络的权重能够大幅降低。这对于执行训练的CPU(Central ProcessingUnit)和GPU(Graphic Processing Unit)的开销都很低,因此对执行训练的CPU和GPU的要求很低,即使普通的GPU或CPU处理能力比较弱的机器都可以用来训练游戏AI。
作为一种可能的实施方式,可以使用基于图像模版匹配和/或基于深度学习的物体检测方法来从游戏图像中提取游戏特征。
训练部件902用于基于所述获取部件获得的奖励值,训练第二处理网络,其中至少将所述多个游戏特征输入至所述第二处理网络,并从所述第二处理网络输出用以评价第一处理网络输出的动作的评价值,其中当向所述第一处理网络输入一帧游戏图像的多个游戏特征时,所述第一处理网络输出在该帧游戏图像中将要执行的动作,并且基于所述第二处理网络输出的评价值,训练所述第一处理网络。
第一处理网络是策略网络,用以决定输出何种动作。具体来说,当向所述第一处理网络输入一帧游戏图像的多个游戏特征(如,上文中所述的获取部件901获取的多个游戏特征)时,所述第一处理网络输出在该帧游戏图像中将要执行的动作。
第一处理网络可以包括一个或多个全连接层,且每一个全连接层中包括多个节点。其中,全连接层的数量以及每一个全连接层中的节点数量可以根据具体的设计而灵活地选择。
第二处理网络是评价网络,用以评价第一处理网络输出的动作是好还是坏。至少将所述多个游戏特征输入至第二处理网络,并从所述第二处理网络输出用以评价所述第一处理网络输出的动作的评价值。与第一处理网络输出三维的动作向量不同,第二处理网络输出的是作为标量的评价值。在本发明中,第二处理网络可以在第一处理网络每输出一个动作并导致游戏特征发生变化时输出评价值,而无需完成一局游戏后再计算评价值,从而能够实时地在线训练。
例如,作为一种可能的实施方式,可以仅将获取部件901获取的当前帧的所述多个游戏特征输入至第二处理网络。可以认为当前帧游戏图像的游戏特征体现了当前的游戏状态。也就是说,以当前的游戏状态作为第二处理网络的输入。在这种情况下,从所述第二处理网络输出的评价值是用以评价导致当前游戏状态的评价值。由于当前游戏状态是由上一游戏状态下执行的动作而产生的,因此所述评价值事实上是用以评价产生当前帧游戏图像的多个游戏特征的、所述第一处理网络基于上一帧游戏图像的多个游戏特征输出的动作的评价值。
或者,作为另一种可能的实施方式,除了当前帧的所述多个游戏特征之外,还可以进一步将第一处理网络基于当前帧游戏图像的游戏特征输出的动作输入至所述第二处理网络。也就是说,以当前的游戏状态以及当前游戏状态下执行的动作作为第二处理网络的输入。在这种情况下,从所述第二处理网络输出的评价值是用以评价在当前帧游戏图像中执行的、所述第一处理网络基于当前帧游戏图像的多个游戏特征输出的动作的评价值。
获取部件901获取所述游戏角色在游戏中执行所述动作获得的奖励值(reward)。可以基于执行动作前后两帧的游戏图像的游戏特征来计算奖励值。例如,通过将执行动作前的血量减去执行动作后的血量,能够得到损失血量。然后,基于损失血量和奖励值函数来确定奖励值。
如上文中所述,第一处理网络用以基于输入的游戏特征而输出将要执行的动作,且第二处理网络用以输出评价第一处理网络输出的动作的评价值。在最初开始训练时,第一处理网络随机地输出动作,且第二处理网络随机地输出评价值。也就是说,第一处理网络和第二处理网络中各节点的权重都未调整到合适的值。训练部件902训练第一处理网络和第二处理网络就是逐步找到网络中各节点权重的最优解的过程。
由于奖励值是通过执行动作而实际获得的,因此奖励值是能够体现动作好坏的相对准确的值。所以,将奖励值作为用以训练第二处理网络的参数。第二处理网络输出用以评价第一处理网络输出的动作的评价值,并且评价值用以作为训练第一处理网络的参数,从而第一处理网络能够提升输出评价值高的动作的概率,且降低输出评价值低的动作的概率,进而在训练完成后,第一处理网络能够学会正确的游戏行为。
训练部件902基于所述奖励值,训练所述第二处理网络。奖励值是通过执行一动作而得到的,因此与该动作对应。第二处理网络输出的是对于一动作的评价值,并且相应地,基于与该动作对应的奖励值来训练第二处理网络。
在上文中所述的、向第二处理网络输入当前帧游戏图像的多个游戏特征(可看作当前游戏状态)的实施方式中,第二处理网络输出的是对于该当前游戏状态的评价值,用于评价该当前游戏状态是好还是坏。事实上,第二处理网络输出的是用于评价上一游戏状态下第一处理网络输出的动作是好还是坏的评价值。当然,与此对应地,用于训练第二处理网络的参数为与上一游戏状态下做出的动作获得的奖励值。
或者,在上文中所述的、向第二处理网络输入当前帧游戏图像的多个游戏特征(当前游戏状态)以及第一处理网络基于当前帧游戏图像的多个游戏特征输出的动作向量的情况下,第二处理网络输出的是对于当前游戏状态和当前动作的评价值。当然,与此对应地,用于训练第二处理网络的参数为与当前游戏状态下做出的动作获得的奖励值。
训练部件902基于所述第二处理网络输出的评价值,训练所述第一处理网络,直至达到训练停止条件。这里,训练停止条件可以是损失函数收敛,或者游戏AI在游戏中的表现可接受,例如第一处理网络输出的动作总是能够获得最高的奖励值。第二处理网络的训练响应于第一处理网络的训练停止而停止。
在训练开始时,第一处理网络将随机地输出动作,且第二处理网络将随机地输出评价值。基于动作获得的奖励值来训练第二处理网络输出的评价值,通过调整第二处理网络中各节点的权重,使得评价值逐步地接近能够准确评价动作好坏的评价值。并且,第一处理网络将根据第二处理网络输出的评价值来进行训练。在第一处理网络训练时,通过调整第一处理网络中各节点的权重,以提升输出评价值高的动作的概率,而降低输出评价值低的动作的概率。从而,第一处理网络将逐步地学习正确的游戏行为。
在根据本发明实施例的装置中,获取部件进一步被配置为:获取游戏的当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征,其中将当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征输入至第二处理网络,并且其中当向所述第一处理网络输入当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征时,所述第一处理网络输出在当前帧游戏图像中将要执行的动作。
此外,在上文中描述了获取部件901仅获取当前帧的游戏图像的多个游戏特征,并执行后续处理的情况。可替代地,作为另一种可能的实施方式,获取部件901进一步被配置为:获取游戏的当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征,其中将当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征输入至第二处理网络,并且其中当向所述第一处理网络输入当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征时,所述第一处理网络输出在当前帧游戏图像中将要执行的动作。
通过向第一处理网络和第二处理网络输入连续多帧游戏图像的游戏特征,第一处理网络和第二处理网络能够具备类似于人类大脑的记忆功能。
基于以上的描述,可以看出,在根据本发明实施例的用于游戏的处理网络训练装置中,由于不使用图像作为处理网络的输入,而使用提取后的游戏特征作为处理网络的输入,大大压缩了状态空间,使得处理网络的训练量比传统DQN算法的训练量有着数量级的差距。并且,传统的DQN和PG算法训练时由于采用图像作为输入,使得处理网络的权重很大,进而在训练时对CPU和GPU要求很高。由于本发明采用游戏特征作为输入,处理网络的权重大幅降低,从而对训练的CPU和GPU开销都很低,即使普通的没有GPU、小内存、CPU运算能力弱的机器都可以用来训练本发明的处理网络。此外,通过采用分别确定动作和动作评价值的两个处理网络的架构,与传统的DQN算法和PG算法相比,能够保证更快的训练速度并实现实时在线训练。
例如,作为训练第一和第二处理网络的一种方式,训练部件902可以采用近端策略优化(Proximal Policy Optimization,PPO)算法。具体来说,训练部件902进一步被配置为:基于近端策略优化算法,确定所述第一处理网络和所述第二处理网络中各节点参数的梯度下降的步长,使得每次训练时梯度下降朝着最优解方向下降正确的步长。
因此,通过基于PPO算法训练第一处理网络和第二处理网络,能够选择梯度下降的正确的步长,不会因为过大的步长导致直接跳过最优解,也不会因为过小的步长而导致学习速度过于缓慢而损失函数无法正常收敛。并且,基于PPO算法训练得到的第一处理网络能够输出无限的动作空间。
此外,在PPO算法中,不是每采集一次样本就训练一次,而是在采集到一批样本后再一起训练多次。如上文中所述,一帧游戏图像对应的游戏特征、所述游戏角色在该帧游戏图像中执行的动作以及该动作获得的奖励值为针对该帧游戏图像采集到的一组样本(minibatch)。并且,所述装置进一步包括:判断部件(图中未示出),用于判断采集到的样本组数是否达到预定阈值;当采集到的样本组数达到预定阈值时,训练部件902将多组样本提供至所述第一处理网络和所述第二处理网络,并基于该多组样本对所述第一处理网络和所述第二处理网络执行多次训练。例如,作为一种可能的实施方式,可以每采集到32个样本,就执行10次的PPO训练。
因此,与现有的DQN算法只能每次样本采集时训练一次且样本利用率低相比,通过积累多组样本并集中训练多次的方式,每组样本可以不仅训练一次,从而提高了样本利用率。这对于在手机上面采样游戏样本的应用场景尤其有用,因为手机上的样本生成速度受限于手机运行的游戏帧率(例如,不会超过60帧/s)而很低。通过提升样本利用率,可以进一步使得处理网络的训练速度也得到提升。此外,传统的DQN算法或PG算法需要使用特定的存储器(Replay Memory)来打破样本的关联性。在本发明中,由于积累多组样本并集中训练多次,可以在不使用特定存储器的情况下打破样本关联性,从训练资源的角度来看可以极大节省硬件开销。
又如,作为训练第一和第二处理网络的另一种方式,训练部件902可以采用确定性策略梯度(Deterministic Policy Gradient)算法来训练所述第一处理网络和所述第二处理网络。
与上文中所述的PPO训练算法类似,DPG算法训练得到的处理网络也能够输出连续动作,即能够输出无限的动作空间。
不同的是,上文中所述的PPO训练算法为随机策略算法,也就是说,即使向处理网络提供相同的输入,该处理网络的输出也不相同。因此,在基于随机策略算法来训练处理网络时,不仅需要探索状态空间,还需要探索动作空间。与随机策略算法不同,在基于确定性策略梯度算法来训练处理网络时,如果向处理网络提供相同的输入,那么该处理网络的输出一定相同。也就是说,基于确定性策略算法来训练处理网络时,不需要探索动作空间,而仅需要探索状态空间。具体来说,在当向所述第一处理网络提供相同的输入时,所述第一处理网络输出相同,并且当向所述第二处理网络提供相同的输入时,所述第二处理网络输出相同。因此,基于DPG算法执行的处理网络训练的训练量将大幅降低。
根据本发明的实施例的用于游戏的处理网络训练装置作为硬件实体的一个示例如图10所示。所述终端设备包括处理器1001、存储器1002以及至少一个外部通信接口1003。所述处理器1001、存储器1002以及外部通信接口1003均通过总线1004连接。
对于用于数据处理的处理器1001而言,在执行处理时,可以采用微处理器、中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital SingnalProcessor)或可编程逻辑阵列(FPGA,Field-Programmable Gate Array)实现;对于存储器1002来说,包含操作指令,该操作指令可以为计算机可执行代码,通过所述操作指令来实现上述本发明实施例的用于游戏的数据处理方法中的各个步骤。
图11示出了根据本发明的实施例的计算机可读记录介质的示意图。如图10所示,根据本发明实施例的计算机可读记录介质1100其上存储有计算机程序指令1101。当所述计算机程序指令1101由处理器运行时,执行参照以上附图描述的根据本发明实施例的用于游戏的数据处理方法。
迄今为止,已经参照图1至图11详细描述了根据本发明实施例的用于游戏的数据处理方法和装置。
在根据本发明实施例的用于游戏的数据处理方法和装置中,由于不使用图像作为处理网络的输入,而使用提取后的游戏特征作为处理网络的输入,大大压缩了状态空间,使得处理网络的训练量比传统DQN算法的训练量有着数量级的差距。并且,传统的DQN和PG算法训练时由于采用图像作为输入,使得处理网络的权重很大,进而在训练时对CPU和GPU要求很高。由于本发明采用游戏特征作为输入,处理网络的权重大幅降低,从而对训练的CPU和GPU开销都很低,即使普通的没有GPU、小内存、CPU运算能力弱的机器都可以用来训练本发明的处理网络。
此外,通过采用分别确定动作和动作评价值的两个处理网络的架构,与传统的DQN算法和PG算法相比,能够保证更快的训练速度并实现实时在线训练。
另外,通过PPO算法或DPG算法训练第一处理网络,能够输出无限动作空间的连续动作。
通过基于PPO算法训练第一处理网络和第二处理网络,能够选择梯度下降的正确的步长,不会因为过大的步长导致直接跳过最优解,也不会因为过小的步长而导致学习速度过于缓慢而损失函数无法正常收敛。并且,基于PPO算法训练得到的第一处理网络能够输出无限的动作空间。与现有的DQN算法只能每次样本采集时训练一次且样本利用率低相比,通过积累多组样本并集中训练多次的方式,每组样本可以不仅训练一次,从而提高了样本利用率。这对于在手机上面采样游戏样本的应用场景尤其有用,因为手机上的样本生成速度受限于手机运行的游戏帧率(例如,不会超过60帧/s)而很低。通过提升样本利用率,可以进一步使得处理网络的训练速度也得到提升。此外,传统的DQN算法或PG算法需要使用特定的存储器(Replay Memory)来打破样本的关联性。在本发明中,由于积累多组样本并集中训练多次,可以在不使用特定存储器的情况下打破样本关联性,从训练资源的角度来看可以极大节省硬件开销。
另外,基于DPG算法来训练处理网络时,由于不需要探索动作空间,而仅需要探索状态空间,因此基于DPG算法执行的处理网络训练的训练量将大幅降低。
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后,还需要说明的是,上述一系列处理不仅包括以这里所述的顺序按时间序列执行的处理,而且包括并行或分别地、而不是按时间顺序执行的处理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过软件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (15)

1.一种用于游戏的数据处理方法,包括:
获取游戏的至少当前帧游戏图像的多个游戏特征;
至少将所述多个游戏特征输入至第二处理网络,并从所述第二处理网络输出用以评价第一处理网络输出的动作的评价值,其中所述第一处理网络的输入为一帧游戏图像的多个游戏特征,所述第一处理网络的输出为游戏角色在该帧游戏图像中将要执行的动作;
获取游戏角色在游戏中执行所述动作获得的奖励值;
基于所述奖励值,训练所述第二处理网络,以使得所述第二处理网络输出的对于所述动作的评价值与所述奖励值逼近;
基于所述第二处理网络输出的评价值,训练所述第一处理网络,以使得第一处理网络提升输出评价值高的动作的概率。
2.根据权利要求1所述的方法,其中至少将所述多个游戏特征输入至第二处理网络的步骤进一步包括:仅将所述多个游戏特征输入至第二处理网络,并且
其中从所述第二处理网络输出的评价值是用以评价导致产生当前帧游戏图像的多个游戏特征的、所述第一处理网络基于上一帧游戏图像的多个游戏特征输出的动作的评价值。
3.根据权利要求1所述的方法,其中至少将所述多个游戏特征输入至第二处理网络的步骤进一步包括:将所述多个游戏特征和所述第一处理网络基于当前帧游戏图像的多个游戏特征输出的动作输入至所述第二处理网络,
并且从所述第二处理网络输出的评价值是用以评价在当前帧游戏图像中执行的、所述第一处理网络基于当前帧游戏图像的多个游戏特征输出的动作的评价值。
4.根据权利要求1所述的方法,其中训练所述第一处理网络和训练所述第二处理网络的步骤进一步包括:
基于近端策略优化算法,确定所述第一处理网络和所述第二处理网络中各节点参数的梯度下降的步长,使得每次训练时梯度下降朝着最优解方向下降正确的步长。
5.根据权利要求4所述的方法,其中与一帧游戏图像对应的游戏特征、所述游戏角色在该帧游戏图像中执行的动作以及执行该动作获得的奖励值为针对该帧游戏图像采集到的一组样本,
并且所述方法进一步包括:
判断采集到的样本组数是否达到预定阈值;
当采集到的样本组数达到预定阈值时,将多组样本提供至所述第一处理网络和所述第二处理网络,并基于该多组样本对所述第一处理网络和所述第二处理网络执行多次训练,
其中获取游戏的至少当前帧游戏图像的多个游戏特征包括依次获取包括当前帧的多帧游戏图像,并且分别获得所述第一处理网络基于所述多帧游戏图像输出的多个动作获得的奖励值。
6.根据权利要求1所述的方法,其中训练所述第一处理网络和训练所述第二处理网络的步骤进一步包括:
基于确定性策略梯度算法训练所述第一处理网络和所述第二处理网络,其中当向所述第一处理网络提供相同的输入时,所述第一处理网络输出相同,并且当向所述第二处理网络提供相同的输入时,所述第二处理网络输出相同。
7.根据权利要求1所述的方法,其中获取游戏的至少当前帧游戏图像的多个游戏特征的步骤进一步包括:
获取游戏的当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征,
其中至少将所述多个游戏特征输入至第二处理网络的步骤进一步包括:
将当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征输入至第二处理网络,并且
其中当向所述第一处理网络输入当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征时,所述第一处理网络输出在当前帧游戏图像中将要执行的动作。
8.根据权利要求1所述的方法,其中获取游戏的至少当前帧游戏图像的多个游戏特征的步骤进一步包括:
基于图像模版匹配和/或基于深度学习的物体检测方法来从至少当前帧游戏图像提取多个游戏特征。
9.一种用于游戏的处理网络训练装置,包括:
获取部件,用于获取游戏的至少当前帧游戏图像的多个游戏特征以及游戏角色在游戏中执行动作获得的奖励值;
训练部件,用于基于所述获取部件获得的奖励值,训练第二处理网络,以使得所述第二处理网络输出的对于所述动作的评价值与所述奖励值逼近,其中至少将所述多个游戏特征输入至所述第二处理网络,并从所述第二处理网络输出用以评价第一处理网络输出的动作的评价值,其中所述第一处理网络的输入为一帧游戏图像的多个游戏特征,所述第一处理网络的输出为游戏角色在该帧游戏图像中将要执行的动作,并且基于所述第二处理网络输出的评价值,训练所述第一处理网络,以使得第一处理网络提升输出评价值高的动作的概率。
10.根据权利要求9所述的装置,其中仅将所述多个游戏特征输入至第二处理网络,并且
其中从所述第二处理网络输出的评价值是用以评价导致产生当前帧游戏图像的多个游戏特征的、所述第一处理网络基于上一帧游戏图像的多个游戏特征输出的动作的评价值。
11.根据权利要求9所述的装置,其中将所述多个游戏特征和所述第一处理网络基于当前帧游戏图像的多个游戏特征输出的动作输入至所述第二处理网络,
并且从所述第二处理网络输出的评价值是用以评价在当前帧游戏图像中执行的、所述第一处理网络基于当前帧游戏图像的多个游戏特征输出的动作的评价值。
12.根据权利要求9所述的装置,其中所述训练部件进一步被配置为:基于近端策略优化算法,确定所述第一处理网络和所述第二处理网络中各节点参数的梯度下降的步长,使得每次训练时梯度下降朝着最优解方向下降正确的步长。
13.根据权利要求12所述的装置,其中与一帧游戏图像对应的游戏特征、所述游戏角色在该帧游戏图像中执行的动作以及该动作获得的奖励值为针对该帧游戏图像采集到的一组样本,并且所述装置进一步包括:
判断单元,用于判断采集到的样本组数是否达到预定阈值;
当采集到的样本组数达到预定阈值时,所述训练部件将多组样本提供至所述第一处理网络和所述第二处理网络,并基于该多组样本对所述第一处理网络和所述第二处理网络执行多次训练,
其中所述获取部件被配置为:依次获取包括当前帧的多帧游戏图像,并且分别获得所述第一处理网络基于所述多帧游戏图像输出的多个动作获得的奖励值。
14.根据权利要求9所述的装置,其中所述训练部件进一步被配置为:
基于确定性策略梯度算法训练所述第一处理网络和所述第二处理网络,其中当向所述第一处理网络提供相同的输入时,所述第一处理网络输出相同,并且当向所述第二处理网络提供相同的输入时,所述第二处理网络输出相同。
15.根据权利要求9所述的装置,其中获取部件进一步被配置为:
获取游戏的当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征,
其中将当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征输入至第二处理网络,并且
其中当向所述第一处理网络输入当前帧游戏图像的多个游戏特征以及当前帧之前的至少一帧游戏图像的多个游戏特征时,所述第一处理网络输出在当前帧游戏图像中将要执行的动作。
CN201910088050.2A 2019-01-29 2019-01-29 用于游戏的数据处理方法和装置 Active CN109847366B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910088050.2A CN109847366B (zh) 2019-01-29 2019-01-29 用于游戏的数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910088050.2A CN109847366B (zh) 2019-01-29 2019-01-29 用于游戏的数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN109847366A CN109847366A (zh) 2019-06-07
CN109847366B true CN109847366B (zh) 2021-12-17

Family

ID=66896821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910088050.2A Active CN109847366B (zh) 2019-01-29 2019-01-29 用于游戏的数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN109847366B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110378247B (zh) * 2019-06-26 2023-09-26 腾讯科技(深圳)有限公司 虚拟对象识别方法和装置、存储介质及电子装置
CN110327624B (zh) * 2019-07-03 2023-03-17 广州多益网络股份有限公司 一种基于课程强化学习的游戏跟随方法和系统
CN112492346A (zh) * 2019-09-12 2021-03-12 上海哔哩哔哩科技有限公司 确定游戏视频中精彩时刻的方法和游戏视频的播放方法
CN110841276B (zh) 2019-10-31 2021-05-14 腾讯科技(深圳)有限公司 虚拟道具的控制方法和装置、存储介质及电子装置
CN111026272B (zh) * 2019-12-09 2023-10-31 网易(杭州)网络有限公司 虚拟对象行为策略的训练方法及装置、电子设备、存储介质
CN112742031B (zh) * 2020-03-18 2022-08-02 腾讯科技(深圳)有限公司 模型训练方法、游戏测试方法、ai角色训练方法及装置
CN111443806B (zh) * 2020-03-26 2023-08-11 腾讯科技(深圳)有限公司 交互任务的控制方法、装置、电子设备及存储介质
CN111111204B (zh) * 2020-04-01 2020-07-03 腾讯科技(深圳)有限公司 交互模型训练方法、装置、计算机设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977585B2 (en) * 2011-03-09 2015-03-10 Sportsvision, Inc. Simulation system
US9679258B2 (en) * 2013-10-08 2017-06-13 Google Inc. Methods and apparatus for reinforcement learning
CN106422332B (zh) * 2016-09-08 2019-02-26 腾讯科技(深圳)有限公司 应用于游戏的人工智能操作方法和装置
CN108236785B (zh) * 2018-02-08 2022-11-11 腾讯科技(深圳)有限公司 一种获取对象信息的方法及装置
CN108404415B (zh) * 2018-03-22 2021-07-23 网易(杭州)网络有限公司 数据的处理方法和装置
CN108491930B (zh) * 2018-03-23 2022-04-15 腾讯科技(深圳)有限公司 一种样本数据的处理方法以及数据处理装置
CN108671546A (zh) * 2018-05-23 2018-10-19 腾讯科技(深圳)有限公司 目标操作的确定方法和装置、存储介质及电子装置
CN109091869B (zh) * 2018-08-10 2022-07-26 腾讯科技(深圳)有限公司 虚拟对象的动作控制方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN109847366A (zh) 2019-06-07

Similar Documents

Publication Publication Date Title
CN109847366B (zh) 用于游戏的数据处理方法和装置
US11291917B2 (en) Artificial intelligence (AI) model training using cloud gaming network
JP7159458B2 (ja) 仮想環境における仮想対象のスケジューリング方法、装置、デバイス及びコンピュータプログラム
WO2020259502A1 (zh) 神经网络模型的生成方法及装置、计算机可读存储介质
CN108090561B (zh) 存储介质、电子装置、游戏操作的执行方法和装置
CN110339569B (zh) 控制游戏场景中虚拟角色的方法及装置
US9679258B2 (en) Methods and apparatus for reinforcement learning
CN111111220B (zh) 多人对战游戏的自对弈模型训练方法、装置和计算机设备
CN109902820B (zh) Ai模型训练方法、装置、存储介质及设备
CN110489340B (zh) 一种游戏地图平衡性测试方法、装置、设备及存储介质
CN110251942B (zh) 控制游戏场景中虚拟角色的方法及装置
CN110152290A (zh) 游戏运行方法和装置、存储介质及电子装置
Kunanusont et al. General video game ai: Learning from screen capture
CN111841018B (zh) 模型训练方法、模型使用方法、计算机设备及存储介质
CN111282267A (zh) 信息处理方法、装置、介质及电子设备
CN112827168B (zh) 一种目标跟踪的方法、装置及存储介质
CN111282272B (zh) 信息处理方法、计算机可读介质及电子设备
CN112905013A (zh) 智能体控制方法、装置、计算机设备和存储介质
CN112742029A (zh) 一种模拟操作的方法、游戏测试的方法以及相关装置
Youssef et al. Building your kingdom imitation learning for a custom gameplay using unity ml-agents
CN113230650B (zh) 一种数据处理方法、装置及计算机可读存储介质
CN114404977A (zh) 行为模型的训练方法、结构扩容模型的训练方法
KR102246617B1 (ko) 화면 분석 방법
CN115944921B (zh) 游戏数据处理方法、装置、设备及介质
CN116943220A (zh) 一种游戏人工智能控制方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant