一种游戏模型训练方法、装置、电子设备及介质与流程

文档序号:21449087发布日期:2020-07-10 17:41阅读:163来源:国知局
一种游戏模型训练方法、装置、电子设备及介质与流程

本申请涉及游戏技术领域,尤其是涉及一种游戏模型训练方法、装置、电子设备及介质。



背景技术:

电子游戏中存在有各种各样的机器人,这些机器人可以作为对手与玩家进行对抗;可以作为玩家的队友,辅助玩家进行游戏;也可以是在玩家暂离的时候,接替玩家来对玩家所控制的角色下达操作指令,以接管该角色。

目前,机器人的生成方式大概可以分为两种,分别是人工编程和机器学习。人工编程的方式指的是机器人的动作指令完全是由编程人员来设计的,编程人员可以在机器人的程序代码中写明在何种环境条件下执行何种动作。机器学习的方式指的是基于机器人的对抗数据(可以是机器人与机器人的对抗数据,也可以是机器人与玩家的对抗数据)对初始的机器人进行训练,训练后得到的机器人就可以针对各种环境条件确定出适合的动作了。

一般情况下,对于玩法比较简单的游戏而言,通常会采用人工编程的方式来生成游戏中所使用的机器人,对于玩法比较复杂的游戏而言,通常会采用机器学习的方式来生成游戏中所使用的机器人。



技术实现要素:

有鉴于此,本申请的目的在于提供一种游戏模型训练方法、装置及电子设备,以减小游戏文件中机器人数据占用的存储空间。

在一些实现方式中,本申请实施例提供了一种游戏模型训练方法,包括:

针对每个训练完成的角色模型,将预设的第一环境信息输入到该角色模型中,以确定该角色模型针对第一环境信息所输出的第一响应信息;

针对每个训练完成的角色模型,根据该角色模型的角色类型、第一环境信息和第一响应信息,生成该角色模型的第一训练样本;

分别使用每个角色模型的第一训练样本对综合模型进行训练。

在一些实现方式中,本申请实施例提供了第一方面的第一种可能的实施方式,其中,按照如下方式训练角色模型:

针对每个角色模型,将预设的第二环境信息输入到该角色模型中,以确定该角色模型针对第二环境信息所输出的第二响应信息;

针对每个角色模型,根据该角色模型所对应的第二环境信息和第二响应信息生成第二训练样本;

针对每个角色模型,使用该角色模型所对应的第二训练样本对该角色模型进行训练。

在一些实现方式中,本申请实施例提供了第一方面的第二种可能的实施方式,其中,针对每个角色模型,使用该角色模型所对应的第二训练样本对该角色模型进行训练,包括:

针对每个角色模型,分别计算该角色模型的每个第二训练样本所对应的拟合误差;

针对每个角色模型,根据该角色模型的每个第二训练样本所对应的拟合误差,从第二训练样本中选择出目标第二训练样本;

针对每个角色模型,根据该角色模型所对应的目标第二训练样本对该角色模型进行训练。

在一些实现方式中,本申请实施例提供了第一方面的第三种可能的实施方式,其中,分别使用每个角色模型的第一训练样本对综合模型进行训练,包括:

根据每个第一训练样本的角色类型和第一响应信息,对第一训练样本进行分组,以确定多组样本集合;每组样本集合中的第一训练样本的角色类型和第一响应信息均是相同的;

针对每组样本集合,根据该组样本集合中的第一训练样本的数量,对该组样本集合中的第一训练样本的数量进行调整;

分别使用所述调整后的每组样本集合中的第一训练样本对综合模型进行训练。

在一些实现方式中,本申请实施例提供了第一方面的第四种可能的实施方式,其中,针对每组样本集合,根据该组样本集合中的第一训练样本的数量,对该组样本集合中的第一训练样本的数量进行调整,包括:

针对每组样本集合,若该组样本集合中的第一训练样本的数量超过预设数量阈值,则对该组样本集合中的第一训练样本进行下采样处理,以调整该组样本集合中的第一训练样本的数量;

针对每组样本集合,若该组样本集合中的第一训练样本的数量低于预设数量阈值,则对该组样本集合中的第一训练样本进行上采样处理,以调整该组样本集合中的第一训练样本的数量。

在一些实现方式中,本申请实施例提供了第一方面的第五种可能的实施方式,其中,针对每组样本集合,若该组样本集合中的第一训练样本的数量超过预设数量阈值,则对该组样本集合中的第一训练样本进行下采样处理,以调整该组样本集合中的第一训练样本的数量,包括:

针对每组样本集合,若该组样本集合中的第一训练样本的数量高于预设数量阈值,则根据该组样本集合中第一训练样本的第一环境信息的分布情况,确定需要删除的目标第一训练样本;

针对每组样本集合,将该组样本集合中的目标第一训练样本进行删除,以调整该组样本集合中的第一训练样本的数量。

在一些实现方式中,本申请实施例提供了第一方面的第六种可能的实施方式,其中,针对每组样本集合,若该组样本集合中的第一训练样本的数量低于预设数量阈值,则对该组样本集合中的第一训练样本进行上采样处理,以调整该组样本集合中的第一训练样本的数量,包括:

针对每组样本集合,若该组样本集合中的第一训练样本的数量低于预设数量阈值,则根据该组样本集合中第一训练样本的第一环境信息的分布情况,生成该组样本集合的第三训练样本;所述该组样本集合的第三训练样本中的角色类型与第一训练样本的角色类型相同;所述该组样本集合的第三训练样本中的第一响应信息与第一训练样本的第一响应信息相同;

针对每组样本集合,将该组样本集合所对应的第三训练样本添加到该组样本集合中,以调整该组样本集合中的第一训练样本的数量。

在一些实现方式中,本申请实施例还提供一种游戏模型训练装置,包括:

第一输入模块,用于针对每个训练完成的角色模型,将预设的第一环境信息输入到该角色模型中,以确定该角色模型针对第一环境信息所输出的第一响应信息;

第一生成模块,用于针对每个训练完成的角色模型,根据该角色模型的角色类型、第一环境信息和第一响应信息,生成该角色模型的第一训练样本;

第一训练模块,用于分别使用每个角色模型的第一训练样本对综合模型进行训练。

在一些实现方式中,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述游戏模型训练方法中的步骤。

在一些实现方式中,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述游戏模型训练方法中的步骤。

本申请实施例提供的一种游戏模型训练方法,先针对每个训练完成的角色模型,将预设的第一环境信息输入到该角色模型中,以确定该角色模型针对第一环境信息所输出的第一响应信息;而后,针对每个训练完成的角色模型,根据该角色模型的角色类型、第一环境信息和第一响应信息,生成该角色模型的第一训练样本;最后分别使用每个角色模型的第一训练样本对综合模型进行训练。本申请通过已训练完成的角色模型来生成训练样本,并通过这些训练样本对综合模型进行综合训练,使得训练完成的综合模型可以替代各个角色模型来使用,进而降低了游戏文件中模型数据的存储量。

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

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例所提供的一种游戏模型训练方法的流程图;

图2示出了本申请实施例所提供的角色模型训练方法的流程图;

图3示出了本申请实施例所提供的第一神经网络的结构示意图;

图4示出了本申请实施例所提供的一种游戏模型训练装置的结构示意图;

图5示出了本申请实施例所提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

随着玩家水平的提高和技术的发展,电子游戏的玩法越来越复杂,游戏设计的难度也越来越高,游戏研发周期也越来越长。为了降低游戏研发的周期,游戏中所使用到的机器人通常会采用机器学习的方式来自动生成。采用机器学习的方式生成机器人的时候,游戏设计者只需要设计好训练的程序,机器人就可以自动的完成训练,这大大地降低了游戏设计者的研发周期。

但在设计游戏的时候,只使用机器学习的方式来生成机器人的方式依然不够理想,主要是按照传统方案来设计游戏的时候,需要为每个游戏角色分别生成一个机器人,而在一个复杂的游戏中,必然有着大量的游戏角色,这样采用传统方案来设计游戏的时候,游戏文件中就需要储存大量的关于机器人的数据(如果有1000个游戏角色,就需要储存1000个机器人数据),这大大增加了游戏文件总量,也降低了游戏设备读取游戏文件的速度。

针对上述情况,本领域技术人员会采用对机器人进行压缩的方式来应对,具体来说,在压缩时,需要先训练一个所有角色都共用的基础模型,在训练完基础模型之后,在基础模型的基础上,针对每个角色的特殊性,人工为每个角色都增加一些新的策略,进而生成每个角色所对应的机器人,采用此种方式设计出来的机器人共性很强(基础模型都是相同的),差异性很小(增加的新策略是各个机器人独有的,但新策略相对于基础模型来说,是很简单的),占用存储空间较小(每个机器人的基础模型都是相同的,因此不论有多少角色,基础模型都储存一次,每个角色的特殊部分单独储存)。

但本申请发明人认为,这种生成机器人的方式并不理想,主要是共用基础模型导致了机器人的同质化严重,每个机器人的行为特点都很相似。但如果不采用这种先生成基础模型,再针对每个角色进行特殊化的方式,则游戏文件中机器人数据占用的存储空间过大。针对上述情况,本申请实施例提供了一种游戏模型训练方法来解决这一问题。

如图1所示的一种游戏模型训练方法的流程图中,游戏模型训练方法可以包括以下步骤:

s101:针对每个训练完成的角色模型,将预设的第一环境信息输入到该角色模型中,以确定该角色模型针对第一环境信息所输出的第一响应信息;

s102:针对每个训练完成的角色模型,根据该角色模型的角色类型、第一环境信息和第一响应信息,生成该角色模型的第一训练样本;

s103:分别使用每个角色模型的第一训练样本对综合模型进行训练。

步骤s101中,角色模型指的是电子游戏中的机器人,对角色模型的训练实际上指的就是针对机器人的训练。角色模型可以是编程人员预先编写输入的,也可以是从某些游戏测试过程中得到的(系统经过自我学习后得到的)。

这些角色模型所在游戏的游戏类型有很多种,比如,运动类、即时对战类等,并且这些角色模型所在的游戏可以是相同的游戏,也可以是不同的游戏。

具体地,游戏类型可以包括棋牌类、体育对抗类、决斗类等。此处,棋牌类游戏可以包括象棋、跳棋、纸牌、麻将等。体育对抗类游戏可以包括篮球、足球、冰球等。其中,决斗类游戏主要是指一方获胜是以另一方的死亡(资源耗尽)或认输为前提的游戏,如生存类游戏、格斗类游戏等。这些游戏通常都是有着固有的角色类型,同时也有着固有的胜负决策方式。如生存类游戏的胜负决策方式主要是看存活时间,篮球类等球类游戏主要是依据得分高低来决定胜负。

步骤s101中,第一环境信息指的是用于使角色模型进行决策的信息,这些信息主要可以分为两种,一种是角色模型所处的虚拟游戏环境中的信息(如风速、风力等);另一种是与角色模型进行对抗(在游戏中进行模拟对抗)的陪练模型的信息(如陪练角色模型的状态、动作等)。一般来说,第一环境信息的数量应当是足够多的,这样才能够保证生成的第一响应信息足够多,使得步骤s102中所得到的第一训练样本足够丰富,以便于后续进行具体的训练。

第一响应信息指的是每个训练完成的角色模型针对输入的第一环境信息所做出的动作(如躲避、跑跳等)。具体来说,如果是决斗类游戏,第一环境信息可以认为是陪练模型在虚拟游戏环境中对角色模型所做出的进攻动作,第一响应信息则可以认为是角色模型在虚拟游戏环境中对进攻动作所做出的反击动作。

这里,每个角色模型是分别进行训练的,每个角色模型在训练时,可以都使用相同的基础模型(某个空白模型),而后分别使用不同角色所对应的训练数据对相应的角色模型进行训练,从而分别得到训练完成的角色模型。

具体来说,在执行步骤s101之前,可以先对每个角色模型分别进行训练,从而得到训练完成的角色模型。

在一种可行的实施方式中,每个训练完成的角色模型都可以按照如图2所示的角色模型训练方法的流程图中的步骤来执行,也就是本申请所提供的游戏模型训练方法,在步骤s101前,还包括如下步骤:

s201:针对每个角色模型,将预设的第二环境信息输入到该角色模型中,以确定该角色模型针对第二环境信息所输出的第二响应信息;

s202:针对每个角色模型,根据该角色模型所对应的第二环境信息和第二响应信息生成第二训练样本;

s203:针对每个角色模型,使用该角色模型所对应的第二训练样本对该角色模型进行训练。

在步骤s201中,在对角色模型进行训练时,每个角色模型都是分别进行训练的。比如,对于需要训练的决斗类的目标角色模型,可以选择已经训练好的其他决斗类的角色模型或者是该目标角色模型的历史版本/当前版本作为该目标角色模型陪练模型,然后使用陪练模型与目标角色模型进行对抗,并使用对抗的结果数据对目标角色模型进行训练。具体进行对抗的时候,可以是目标角色模型每次只与一个陪练模型进行对抗,也可以同时与多个陪练角色模型进行对抗。将陪练模型与该目标角色模型进行对抗后,可以得到目标角色模型所输出的响应动作,而后,根据该响应动作可以生成关于该目标角色模型的损失函数,并最后利用该损失函数对目标角色模型进行调整,以达到训练目标角色模型的目的。

这里,第二环境信息可以指的是用于使角色模型进行决策的信息,这些信息主要可以分为两种,一种是角色模型所处的虚拟游戏环境中信息(如风速、风力等);另一种是陪练模型的信息,如陪练角色模型的状态、动作等。针对不同的游戏类型,第二环境信息可以不同。例如,在决斗类游戏中,第二环境信息可以是陪练角色模型释放的某一个技能(如劈砍、跳跃等),又如在棋类游戏中,第二环境信息可以是陪练角色模型移动棋子的行为。

第二响应信息可以指的是每个角色模型针对输入的第二环境信息所做出的动作(如躲避、跑跳等)。

训练角色模型的过程实际上是训练该角色模型所对应的神经网络的过程,因此,步骤s201实际上是,针对每个角色模型,将该角色模型所对应的预设的第二环境信息输入到每个角色模型所对应的第一神经网络中之后,该第一神经网络可以输出对应的第二响应信息。

如图3所示,示出了某一种结构的第一神经网络的结构示意图中,图3中的第一神经网络,由前至后,依次包括:第一卷积层、第二卷积层、第一隐层、第二隐层、第三隐层和输出层。

在一些实施方式中,第一卷积层的卷积核应当比第二卷积层的卷积核更大,具体来说第一卷积层的卷积核可以是5*5,卷积核个数为100个;第二卷积层的卷积核可以是3*3,卷积核个数为50个。

在一些实施方式中,第一隐层、第二隐层和第三隐层的节点数应当依次减小,例如第一隐层与第二隐层的节点数之比可以是4:1-1.5:1,具体来说,第一隐层与第二隐层的节点数之比可以是2:1;类似的,第二隐层与第三隐层的节点数之比可以是4:1-1.5:1,具体来说,第二隐层与第三隐层的节点数之比可以是2:1。更具体来说,第一隐层、第二隐层和第三隐层的节点数可以分别为400,200,100,或者说第一隐层的隐层宽度为400,第二隐层的隐层宽度为200,第三隐层的隐层宽度为100。

在经过上述步骤s101的训练之后,每个角色都会得到对应的角色模型。

在步骤s202中,针对每个角色模型,输入的第二环境信息和针对该第二环境信息输出的第二响应信息需要共同作为一个第二训练样本,也就是每个第二训练样本中都应当由一个第二环境信息和一个第二响应信息组成。

针对每个角色模型,可以生成多个第二训练样本,然后可以将生成第二训练样本添加到样本池中,而后步骤s203中,再从样本池中选择第二训练样本对角色模型进行训练。具体的,使用的第二训练样本训练角色模型的时候,可以是每次拿到第二训练样本都进行一次训练,也可以是在得到了大量的第二训练样本之后,从这大量的第二训练样本中选择出训练所要使用的样本。具体来说,选择的时候可以采用某个选择算法进行,也可以随机选择。

在具体实施中,每个训练完成的角色模型都可以按照上述步骤s201-s203的方式训练得到,即分别使用不同角色所对应的第二训练样本对相应的角色模型进行训练,从而分别得到训练完成每个角色模型。

如前文中的说明,在使用第二训练样本对角色模型进行训练的时候,可以是使用每一个第二训练样本对角色模型进行训练,也可以是有选择性的使用某个,或某些第二训练样本对角色模型进行训练。实际实现时,如果第二训练样本的数量非常多,则通常不会使用所有的第二训练样本来训练角色模型。因此,可以设置一个选择算法,来从全部的第二训练样本中选择出实际训练角色模型所使用的第二训练样本。

第一响应信息指的是每个训练完成的角色模型针对输入的预设的第一环境信息所做出的动作(如躲避、跑跳等)。

在一种可能的实施方式中,对第二训练样本的筛选可以按照以下步骤执行:

s2031:针对每个角色模型,分别计算该角色模型的每个第二训练样本所对应的拟合误差;

s2032:针对每个角色模型,根据该角色模型的每个第二训练样本所对应的拟合误差,从第二训练样本中选择出目标第二训练样本;

s2033:针对每个角色模型,根据该角色模型所对应的目标第二训练样本对该角色模型进行训练。

在步骤s2031中,需要每个第二训练样本的拟合误差,进而通过该拟合误差可以达到对该第二训练样本进行评价的目的。

第二训练样本的拟合误差的大小,可以表征使用该样本对模型训练的价值的高低,进而可以表征被选择的概率的大小。拟合误差具体指的是角色模型估计当前动作(针对输入到角色模型中的环境信息所做出的动作)的期望收益与实际收益之间的误差。具体来说,实际收益是真实执行完当前动作环境反馈的收益与角色模型估计的后续收益进行叠加后的结果;真实执行完当前动作环境反馈的收益指的是实际输入到游戏环境中所得到的反馈结果的收益;角色模型估计的后续收益指的是做完当前动作(角色模型所输出的动作)后,角色模型对后续状态和后续动作期望收益的估计结果。

具体地,第二训练样本的拟合误差越大时,则表明该第二训练样本被选择的概率越大;第二训练样本的拟合误差越小,则表明该第二训练样本被选择的概率越小。也就是,对模型训练起到的贡献越大,则越应当选择,对模型训练起到的贡献越小,则越不应当选择。

因此,在步骤s2032中,可以直接依据拟合误差的大小来决定使用哪个第二训练样本来训练角色模型。一般来说都是选择拟合误差最大的一个或几个第二训练样本来训练角色模型,或者是选择拟合误差的数值超过预定数值的第二训练样本来训练角色模型。

具体实现时,可以对步骤s2031中计算出的每个第二训练样本的拟合误差按照由大到小的顺序进行排序。然后,从排序好的第二训练样本中按照拟合误差由大到小的顺序选择序位靠前的多个的第二训练样本作为目标第二训练样本,后续就可以使用选择出的目标第二训练样本来训练角色模型了。当然,也可以是设定一个拟合误差的阈值,如果哪个第二训练样本的拟合误差超过该阈值,则将该第二训练样本作为目标第二训练样本。

最后,在步骤s2033中,可以利用目标第二训练样本来计算损失函数,而后利用损失函数训练该角色模型,具体实现时,可以使用梯度下降法来对角色模型中的参数进行迭代优化,以完成角色模型的训练。

前文中叙述了训练角色模型,并利用训练完成的角色模型来确定第一环境信息和对应的第一响应信息的过程。而后,在步骤s102中,针对每个训练完成的角色模型,可以根据步骤s101中得到的该角色模型所对应的第一环境信息和第一响应信息来形成第一训练样本。具体来说,每个第一训练样本中都应当有一个第一环境信息、一个第一响应信息和角色类型,当然,对于任意第一训练样本中的第一响应信息,均是根据其所在的训练样本中的第一环境信息得到的。

角色类型指的是角色模型所对应的虚拟角色的类型。通常情况下,不同角色类型的虚拟角色应当在动作技能方面有差异。如冒险类游戏中,常见的角色类型如战士、刺客、法师等。如在篮球类游戏中,常见的角色类型有前锋、中锋等(当然,也可以将某个球队这一整体认为是一个角色类型,这里,角色类型就可以是a球队、b球队)。又如在枪战类游戏中,不同角色类型的虚拟角色可以使用不同的枪械等等。

不同角色类型的虚拟角色所具有的能力是有差异的,如战士所具有的技能通常是法师所没有的(法师无法使用战士的技能),法师所具有的技能通常是刺客所没有的(刺客无法使用法师的技能)。又如,篮球类游戏中,不同角色类型的虚拟角色的体力值、投篮准确度是不同的。

在具体实施中,每个训练完成的角色模型所对应的角色类型可以通过角色身份标识来表征。

步骤s103中,综合模型指的是未经过训练,或者是未训练完成的模型。综合模型的模型参数可以与角色模型的模型参数可以是相同或相似的,为了进一步降低模型体积,综合模型的模型参数可以比角色模型的模型参数更小一些。此处,模型参数如卷积层的卷积核的大小,卷积层的数量,隐层中节点的数量、隐层的数量等。由于模型参数的种类比较多,因此,为了降低综合模型的大小,并不必然要求综合模型的每个模型参数都比角色模型的模型参数更小,只要综合模型整体所占用的空间更小,同时也能够保证基本的运算精度即可。

在某些情况下,综合模型的多个模型参数中的至少一个比角色模型中相应的模型参数更小,此处模型参数包括:卷积层的卷积核的大小、卷积层的数量、隐层的数量和隐层中节点数的数量。一般来说,在综合模型中的模型参数可以分成两类,一类是与角色模型的模型参数的数值相等的模型参数,一类是与角色模型的模型参数的数值更小的模型参数。

在使用每个角色模型的第一训练样本对综合模型进行训练之后,综合模型就可以学习到每一个角色模型所学习到的结果,进而,在使用模型的时候,就可以通过综合模型来替代全部的角色模型。即,在需要角色模型进行决策的时候,可以使用训练完成的综合模型来替代每个角色模型进行决策。如此,在游戏文件中所保存的模型数据就只有一个综合模型的数据了,而不需要保存每个角色模型的数据。

一般来说,在使用第一训练样本对综合模型进行训练的时候,可以在步骤s102执行完毕后直接进行训练。但某些时候,为了达到某些训练目的,则需要对训练样本的分布进行调控,以达到使综合模型具有某种特性的目的。

具体来说,在通常情况下,为了保证综合模型的均衡度,会期望训练所使用的每种训练样本的数量都是大致均衡的。如果训练样本分布不均的话,则有可能导致训练完成的综合模型会更多的执行某一种动作,或者说综合模型会更倾向于生成某一种响应信息。

但在某些情况下,出于某些特定因素的考虑(如某些特定功能的游戏中,更期望做出虚拟角色做出某些动作),则会有倾向的增加执行某动作(生成指定响应信息)的样本数量。

例如,针对决斗类游戏,游戏玩家更期望机器人在面对对方的进攻动作时,做出对进攻动作的反击动作,因此在具体实施时,可以适当减少执行防御动作的样本数量,而增加执行反击动作的样本熟练。

进而,在一种可能的实施方式中,可以按照以下步骤对综合模型进行训练:

s1031:根据每个第一训练样本的角色类型和第一响应信息,对第一训练样本进行分组,以确定多组样本集合;每组样本集合中的第一训练样本的角色类型和第一响应信息均是相同的;

s1032:针对每组样本集合,根据该组样本集合中的第一训练样本的数量,对该组样本集合中的第一训练样本的数量进行调整;

s1033:分别使用所述调整后的每组样本集合中的第一训练样本对综合模型进行训练。

在步骤s1031中,主要是按照第一训练样本中的角色类型和第一响应信息对第一训练样本进行分组。此处的分组可以是指将不同的第一训练样本调整存储位置,也可以是指对第一训练样本根据角色类型和第一响应信息进行统计。由于后续步骤中对并不对第一训练样本的存储位置有要求,因此,具体实现时,通常只是对第一训练样本根据角色类型和第一响应信息进行统计。

在步骤s1032中,由于每个角色模型的战斗策略有所不同,并且分组是根据角色类型和第一响应信息进行的,因此,对于属于同一角色类型的多组训练样本集合而言,如果某一组样本集合中的训练样本过多,则使用这些组训练样本对综合模型进行训练后,就可能导致综合模型在行为选择上有一定的倾向性。也就是,如果不同组样本集合中的样本数量不均衡,就可能导致综合模型会更大概率地出现某个第一响应信息,导致综合模型训练完成之后,更多地决策出应该使用该第一响应信息的行为,使得战斗策略训练不均衡。

例如,有两组训练样本,第一组训练样本中的每个样本的第一响应信息都是踢腿;第二组训练样本中的每个样本的第一响应信息都是跳跃;如果第一组训练样本中共有100个训练样本,第二组训练样本中共有10个训练样本,那么使用这两组训练样本对综合模型进行训练后,在使用综合模型的时候,综合模型更容易输出踢腿作为响应信息。这主要是由于其在进行学习的时候学习了更多的踢腿的样本,而忽略了其他的样本。

又如,a角色模型所对应的5组训练样本(训练样本组1-5),这5组训练样本的第一环境信息均为打击力量,第一组训练样本中有100个打击力量为20的训练样本,第二组训练样本中有300个打击力量为40的训练样本,第三组训练样本中有1000个打击力量为60的训练样本,第四组训练样本中有200个打击力量为60的训练样本,第三组训练样本中有100个打击力量为60的训练样本。

由于打击力量为60的训练样本过多,因此,如果直接使用目前的5组训练样本对综合模型进行训练,则会导致综合模型在实际使用的时候更多的会决策出打击力量为60的动作。进而,为了避免出现这种情况,应当对不同组的训练样本进行删除或增加,以使得每组训练样本的数量是大致相同的。

由此,为了均衡综合模型对每种战斗策略的选择概率,可以根据该组样本集合中的第一训练样本的数量,对该组样本集合中的第一训练样本的数量进行调整。

在一种可能的实施方式中,可以根据每组样本集合中第一训练样本的数量是否超过预设数量阈值(预设数量阈值可以是人为地根据游戏开发需求设置的,具体数量的大小可以根据实际情况发生改变),对该组样本集合中的第一训练样本的数量进行相应地调整,可以包括两种情况:

第一种情况:针对每组样本集合,若该组样本集合中的第一训练样本的数量超过预设数量阈值,则对该组样本集合中的第一训练样本进行下采样处理,以调整该组样本集合中的第一训练样本的数量。

针对上述第一种对每组样本集合中的第一训练样本的数量进行调整情况,在具体实施时,可以包括以下步骤:

s10321:针对每组样本集合,若该组样本集合中的第一训练样本的数量高于预设数量阈值,则根据该组样本集合中第一训练样本的第一环境信息的分布情况,确定需要删除的目标第一训练样本;

s10322:针对每组样本集合,将该组样本集合中的目标第一训练样本进行删除,以调整该组样本集合中的第一训练样本的数量;

在步骤s10321中,第一环境信息的分布情况可以指的是第一环境信息的密度或占比的情况。

当某第一环境信息的占比较大时,容易造成训练完成的综合模型在其他第一环境信息下,仍决策出与该第一环境信息相对应的第一响应信息,导致综合模型的训练不均衡。因此,可以根据该组样本集合中第一训练样本的第一环境信息的密度、占比等情况,确定密度或者占比较大的第一训练样本为需要删除的目标第一训练样本。

在步骤s10322中,通过对密度或者占比较大的第一训练样本进行删除,可以均衡该组样本集合中的第一训练样本中不同的第一环境信息的密度或占比,使得调整后的每组样本集合更能对综合模型进行全面的训练。

第二种情况:针对每组样本集合,若该组样本集合中的第一训练样本的数量低于预设数量阈值,则对该组样本集合中的第一训练样本进行上采样处理,以调整该组样本集合中的第一训练样本的数量。

针对上述第二种对每组样本集合中的第一训练样本的数量进行调整情况,在具体实施时,可以包括以下步骤:

s10323:针对每组样本集合,若该组样本集合中的第一训练样本的数量低于预设数量阈值,则根据该组样本集合中第一训练样本的第一环境信息的分布情况,生成该组样本集合的第三训练样本;所述该组样本集合的第三训练样本中的角色类型与第一训练样本的角色类型相同;所述该组样本集合的第三训练样本中的第一响应信息与第一训练样本的第一响应信息相同;

s10324:针对每组样本集合,将该组样本集合所对应的第三训练样本添加到该组样本集合中,以调整该组样本集合中的第一训练样本的数量。

在步骤s10323中,第一环境信息的分布情况与步骤s10321中第一环境信息的分布情况的含义相同。

这里主要是根据第一环境信息的密度或占比,生成第三训练样本。

例如,针对某一组样本集合,共有10个第一训练样本,第一训练样本中角色模型所处的虚拟游戏环境中的风速分别为(1,5,22,26,31,45,47,51,78,98),通过统计可以了解到第一训练样本的风速在区间(20,50)之间的密度较大,因此,在进行上采样和下采样的时候,应当主要针对这一部分进行训练。

具体实现的时候,可以将第一训练样本的采样区间进行等分,如将第一训练样本中角色模型所处的虚拟游戏环境中的风速(1,100)平均分为10段(1,10)、(11,20)、(21,30)…(91,100),分别统计每段的中样本的数量,根据每段的样本数量的大小,进行上采样处理或下采样处理。

第三训练样本中的角色类型与第一训练样本的角色类型相同,且第三训练样本中的第一响应信息与第一训练样本的第一响应信息相同,但是第三训练样本中的第一环境信息的密度或占比较小。

因此在步骤s10324中,将第一环境信息的密度或占比较小的第三训练样本添加到对应的样本集合中,已达到均衡第一环境信息密度或占比的目的。

在步骤s1033中,调整后的每组样本集合中,第一训练样本包含的第一环境信息和第一响应信息相对均衡,可以对综合模型进行全面的训练。

在使用第一训练样本对综合模型进行训练时,将第一训练样本输入到综合模型所对应的第二神经网络中,该第二神经网络可以输出对应的第一响应信息。

优选的,综合模型的模型结构参数要小于角色模型的模型结构参数。

在对角色模型进行训练时,需要输入大量的训练数据,也就是第二环境数据,以得到训练完成的角色模型。在对综合模型进行训练时,输入的是训练完成的角色模型的第一训练样本,以得到训练完成的综合模型,一般情况下,第一训练样本比第二环境数据所占的存储空间小,因此综合模型所对应的第二神经网络可以比角色模型对应的第一神经网络下,因此为了保证综合模型比角色模型更小,可以在设置综合模型的时候进行一定的处理。具体来说,在第二神经网络中,隐层的节点数目应当比角色模型中隐层的节点数目更少;或者是在第二神经网络中,隐层的层数应当比角色模型中层数更少。

在一种可能的实施中,如果角色模型所对应的第一神经网络的结构,由前至后,依次可以包括:第一卷积层、第二卷积层、第一隐层、第二隐层、第三隐层和第一输出层;那么综合模型所对应的第二神经网络的结构,由前至后,依次可以包括:第三卷积层、第四卷积层、第四隐层、第五隐层、第六隐层和第二输出层,第三卷积层的卷积核可以为5*5,卷积核的个数为50个,第四卷积层的卷积核可以为3*3,卷积核的个数为20个,并且第一隐层与第四隐层、第二隐层与第五隐层、第三隐层与第六隐层的节点数之比可以是5:4至8:1,优先地,可以是2:1,更具体来说,第一神经网络中节点数可以为400:200:100,第二神经网络中节点数可以为200:100:50,也就是说第二神经网络中第四隐层的隐层宽度为200,第五隐层的隐层宽度为100,第六隐层的隐层宽度为50。

在一种可能的实施中,如果角色模型所对应的第一神经网络的结构可以依次包括:第一卷积层、第二卷积层、第一隐层、第二隐层、第三隐层和第一输出层;那么综合模型所对应的第二神经网络的结构,由前至后,可以依次包括:第三卷积层、第四卷积层、第四隐层、第五隐层和第二输出层,也就是第一神经网络中包括三层隐层,而第二神经网络中包括两层隐层,第二神经网络的隐层层数少于第一神经网络的隐层层数。

本申请实施例通过设置第二神经网络比第一神经,可以降低游戏文件中综合模型数据的存储量。

下面通过一个实施例对本申请提供的游戏模型训练方法进行具体说明。

在该实施例中,首先对格斗游戏中的12个角色模型进行分别训练。这12个角色模型各自可以使用不同种类的技能,例如这12个角色模型中,有些是近战角色,有些是远程角色。

在对12个角色模型进行分别训练的过程中,可以分别为每个角色模型构建一个第一神经网络,每个第一神经网络的结构可以均是相同的,如第一神经网络由前至后,依次可以包括第一卷积层、第二卷积层、第一隐层、第二隐层和第三隐层。其中,第一卷积层的卷积核为5*5,卷积核的个数为100个;第二卷积层的卷积核为3*3,卷积核的个数为50个;第一隐层的隐层宽度(节点数)为400;第二隐层的隐层宽度为200、第三隐层的隐层宽度为100。

在对12个角色模型进行训练的过程中,12个角色模型在相应的虚拟决斗游戏场景中分别进行迭代的自我对战和相互对战。

自我对战的具体实现方式可以为:每次角色模型进行模拟对战的时候,所选择的第一陪练模型均是该角色模型的历史版本,或者是该角色模型的当前版本。第一陪练模型所做出的动作(环境信息)会输入到该角色模型中,该角色模型会输出相应的响应信息,而后,会依据该响应信息计算损失函数,并依据损失函数对角色模型进行训练,以更新角色模型;

相互对战的具体实现方式可以为:每次角色模型进行模拟对战的时候,所选择的第一陪练模型均是其他角色模型的历史版本,或者是其他角色模型的当前版本。第一陪练模型所做出的动作(环境信息)会输入到该角色模型中,该角色模型会输出相应的响应信息,而后,会依据该响应信息计算损失函数,并依据损失函数对角色模型进行训练,以更新角色模型;

进行模拟对战的时候,参与模拟对战的角色模型和第一陪练模型在虚拟决斗游戏场景中各自释放自己所能够释放的技能,直至对方失败或者游戏时间结束时,完成本次模拟对战。在模拟对战后,可以依据陪练所释放的技能,以及角色模型所释放的技能来计算算是函数,并依据损失函数对角色模型进行训练。

经过上述模拟对战和利用模拟对战的结果对角色模型进行训练的过程,可以完成对12个角色模型分别进行训练的过程,此时,可以得到训练完成的角色模型。

在角色模型训练完成之后,就可以利用12个训练好的角色模型生成训练综合模型所使用的综合训练样本。

生成综合训练样本的过程如下:针对每个训练完成的角色模型,将该角色模型放到新的虚拟决斗游戏场景中与第二陪练模型进行模拟对抗(对抗的方式可以参照角色模型与第一陪练模型进行对抗的过程),此处第二陪练模型并不必然是这12个训练好的角色模型,第二陪练模型可以是真是的玩家,也可以是某个角色模型的某个版本。综合训练样本中应当记录有在一次模拟对抗中,角色模型和第二陪练模型各自所释放的技能,以及模拟对抗的结果(当然,每个综合训练样本中还应当记录有该角色模型和第二陪练模型的类型)。

此处,综合模型也是通过神经网络来体现的,具体来说,可以构建为综合模型构建第二神经网络,将大量的综合训练样本输入到综合模型所对应的第二神经网络中,已完成对综合模型的训练。

这里,第二神经网络由前至后,依次可以包括:第三卷积层、第四卷积层、第四隐层、第五隐层和第六隐层。其中,第三卷积层的卷积核可以为5*5,卷积核的个数为50个;第二卷积层的卷积核为3*3,卷积核的个数为20个;第一隐层的隐层宽度为200;第二隐层的隐层宽度为100、第三隐层的隐层宽度为50。由此可以看出,综合模型比角色模型的模型规格更简化,这样可以进一步减少模型数据在游戏文件中的占用空间。

基于相同的技术构思,本申请实施例还提供一种游戏模型训练装置、电子设备、以及计算机可读存储介质等,具体可参见以下实施例。

图4是示出本申请的一些实施例的游戏模型训练装置的框图,该游戏模型训练装置实现的功能对应上述在终端设备上执行游戏模型训练方法的步骤。该装置可以理解为一个包括处理器的服务器的组件,该组件能够实现上述游戏模型训练方法,如图4所示,该游戏模型训练装置可以包括:

第一输入模块401,用于针对每个训练完成的角色模型,将预设的第一环境信息输入到该角色模型中,以确定该角色模型针对第一环境信息所输出的第一响应信息;

第一生成模块402,用于针对每个训练完成的角色模型,根据该角色模型的角色类型、第一环境信息和第一响应信息,生成该角色模型的第一训练样本;

第一训练模块403,用于分别使用每个角色模型的第一训练样本对综合模型进行训练。

在一种可能的实施方式中,该游戏模型训练装置还可以包括:

第二输入模块,用于针对每个角色模型,将预设的第二环境信息输入到该角色模型中,以确定该角色模型针对第二环境信息所输出的第二响应信息;

第二生成模块,用于针对每个角色模型,根据该角色模型所对应的第二环境信息和第二响应信息生成第二训练样本;

第二训练模块,用于针对每个角色模型,使用该角色模型所对应的第二训练样本对该角色模型进行训练。

在一种可能的实施方式中,第二训练模块包括:

计算单元,用于针对每个角色模型,分别计算该角色模型的每个第二训练样本所对应的拟合误差;

选择单元,用于针对每个角色模型,根据该角色模型的每个第二训练样本所对应的拟合误差,从第二训练样本中选择出目标第二训练样本;

第三训练单元,用于针对每个角色模型,根据该角色模型所对应的目标第二训练样本对该角色模型进行训练。

在一种可能的实施方式中,第一训练模块403包括:

分组单元,用于根据每个第一训练样本的角色类型和第一响应信息,对第一训练样本进行分组,以确定多组样本集合;每组样本集合中的第一训练样本的角色类型和第一响应信息均是相同的;

调整单元,用于针对每组样本集合,根据该组样本集合中的第一训练样本的数量,对该组样本集合中的第一训练样本的数量进行调整;

第四训练单元,用于分别使用所述调整后的每组样本集合中的第一训练样本对综合模型进行训练。

在一种可能的实施方式中,调整单元包括:

第一处理单元,用于针对每组样本集合,若该组样本集合中的第一训练样本的数量超过预设数量阈值,则对该组样本集合中的第一训练样本进行下采样处理,以调整该组样本集合中的第一训练样本的数量;

第二处理单元,用于针对每组样本集合,若该组样本集合中的第一训练样本的数量低于预设数量阈值,则对该组样本集合中的第一训练样本进行上采样处理,以调整该组样本集合中的第一训练样本的数量。

在一种可能的实施方式中,第一处理单元包括:

确定单元,用于针对每组样本集合,若该组样本集合中的第一训练样本的数量高于预设数量阈值,则根据该组样本集合中第一训练样本的第一环境信息的分布情况,确定需要删除的目标第一训练样本;

删除单元,用于针对每组样本集合,将该组样本集合中的目标第一训练样本进行删除,以调整该组样本集合中的第一训练样本的数量。

在一种可能的实施方式中,第二处理单元包括:

第三生成单元,用于针对每组样本集合,若该组样本集合中的第一训练样本的数量低于预设数量阈值,则根据该组样本集合中第一训练样本的第一环境信息的分布情况,生成该组样本集合的第三训练样本;所述该组样本集合的第三训练样本中的角色类型与第一训练样本的角色类型相同;所述该组样本集合的第三训练样本中的第一响应信息与第一训练样本的第一响应信息相同;

添加单元,用于针对每组样本集合,将该组样本集合所对应的第三训练样本添加到该组样本集合中,以调整该组样本集合中的第一训练样本的数量。

如图5所示,为本申请实施例所提供的一种电子设备500的结构示意图,该电子设备500包括:至少一个处理器501,至少一个网络接口504和至少一个用户接口503,存储器505,至少一个通信总线502。通信总线502用于实现这些组件之间的连接通信。用户接口503,包括显示器(例如,触摸屏)、键盘或者点击设备(例如,触感板或者触摸屏等)。

存储器505可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器505的一部分还可以包括非易失性随机存取存储器(nvram)。

在一些实施方式中,存储器505存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:

操作系统5051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;

应用程序5052,包含各种应用程序,用于实现各种应用业务。

在一种可能的实施方式中,处理器501还用于:

针对每个训练完成的角色模型,将预设的第一环境信息输入到该角色模型中,以确定该角色模型针对第一环境信息所输出的第一响应信息;

针对每个训练完成的角色模型,根据该角色模型的角色类型、第一环境信息和第一响应信息,生成该角色模型的第一训练样本;

分别使用每个角色模型的第一训练样本对综合模型进行训练。

在一种可能的实施方式中,处理器501还用于:

针对每个角色模型,将预设的第二环境信息输入到该角色模型中,以确定该角色模型针对第二环境信息所输出的第二响应信息;

针对每个角色模型,根据该角色模型所对应的第二环境信息和第二响应信息生成第二训练样本;

针对每个角色模型,使用该角色模型所对应的第二训练样本对该角色模型进行训练。

在一种可能的实施方式中,处理器501还用于:

针对每个角色模型,分别计算该角色模型的每个第二训练样本所对应的拟合误差;

针对每个角色模型,根据该角色模型的每个第二训练样本所对应的拟合误差,从第二训练样本中选择出目标第二训练样本;

针对每个角色模型,根据该角色模型所对应的目标第二训练样本对该角色模型进行训练。

在一种可能的实施方式中,处理器501还用于:

根据每个第一训练样本的角色类型和第一响应信息,对第一训练样本进行分组,以确定多组样本集合;每组样本集合中的第一训练样本的角色类型和第一响应信息均是相同的;

针对每组样本集合,根据该组样本集合中的第一训练样本的数量,对该组样本集合中的第一训练样本的数量进行调整;

分别使用所述调整后的每组样本集合中的第一训练样本对综合模型进行训练。

在一种可能的实施方式中,处理器501还用于:

针对每组样本集合,若该组样本集合中的第一训练样本的数量超过预设数量阈值,则对该组样本集合中的第一训练样本进行下采样处理,以调整该组样本集合中的第一训练样本的数量;

针对每组样本集合,若该组样本集合中的第一训练样本的数量低于预设数量阈值,则对该组样本集合中的第一训练样本进行上采样处理,以调整该组样本集合中的第一训练样本的数量。

在一种可能的实施方式中,处理器501还用于:

针对每组样本集合,若该组样本集合中的第一训练样本的数量高于预设数量阈值,则根据该组样本集合中第一训练样本的第一环境信息的分布情况,确定需要删除的目标第一训练样本;

针对每组样本集合,将该组样本集合中的目标第一训练样本进行删除,以调整该组样本集合中的第一训练样本的数量。

在一种可能的实施方式中,处理器501还用于:

针对每组样本集合,若该组样本集合中的第一训练样本的数量低于预设数量阈值,则根据该组样本集合中第一训练样本的第一环境信息的分布情况,生成该组样本集合的第三训练样本;所述该组样本集合的第三训练样本中的角色类型与第一训练样本的角色类型相同;所述该组样本集合的第三训练样本中的第一响应信息与第一训练样本的第一响应信息相同;

针对每组样本集合,将该组样本集合所对应的第三训练样本添加到该组样本集合中,以调整该组样本集合中的第一训练样本的数量。

本申请实施例所提供的进行游戏模型训练方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

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

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

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

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

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

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