对战格斗类AI游戏模型的生成方法、装置、设备及介质与流程

文档序号:25283998发布日期:2021-06-01 17:32阅读:148来源:国知局
对战格斗类AI游戏模型的生成方法、装置、设备及介质与流程

本申请实施例涉及人工智能(artificialintelligence,ai)技术领域,尤其涉及一种对战格斗类ai游戏模型的生成方法、装置、设备及介质。



背景技术:

格斗游戏有决策时间短、决策空间大、策略变化丰富等特点。在对战过程中,受限于游戏限定的对抗时间和范围,玩家需要通过合理的位移来规避风险并且尽可能对对方角色造成伤害。由于对手的行为策略丰富多变,面对如此巨大的决策空间和决策的实时需求,制定、选择和执行策略是游戏智能系统至关重要的环节。

目前主要利用行为树用来实现制定、选择和执行策略。这种行为树也被称为对战格斗类ai游戏模型,然而,这种对战格斗类ai游戏模型存在大量的判断分支描述,需要人工反复调整,人工工作量很大,目前这种方法造成对战格斗类ai游戏模型生成效率低的问题。



技术实现要素:

本申请提供一种对战格斗类ai游戏模型的生成方法、装置、设备及介质,从而可以提高对战格斗类ai游戏模型的生成效率。

第一方面,本申请提供一种对战格斗类ai游戏模型的生成方法,包括:获取第一对战格斗类ai游戏模型;通过基于第一对战格斗类ai游戏模型的两个ai游戏角色的对弈,以生成第一对战格斗类ai游戏模型的多个训练样本;根据多个训练样本训练第一对战格斗类ai游戏模型,以得到第二对战格斗类ai游戏模型,其中,每个训练样本包括:游戏局面信息、动作概率分布和获胜率。

第二方面,本申请提供一种对战格斗类ai游戏模型的生成装置,包括:第一获取模块、生成模块和训练模块,其中,第一获取模块用于获取第一对战格斗类ai游戏模型;生成模块用于通过基于第一对战格斗类ai游戏模型的两个ai游戏角色的对弈,以生成第一对战格斗类ai游戏模型的多个训练样本;训练模块用于根据多个训练样本训练第一对战格斗类ai游戏模型,以得到第二对战格斗类ai游戏模型其中,每个训练样本包括:游戏局面信息、动作概率分布和获胜率。

第三方面,提供了一种对战格斗类ai游戏模型的生成设备,包括:处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行第一方面的方法。

第四方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行第一方面的方法。

通过本申请提供的技术方案,可以实现如下技术效果:第一,这种方式不依赖于人力,从而可以提高对战格斗类ai游戏模型的生成效率。第二,这种通过两个ai游戏角色的对弈来训练对战格斗类ai游戏模型的方式,可以适用于任何场景,包括难以用规则描述的场景。第三,针对不同的ai游戏角色,无需人工设计特定的对战格斗类ai游戏模型,只需要ai游戏角色自对弈即可生成该对战格斗类ai游戏模型,从而降低了人工维护的成本。第四,这种方式不依赖于人力,因此,游戏玩家很难发现游戏漏洞。第五,这种案发时可以产生丰富的策略变化,以满足高水平玩家的竞技陪玩需求。此外,如果采用本申请技术方案,那么服务器不需要获得真实玩家的数据,可以让产品在未上线的时候即可产生对战格斗类ai游戏模型。

附图说明

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

图1为本申请实施例提供的一种对战格斗类ai游戏模型的生成方法的流程图;

图2为本申请实施例提供的一种动作概率分布示意图;

图3为本申请实施例提供的一种生成训练样本的方法流程图;

图4为本申请实施例提供的另一种生成训练样本的方法流程图;

图5为本申请实施例提供的两个ai游戏角色的一轮对弈过程示意图;

图6为本申请实施例提供的生成训练样本的示意图;

图7为本申请实施例提供的第一对战格斗类ai游戏模型的训练方法的流程图;

图8为本申请实施例提供的ai游戏角色的动作确定方法的交互流程图;

图9为本申请实施例提供的一种对战格斗类ai游戏模型的生成装置的示意图;

图10是本申请实施例提供的对战格斗类ai游戏模型的生成设备1000的示意性框图;

图11为本申请实施例提供的ai游戏系统的示意图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请涉及ai技术领域,其中,ai是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

机器学习(machinelearning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。

如上所述,目前主要利用行为树用来实现制定、选择和执行策略。行为树就是一棵节点层次分明的树,控制着ai游戏角色的一系列执行策略。通常而言,行为树包括4大类型节点:

(1)组合节点(compositenode),一般包括:选择子节点(selectornode),按顺序遍历执行所有子节点的顺序子节点(sequencenode)、并行执行所有子节点的并行子节点(parallelnode)、还有一些衍生的比如加权随机节点,优先级节点等等。

(2)修饰节点(decoratornode),将它子节点执行后返回的结果做额外处理,再返回给它的父节点(parentnode)。

(3)条件节点(conditionnode)。

(4)动作节点(actionnode),也被称为叶子节点。

通过上面这些节点的各种组合,就可以控制ai游戏角色的一系列执行策略。

上述行为树的构建,主要依赖于开发人员对游戏机制和战斗局势的理解进行建模。如上所述,这种行为树存在大量的判断分支描述,需要人工反复调整,人工工作量很大,存在行为树生成效率低的问题。除此之外,还存在如下问题:

在格斗对战游戏中,存在很多难以用规则描述的场景,使得行为树的能力存在一定的瓶颈。

针对不同的ai游戏角色,开发人员要指定这些不同ai游戏角色对应的行为树,造成人工维护的成本很高。

行为树中的分支逻辑有限,能够描述的行为模式也有限,很容易被玩家发现游戏漏洞。

格斗对战游戏具有决策时间短、策略变化丰富的特点,因此,基于行为树设计的ai游戏角色的能力有限,很难满足高水平玩家的竞技陪玩需求。

为了解决上述技术问题,本申请通过构建一个对战格斗类ai游戏模型,并通过基于该对战格斗类ai游戏模型的两个ai游戏角色对弈,来训练该对战格斗类ai游戏模型。

可选的,本申请技术方案可以应用于格斗对战游戏,例如:人机对战的游戏场景。

下面将对本申请技术方案进行详细阐述:

图1为本申请实施例提供的一种对战格斗类ai游戏模型的生成方法的流程图,该方法的执行主体可以是服务器或者其他电子设备,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器,本申请对此不做限制。下面以该方法的执行主体为服务器对该方法进行示例性说明,如图1所示,该方法包括如下步骤:

s110:获取第一对战格斗类ai游戏模型。

s120:通过基于第一对战格斗类ai游戏模型的两个ai游戏角色的对弈,以生成第一对战格斗类ai游戏模型的多个训练样本。

s130:根据多个训练样本训练第一对战格斗类ai游戏模型,以得到第二对战格斗类ai游戏模型。

应理解的是,本申请实施例涉及的对战格斗类ai游戏模型均是用于实现ai游戏角色的执行策略。这些对战格斗类ai游戏模型均是深度神经网络模型。

应理解的是,第一对战格斗类ai游戏模型涉及模型参数,训练该第一对战格斗类ai游戏模型,即训练该模型的模型参数。

应理解的是,第一对战格斗类ai游戏模型也被称为初始对战格斗类ai游戏模型,它的输入为游戏局面信息,输出是动作概率分布和获胜率。

例如:假设用s表示游戏局面信息,p表示动作概率分布,v表示获胜率,θ表示第一对战格斗类ai游戏模型涉及的模型参数。那么第一对战格斗类ai游戏模型可以通过如下公式(1)表示:

modelθ(s)=(p,v)(1)

可选的,该游戏局面信息可以是任一ai游戏角色所能获取到的游戏局面信息,其可以包括以下至少一项,但不限于此:该ai游戏角色的位置信息、血量信息、技能信息、该ai游戏角色与其他游戏角色的距离信息、障碍物信息、时间信息、该ai游戏角色的得分信息。

可选的,该时间信息可以是游戏时长等,本申请对此不作限制。

可选的,该游戏局面信息还包括以下至少一项,但不限于此:该ai游戏角色可以获取到的对手侧的位置信息、血量信息、得分信息、技能信息等。

应理解的是,在人机交互的对战格斗场景中,游戏局面信息中涉及的ai游戏角色指的是机器侧的ai游戏角色。而游戏局面信息中涉及的其他游戏角色可以玩家侧的游戏角色。

ai游戏角色涉及的动作或者本申请涉及的任一对战格斗类ai游戏模型涉及的动作包括,但不限于:向左移动、向右移动、向上移动、攻击、跳跃、格挡等。

第一对战格斗类ai游戏模型输出的动作概率分布即为上述各个动作的概率分布,例如:图2为本申请实施例提供的一种动作概率分布示意图,如图2所示,向左移动、向右移动、向上移动、攻击、跳跃、格挡对应的执行概率分别为0.2、0.3、0.6、0.8、0.3、0.2。

第一对战格斗类ai游戏模型输出的动作概率分布用于ai游戏角色所在的客户端确定在当前游戏局面下的执行动作,例如:客户端根据该动作概率分布执行概率最大的动作。

第一对战格斗类ai游戏模型输出的获胜率是当前游戏局面信息下,ai游戏角色的获胜率。因此,在不同的游戏局面下,ai游戏角色的获胜率可能不同。

可选的,服务器可以通过如下可选方式生成第一对战格斗类ai游戏模型的多个训练样本,但不限于此:

可选方式一:图3为本申请实施例提供的一种生成训练样本的方法流程图,如图3所示,该方法包括如下步骤:

s310:初始化第一对战格斗类ai游戏模型中的参数,以得到第三对战格斗类ai游戏模型。

s320:在两个ai游戏角色的每轮对弈过程中,将当前游戏局面对应的游戏局面信息输入第三对战格斗类ai游戏模型,以得到两个ai游戏角色各自的动作概率分布,并控制两个ai游戏角色根据各自的动作概率分布执行对应的动作,以进入下一个游戏局面,将下一个游戏局面作为新的当前游戏局面,直至两个ai游戏角色决出胜负。

s330:生成两个ai游戏角色中胜利方对应的多个第一训练样本和失败方对应的多个第二训练样本。

其中,任一个第一训练样本包括:第一游戏局面信息、第一动作概率分布和1;第一游戏局面信息是每轮对弈过程中胜利方所获取到的任一游戏局面信息;第一动作概率分布是胜利方在第一游戏局面信息下的动作概率分布;1表示胜利方的获胜率为1。

任一个第二训练样本包括:第二游戏局面信息、第二动作概率分布和-1;第二游戏局面信息是每轮对弈过程中失败方所获取到的任一游戏局面信息;第二动作概率分布是失败方在第一游戏局面信息下的动作概率分布;-1表示失败方的获胜率为-1。

可选方式二:图4为本申请实施例提供的另一种生成训练样本的方法流程图,如图4所示,该方法包括如下步骤:

s410:初始化第一对战格斗类ai游戏模型中的参数,以得到第三对战格斗类ai游戏模型。

s420:在两个ai游戏角色的每轮对弈过程中,将当前游戏局面对应的游戏局面信息输入第三对战格斗类ai游戏模型,以得到两个ai游戏角色各自的动作概率分布,并控制两个ai游戏角色根据各自的动作概率分布执行对应的动作,以进入下一个游戏局面,将下一个游戏局面作为新的当前游戏局面,直至两个ai游戏角色决出胜负。

s430:生成两个ai游戏角色中胜利方对应的多个第一训练样本和失败方对应的多个第二训练样本。

s440:在多个第二训练样本中选择至少一个第二训练样本。

s450:针对至少一个第二训练样本中的任一个第二训练样本,根据第二训练样本对应的第二游戏局面信息,对第二训练样本对应的第二动作概率分布进行调整,以得到第三动作概率分布。

s460:生成第三训练样本。

其中,第三训练样本包括:第二训练样本对应的第二游戏局面信息、第三动作概率分布和0,0表示获胜率为0。

下面对上述可选方式一进行说明:

可选的,服务器可以生成随机值,来初始化第一对战格斗类ai游戏模型中的参数,以得到第三对战格斗类ai游戏模型。或者,服务器可以将预设值赋给第一对战格斗类ai游戏模型,以实现初始化第一对战格斗类ai游戏模型中的参数的目的。总之,本申请对如何初始化第一对战格斗类ai游戏模型中的参数不做限制。

可选的,服务器可以通过上述两个ai游戏角色的至少一轮对弈过程,得到第一对战格斗类ai游戏模型的多个训练样本。

示例性的,针对两个ai游戏角色的每个对弈过程,服务器获取第一对战格斗类ai游戏模型的多个训练样本的过程如下:图5为本申请实施例提供的两个ai游戏角色的一轮对弈过程示意图,如图5所示,在初始游戏局面下,假设游戏角色a获取到的游戏局面信息为sa1,游戏角色b获取到的游戏局面信息为sb1,将该sa1输入至第三对战格斗类ai游戏模型,以得到游戏角色a的动作概率分布为πa1,这时依据该动作概率分布,游戏角色a执行动作a1,同样的,将该sb1输入至第三对战格斗类ai游戏模型,以得到游戏角色b的动作概率分布为πb1,这时依据该动作概率分布,游戏角色b执行动作b1,然后进入下一个游戏局面,这时游戏角色a执行动作a2,游戏角色b执行动作b2,以此类推,一直到两个ai游戏角色决出胜负。假设最终游戏角色a经过n次战斗胜出,那么它对应的多个第一训练样本分别为:(sa1,πa1,1)、(sa2,πa2,1)…(san,πan,1),而游戏角色b对应的多个第二训练样本分别为:(sb1,πb1,-1)、(sb2,πb2,-1)…(sbn,πbn,-1),最终这些第一训练样本和第二训练样本可以构成如上所述的第一对战格斗类ai游戏模型的多个训练样本。

下面对上述可选方式二进行说明:

应理解的是,s410至s430与s310至s330相同,其内容可以参考s310至s330的解释说明,本申请对此不做限制。

由于失败方的第二训练样本中往往包含了很多能够明显避免导致失败的信息。因此,如图6所示,服务器可以上述多个第二训练样本中选择至少一个第二训练样本进行变异,其中,服务器可以随机选择至少一个第二训练样本,也可以按照一定的规则选择至少一个第二训练样本,总之,本申请对服务器如何选择至少一个第二训练样本不做限制。例如:服务器可以在上述多个第二训练样本中随机选择50%进行变异。其中,服务器可以根据第二训练样本对应的第二游戏局面信息对第二训练样本对应的第二动作概率分布进行调整,以得到第三动作概率分布。例如:当游戏角色b被攻击的时候,服务器确定该游戏角色可以选择跳跃或者格挡,如果根据当前局面下的动作概率分布得到的跳跃和格挡的概率并不高,服务器可以对跳跃和格挡的概率进行变异调整,如增加跳跃或者格挡的概率。这些变异之后的样本虽然不能保证游戏角色b一定会胜利,但是能够取得比失败更好的结果,因此服务器可以将该游戏角色b的获胜率标记为胜利与失败之间,记为0。基于此,服务器可以将上述多个第一训练样本、多个第二训练样本和第三训练样本构成上述多个训练样本,以训练第一对战格斗类ai游戏模型。

应理解的是,上述第二对战格斗类ai游戏模型可以是最终训练后的对战格斗类ai游戏模型,也可以是训练过程中形成的中间对战格斗类ai游戏模型,本申请对此不做限制。

应理解的是,关于第二对战格斗类ai游戏模型的输入和输出可参考第一对战格斗类ai游戏模型,本申请对此不做限制。

综上,在本申请中,服务器可以通过基于该对战格斗类ai游戏模型的两个ai游戏角色对弈,来训练对战格斗类ai游戏模型。第一,这种方式不依赖于人力,从而可以提高对战格斗类ai游戏模型的生成效率。第二,这种通过两个ai游戏角色的对弈来训练对战格斗类ai游戏模型的方式,可以适用于任何场景,包括难以用规则描述的场景。第三,针对不同的ai游戏角色,无需人工设计特定的对战格斗类ai游戏模型,只需要ai游戏角色自对弈即可生成该对战格斗类ai游戏模型,从而降低了人工维护的成本。第四,这种方式不依赖于人力,因此,游戏玩家很难发现游戏漏洞。第五,这种案发时可以产生丰富的策略变化,以满足高水平玩家的竞技陪玩需求。此外,如果采用本申请技术方案,那么服务器不需要获得真实玩家的数据,可以让产品在未上线的时候即可产生对战格斗类ai游戏模型。

可选的,在服务器获取到上述多个训练样本后,可以依次通过每个训练样本对第一对战格斗类ai游戏模型进行训练,以得到第二对战格斗类ai游戏模型,这种情况下,该第二对战格斗类ai游戏模型可以被理解为上述的中间对战格斗类ai游戏模型,或者是最终训练后的对战格斗类ai游戏模型。如果第二对战格斗类ai游戏模型为中间对战格斗类ai游戏模型,参考上述获取第一对战格斗类ai游戏模型的训练样本的过程,可以继续获取该第二对战格斗类ai游戏模型的训练样本,通过这些训练样本继续对第二对战格斗类ai游戏模型进行训练,以此类推,最终当满足训练结束条件时,得到最终的对战格斗类ai游戏模型。

可选的,该训练结束条件为训练结果达到最优,或者,训练次数达到预设次数,本申请对此不做限制。

下面通过示例对第一对战格斗类ai游戏模型的训练过程进行说明:

示例性的,图7为本申请实施例提供的第一对战格斗类ai游戏模型的训练方法的流程图,如图7所示,该方法包括如下步骤:

s710:通过第四训练样本训练第一对战格斗类ai游戏模型,以得到第四对战格斗类ai游戏模型;第四训练样本为多个训练样本中的任一个训练样本。

s720:将多个训练样本中除第四训练样本中的任一个训练样本作为新第四训练样本,将第四对战格斗类ai游戏模型作为新第一对战格斗类ai游戏模型,通过新第四训练样本训练新第一对战格斗类ai游戏模型,直至训练结束,以得到第二对战格斗类ai游戏模型。

其中,第四训练样本包括:第三游戏局面信息、第四动作概率分布和第一获胜率。

应理解的是,第四训练样本中的第四动作概率分布和第一获胜率都是确定数值。

可选的,服务器可以将第三游戏局面信息输入第一对战格斗类ai游戏模型中,以得第五动作概率分布和第二获胜率。根据第四动作概率分布、第五动作概率分布、第一获胜率和第二获胜率,训练第一对战格斗类ai游戏模型,以得到第四对战格斗类ai游戏模型。

应理解的是,这里的第五动作概率分布与第一对战格斗类ai游戏模型的模型参数有关,同样的,第二获胜率也是与第一对战格斗类ai游戏模型的模型参数有关。

可选的,服务器可以通过如下方式训练第一对战格斗类ai游戏模型,以得到第四对战格斗类ai游戏模型,但不限于此:

可选方式一:服务器计算第四动作概率分布和第二动作概率分布的交叉熵,并计算第一获胜率和第二获胜率的均方误差。根据交叉熵和均方误差,训练第一对战格斗类ai游戏模型,以得到第四对战格斗类ai游戏模型。

可选方式二:服务器计算第四动作概率分布和第二动作概率分布的均方误差,并计算第一获胜率和第二获胜率的均方误差。根据这两个均方误差,训练第一对战格斗类ai游戏模型,以得到第四对战格斗类ai游戏模型。

下面针对上述可选方式一进行说明:

服务器可以计算交叉熵和均方误差之和,得到求和结果,令求和结果最小,以训练第一对战格斗类ai游戏模型,得到第四对战格斗类ai游戏模型。

示例性的,目标函数如公式(2)

l=(z-v)2tlogp(2)

这里的目标函数分为两个部分,一个是第一获胜率和第二获胜率的均方误差(z-v)2,其中,z表示第一获胜率,v表示第二获胜率,该获胜率和第一对战格斗类ai游戏模型的参数有关,(z-v)2越小越好。另一个是第四动作概率分布和第二动作概率分布的交叉熵-πtlogp,其中,π表示第四动作概率分布,p表示第五动作概率分布,交叉熵可以衡量两个分布之间的差距,这两个分布的差距越小越好。

在本申请中,服务器可以使用梯度下降法,即通过如下公式(3)来优化第一对战格斗类ai游戏模型中的参数θ。

其中α为参数θ的更新步长,它可以是人为设定的超参数。为目标函数l的梯度,它由我们的训练样本计算得到,例如可以由tensorflow或者pytorch之类的软件计算得到。

需要说明的是,上述参数θ可以被理解为包括至少一个参数的参数集合。

应理解的是,服务器可以对上述目标函数进行变形。基于变形后的目标函数来优化第一对战格斗类ai游戏模型中的参数θ。

下面针对上述可选方式二进行说明:

服务器可以计算上述两个均方误差之和,得到求和结果,令求和结果最小,以训练第一对战格斗类ai游戏模型,得到第四对战格斗类ai游戏模型。

示例性的,目标函数如公式(4)

l=(z-v)2+(π-p)2(4)

这里的目标函数分为两个部分,一个是第一获胜率和第二获胜率的均方误差(z-v)2,其中,z表示第一获胜率,v表示第二获胜率,该获胜率和第一对战格斗类ai游戏模型的参数有关,(z-v)2越小越好。另一个是第四动作概率分布和第二动作概率分布的均方差(π-p)2,其中,π表示第四动作概率分布,p表示第五动作概率分布,交叉熵可以衡量两个分布之间的差距,这两个分布的差距越小越好。

在本申请中,服务器可以使用梯度下降法,即通过如下公式(5)来优化第一对战格斗类ai游戏模型中的参数θ。

其中α为参数θ的更新步长,它可以是人为设定的超参数。为目标函数l的梯度,它由我们的训练样本计算得到,例如可以由tensorflow或者pytorch之类的软件计算得到。

需要说明的是,上述参数θ可以被理解为包括至少一个参数的参数集合。

应理解的是,服务器可以对上述目标函数进行变形。基于变形后的目标函数来优化第一对战格斗类ai游戏模型中的参数θ。

综上,在本申请中,服务器可以通过基于该对战格斗类ai游戏模型的两个ai游戏角色对弈,来训练对战格斗类ai游戏模型,其效果可参考上一实施例的技术效果,对此不再赘述。

应理解的是,在服务器得到训练后的第二对战格斗类ai游戏模型之后,即可使用该第二对战格斗类ai游戏模型,下面对此进行说明:

图8为本申请实施例提供的ai游戏角色的动作确定方法的交互流程图,其中,该方法涉及服务器或者其他电子设备,以及目标ai游戏角色所在的客户端,如图8所示,该方法包括如下步骤:

s810:服务器获取目标ai游戏角色所在的第四游戏局面信息。

s820:服务器将第四游戏局面信息输入至第二对战格斗类ai游戏模型中,以输出目标ai游戏角色的第六动作概率分布。

s830:服务器向目标ai游戏角色对应的客户端输出第六动作概率分布。

s840:客户端根据第六动作概率分布执行相应动作。

可选的,第四游戏局面信息包括以下至少一项:目标ai游戏角色的位置信息、血量信息、技能信息、目标ai游戏角色与其他游戏角色的距离信息、障碍物信息、时间信息、得分信息。

可选的,第四游戏局面信息还包括以下至少一项,但不限于此:该目标ai游戏角色可以获取到的对手侧的位置信息、血量信息、得分信息、技能信息等。

可选的,客户端在获取到第六动作概率分布之后,可以选择概率最大的动作,并执行该动作。例如:根据第六动作概率分布确定的向左移动、向右移动、向上移动、攻击、跳跃、格挡对应的执行概率分别为0.2、0.3、0.6、0.8、0.3、0.2。基于此,服务器选择最大概率0.8对应的攻击动作,并执行该攻击动作。

综上,在本申请中,服务器可以基于训练后的对战格斗类ai游戏模型确定目标ai游戏角色的动作概率分布,由于该模型是通过ai游戏角色自对弈训练得到的,因此,其准确度较高,基于此,使得客户端可以得到准确的动作判断。

下面通过示例对上述模型生成过程和使用过程进行说明:

假设在游戏中选定两个游戏角色,分别为游戏角色a和游戏角色b,然后利用随机初始化第一对战格斗类ai游戏模型,并对两个角色进行控制,让两个角色相互对打,直至至比赛结束以生成样本,假设游戏a获胜,我们可以得到多个第一训练样本:(sa1,πa1,1)、(sa2,πa2,1)…(san,πan,1),并且可以获得游戏角色b对应的多个第二训练样本:(sb1,πb1,-1)、(sb2,πb2,-1)…(sbn,πbn,-1)。服务器可以随机选择至少一个第二训练样本,也可以按照一定的规则选择至少一个第二训练样本,对这些第二训练样本进行变异,得到样本:

服务器通过上述第一训练样本、第二训练样本、变异后的训练模型对第一对战格斗类ai游戏模型进行训练,以更新第一对战格斗类ai游戏模型的参数θ,最终得到第二对战格斗类ai游戏模型。

基于此,服务器可以将使用第二对战格斗类ai游戏模型。具体而言,服务器可以从客户端获取游戏状态数据s,通过modelθ(s)=(p,v)得到动作概率分布p和获胜率v,并将该动作概率分布p发送给客户端,客户端选取概率最大的动作进行输出,从而完成与玩家的交互竞技。

图9为本申请实施例提供的一种对战格斗类ai游戏模型的生成装置的示意图,如图9所示,该对战格斗类ai游戏模型的生成装置包括:

第一获取模块910,用于获取第一对战格斗类ai游戏模型。

生成模块920,用于通过基于第一对战格斗类ai游戏模型的两个ai游戏角色的对弈,以生成第一对战格斗类ai游戏模型的多个训练样本。

训练模块930,用于根据多个训练样本训练第一对战格斗类ai游戏模型,以得到第二对战格斗类ai游戏模型。

其中,每个训练样本包括:游戏局面信息、动作概率分布和获胜率。

可选的,动作概率分布涉及的动作包括:向左移动、向右移动、向上移动、攻击、跳跃、格挡。

一种可实现方式,生成模块920具体用于:初始化第一对战格斗类ai游戏模型中的参数,以得到第三对战格斗类ai游戏模型。在两个ai游戏角色的每轮对弈过程中,将当前游戏局面对应的游戏局面信息输入第三对战格斗类ai游戏模型,以得到两个ai游戏角色各自的动作概率分布,并控制两个ai游戏角色根据各自的动作概率分布执行对应的动作,以进入下一个游戏局面,将下一个游戏局面作为新的当前游戏局面,直至两个ai游戏角色决出胜负。生成两个ai游戏角色中胜利方对应的多个第一训练样本和失败方对应的多个第二训练样本。其中,任一个第一训练样本包括:第一游戏局面信息、第一动作概率分布和1。第一游戏局面信息是每轮对弈过程中胜利方所获取到的任一游戏局面信息。第一动作概率分布是胜利方在第一游戏局面信息下的动作概率分布。1表示胜利方的获胜率为1。任一个第二训练样本包括:第二游戏局面信息、第二动作概率分布和-1。第二游戏局面信息是每轮对弈过程中失败方所获取到的任一游戏局面信息。第二动作概率分布是失败方在第一游戏局面信息下的动作概率分布。-1表示失败方的获胜率为-1。

另一种可实现方式,生成模块920具体用于:初始化第一对战格斗类ai游戏模型中的参数,以得到第三对战格斗类ai游戏模型。在两个ai游戏角色的每轮对弈过程中,将当前游戏局面对应的游戏局面信息输入第三对战格斗类ai游戏模型,以得到两个ai游戏角色各自的动作概率分布,并控制两个ai游戏角色根据各自的动作概率分布执行对应的动作,以进入下一个游戏局面,将下一个游戏局面作为新的当前游戏局面,直至两个ai游戏角色决出胜负。生成两个ai游戏角色中胜利方对应的多个第一训练样本和失败方对应的多个第二训练样本。在多个第二训练样本中选择至少一个第二训练样本。针对至少一个第二训练样本中的任一个第二训练样本,根据第二训练样本对应的第二游戏局面信息,对第二训练样本对应的第二动作概率分布进行调整,以得到第三动作概率分布。生成第三训练样本。其中,第三训练样本包括:第二训练样本对应的第二游戏局面信息、第三动作概率分布和0,0表示获胜率为0。

可选的,训练模块930具体用于:通过第四训练样本训练第一对战格斗类ai游戏模型,以得到第四对战格斗类ai游戏模型。第四训练样本为多个训练样本中的任一个训练样本。将多个训练样本中除第四训练样本中的任一个训练样本作为新第四训练样本,将第四对战格斗类ai游戏模型作为新第一对战格斗类ai游戏模型,通过新第四训练样本训练新第一对战格斗类ai游戏模型,直至训练结束,以得到第二对战格斗类ai游戏模型。其中,第四训练样本包括:第三游戏局面信息、第四动作概率分布和第一获胜率。

可选的,训练模块930具体用于:将第三游戏局面信息输入第一对战格斗类ai游戏模型中,以得第五动作概率分布和第二获胜率。根据第四动作概率分布、第五动作概率分布、第一获胜率和第二获胜率,训练第一对战格斗类ai游戏模型,以得到第四对战格斗类ai游戏模型。

可选的,训练模块930具体用于:计算第四动作概率分布和第二动作概率分布的交叉熵。计算第一获胜率和第二获胜率的均方误差。根据交叉熵和均方误差,训练第一对战格斗类ai游戏模型,以得到第四对战格斗类ai游戏模型。

可选的,训练模块930具体用于:计算交叉熵和均方误差之和,得到求和结果。令求和结果最小,以训练第一对战格斗类ai游戏模型,得到第四对战格斗类ai游戏模型。

可选的,对战格斗类ai游戏模型的生成装置还包括:

第二获取模块940,用于获取目标ai游戏角色所在的第四游戏局面信息。

处理模块950,用于将第四游戏局面信息输入至第二对战格斗类ai游戏模型中,以输出目标ai游戏角色的第六动作概率分布。

输出模块960,用于向目标ai游戏角色对应的客户端输出第六动作概率分布。

可选的,第四游戏局面信息包括以下至少一项:目标ai游戏角色的位置信息、血量信息、技能信息、目标ai游戏角色与其他游戏角色的距离信息、障碍物信息、时间信息、得分信息。

应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图9所示的对战格斗类ai游戏模型的生成装置可以执行上述服务器对应的方法实施例,并且对战格斗类ai游戏模型的生成装置中的各个模块的前述和其它操作和/或功能分别为了实现方法实施例中各个方法中的相应流程,为了简洁,在此不再赘述。

上文中结合附图从功能模块的角度描述了本申请实施例的对战格斗类ai游戏模型的生成装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。

图10是本申请实施例提供的对战格斗类ai游戏模型的生成设备1000的示意性框图,其中,该对战格斗类ai游戏模型的生成设备可以是服务器或者其他电子设备,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器,本申请对此不做限制。

如图10所示,该对战格斗类ai游戏模型的生成设备1000可包括:

存储器1010和处理器1020,该存储器1010用于存储计算机程序,并将该程序代码传输给该处理器1020。换言之,该处理器1020可以从存储器1010中调用并运行计算机程序,以实现本申请实施例中的方法。

例如,该处理器1020可用于根据该计算机程序中的指令执行上述方法实施例。

在本申请的一些实施例中,该处理器1020可以包括但不限于:

通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。

在本申请的一些实施例中,该存储器1010包括但不限于:

易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。

在本申请的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器1010中,并由该处理器1020执行,以完成本申请提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该对战格斗类ai游戏模型的生成设备中的执行过程。

如图10所示,该对战格斗类ai游戏模型的生成设备还可包括:

收发器1030,该收发器1030可连接至该处理器1020或存储器1010。

其中,处理器1020可以控制该收发器1030与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器1030可以包括发射机和接收机。收发器1030还可以进一步包括天线,天线的数量可以为一个或多个。

应当理解,该对战格斗类ai游戏模型的生成设备中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。

本申请还提供一种ai游戏系统,图11为本申请实施例提供的ai游戏系统的示意图,如图11所示,该系统包括:服务器1110和客户端1120,其中,服务器1110用于实现上述的对战格斗类ai游戏模型的生成方法,其内容和效果可参考方法实施例,本申请对此不再赘述。

本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。

当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digitalvideodisc,dvd))、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。

以上该,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

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