数据处理方法、装置、计算机设备和存储介质与流程

文档序号:14944852发布日期:2018-07-17 20:55阅读:113来源:国知局

本发明涉及数据处理领域,特别是涉及数据处理方法、装置、计算机设备和存储介质。



背景技术:

随着互联网技术的不断发展,游戏逐渐成为人们热衷的娱乐节目,例如,用户可以通过多人在线战斗竞技场游戏(multiplayeronlinebattlearena,moba)与其他游戏玩家进行竞技。

为了增加游戏的刺激性以及趣味性,出现了越来越多的实时对战玩法,当通过人工智能进行游戏时,例如在玩家掉线时通过游戏机器人进行暂时托管或者利用人工智能模拟真实玩家进行游戏对抗时,需要对游戏数据进行进一步处理得到决策结果,由于游戏玩法多样,候选决策结果多,因此数据处理时间长,数据处理效率低。



技术实现要素:

基于此,有必要针对上述的问题,提供一种数据处理方法、装置、计算机设备和存储介质,可通过待控制虚拟对象对应的第一当前状态信息进行行为决策,得到目标行为后再根据待控制虚拟对象对应的第二当前状态信息以及操作选择模型得到目标行为对应的目标操作,由于先利用第一当前状态信息进行大局观层面的行为的决策,再利用第二当前状态信息以及已训练的模型得到目标行为对应的具体操作,因此可以减少利用机器模型进行决策时候选决策结果的数量,减少了数据处理时间,提高了数据处理效率。

一种数据处理方法,所述方法包括:获取待控制虚拟对象对应的第一当前状态信息;根据所述第一当前状态信息进行行为决策,得到所述待控制虚拟对象对应的目标行为;获取所述待控制虚拟对象对应的第二当前状态信息,将所述第二当前状态信息输入到已训练的操作选择模型中,得到目标操作,所述目标操作是从所述目标行为对应的候选操作集合中筛选得到的,所述候选操作集合包括至少两个候选操作;控制所述待控制虚拟对象执行所述目标操作。

一种数据处理装置,所述装置包括:第一状态获取模块,用于获取待控制虚拟对象对应的第一当前状态信息;行为决策模块,用于根据所述第一当前状态信息进行行为决策,得到所述待控制虚拟对象对应的目标行为;目标操作得到模块,用于获取所述待控制虚拟对象对应的第二当前状态信息,将所述第二当前状态信息输入到已训练的操作选择模型中,得到目标操作,所述目标操作是从所述目标行为对应的候选操作集合中筛选得到的,所述候选操作集合包括至少两个候选操作;控制模块,用于控制所述待控制虚拟对象执行所述目标操作。

在其中一个实施例中,所述目标操作得到模块包括:图像帧获取单元,用于获取所述待控制虚拟对象的当前图像帧以及按照显示顺序获取所述当前图像帧之前的历史图像帧;集合组成单元,用于将所述当前图像帧以及所述历史图像帧组成当前图像帧集合,作为所述第二当前状态信息。

在其中一个实施例中,所述目标操作得到模块包括:图像特征得到单元,用于将所述当前图像帧集合输入到所述图像特征提取层中,得到对应的图像内容特征;非图像信息获取单元,用于获取所述待控制虚拟对象的非图像帧状态信息;目标操作得到单元,用于将所述待控制虚拟对象的非图像帧状态信息以及所述图像内容特征输入到所述全连接层中,得到所述目标操作。

在其中一个实施例中,所述装置还包括模型训练模块,包括:训练信息获取单元,用于获取当前操作选择模型,获取所述待控制虚拟对象对应的当前训练状态信息;当前操作获取单元,用于从所述候选操作集合中获取当前操作,控制所述待控制虚拟对象执行所述当前操作,得到执行所述当前操作后所述待控制虚拟对象对应的更新后状态信息;调整单元,用于根据所述更新后状态信息以及所述当前训练状态信息计算得到激励反馈数据,根据所述激励反馈数据调整所述当前操作选择模型中的模型参数;返回单元,用于将所述更新状态信息作为所述当前训练状态信息,返回获取所述当前训练状态信息的步骤,直至所述当前操作选择模型收敛。

在其中一个实施例中,所述调整单元用于:根据所述当前训练状态信息以及所述当前操作选择模型计算得到所述当前操作对应的第二操作评价值;根据所述更新后状态信息以及所述当前操作选择模型计算得到所述候选操作集合中各个候选操作的候选操作评价值;根据所述各个候选操作评价值中的最大操作评价值以及所述激励反馈数据得到期望操作评价值;根据所述第二操作评价值以及所述期望操作评价值调整所述当前操作选择模型中的模型参数。

在其中一个实施例中,所述调整单元用于:获取所述待控制虚拟对象的当前训练状态信息以及所述待控制虚拟对象的更新后状态信息,根据所述待控制虚拟对象的当前训练状态信息以及更新后状态信息得到第一状态变化信息,根据所述第一状态变化信息得到第一激励反馈数据;获取与所述待控制虚拟对象进行交互操作的交互虚拟对象,获取所述交互虚拟对象的当前训练状态信息以及所述交互虚拟对象的更新后状态信息,根据所述交互虚拟对象的当前训练状态信息以及更新后状态信息得到第二状态变化信息,根据所述第二状态变化信息得到第二激励反馈数据;根据所述第一激励反馈数据以及所述第二激励反馈数据得到所述激励反馈数据。

在其中一个实施例中,所述当前操作获取单元用于:被选中率获取单元,用于获取随机操作的当前被选中率;数值范围设置单元,用于根据所述随机操作的当前被选中率设置随机操作对应的第一数值范围以及模型操作对应的第二数值范围;随机数生成单元,用于生成在所述第一数值范围或所述第二数值范围内的随机数;随机操作选择单元,用于当所述随机数在所述第一数值范围内时,从所述候选操作集合中随机选择候选操作作为所述当前操作;模型操作筛选单元,用于当所述随机数在所述第二数值范围时,将所述当前训练状态信息输入到所述当前操作选择模型中,计算得到所述候选操作集合中各个候选操作的第三操作评价值,根据所述各个候选操作的第三操作评价值从所述候选操作集合中筛选出所述当前操作。

在其中一个实施例中,所述目标操作得到模块包括:第一价值得到单元,用于将所述第二当前状态信息输入到已训练的操作选择模型中,得到所述目标行为对应的候选操作集合中各个候选操作的第一操作评价值;目标操作筛选单元,用于根据所述各个候选操作的第一操作评价值从所述候选操作中筛选出目标操作。

在其中一个实施例中,所述行为决策模块包括:行为树模型获取单元,用于获取预先设置的行为树模型;遍历单元,用于根据所述第一当前状态信息在所述行为树模型中进行遍历,得到符合所述第一当前状态信息的目标行为。

在其中一个实施例中,所述获取待控制虚拟对象对应的第一当前状态信息的步骤之前包括:托管请求接收模块,用于接收客户端发送的游戏托管请求;所述第一状态获取模块用于:根据所述游戏托管请求获取所述客户端对应的待控制虚拟对象的第一当前状态信息;所述控制模块用于:将所述目标操作对应的操作指令发送到所述客户端中,所述目标操作对应的操作指令用于指示所述客户端对应的待控制虚拟对象执行所述目标操作。

在其中一个实施例中,所述第一当前状态信息包括所述待控制虚拟对象的当前状态信息、与所述待控制虚拟对象进行交互操作的交互虚拟对象的当前状态信息、所述待控制虚拟对象与所述交互虚拟对象之间的当前状态信息、以及所述待控制虚拟对象所在的环境对应的当前环境状态信息中的至少一种。

在其中一个实施例中,所述第一状态获取模块用于:获取所述目标虚拟对象组合对应的第一当前状态信息集合,所述第一当前状态信息集合包括所述各个待控制虚拟对象对应的第一当前状态信息;所述行为决策模块用于:根据所述第一当前状态信息集合进行行为决策,得到所述各个待控制虚拟对象对应的目标行为;所述目标操作得到模块用于:将目标行为为预设行为的待控制虚拟对象作为目标待控制虚拟对象,获取所述目标待控制虚拟对象组合对应的第二当前状态信息,输入到已训练的所述目标待控制虚拟对象对应的操作选择模型中,得到所述各个目标待控制虚拟对象对应的目标操作;所述控制模块用于:控制所述目标待控制虚拟对象执行对应的目标操作。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述数据处理方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述数据处理方法的步骤。

上述数据处理方法、装置、计算机设备和存储介质,可通过待控制虚拟对象对应的第一当前状态信息进行行为决策,得到目标行为后再根据待控制虚拟对象对应的第二当前状态信息以及操作选择模型得到目标行为对应的目标操作,由于先利用第一当前状态信息进行大局观层面的行为的决策,再利用第二当前状态信息以及已训练的模型得到目标行为对应的具体操作,因此可以减少利用机器模型进行决策的候选决策结果的数量,减少了数据处理时间,提高了数据处理效率。

附图说明

图1为一个实施例中提供的数据处理方法的应用环境图;

图2为一个实施例中数据处理方法的流程图;

图3a为一个实施例中当前图像帧的示意图;

图3b为一个实施例中裁剪后的当前图像帧的示意图;

图4为一个实施例中获取待控制虚拟对象对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作的流程图;

图5为一个实施例中操作选择模型的示意图;

图6为一个实施例中操作选择模型的训练步骤的流程图;

图7为一个实施例中根据更新后状态信息以及当前训练状态信息计算得到激励反馈数据,根据激励反馈数据调整当前操作选择模型中的模型参数的流程图;

图8为一个实施例中根据更新后状态信息以及当前训练状态信息计算得到激励反馈数据的流程图;

图9为一个实施例中从候选操作集合中获取当前操作的流程图;

图10为一个实施例中行为树模型的示意图;

图11为一个实施例中数据处理装置的结构框图;

图12为一个实施例中目标操作得到模块的结构框图;

图13为一个实施例中模型训练模块的结构框图;

图14为一个实施例中当前操作获取单元的结构框图;

图15为一个实施例中数据处理装置的结构框图;

图16为一个实施例中计算机设备的内部结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一当前状态信息称为第二当前状态信息,且类似地,可将第二当前状态信息称为第一当前状态信息。

图1为一个实施例中提供的数据处理方法的应用环境图,如图1所示,在该应用环境中,包括终端110以及计算机设备120。以游戏为例,终端110上运行有游戏应用,当游戏玩家需要暂时离开并托管游戏时,可以向计算机设备120发送游戏托管请求,计算机设备120接收到游戏托管请求,将终端110的游戏应用上登录的用户对应的游戏角色作为待控制虚拟对象,获取待控制虚拟对象对应的第一当前状态信息,根据第一当前状态信息进行行为决策,得到游戏角色对应的目标行为例如为对战行为,然后获取游戏角色对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作,其中目标操作是从对战行为对应的候选操作集合中筛选出的。得到目标操作后,可以将目标操作对应的操作指令发送给终端110,终端110控制游戏应用上的游戏角色根据操作指令执行目标操作。

计算机设备120可以是独立的物理服务器或终端,也可以是多个物理服务器构成的服务器集群,可以是提供云服务器、云数据库、云存储和cdn等基础云计算服务的云服务器。终端120可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱以及智能手表等,但并不局限于此。终端110以及计算机设备120可以通过蓝牙、usb(universalserialbus,通用串行总线)或者网络等通讯连接方式进行连接,本发明在此不做限制。需要说明的是,上述的应用场景仅是本发明实施例提供的数据处理方法的一个示例性应用场景,并不构成对本发明实施例提供的数据处理方法的限制,在一个实施例中,本发明实施例提供的数据处理方法还可以应用于模拟真实玩家与其他游戏玩家进行游戏或者在竞技对抗类游戏中进行游戏平衡性测试等。

如图2所示,在一个实施例中,提出了一种数据处理方法,本实施例主要以该方法应用于上述图1中的计算机设备120来举例说明。具体可以包括以下步骤:

步骤s202,获取待控制虚拟对象对应的第一当前状态信息。

具体地,虚拟对象指在应用中例如游戏应用中虚拟出来的角色,为虚拟世界中的活动实体,可以由系统或者人通过计算机设备进行控制。虚拟对象可以是三维的也可以是二维的,可以是人物虚拟对象或者动物虚拟对象等。待控制虚拟对象可以为一个或多个。待控制虚拟对象对应的第一当前状态信息用于表示待控制虚拟对象当前所处的状况,可以包括待控制虚拟对象的当前状态信息、与待控制虚拟对象进行交互操作的交互虚拟对象的当前状态信息、待控制虚拟对象与交互虚拟对象之间的当前状态信息、以及待控制虚拟对象所在的环境的当前环境状态信息中的至少一种。待控制虚拟对象的交互虚拟对象指可以与待控制虚拟对象进行交互操作的虚拟对象,例如在moba游戏中,与待控制虚拟对象英雄a进行交战的英雄b为英雄a的交互虚拟对象。第一当前状态信息中的信息类型可以根据实际需要进行设置。第一当前状态信息可以是通过语音、图像以及视频识别等方式获取得到,本发明对此不作限制。例如,可以是通过识别游戏应用中图像,获取到第一当前状态信息,也可以通过接口直接获取游戏服务器存储的第一当前状态信息。

在一个实施例中,待控制虚拟对象的当前状态信息可以是待控制虚拟对象的等级信息、用于表示待控制虚拟对象生命值属性的信息例如游戏中英雄的血量、待控制虚拟对象的技能信息例如有什么技能以及技能是否可用的信息中的一种或多种。交互虚拟对象的当前状态信息可以是交互虚拟对象的等级信息、用于表示交互虚拟对象生命值属性的信息例如游戏中英雄的血量、交互虚拟对象的技能信息例如有什么技能以及技能是否可用的信息中的一种或多种。待控制虚拟对象与交互虚拟对象之间的当前状态信息可以是待控制虚拟对象与交互虚拟对象之间的相对位置信息、相对生命值属性信息例如英雄血量的差距、技能等级之间的差距等信息中的一种或多种。待控制虚拟对象所在的环境对应的当前环境状态信息可以是待控制虚拟对象所处地点的状态信息例如是处于室内还是室外、室内环境是否包括门等。

在一个实施例中,待控制虚拟对象为多个,多个待控制虚拟对象组成目标虚拟对象组合,因此可以获取目标虚拟对象组合对应的第一当前状态信息集合,第一当前状态信息集合包括各个待控制虚拟对象对应的第一当前状态信息。例如,在对抗游戏中,多个游戏玩家组成一队与另一队游戏玩家进行对抗,可以利用人工智能对其中的一队玩家的操作进行控制,因此,可以获取各个玩家对应的第一当前状态信息,组成第一当前状态信息集合。

步骤s204,根据第一当前状态信息进行行为决策,得到待控制虚拟对象对应的目标行为。

具体地,行为是对一个或多个属于同一属性的操作的概括。行为的类型具体可以根据实际需要进行设置。例如行为可以是包括买装备、升级技能以及进行对战等。买装备行为对应的操作可以是买a装备以及买b装备等操作。升级技能行为对应的操作可以是升级c技能以及升级d技能等操作。对战行为对应的操作可以是对战时在各个方向(前、后、左、右以及站着不动)上的移动操作、各个技能的释放操作以及攻击操作等各个操作的任意组合等。进行行为决策的方法可以根据需要进行设置,例如可以预先设置有限状态机(finite-statemachine,fsm)模型,通过有限状态机模型以及第一当前状态信息进行行为决策,得到对应的目标行为。也可以根据预设的行为树模型以及第一当前状态信息进行行为决策,得到对应的目标行为。

在一个实施例中,可以预先设置行为树(behaviortree、bt)模型,当要进行行为决策时,获取预先设置的行为树模型,根据第一当前状态信息在行为树模型中进行遍历,得到符合第一当前状态信息的目标行为。行为树模型中包括控制节点以及行为节点,在进行遍历时,将控制节点对应的条件与第一当前状态信息进行对比,若第一当前状态信息中的状态信息满足条件,则进入控制节点中满足条件的子节点,若子节点为控制节点,则继续将子节点的条件与第一当前状态信息进行比对,直至查找到行为节点,将行为节点对应的行为作为目标行为。在游戏中,结合行为树和经过机器学习的操作选择模型确定目标操作,由于行为树修改方便,适合定制设计,因此进行大局观层面上的行为决策使得对游戏角色的控制更加灵活,且可以降低模型进行数据处理的数据量,因此减少了进行行为决策以及操作决策的时间。

在一个实施例中,当待控制虚拟对象对应的第一当前状态信息包括目标虚拟对象组合对应的第一当前状态信息集合时,可以根据第一当前状态信息集合进行行为决策,得到各个待控制虚拟对象对应的目标行为,因此,可以合理的对同一个组合的虚拟对象对应的操作进行分配。

步骤s206,获取待控制虚拟对象对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作,目标操作是从目标行为对应的候选操作集合中筛选得到的,候选操作集合包括至少两个候选操作。

具体地,第二当前状态信息可以与第一当前状态信息相同也可以不同,具体可以根据实际需要设置。在一个实施例中,可以获取游戏应用的图像帧数据作为第二当前状态信息,操作选择模型是已经预先训练得到的机器学习模型。操作选择模型的类型具体可以根据实际需要进行设置,例如可以为增强学习模型以及深度学习模型等。在一个实施例中,操作选择模型可以是深度增强学习模型,深度增强学习模型是将深度学习与增强学习结合起来从而实现从感知输入到动作输出的机器学习模型,例如,深度增强学习可以是dqn(deepqnetwork)模型、a3c(asynchronousadvantageactor-critic,异步的优势行动者评论家算法)模型或者unreal(unsupervisedreinforcementandauxiliarylearning、非监督辅助任务中的强化学习)模型等。将第二当前状态信息输入操作选择模型之前,需要通过训练数据对操作选择模型进行训练确定模型中的模型参数。训练样本可以是真实玩家进行游戏时的游戏操作数据。在一个实施例中,进行模型训练时,可以采用有监督的学习方式,对于任意训练数据,其对应的当前状态信息以及其对应的操作都是己知的。操作选择模型的建立需要进行长而复杂的训练过程,对模型中的参数进行一定的学习,使其能够建立起从输入到输出的映射,即当前状态信息到目标行为对应的目标操作的映射。

在一个实施例中,输出的目标行为可以包括一个或多个,当为多个时,可以根据各个目标行为对应的操作选择模型得到各个目标行为对应的目标操作。也可以从多个目标行为筛选出为预设行为的当前行为,根据当前行为对应的操作选择模型得到当前行为对应的目标操作。例如输出的目标行为可以包括“升级技能”、“买装备”以及“进行对战”三个,而预设行为为“进行对战”,因此,可以将第二当前状态信息输入到“进行对战”对应的操作选择模型中,得到“进行对战”行为对应的目标操作。而对于“升级技能”以及“买装备”等目标行为,可以采用其他策略获取目标操作。

在一个实施例中,获取待控制虚拟对象对应的第二当前状态信息的步骤包括:获取待控制虚拟对象的当前图像帧以及按照显示顺序获取当前图像帧之前的历史图像帧。将当前图像帧以及历史图像帧组成当前图像帧集合,作为第二当前状态信息。

具体地,当前图像帧是指当前时刻待控制虚拟对象所在的图像帧,当前图像帧之前的历史图像帧是显示顺序在当前图像帧之前的图像帧。历史图像帧的数目可以根据实际需要进行设置,例如可以为3。在一个实施例中,还可以将图像帧进行进一步处理后,再将处理后的图像帧组成当前图像帧集合。例如可以对图像帧进行灰度化处理,得到图像帧的灰度图,再将灰度图组成当前图像帧集合。或者还可以将图像帧进行裁剪,得到裁剪后的图像帧再组成当前图像帧集合。例如可以将游戏图像中包含ui(userinterface、用户界面)按钮例如技能以及攻击等操作的按钮的部分图像去掉,保留了与游戏场景内容有关的部分图像帧。以游戏为例,图3a为当前图像帧,虚线框内的图像为主要的游戏场景内容,虚线框外的图像为一些ui按钮或者其他与主要游戏场景内容不相关的标识,因此,可以对当前图像帧进行裁剪,去除与游戏场景内容无关的图像部分,得到裁剪后的图像帧,如图3b所示。

在一个实施例中,当待控制虚拟对象为多个时,得到各个待控制虚拟对象对应的目标行为后,获取待控制虚拟对象对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作的步骤包括:将目标行为为预设行为的待控制虚拟对象作为目标待控制虚拟对象,获取目标待控制虚拟对象组合对应的第二当前状态信息,输入到已训练的目标待控制虚拟对象对应的操作选择模型中,得到各个目标待控制虚拟对象对应的目标操作。

具体地,各个待控制虚拟对象各自对应有操作选择模型,预先设置了预设行为,将目标行为为预设行为的待控制虚拟对象作为目标待控制虚拟对象,然后将目标待控制虚拟对象组合对应的第二当前状态信息,输入到已训练的目标待控制虚拟对象对应的操作选择模型中,得到各个目标待控制虚拟对象对应的目标操作。例如,预设行为为对战行为,目标虚拟对象组合有三个待控制虚拟对象:a、b以及c。待控制虚拟对象a、b以及c分别对应的目标行为为升级技能、对战以及对战。因此,b与c为目标待控制虚拟对象,获取目标待控制虚拟对象组合对应的第二当前状态信息,输入到已训练的b对应的操作选择模型以及c对应的操作选择模型中,分别得到b以及c对应的目标操作。

在一个实施例中,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作的步骤包括:将第二当前状态信息输入到已训练的操作选择模型中,得到目标行为对应的候选操作集合中各个候选操作的第一操作评价值。根据各个候选操作的第一操作评价值从候选操作中筛选出目标操作。

具体地,操作评价值用于对操作的价值进行评价,操作评价值大,则说明该操作的价值高,即执行该操作后得到的回报高。得到各个候选操作的第一操作评价值后,可以选择操作评价值最大的操作作为目标操作。在一个实施例中,还可以根据候选操作集合中操作的状态选择目标操作,选择操作评价值大而且操作状态为可用的操作作为目标操作。例如,得到操作评价值最大的操作后,判断该操作的状态是否可用,若不可用,则选择操作评价价值为第二大的操作作为目标操作。例如,在游戏应用中,当使用一个技能后,会计算cd时间(cooldowntime、冷却时间),在cd时间内时,该技能不可用,因此可以判断筛选出的操作是否在cd时间内,若是,则不选择该操作。

步骤s208,控制待控制虚拟对象执行目标操作。

在一个实施例中,当得到目标操作后,控制待控制虚拟对象执行该目标操作。在一个实施例中,可以将目标操作对应的操作指令发送到对应的客户端中,其中,目标操作对应的操作指令用于指示客户端对应的待控制虚拟对象执行目标操作。例如,当目标操作为向左移动时,则控制游戏对象向左移动。

上述数据处理方法可通过待控制虚拟对象对应的第一当前状态信息进行行为决策,得到目标行为后再根据待控制虚拟对象对应的第二当前状态信息以及操作选择模型得到目标行为对应的目标操作,由于先利用第一当前状态信息进行大局观层面的行为的决策,再利用第二当前状态信息以及已训练的模型得到目标行为对应的具体操作,因此可以减少利用机器模型进行决策的候选决策结果的数量,减少了数据处理时间,提高了数据处理效率。

在一个实施例中,步骤s202即获取待控制虚拟对象对应的第一当前状态信息的步骤之前包括:接收客户端发送的游戏托管请求。步骤s202包括:根据游戏托管请求获取客户端对应的待控制虚拟对象的第一当前状态信息。步骤s208包括:将目标操作对应的操作指令发送到客户端中,目标操作对应的操作指令用于指示客户端对应的待控制虚拟对象执行目标操作。

具体地,当需要进行游戏托管时,例如当接收到用户的游戏托管请求时,客户端向计算机设备发送游戏托管请求,计算机设备接收该游戏托管请求,获取发出游戏托管请求的客户端上登录的用户对应的虚拟对象标识,获取该虚拟对象标识对应的待控制虚拟对象对应的第一当前状态信息。得到目标操作后,将目标操作对应的操作指令发送到客户端中,使客户端对应的待控制虚拟对象执行目标操作。

在一个实施例中,如图4所示,第二当前状态信息还包括非图像帧状态信息,操作选择模型包括图像特征提取层以及全连接层,步骤s206即获取待控制虚拟对象对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作的步骤可以包括以下步骤:

步骤s402,将当前图像帧集合输入到图像特征提取层中,得到对应的图像内容特征。

具体地,图像特征提取层用于提取图像内容特征,操作选择模型可以包括深度增强学习模型,可以利用cnn(convolutionalneuralnetwork,卷积神经网络)模型中的卷积层以及池化层提取图像内容特征。

步骤s404,获取待控制虚拟对象的非图像帧状态信息。

具体地,非图像帧状态信息指不是图像帧类型的状态信息,具体的非图像帧状态信息可以根据实际需要进行设置。例如非图像帧状态信息可以包括待控制虚拟对象的等级、待控制虚拟对象与生命值属性有关的信息例如游戏中英雄的血量以及待控制虚拟对象的技能是否可用等状态信息。非图像帧状态信息可以是通过图像识别得到的或者通过接口从游戏服务器获取得到的。例如,可以通过识别当前图像帧上标识血量的文字或者图表,得到具体的血量值。

步骤s406,将待控制虚拟对象的非图像帧状态信息以及图像内容特征输入到全连接层中,得到目标操作。

具体地,全连接层用于将得到的特征进行融合,映射得到目标操作。全连接层的数量可以根据需要进行设置,例如可以为5层,图像特征提取层与全连接层相连,得到图像内容特征后,将图像内容特征输入到全连接层中,非图像帧状态信息可以输入到第一层全连接层中,也可以是输入到其他全连接层中。由于在全连接层上融合了新的非图像帧状态信息的输入,而数值类特征或者语音特征等很难通过图像特征提取层识别出来,因此在全连接层中输入非图像帧状态信息可以使得得到的特征更加全面,提高了得到目标操作的准确性。

如图5所示,为一个实施例中操作选择模型的示意图,操作选择模型可以为dqn模型,dqn模型包括多层卷积层以及多层全连接层,具体层数可以根据实际需要进行设置。图像特征提取层包括卷积层(图5中的conv),每层由多个二维平面组成,而每个平面由多个独立神经元组成。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的池化层(图5中的pooling),这种特有的两次特征提取结构使网络在识别时对输入图像有较高的畸变容忍能力。得到图像内容特征后,可以输入到第一层全连接层(图5中的fc)中,第一层全连接层的输出作为第二层全连接层的输入,此时,还可以将非图像帧状态信息作为第二层全连接层的输入。经过多层连接层的映射后,最后得到输出(output),即目标操作。

在一个实施例中,如图6所示,操作选择模型的训练步骤包括:

步骤s602,获取当前操作选择模型,获取待控制虚拟对象对应的当前训练状态信息。

具体地,当前操作选择模型可以根据实际需要进行选择,例如,可以是dqn模型或者a3c模型等。待控制虚拟对象对应的当前训练状态信息用于形容待控制虚拟对象在训练时当前所处的状况,待控制虚拟对象对应的当前训练状态信息可以包括训练时待控制虚拟对象的当前状态信息、与待控制虚拟对象进行交互操作的交互虚拟对象的当前状态信息、待控制虚拟对象与交互虚拟对象之间的当前状态信息以及待控制虚拟对象所在的环境对应的当前环境状态信息中的至少一种。在开始训练前,可以预先启动游戏,得到启动游戏后的初始状态信息。

步骤s604,从候选操作集合中获取当前操作,控制待控制虚拟对象执行当前操作,得到执行当前操作后待控制虚拟对象对应的更新后状态信息。

具体地,当前操作的获取方法可以是随机的,也可以是将当前训练状态信息输入到当前操作选择模型中得到的。可以设置随机选择操作的被选中率,根据随机选择的被选中率确定是随机选择当前操作,还是将当前训练状态信息输入到当前操作选择模型中得到当前操作。随机选择操作的被选中率可以是固定的,也可以根据训练的次数进行变化。例如,随机选择操作的被选中率随着训练次数的增加而减小,即随机操作的被选中率与训练次数呈负相关关系。例如,前3次训练时对应的进行随机选择操作的被选中率是0.9,第3~6次训练时对应的进行随机选择操作的被选中率是0.85。

步骤s606,根据更新后状态信息以及当前训练状态信息计算得到激励反馈数据,根据激励反馈数据调整当前操作选择模型中的模型参数。

具体地,激励反馈数据是基于当前训练状态信息,执行目标操作得到更新后状态信息的激励,激励反馈数据可以是正反馈数据也可以是负反馈数据,具体如何计算激励可以根据实际需要设置,例如可以根据游戏的得分逻辑或者升级逻辑进行设置。当执行目标操作后,会根据更新后状态信息以及当前状态信息计算得到激励反馈数据。如果在当前训练状态下执行目标操作得到的激励反馈数据为正反馈数据,那么可以调整模型参数,使得在当前训练状态下操作选择模型选择该目标操作的趋势加强。如果在当前训练状态下执行目标操作得到的激励反馈数据为负反馈数据,那么可以调整模型参数,使得在当前训练状态下操作选择模型选择该目标操作的趋势降低。机器选择模型可以是强化学习模型。

在一个实施例中,可以根据更新后状态信息以及当前训练状态信息得到状态变化信息,并设置状态变化信息与激励反馈数据的对应关系,根据状态变化信息得到对应的激励反馈数据。

在一个实施例中,还可以根据状态的重要程度设置状态变化与激励反馈数据的对应关系,例如,在游戏中,杀死或助攻杀死对方英雄的重要程度最高,对方的阵地例如防御塔的生命值变化的重要程度为第二等。重要程度高的激励反馈值大。

在一个实施例中,还可以结合目标操作所在的情境确定状态的重要程度,情境包括是处于进攻还是防守。例如,对于进攻情境,杀死或助攻杀死对方英雄的重要程度为最高。而对于防守情境,待控制虚拟对象死亡的重要程度为最高。

在一个实施例中,若根据操作选择模型得到的当前操作不可用,则对应的激励反馈数据为负反馈数据。例如,该目标操作为游戏中技能的释放,然而该技能还处于cd时间之内,因此不可用,则可以给予一个负反馈数据,使得操作选择模型可以学习到不选择在cd时间内的操作为目标操作。

步骤s608,将更新状态信息作为当前训练状态信息,返回获取当前训练状态信息的步骤,直至当前操作选择模型收敛。

具体地,收敛条件具体可以根据实际需要进行设置,例如,可以是训练次数达到预设的次数,例如10万次,或者是当前训练得到的模型参数与前一次更新的模型参数的差值小于阈值。若当前操作选择模型未收敛,则将更新状态信息作为新的当前训练状态信息,重复步骤s602~s608,直至当前操作选择模型收敛,得到最终的操作选择模型。由于可以通过样本进行多次迭代训练,根据激励反馈数据调整模型参数,因此能够逐步提高机器模型的参数的准确性。

在一个实施例中,如图7所示,步骤s606即根据更新后状态信息以及当前训练状态信息计算得到激励反馈数据,根据激励反馈数据调整当前操作选择模型中的模型参数的步骤包括:

步骤s702,根据当前训练状态信息以及当前操作选择模型计算得到当前操作对应的第二操作评价值。

具体地,可以将当前训练状态信息输入到当前操作选择模型中,得到当前操作对应的操作评价值,作为第二操作评价值。

步骤s704,根据更新后状态信息以及当前操作选择模型计算得到候选操作集合中各个候选操作的候选操作评价值。

具体地,可以将更新后状态信息输入到当前操作选择模型中,得到候选操作集合中各个候选操作的候选操作评价值。各个候选操作对应一个候选操作评价值。

步骤s706,根据各个候选操作评价值中的最大操作评价值以及激励反馈数据得到期望操作评价值。

具体地,得到候选操作集合中各个候选操作的候选操作评价值后,从候选操作的候选操作评价值中选择最大的操作评价值,然后根据候选操作评价值中的最大操作评价值以及激励反馈数据得到期望操作评价值,例如将最大评价值与激励反馈数据相加得到期望操作评价值。原理如下:将激励反馈值视为回报,由于操作学习模型的作用是选择一个能够得到最大回报的操作,而在考虑一个操作执行后是否能够得到好的回报,既要考虑执行操作后得到的立即回报,也要考虑最终的回报,例如游戏结束时的游戏回报,故操作的操作评价值是未来回报的期望。因此操作的操作评价值可以是立即回报与折现因子与未来回报积的和,用公式(1)表示如下,公式中,gt表示当前时间t的操作评价值,t+n表示执行n次操作后的时间,r表示回报值,k表示执行操作的次数减1,λ是折现因子,一般小于1,就是说一般当下的反馈是比较重要的,时间越久,影响越小。由于未来回报是不确定的,因此可以将执行当前操作后得到的更新后状态信息输入到当前操作选择模型能够得到的最大操作评价值作为更新后状态信息的最佳回报,故可以根据候选操作评价值中的最大操作评价值以及激励反馈数据得到期望操作评价值。

步骤s708,根据第二操作评价值以及期望操作评价值调整当前操作选择模型中的模型参数。

具体地,得到第二操作评价值以及期望操作评价值后,将期望操作评价值作为有监督机器学习模型的输入特征对应的实际值,基于实际值以及模型的输出值即第二操作评价值进行反向传播,计算得到模型参数的梯度,根据模型参数的梯度对模型参数进行调整。

在一个实施例中,为了加快模型训练的速度,在训练阶段可以设计目标行为发生率高的行为树的行为决策流程,以获取更多的训练数据。例如,在游戏中,当目标行为为对战行为时,可以设计使得控制的英雄尽量多的在对战场景中进行对战的行为树模型,例如行为树模型可以设计为当英雄从泉水出生或者重生后,一直去往兵线位置,并在兵线位置锁定敌方后,控制英雄与敌方进行对战。

在一个实施例中,在一个实施例中,如图8所示,步骤s606即根据更新后状态信息以及当前训练状态信息计算得到激励反馈数据的步骤包括:

步骤s802,获取待控制虚拟对象的当前训练状态信息以及待控制虚拟对象的更新后状态信息,根据待控制虚拟对象的当前训练状态信息以及更新后状态信息得到第一状态变化信息,根据第一状态变化信息得到第一激励反馈数据。

具体地,预先设置了状态变化信息得与激励反馈数据的对应关系,获取待控制虚拟对象的当前训练状态信息以及更新后状态信息后,计算待控制虚拟对象的状态变化,根据状态变化信息得到第一激励反馈数据。例如,待控制虚拟对象当前训练状态信息包括血量为12,更新后状态信息包括血量为20,则状态变化为增加了8,对应的激励反馈数据为12。

步骤s804,获取与待控制虚拟对象进行交互操作的交互虚拟对象,获取交互虚拟对象的当前训练状态信息以及交互虚拟对象的更新后状态信息,根据交互虚拟对象的当前训练状态信息以及更新后状态信息得到第二状态变化信息,根据第二状态变化信息得到第二激励反馈数据。

具体地,预先设置了状态变化信息与激励反馈数据的对应关系,获取交互虚拟对象的当前训练状态信息以及更新后状态信息后,计算交互虚拟对象的状态变化,根据状态变化信息得到第二激励反馈数据。例如,待控制虚拟对象当前训练状态信息包括血量为12,更新后状态信息包括血量为6,则状态变化信息为增加了-8,对应的激励反馈数据为10。或者,交互虚拟对象的当前训练状态信息为与待控制虚拟对象处于同一屏幕上,而执行当前操作后,与待控制虚拟对象未处于同一屏幕上,即交互虚拟对象已经逃跑,则对应的激励反馈数据可以为20。

步骤s806,根据第一激励反馈数据以及第二激励反馈数据得到激励反馈数据。

具体地,得到第一激励反馈数据以及第二激励反馈数据后,可以将第一激励反馈数据以及第二激励反馈数据进行相加,得到激励反馈数据。也可以设置第一激励反馈数据以及第二激励反馈数据分别对应的权重,进行加权求和后得到激励反馈数据。由于综合考虑了待控制虚拟对象以及其对应的交互虚拟对象的状态变化得到激励反馈数据,因此可以准确地反映执行当前操作所得到的回报。

在一个实施例中,如图9所示,步骤s604中从候选操作集合中获取当前操作的步骤包括:

步骤s902,获取随机操作的当前被选中率。

具体地,当前被选中率可以根据实际需要进行设置。被选中率用于表示被选择的机会,若被选中率大,则被选择的机会大。例如可以为0.5。在一个实施例中,随机选择操作的被选中率随着训练次数的增加而减小,即随机选择操作的被选中率与训练次数呈负相关关系。

步骤s904,根据随机操作的当前被选中率设置随机操作对应的第一数值范围以及模型操作对应的第二数值范围。

具体地,根据当前被选中率设置了随机操作对应的第一数值范围以及模型操作对应的第二数值范围。例如,当当前被选中率是0.5时,第一数值范围可以是0~49,第二数值范围是50~99。

步骤s906,生成在第一数值范围或第二数值范围内的随机数。

具体地,可以利用随机数生成算法生成位于第一数值范围或第二数值范围内的随机数。

步骤s908,当随机数在第一数值范围内时,从候选操作集合中随机选择候选操作作为当前操作。

具体地,当随机数在第一数值范围内时,则随机从候选操作集合中随机选取操作作为当前操作。例如,当随机数为40时,则随机选择当前操作。

步骤s910,当随机数在第二数值范围时,将当前训练状态信息输入到当前操作选择模型中,计算得到候选操作集合中各个候选操作的第三操作评价值,根据各个候选操作的第三操作评价值从候选操作集合中筛选出当前操作。

具体地,当随机数在第二数值范围内时,则可以将当前训练状态信息输入到当前操作选择模型中,以得到候选操作集合中各个候选操作的第三操作评价值,得到各个候选操作的第三操作评价值后,可以选择操作评价值最大的操作作为当前操作。在一个实施例中,还可以根据候选操作集合中操作的状态选择当前操作,选择操作评价值大而且操作状态为可用的操作作为当前操作。例如,得到操作评价值最大的操作后,判断该操作的状态是否可用,若不可用,则选择操作评价价值为第二的操作作为当前操作。由于设置了随机选择的被选中率,可以选择随机选择操作作为当前操作,因此克服了只选择当前选择操作模型对应的最佳操作作为当前操作,导致没有考虑全局,当前选择操作模型只在一定范围内适用的问题。

以下以一个具体的实施例对本发明实施例提供的方法进行说明:

1、用户在进行游戏时,若有事需要暂时离开,可以点击手机游戏界面上的游戏托管按钮,游戏应用接收到点击后,向服务器发送游戏托管请求。

2、服务器接收到游戏托管请求后,获取该手机游戏应用登录的游戏玩家信息,然后获取对应的第一当前状态信息,例如游戏玩家以及游戏玩家的敌人的当前等级、血量、技能状态和魔法量的信息,以及游戏玩家所在的环境信息例如当前游戏图像中小兵和塔在地图中的位置坐标信息。

3、服务器得到第一当前状态信息后,将第一当前状态信息输入到预先设计的行为树模型中,以中路英雄为例,其行为树可以如图10所示,其中“并行”以及“选择”对应的节点为控制节点。“升级技能”、“买装备”“对战”以及“逃跑”为行为节点。并行指的是控制节点的子节点可以均执行,选择指控制节点下的子节点选择其中一个执行。因此该行为树中“升级技能”,“买装备”这两个行为只要是满足条件,就都会执行,互不影响。同时还可以选择是对战还是逃跑。每个行为对应的条件可以根据需要或者游戏逻辑进行设置,例如,可以设置若同一个屏幕下存在可以进行攻击的敌方英雄,且血量大于敌方英雄血量的30%则进行攻击,若同一个屏幕下存在可以进行攻击的敌方英雄,且血量小于敌方英雄血量的30%则逃跑。

4、假设在步骤3中得到中路英雄的目标行为为买装备以及进行对战,服务器则获取当前时刻的游戏图像帧以及当前时刻的游戏图像帧的前3张游戏图像帧共4张游戏图像帧组成图像帧集合,将图像帧集合输入到预先训练得到的dqn模型中,dqn模型输出目标操作。

5、服务器根据目标操作向手机中的游戏应用发送操作指令。

6、手机中的游戏应用根据操作指令执行目标操作,游戏状态发生变化,游戏应用显示变化后的另一图像帧。

7、若托管或游戏未结束,可以重复步骤2~6,继续根据当前时刻的状态信息得到目标行为以及目标操作,以对托管的游戏角色进行控制。

如图11所示,在一个实施例中,提供了一种数据处理装置,该数据处理装置可以集成于上述的计算机设备120中,具体可以包括第一状态获取模块1102、行为决策模块1104、目标操作得到模块1106以及控制模块1108。

第一状态获取模块1102,用于获取待控制虚拟对象对应的第一当前状态信息。

行为决策模块1104,用于根据第一当前状态信息进行行为决策,得到待控制虚拟对象对应的目标行为。

目标操作得到模块1106,用于获取待控制虚拟对象对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作,目标操作是从目标行为对应的候选操作集合中筛选得到的,候选操作集合包括至少两个候选操作。

控制模块1108,用于控制待控制虚拟对象执行目标操作。

如图12所示,在一个实施例中,目标操作得到模块1106包括:

图像帧获取单元1106a,用于获取待控制虚拟对象的当前图像帧以及按照显示顺序获取当前图像帧之前的历史图像帧。

集合组成单元1106b,用于将当前图像帧以及历史图像帧组成当前图像帧集合,作为第二当前状态信息。

在一个实施例中,目标操作得到模块1106包括:

图像特征得到单元1106c,用于将当前图像帧集合输入到图像特征提取层中,得到对应的图像内容特征。

非图像信息获取单元1106d,用于获取待控制虚拟对象的非图像帧状态信息。

目标操作得到单元1106e,用于将待控制虚拟对象的非图像帧状态信息以及图像内容特征输入到全连接层中,得到目标操作。

如图13所示,在一个实施例中,数据处理装置还包括模型训练模块1302,包括:

训练信息获取单元1302a,用于获取当前操作选择模型,获取待控制虚拟对象对应的当前训练状态信息。

当前操作获取单元1302b,用于从候选操作集合中获取当前操作,控制待控制虚拟对象执行当前操作,得到执行当前操作后待控制虚拟对象对应的更新后状态信息。

调整单元1302c,用于根据更新后状态信息以及当前训练状态信息计算得到激励反馈数据,根据激励反馈数据调整当前操作选择模型中的模型参数。

返回单元1302d,用于将更新状态信息作为当前训练状态信息,返回获取当前训练状态信息的步骤,直至当前操作选择模型收敛。

在一个实施例中,调整单元1302c用于:

根据当前训练状态信息以及当前操作选择模型计算得到当前操作对应的第二操作评价值。

根据更新后状态信息以及当前操作选择模型计算得到候选操作集合中各个候选操作的候选操作评价值。

根据各个候选操作评价值中的最大操作评价值以及激励反馈数据得到期望操作评价值。

根据第二操作评价值以及期望操作评价值调整当前操作选择模型中的模型参数。

在一个实施例中,调整单元用于:

获取待控制虚拟对象的当前训练状态信息以及待控制虚拟对象的更新后状态信息,根据待控制虚拟对象的当前训练状态信息以及更新后状态信息得到第一状态变化信息,根据第一状态变化信息得到第一激励反馈数据。

获取与待控制虚拟对象进行交互操作的交互虚拟对象,获取交互虚拟对象的当前训练状态信息以及交互虚拟对象的更新后状态信息,根据交互虚拟对象的当前训练状态信息以及更新后状态信息得到第二状态变化信息,根据第二状态变化信息得到第二激励反馈数据。

根据第一激励反馈数据以及第二激励反馈数据得到激励反馈数据。

如图14所示,在一个实施例中,当前操作获取单元1302b包括:

被选中率获取单元1402,用于获取随机操作的当前被选中率。

数值范围设置单元1404,用于根据随机操作的当前被选中率设置随机操作对应的第一数值范围以及模型操作对应的第二数值范围。

随机数生成单元1406,用于生成在第一数值范围或第二数值范围内的随机数。

随机操作选择单元1408,用于当随机数在第一数值范围内时,从候选操作集合中随机选择候选操作作为当前操作。

模型操作筛选单元1410,用于当随机数在第二数值范围时,将当前训练状态信息输入到当前操作选择模型中,计算得到候选操作集合中各个候选操作的第三操作评价值,根据各个候选操作的第三操作评价值从候选操作集合中筛选出当前操作。

在一个实施例中,目标操作得到模块1106包括:

第一价值得到单元,用于将第二当前状态信息输入到已训练的操作选择模型中,得到目标行为对应的候选操作集合中各个候选操作的第一操作评价值。

目标操作筛选单元,用于根据各个候选操作的第一操作评价值从候选操作中筛选出目标操作。

在一个实施例中,行为决策模1104包括:

行为树模型获取单元,用于获取预先设置的行为树模型。

遍历单元,用于根据第一当前状态信息在行为树模型中进行遍历,得到符合第一当前状态信息的目标行为。

如图15所示,在一个实施例中,装置还包括:

托管请求接收模块1502,用于接收客户端发送的游戏托管请求。

第一状态获取模块1102用于:根据游戏托管请求获取客户端对应的待控制虚拟对象的第一当前状态信息。

控制模块1108用于:将目标操作对应的操作指令发送到客户端中,目标操作对应的操作指令用于指示客户端对应的待控制虚拟对象执行目标操作。

在一个实施例中,第一状态获取模块1102用于获取目标虚拟对象组合对应的第一当前状态信息集合,第一当前状态信息集合包括各个待控制虚拟对象对应的第一当前状态信息。行为决策模块1104用于根据第一当前状态信息集合进行行为决策,得到各个待控制虚拟对象对应的目标行为。目标操作得到模块1106用于将目标行为为预设行为的待控制虚拟对象作为目标待控制虚拟对象,获取目标待控制虚拟对象组合对应的第二当前状态信息,输入到已训练的目标待控制虚拟对象对应的操作选择模型中,得到各个目标待控制虚拟对象对应的目标操作。控制模块1108用于:控制目标待控制虚拟对象执行对应的目标操作。

图16示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的计算机设备。如图16所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和输入装置。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现数据处理方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行数据处理方法。计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的数据处理装置可以实现为一种计算机程序的形式,计算机程序可在如图16所示的计算机设备上运行。计算机设备的存储器中可存储组成该数据处理装置的各个程序模块,比如,图11所示的第一状态获取模块1102、行为决策模块1104、目标操作得到模块1106以及控制模块1108。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的数据处理方法中的步骤。

例如,图16所示的计算机设备可以通过如图11所示的数据处理装置中的第一状态获取模块1102获取待控制虚拟对象对应的第一当前状态信息;通过行为决策模块1104根据第一当前状态信息进行行为决策,得到待控制虚拟对象对应的目标行为;通过目标操作得到模块1106获取待控制虚拟对象对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作,目标操作是从目标行为对应的候选操作集合中筛选得到的,候选操作集合包括至少两个候选操作;通过控制模块1108控制待控制虚拟对象执行目标操作。

在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取待控制虚拟对象对应的第一当前状态信息;根据第一当前状态信息进行行为决策,得到待控制虚拟对象对应的目标行为;获取待控制虚拟对象对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作,目标操作是从目标行为对应的候选操作集合中筛选得到的,候选操作集合包括至少两个候选操作;控制待控制虚拟对象执行目标操作。

在一个实施例中,处理器所执行的获取待控制虚拟对象对应的第二当前状态信息的步骤包括:获取待控制虚拟对象的当前图像帧以及按照显示顺序获取当前图像帧之前的历史图像帧;将当前图像帧以及历史图像帧组成当前图像帧集合,作为第二当前状态信息。

在一个实施例中,第二当前状态信息还包括非图像帧状态信息,操作选择模型包括图像特征提取层以及全连接层,处理器所执行的获取待控制虚拟对象对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作的步骤包括:将当前图像帧集合输入到图像特征提取层中,得到对应的图像内容特征;获取待控制虚拟对象的非图像帧状态信息;将待控制虚拟对象的非图像帧状态信息以及图像内容特征输入到全连接层中,得到目标操作。

在一个实施例中,处理器所执行的操作选择模型的训练步骤包括:获取当前操作选择模型,获取待控制虚拟对象对应的当前训练状态信息;从候选操作集合中获取当前操作,控制待控制虚拟对象执行当前操作,得到执行当前操作后待控制虚拟对象对应的更新后状态信息;根据更新后状态信息以及当前训练状态信息计算得到激励反馈数据,根据激励反馈数据调整当前操作选择模型中的模型参数;将更新状态信息作为当前训练状态信息,返回获取当前训练状态信息的步骤,直至当前操作选择模型收敛。

在一个实施例中,处理器所执行的根据更新后状态信息以及当前训练状态信息计算得到激励反馈数据,根据激励反馈数据调整当前操作选择模型中的模型参数的步骤包括:根据当前训练状态信息以及当前操作选择模型计算得到当前操作对应的第二操作评价值;根据更新后状态信息以及当前操作选择模型计算得到候选操作集合中各个候选操作的候选操作评价值;根据各个候选操作评价值中的最大操作评价值以及激励反馈数据得到期望操作评价值;根据第二操作评价值以及期望操作评价值调整当前操作选择模型中的模型参数。

在一个实施例中,处理器所执行的根据更新后状态信息以及当前训练状态信息计算得到激励反馈数据的步骤包括:获取待控制虚拟对象的当前训练状态信息以及待控制虚拟对象的更新后状态信息,根据待控制虚拟对象的当前训练状态信息以及更新后状态信息得到第一状态变化信息,根据第一状态变化信息得到第一激励反馈数据;获取与待控制虚拟对象进行交互操作的交互虚拟对象,获取交互虚拟对象的当前训练状态信息以及交互虚拟对象的更新后状态信息,根据交互虚拟对象的当前训练状态信息以及更新后状态信息得到第二状态变化信息,根据第二状态变化信息得到第二激励反馈数据;根据第一激励反馈数据以及第二激励反馈数据得到激励反馈数据。

在一个实施例中,处理器所执行的从候选操作集合中获取当前操作的步骤包括:获取随机操作的当前被选中率;根据随机操作的当前被选中率设置随机操作对应的第一数值范围以及模型操作对应的第二数值范围;生成在第一数值范围或第二数值范围内的随机数;当随机数在第一数值范围内时,从候选操作集合中随机选择候选操作作为当前操作;当随机数在第二数值范围时,将当前训练状态信息输入到当前操作选择模型中,计算得到候选操作集合中各个候选操作的第三操作评价值,根据各个候选操作的第三操作评价值从候选操作集合中筛选出当前操作。

在一个实施例中,处理器所执行的将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作的步骤包括:将第二当前状态信息输入到已训练的操作选择模型中,得到目标行为对应的候选操作集合中各个候选操作的第一操作评价值;根据各个候选操作的第一操作评价值从候选操作中筛选出目标操作。

在一个实施例中,处理器所执行的根据第一当前状态信息进行行为决策,得到待控制虚拟对象对应的目标行为的步骤包括:获取预先设置的行为树模型;根据第一当前状态信息在行为树模型中进行遍历,得到符合第一当前状态信息的目标行为。

在一个实施例中,处理器所执行的获取待控制虚拟对象对应的第一当前状态信息的步骤之前包括:接收客户端发送的游戏托管请求;获取待控制虚拟对象对应的第一当前状态信息的步骤包括:根据游戏托管请求获取客户端对应的待控制虚拟对象的第一当前状态信息;控制待控制虚拟对象执行目标操作的步骤包括:将目标操作对应的操作指令发送到客户端中,目标操作对应的操作指令用于指示客户端对应的待控制虚拟对象执行目标操作。

在一个实施例中,处理器所执行的待控制虚拟对象为多个,多个待控制虚拟对象组成目标虚拟对象组合,获取待控制虚拟对象对应的第一当前状态信息的步骤包括:获取目标虚拟对象组合对应的第一当前状态信息集合,第一当前状态信息集合包括各个待控制虚拟对象对应的第一当前状态信息;根据第一当前状态信息进行行为决策,得到待控制虚拟对象对应的目标行为的步骤包括:根据第一当前状态信息集合进行行为决策,得到各个待控制虚拟对象对应的目标行为;获取待控制虚拟对象对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作的步骤包括:将目标行为为预设行为的待控制虚拟对象作为目标待控制虚拟对象,获取目标待控制虚拟对象组合对应的第二当前状态信息,输入到已训练的目标待控制虚拟对象对应的操作选择模型中,得到各个目标待控制虚拟对象对应的目标操作;控制待控制虚拟对象执行目标操作的步骤包括:控制目标待控制虚拟对象执行对应的目标操作。

在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:获取待控制虚拟对象对应的第一当前状态信息;根据第一当前状态信息进行行为决策,得到待控制虚拟对象对应的目标行为;获取待控制虚拟对象对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作,目标操作是从目标行为对应的候选操作集合中筛选得到的,候选操作集合包括至少两个候选操作;控制待控制虚拟对象执行目标操作。

在一个实施例中,处理器所执行的获取待控制虚拟对象对应的第二当前状态信息的步骤包括:获取待控制虚拟对象的当前图像帧以及按照显示顺序获取当前图像帧之前的历史图像帧;将当前图像帧以及历史图像帧组成当前图像帧集合,作为第二当前状态信息。

在一个实施例中,第二当前状态信息还包括非图像帧状态信息,操作选择模型包括图像特征提取层以及全连接层,处理器所执行的获取待控制虚拟对象对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作的步骤包括:将当前图像帧集合输入到图像特征提取层中,得到对应的图像内容特征;获取待控制虚拟对象的非图像帧状态信息;将待控制虚拟对象的非图像帧状态信息以及图像内容特征输入到全连接层中,得到目标操作。

在一个实施例中,处理器所执行的操作选择模型的训练步骤包括:获取当前操作选择模型,获取待控制虚拟对象对应的当前训练状态信息;从候选操作集合中获取当前操作,控制待控制虚拟对象执行当前操作,得到执行当前操作后待控制虚拟对象对应的更新后状态信息;根据更新后状态信息以及当前训练状态信息计算得到激励反馈数据,根据激励反馈数据调整当前操作选择模型中的模型参数;将更新状态信息作为当前训练状态信息,返回获取当前训练状态信息的步骤,直至当前操作选择模型收敛。

在一个实施例中,处理器所执行的根据更新后状态信息以及当前训练状态信息计算得到激励反馈数据,根据激励反馈数据调整当前操作选择模型中的模型参数的步骤包括:根据当前训练状态信息以及当前操作选择模型计算得到当前操作对应的第二操作评价值;根据更新后状态信息以及当前操作选择模型计算得到候选操作集合中各个候选操作的候选操作评价值;根据各个候选操作评价值中的最大操作评价值以及激励反馈数据得到期望操作评价值;根据第二操作评价值以及期望操作评价值调整当前操作选择模型中的模型参数。

在一个实施例中,处理器所执行的根据更新后状态信息以及当前训练状态信息计算得到激励反馈数据的步骤包括:获取待控制虚拟对象的当前训练状态信息以及待控制虚拟对象的更新后状态信息,根据待控制虚拟对象的当前训练状态信息以及更新后状态信息得到第一状态变化信息,根据第一状态变化信息得到第一激励反馈数据;获取与待控制虚拟对象进行交互操作的交互虚拟对象,获取交互虚拟对象的当前训练状态信息以及交互虚拟对象的更新后状态信息,根据交互虚拟对象的当前训练状态信息以及更新后状态信息得到第二状态变化信息,根据第二状态变化信息得到第二激励反馈数据;根据第一激励反馈数据以及第二激励反馈数据得到激励反馈数据。

在一个实施例中,处理器所执行的从候选操作集合中获取当前操作的步骤包括:获取随机操作的当前被选中率;根据随机操作的当前被选中率设置随机操作对应的第一数值范围以及模型操作对应的第二数值范围;生成在第一数值范围或第二数值范围内的随机数;当随机数在第一数值范围内时,从候选操作集合中随机选择候选操作作为当前操作;当随机数在第二数值范围时,将当前训练状态信息输入到当前操作选择模型中,计算得到候选操作集合中各个候选操作的第三操作评价值,根据各个候选操作的第三操作评价值从候选操作集合中筛选出当前操作。

在一个实施例中,处理器所执行的将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作的步骤包括:将第二当前状态信息输入到已训练的操作选择模型中,得到目标行为对应的候选操作集合中各个候选操作的第一操作评价值;根据各个候选操作的第一操作评价值从候选操作中筛选出目标操作。

在一个实施例中,处理器所执行的根据第一当前状态信息进行行为决策,得到待控制虚拟对象对应的目标行为的步骤包括:获取预先设置的行为树模型;根据第一当前状态信息在行为树模型中进行遍历,得到符合第一当前状态信息的目标行为。

在一个实施例中,处理器所执行的获取待控制虚拟对象对应的第一当前状态信息的步骤之前包括:接收客户端发送的游戏托管请求;获取待控制虚拟对象对应的第一当前状态信息的步骤包括:根据游戏托管请求获取客户端对应的待控制虚拟对象的第一当前状态信息;控制待控制虚拟对象执行目标操作的步骤包括:将目标操作对应的操作指令发送到客户端中,目标操作对应的操作指令用于指示客户端对应的待控制虚拟对象执行目标操作。

在一个实施例中,处理器所执行的待控制虚拟对象为多个,多个待控制虚拟对象组成目标虚拟对象组合,获取待控制虚拟对象对应的第一当前状态信息的步骤包括:获取目标虚拟对象组合对应的第一当前状态信息集合,第一当前状态信息集合包括各个待控制虚拟对象对应的第一当前状态信息;根据第一当前状态信息进行行为决策,得到待控制虚拟对象对应的目标行为的步骤包括:根据第一当前状态信息集合进行行为决策,得到各个待控制虚拟对象对应的目标行为;获取待控制虚拟对象对应的第二当前状态信息,将第二当前状态信息输入到已训练的操作选择模型中,得到目标操作的步骤包括:将目标行为为预设行为的待控制虚拟对象作为目标待控制虚拟对象,获取目标待控制虚拟对象组合对应的第二当前状态信息,输入到已训练的目标待控制虚拟对象对应的操作选择模型中,得到各个目标待控制虚拟对象对应的目标操作;控制待控制虚拟对象执行目标操作的步骤包括:控制目标待控制虚拟对象执行对应的目标操作。

应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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