本申请涉及人工智能的技术领域,尤其涉及一种ai模型训练方法、ai模型使用方法、计算机设备及存储介质。
背景技术:
随着人工智能(artificialintelligence,ai)技术的发展,人工智能逐渐被应用于各个领域,例如自动驾驶汽车、星际争霸和dota2等。在游戏娱乐领域,由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是本申请实施例提供的一种ai模型训练方法的示意流程图;
图3是本申请实施例提供的角度示意图;
图4是本申请实施例提供的编码和行为对照示意图;
图5是本申请实施例提供的ai模型的层级结构示意图;
图6是本申请实施例提供的使用ai模型的场景示意图;
图7是本申请实施例提供的ai模型使用方法的流程示意图;
图8是图5中提供的ai模型使用方法的子步骤流程示意图;
图9是本申请实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本申请的实施例提供了一种ai模型训练方法、ai模型使用方法、计算机设备及存储介质。其中,该ai模型训练方法可应用于服务器中,该服务器可以为单台的服务器,也可以为由多台服务器组成的服务器集群。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
需要说明的是,以下将以ai模型应用在舰船类游戏为例进行详细介绍,可以理解的是,ai模型还可以应用于其他多智能体控制的场景中。
请参阅图1,图1是本申请实施例提供的训练ai模型的场景示意图。
如图1所示,模型训练服务器包括预测部分和训练部分。预测部分用于进行动作行为的预测,以生成训练样本,训练部分用于对ai模型进行训练更新。
虚拟环境服务器将虚拟环境中的智能体观测到的环境信息发送至模型训练服务器中的预测部分,由预测部分对所述环境信息进行特征提取,得到观测特征,并将观测特征输入ai模型进行行为预测,得到ai模型输出的动作行为。预测部分将所述动作行为对应的行为指令发送至虚拟环境服务器中的智能体,以控制智能体根据所述行为指令进行动作,并产生反馈信息。
然后预测部分将观测特征、动作行为和反馈信息共同作为训练样本发送至训练部分,由训练部分根据所述训练样本对所述ai模型进行训练,并将更新后的参数返回至预测部分中的ai模型,以更新所述ai模型。
请参阅图2,图2是本申请实施例提供的一种ai模型训练方法的示意流程图。
如图2所示,该ai模型训练方法,具体包括:步骤s101至步骤s104。
s101、获取虚拟环境中的智能体观测的环境信息,从所述环境信息提取所述智能体的观测特征。
虚拟环境可以是指虚拟环境服务器,智能体和真实玩家接入虚拟环境服务器后,可以在虚拟环境服务器中执行相应的动作。例如,虚拟环境服务器可以是指游戏服务器,智能体和真实玩家接入游戏服务器后,即可在游戏服务器提供的虚拟游戏场景中进行游戏。
智能体接入虚拟环境服务器后,虚拟环境服务器即可以以智能体的视角对周边环境进行观测,得到智能体观测的环境信息,并将智能体观测的环境信息发送给模型训练服务器,模型训练服务器在获取到智能体观测的环境信息后,从环境信息中提取智能体的观测特征。其中,观测特征是指智能体视野范围内所能够观测到的特征,包括智能体的特征以及视野范围内其他玩家的特征。
模型训练服务器可以包括预测部分和训练部分,预测部分用于获取虚拟环境中的智能体观测的环境信息,从所述环境信息提取所述智能体的观测特征,并基于观测特征对智能体的动作行为进行预测,并得到与所述动作行为对应的反馈信息。训练部分则用于将观测特征、动作行为和对应的反馈信息作为训练样本对ai模型进行模型训练。
在一些实施例中,智能体观测的环境信息可以包括用户信息、用户配置信息和全局信息。从所述环境信息提取所述智能体的观测特征具体可以是从所述用户信息、用户配置信息和全局信息中提取对应的玩家特征、配置特征和全局特征。也即,观测特征包括玩家特征、配置特征和全局特征。
具体地,可以利用观测建模的方法,对虚拟环境中的每一个用户进行玩家建模,对虚拟环境中用户的用户配置进行建模以及对全局进行全局建模,从而得到玩家特征、配置特征和全局特征。其中,虚拟环境中的用户既可以是多个智能体,也可以是部分真实玩家和至少一个智能体。所述用户配置信息可以是指玩家配置的武器信息。
在舰船类游戏中,所述用户信息是指玩家信息。玩家包括主玩家、队友玩家和敌对玩家。主玩家是指当前观测的玩家,也即若是以智能体的视角对周边环境进行观测,则智能体是主玩家,若是以真实玩家的视角对周边环境进行观测,则该真实玩家是主玩家。队友玩家是指与主玩家处于相同队伍的若干玩家,敌对玩家则是指主玩家视野范围内所能观测到的与主玩家互为敌对方的玩家。
需要说明的是,若有敌对方的玩家未处于主玩家视野范围内,则不会将其作为敌对玩家,直到所述敌对方的玩家处于主玩家视野范围内时,才会将其作为敌对玩家。
当队友玩家和/或敌对玩家数量有多个时,为了便于对多个玩家进行区分,可以对每一个玩家进行标记。以五人舰船类合作对战游戏为例,如与主玩家同队的四个队友玩家可分别记为队友1、队友2、队友3和队友4,主玩家视野范围内所能观测到的敌对玩家可分别记为敌对1、敌对2、敌对3、敌对4和敌对5。
用户信息包括基础信息和位姿信息。其中,基础信息用于表示当前玩家的状态,例如,所述当前玩家是否是主玩家、是否存活、移动速度等等。位姿信息则用于表示当前玩家的全局位姿和相对于相对玩家(也即其他队友玩家和/或敌对玩家)的相对位姿。其中,全局位姿包括当前玩家坐标和当前玩家角度,相对位姿则包括相对玩家的坐标、所述相对于相对玩家的相对距离以及相对角度。
其中,全局位姿和相对位姿中的角度可以包括以下几种:当前玩家视角相对身体的角度、相对玩家的船头角度、相对玩家的身体角度、相对玩家的视角角度、当前玩家的船体角度和当前玩家的视角角度。
如图3所示,在舰船类游戏的游戏过程中,玩家在进入游戏后,即会以初始方向为面向进行活动,玩家可以基于该初始方向调整视角角度。
玩家可以在保持身体位置不变的情况下转动视角角度,在玩家视角转动过程中,即可获取玩家视角相对于身体的角度,并将当前玩家视角相对身体的角度记为∠1。将当前玩家的船头相对于其他玩家的角度作为相对玩家的船头角度,并记为∠2。将当前玩家的身体相对于其他玩家的角度作为相对玩家的身体角度,并记为∠3。将当前玩家的视角相对于其他玩家的角度作为相对玩家的视角角度,并记为∠4。将当前玩家的船体相对于初始方向的角度作为当前玩家的船体角度,并记为∠5。将当前玩家的视角相对于初始方向的角度作为当前玩家的视角角度,并记为∠6。
由于在对玩家进行建模时,会对虚拟环境中的每一个玩家都进行建模,也即,分别以虚拟环境中的每一个玩家作为主玩家进行建模,进而获得每一个玩家对应的用户信息。因此,若队友玩家的数量不足和/或敌对玩家的数量不足时,可以使用默认值来对玩家的用户信息中的缺失值进行填充。其中,队友玩家的数量不足或敌对玩家的数量不足是指队友玩家或敌对玩家发生减员,例如玩家死亡或掉线等等。
若位姿信息中的角度信息无法获取时,也可以使用默认值对无法获取的角度进行填充。例如,若进行建模的当前玩家不是主玩家且无法获取当前玩家视角时,则∠1、∠4和∠6无法获得,此时,可以使用默认值对∠1、∠4和∠6进行填充。
在具体实施过程中,默认值可以设置是预先设置好的,用于表示该数值无法获取,为空值。
获取智能体观测的环境信息,对虚拟环境中的每一个玩家分别进行建模,以从用户信息中提取出玩家特征和玩家特征对应的特征值。玩家特征包括玩家的状态特征和位姿特征,状态特征包括当前玩家是否是主玩家、是否存活、移动速度等等。位姿特征包括全局位姿特征和相对位姿特征,其中,全局位姿特征包括当前玩家坐标和当前玩家角度,相对位姿特征则包括相对玩家的坐标、所述相对于相对玩家的相对距离以及相对角度。
用户配置信息可以是指玩家配置的武器信息。用户配置信息可以包括船头武器信息,船舷武器信息和甲板武器信息。
根据用户配置信息进行观测建模,从而从用户配置信息中提取出配置特征和配置特征对应的特征值。配置特征包括是否持有该武器,所述武器是否被激活,所述武器是否可用,所述武器的类型,当前瞄准方向是否在开火范围,开火范围内是否存在敌对玩家,以及所述武器的换弹时间。
全局信息包括队伍信息和游戏信息。根据全局信息进行观测建模,从而从全局信息中提取出全局特征和全局特征对应的特征值。全局特征包括队伍特征和游戏特征,队伍特征用于表示当前玩家所在队伍的游戏进展,包括全队存活数和死亡数,队伍信息用于表示游戏的全局进展,包括全局剩余玩家数和剩余游戏时间。
通过观测建模的方式分别对虚拟环境中的每一个玩家分别进行建模,表达了主玩家、队友玩家和敌对玩家之间的相对关系,使训练出的ai模型控制的智能体能够与队友玩家进行配合。并且对用户配置信息进行建模,得到能够表达游戏内武器属性的配置特征,提高训练出的ai模型控制的智能体对于游戏内武器操作的流畅程度。
s102、调用所述智能体对应的ai模型,将所述观测特征输入至所述ai模型进行预测,得到动作行为。
在得到观测特征之后,模型训练服务器即可调用智能体对应的ai模型,将观测特征输入至ai模型,由ai模型根据输入的观测特征对智能体的行为进行预测,得到动作行为。
模型训练服务器内保存有预先存储的初始ai模型,将观测特征输入该初始ai模型,由初始ai模型根据输入的观测特征对智能体的行为进行预测,从而得到动作行为。
s103、将所述动作行为发送给所述智能体,以使所述智能体执行所述动作行为,得到与所述动作行为对应的反馈信息。
在得到ai模型输出的动作行为后,模型训练服务器将所述动作行为发送给虚拟环境中的智能体,以控制智能体执行接收到的动作行为。智能体在执行接收到的动作行为之后,会产生与执行的所述动作行为对应的反馈信息,以反馈该动作行为是否合适。具体地,可以通过设置反馈函数来获得与所述动作行为对应的反馈信息。
在智能体执行动作行为的过程中,为智能体设置有一执行目标,执行目标也即智能体经过多次动作行为后需要达到的目标。在智能体每次执行相应的动作行为之后,都会对智能体该次的动作行为进行反馈,若智能体该次的动作行为使智能体接近所述执行目标,则反馈信息为正向的,表示该次的动作行为合适;若智能体该次的动作行为使智能体远离所述执行目标,则反馈信息是负向的,表示该次的动作行为不合适。
例如,若智能体的执行目标为从a点到达b点,智能体执行模型训练服务器发送的动作行为后,若智能体距离b点的距离相对智能体原位置距离b点的距离更远,则反馈信息为负向的;若智能体距离b点的距离相对智能体原位置距离b点的距离更近,则反馈信息为正向的。
在一些实施例中,可以通过一段连续时间内的反馈信息来判断所述ai模型是否收敛,例如,可以将一段时间内的反馈信息以曲线图的形式进行体现,若在一段时间内所述反馈信息一直是正向,则可以认为所述ai模型收敛。
s104、获取所述反馈信息,并将所述反馈信息、观测特征和动作行为作为训练样本。
在计算得到反馈信息后,模型训练服务器将观测特征、反馈信息和动作行为共同作为训练样本进行保存,以用于对ai模型进行训练。
由于智能体的动作行为是动态的,也即在智能体在一段时间内持续的执行动作行为。因此,智能体在一段时间内每一时刻观测的环境信息可能会有所不同,进而导致从所述环境信息中提取出的观测特征不相同。为了提高训练得到的ai模型的预测准确度,可以将当前时刻的观测特征、当前时刻的动作行为,当前时刻的反馈信息、下一时刻的观测特征以及下一时刻智能体是否停止操作共同作为训练样本进行保存。
在一些实施例中,所述方法还包括:获取多个所述训练样本的行为顺序,并将多个所述训练样本按照所述行为顺序保存在训练样本序列中;若所述训练样本序列的长度大于预设阈值,则按照所述行为顺序删除所述训练样本。
所述行为顺序是指智能体执行每个动作行为的顺序。对于在一段时间内采集到的连续的训练样本,根据多个训练样本的行为顺序将所述训练样本保存在训练样本序列中,当训练样本序列内存储的训练样本数量大于预设阈值时,则按照行为顺序删除部分训练样本。
其中,预设阈值可以是指训练样本序列内所能够存储的训练样本数量的最大值,在按照行为顺序删除训练样本时,可以删除行为顺序的先后顺序,从前到后依次删除。
在一些实施例中,模型训练服务器控制的智能体的数量可以为多个,在有多个智能体时,可以分别获取每个智能体执行每个动作行为的行为顺序,根据所述行为顺序将训练样本进行保存。
在一些实施例中,所述方法还包括:对所述动作行为进行编码,以得到行为编码。
动作行为包括行为类别和行为参数,在对动作行为进行编码时,可以对动作行为进行行为建模,以区分出行为类别和行为参数,然后基于预先设置的编码策略对行为类别和行为参数进行编码,得到行为编码。具体地可以采用one-hot编码来对行为类别和行为参数进行编码。
具体地,行为建模可以是层级建模,具体具有两个层级,包括行为选择层和行为参数层,其中,行为选择层是指选择一个行为类别,行为参数层是指根据选择的行为类别选择一个相对应的行为参数,不同的行为类别也对应不同的行为参数。对动作行为进行行为建模降低了每一个维度上的标签个数,有利于ai模型的训练。
例如,行为类别可以包括水平方向瞄准偏移值、垂直方向瞄准偏移值、开火、移动和武器切换等。
其中,水平方向瞄准偏移值和垂直方向瞄准偏移值可以根据不同的船体类型和武器类型,在水平或垂直方向上设置不同个数的标签。
开火是指智能体根据当前瞄准角度,进行一次开火行为。
移动具体可以分为线速度和角速度,线速度与角速度可以进行组合同时使用。
武器切换是指若当前武器不可用,或者同时有多个武器可以使用时,需要切换其他武器,可以根据武器编号或者使用顺序设置不同个数的标签。
示例性的,可以设置水平方向瞄准偏移量:在区间[-30度,30度]内,每1度一个标签,共61个标签。
垂直方向瞄准偏移量:在区间[-10度,10度]内,每1度一个标签,共11个标签。
开火:一个标签。
移动的线速度与角速度使用组合:直线前进,前进右转,原地右转,后退右转,直线后退,后退左转,原地左转,前进左转,共8个标签。
武器切换:使用不换武器,上一把武器和下一把武器,共3个标签。
按照上述建模对当前动作行为进行one-hot编码,请参阅图4,若当前行为动作为原地左转,则输出的one-hot编码为[[0,0,0,1,0],[0,0,1,0…],[0,0,…,1,…],[1],[0,0,0,0,0,0,1,0],[1,0,0]],第一个元素[0,0,0,1,0]为行为选择层,表示选择第4类行为,也即移动。第二个元素至第六元素分别表示每类行为中对应的行为参数,在第4类行为中选择对应的行为参数,也即[0,0,0,0,0,0,1,0],对应的具体的行为参数为原地左转。
s105、根据所述训练样本对所述ai模型进行训练更新。
在得到训练样本后,即可根据训练样本对ai模型进行训练更新,在ai模型收敛后,对收敛的ai模型进行保存,完成训练。
在一些实施例中,请参阅图5,所述ai模型包括第一特征编码层、第二特征编码层、第三特征编码层、编码拼接层、时序模型层和输出层;所述根据所述训练样本对所述ai模型进行训练更新,包括:
通过所述第一特征编码层对所述玩家特征进行编码,以得到玩家特征编码;通过所述第二特征编码层对所述配置特征进行编码,以得到配置特征编码;通过所述第三特征编码层对所述全局特征进行编码,以得到全局特征编码;通过所述编码拼接层对所述玩家特征编码、配置特征编码和全局特征编码进行拼接,得到拼接编码;将所述拼接编码输入时序模型层,以得到时序拼接编码;通过所述输出层基于所述时序拼接编码输出动作行为和局面评估值,并根据所述反馈信息和所述局面评估值确定优势值;根据所述优势值计算损失值,以根据所述损失值对所述ai模型进行训练更新。
通过第一特征编码层对玩家特征编码,得到玩家特征编码,在有多个玩家时,可以通过所述第一特征编码层对多个玩家的玩家特征进行编码,以得到多个玩家的玩家特征编码。通过第二特征编码层对配置特征进行编码,以得到配置特征编码,通过第三特征编码层对全局特征进行编码,以得到全局特征编码。
其中,第一特征编码层、第二特征编码层和第三特征编码层均可以使用多层感知机来实现。对多个玩家的玩家特征使用共享的第一特征编码层来进行编码,而对于不同类型的特征,也即对于玩家特征、配置特征和全局特征采用不同的特征编码层,减少了ai模型内参数的数量,提升ai模型的训练效率,并且也提升了ai模型的表达能力和泛化能力。
编码拼接层将玩家特征编码、配置特征编码和全局特征编码进行拼接,得到一条拼接编码,并将得到的拼接编码输入时序模型层,其中,时序模型可以是lstm,得到时序拼接编码,最终将时序拼接编码输入至输出层,由输出层进行最终的结果输出。
输出层包括行为预测部分和局面评估部分,其中,行为预测部分是根据输入的时序拼接编码输出的各个动作行为的采样概率,表示执行相应动作行为的概率。局面评估部分则是根据输入的时序拼接编码输出的一个局面评估值,表示从智能体开始进行环境观测后执行的动作行为的反馈信息的累加和的预测值,用于训练ai模型。
其中,在输出层输出执行动作行为的概率后,即可根据多个动作行为的概率从多个动作行为中确定发送给智能体执行的动作行为,以控制智能体进行相应的动作,并进行新一轮的环境信息的采集,进而生成训练样本,以形成循环,不断的产生训练样本对ai模型进行训练,直至所述ai模型收敛。
在一些实施例中,若输出的动作行为为进行编码后的动作行为,则可以将编码后的动作行为进行解码,以使智能体执行相应的动作行为。
例如,若输出的编码后的动作行为为[[0,0,0,1,0],[0,0,1,0…],[0,0,…,1,…],[1],[0,0,0,0,0,0,1,0],[1,0,0]],则对应的执行效果为原地左转。
在输出层的局面评估部分输出局面评估值后,即可根据所述局面评估值和训练样本中的所述反馈信息计算优势值,进而利用优势值计算ai模型的损失值,最终结合反向传播算法来更新所述ai模型的参数,直至所述ai模型收敛。
由于训练样本中包括五个元素,分别是当前时刻的观测特征、当前时刻的动作行为、当前时刻的反馈信息、下一时刻的观测特征以及下一时刻智能体是否停止操作。
因此,对于t时刻的训练样本,可以表示为[st,at,rt,st+1,dt+1],其中,st表示当前时刻的观测特征,at表示当前时刻的动作行为,rt表示当前时刻的反馈信息,st+1表示下一时刻的观测特征,dt+1表示下一时刻智能体是否停止操作。
那么,在一段时间内连续的训练样本可以表示为,从t时刻到t时刻[st,at,rt,st+1,dt+1],[st+1,at+1,rt+1,st+2,dt+2],…,[st,at,rt,st+1,dt+1]。
在进行优势值计算时,可以采用如下公式:
at=δt+(γλ)δt+1+…+(γλ)t-tδt
其中,at是从t时刻到t时刻连续的训练样本得到的优势值,δt表示t时刻的优势值,v(st)表示t时刻ai模型输出的局面评估值,γ和λ是训练超参数。通过计算优势值来计算所述ai模型的损失值,能够降低局面评估不准造成的目标偏移的影响。
所述ai模型的损失值包括玩家行为损失值和局面评估损失值,其中,局面评估损失值即为计算出的优势值,玩家行为损失值则采用了一种策略近似的loss计算方法。策略近似loss近似于一种基于置信度区间(trust-region)的计算,结果相似,计算速度更快,使ai模型更快地收敛。
在计算玩家行为损失值时,具体的计算方法可以为:
记当前ai模型的训练参数为p,更新前的训练参数为p′,p(st,at)表示当前训练参数在状态st下进行行为at的概率。
ratioclip=max(min(ration,1+∈),1-∈)
losspolicy=min(ratio*at,ratioclip*at)
lossvalue=at
losstotal=losspolicy+c1lossvalue+c2|w|
其中,ratio表示整体近似比例,ratioclip表示对整体近似比例进行选择后得到的截断近似比例,ration为定值,at是从t时刻到t时刻连续的训练样本得到的优势值,losspolicy表示玩家行为损失值,lossvalue表示局面评估损失值,losstotal则为最终计算得到的总的损失值,c1,c2为训练超参数,|w|为模型参数的i2正则项。
利用上述计算公式即可计算出ai模型总的损失值losstotal。在计算出所述ai模型的损失值后,即可根据计算出的损失值判断所述ai模型是否收敛。计算出的所述ai模型的损失值越趋近于0,则说明此时ai模型的预测准确率越高,所述ai模型越收敛。
采用优势值和策略近似的方式计算所述ai模型的损失值,降低了所述ai模型在训练过程中的目标偏离问题,提升了训练效率,降低了时间成本和计算成本。
在一些实施例中,在对所述ai模型进行训练时,虚拟环境服务器中可以接入多个智能体,使多个智能体以自我对弈的方式学习多智能体之间的合作,多个智能体可以与同一个模型训练服务器连接,并采集多个环境信息,将采集到的多个环境信息作为不同批次,分别对所述ai模型进行训练。
上述实施例提供的ai模型训练方法,通过获取虚拟环境中智能体观测的环境信息,从环境信息中提取智能体的观测特征,然后调用智能体对应的ai模型,将观测特征输入ai模型进行预测,得到动作行为,将动作行为发送给智能体,使智能体执行所述动作行为,并得到与动作行为对应的反馈信息,最后将反馈信息、观测特征和动作行为作为训练样本,根据所述训练样本对ai模型进行训练更新。通过从环境信息中提取观测特征,并将智能体基于观测特征执行的动作行为对应的反馈信息共同作为训练样本,对ai模型进行训练更新,从而提高在多智能体控制领域下ai模型的准确率。
请参阅图6,图6是本申请实施例提供的使用ai模型的场景示意图。
如图6所示,真实玩家和智能体均接入虚拟环境服务器,由虚拟环境服务器将虚拟环境中的智能体观测到的环境信息发送至ai在线服务器,ai在线服务器对环境信息进行特征提取,得到观测特征,并将观测特征输入前述训练的ai模型进行行为预测,得到ai模型输出的动作行为,并将所述ai模型输出的动作行为对应的动作指令发送至虚拟环境服务器中的智能体,以控制智能体根据所述行为指令进行动作。
请参阅图7,图7为本申请实施例提供的ai模型使用方法的流程示意图。
如图7所示,该ai模型使用方法包括步骤s201至步骤s204。
s201、获取虚拟环境中的智能体观测的环境信息,从所述环境信息中提取所述智能体的观测特征。
在实际使用过程中,真实玩家和智能体均接入虚拟环境服务器,由ai在线服务器获取虚拟环境中的智能体观测到的环境信息,并从环境信息中提取智能体的观测特征。
其中,智能体观测的环境信息可以包括用户信息、用户配置信息和全局信息。从所述环境信息提取所述智能体的观测特征具体可以是从所述用户信息、用户配置信息和全局信息中提取对应的玩家特征、配置特征和全局特征。也即,观测特征包括玩家特征、配置特征和全局特征。
具体地,可以利用观测建模的方法,对虚拟环境中的每一个用户进行玩家建模,对虚拟环境中用户的用户配置进行建模以及对全局进行全局建模,从而得到玩家特征、配置特征和全局特征。其中,所述用户配置可以是指玩家配置的武器信息。
s202、将所述观测特征输入至ai模型,以得到多个动作行为对应的概率。
ai在线服务器在得到观测特征后,将所述观测特征输入ai模型,以通过ai模型的输出层输出智能体在该观测特征下,执行每个动作行为的概率。其中,所述ai模型为采用根据前述的模型训练方法得到的模型。
s203、根据多个所述动作行为对应的概率从多个动作行为中确定目标动作行为。
ai模型的输出层根据输入的观测特征输出多个动作行为对应的概率,在确定目标动作行为时,可以将概率最高的动作行为作为目标动作行为。
在一些实施例中,所述动作行为是经过编码后的动作行为,在确定目标动作行为时,可以将多个所述动作行为对应的概率输入行为建模,从而使行为建模根据概率分别采样出对应的行为类别和行为参数,最终从多个动作行为中确定目标动作行为。
在一些实施例中,请参阅图8,步骤s203包括步骤s2031和步骤s2032。
s2031、按照预先设置的行为规则对多个所述动作行为进行筛选,以得到筛选后的动作行为。
在得到ai模型输出的多个动作行为对应的概率后,可以按照预先设置的行为规则对多个动作行为分别进行筛选,以从中过滤掉非法行为,得到筛选后的动作行为。
其中,所述预先设置的行为规则可以是指根据当前游戏规则设置的行为规则,例如,在当前游戏场景地图中设置了禁行区,表示该区域内玩家无法进入或者不建议进入。那么可以根据该行为规则,将可能使智能体进入禁行区的动作行为作为非法行为,从多个动作行为中过滤掉,从而得到筛选后的动作行为。
s2032、根据筛选后的所述动作行为对应的概率确定目标动作行为。
在得到筛选后的动作行为后,即可根据筛选后的动作行为确定目标动作行为。在进行目标动作行为的确定时,可以从筛选后的所述动作行为中选择概率最高的动作行为作为目标动作行为。
s204、将所述目标动作行为发送至所述智能体,以使所述智能体根据所述目标动作行为执行对应的动作。
ai在线服务器根据确定的目标动作行为生成行为指令,并将所述行为指令发送至虚拟环境服务器中的智能体,以控制所述智能体根据所述行为指令所表征的目标动作行为执行对应的动作。
所述智能体在执行完毕所述行为指令后,可以重新获取此时的环境信息,并将所述环境信息再次发送至ai在线服务器,由ai在线服务器获取所述环境信息,并从中提取出观测特征,进而继续对ai用户的下一步行为进行预测,以使所述智能体能够与真实玩家进行合作。
上述实施例提供的模型使用方法,获取智能体采集到的环境信息,并从环境信息中提取出观测特征,将所述观测特征输入ai模型,以得到多个动作行为对应的概率,再根据多个动作行为对应的概率从多个动作行为中确定目标动作行为,最终将目标动作行为发送至智能体,以使智能体执行对应的动作。在需要调用ai模型与真实用户共同进行游戏时,使智能体能够根据实际场景做出相应动作,实现ai模型的快速调用,有效提高真实用户的用户体验。
上述实施例提供的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。
请参阅图9,图9是本申请实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器或终端。
参阅图9,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种ai模型训练和/或ai模型使用方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种ai模型训练和/或ai模型使用方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
获取虚拟环境中的智能体观测的环境信息,从所述环境信息提取所述智能体的观测特征;
调用所述智能体对应的ai模型,将所述观测特征输入至所述ai模型进行预测,得到动作行为;
将所述动作行为发送给所述智能体,以使所述智能体执行所述动作行为,得到与所述动作行为对应的反馈信息;
获取所述反馈信息,并将所述反馈信息、观测特征和动作行为作为训练样本;
根据所述训练样本对所述ai模型进行训练更新。
在一个实施例中,所述环境信息包括用户信息、用户配置信息和全局信息;所述处理器在实现所述从所述环境信息提取所述智能体的观测特征时,用于实现:
从所述用户信息、用户配置信息和全局信息提取对应的玩家特征、配置特征和全局特征。
在一个实施例中,所述ai模型包括第一特征编码层、第二特征编码层、第三特征编码层、编码拼接层、时序模型层和输出层;所述处理器在实现所述根据所述训练样本对所述ai模型进行训练更新时,用于实现:
通过所述第一特征编码层对所述玩家特征进行编码,以得到玩家特征编码;
通过所述第二特征编码层对所述配置特征进行编码,以得到配置特征编码;
通过所述第三特征编码层对所述全局特征进行编码,以得到全局特征编码;
通过所述编码拼接层对所述玩家特征编码、配置特征编码和全局特征编码进行拼接,得到拼接编码;
将所述拼接编码输入时序模型层,以得到时序拼接编码;
通过所述输出层基于所述时序拼接编码输出动作行为和局面评估值,并根据所述反馈信息和所述局面评估值确定优势值;
根据所述优势值计算损失值,以根据所述损失值对所述ai模型进行训练更新。
在一个实施例中,所述处理器在实现所述通过所述第一特征编码层对所述玩家特征进行编码,以得到玩家特征编码时,用于实现:
通过所述第一特征编码层对多个玩家的玩家特征进行编码,以得到多个玩家的玩家特征编码。
在一个实施例中,所述处理器还用于实现:
对所述动作行为进行编码,以得到行为编码。
在一个实施例中,所述动作行为包括行为类别和行为参数;所述处理器在实现所述对所述动作行为进行编码,以得到行为编码时,用于实现:
基于预先设置的编码策略对所述行为类别和行为参数进行编码,以得到行为编码。
在一个实施例中,所述处理器还用于实现:
获取多个所述训练样本的行为顺序,并将多个所述训练样本按照所述行为顺序保存在训练样本序列中;
若所述训练样本序列的长度大于预设阈值,则按照所述行为顺序删除所述训练样本。
在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
获取虚拟环境中的智能体观测的环境信息,从所述环境信息中提取所述智能体的观测特征;
将所述观测特征输入至ai模型,以得到多个动作行为对应的概率,所述ai模型为采用前述的模型训练方法得到的模型;
根据多个所述动作行为对应的概率从多个动作行为中确定目标动作行为;
将所述目标动作行为发送至所述智能体,以使所述智能体根据所述目标动作行为执行对应的动作。
在一个实施例中,所述处理器在实现所述根据多个所述动作行为对应的概率从多个动作行为中确定目标动作行为时,用于实现:
按照预先设置的行为规则对多个所述动作行为进行筛选,以得到筛选后的动作行为;
根据筛选后的所述动作行为对应的概率确定目标动作行为。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项ai模型训练和/或ai模型使用方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。