Fps游戏的ai模型训练方法、装置、系统和设备

文档序号:121748 发布日期:2021-10-22 浏览:33次 >En<

阅读说明:本技术 Fps游戏的ai模型训练方法、装置、系统和设备 (AI model training method, device, system and equipment for FPS game ) 是由 刘舟 徐键滨 吴梓辉 徐雅 王理平 于 2021-06-23 设计创作,主要内容包括:本发明公开了一种FPS游戏的AI模型训练方法,包括:获取样本数据;其中,所述样本数据包括虚拟角色的游戏状态数据和实际奖励;将所述游戏状态数据输入到所述FPS游戏的AI模型中,以生成所述虚拟角色的预测奖励;根据所述预测奖励和实际奖励计算所述FPS游戏的AI模型的损失函数;其中,所述实际奖励通过预设的奖励机制计算得到;根据所述损失函数对所述FPS游戏的AI模型进行优化,直至所述损失函数收敛。本发明还公开了一种FPS游戏的AI模型训练装置、系统和设备。采用本发明实施例,能够针对复杂的游戏场景能够进行有效的局面分析,给出合理的奖励机制,避免虚拟角色在某一位置停留过久。(The invention discloses an AI model training method of an FPS game, which comprises the following steps: acquiring sample data; wherein the sample data comprises game state data and actual rewards for the virtual character; inputting the game state data into an AI model of the FPS game to generate a predicted reward for the virtual character; calculating a loss function of an AI model of the FPS game according to the predicted reward and the actual reward; the actual reward is calculated through a preset reward mechanism; and optimizing the AI model of the FPS game according to the loss function until the loss function is converged. The invention also discloses an AI model training device, a system and equipment of the FPS game. By adopting the embodiment of the invention, effective situation analysis can be carried out aiming at complex game scenes, a reasonable reward mechanism is provided, and the virtual character is prevented from staying too long at a certain position.)

FPS游戏的AI模型训练方法、装置、系统和设备

技术领域

本发明涉及模型训练方法,尤其涉及一种FPS游戏的AI模型训练方法、装置、系统和设备。

背景技术

随着电子竞技行业的逐步发展,第一人称视觉类射击游戏(First-personshootinggame,FPS)越来越受到广泛的关注。对于FPS游戏而言,为保证用户在游戏过程中的良好体验,往往需要构建AI模型并对其进行训练,从而使得该AI模型能够良好地应用在FPS游戏中。现有FPS游戏的AI模型一般仅能处理相对较为简单的游戏场景,并遵循基础的游戏规则提供游戏策略,当面对复杂的游戏场景或者复杂的游戏规则时,比如在设置奖励机制时,没有针对虚拟角色的来回移动进行合理的奖励设置,导致虚拟角色在某一位置停留过久,影响用户的游戏体验。

发明内容

本发明实施例的目的是提供一种FPS游戏的AI模型训练方法、装置、系统和设备,能够针对复杂的游戏场景能够进行有效的局面分析,给出合理的奖励机制,避免虚拟角色在某一位置停留过久。

为实现上述目的,本发明实施例提供了一种FPS游戏的AI模型训练方法,包括:

获取样本数据;其中,所述样本数据包括虚拟角色的游戏状态数据和实际奖励;

将所述游戏状态数据输入到所述FPS游戏的AI模型中,以生成所述虚拟角色的预测奖励;

根据所述预测奖励和实际奖励计算所述FPS游戏的AI模型的损失函数;其中,所述实际奖励通过预设的奖励机制计算得到;所述奖励机制包括:计算所述虚拟角色在采取动作后的当前时间步所处的位置与预设目标中心点的目标距离,根据所述目标距离计算实际奖励;所述目标中心点为所述虚拟角色在前两个时间步时所处位置所组成的圆的圆心;

根据所述损失函数对所述FPS游戏的AI模型进行优化,直至所述损失函数收敛。

作为上述方案的改进,所述游戏状态数据包括:所述虚拟角色在当前时间歩的第一状态信息、在当前时间歩的第一动作信息以及在下一时间歩的第二状态信息,所述FPS游戏的AI模型包括第一网络和第二网络;则,将所述游戏状态数据输入到所述FPS游戏的AI模型中,以生成所述虚拟角色的预测奖励,包括:

将所述第一状态信息和所述第一动作信息输入到所述第一网络中,得到所述虚拟角色在当前时间步的第一状态动作价值;

将所述第二状态信息输入到所述第二网络中,得到第二动作信息;

将所述第二状态信息和第二动作信息输入到所述第一网络中,得到所述虚拟角色在下一时间步的第二状态动作价值;

计算所述第一状态动作价值和所述第二状态动作价值的价值差值作为所述预测奖励。

作为上述方案的改进,根据所述预测奖励和实际奖励计算所述FPS游戏的AI模型的损失函数,包括:

根据所述预测奖励和所述实际奖励计算第一网络的损失函数;

获取所述第一网络的预测值计算所述第二网络的损失函数。

作为上述方案的改进,根据所述目标距离计算实际奖励,包括:

当所述目标距离大于预设的距离阈值时,给予正向奖励;

当所述目标距离小于或等于所述距离阈值时,给予负向奖励。

作为上述方案的改进,所述奖励机制还包括:

当检测到所述虚拟角色的操作状态为常规操作时,给予正向奖励;

当检测到所述虚拟角色的操作状态为非常规操作时,给予负向奖励;

其中,所述常规操作包括:朝着无障碍物的地方移动;所述非常规操作包括以下中的至少一种:未看到敌人时使用技能、在周围无障碍物时跳跃、在保持不动时跳跃、朝着存在障碍物的地方移动、在超过预设的第一数量帧后保持不动。

作为上述方案的改进,所述奖励机制还包括:

当检测到所述虚拟角色的敌人的生命状态为死亡时,给予正向奖励;

当检测到所述虚拟角色的生命状态为死亡时,给予负向奖励。

作为上述方案的改进,所述奖励机制还包括:

当检测到所述虚拟角色的视野信息为在预设的第二数量帧内看到敌人时,给予正向奖励;

当检测到所述虚拟角色的视野信息为在所述第二数量帧内未看到敌人时,给予负向奖励。

为实现上述目的,本发明实施例还提供了一种FPS游戏的AI模型训练装置,包括:

样本数据获取单元,用于获取样本数据;其中,所述样本数据包括虚拟角色的游戏状态数据和实际奖励;

训练单元,用于:

将所述游戏状态数据输入到所述FPS游戏的AI模型中,以生成所述虚拟角色的预测奖励;

根据所述预测奖励和实际奖励计算所述FPS游戏的AI模型的损失函数;其中,所述实际奖励通过预设的奖励机制计算得到;所述奖励机制包括:计算所述虚拟角色在采取动作后的当前时间步所处的位置与预设目标中心点的目标距离,根据所述目标距离计算实际奖励;所述目标中心点为所述虚拟角色在前两个时间步时所处位置所组成的圆的圆心;

根据所述损失函数对所述FPS游戏的AI模型进行优化,直至所述损失函数收敛。

为实现上述目的,本发明实施例还提供了一种FPS游戏的AI模型训练系统,包括:

环境交互模块,用于输出所述样本数据;

数据存储模块,用于存储所述训练数据;

训练模块,其为上述实施例所述的FPS游戏的AI模型训练装置;

测试模块,用于每间隔预设时间段获取所述FPS游戏的AI模型,并对所述FPS游戏的AI模型进行模型效果评估。

为实现上述目的,本发明实施例还提供了一种FPS游戏的AI模型训练设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一实施例所述的FPS游戏的AI模型训练方法。

相比于现有技术,本发明实施例所述的FPS游戏的AI模型训练方法、装置、系统和设备,在对FPS游戏的AI模型进行训练的过程中,获取实际奖励作为样本数据,实际奖励通过预设的奖励机制计算得到,所述奖励机制包括:计算所述虚拟角色在采取动作后的当前时间步所处的位置与预设目标中心点的目标距离,根据所述目标距离计算实际奖励。通过计算虚拟角色在所处当前位置和目标中心点的目标距离,能够确定虚拟角色是否在某一位置停留过久。另外,根据目标距离计算实际奖励,通过设置正向奖励和负向奖励的奖励机制,能够针对复杂的游戏场景能够进行有效的局面分析,给出合理的奖励机制,避免虚拟角色在某一位置停留过久。

附图说明

图1是本发明实施例提供的一种FPS游戏的AI模型训练方法的流程图;

图2是本发明实施例提供的虚拟角色与目标中心点的距离示意图;

图3是本发明实施例提供的一种FPS游戏的AI模型训练装置的结构框图;

图4是发明实施例提供的一种FPS游戏的AI模型训练系统的结构框图;

图5是发明实施例提供的一种FPS游戏的AI模型训练设备的结构框图。

具体实施方式

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

参见图1,图1是本发明实施例提供的一种FPS游戏的AI模型训练方法的流程图,所述FPS游戏的AI模型训练方法包括:

S1、获取样本数据;其中,所述样本数据包括虚拟角色的游戏状态数据和实际奖励;

S2、将所述游戏状态数据输入到所述FPS游戏的AI模型中,以生成所述虚拟角色的预测奖励;

S3、根据所述预测奖励和实际奖励计算所述FPS游戏的AI模型的损失函数;其中,所述实际奖励通过预设的奖励机制计算得到;

S4、根据所述损失函数对所述FPS游戏的AI模型进行优化,直至所述损失函数收敛。

具体地,在步骤S1中,所述样本数据为对所述FPS游戏的AI模型进行训练的数据,所述样本数据包括虚拟角色的游戏状态数据和实际奖励。所述游戏状态数据包括:所述虚拟角色在当前时间歩的第一状态信息、在当前时间歩的第一动作信息以及在下一时间歩的第二状态信息。

值得说明的是,动作信息指的是虚拟角色在环境中采取的动作;状态信息是采取该动作的结果,体现在游戏的状态上。比如动作信息为射击,则对应的状态信息为敌方掉血、敌方死亡等;又比如动作信息为跳跃,如果跳上箱体,则对应的状态信息为自身的高度增加。在本发明实施例中,每间隔n帧从游戏环境获取一次状态称为一个时间歩,可以理解的,所述当前时间步和所述下一时间歩为连续的两个时间步。

具体地,本发明实施例所述的FPS游戏的AI模型为DDPG模型,所述DDPG模型有两种网络:第一网络和第二网络。示例性的,第一网络为critic网络,第二网络为actor网络。具体的critic网络和actor网络的网络结构可参考现有技术,本发明在此不再赘述。

进一步地,所述样本数据通过预先在游戏中进行环境交互获得。首先获取所述虚拟角色在当前时间歩的第一状态信息,然后将所述第一状态信息输入到所述actor网络,得到第一动作信息,根据epsilon贪婪算法选择实际传入游戏环境的动作(在随机动作和预测动作之间进行选择,大于epsilon随机数选择随机动作,小于epsilon随机数选择预测动作)。将所述虚拟角色实际采取的动作传入游戏环境,得到所述虚拟角色在下一时间步的第二状态信息,再循环往复。此时可以得到第一状态信息、第一动作信息、第二状态信息和第二动作信息。在这个过程中,会根据所述第一状态信息、所述第一动作信息、所述第二状态信息以及根据奖励机制计算得到的实际奖励。因此样本数据包括:所述虚拟角色在当前时间歩的第一状态信息、在当前时间歩的第一动作信息、在下一时间歩的第二状态信息以及实际奖励。

具体地,在步骤S2中,将所述游戏状态数据输入到所述FPS游戏的AI模型中,以生成所述虚拟角色的预测奖励,包括步骤S21~S24:

S21、将所述第一状态信息和所述第一动作信息输入到所述第一网络中,得到所述虚拟角色在当前时间步的第一状态动作价值;

S23、将所述第二状态信息输入到所述第二网络中,得到第二动作信息;

S23、将所述第二状态信息和第二动作信息输入到所述第一网络中,得到所述虚拟角色在下一时间步的第二状态动作价值;

S24、计算所述第一状态动作价值和所述第二状态动作价值的价值差值作为所述预测奖励。

示例性的,首先将第一状态信息和第一动作信息输入critic网络,得到当前时间歩的第一状态动作价值;然后,将下一时间歩的第二状态信息输入actor网络,得到下一时间歩的预测动作即为第二动作信息,并将第二状态信息和第二动作信息输入到critic网络,得到下一时间歩的第二状态动作价值;最后,将第一状态动作价值和第二状态动作价值作差得到价值差值。

值得说明的是,状态动作价值指的是对某一状态和动作的期望回报,比如回报是一局游戏奖励的累加值,而期望回报是对多局游戏的回报求均值。第一网络是一个神经网络,它的输入是状态和动作,输出就是状态动作价值,通过损失函数进行反向传播调整神经网络参数,使其接近实际。

具体地,在步骤S3中,所述实际奖励通过预设的奖励机制计算得到。根据所述预测奖励和实际奖励计算所述FPS游戏的AI模型的损失函数,包括步骤S31~S32:

S31、根据所述预测奖励和所述实际奖励计算第一网络的损失函数;

S32、获取所述第一网络的预测值计算所述第二网络的损失函数。

示例性的,将所述预测奖励和实际奖励作差的平方和为critic网络的损失函数,actor网络的损失函数为critic网络的预测值。具体地,在本发明实施例中,actor网络和critic网络又分别划分为evaluate网络和target网络,target网络不参与训练,定期从evaluate网络复制参数。

具体地,所述critic网络损失函数满足以下公式:

其中,N为所述样本数据的总数量;yi=ri+γQ′(si+1,μ′(si+1μ′)|θQ′);ri为第i个时间步的reward;γ为超参,折扣因子;Q(s,a|θQ)为critic网络,参数为θQ;μ(s|θμ)为actor网络,参数为θμ;Q′为critic网络的target网络;μw为actor网络的target网络,target网络参数不参与训练,定期从Q、μ网络更新其参数,actor网络通过极大化critic网络的预测值更新参数。

可选地,所述奖励机制包括:计算所述虚拟角色在采取动作后的当前时间步所处的位置与预设目标中心点的目标距离,根据所述目标距离计算实际奖励;当所述目标距离大于预设的距离阈值时,给予正向奖励;当所述目标距离小于或等于所述距离阈值时,给予负向奖励。具体地,所述目标中心点为所述虚拟角色在前两个时间步时所处位置所组成的圆的圆心。

示例性的,参见图2,图2中A点和B点即为所述虚拟角色在前两个时间步时所处位置,根据A点和B点可以组成一个圆,确定该圆的圆心O点为所述目标中心点,图2中的C点和C'为所述虚拟角色在当前时间步时的所处当前位置,以圆的半径长度S作为所述距离阈值,此时需要获取虚拟角色所处当前位置与所述目标中心点O的目标距离。当所述虚拟角色所处当前位置位于圆内时,如图中的C,此时所述目标距离L1小于所述距离阈值S,表明所述虚拟角色在某一范围内来回移动,停留过久,此时为了告知用户需要移动较远距离,给予负向奖励;当所述虚拟角色所处当前位置位于圆外时,如图中的C',此时所述目标距离L2大于所述距离阈值S,表明所述虚拟角色并未某一范围内来回移动,此时为告知用户移动正常,给予正向奖励,以激励用户继续往正常移动方向引导。具体的奖励(reward)值可参考表1,表1中的dis表示所述目标距离。

表1 奖励机制为虚拟角色与目标中心点的目标距离的奖励设置

可选地,所述奖励机制还包括:

当所述虚拟角色的操作状态为常规操作时,给予正向奖励;

当所述虚拟角色的操作状态为非常规操作时,给予负向奖励;

其中,所述常规操作包括:朝着无障碍物的地方移动;所述非常规操作包括以下中的至少一种:未看到敌人时使用技能、在周围无障碍物时跳跃、在保持不动时跳跃、朝着存在障碍物的地方移动、在超过预设的第一数量帧后保持不动。

示例性的,当所述虚拟角色的操作状态为朝着无障碍物的地方移动时,此时给予正向奖励,能够鼓励用户往正确的走位方向移动。当所述虚拟角色的操作状态为未看到敌人时使用技能,此时给予负向奖励,防止用户在未看见敌人时使用技能,因部分技能的恢复时间可能比较长,若用户乱用技能容易导致部分技能无法及时使用,因此在用户未看见敌人时给予负向奖励,可以防止用户乱用技能。当所述虚拟角色的操作状态为在周围无障碍物时跳跃或在保持不动时跳跃,此时给予负向奖励,可以防止用户一直使用跳跃技能。当所述虚拟角色的操作状态为朝着存在障碍物的地方移动时,给予负向奖励,能够鼓励用户往正确的走位方向移动。当所述虚拟角色的操作状态为在超过预设的第一数量帧后保持不动,给予负向奖励,能够避免用户长时间不移动,鼓励用户去探索。值得说明的是,第一数量帧的设定可以系统根据游戏环境中的实际情况进行预先设置,本发明在此不做具体限定。具体的奖励(reward)值可参考表2。

表2 奖励机制为操作状态的奖励设置

可选地,所述奖励机制还包括:

当检测到所述虚拟角色的敌人的生命状态为死亡时,给予正向奖励;

当检测到所述虚拟角色的生命状态为死亡时,给予负向奖励。

示例性的,当所述虚拟角色的敌人的生命状态为死亡时,为激励用户继续击杀其他敌人,给予正向奖励;当所述虚拟角色其自身的生命状态为死亡时,为鼓励用户复活时避免再次被击杀,此时给予负向奖励。具体的奖励(reward)值可参考表3。

表3 奖励机制为生命状态的奖励设置

生命状态 reward值
敌人的生命状态为死亡 +1
虚拟角色自身的生命状态为死亡 -1

值得说明的是,如果在超过预设的第一数量帧后保持不动时击杀了敌人,此时虽然保持不动是给予负向奖励的,但是因敌人死亡是较大的正向奖励,所以汇总奖励机制中的所有项后采取不动仍然会有一个正向的奖励。

可选地,所述奖励机制还包括:

当所述虚拟角色的视野信息为在预设的第二数量帧内看到敌人时,给予正向奖励;

当所述虚拟角色的视野信息为在所述第二数量帧内未看到敌人时,给予负向奖励。

值得说明的是,第二数量帧的设定可以系统根据游戏环境中的实际情况进行预先设置,本发明在此不做具体限定。根据所述虚拟角色视野信息给予正向奖励或负向奖励,能够鼓励用户往游戏周围环境探索,避免其长期停留在某一位置。具体的奖励(reward)值可参考表4。

表4 奖励机制为视野信息的奖励设置

视野信息 reward值
第二数量帧内看到敌人 +0.008
第二数量帧内未看到敌人 -0.008

具体地,在步骤S4中,每次模型训练会进行两次优化,首先根据所述第一状态信息、所述第一动作信息、所述第二状态信息结合critic网络的损失函数优化critic网络,然后再根据所述第一状态信息结合actor网络的损失函数(即critic网络的预测值,此时critic网络的输入为当前时间歩的状态信息以及当前时间歩的预测动作)优化actor网络。

相比于现有技术,本发明实施例所述的FPS游戏的AI模型训练方法,在对FPS游戏的AI模型进行训练的过程中,获取实际奖励作为样本数据,实际奖励通过预设的奖励机制计算得到,所述奖励机制包括:计算所述虚拟角色在采取动作后的当前时间步所处的位置与预设目标中心点的目标距离,根据所述目标距离计算实际奖励。通过计算虚拟角色在所处当前位置和目标中心点的目标距离,能够确定虚拟角色是否在某一位置停留过久。另外,根据目标距离计算实际奖励,通过设置正向奖励和负向奖励的奖励机制,能够针对复杂的游戏场景能够进行有效的局面分析,给出合理的奖励机制,避免虚拟角色在某一位置停留过久。

参见图3,图3是本发明实施例提供的一种FPS游戏的AI模型训练装置10的结构框图,所述FPS游戏的AI模型训练装置10包括:

样本数据获取单元11,用于获取样本数据;其中,所述样本数据包括虚拟角色的游戏状态数据和实际奖励;

训练单元12,用于:

将所述游戏状态数据输入到所述FPS游戏的AI模型中,以生成所述虚拟角色的预测奖励;

根据所述预测奖励和实际奖励计算所述FPS游戏的AI模型的损失函数;其中,所述实际奖励通过预设的奖励机制计算得到;所述奖励机制包括:计算所述虚拟角色在采取动作后的当前时间步所处的位置与预设目标中心点的目标距离,根据所述目标距离计算实际奖励;所述目标中心点为所述虚拟角色在前两个时间步时所处位置所组成的圆的圆心;

根据所述损失函数对所述FPS游戏的AI模型进行优化,直至所述损失函数收敛。

具体地,所述样本数据为对所述FPS游戏的AI模型进行训练的数据,所述样本数据包括虚拟角色的游戏状态数据和实际奖励。所述游戏状态数据包括:所述虚拟角色在当前时间歩的第一状态信息、在当前时间歩的第一动作信息以及在下一时间歩的第二状态信息。

值得说明的是,动作信息指的是虚拟角色在环境中采取的动作;状态信息是采取该动作的结果,体现在游戏的状态上。比如动作信息为射击,则对应的状态信息为敌方掉血、敌方死亡等;又比如动作信息为跳跃,如果跳上箱体,则对应的状态信息为自身的高度增加。在本发明实施例中,每间隔n帧从游戏环境获取一次状态称为一个时间歩,可以理解的,所述当前时间步和所述下一时间歩为连续的两个时间步。

具体地,本发明实施例所述的FPS游戏的AI模型为DDPG模型,所述DDPG模型有两种网络:第一网络和第二网络。示例性的,第一网络为critic网络,第二网络为actor网络。具体的critic网络和actor网络的网络结构可参考现有技术,本发明在此不再赘述。

进一步地,所述样本数据通过预先在游戏中进行环境交互获得。首先获取所述虚拟角色在当前时间歩的第一状态信息,然后将所述第一状态信息输入到所述actor网络,得到第一动作信息,根据epsilon贪婪算法选择实际传入游戏环境的动作(在随机动作和预测动作之间进行选择,大于epsilon随机数选择随机动作,小于epsilon随机数选择预测动作)。将所述虚拟角色实际采取的动作传入游戏环境,得到所述虚拟角色在下一时间步的第二状态信息,再循环往复。此时可以得到第一状态信息、第一动作信息、第二状态信息和第二动作信息。在这个过程中,会根据所述第一状态信息、所述第一动作信息、所述第二状态信息以及根据奖励机制计算得到的实际奖励。因此样本数据包括:所述虚拟角色在当前时间歩的第一状态信息、在当前时间歩的第一动作信息、在下一时间歩的第二状态信息以及实际奖励。

具体地,所述训练单元12用于:

将所述第一状态信息和所述第一动作信息输入到所述第一网络中,得到所述虚拟角色在当前时间步的第一状态动作价值;

将所述第二状态信息输入到所述第二网络中,得到第二动作信息;

将所述第二状态信息和第二动作信息输入到所述第一网络中,得到所述虚拟角色在下一时间步的第二状态动作价值;

计算所述第一状态动作价值和所述第二状态动作价值的价值差值作为所述预测奖励。

示例性的,首先将第一状态信息和第一动作信息输入critic网络,得到当前时间歩的第一状态动作价值;然后,将下一时间歩的第二状态信息输入actor网络,得到下一时间歩的预测动作即为第二动作信息,并将第二状态信息和第二动作信息输入到critic网络,得到下一时间歩的第二状态动作价值;最后,将第一状态动作价值和第二状态动作价值作差得到价值差值。

值得说明的是,状态动作价值指的是对某一状态和动作的期望回报,比如回报是一局游戏奖励的累加值,而期望回报是对多局游戏的回报求均值。第一网络是一个神经网络,它的输入是状态和动作,输出就是状态动作价值,通过损失函数进行反向传播调整神经网络参数,使其接近实际。

具体地,所述训练单元12还用于:

根据所述预测奖励和所述实际奖励计算第一网络的损失函数;

获取所述第一网络的预测值计算所述第二网络的损失函数。

示例性的,将所述预测奖励和实际奖励作差的平方和为critic网络的损失函数,actor网络的损失函数为critic网络的预测值。具体地,在本发明实施例中,actor网络和critic网络又分别划分为evaluate网络和target网络,target网络不参与训练,定期从evaluate网络复制参数。

具体地,所述critic网络损失函数满足以下公式:

其中,N为所述样本数据的总数量;yi=ri+γQ′(si+1,μ′(si+1μ′)|θQ′);ri为第i个时间步的reward;γ为超参,折扣因子;Q(s,a|θQ)为critic网络,参数为θQ;μ(s|θμ)为actor网络,参数为θμ;Q′为critic网络的target网络;μ′为actor网络的target网络,target网络参数不参与训练,定期从Q、μ网络更新其参数,actor网络通过极大化critic网络的预测值更新参数。

可选地,所述奖励机制包括:计算所述虚拟角色在采取动作后的当前时间步所处的位置与预设目标中心点的目标距离,根据所述目标距离计算实际奖励;当所述目标距离大于预设的距离阈值时,给予正向奖励;当所述目标距离小于或等于所述距离阈值时,给予负向奖励。具体地,所述目标中心点为所述虚拟角色在前两个时间步时所处位置所组成的圆的圆心。

示例性的,参见图2,图2中A点和B点即为所述虚拟角色在前两个时间步时所处位置,根据A点和B点可以组成一个圆,确定该圆的圆心O点为所述目标中心点,图2中的C点和C'为所述虚拟角色在当前时间步时的所处当前位置,以圆的半径长度S作为所述距离阈值,此时需要获取虚拟角色所处当前位置与所述目标中心点O的目标距离。当所述虚拟角色所处当前位置位于圆内时,如图中的C,此时所述目标距离L1小于所述距离阈值S,表明所述虚拟角色在某一范围内来回移动,停留过久,此时为了告知用户需要移动较远距离,给予负向奖励;当所述虚拟角色所处当前位置位于圆外时,如图中的C',此时所述目标距离L2大于所述距离阈值S,表明所述虚拟角色并未某一范围内来回移动,此时为告知用户移动正常,给予正向奖励,以激励用户继续往正常移动方向引导。具体的奖励(reward)值可参考表1,表1中的dis表示所述目标距离。

表1 奖励机制为虚拟角色与目标中心点的目标距离的奖励设置

目标距离 reward值
目标距离大于距离阈值 -0.03
目标距离小于或等于距离阈值 +min(dis*0.01,0.05)

可选地,所述奖励机制还包括:

当所述虚拟角色的操作状态为常规操作时,给予正向奖励;

当所述虚拟角色的操作状态为非常规操作时,给予负向奖励;

其中,所述常规操作包括:朝着无障碍物的地方移动;所述非常规操作包括以下中的至少一种:未看到敌人时使用技能、在周围无障碍物时跳跃、在保持不动时跳跃、朝着存在障碍物的地方移动、在超过预设的第一数量帧后保持不动。

示例性的,当所述虚拟角色的操作状态为朝着无障碍物的地方移动时,此时给予正向奖励,能够鼓励用户往正确的走位方向移动。当所述虚拟角色的操作状态为未看到敌人时使用技能,此时给予负向奖励,防止用户在未看见敌人时使用技能,因部分技能的恢复时间可能比较长,若用户乱用技能容易导致部分技能无法及时使用,因此在用户未看见敌人时给予负向奖励,可以防止用户乱用技能。当所述虚拟角色的操作状态为在周围无障碍物时跳跃或在保持不动时跳跃,此时给予负向奖励,可以防止用户一直使用跳跃技能。当所述虚拟角色的操作状态为朝着存在障碍物的地方移动时,给予负向奖励,能够鼓励用户往正确的走位方向移动。当所述虚拟角色的操作状态为在超过预设的第一数量帧后保持不动,给予负向奖励,能够避免用户长时间不移动,鼓励用户去探索。值得说明的是,第一数量帧的设定可以系统根据游戏环境中的实际情况进行预先设置,本发明在此不做具体限定。具体的奖励(reward)值可参考表2。

表2 奖励机制为操作状态的奖励设置

可选地,所述奖励机制还包括:

当检测到所述虚拟角色的敌人的生命状态为死亡时,给予正向奖励;

当检测到所述虚拟角色的生命状态为死亡时,给予负向奖励。

示例性的,当所述虚拟角色的敌人的生命状态为死亡时,为激励用户继续击杀其他敌人,给予正向奖励;当所述虚拟角色其自身的生命状态为死亡时,为鼓励用户复活时避免再次被击杀,此时给予负向奖励。具体的奖励(reward)值可参考表3。

表3 奖励机制为生命状态的奖励设置

生命状态 reward值
敌人的生命状态为死亡 +1
虚拟角色自身的生命状态为死亡 -1

值得说明的是,如果在超过预设的第一数量帧后保持不动时击杀了敌人,此时虽然保持不动是给予负向奖励的,但是因敌人死亡是较大的正向奖励,所以汇总奖励机制中的所有项后采取不动仍然会有一个正向的奖励。

可选地,所述奖励机制还包括:

当所述虚拟角色的视野信息为在预设的第二数量帧内看到敌人时,给予正向奖励;

当所述虚拟角色的视野信息为在所述第二数量帧内未看到敌人时,给予负向奖励。

值得说明的是,第二数量帧的设定可以系统根据游戏环境中的实际情况进行预先设置,本发明在此不做具体限定。根据所述虚拟角色视野信息给予正向奖励或负向奖励,能够鼓励用户往游戏周围环境探索,避免其长期停留在某一位置。具体的奖励(reward)值可参考表4。

表4 奖励机制为视野信息的奖励设置

视野信息 reward值
第二数量帧内看到敌人 +0.008
第二数量帧内未看到敌人 -0.008

具体地,所述训练单元12基于所述损失函数对FPS游戏的AI模型的模型参数进行优化,直至所述损失函数收敛至指定范围。每次模型训练会进行两次优化,首先根据所述第一状态信息、所述第一动作信息、所述第二状态信息结合critic网络的损失函数优化critic网络,然后再根据所述第一状态信息结合actor网络的损失函数(即critic网络的预测值,此时critic网络的输入为当前时间歩的状态信息以及当前时间歩的预测动作)优化actor网络。

相比于现有技术,本发明实施例所述的FPS游戏的AI模型训练装置10,在对FPS游戏的AI模型进行训练的过程中,获取实际奖励作为样本数据,实际奖励通过预设的奖励机制计算得到,所述奖励机制包括:计算所述虚拟角色在采取动作后的当前时间步所处的位置与预设目标中心点的目标距离,根据所述目标距离计算实际奖励。通过计算虚拟角色在所处当前位置和目标中心点的目标距离,能够确定虚拟角色是否在某一位置停留过久。另外,根据目标距离计算实际奖励,通过设置正向奖励和负向奖励的奖励机制,能够针对复杂的游戏场景能够进行有效的局面分析,给出合理的奖励机制,避免虚拟角色在某一位置停留过久。

参见图4,图4是发明实施例提供的一种FPS游戏的AI模型训练系统20的结构框图,所述FPS游戏的AI模型训练系统20包括:

环境交互模块21,用于输出所述样本数据;

数据存储模块22,用于存储所述训练数据;

训练模块23,其为上述实施例所述的FPS游戏的AI模型训练装置10;

测试模块24,用于每间隔预设时间段获取所述FPS游戏的AI模型,并对所述FPS游戏的AI模型进行模型效果评估。

所述环境交互模块21包括Agent(智能主体)、Env(环境变量)和Data Process(数据处理)。Agent是一种主动对象,类似于对象(Object)、部件(Component)、进程(Process)的概念,特别地,Agent作为一个软件实体,可以用来体现用户的意图与爱好,作为用户与系统的接口,这类Agent在软件系统中代表用户,通常可以称为“接口Agent”;Env用于被动的接受服务器端的环境变量并把它们转换为数组元素;Data Process用于对样本数据进行数据处理,比如格式转换、数据筛选等处理。

进一步地,Agent和单一的游戏环境交互生成数据的过程耗时较长,因此,在训练所述FPS游戏的AI模型的过程中首先需要构建加速环境,然后利用ray的分布式功能,采用ps架构对模型训练进行加速,使模型可以并行训练。同时将FPS游戏环境封装成包,可以在多机多进程上运行游戏环境,在训练过程中初始化多个进程的Agent模型,使同一Agent模型同时和多个环境进行交互。

示例性的,加速环境构建过程包括:使用dockerfile定制镜像,编写相关的启动脚本,然后Kubernetes接入云商集群及本地集群环境,进行应用编排,按需启动数个容器执行任务,并且可实时扩展规模。模型加速过程包括:在分布式框架ray的基础上,创建ray集群环境,通过ray的remote方法拉起多个进程进行模型训练,并在主进程上进行参数的汇总处理、广播以及传送到存储桶的操作。

所述数据存储模块22包括第一存储单元和第二存储单元,所述第一存储单元为存储桶,所述第二存储单元为kafka数据库。存储桶提供了一个简单Web服务接口,可用于随时在Web上的任何位置存储和检索任何数量的数据,此服务让所有开发人员都能访问同一个具备高扩展性、可靠性、安全性和快速价廉的数据存储基础设施。kafka数据库与SQL数据库不同,大多数数据库用于按需查找和对存储数据的更改,kafka数据库不进行查找,它所做的是连续转换-即流处理,kafka数据库的一个用途是定义定制的业务级度量,这些度量是实时计算的,可以对其进行监视和警报,就像处理CPU负载一样,kafka数据库的另一个用途是在kafka数据库中定义应用程序的正确性概念,并检查它在生产中运行时是否满足这个要求,kafka数据库允许从应用程序生成的原始事件流中定义自定义度量,无论它们是记录事件、数据库更新还是其他类型。

所述训练模块23包括Data Process(数据处理)和Model Update(模型更新),DataProcess用于对样本数据进行训练,Model Update用于更新训练后的模型文件,所述模型文件即为训练后的FPS游戏的AI模型。

所述测试模块24用于模型的效果评估,通过定时获取模型文件,并将Agent和环境交互,记录评估指标(比如多局对战reward、平均kill、平均dead)随着训练的变化情况。

值得说明的是,具体的所述训练模块23训练所述FPS游戏的AI模型的过程可参考上述实施例所述的FPS游戏的AI模型训练装置10的工作过程,在此不再赘述。

相比于现有技术,本发明实施例所述的FPS游戏的AI模型训练系统20,在对FPS游戏的AI模型进行训练的过程中,获取实际奖励作为样本数据,实际奖励通过预设的奖励机制计算得到,所述奖励机制包括:计算所述虚拟角色在采取动作后的当前时间步所处的位置与预设目标中心点的目标距离,根据所述目标距离计算实际奖励。通过计算虚拟角色在所处当前位置和目标中心点的目标距离,能够确定虚拟角色是否在某一位置停留过久。另外,根据目标距离计算实际奖励,通过设置正向奖励和负向奖励的奖励机制,能够针对复杂的游戏场景能够进行有效的局面分析,给出合理的奖励机制,避免虚拟角色在某一位置停留过久。

参见图5,图5是发明实施例提供的一种FPS游戏的AI模型训练设备30的结构框图,所述FPS游戏的AI模型训练设备30包括:处理器31、存储器32以及存储在所述存储器32中并可在所述处理器31上运行的计算机程序。所述处理器31执行所述计算机程序时实现上述各个FPS游戏的AI模型训练方法实施例中的步骤。或者,所述处理器31执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器32中,并由所述处理器31执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述FPS游戏的AI模型训练设备30中的执行过程。

所述FPS游戏的AI模型训练设备30可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述FPS游戏的AI模型训练设备30可包括,但不仅限于,处理器31、存储器32。本领域技术人员可以理解,所述示意图仅仅是FPS游戏的AI模型训练设备30的示例,并不构成对FPS游戏的AI模型训练设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述FPS游戏的AI模型训练设备30还可以包括输入输出设备、网络接入设备、总线等。

所称处理器31可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器31是所述FPS游戏的AI模型训练设备30的控制中心,利用各种接口和线路连接整个FPS游戏的AI模型训练设备30的各个部分。

所述存储器32可用于存储所述计算机程序和/或模块,所述处理器31通过运行或执行存储在所述存储器32内的计算机程序和/或模块,以及调用存储在存储器32内的数据,实现所述FPS游戏的AI模型训练设备30的各种功能。所述存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述FPS游戏的AI模型训练设备30集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器31执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:虚拟对象的获取控制方法、装置、电子设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类