掌桥专利:专业的专利平台
掌桥专利
首页

一种游戏中智能体的训练及控制方法

文献发布时间:2023-06-19 11:14:36


一种游戏中智能体的训练及控制方法

技术领域

本发明涉及人工智能技术领域,尤其是涉及一种游戏中智能体的训练及控制方法。

背景技术

在MMORPG(Massive Multiplayer Online Role-PlayingGame,大型多人在线角色扮演游戏)游戏中,多人竞技玩法能够充分展现不同职业间的配合,通过玩家协作共同赢得团队胜利。针对MMORPG游戏中的多人竞技场景训练的智能体,可以作为虚拟玩家提供玩家账户的托管服务,也能延伸出人机对战等玩法。相关技术中具有多种针对智能体的训练方式,但训练得到的智能体在游戏中的表现较差,为了提高智能体的战斗表现,往往需要设置复杂的网络结构和繁多的网络参数,导致网络训练缓慢难以收敛,且对资源要求较高,难以实际应用于游戏项目中。

发明内容

有鉴于此,本发明的目的在于提供一种游戏中智能体的训练及控制方法,以提高智能体对应的智能体在游戏中的战斗表现,且无需复杂的网络结合和较多的网络参数,可以实际应用于游戏项目中。

第一方面,本发明实施例提供了一种游戏中智能体的控制方法,方法包括:将游戏状态信息输入至预先训练完成的动作输出模型中;其中,动作输出模型包括主网络以及多个子网络;多个子网络中包含第一子网络集合和第二子网络集合,第一子网络集合对应智能体的友方角色,第二子网络集合对应智能体的敌方角色;通过主网络输出与智能体或游戏环境相关的第一动作预测结果;通过子网络输出与智能体的友方角色或敌方角色相关的第二动作预测结果;基于第一动作预测结果和第二动作预测结果,确定智能体的执行动作。

上述多个子网络中,每个子网络对应一个友方角色或一个敌方角色。

上述游戏状态信息包括:全局状态信息、智能体的角色状态信息、友方角色的角色状态信息以及敌方角色的角色状态信息。

上述通过子网络输出与智能体的友方角色或敌方角色相关的第二动作预测结果的步骤,包括:针对每个子网络,从游戏状态信息中获取子网络对应的目标角色的角色状态信息;将目标角色的角色状态信息输入至子网络中,输出第二动作预测结果。

上述子网络包括第一特征提取模块、第一嵌入层和第一动作层;上述将目标角色的角色状态信息输入至子网络中,输出第二动作预测结果的步骤,包括:将目标角色的角色状态信息输入至第一特征提取模块,输出第一初始特征信息;将第一初始特征信息以及主网络输出的全局特征信息输入至第一嵌入层,输出嵌入层特征信息;将嵌入层特征信息输入至第一动作层,输出第二动作预测结果;其中,第二动作预测结果包括:智能体针对目标角色执行每个指定动作的概率。

如果目标角色为友方角色,第二动作预测结果包括:智能体向友方角色释放每个指定技能的概率;如果目标角色为敌方角色,第二动作预测结果包括:智能体向敌方角色释放每个指定技能的概率。

上述将第一初始特征信息以及主网络输出的全局特征信息输入至第一嵌入层,输出嵌入层特征信息的步骤,包括:通过第一嵌入层,对第一初始特征信息和全局特征信息进行Pairwise配对操作,得到嵌入层特征信息。

上述对第一初始特征信息和全局特征信息进行Pairwise配对操作,得到嵌入层特征信息的步骤,包括:将第一初始特征信息和全局特征信息进行拼接处理,得到拼接结果;将拼接结果输入至预设的全连接层,输出嵌入层特征信息。

上述对第一初始特征信息和全局特征信息进行Pairwise配对操作,得到嵌入层特征信息的步骤,包括:求取第一初始特征信息和全局特征信息的内积,得到内积结果;将内积结果确定为嵌入层特征信息。

上述主网络包括第二特征提取模块、第二嵌入层和第二动作层;上述通过主网络输出与智能体或游戏环境相关的第一动作预测结果的步骤,包括:将游戏状态信息输入至第二特征提取模块,输出第二初始特征信息;将第二初始特征信息输入至第二嵌入层,输出全局特征信息;将全局特征信息输入至第二动作层,输出第二动作预测结果;其中,第二动作预测结果包括:智能体针对智能体自身或游戏环境的执行每个指定动作的概率。

如果第一子网络集合中友方角色对应的子网络包括多个,多个友方角色对应的子网络之间的至少一部分网络参数共享;如果第二子网络集合中敌方角色对应的子网络包括多个,多个敌方角色对应的子网络之间的至少一部分网络参数共享。

上述每个子网络之间的至少一部分网络参数共享。

上述网络参数共享的子网络之间的隐层参数相同。

上述动作输出模型通过下述方式训练得到:根据当前游戏参与角色的数量,确定共同训练的多个初始模型的数量;其中,每个初始模型对应一种角色;采用自对弈的方式,共同训练多个初始模型,得到训练完成后的多个初始模型;根据每个初始模型在训练过程中的游戏成绩,从训练完成后的多个初始模型中确定出动作输出模型。

第二方面,本发明实施例提供了一种游戏中智能体的控制装置,装置包括:信息输入模块,用于将游戏状态信息输入至预先训练完成的动作输出模型中;其中,动作输出模型包括主网络以及多个子网络;多个子网络中包含第一子网络集合和第二子网络集合,第一子网络集合对应智能体的友方角色,第二子网络集合对应智能体的敌方角色;结果输出模块,用于通过主网络输出与智能体或游戏环境相关的第一动作预测结果;通过子网络输出与智能体的友方角色或敌方角色相关的第二动作预测结果;动作确定模块,用于基于第一动作预测结果和第二动作预测结果,确定智能体的执行动作。

第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述游戏中智能体的控制方法。

第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述游戏中智能体的控制方法。

本发明实施例带来了以下有益效果:

上述游戏中智能体的训练及控制方法中,动作输出模型中的一部分子网络对应智能体的友方角色,另一部分子网络对应智能体的敌方角色;将游戏状态信息输入至动作输出模型后,通过主网络输出与智能体或游戏环境相关的第一动作预测结果;通过子网络输出与智能体的友方角色或敌方角色相关的第二动作预测结果;然后基于第一动作预测结果和第二动作预测结果,确定智能体的执行动作。该方式中,将子网络进行了角色的划分,从而可以使子网络仅学习对应角色相关的动作,提高了子网络的输入特征与输出结果之间的相关性,因而该模型输出的动作可以提高智能体对应的智能体在游戏中的战斗表现,且无需复杂的网络结合和较多的网络参数,可以实际应用于游戏项目中,具有较高的实用性。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种智能体训练网络结构的示意图;

图2为本发明实施例提供的另一种智能体训练网络结构的示意图;

图3为本发明实施例提供的另一种智能体训练网络结构的示意图;

图4为本发明实施例提供的另一种智能体训练网络结构的示意图;

图5为本发明实施例提供的一种游戏中智能体的控制方法的结构示意图;

图6为本发明实施例提供的一种动作输出模型的结构示意图;

图7为本发明实施例提供的另一种动作输出模型的结构示意图;

图8为本发明实施例提供的一种游戏中智能体的控制装置的结构示意图;

图9为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

多人竞技场景中可能具有多个智能体作为虚拟玩家共同参与游戏竞技。多人竞技场景作为典型的多智能体环境,具有非平稳、维度灾难、多智能体贡献分配、全局探索等难点,相比于单智能体环境而言更加复杂和难以训练。目前针对MMORPG中多智能体环境的智能体训练结构主要由神经网络模型完成,结合一种动作语义网络训练结构进行多智能体训练,可以提升智能体的战斗水平和团队之间的配合能力,使多智能体在复杂环境中通过感知动作对其他智能体的影响来提高共同的战斗表现。

相关技术中,针对多人在线竞技游戏中的多人对多人的竞技场景,具有多种方式训练智能体,下面进行描述:

方式1,主要使用决策树进行规则控制,针对每个场上角色设计一种决策树。这种完全由人工设计的决策树在面临复杂场景时缺乏自主决策能力,行为固定,表现单一,也容易存在可被玩家利用的设计缺陷。不仅需要耗费策划大量的时间进行设计,最终的表现也无法达到很高的水平。

方式2,如图1所示为一种智能体训练网络结构,将从环境中获取到的观察量进行预处理,再将观察量拉平后,送入MLP(Multi-Layer Perceptron,多层感知机)中,输出角色执行的动作以及值函数;其中,值函数也称为评价函数,用于网络训练。对每个虚拟职业训练一个神经网络模型,相同虚拟职业可以使用同一个模型进行决策。其中的MLP可以与LSTM(Long Short-Term Memory,长短期记忆网络)等流行的深度学习网络进行结合,以拟合复杂的训练数据。该网络结构是使用较为广泛的一种网络结构,采用DRL(DeepReinforcement Learning,深度强化学习)方法进行学习,能在较短时间内战胜上述方式1中的模型。但由于网络设计中在特征层级缺少团队协作通道和有效的队内合作信息,无法进行实际游戏中复杂动态环境下类似人类的配合操作,往往只能达到低端玩家水平,战斗水平的上限不足。

方式3,如图2所示,使用游戏小地图输入CNN(Convolutional Neural Networks,卷积神经网络),结合游戏中的其他观察量,包括各类计时、地形、英雄和小兵信息等,分别进行处理后通过拼接操作作为LSTM的输入进行训练。特别的,针对场上所有的英雄和符号类特征进行了嵌入层操作(Hero Embedding)以体现其语义信息。另外,一些游戏中使用的相似方案如图3所示,同样使用了图像信息与嵌入层结合作为输入,接入LSTM作为主要训练模块的方案。该方案中的网络模型参数量很大,且模型结构复杂,巨大的参数量对算力资源要求极高,导致训练缓慢,迭代时间长。其复杂的网络结构设计也需要更加精细的特征工程和长时间的调参优化。对于线上游戏而言,迭代缓慢、对训练资源和上线后的服务器资源要求过高的缺点使得方式3不适合多数的实际游戏项目。

方式4,如图4所示,ASN(Action Semantics Network,动作语义网络)结构通过将图1中的训练网络拆分为多个子模块,利用不同的子模块分别学习针对部分的动作,避免受到其他不相关特征的影响。ASN使用了图4中的pairwise操作来将主模块的嵌入层信息应用到不同子模块中,使子模块在决策时也能利用完全状态特征的嵌入信息。ASN在不同的多智能体环境中和多种DRL算法结合,达到了比较好的训练效果。该方案中每一维动作空间均需要进行嵌入层操作,且子模块的数量随着智能体数量的增加而不断增长,参数量较大,训练时也存在难以收敛和训练缓慢的问题。

图4中,左侧虚线框内部为主模块,右侧每个实线框代表一个子模块,图4中以两个子模块为例;主模块对应智能体,每个子模块对应除智能体自身以外的其他角色;假如有n个子模块,则参与游戏的智能体总量为n+1个。输入至主模块的

综上所述,相关技术中训练得到的智能体在游戏中的表现较差,为了提高智能体的战斗表现,往往需要设置复杂的网络结构和繁多的网络参数,导致网络训练缓慢难以收敛,且对资源要求较高,难以实际应用于游戏项目中。为了得到可以实际应用于游戏项目中且战斗表现较佳的智能体,本发明实施例提供一种游戏中智能体的训练及控制方法,该技术可以应用于各类智能体的训练场景中,尤其可以应用于游戏场景中,如多人对战场景中的智能体的训练。

首先,参见图5所示的一种游戏中智能体的控制方法的结构示意图,该方法包括如下步骤:

步骤S502,将游戏状态信息输入至预先训练完成的动作输出模型中;其中,该动作输出模型包括主网络以及多个子网络;多个子网络中包含第一子网络集合和第二子网络集合,第一子网络集合对应智能体的友方角色,第二子网络集合对应智能体的敌方角色;

在本实施例中,智能体可以理解为非玩家控制的虚拟角色,智能体也可以理解为一个虚拟玩家,该智能体模拟真实玩家控制游戏中的虚拟角色。

上述游戏状态信息通常包括智能体、每个友方角色、每个敌方角色的角色状态,还包括当前游戏的环境信息等,即该游戏状态信息可以较为全面地反应当前游戏的状态。在本实施例中,动作输出模型用于根据当前的游戏状态信息,输出智能体需要执行的动作;进而由程序控制该智能体执行该动作。在多人对战的场景下,主网络对应智能体自身,用于输出与智能体自身或游戏环境相关的动作;例如,智能体的移动、作用于智能体自身的技能、作用于游戏环境的技能等等。子网络用于输出与除智能体自身以外的其他角色相关的动作,例如,作用于其他角色的技能等。

在多人对战场景下,参与游戏的其他角色与智能体具有不同的关系,比如,一部分角色与智能体为队友,与智能体具有共同的敌人,这些角色为智能体的友方角色;另一部分角色与智能体为敌对关系,是智能体的敌人,这些角色为智能体的敌方角色。考虑到智能体对友方角色和敌方角色所执行的动作,例如释放的技能通常是不同的,因而本实施例中根据每个其他角色与智能体的关系,将各个角色对应的子网络进行划分。

具体的,可以将多个子网络划分为两部分,分别为第一子网络集合和第二子网络集合,第一子网络集合中的子网络对应智能体的友方角色,第二子网络集合中的子网络对应智能体的敌方角色。可以根据参与游戏的角色数量,确定友方角色对应的子网络的数量,以及敌方角色对应的子网络的数量。一个子网络可以对应一个或多个又方角色,或者对应一个或多个敌方角色。一个具体的实现方式中,多个子网络中,每个子网络对应一个友方角色或一个敌方角色。在大多情况下,参与游戏的角色组成两队,两队的角色数量相同,智能体与友方角色作为一队,敌方角色作为一队。图6作为一个示例,参与游戏的敌我双方共六个角色,主网络对应自身的智能体,两个子网络分别对应友方角色1和友方角色2,另外三个子网络分别对应敌方角色1、敌方角色2和敌方角色3;在参与游戏时,智能体、友方角色1和友方角色2作为一个战队,与敌方角色1、敌方角色2和敌方角色3组成的战队进行战斗。

步骤S504,通过主网络输出与智能体或游戏环境相关的第一动作预测结果;通过子网络输出与智能体的友方角色或敌方角色相关的第二动作预测结果;

游戏状态信息的全部信息或部分信息输入至主网络后,主网络可以输出第一动作预测结果;主网络可以针对智能体和游戏环境预先设置多种指定动作,该第一动作预测结果中可以包括基于上述游戏状态信息,得到的每种指定动作对应的概率。

游戏状态信息的全部信息或部分信息输入至子网络之后,该子网络可以输出第二动作预测结果;每个子网络对应一个友方角色或敌方角色;子网络可以针对对应的角色,预先设置多种指定动作;该第二动作预测结果中可以包括基于上述游戏状态信息,得到的每种指定动作对应的概率。

在大多情况下,智能体针对友方角色和针对敌方角色的动作通常不同,因此,友方角色对应的子网络与敌方角色对应的子网络之间,其设置的指定动作通常也不同;同为友方角色的多个子网络之间,其设置的指定动作可以相同,也可以存在不同的动作。子网络在被训练之前,即可将各个子网络可能涉及的指定动作划分完成,以便于具有针对性地进行训练。

步骤S506,基于第一动作预测结果和第二动作预测结果,确定智能体的执行动作。

具体实现时,第一动作预测结果和第二动作预测结果中,可能包括多种动作,以及每种动作对应的概率;然后再对第一动作预测结果和第二动作预测结果进行进一步的筛选和分析,得到智能体的执行动作。例如,将概率最高的动作确定为执行动作。确定了执行动作后,程序可以控制智能体执行该执行动作。

上述游戏中智能体的控制方法中,动作输出模型中的一部分子网络对应智能体的友方角色,另一部分子网络对应智能体的敌方角色;将游戏状态信息输入至动作输出模型后,通过主网络输出与智能体或游戏环境相关的第一动作预测结果;通过子网络输出与智能体的友方角色或敌方角色相关的第二动作预测结果;然后基于第一动作预测结果和第二动作预测结果,确定智能体的执行动作。该方式中,将子网络进行了角色的划分,从而可以使子网络仅学习对应角色相关的动作,提高了子网络的输入特征与输出特征之间的相关性,因而该模型输出的动作可以提高智能体对应的智能体在游戏中的战斗表现,且无需复杂的网络结合和较多的网络参数,可以实际应用于游戏项目中,具有较高的实用性。

在具体的实现方式中,上述游戏状态信息包括:全局状态信息、智能体的角色状态信息、友方角色的角色状态信息以及敌方角色的角色状态信息。其中的全局状态信息可以包括当前游戏的时间,我方队伍死亡的玩家数量,敌方队伍死亡的玩家数量等全局性的状态信息;智能体的角色状态信息可以包括智能体所在的队伍,智能体的职业、血量、位置、存活状态、以及智能体的临近玩家的位置信息等;每个友方角色的角色状态信息或者每个敌方角色的角色状态信息均可以包括下述内容:角色的基本信息,如职业,所在队伍,血量、位置等等;每个角色的技能信息,如技能类型、技能是否携带、技能冷却时间等;每个角色的增益和减益信息,包括增益或者减益的类型、是否存在等;每个角色的当前状态,比如是否被减速、是否控制免疫等等;以及需要的其它的额外信息。完善的游戏状态信息有利于动作输出模块输出更加符合当前游戏状态的动作,从而提高智能体的战斗表现。

下面具体描述子网络以及主网络的具体工作方式。由上述实施例可知,游戏状态信息包括全局状态信息以及各个角色的角色状态信息;对于子网络而言,为了使子网络学习到对应的角色的状态与动作的相关性,子网络仅输入该子网络对应的角色的角色状态信息。

具体的,针对每个子网络,从上述游戏状态信息中获取该子网络对应的目标角色的角色状态信息;将目标角色的角色状态信息输入至子网络中,输出第二动作预测结果。子网络通过学习对应的目标角色的角色状态信息与该目标角色对应的指定动作之间的相关性,可以提高动作输出的准确性,避免其他角色的角色状态信息或全局状态信息对子网络造成干扰,从而提高模型的战斗表现。

图7作为动作输出模型的一个具体的示例,示出了子网络的具体结构。子网络包括第一特征提取模块、第一嵌入层和第一动作层;每个子网络可以具有相同的网络结构,但网络参数不一定相同。子网络中的第一特征提取模块可以通过卷积层、全连接层、残差链接等结构实现;第一嵌入层可以理解为第一特征提取模型的最后一层隐层;第一动作层可以通过全连接层和softmax函数实现。

图7还示出了主网络的具体结构。主网络包括第二特征提取模块、第二嵌入层和第二动作层;主网络中的第二特征提取模块可以通过卷积层、全连接层、残差链接等结构实现;第二嵌入层可以理解为第二特征提取模型的最后一层隐层;第二动作层可以通过全连接层和softmax函数实现。

对于主网络而言,将游戏状态信息输入至第二特征提取模块,输出第二初始特征信息;将第二初始特征信息输入至第二嵌入层,输出全局特征信息;将全局特征信息输入至第二动作层,输出第二动作预测结果;其中,第二动作预测结果包括:智能体针对智能体自身或游戏环境的执行每个指定动作的概率。

上述全局特征信息中包含有游戏状态信息的所有状态的特征信息,即不仅包括全局状态信息的特征信息和智能体的角色状态信息的特征信息,还包括每个友方角色的角色状态信息的特征信息以及每个敌方角色的角色状态信息的特征信息。将全局特征信息输入至第二动作层之后,由第二动作层基于该全局特征信息输出第二动作预测结果。上述主网络中预先设置有多种指定动作,这些指定动作中一部分动作针对智能体自身,例如,作用于智能体自身的技能、或者智能体的位置移动等;另一部分针对游戏环境,例如,作用于游戏环境的技能等。因而上述第二动作预测结果中包括每个指定动作的概率。

对于任意一个子网络来说,将目标角色的角色状态信息输入至第一特征提取模块,输出第一初始特征信息;将第一初始特征信息以及主网络输出的全局特征信息输入至第一嵌入层,输出嵌入层特征信息;将嵌入层特征信息输入至第一动作层,输出第二动作预测结果;其中,第二动作预测结果包括:智能体针对目标角色执行每个指定动作的概率。

与主网络不同的是,每个子网络的第一特征提取模块仅输入上述游戏状态信息中,与子网络对应的角色的角色状态信息;同时,每个子网络仅设置针对对应的角色的指定动作,由于针对同一角色的角色状态信息和指定动作具有更高的相关性,仅输入对应角色的角色状态信息有利于子网络学习输入与输出的对应关系,避免被其他状态信息干扰,从而提高子网络输出的动作预测结果的准确性。

另外,为了使子网络决策并输出动作预测结果时,也参考游戏的全局信息,在第一动作层之前,获取主网络输出的全局特征信息,然后将目标角色的角色状态信息对应的第一初始特征信息进行拼接,然后将拼接特征输入至第一嵌入层,输出嵌入层特征信息。如图7所示,主网络的第二嵌入层输出全局特征信息,该全局特征信息输入至每个子网络的第一嵌入层,通过第一嵌入层将全局特征信息与第一初始特征信息进行拼接。此时的嵌入层特征信息中不仅包括目标角色的角色状态信息对应的特征,还包括全局特征;将嵌入层特征信息输入至第一动作层后,第一动作层输出第二动作预测结果时,不仅基于目标角色的角色状态信息,同时也参考了全局特征,使得子网络在决策时收到全局特征的约束,达到获取全局信息的目的,从而输出的动作预测结果更加准确,有利于提高智能体的战斗水平。

上述方式中,模型按照智能体本身、友方和敌方划分为主网络和多个子网络:训练时,针对每个智能体构造一个单独的模型,在实际战斗环境中进行多智能体混合训练。同时将完整的游戏状态信息进行划分,将动作集合也进行划分,作为主网络和不同子网络的输入和输出,利用不同的子模块分别学习针对该角色的动作。

一种具体的实现方式中,通过第一嵌入层,对第一初始特征信息和全局特征信息进行Pairwise配对操作,得到嵌入层特征信息。假设主网络的第二嵌入层输出的全局特征信息为E

第一种方式,将第一初始特征信息和全局特征信息进行拼接处理,得到拼接结果;将该拼接结果输入至预设的全连接层,输出嵌入层特征信息。通过全连接层将拼接结果进行全连接处理,从而实现将第一初始特征信息和全局特征信息进行信息融合。

第二种方式,求取第一初始特征信息和全局特征信息的内积,得到内积结果;将内积结果确定为嵌入层特征信息。该方式中,通过求内积的方式将一初始特征信息和全局特征信息进行信息融合。仅作为示例,假设第一初始特征信息标识为[a,b,c],全局特征信息表示为[d,e,f],二者的内积可以表示为a*d+b*e+c*f。

在本实施例上述方式中,在一个子网络中,仅实现一次Pairwise配对操作;而相关技术中,大多是针对第一初始特征信息中的每维特征执行一次Pairwise配对操作计算量较大,本实施例中仅实现一次Pairwise配对操作同样可以实现将全局特征信息融入子网络的初始特征信息中,同时实现了Pairwise配对操作的优化,降低了计算量。

在游戏场景下,智能体针对其他角色的动作,大多为作用于其他角色的技能释放操作。基于此,在一种具体的实现方式中,如果目标角色为友方角色,上述第二动作预测结果包括:智能体向友方角色释放每个指定技能的概率;在多人对多人的战斗场景中,智能体和每个友方角色为同一个战斗队伍,在同一个队伍中,每个角色在队伍所扮演的具体角色可能不同;因此,对于智能体而言,针对不同的友方角色的指定技能可能相同,也可能不同。如果针对不同的友方角色的指定技能相同,则每个友方角色对应的子网络的预设的指定技能相同;如果针对不同的友方角色的指定技能不同,则每个友方角色对应的子网络的预设的指定技能不同;例如,对于友方角色1,对应的指定技能可能包括技能1、技能2和技能3;对应友方角色2,对应的指定技能可能包括技能1、技能2和技能4。

同理,如果目标角色为敌方角色,上述第二动作预测结果包括:智能体向敌方角色释放每个指定技能的概率。对于智能体而言,针对不同的敌方角色的指定技能可能相同,也可能不同。如果针对不同的敌方角色的指定技能相同,则每个敌方角色对应的子网络的预设的指定技能相同;如果针对不同的敌方角色的指定技能不同,则每个敌方角色对应的子网络的预设的指定技能不同;例如,对于敌方角色1,对应的指定技能可能包括技能a、技能b和技能c;对应敌方角色2,对应的指定技能可能包括技能a、技能b和技能d。

经过上述实施例,主网络输出的第一动作预测结果包括针对智能体或游戏环境的多个指定动作,以及每个指定动作的概率;每个子网络输出的第二动作预测结果同样包括针对某个友方角色或敌方角色的多个指定动作,以及每个指定动作的概率。此时,可以采用value-based RL(Reinforcement Learning,强化学习)方法和policy-based RL方法,从第一动作预测结果和多个第二动作预测结果中确定智能体最终要执行的动作。

当游戏中参与的角色较多时,模型中的子网络数量就较多,网络结构会变得复杂,网络参数的数量也会增加,不利于模型的训练和收敛。基于此,在本实施例中,考虑到智能体对每个友方角色的动作具有一定的相似性,对每个敌方角色的动作也具有一定的相似性。因此,如果第一子网络集合中友方角色对应的子网络包括多个,多个友方角色对应的子网络之间的至少一部分网络参数共享;例如,每个友方角色对应的子网络的网络结构和网络参数全部相同,或者每个友方角色对应的子网络之间,某一个模块或某一层的网络参数相同;同理,如果第二子网络集合中敌方角色对应的子网络包括多个,多个敌方角色对应的子网络之间的至少一部分网络参数共享。例如,每个敌方角色对应的子网络的网络结构和网络参数全部相同,或者每个敌方角色对应的子网络之间,某一个模块或某一层的网络参数相同。网络参数共享的方式可以减少模型内网络参数的数量,减少了模型的大小和训练时间,有利于模型的训练和收敛,同时,模型在使用的过程中占用的内存资源和运算资源也较少,有利于模型在游戏项目中的实际应用。同时,该方式仅在友方角色之间的子网络参数共享,敌方角色之间的子网络参数共享,可以保证模型的战斗表现。

另一种实现方式中,每个子网络之间的至少一部分网络参数共享。例如,每个子网络的网络结构和网络参数全部相同,或者每个子网络之间,某一个模块或某一层的网络参数相同。相对于仅友方角色之间的子网络参数共享,敌方角色之间的子网络参数共享的方式,该方式为每个子网络之间参数共享,进一步地降低了网络参数的数量。

一种具体的实现方式中,网络参数共享的子网络之间的隐层参数相同。例如,友方角色之间的子网络的隐层参数相同,敌方角色之间的子网络的隐层参数相同,但友方角色与敌方角色的子网络的隐层参数不同。再如,还可以每个子网络之间的隐层参数均相同。

下面描述动作输出模型的训练方式,该动作输出模型通过下述步骤60-64训练得到:

步骤60,根据当前游戏参与角色的数量,确定共同训练的多个初始模型的数量;其中,每个初始模型对应一种角色;

步骤62,采用自对弈的方式,共同训练多个初始模型,得到训练完成后的多个初始模型;

步骤64,根据每个初始模型在训练过程中的游戏成绩,从训练完成后的多个初始模型中确定出动作输出模型。

自对弈的方式也可以称为selfplay的训练方式,仅作为示例,假如一共12个角色参与游戏,12个角色分为成两个队伍,每个队伍6个人,此时,则同时训练6个初始模型。在训练结束后,获得每个初始模型在训练过程中的游戏成绩,可以将成绩最好或表现最佳的初始模型确定为最终的动作输出模型。

总体而言,上述实施例提供的游戏中智能体的控制方法,通过引入动作语义特征来解决多人对多人的对战场景下,模型难以有效学习和配合的问题,提高模型在复杂环境下的配合能力。同时利用参数共享和嵌入层拼接的方法,通过复用不同子结构之间的参数和特征来提高训练效率和效果,降低对训练和上线资源的消耗。

本实施例中的动作输出模型可以轻松打败策划编写的决策树,不同职业角色之间的配合操作更接近于人类玩家水平,从而取代了决策树内置的人工智能模块,节省了策划的时间。同时由于模型水平的提升开发了人机对战和人工智能明星赛等玩法,丰富了游戏内容,提升了玩家的游戏体验。

对应于上述方法实施例,参见图8所示的一种游戏中智能体的控制装置的结构示意图,装置包括:

信息输入模块80,用于将游戏状态信息输入至预先训练完成的动作输出模型中;其中,动作输出模型包括主网络以及多个子网络;多个子网络中包含第一子网络集合和第二子网络集合,第一子网络集合对应智能体的友方角色,第二子网络集合对应智能体的敌方角色;

结果输出模块82,用于通过主网络输出与智能体或游戏环境相关的第一动作预测结果;通过子网络输出与智能体的友方角色或敌方角色相关的第二动作预测结果;

动作确定模块84,用于基于第一动作预测结果和第二动作预测结果,确定智能体的执行动作。

上述游戏中智能体的控制装置,动作输出模型中的一部分子网络对应智能体的友方角色,另一部分子网络对应智能体的敌方角色;将游戏状态信息输入至动作输出模型后,通过主网络输出与智能体或游戏环境相关的第一动作预测结果;通过子网络输出与智能体的友方角色或敌方角色相关的第二动作预测结果;然后基于第一动作预测结果和第二动作预测结果,确定智能体的执行动作。该方式中,将子网络进行了角色的划分,从而可以使子网络仅学习对应角色相关的动作,提高了子网络的输入特征与输出特征之间的相关性,因而该模型输出的动作可以提高智能体对应的智能体在游戏中的战斗表现,且无需复杂的网络结合和较多的网络参数,可以实际应用于游戏项目中,具有较高的实用性。

上述多个子网络中,每个子网络对应一个友方角色或一个敌方角色。

上述游戏状态信息包括:全局状态信息、智能体的角色状态信息、友方角色的角色状态信息以及敌方角色的角色状态信息。

上述结果输出模块,还用于:针对每个子网络,从游戏状态信息中获取子网络对应的目标角色的角色状态信息;将目标角色的角色状态信息输入至子网络中,输出第二动作预测结果。

上述子网络包括第一特征提取模块、第一嵌入层和第一动作层;上述结果输出模块,还用于:将目标角色的角色状态信息输入至第一特征提取模块,输出第一初始特征信息;将第一初始特征信息以及主网络输出的全局特征信息输入至第一嵌入层,输出嵌入层特征信息;将嵌入层特征信息输入至第一动作层,输出第二动作预测结果;其中,第二动作预测结果包括:智能体针对目标角色执行每个指定动作的概率。

如果目标角色为友方角色,第二动作预测结果包括:智能体向友方角色释放每个指定技能的概率;如果目标角色为敌方角色,第二动作预测结果包括:智能体向敌方角色释放每个指定技能的概率。

上述结果输出模块,还用于:通过第一嵌入层,对第一初始特征信息和全局特征信息进行Pairwise配对操作,得到嵌入层特征信息。

上述结果输出模块,还用于:将第一初始特征信息和全局特征信息进行拼接处理,得到拼接结果;将拼接结果输入至预设的全连接层,输出嵌入层特征信息。

上述结果输出模块,还用于:求取第一初始特征信息和全局特征信息的内积,得到内积结果;将内积结果确定为嵌入层特征信息。

上述主网络包括第二特征提取模块、第二嵌入层和第二动作层;上述结果输出模块,还用于:将游戏状态信息输入至第二特征提取模块,输出第二初始特征信息;将第二初始特征信息输入至第二嵌入层,输出全局特征信息;将全局特征信息输入至第二动作层,输出第二动作预测结果;其中,第二动作预测结果包括:智能体针对智能体自身或游戏环境的执行每个指定动作的概率。

如果友方角色对应的子网络包括多个,多个友方角色对应的子网络之间的至少一部分网络参数共享;如果敌方角色对应的子网络包括多个,多个敌方角色对应的子网络之间的至少一部分网络参数共享。

每个子网络之间的至少一部分网络参数共享。

网络参数共享的子网络之间的隐层参数相同。

上述装置还包括训练模块,用于通过下述方式训练得到动作输出模型:根据当前游戏参与角色的数量,确定共同训练的多个初始模型的数量;其中,每个初始模型对应一种角色;采用自对弈的方式,共同训练多个初始模型,得到训练完成后的多个初始模型;根据每个初始模型在训练过程中的游戏成绩,从训练完成后的多个初始模型中确定出动作输出模型。

本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述游戏中智能体的控制方法。该电子设备可以是服务器,也可以是终端设备。

参见图9所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述游戏中智能体的控制方法。

进一步地,图9所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。

其中,存储器101可能包含高速随机存取存储器(RAM,RandomAccessMemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。

本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述游戏中智能体的控制方法。

本发明实施例所提供的游戏中智能体的训练及控制方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种游戏中智能体的训练及控制方法
  • 一种智能体的训练、基于智能体的动作控制方法及装置
技术分类

06120112849516