CN112843725A - 智能体处理方法及装置 - Google Patents

智能体处理方法及装置 Download PDF

Info

Publication number
CN112843725A
CN112843725A CN202110276998.8A CN202110276998A CN112843725A CN 112843725 A CN112843725 A CN 112843725A CN 202110276998 A CN202110276998 A CN 202110276998A CN 112843725 A CN112843725 A CN 112843725A
Authority
CN
China
Prior art keywords
data
action
agent
agent model
model
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.)
Pending
Application number
CN202110276998.8A
Other languages
English (en)
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202110276998.8A priority Critical patent/CN112843725A/zh
Publication of CN112843725A publication Critical patent/CN112843725A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请实施例提供一种智能体处理方法及装置,该方法包括:通过第一智能体模型进行L次环境交互处理,得到L个经验数据,每个经验数据包括:上一状态数据、上一状态数据对应的动作数据、动作数据对应的奖励数据、动作数据对应的下一状态数据,L为大于等于1的整数。根据多个经验数据对第一智能体模型进行训练,得到目标智能体。控制目标智能体在游戏内自动做出动作决策。通过智能体模型对状态数据进行处理,得到动作数据,之后根据状态数据、动作数据以及奖励数据,对智能体模型进行训练,以使得智能体模型可以根据真实的对战数据进行学习,得到目标智能体,之后基于目标智能体确定游戏操作,从而可以有效提升智能体输出的游戏操作的准确性。

Description

智能体处理方法及装置
技术领域
本申请实施例涉及计算机技术,尤其涉及一种智能体处理方法及装置。
背景技术
随着游戏领域的不断发展,在游戏中设置智能体,以代替用户进行操作或者和用户进行对战,已经成为了一种非常普遍的操作方式。
目前,现有技术中的智能体通常都是采用行为树或者状态机进行游戏操作的选择,比如说可以预先设计特定的游戏场景,之后智能体基于当前遇到的游戏场景,执行指定的游戏动作。
然而,预先设定游戏场景和对应的游戏动作的实现方式,会导致智能体的动作非常有限,从而无法保证智能体选择的游戏操作的准确性。
发明内容
本申请实施例提供一种智能体处理方法及装置,以克服无法保证智能体选择的游戏操作的准确性的问题。
第一方面,本申请实施例提供一种智能体处理方法,包括:
通过第一智能体模型进行L次环境交互处理,得到L个经验数据,每个所述经验数据包括:上一状态数据、所述上一状态数据对应的动作数据、所述动作数据对应的奖励数据、所述动作数据对应的下一状态数据,所述L为大于等于1的整数;
根据所述多个经验数据对所述第一智能体模型进行训练,得到目标智能体;
控制所述目标智能体在游戏内自动做出动作决策;
其中,所述环境交互处理包括:将上一状态数据输入所述第一智能体模型,所述第一智能体模型确定所述上一状态数据对应的动作数据,将所述动作数据反馈给环境引擎,得到所述动作数据对应的下一状态数据以及所述动作数据对应的奖励数据。
在一种可能的设计中,所述根据所述多个经验数据对第一智能体模型进行训练,得到目标智能体,包括:
获取所述经验数据中的上一状态数据,动作数据,奖励数据和下一状态数据;
根据所述第一智能体模型的动作网络和所述上一状态数据,获取当前所述动作网络输出的动作数据;
根据所述第一智能体模型的价值网络,获取当前所述动作网络输出的动作数据对应的预测奖励数据;
根据所述经验数据中的奖励数据、所述预测奖励数据、所述经验数据中的动作数据和当前所述动作网络输出的动作数据,对所述第一智能体模型的参数进行调整;
针对各所述经验数据,分别执行上述对所述第一智能体模型的参数进行调整的操作,直至达到所述第一智能体模型的训练结束条件,得到所述目标智能体。
所述根据所述经验数据中的奖励数据、所述预测奖励数据、所述经验数据中的动作数据和当前所述动作网络输出的动作数据,对所述第一智能体模型的参数进行调整,包括:
根据所述经验数据中的奖励数据、所述预测奖励数据、所述经验数据中的动作数据和当前所述动作网络输出的动作数据,确定策略损失函数值;
根据所述经验数据中的奖励数据和所述预测奖励数据,确定价值损失函数值;
根据当前所述动作网络输出的动作数据,确定熵损失函数值;
对所述策略损失函数值、所述价值损失函数值、所述熵损失函数值求和,得到目标损失函数值;
在一种可能的设计中,根据所述目标损失函数值进行反向传播,对所述第一智能体模型的参数进行调整。
在一种可能的设计中,所述方法还包括:
对所述上一状态数据进行编码处理,得到所述上一状态数据对应的编码信息。
在一种可能的设计中,所述上一状态数据包括如下中的至少一种:数值数据、位置数据、种类数据;
所述对所述上一状态数据进行编码处理,得到所述上一状态数据对应的编码信息,包括:
对所述数值数据进行归一化处理,得到所述数值数据对应的编码信息;和/或,
对所述位置数据进行一位有效编码,得到所述位置数据对应的编码信息;和/或,
对所述种类数据进行网络初始化编码,并学习所述种类数据对应的特征数据,得到所述种类数据对应的编码信息。
在一种可能的设计中,所述将所述动作数据反馈给环境引擎,得到所述动作数据对应的下一状态数据,包括:
将所述动作数据反馈给环境引擎,通过环境引擎确定所述动作数据对应的中间状态数据;
将所述中间状态数据输入至第二智能体模型,得到所述第二智能体模型输出的动作数据;
通过所述环境引擎确定所述第二智能体模型输出的动作数据对应的状态数据;
将所述第二智能体模型输出的动作数据对应的状态数据,确定为所述环境引擎返回的所述下一状态数据。
在一种可能的设计中,所述第二智能体模型和所述第一智能体模型为相同的智能体模型;
或者,所述第一智能体模型为最新版本的智能体模型,所述第二智能体模型为历史版本的智能体模型。
在一种可能的设计中,所述控制所述目标智能体在游戏内自动做出动作决策,包括:
将游戏内待处理的状态数据输入至所述目标智能体,得到所述目标智能体输出的行为数据;
根据所述目标智能体输出的行为数据,控制所述目标智能体在游戏内自动做出所述行为数据对应的动作决策。
第二方面,本申请实施例提供一种智能体处理装置,包括:
处理模块,用于通过第一智能体模型进行L次环境交互处理,得到L个经验数据,每个所述经验数据包括:上一状态数据、所述上一状态数据对应的动作数据、所述动作数据对应的奖励数据、所述动作数据对应的下一状态数据,所述L为大于等于1的整数;
训练模块,用于根据所述多个经验数据对所述第一智能体模型进行训练,得到目标智能体;
控制模块,用于控制所述目标智能体在游戏内自动做出动作决策;
其中,所述环境交互处理包括:将上一状态数据输入所述第一智能体模型,所述第一智能体模型确定所述上一状态数据对应的动作数据,将所述动作数据反馈给环境引擎,得到所述动作数据对应的下一状态数据以及所述动作数据对应的奖励数据。
在一种可能的设计中,所述训练模块具体用于:
获取所述经验数据中的上一状态数据,动作数据,奖励数据和下一状态数据;
根据所述第一智能体模型的动作网络和所述上一状态数据,获取当前所述动作网络输出的动作数据;
根据所述第一智能体模型的价值网络,获取当前所述动作网络输出的动作数据对应的预测奖励数据;
根据所述经验数据中的奖励数据、所述预测奖励数据、所述经验数据中的动作数据和当前所述动作网络输出的动作数据,对所述第一智能体模型的参数进行调整;
针对各所述经验数据,分别执行上述对所述第一智能体模型的参数进行调整的操作,直至达到所述第一智能体模型的训练结束条件,得到所述目标智能体。
在一种可能的设计中,所述训练模块具体用于:
根据所述经验数据中的奖励数据、所述预测奖励数据、所述经验数据中的动作数据和当前所述动作网络输出的动作数据,确定策略损失函数值;
根据所述经验数据中的奖励数据和所述预测奖励数据,确定价值损失函数值;
根据当前所述动作网络输出的动作数据,确定熵损失函数值;
对所述策略损失函数值、所述价值损失函数值、所述熵损失函数值求和,得到目标损失函数值;
根据所述目标损失函数值进行反向传播,对所述第一智能体模型的参数进行调整。
在一种可能的设计中,所述处理模块还用于:
对所述上一状态数据进行编码处理,得到所述上一状态数据对应的编码信息。
在一种可能的设计中,所述上一状态数据包括如下中的至少一种:数值数据、位置数据、种类数据;
所述处理模块具体用于:
对所述数值数据进行归一化处理,得到所述数值数据对应的编码信息;和/或,
对所述位置数据进行一位有效编码,得到所述位置数据对应的编码信息;和/或,
对所述种类数据进行网络初始化编码,并学习所述种类数据对应的特征数据,得到所述种类数据对应的编码信息。
在一种可能的设计中,所述处理模块具体用于:
将所述动作数据反馈给环境引擎,通过环境引擎确定所述动作数据对应的中间状态数据;
将所述中间状态数据输入至第二智能体模型,得到所述第二智能体模型输出的动作数据;
通过所述环境引擎确定所述第二智能体模型输出的动作数据对应的状态数据;
将所述第二智能体模型输出的动作数据对应的状态数据,确定为所述环境引擎返回的所述下一状态数据。
在一种可能的设计中,所述第二智能体模型和所述第一智能体模型为相同的智能体模型;
或者,所述第一智能体模型为最新版本的智能体模型,所述第二智能体模型为历史版本的智能体模型。
在一种可能的设计中,所述控制模块具体用于:
将游戏内待处理的状态数据输入至所述目标智能体,得到所述目标智能体输出的行为数据;
根据所述目标智能体输出的行为数据,控制所述目标智能体在游戏内自动做出所述行为数据对应的动作决策。
第三方面,本申请实施例提供一种智能体处理设备,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计中任一所述的方法。
本申请实施例提供一种智能体处理方法及装置,该方法包括:通过第一智能体模型进行L次环境交互处理,得到L个经验数据,每个经验数据包括:上一状态数据、上一状态数据对应的动作数据、动作数据对应的奖励数据、动作数据对应的下一状态数据,L为大于等于1的整数。根据多个经验数据对第一智能体模型进行训练,得到目标智能体。控制目标智能体在游戏内自动做出动作决策。其中,环境交互处理包括:将上一状态数据输入第一智能体模型,第一智能体模型确定上一状态数据对应的动作数据,将动作数据反馈给环境引擎,得到动作数据对应的下一状态数据以及动作数据对应的奖励数据。通过根据智能体模型对状态数据进行处理,得到动作数据,之后根据状态数据、动作数据以及动作数据对应的奖励数据,对智能体模型进行训练,以使得智能体模型可以根据真实的对战数据进行学习,训练完成后得到目标智能体,之后基于目标智能体确定游戏操作,从而可以有效提升智能体输出的游戏操作的准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的智能体的实现示意图;
图2为本申请实施例提供的智能体处理方法的流程图;
图3为本申请实施例提供的智能体处理方法的流程图二;
图4为本申请实施例提供的状态数据的示意图;
图5为本申请实施例提供的游戏状态示意图;
图6为本申请实施例提供的单场战斗的流程示意图;
图7为本申请实施例提供的确定下一状态数据的实现示意图;
图8为本申请实施例提供的多场战斗的实现示意图;
图9为本申请实施例提供的多线程并行处理的实现示意图;
图10为本申请实施例提供的经验数据的实现示意图;
图11为本申请实施例提供的智能体处理装置的结构示意图;
图12为本申请实施例提供的智能体处理设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更好的理解本申请的技术方案,首先对本申请所涉及的背景技术进行进一步的详细介绍:
随着游戏领域的不断发展,在游戏中设置智能体,以代替用户进行操作或者和用户进行对战,已经成为了一种非常普遍的操作方式。
其中,智能体可以理解为游戏人工智能(Artificial Intelligence,AI),传统的游戏AI多采用行为树或状态机,例如可以预先设计特定的游戏场景,智能体遇到该场景时可以做出指定的动作。在早期的游戏AI相关工作中,最为常见的方法如树搜索(TreeSearch)及其变体为主的规划类方法。
其中,行为树或状态机是较为传统的方法,比如说决策树需要人为编写规则,场景单一,人工耗时大,游戏智能体较为死板,无法进行自我博弈。
因此根据人工经验设计的场景和动作进行游戏操作的选择,但是适配的游戏场景有限且不够智能,几乎无法应用于游戏的自我博弈对战,从而导致智能体的选择缺乏准确性。
此外,游戏AI研究的另外一个重要的方向,是与博弈论(Game Theory)有关的,在诸如德州扑克、麻将、斗地主等许多牌类游戏中,一局的信息并不是对决策者完全可见的,在游戏AI进行计算的时候,需要对对手的状态和策略进行某种程度的猜测,这使得问题的复杂度进一步提高了,也没有办法直接用树搜索的办法来处理。
大多数回合制游都为信息不对称游戏,双方玩家无法看到对方的隐藏信息,需要智能体通过对方的动作推导敌方的隐藏信息,并帮助我方做决策。
目前,现有的基于博弈论方的实现方案可以为,根据强化学习的思想,博弈论主要研究范围在多智能体对战,比如说神经虚拟自我游戏(Neural Fictitious Self Play,NFSP)方法可以结合强化学习和博弈论思想,智能体旨在学习到当前策略和对手平均策略。
对于博弈论的方案,NFSP算法在斗地主,德州扑克中有良好的表现,通过博弈猜测对手的策略习惯等再结合场面信息能够得到较好表现,而回合制游戏自我博弈中,旨在让游戏AI通过双方阵容自我博弈学会对角色技能的使用,博弈成分相对较低,更需要对游戏策略的学习,因此NFSP算法智能体的学习效率较低,且难以学到泛化性方案。
综上所述,目前的现有技术中,基于行为树或者状态机实现智能体时,存在智能体的输出的准确性不高的问题,此外,在智能体基于博弈论的方案进行学习时,存在模型缺乏泛化性的问题,基于现有技术中的问题,本申请提出了如下技术构思:
通过构建智能体模型,然后根据智能体模型对状态数据进行处理,得到动作数据,之后根据状态数据、动作数据以及动作数据对应的奖励数据,对智能体模型进行训练,以使得智能体模型可以根据真实的对战数据进行学习,训练完成后得到目标智能体,之后基于目标智能体确定游戏操作,从而可以有效提升智能体输出的游戏操作的准确性。
下面结合具体的实施例对本申请提供的智能体处理方法进行介绍,首先结合图1对本申请中提到的智能体的工作过程进行说明,图1为本申请实施例提供的智能体的实现示意图。
如图1所示,智能体可以基于游戏状态选择相应的游戏动作,其中,游戏状态可以理解为当前游戏的局势,例如可以包括生命值、攻击力、防御值、暴击率、行动位置等等,游戏动作可以理解为一次游戏操作,比如说施放一个技能,或者进行一次普通攻击等。
智能体在选择游戏动作之后,可以将该游戏动作输入至游戏环境,游戏环境基于输入的游戏动作,确定下一游戏状态。比如说当前游戏定位是对敌方的一次攻击动作,则游戏环境可以根据该游戏动作,对敌方的生命值进行更新,以及得到相对应的下一游戏状态。
之后,游戏环境可以将下一游戏状态发送给智能体,智能体根据下一游戏状态选择下一次游戏操作,环境引擎再基于新的游戏操作确定下一游戏状态,重复这样执行下去,直至游戏结束或者游戏通关。
基于上述介绍可以确定的是,智能体可以选择游戏动作,本申请的目的是需要保证智能体可以选择准确性较高的动作,或者可以理解为较为合理的动作,因此在对智能体进行训练时,可以以选择效果较好的动作为目的对智能体进行训练。
下面结合具体的实施例对智能体的训练的实现方式进行说明,值得说明的是,本申请中各实施例的执行主体例如可以为服务器、处理器、微处理器等具备数据处理功能的设备,本实施例对此不做限制,其可以根据实际需求进行选择,只要保证其具备数据处理的功能即可。
图2为本申请实施例提供的智能体处理方法的流程图。
如图2所示,该方法包括:
S201、通过第一智能体模型进行L次环境交互处理,得到L个经验数据,每个经验数据包括如下至少一种:上一状态数据、上一状态数据对应的动作数据、动作数据对应的奖励数据、动作数据对应的下一状态数据,L为大于等于1的整数。
在本实施例中,要训练得到输出合理动作的智能体,需要首先构建智能体模型,其中,智能体模型是根据游戏状态确定游戏动作的模型,在智能体模型内部包括一系列的处理逻辑,本实施例对其内部的实现逻辑以及具体的实现方式不做限制,其可以根据实际需求进行选择,只要智能体模型能够根据游戏状态进行处理,输出游戏动作即可。
在一种可能的实现方式中,本申请实施例中的智能体模型可以是基于深度学习的模型,比如说可以是基于近端策略优化(Proximal Policy Optimization,PPO)算法的。
可以理解的是,当前确定的智能体模型是初步的智能体,其准确性和有效性是无法保证的,因此需要对智能体模型进行训练,本实施例中的第一智能体模型正是当前需要训练的智能体模型。
在一种可能的实现方式中,为了保证训练的有效性,本实施例中可以以真实的战斗数据为基础,对第一智能体模型进行训练,因此,本实施例中可以通过第一智能体模型进行L次的环境交互处理,从而得到L个经验数据,其中,L个经验数据就是真实的战斗数据。
在一种可能的实现方式中,环境交互处理可以包括:将上一状态数据输入所述第一智能体模型,第一智能体模型确定上一状态数据对应的动作数据,将动作数据反馈给环境引擎,得到动作数据对应的下一状态数据以及动作数据对应的奖励数据。
其中,上一状态数据(state)例如可以包括当前游戏状态下的各个虚拟角色的生命值、经验值、位置、动作位置、存活状态、buff(增益)信息等等,以及动作数据(action)可以为当前第一智能体模型所选择的一个游戏动作,比如说施放某个虚拟角色的某个技能,或者通过某个虚拟角色施放一次普通攻击等,本实施例对上一状态数据和动作数据的具体实现方式不做限定,其可以根据实际需求进行选择,只要上一状态数据可以指示当前的游戏状态,动作数据可以指示游戏动作即可。
以及之后环境引擎可以返回动作数据对应的下一状态数据(state`)以及动作数据对应的奖励数据(reward)。
可以理解的是,在游戏中执行某个游戏动作之后,游戏的状态会发生变化,比如说在一次攻击动作之后,可能敌方虚拟对象的生命值会发生变化,再比如说一次治疗动作之后,可能我方虚拟对象的生命值会发生变化,再例如相应的游戏动作,会导致buff的转移、虚拟对象的存活或者死亡的对象发生变化等,总之,游戏动作会导致游戏状态发生变化,因此动作数据可以对应下一状态数据。
本实施例中动作数据所具体对应的下一状态数据不做限制,其取决于游戏的具体实现,在一种可能的实现方式中,可以将动作数据输入给游戏环境,通过游戏环境对动作数据进行处理,从而获取动作数据对应的下一状态数据,其中游戏环境例如可以理解为环境引擎,或者游戏引擎。
或者,还可以采用特定的处理器对动作数据进行处理,从而获取动作数据对应的下一状态数据,本实施例对此不做特别限制。
以及,本实施例中可以获取动作数据对应的奖励数据,可以理解的是,本实施例中的第一智能体模型可以是基于强化学习的模型,其中强化学习是智能体以“试错”的方式进行学习,通过与环境进行交互获得的奖励进而指导智能体的动作,目标是使智能体获得最大的奖赏,因此奖励数据可以用于指导智能体的动作。
本实施例中可以获取动作数据对应的奖励数据,在一种可能的实现方式中,例如可以由游戏环境根据当前的动作数据确定对应的奖励数据,或者还可以由特定的处理器进行处理,以确定动作数据对应的奖励数据,本实施例对此不做限制。
在确定奖励数据的过程中,比如说可以根据动作数据对应的是否击杀了敌方对象,或者说动作数据对应的伤害量是否足够,或者说动作数据是否导致赢下了对局等等,根据这些不同维度的指标设置相应的奖励数据,从而确定动作数据对应的奖励数据,具体的奖励数据的设置方式以及设置数值,均可以根据实际需求进行选择,本实施例对此不做限定。
本实施例中在根据真实的战斗数据让模型进行学习时,必然需要大量的数据,因此在得到下一状态数据之后,可以将下一状态数据继续输入至第一智能体模型,之后重复上述操作。
也就是说,本实施例中的第i次环境交互处理过程中,向第一智能体模型输入的上一状态数据为第i-1个经验数据中的下一状态数据,也就是说将得到的新的状态数据持续输入至第一智能体模型中,从而得到对应的动作数据,之后不断循环执行上述过程。
具体的,重复执行如下操作:将上一状态数据输入至第一智能体模型,得到第一智能体模型输出的上一状态数据对应的动作数据;获取动作数据对应的下一状态数据以及动作数据对应的奖励数据,从而可以得到多个经验数据。
其中,重复执行的次数越多,则得到的经验数据也就越多,具体重复执行的次数L可以根据实际需求进行选择,比如说可以设定预设次数,当重复的次数到达预设次数时,则停止执行,得到多个经验数据;或者还可以设置预设的数据量,当采集的经验数据的数据量达到预设的数据量时,则停止执行,得到多个经验数据,本实施例对具体的重复结束的条件不做限定,其可以根据实际需求进行选择。
S202、根据多个经验数据对第一智能体模型进行训练,得到目标智能体。
在得到多个经验数据之后,就可以对第一智能体模型进行训练了,在一种可能的实现方式中,可以将上述得到的多个经验数据作为训练数据,对第一智能体模型进行训练。
可以理解的是,对模型的训练过程和对模型的应用过程是类似的,不同支持在于,在模型的训练过程中需要根据经验数据进行学习,以对模型的参数进行调整,从而使得模型朝着更优的方向发展。
在一种可能的实现方式中,第一智能体模型在训练过程中,可以根据经验数据确定损失函数,之后根据损失函数对第一智能体模型的参数进行调整,以使得模型朝着更优的方向发展,实现模型的训练。
当第一智能体模型的训练结束之后,就可以得到目标智能体,其中,目标智能体就是本实施例中需要的,可以输出较优的动作的智能体。
在可选的实现方式中,在得到目标智能体之后,可以基于目标智能体进行游戏动作的选择,在一种可能的实现方式中,可以将待处理的状态数据输入至目标智能体,根据目标智能体的输出,确定待处理的状态数据对应的动作数据。
S203、控制目标智能体在游戏内自动做出动作决策。
在得到目标智能体之后,本实施例中可以控制目标智能体基于游戏内的状态,自动的做出动作决策,因为本实施例中的目标智能体经过了上述介绍的训练过程,因此可以保证做出的动作决策额准确性。
在一种可能的实现方式中,例如可以将当前游戏内的待处理的状态数据输入至目标智能体,目标智能体就可以基于状态数据进行分析,从而输出待处理的状态数据对应的行为数据,之后可以基于该行为数据,控制目标智能体在游戏内自动的执行该行为数据所对应的动作决策,进而实现了基于目标智能体自动的进行游戏选择和操作。
本申请实施例提供的智能体处理方法,包括:通过第一智能体模型进行L次环境交互处理,得到L个经验数据,每个经验数据包括:上一状态数据、上一状态数据对应的动作数据、动作数据对应的奖励数据、动作数据对应的下一状态数据,L为大于等于1的整数。根据多个经验数据对第一智能体模型进行训练,得到目标智能体。控制目标智能体在游戏内自动做出动作决策。其中,环境交互处理包括:将上一状态数据输入第一智能体模型,第一智能体模型确定上一状态数据对应的动作数据,将动作数据反馈给环境引擎,得到动作数据对应的下一状态数据以及动作数据对应的奖励数据。通过根据智能体模型对上一状态数据进行处理,得到动作数据,之后根据上一状态数据、动作数据以及动作数据对应的奖励数据,对智能体模型进行训练,以使得智能体模型可以根据真实的对战数据进行学习,训练完成后得到目标智能体,之后基于目标智能体确定游戏操作,从而可以有效提升智能体输出的游戏操作的准确性。
在上述实施例的基础上,下面结合图3至图10对本申请提供的智能体处理方法进行进一步的详细介绍,图3为本申请实施例提供的智能体处理方法的流程图二,图4为本申请实施例提供的状态数据的示意图,图5为本申请实施例提供的游戏状态示意图,图6为本申请实施例提供的单场战斗的流程示意图,图7为本申请实施例提供的确定下一状态数据的实现示意图,图8为本申请实施例提供的多场战斗的实现示意图,图9为本申请实施例提供的多线程并行处理的实现示意图,图10为本申请实施例提供的经验数据的实现示意图。
如图3所示,该方法包括:
S301、对上一状态数据进行编码处理,得到上一状态数据对应的编码信息。
可以理解的是,在将游戏的状态数据输入至智能体模型时,应该将游戏中的状态信息以神经网络能够理解的方式进行输入,常见的输入方式有直接输入每一帧的图像画面,但是不同于即时战斗类的游戏,每一帧画面都有很直观的图像意义,在回合制游戏中画面渲染的更多的是特效动画,因此对于回合制游戏,输入每一帧的画面,神经网络很难感知其背后的含义。
但是,回合制游戏可以通过编码表示很多的游戏信息,因此本实施例中可以对上一状态数据进行编码处理,得到上一状态数据对应的编码信息,其中,上一状态数据可以为直接的游戏状态,编码信息可以为神经网络可以理解的信息。
在一种可能的实现方式中,上一状态数据可以包括如下中的至少一种:数值数据、位置数据、种类数据。
下面对各个不同的状态数据,以及各个初始状态数据对应的确定编码信息的实现方式分别进行介绍:
例如可以结合图4和图5进行理解,首先对数值数据进行说明,如图4所示,其中数值数据可以理解为直接是数值类的数据,比如说血量、蓝量、攻击力、防御值、暴击率等数值类的数据。
参见图5,假设图5中示出了某一时刻的游戏场景,首先对图5中的游戏场景进行说明,假设当前的游戏场景是敌方的三个英雄和我方的三个英雄进行对战,其中英雄可以理解为虚拟对象。
如图5所示,敌方英雄的位置分别是501、502、503所示的位置,在位置501上的是敌方英雄A,在位置502上的是敌方英雄B,在位置503上的是地方英雄C。
以及,我方英雄的位置分别是504、505、506所示的位置,在位置504上的是我方英雄D,在位置505上的是我方英雄E,在位置506上的是我方英雄F。
可以结合图5理解数值数据,如图5所示,比如说当前敌方英雄A的血量为8800,蓝量为47,攻击力为1300,防御值为760,暴击率为12%,可以看出这些状态数据都直接是数值,神经网络是可以直接感知的,因此在本实施例中,在针对数值数据进行编码处理时,在一种可能的实现方式中,可以对数值数据进行归一化处理,从而得到数值数据对应的编码信息。
其中,归一化处理可以使神经网络无视阵容的等级信息,只关注数值的比值,因此可以使得输入更具有泛化性,且更容易训练收敛。
在一种可能的实现方式中,对于回合制游戏的玩家对玩家(Player VS Player,PVP)对战,双方阵容一旦生成,场上所有英雄的基本属性都是已知,因此归一化处理例如可以按照当前场上阵容所有英雄中,该属性数值的最大值进行归一化。
在实际实现过程中,归一化的具体处理方式可以根据实际需求进行选择,只要保证可以将数值数据归一在一定的范围内即可。
其次对位置数据进行说明,如图4所示,其中位置数据可以理解为行动位置、存活英雄、当前行动英雄等指示位置信息的数据。
参见图5,假设当前时刻敌方有三个位置,分别是位置501、502、502,我方有三个位置,分别是504、505、506,比如说当前时刻的行动位置是位置501,则“当前时刻的行动位置是位置501”就可以作为一个位置数据,但是这类数据神经网络可能无法直接理解,因此在本实施例中,可以针对位置数据进行编码处理。
在一种可能的实现方式中,可以对位置数据进行一位有效编码,从而得到位置数据对应的编码信息。
其中,一位有效编码(One-Hot编码)主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。
例如对不同的位置,根据英雄是否行动或存活等,进行补0和1的操作,比如说对各个位置,可以用1表示英雄存活,用0表示英雄死亡,让神经网络可以感知到1代表存活,0代表死亡,从而实现对存活英雄的表示;再比如当前针对各个位置,用1表示英雄行动,用0表示英雄没有行动,让神经网络可以感知到1代表行动,0代表未行动,从而实现对行动位置的表示,其中具体的编码方式,以及编码方式所表示的位置数据的含义,可以根据实际需求进行选择,本实施例对此不做特别限制。
最后对种类数据进行说明,如图4所示,种类数据例如可以包括英雄的buff、英雄的技能标识(id)、英雄标识等种类信息。
具体的,对于英雄buff等种类数据,在游戏画面上的信息是一段动画或者图标,程序端返回的是一个buff_id(增益标识),而神经网络很难感知到动画或者buff_id对应的是buff的这个实际含义。
对此,种类信息可以转换成位置信息,比如说让神经网络知道对方501的位置的英雄是输出类英雄的类似信息。
在一种可能的实现方式中,更具泛化性的做法是将种类数据进行网络初始化编码,比如说嵌入(embedding)初始化编码,随着游戏的对战增多,智能体会学习到这些种类数据的特征数据,比输入向量表示。例如,地方的xxx英雄是输出英雄,并且对应学习到表示输出英雄的向量,从而得到种类数据对应的编码信息。
因此在本实施例中,数值数据和位置数据可以进行相应处理,以得到对应的编码信息,种类数据可以进行嵌入初始化编码之后,提供给智能体进行学习,从而学习得到种类数据对应的编码信息。
此外,值得说明的是,在回合制的PVP游戏中,通常需要进行阵容的配置,比如说可以结合图5进行理解,在敌方需要有三位英雄,在我方也需要有三位英雄,在完成阵容的配置之后才能够实现游戏进程。
在确定第一智能体模型所对应的阵容时,在一种可能的实现方式中,例如可以手动创建配置,或者还可以根据线上热门的阵容创建配置,或者还可以根定制化脚本创建阵容的配置,其中,定制化脚本例如可以根据英雄的定位和属性成长值规则,确定配置的阵容,本实施例对定制化脚本的内部逻辑不做限定,其可以根据实际需求进行选择,只要可以根据英雄的定位和属性成长值规则实现阵容的配置即可。
通过上述的阵容配置的实现方式,解决了了在回合制多阵容的模型自我博弈时,配置阵容属性繁琐耗时的问题,并且通过上述方式能够保证阵容的合理性,从而为泛化性的回合制智能体提供了良好的数据质量,以提升模型学习的效果。
S302、将编码信息输入至第一智能体模型,得到第一智能体模型输出的上一状态数据对应的动作数据。
在得到上一状态数据对应的编码信息之后,可以将编码信息输入至第一智能体模型,第一智能体模型针对编码信息,可以有效的进行处理,从而输出上一状态数据对应的动作数据。
因此在本实施例中,通过将上一状态数据对应的编码信息输入至第一智能体模型,从而使得第一智能体模型可以有效的感知到上一状态数据的含义,以便进行有效的分析处理和学习。
S303、通过环境引擎确定动作数据对应的中间状态数据。
在本实施例中,当第一智能体模型输出动作数据之后,需要确定这个动作数据对应的下一游戏状态,以便后续确定新的动作数据,例如可以参照图6理解本实施例中单场战斗的逻辑。
如图6所示,每一个单场战斗的逻辑为:第一代模型初始化模型参数,游戏环境首先返回游戏的初始状态给第一代模型,第一代模型根据神经网络选取初始状态对应的游戏动作,之后将选取的游戏动作的动作数据返回给游戏环境,以得到游戏环境返回的下一游戏状态,之后再根据下一游戏状态继续选取新的游戏动作,重复执行直至数据采集结束或者游戏结束。
可以理解的是,图6中所示意的下一游戏状态,既是下一状态数据,也是要输入给第一智能体模型的状态数据,因为本实施例中就是将下一状态数据,不断的输入第一智能体模型,以得到多个经验数据的。
其中,每次游戏环境在输出下一游戏状态之前,或判断当前的游戏是否结束,若当前游戏未结束,则输出下一游戏状态,若当前的游戏结束,则可以开始新的游戏,或者停止数据的采集。
因此本实施例中的第一智能体模型需要获取游戏环境返回的下一游戏状态,同时因为本实施例中的第一智能体模型需要进行自我博弈,也就是说第一智能体模型对战的敌方同样是智能体模型,因此实际上游戏环境返回的下一游戏状态是经过敌方的智能体模型处理后得到的,下面对游戏环境返回下一游戏状态的实现过程进行说明。
首先,参见图7进行理解,第一智能体模型可以将动作数据输出给环境引擎,为了有效区分,此处将第一智能体模型输出的动作数据成为第一动作数据。本实施例中的环境引擎可以为上述介绍的游戏环境,以使得环境引擎根据第一智能体模型当前的第一动作数据确定对应的中间状态数据,可以理解的是,本实施例中的中间状态数据是第一智能体模型的第一动作数据所直接产生的状态数据。
结合图5进行理解,比如说第一智能体模型的第一动作数据是控制我方英雄504向敌方英雄502发起一次普通攻击,这次普通攻击的伤害值是1300,则这个第一动作数据所对应的中间状态数据就是,敌方英雄502的血量减少1300后的游戏状态数据。
S304、将中间状态数据输入至第二智能体模型,得到第二智能体模型输出的动作数据。
本实施例中的游戏可以是回合制游戏,回合制游戏的话就是我方和敌方轮流行动,一方一回合,则本实施例中第一智能体模型在确定动作数据之后,就轮到敌方的第二智能体模型行动了,参见图7,因此需要将当前的状态数据,也就是中间状态数据输入至第二智能体模型,第二智能体模型行动时,会根据中间状态数据进行处理,从而输出动作数据,如图7所示,因此可以得到第二智能体模型输出的第二动作数据。
其中,第二智能体模型就是敌方的智能体模型,因为本实施例中的智能体需要进行自我博弈,因此可以理解的是,第二智能体模型和第一智能体模型实际上是相同的处理逻辑。
在一种可能的实现方式中,第二智能体模型和第一智能体模型为相同的智能体模型,也就是说双方的智能体模型是完全相同的。
或者,第一智能体模型为最新版本的智能体模型,第二智能体模型为历史版本的智能体模型。
比如说当前智能体模型训练到第三代了,则第一智能体模型比如说是第三代的智能体模型,以及第二智能体模型比如说是第一代或者第二代的智能体模型。
在一种可能的实现方式中,在加载智能体模型进行战斗时,每个智能体都有80%的几率加载其最新模型,20%概率加载往代的模型,以加强训练稳定性,从而确保智能体整体是越来越强的方向进化。使智能体可以不仅关注是否可以打败当前版本的模型,同时也注重是否比对手往届版本智能体更强,确保模型的更新是往着更优的放向进行的。
比如说可以防止出现第三代智能体能战胜第二代智能体,第二代智能体能战胜第一代智能体,但是第三代智能体却不能打败第一代智能体的问题,确保了智能体能够朝着更优的方向进化。
例如可以参照图8进行理解,图8中示意出的是涉及多场战斗的自我博弈过程,其中,我方的模型为第一智能体模型,其例如可以为第N代模型,以及敌方的模型可以为第二智能体模型,其例如可以为第M代模型,其中N和M比如可以相等,则第一智能体模型和第二智能体模型就都是最新版本的模型,或者N还可以大于M,则表示第一智能体模型是最新版本的模型,第二智能体模型是历史版本的模型。
同时,参见图8可以确定的是,第一智能体模型和第二智能体模型可以作为敌我双方模拟战斗,因为第一智能体模型和第二智能体模型的逻辑是相同的,因此实现了智能体模型的自我博弈。
具体的,第一智能体模型可以行动一回合,游戏环境根据第一智能体模型行动的第一动作数据确定中间游戏环境,之后轮到第二智能体模型的行动回合,第二智能体模型可以根据中间游戏环境,确定第二智能体模型的第二动作数据,实现了回合制游戏。
S305、通过环境引擎确定第二智能体模型输出的动作数据对应的状态数据。
在第二智能体模型输出动作数据之后,参见图7,环境引擎可以根据第二智能体模型的第二动作数据,确定对应的状态数据,其实现方式与上述介绍的第一智能体模型的实现类似,此处不再赘述。
S306、将第二智能体模型输出的动作数据对应的状态数据,确定为环境引擎返回的下一状态数据。
在第二智能体模型的回合结束之后,又轮到第一智能体模型的行动回合了,则第二智能体模型行动之后的游戏状态,才是需要返回给第一智能体模型的下一游戏状态。
则如图7所示,本实施例中可以将第二智能体模型输出的第二动作数据对应的状态数据,确定为游戏环境返回给第一智能体模型的下一状态数据。
可以理解的是,上述介绍的过程是第一智能体模型和第二智能体模型之间的一个回合的过程,本实施例中为了采集大量的数据,可以通过第一智能体模型和第二智能体模型模拟多局战斗,在每局战斗中都包括多个回合,比如说图8所示的第一智能体模型和第二智能体模型之间可以模拟战斗100局,之后第一智能体模型产生的战斗数据可以存储在经验池中,以及第二智能体模型产生的战斗数据可以存储在经验池中,以供模型进行学习,进而得到新一代的智能体模型。
同时可以理解的是,若是采用单线程模拟战斗,则第二场游戏的开始往往需要等第一场游戏的结束,则大量的战斗等待时间大大降低了智能体模拟战斗的效率,在一种可能的实现方式中,如图9所示,例如可以同时加入多线程的方法,使多个智能体博弈并行的进行游戏战斗,之后将采集的数据存储在记忆池中,从而可以最大程度利用机器资源,以有效提升采集战斗数据的效率,进而加快训练的速度。
S307、获取动作数据对应的奖励数据。
同时,智能体所采取的每个动作都需要一个奖励来评判该动作是好的策略还是低级策略,以让神经网络能够学习的越来越好,因此本实施例中还可以获取动作数据对应的奖励数据,比如说奖励数据可以是上述介绍的游戏环境根据动作数据确定的。
在一种可能的实现方式中,本实施例中针对回合制游戏可以设计多种奖励,由于双方是自我博弈,输赢奖励即为零和,除此之外还有击杀,伤害奖励等。其中设置多种奖励可以创造多种风格的智能体。
在回合制游戏中,如果对战的轮数较多,常规的奖励设置仅关注游戏的输赢,智能体将探索输赢概率最大化的策略,智能体可能探索不到最优策略,已经陷入局部最优解。
如果对智能体引导过多,如过多的设置击杀,血量奖励,智能体可能由于人为设置的奖励的误导而得到较低的胜率。
本实施例中例如可以给回合制游戏提供三种智能体,第一种仅设置输赢奖励,给与较大探索率和探索时间,让智能体充分学习。第二种智能体,给与智能体输赢和击杀敌人的少量奖励,同时输赢的奖励会根据对战的轮数线性变化,轮数越短奖励越高,最优的策略往往是不倾向于磨血或者互相治疗的。第三种智能体,人为的设置多种符合人们认知的引导,除了击杀输赢等,还要血量变化,其他属性变化,buff的奖励等。多种奖励的设置,创造出多种回合制风格的智能体。
上述介绍的三种奖励是三种可能的实现方式,在实际实现过程中,奖励的具体设置方式可以根据实际需求进行选择,可以理解的是,想要智能体输出怎样的动作,就基于这种动作较多的奖励数据即可,游戏中有不同的侧重点,因此本实施例对奖励函数的具体实现方式不做限制。
S308、判断是否达到数据采集的结束条件,若是,则执行S309,若否,则执行S301。
在本实施例中,得到下一状态数据之后,可以首先判断是否达到数据采集的结束条件,以确定后续是否还需要重复执行上述操作,其中,数据采集的结束条件例如可以为采集到预设数据量的数据,或者还可以为模型的多局战斗全部结束,本实施例对数据采集的结束条件不做限制,其可以根据实际需求进行选择。
在一种可能的实现方式中,若未采集到足够的数据,则重复执行上述S301的操作,也就是将下一状态数据输入至第一智能体模型,之后得到第一智能体模型输出的新的动作数据,一直重复执行,直至达到数据采集的结束条件。
S309、确定多个经验数据。
在另一种可能的实现方式中,若达到数据采集的结束条件,则可以得到多个经验数据,比如说将采集的所有数据都作为经验数据,其中,每个经验数据包括:上一状态数据、上一状态数据对应的动作数据、动作数据对应的奖励数据、动作数据对应的下一状态数据。
例如可以结合图10理解经验数据,如图10所示,经验数据中可以包括上一状态数据,在上一状态数据中例如可以包括血量、蓝量、存活英雄数、角色位置行动信息、增益信息等表示当前游戏状态的数据。
以及在经验数据中还可以包括上一状态数据对应的动作数据,以及经验数据中还可以包括采取该动作后带来的下一游戏状态,比如说角色被击杀、存活数减少、血量技术那好等。
以及,在经验数据中还可以包括游戏环境确定的动作数据对应的奖励数据,比如说根据该动作数据是否导致击杀敌方对象,造成的伤害量,是否导致赢下比赛等,确定对应的奖励数据。
在回合制游戏中,每一条经验数据中的上一状态数据,都可以唯一对应一个游戏场景,相似的状态游戏场景,采取不同的动作,会导致游戏的胜负走向不同的方向,因此奖励数据便作为权衡动作影响好坏的指标供模型学习。
S310、获取经验数据中的上一状态数据,动作数据,奖励数据和下一状态数据。
本实施例是根据经验数据对模型进行训练,则在训练过程中,针对当前处理的经验数据,可以获取经验数据中的上一状态数据,动作数据,奖励数据和下一状态数据。
S311、根据第一智能体模型的动作网络和上一状态数据,获取当前动作网络输出的动作数据。
值得说明的是,本实施例中的智能体模型例如可以为PPO模型,其中,PPO模型是一种ACTOR-CRITIC(动作-价值)模型,模型中包含两个子网络,分别为ACTOR网络和CRITIC网络,其中,ACTOR网络用于进行动作的选取,CRITIC网络用于预测该动作下的奖励数据。
因此在一种可能的实现方式中,可以根据第一智能体模型的动作网络和上一状态数据,获取当前动作网络输出的动作数据。
S312、根据第一智能体模型的价值网络,获取当前动作网络输出的动作数据对应的预测奖励数据。
本实施例中的智能体模型中还可以包括评价网络(CRITIC网络),其中CRITIC网络可以确定当前动作网络输出的动作数据对应的预测奖励数据。
S313、根据经验数据中的奖励数据、预测奖励数据、经验数据中的动作数据和当前动作网络输出的动作数据,确定策略损失函数值。
之后就可以根据经验数据中的奖励数据、预测奖励数据、经验数据中的动作数据和当前动作网络输出的动作数据,这几部分内容确定损失函数值,以对模型的参数进行调整。其中,损失函数用来评价模型的预测值和真实值不一样的程度,奖励数据可以为损失函数中的参数。
在一种可能的实现方式中,本实施例中例如可以设置有三个损失函数,分别是策略损失函数(policy loss),价值损失函数(value loss),熵损失函数(entropy loss),这三个损失函数可以共同构成模型的优化目标,比如说可以根据这三个损失函数,分别确定三个损失函数各自对应的损失函数值,之后根据损失函数值对模型的参数进行调整。
首先对策略损失函数(policy loss)进行介绍,在一种可能的实现方式中,可以根据经验数据中的奖励数据、预测奖励数据、经验数据中的动作数据和当前动作网络输出的动作数据,确定策略损失函数值。
其中,policy loss对应的策略损失函数值例如可以满足如下公式一:
Figure BDA0002977046520000231
其中,LCLIP(θ)为策略损失函数值,对应policy loss,
Figure BDA0002977046520000232
为求期望操作,rt(θ)=p/p_old,p为动作网络输出当前策略概率,p_old为经验数据中策略概率,
Figure BDA0002977046520000233
为优势函数:具体为预测奖励数据-真实奖励数据,clip为裁剪操作,∈为用户设置的0-1的超参数。
其中,策略损失函数在模型优化中的作用为:优化policy loss这部分,即为扩大奖励高的动作的概率,降低低奖励动作的概率。
S314、根据经验数据中的奖励数据和预测奖励数据,确定价值损失函数值。
在一种可能的实现方式中,value loss对应的价值损失函数值例如可以满足如下公式二:
value loss这个损失函数例如可以满足如下公式二:
Lvalue=(r-v) 公式二
其中,Lvalue为价值损失函数值,对应value loss,r为经验数据中的奖励数据,v为预测的奖励数据。
其中,价值损失函数在模型优化中的作用为:value loss这部分,即代表着智能体预测采取动作后游戏中会产生的奖励的能力。
S315、根据当前动作网络输出的动作数据,确定熵损失函数值。
具体的,随着policy loss的优化,每当智能体遇到一个相似的局面,智能体会一直采取它所认为的最优动作,而这个动作在训练初期往往很可能不是最优动作,因此本实施例中的熵损失函数(entropy loss)这部分,引入的是熵的概念,其中,概率均匀分布时熵最大,则通过引入entropy loss这部分,可以使智能体在扩大高奖励的动作的同时,又保持探索。
具体的,熵就是信息中所包含的信息量,或者可以理解为不确定的程度,不确定的程度越大,熵就越大。
对于模型的输出来说,若输出结果的熵越大,则表明模型的输出越平均,这也就表示当前模型并不确定哪个动作是最优的,则根据熵确定动作数据时,模型会有一定的概率随机进行选择,从而可以让模型进行探索,避免过早收敛和陷入局部最优的问题。
本实施例中的entropy loss对应的熵损失函数值例如可以满足如下公式三:
Figure BDA0002977046520000241
其中,H(X)为熵损失函数值,对应value loss,P(xi)代表第xi个动作的概率。
值得说明的是,上述S313-S315介绍的是确定三部分损失函数值的实现过程,本实施例对上述三个步骤的实现顺序不做限制,其可以根据实际需求进行选择。
S316、对策略损失函数值、价值损失函数值、熵损失函数值求和,得到目标损失函数值。
本实施例中的三部分损失函数值在模型参数的调整中都会发挥一定的作用,因此需要根据三部分损失函数值共同对模型的参数进行调整,在一种可能的实现方式中,可以对上述介绍的三部分损失函数值进行求和,从而得到目标损失函数值,之后根据目标损失函数值进行模型参数的调整。
在可选的实现方式中,针对三部分损失函数值的操作不限于上述介绍的求和操作,比如说还可以根据相应的需求,针对三个部分的损失函数值进行一定的数学处理,从而得到目标损失函数值,本实施例对此不做限定,其可以根据实际需求进行选择,只要目标损失函数值是根据三个部分的损失函数值共同确定的即可。
S317、根据目标损失函数值进行反向传播,对第一智能体模型的参数进行调整。
在得到目标损失函数值之后,根据目标损失函数值进行反向传播,以对第一智能体模型的参数进行调整,可以理解的是,因为在计算目标损失函数值的时候用到了奖励数据,因此在根据目标损失函数值反向传播,调整第一智能体模型的参数时,实际上是根据奖励数据的指导,对模型的参数进行调整。
可以理解的是,模型参数调整的目标是减小损失函数值,从而减小真实值和预期值之间的差距,以提升模型输出的准确性和合理性。
S318、判断是否达到第一智能体模型的训练结束条件,若是,则执行S319,若否,则执行S310。
在第一智能体模型的参数进行调整之后,可以判断第一智能体模型的训练是否结束,其中,训练结束条件例如可以为训练轮数达到预设轮数、智能体模型的准确率达到预设准确率、智能体模型收敛等,训练结束条件的设置可以根据实际需求进行选择,本实施例对此不做限定。
在一种可能的实现方式中,若训练尚未结束,则需要继续对智能体模型进行训练,例如可以重复执行上述对模型参数进行调整的步骤,具体的,可以继续根据其余的经验数据进行处理,得到目标损失函数值,重复执行上述根据目标损失函数值调整模型参数的步骤,以对模型的参数不断进行调整,直至第一智能体模型达到训练结束条件。
S319、得到目标智能体。
在另一种可能的实现方式中,若达到第一智能体模型的训练结束条件,则表示第一智能体模型的训练完成,此时可以确定得到目标智能体。
值得说明的是,本实施例中的智能体模型基于PPO算法,针对回合制游戏进行适配和改进,其中,在智能体模型中包括回合制游戏的神经网络设计,游戏动作的设计,以及训练数据集改进为自我博弈数据,PPO模型中屏蔽无效动作等,上述改进解决了训练难收敛,策略不高级等问题。对于存入记忆池中的特征化后的经验数据,包括回合状态,选取的动作,以及对应的状态动作的奖励,PPO可以优化模拟动作奖励的网络和输出动作概率的网络,使网络能够预测的更准的奖励以及扩大高奖励的动作概率。
此外,自我博弈训练后的双方智能体需要有评估方案评估策略的水平,通常回合制的游戏都很难定性定量的评估策略的水平,本实施例中提供了几种方案,以进行策略的评估:
例如可以根据奖励的设置判断,日志(log)视频观察,评估POLICY的概率分布,对局回合数曲线,与标准队伍对战等。其中整体的策略可观察模型的对战轮数曲线,由于输赢奖励根据对战轮数线性变化,多智能体的博弈的轮数通常应该由多变少,最终收敛于固定对战轮数。除此之外,多智能体具体的策略解析出战斗日志和接入游戏中判断,网络的策略输出概率分布也可评判出学习的自信程度。
S320、控制目标智能体在游戏内自动做出动作决策。
在得到目标智能体之后,可以控制目标智能体在游戏内自动做出动作决策,其实现方式与上述S203介绍的类似,此处不再赘述。
综上所述,本实施例中提供的智能体处理方法,通过采集智能体模型的真实的自我博弈对战数据,之后根据对战数据智能体模型进行训练,以有效保证最终得到的目标智能体所输出的游戏操作的准确性和合理性。并且在采集数据的过程中,通过对状态数据进行特征化编码,以保证可以将状态数据以神经网络可以感知的方式输入模型,其中合理的特征化编码,可以保证智能体模型的算法策略有更好的表现,同时,本实施例中可以设置多种类型的奖励,以得到多种类型的智能体,以保证可以根据实际需求进行智能体模型的训练,以增强智能体模型的灵活性和适用性。此外,本实施例中的通过提供多种配置阵容的方式,可以有效避免配置阵容属性繁琐耗时的问题,同时合理的阵容可以为泛化性的回合制智能体提供更好的数据质量,以提升模型学习的效果。
图11为本申请实施例提供的智能体处理装置的结构示意图。如图11所示,该装置110包括:处理模块1101、训练模块1102。
处理模块1101,用于通过第一智能体模型进行L次环境交互处理,得到L个经验数据,每个所述经验数据包括:上一状态数据、所述上一状态数据对应的动作数据、所述动作数据对应的奖励数据、所述动作数据对应的下一状态数据,所述L为大于等于1的整数;
训练模块1102,用于根据所述多个经验数据对所述第一智能体模型进行训练,得到目标智能体;
控制模块1103,用于控制所述目标智能体在游戏内自动做出动作决策;
其中,所述环境交互处理包括:将上一状态数据输入所述第一智能体模型,所述第一智能体模型确定所述上一状态数据对应的动作数据,将所述动作数据反馈给环境引擎,得到所述动作数据对应的下一状态数据以及所述动作数据对应的奖励数据。
在一种可能的设计中,所述训练模块1102具体用于:
获取所述经验数据中的上一状态数据,动作数据,奖励数据和下一状态数据;
根据所述第一智能体模型的动作网络和所述上一状态数据,获取当前所述动作网络输出的动作数据;
根据所述第一智能体模型的价值网络,获取当前所述动作网络输出的动作数据对应的预测奖励数据;
根据所述经验数据中的奖励数据、所述预测奖励数据、所述经验数据中的动作数据和当前所述动作网络输出的动作数据,对所述第一智能体模型的参数进行调整;
针对各所述经验数据,分别执行上述对所述第一智能体模型的参数进行调整的操作,直至达到所述第一智能体模型的训练结束条件,得到所述目标智能体。
在一种可能的设计中,所述训练模块1102具体用于:
根据所述经验数据中的奖励数据、所述预测奖励数据、所述经验数据中的动作数据和当前所述动作网络输出的动作数据,确定策略损失函数值;
根据所述经验数据中的奖励数据和所述预测奖励数据,确定价值损失函数值;
根据当前所述动作网络输出的动作数据,确定熵损失函数值;
对所述策略损失函数值、所述价值损失函数值、所述熵损失函数值求和,得到目标损失函数值;
根据所述目标损失函数值进行反向传播,对所述第一智能体模型的参数进行调整。
在一种可能的设计中,所述处理模块1101还用于:
对所述上一状态数据进行编码处理,得到所述上一状态数据对应的编码信息。
在一种可能的设计中,所述上一状态数据包括如下中的至少一种:数值数据、位置数据、种类数据;
所述处理模块1101具体用于:
对所述数值数据进行归一化处理,得到所述数值数据对应的编码信息;和/或,
对所述位置数据进行一位有效编码,得到所述位置数据对应的编码信息;和/或,
对所述种类数据进行网络初始化编码,并学习所述种类数据对应的特征数据,得到所述种类数据对应的编码信息。
在一种可能的设计中,所述处理模块1101具体用于:
将所述动作数据反馈给环境引擎,通过环境引擎确定所述动作数据对应的中间状态数据;
将所述中间状态数据输入至第二智能体模型,得到所述第二智能体模型输出的动作数据;
通过所述环境引擎确定所述第二智能体模型输出的动作数据对应的状态数据;
将所述第二智能体模型输出的动作数据对应的状态数据,确定为所述环境引擎返回的所述下一状态数据。
在一种可能的设计中,所述第二智能体模型和所述第一智能体模型为相同的智能体模型;
或者,所述第一智能体模型为最新版本的智能体模型,所述第二智能体模型为历史版本的智能体模型。
在一种可能的设计中,所述控制模块1103具体用于:
将游戏内待处理的状态数据输入至所述目标智能体,得到所述目标智能体输出的行为数据;
根据所述目标智能体输出的行为数据,控制所述目标智能体在游戏内自动做出所述行为数据对应的动作决策。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图12为本申请实施例提供的智能体处理设备的硬件结构示意图,如图12所示,本实施例的智能体处理设备120包括:处理器1201以及存储器1202;其中
存储器1202,用于存储计算机执行指令;
处理器1201,用于执行存储器存储的计算机执行指令,以实现上述实施例中智能体处理方法所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器1202既可以是独立的,也可以跟处理器1201集成在一起。
当存储器1202独立设置时,该智能体处理设备还包括总线1203,用于连接所述存储器1202和处理器1201。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上智能体处理设备所执行的智能体处理方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (12)

1.一种智能体处理方法,其特征在于,包括:
通过第一智能体模型进行L次环境交互处理,得到L个经验数据,每个所述经验数据包括:上一状态数据、所述上一状态数据对应的动作数据、所述动作数据对应的奖励数据、所述动作数据对应的下一状态数据,所述L为大于等于1的整数;
根据所述多个经验数据对所述第一智能体模型进行训练,得到目标智能体;
控制所述目标智能体在游戏内自动做出动作决策;
其中,所述环境交互处理包括:将上一状态数据输入所述第一智能体模型,所述第一智能体模型确定所述上一状态数据对应的动作数据,将所述动作数据反馈给环境引擎,得到所述动作数据对应的下一状态数据以及所述动作数据对应的奖励数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个经验数据对第一智能体模型进行训练,得到目标智能体,包括:
获取所述经验数据中的上一状态数据,动作数据,奖励数据和下一状态数据;
根据所述第一智能体模型的动作网络和所述上一状态数据,获取当前所述动作网络输出的动作数据;
根据所述第一智能体模型的价值网络,获取当前所述动作网络输出的动作数据对应的预测奖励数据;
根据所述经验数据中的奖励数据、所述预测奖励数据、所述经验数据中的动作数据和当前所述动作网络输出的动作数据,对所述第一智能体模型的参数进行调整;
针对各所述经验数据,分别执行上述对所述第一智能体模型的参数进行调整的操作,直至达到所述第一智能体模型的训练结束条件,得到所述目标智能体。
3.根据权利要求2所述的方法,其特征在于,所述根据所述经验数据中的奖励数据、所述预测奖励数据、所述经验数据中的动作数据和当前所述动作网络输出的动作数据,对所述第一智能体模型的参数进行调整,包括:
根据所述经验数据中的奖励数据、所述预测奖励数据、所述经验数据中的动作数据和当前所述动作网络输出的动作数据,确定策略损失函数值;
根据所述经验数据中的奖励数据和所述预测奖励数据,确定价值损失函数值;
根据当前所述动作网络输出的动作数据,确定熵损失函数值;
对所述策略损失函数值、所述价值损失函数值、所述熵损失函数值求和,得到目标损失函数值;
根据所述目标损失函数值进行反向传播,对所述第一智能体模型的参数进行调整。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述上一状态数据进行编码处理,得到所述上一状态数据对应的编码信息。
5.根据权利要求4所述的方法,其特征在于,所述上一状态数据包括如下中的至少一种:数值数据、位置数据、种类数据;
所述对所述上一状态数据进行编码处理,得到所述上一状态数据对应的编码信息,包括:
对所述数值数据进行归一化处理,得到所述数值数据对应的编码信息;和/或,
对所述位置数据进行一位有效编码,得到所述位置数据对应的编码信息;和/或,
对所述种类数据进行网络初始化编码,并学习所述种类数据对应的特征数据,得到所述种类数据对应的编码信息。
6.根据权利要求1所述的方法,其特征在于,所述将所述动作数据反馈给环境引擎,得到所述动作数据对应的下一状态数据,包括:
将所述动作数据反馈给环境引擎,通过环境引擎确定所述动作数据对应的中间状态数据;
将所述中间状态数据输入至第二智能体模型,得到所述第二智能体模型输出的动作数据;
通过所述环境引擎确定所述第二智能体模型输出的动作数据对应的状态数据;
将所述第二智能体模型输出的动作数据对应的状态数据,确定为所述环境引擎返回的所述下一状态数据。
7.根据权利要求6所述的方法,其特征在于,所述第二智能体模型和所述第一智能体模型为相同的智能体模型;
或者,所述第一智能体模型为最新版本的智能体模型,所述第二智能体模型为历史版本的智能体模型。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述控制所述目标智能体在游戏内自动做出动作决策,包括:
将游戏内待处理的状态数据输入至所述目标智能体,得到所述目标智能体输出的行为数据;
根据所述目标智能体输出的行为数据,控制所述目标智能体在游戏内自动做出所述行为数据对应的动作决策。
9.一种智能体处理装置,其特征在于,包括:
处理模块,用于通过第一智能体模型进行L次环境交互处理,得到L个经验数据,每个所述经验数据包括:上一状态数据、所述上一状态数据对应的动作数据、所述动作数据对应的奖励数据、所述动作数据对应的下一状态数据,所述L为大于等于1的整数;
训练模块,用于根据所述多个经验数据对所述第一智能体模型进行训练,得到目标智能体;
控制模块,用于控制所述目标智能体在游戏内自动做出动作决策;
其中,所述环境交互处理包括:将上一状态数据输入所述第一智能体模型,所述第一智能体模型确定所述上一状态数据对应的动作数据,将所述动作数据反馈给环境引擎,得到所述动作数据对应的下一状态数据以及所述动作数据对应的奖励数据。
10.一种智能体处理设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1至8中任一所述的方法。
11.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至8中任一所述的方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述的方法。
CN202110276998.8A 2021-03-15 2021-03-15 智能体处理方法及装置 Pending CN112843725A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110276998.8A CN112843725A (zh) 2021-03-15 2021-03-15 智能体处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110276998.8A CN112843725A (zh) 2021-03-15 2021-03-15 智能体处理方法及装置

Publications (1)

Publication Number Publication Date
CN112843725A true CN112843725A (zh) 2021-05-28

Family

ID=75994495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110276998.8A Pending CN112843725A (zh) 2021-03-15 2021-03-15 智能体处理方法及装置

Country Status (1)

Country Link
CN (1) CN112843725A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113384875A (zh) * 2021-06-22 2021-09-14 吉林大学 模型训练方法、装置、存储介质及电子设备
CN114418242A (zh) * 2022-03-28 2022-04-29 海尔数字科技(青岛)有限公司 排料方案确定方法、装置、设备和可读存储介质
CN114996856A (zh) * 2022-06-27 2022-09-02 北京鼎成智造科技有限公司 一种用于飞机智能体机动决策的数据处理方法及装置
CN115115995A (zh) * 2022-08-29 2022-09-27 四川天启智能科技有限公司 一种基于自学习模型的麻将博弈决策方法
CN115212575A (zh) * 2022-09-19 2022-10-21 南京惠积信息科技有限公司 连续状态空间智能体构建方法
CN115300910A (zh) * 2022-07-15 2022-11-08 浙江大学 基于多智能体强化学习的去混淆游戏策略模型生成方法
CN115648204A (zh) * 2022-09-26 2023-01-31 吉林大学 智能决策模型的训练方法、装置、设备以及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110141867A (zh) * 2019-04-23 2019-08-20 广州多益网络股份有限公司 一种游戏智能体训练方法及装置
CN110882542A (zh) * 2019-11-13 2020-03-17 广州多益网络股份有限公司 游戏智能体的训练方法、装置、设备及存储介质
CN111185008A (zh) * 2020-01-20 2020-05-22 腾讯科技(深圳)有限公司 用于控制游戏中的虚拟角色的方法和设备
CN111260027A (zh) * 2020-01-10 2020-06-09 电子科技大学 一种基于强化学习的智能体自动决策方法
CN111330279A (zh) * 2020-02-24 2020-06-26 网易(杭州)网络有限公司 一种游戏ai的策略决策模型训练方法和装置
CN112052456A (zh) * 2020-08-31 2020-12-08 浙江工业大学 基于多智能体的深度强化学习策略优化防御方法
CN112316436A (zh) * 2020-11-30 2021-02-05 超参数科技(深圳)有限公司 智能体的避障方法、装置、计算机设备和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110141867A (zh) * 2019-04-23 2019-08-20 广州多益网络股份有限公司 一种游戏智能体训练方法及装置
CN110882542A (zh) * 2019-11-13 2020-03-17 广州多益网络股份有限公司 游戏智能体的训练方法、装置、设备及存储介质
CN111260027A (zh) * 2020-01-10 2020-06-09 电子科技大学 一种基于强化学习的智能体自动决策方法
CN111185008A (zh) * 2020-01-20 2020-05-22 腾讯科技(深圳)有限公司 用于控制游戏中的虚拟角色的方法和设备
CN111330279A (zh) * 2020-02-24 2020-06-26 网易(杭州)网络有限公司 一种游戏ai的策略决策模型训练方法和装置
CN112052456A (zh) * 2020-08-31 2020-12-08 浙江工业大学 基于多智能体的深度强化学习策略优化防御方法
CN112316436A (zh) * 2020-11-30 2021-02-05 超参数科技(深圳)有限公司 智能体的避障方法、装置、计算机设备和存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113384875A (zh) * 2021-06-22 2021-09-14 吉林大学 模型训练方法、装置、存储介质及电子设备
CN114418242A (zh) * 2022-03-28 2022-04-29 海尔数字科技(青岛)有限公司 排料方案确定方法、装置、设备和可读存储介质
CN114996856A (zh) * 2022-06-27 2022-09-02 北京鼎成智造科技有限公司 一种用于飞机智能体机动决策的数据处理方法及装置
CN115300910A (zh) * 2022-07-15 2022-11-08 浙江大学 基于多智能体强化学习的去混淆游戏策略模型生成方法
CN115115995A (zh) * 2022-08-29 2022-09-27 四川天启智能科技有限公司 一种基于自学习模型的麻将博弈决策方法
CN115212575A (zh) * 2022-09-19 2022-10-21 南京惠积信息科技有限公司 连续状态空间智能体构建方法
CN115648204A (zh) * 2022-09-26 2023-01-31 吉林大学 智能决策模型的训练方法、装置、设备以及存储介质

Similar Documents

Publication Publication Date Title
CN112843725A (zh) 智能体处理方法及装置
CN107970608B (zh) 关卡游戏的设置方法和装置、存储介质、电子装置
CN110141867B (zh) 一种游戏智能体训练方法及装置
García-Sánchez et al. Evolutionary deckbuilding in hearthstone
US7636701B2 (en) Query controlled behavior models as components of intelligent agents
CN111111204B (zh) 交互模型训练方法、装置、计算机设备和存储介质
CN108211362B (zh) 一种基于深度q学习网络的非玩家角色战斗策略学习方法
CN111841018B (zh) 模型训练方法、模型使用方法、计算机设备及存储介质
CN113688977A (zh) 面向对抗任务的人机共生强化学习方法、装置、计算设备及存储介质
Font et al. Dota 2 bot competition
CN115888119A (zh) 一种游戏ai训练方法、装置、电子设备及存储介质
Nam et al. Generation of diverse stages in turn-based role-playing game using reinforcement learning
Youssef et al. Building your kingdom imitation learning for a custom gameplay using unity ml-agents
Ariyurek et al. Playtesting: what is beyond personas
CN114404975A (zh) 决策模型的训练方法、装置、设备、存储介质及程序产品
CN114344889B (zh) 游戏策略模型生成方法和游戏中智能体的控制方法
CN113509726A (zh) 交互模型训练方法、装置、计算机设备和存储介质
CN114404976B (zh) 决策模型的训练方法、装置、计算机设备及存储介质
CN108874377B (zh) 一种数据处理方法、装置和存储介质
CN115944921A (zh) 游戏数据处理方法、装置、设备及介质
Somasundaram et al. Double Q–learning Agent for Othello Board Game
CN111389010B (zh) 虚拟机器人训练方法、装置、电子设备和介质
CN114681924A (zh) 虚拟对象的推荐方法、装置和电子设备
Gu et al. Flappy Bird Game Based on the Deep Q Learning Neural Network
Kowalczuk et al. JamesBot-an intelligent agent playing StarCraft II

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