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

确定虚拟对象行为的方法、装置、设备及介质

文献发布时间:2023-06-19 19:28:50


确定虚拟对象行为的方法、装置、设备及介质

本申请要求于2021年10月9日提交的申请号为202111174351.0、发明名称为“确定虚拟对象行为的方法、装置、设备及介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

本申请涉及机器学习领域,特别涉及一种确定虚拟对象行为的方法、装置、设备及介质。

背景技术

在虚拟世界会设置AI(Artificial Intelligence,人工智能)智能体,AI智能体会模拟真人在虚拟世界中的行为。

相关技术会预先设置行为树,行为树中的每个分支节点是逻辑单元,用于管理叶节点,行为树中的每个叶节点是执行单元,用于执行AI智能体的具体行为。在确定AI智能体的行为时,会先获取AI智能体的状态(例如,攻击、巡逻、逃跑等),而后根据AI智能体的状态选择分支节点,接下来,分支节点从其管理的叶节点中确定出AI智能体需要执行的行为。

虚拟世界的实际情况较为复杂,而相关技术只能从分支节点管理的叶节点中确定出较为简单的行为,使得AI智能体的表现较差。

发明内容

本申请实施例提供了一种确定虚拟对象行为的方法、装置、设备及介质,该方法可以通过行为树和目标活动模型共同确定虚拟对象的期望行为,能够让虚拟对象实施较为复杂的动作。所述技术方案如下:

根据本申请的一个方面,提供了一种确定虚拟对象行为的方法,该方法包括:

获取所述虚拟对象的当前状态;

在所述虚拟对象的行为树中,确定与所述虚拟对象的所述当前状态对应的目标行为模型,所述行为树用于记录所述虚拟对象的状态和所述虚拟对象的行为模型之间的对应关系;

调用所述目标行为模型,根据所述当前状态在至少两个候选行为中确定所述虚拟对象的期望行为。

根据本申请的另一个方面,提供了一种确定虚拟对象行为的装置,该装置包括:

获取模块,用于获取所述虚拟对象的当前状态;

确定模块,用于在所述虚拟对象的行为树中,确定与所述虚拟对象的所述当前状态对应的目标行为模型,所述行为树用于记录所述虚拟对象的状态和所述虚拟对象的行为模型之间的对应关系;

调用模块,用于调用所述目标行为模型,根据所述当前状态在至少两个候选行为中确定所述虚拟对象的期望行为。

在本申请的一种可选实施方式中,所述调用模块,还用于调用所述目标行为模型,根据所述当前状态确定n个候选行为对应的n个候选质量值,n为大于1的正整数;基于所述n个候选质量值,计算出所述当前状态对应的不确定度,所述不确定度用于预测在所述虚拟对象处于所述当前状态时,所述n个候选行为中的所述期望行为的分散性;在所述不确定度小于不确定度阈值的情况下,将所述n个候选质量值中的最大值对应的候选行为确定为所述期望行为。

在本申请的一种可选实施方式中,所述调用模块,还用于计算所述n个候选质量值的方差和;计算所述方差和与所述n个候选质量值的个数之间的比值,得到所述当前状态对应的所述不确定度。

在本申请的一种可选实施方式中,所述调用模块,还用于调用所述目标行为模型,通过所述当前状态值,计算所述n个候选行为对应的n个候选收益值,所述n个候选收益值中的第i个候选收益值用于预测所述虚拟对象在执行第i个候选行为后获得的收益,i为小于n的正整数;将所述n个候选收益值中的最大值对应的候选行为确定为所述期望行为。

在本申请的一种可选实施方式中,所述调用模块,还用于在所述不确定度大于所述不确定度阈值的情况下,从推荐数据中确定与所述当前状态对应的所述期望行为,所述推荐数据用于记录所述虚拟对象的所述当前状态和推荐的期望行为之间的对应关系。

在本申请的一种可选实施方式中,所述调用模块,还用于调用所述目标行为模型,将所述当前状态转化为当前状态值,所述当前状态值用于通过数值表示所述虚拟对象的状态或所述虚拟对象所处环境的状态;调用所述目标行为模型,基于所述当前状态值计算所述n个候选行为对应的所述n个候选质量值。

在本申请的一种可选实施方式中,所述行为树中的每个叶节点代表一个行为模型;所述确定模块,还用于根据所述当前状态,从所述行为树中的至少两个叶节点中确定目标叶节点;根据所述目标叶节点确定所述目标行为模型。

根据本申请的一个方面,提供了一种行为模型的训练方法,该方法包括:

获取样本数据,所述样本数据包括样本对象的样本状态和样本建议行为;

调用所述行为模型中的目标行为模型,根据所述样本状态确定m个样本质量值和样本期望行为,m为大于1的正整数;

根据所述样本建议行为、所述样本期望行为和所述m个样本质量值,对所述目标行为模型进行第一阶段训练;

调用所述行为模型中的行为树,采用无监督训练对所述行为模型进行第二阶段训练,所述行为树用于记录所述虚拟对象的状态和所述虚拟对象的所述行为模型之间的对应关系。

根据本申请的一个方面,提供了一种行为模型的训练装置,该装置包括:

样本获取模块,用于获取样本数据,所述样本数据包括样本对象的样本状态和样本建议行为;

模型调用模块,用于调用所述行为模型中的目标行为模型,根据所述样本状态确定m个样本质量值和样本期望行为,m为正整数;

训练模块,用于根据所述样本建议行为、所述样本期望行为和所述m个样本质量值,对所述目标行为模型进行第一阶段训练;

所述训练模块,还用于调用所述行为模型中的行为树,采用无监督训练对所述行为模型进行第二阶段训练,所述行为树用于记录所述虚拟对象的状态和所述虚拟对象的所述行为模型之间的对应关系。

在本申请的一种可选实施方式中,所述训练模块,还用于确定所述样本建议行为和所述样本期望行为之间的第一误差;采样得到所述m个样本质量值中的采样样本质量值;根据所述采样样本质量值计算第一价值函数值;以最大化所述第一价值函数值为训练目标,根据所述第一误差对所述目标行为模型进行所述第一阶段训练。

在本申请的一种可选实施方式中,所述训练模块,还用于根据所述样本对象的训练状态,从所述行为模型中的所述行为树中确定目标训练行为模型;调用所述目标训练行为模型,根据所述训练状态确定k个训练质量值,k为大于1的正整数;采样得到所述k个训练质量值中的采样训练质量值;根据所述采样训练质量值计算第二价值函数值;以最大化所述第二价值函数值为训练目标,采用所述无监督训练对所述行为模型进行所述第二阶段训练。

在本申请的一种可选实施方式中,所述训练模块,还用于交替进行所述第一阶段训练和所述第二阶段训练,对所述行为模型进行训练。

根据本申请的另一方面,提供了一种计算机设备,该计算机设备包括:处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上方面所述的确定虚拟对象行为的方法,或,实现如上方面所述的行为模型的训练方法。

根据本申请的另一方面,提供了一种计算机存储介质,计算机可读存储介质中存储有至少一条程序代码,程序代码由处理器加载并执行以实现如上方面所述的确定虚拟对象行为的方法,或,实现如上方面所述的行为模型的训练方法。

根据本申请的另一方面,提供了一种计算机程序产品或计算机程序,上述计算机程序产品或计算机程序包括计算机指令,上述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从上述计算机可读存储介质读取上述计算机指令,上述处理器执行上述计算机指令,使得上述计算机设备执行如上方面所述的确定虚拟对象行为的方法,或,实现如上方面所述的行为模型的训练方法。

本申请实施例提供的技术方案带来的有益效果至少包括:

通过虚拟对象的当前状态从行为树中确定目标行为模型,调用目标行为模型确定虚拟对象的期望行为。由于该期望行为是通过目标行为模型获得的,使得虚拟对象执行的期望行为更加符合人类的逻辑,强化虚拟对象的能力,使得虚拟对象拥有更高的智能。

且,将训练模型的部分负担转移到行为树上,减小了训练目标行为模型需要的运算量,可以加速目标行为模型的收敛,以实现目标行为模型的快速训练。还可以通过更换行为树上的行为模型以实现模块化设计,方便技术人员按照实际需求修改、优化行为树。

附图说明

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

图1是本申请一个示例性实施例提供的计算机系统的结构示意图;

图2是本申请一个示例性实施例提供的确定虚拟对象行为的方法的流程示意图;

图3是本申请一个示例性实施例提供的行为树的示意图;

图4是本申请一个示例性实施例提供的确定虚拟对象行为的方法的流程示意图;

图5是本申请一个示例性实施例提供的确定虚拟对象行为的示意图;

图6是本申请一个示例性实施例提供的目标行为模型的示意图;

图7是本申请一个示例性实施例提供的目标行为模型的示意图;

图8是本申请一个示例性实施例提供的行为模型的训练方法的流程示意图;

图9是本申请一个示例性实施例提供的行为模型的训练方法的示意图;

图10是本申请一个示例性实施例提供的确定虚拟对象行为的方法的流程示意图;

图11是本申请一个示例性实施例提供的确定车辆行为的方法的流程示意图;

图12是本申请一个示例性实施例提供的确定虚拟对象行为的装置的模型示意图;

图13是本申请一个示例性实施例提供的行为模型的训练装置的模型示意图;

图14是本申请一个示例性实施例提供的计算机设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

首先,对本申请实施例中涉及的名词进行介绍:

行为树(Behavior Tree):是一种树状的数据结构,行为树上的每一个节点都是一个行为(节点必须包含函数)。每次调用会从根节点开始遍历,通过检查行为的执行状态来执行不同的节点。

强化学习:强化学习是机器学习领域之一,受到行为心理学的启发,主要关注智能体如何在环境中采取不同的行动,以最大限度地提高累积奖励。

Q Learning(质量学习,Q指Quality):Q Learning是强化学习中的一种,是一种以马尔科夫决策过程(Markov Decision Processes,MDPs)为理论基础的强化学习算法。在Qlearning中,Q值的更新遵守以下规则:

Q(s

其中,s

智能交通系统(Intelligent Traffic System,ITS):又称智能运输系统(Intelligent Transportation System),是将先进的科学技术(信息技术、计算机技术、数据通信技术、传感器技术、电子控制技术、自动控制理论、运筹学、人工智能等)有效地综合运用于交通运输、服务控制和车辆制造,加强车辆、道路、使用者三者之间的联系,从而形成一种保障安全、提高效率、改善环境、节约能源的综合运输系统。

智能车路协同系统(Intelligent Vehicle Infrastructure CooperativeSystems,IVICS):简称车路协同系统,是智能交通系统(ITS)的一个发展方向。车路协同系统是采用先进的无线通信和新一代互联网等技术,全方位实施车车、车路动态实时信息交互,并在全时空动态交通信息采集与融合的基础上开展车辆主动安全控制和道路协同管理,充分实现人车路的有效协同,保证交通安全,提高通行效率,从而形成的安全、高效和环保的道路交通系统。

图1示出了本申请一个示例性实施例提供的计算机系统的结构示意图。计算机系统100包括:终端120和服务器140。

终端120上运行有与确定虚拟对象行为相关的应用程序。该应用程序可以是app(application,应用程序)中的小程序,也可以是专门的应用程序,也可以是网页客户端。示例性的,用户在终端120上进行与数据处理有关的操作。终端120包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。需要说明的是,本申请实施例可以应用于各种场景,包括但不限于虚拟世界、云技术、人工智能、智慧交通、辅助驾驶等。

终端120通过无线网络或有线网络与服务器140相连。

服务器140可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器140用于为确定虚拟对象行为应用程序提供后台服务,并将结果发送到终端120上。可选地,服务器140承担主要计算工作,终端120承担次要计算工作;或者,服务器140承担次要计算工作,终端120承担主要计算工作;或者,服务器140和终端120两者采用分布式计算架构进行协同计算。

图2示出了本申请一个实施例提供的确定虚拟对象行为的方法的流程示意图。该方法可由图1所示的终端120或服务器140或其他计算机设备执行,该方法包括以下步骤:

步骤202:获取虚拟对象的当前状态。

虚拟对象是指在虚拟环境中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如:在虚拟环境中显示的人物、动物、植物、油桶、墙壁、石块等。可选地,当虚拟环境为三维虚拟环境时,虚拟对象是基于动画骨骼技术创建的三维立体模型,每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。可选地,当虚拟环境为二维虚拟环境时,虚拟对象是基于动画技术创建的二维平面模型,每个虚拟对象在二维虚拟环境中具有自身的形状和面积,占据二维虚拟环境中的一部分面积。

在本申请实施例中,虚拟对象是指由AI控制的可活动对象。示例性的,虚拟对象至少包括NPC(Non-Player Character,非玩家角色)、AI陪玩、AI托管对象、AI智能体中的至少一种。可选地,本申请实施例中的虚拟对象还可以被替换为现实对象,例如,现实对象至少包括环境探索机器人、运动机器人和救灾机器人中的至少一种。

当前状态指虚拟对象在当前时刻的状态和/或虚拟对象所处环境的状态。可选地,当前状态包括虚拟对象当前执行的动作、虚拟对象的生命值、虚拟对象的形态、虚拟对象的姿势、虚拟对象的类型中的至少一种。可选地,当前状态包括虚拟对象所处环境的类型、虚拟对象所处环境的位置、虚拟对象所处环境的复杂度中的至少一种。

步骤204:在虚拟对象的行为树中,确定与虚拟对象的当前状态对应的目标行为模型,行为树用于记录虚拟对象的状态和虚拟对象的行为模型之间的对应关系。

在本申请实施例中,行为树中的每一个叶节点代表一个行为模型,根据当前状态,从行为树中的至少两个叶节点中确定目标叶节点;根据目标叶节点确定目标行为模型。

示例性的,如图3所示,虚拟对象301自身所处的状态可大致分为攻击角色、巡逻和逃跑三种状态。若虚拟对象301处于攻击角色状态且虚拟对象301的生命值大于生命值阈值,则调用普通攻击模型302。若虚拟对象301处于攻击角色状态且虚拟对象301的生命值小于生命值阈值,则调用疯狂攻击模型303。若虚拟对象301处于逃跑状态且虚拟对象301的生命值小于逃跑阈值,则调用逃跑模型304。若虚拟对象301处于逃跑状态且虚拟对象301的生命值大于逃跑阈值,则调用反击模型305。

可选地,在虚拟对象的行为树中,确定与虚拟对象的当前状态对应的动作。示例性的,如图3所示,若虚拟对象301处于巡逻状态且虚拟对象301的周围存在其它虚拟对象,则控制虚拟对象301警戒。若虚拟对象301处于巡逻状态且虚拟对象301的周围不存在其它虚拟对象,则控制虚拟对象301继续巡逻。

需要说明的是,由于在本申请实施例中,将行为树和行为模型进行结合,有利于模块化设计,方便技术人员根据实际需求调整行为树和行为模型。示例性的,原先虚拟对象行为树上的行为模型包括普通攻击模型,当技术人员需要调整虚拟对象的行为时,可以直接将普通攻击模型替换为疯狂攻击模型,不需要重新训练行为模型就可以直接使用。另一方面,在训练目标行为模型时,将部分模型训练量转移到行为树上,可以加快目标行为模型的收敛,实现目标行为模型的快速训练。

步骤206:调用目标行为模型,根据当前状态在至少两个候选行为中确定虚拟对象的期望行为。

候选行为是指虚拟对象可执行的行为。候选行为可由技术人员自行设置。示例性地,候选行为包括但不限于前进、后退、跳跃、下蹲、旋转、攀爬、释放技能、攻击、防御、调整身体姿态、爬行、步行、骑行、飞行、驾驶、拾取、射击、投掷中的至少一种。

期望行为是指符合人类心理学逻辑的行为。示例性地,在虚拟对象是虚拟人物的情况下,当虚拟对象位于悬崖边时,为防止虚拟对象从悬崖上掉落,虚拟对象的期望行为是远离悬崖。示例性地,在虚拟对象是虚拟人物的情况下,若虚拟对象想要从A地到达B地,为缩短虚拟对象的移动时间,期望行为是虚拟对象沿最短路径从A地到达B地。

期望行为可以是候选行为中的一种行为,也可以是候选行为中的多种行为。

目标行为模型包括DQN(Deep Q-learning Net,深度Q学习网络)模型、A3C(Asynchronous Advantage Actor-Critic,异步的优势行动者评论家算法)模型、OpenAI(Open Artificial Intelligence,开放人工智能)模型、A2C(Advantage Actor Critic,优势动作评论算法)模型、actor-critic(动作-评论)方法、HRL(HIerarchicalReinforcement learning,分层强化学习)模型、HIRO(HIerarchical Reinforcementlearning with Off-policy correction,具有非策略校正的分层强化学习)模型、DDPG(Deep Deterministic Policy Gradient,深度确定性策略梯度)模型中的至少一种。

综上所述,本实施例通过虚拟对象的当前状态从行为树中确定目标行为模型,调用目标行为模型确定虚拟对象的期望行为。由于该期望行为是通过目标行为模型获得的,使得虚拟对象执行的期望行为更加符合人类的逻辑,强化虚拟对象的能力,使得虚拟对象拥有更高的智能。还将训练模型的部分负担转移到行为树上,减小了训练目标行为模型需要的运算量,可以加速目标行为模型的收敛,以实现目标行为模型的快速训练。还可以通过更换行为树上的行为模型以实现模块化设计,方便技术人员按照实际需求修改、优化行为树。

在接下来的实施例中,在调用目标行为模型后,会确定候选行为对应的候选质量值,再由候选质量值计算出不确定度,通过不确定度得到虚拟对象的期望行为,使得期望行为更加符合人类的逻辑,强化虚拟对象的能力,使得虚拟对象拥有更高的智能。

图4示出了本申请一个实施例提供的确定虚拟对象行为的方法的流程示意图。该方法可由图1所示的终端120或服务器140或其他计算机设备执行,该方法包括以下步骤:

步骤401:获取虚拟对象的当前状态。

虚拟对象是指在虚拟环境中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如:在虚拟环境中显示的人物、动物、植物、油桶、墙壁、石块等。

当前状态指虚拟对象在当前时刻的状态和/或虚拟对象所处环境的状态。可选地,当前状态包括虚拟对象当前执行的动作、虚拟对象的生命值、虚拟对象的形态、虚拟对象的姿势、虚拟对象的类型中的至少一种。可选地,当前状态包括虚拟对象所处环境的类型、虚拟对象所处环境的位置、虚拟对象所处环境的复杂度中的至少一种。

步骤402:在虚拟对象的行为树中,确定与虚拟对象的当前状态对应的目标行为模型。

在本申请实施例中,行为树中的每一个叶节点代表一个行为模型,根据当前状态,从行为树中的至少两个叶节点中确定目标叶节点;根据目标叶节点确定目标行为模型。

需要说明的是,由于在本申请实施例中,将行为树和行为模型进行结合,有利于模块化设计,方便技术人员根据实际需求调整行为树和行为模型。示例性的,原先虚拟对象行为树上的行为模型包括普通攻击模型,当技术人员需要调整虚拟对象的行为时,可以直接将普通攻击模型替换为疯狂攻击模型,不需要重新训练行为模型就可以直接使用。另一方面,在训练目标行为模型时,将部分模型训练量转移到行为树上,可以加快目标行为模型的收敛,实现目标行为模型的快速训练。

步骤403:调用目标行为模型,根据当前状态确定n个候选行为对应的n个候选质量值。

其中,n为大于1的正整数。

在本申请实施例中,候选质量值指候选行为对应的Q值。Q值是一种评价函数,Q值用于评价处于当前状态的虚拟对象在执行某一候选行为后的状态。

目标行为模型包括DQN模型、A3C模型、OpenAI模型、A2C模型、actor-critic方法、HRL模型、HIRO模型、DDPG模型中的至少一种。

在本申请的一种可选实施方式中,该步骤包括以下子步骤:

1、调用目标行为模型,将当前状态转化为当前状态值。

当前状态值用于通过数值表示虚拟对象的状态或虚拟对象所处环境的状态。

示例性的,若当前状态表示的是虚拟对象在虚拟环境中所处的位置,则使用坐标表示当前状态,例如,使用坐标(3,5)表示虚拟对象在虚拟环境中的位置。

2、调用目标行为模型,基于当前状态值计算n个候选行为对应的n个候选质量值。

示例性的,调用目标行为模型,基于当前状态值计算n个候选行为对应的n个候选Q值。

可选地,目标行为模型通过价值函数计算n个候选行为对应的n个候选质量值。将价值函数记为f(s,w),其中,s表示虚拟对象的当前状态,w表示价值函数中参数。

步骤404:基于n个候选质量值,计算出当前状态对应的不确定度。

不确定度用于预测在虚拟对象处于当前状态时,n个候选行为中的期望行为的分散性。

不确定度越大,则说明这一组n个候选质量值的离散程度越高,采用推荐数据指导虚拟对象的行为会更加有效率;相对的,当不确定度较小时,这一组n个候选质量值的离散程度越低,采用目标行为模型指导虚拟对象的行为会更加有效率。

可选地,计算不确定度包括以下步骤:

1、计算n个候选质量值的方差和。

示例性的,将候选质量值记为Q(s,a),其中,s表示虚拟对象的当前状态,a表示候选行为。则有方差和为

2、计算方差和与n个候选质量值的个数之间的比值,得到当前状态对应的不确定度。

示例性的,将不确定度记为μ(s),则有:

其中,|A|表示n个候选质量值的个数。

由于方差是一组数据离散程度的度量,因此根据方差得到的不确定度可以用于衡量n个候选质量值的离散程度。如果不确定度较大,则说明n个候选质量值的离散程度高,采用推荐数据进行计算会更有效率;如果不确定度较小,则说明n个候选质量值的离散程度低,采用目标行为模型进行计算会更有效率。

步骤405:判断不确定度是否小于不确定度阈值。

若不确定度小于不确定度阈值,则执行步骤406;

若不确定度大于不确定度阈值,则执行步骤407。

不确定度阈值可由技术人员自行设置。

示例性的,如图5所示,将当前状态501转化为嵌入向量502,若虚拟对象处于潜伏状态,则调用潜伏行为网络503,根据潜伏行为网络503输出的不确定度来确定期望行为,在不确定度小于不确定度阈值时,由潜伏行为网络503继续输出期望行为,在不确定度大于不确定度阈值时,由潜伏推荐数据504输出期望行为。若虚拟对象处于攻击状态,则调用攻击行为网络505,根据攻击行为网络505输出的不确定度来确定期望行为,在不确定度小于不确定度阈值时,由攻击行为网络505继续输出期望行为,在不确定度大于不确定度阈值时,由攻击推荐数据506输出期望行为。若虚拟对象处于逃跑状态,则调用逃跑行为网络507,根据逃跑行为网络507输出的不确定度来确定期望行为,在不确定度小于不确定度阈值时,由逃跑行为网络507继续输出期望行为,在不确定度大于不确定度阈值时,由逃跑推荐数据508输出期望行为。

步骤406:将n个候选质量值中的最大值对应的候选行为确定为期望行为。

可选地,优先从n个候选质量值中的较大值进行采样,得到期望行为。示例性的,若存在5个候选质量值,其中,候选质量值A为0.6,候选质量值B为0.4,候选质量值C为-0.2,候选质量值D为0.01,候选质量值E为0.8。则优先从较大的候选质量值A、候选质量值B和候选质量值E中进行采样。

步骤407:从推荐数据中确定与当前状态对应的期望行为。

推荐数据用于记录虚拟对象的当前状态和推荐的期望行为之间的对应关系。

示例性的,通过表格记录推荐数据,如下所示:

表1虚拟对象的当前状态和推荐的期望行为之间的对应关系

在本申请的一种实施方式中,除了使用候选质量值来确定期望行为外,还可以通过候选收益值来确定期望行为。上述步骤403至步骤407可替换为如下步骤:

1、调用目标行为模型,通过当前状态值,计算n个候选行为对应的n个候选收益值。

n个候选收益值中的第i个候选收益值用于预测虚拟对象在执行第i个候选行为后获得的收益,i为小于n的正整数。

候选收益值与当前状态和候选行为相关。候选收益值可由技术人员自行设置。比如,若虚拟对象处于沙漠环境中,当虚拟对象进行拾取水瓶这一候选行为后,得到的候选收益值为8;若虚拟对象处于沙漠环境中,当虚拟对象进行拾取沙子这一候选行为后,得到的候选收益值为0.2;若虚拟对象处于海洋环境中,当虚拟对象进行拾取水瓶这一候选行为后,得到的候选收益值为0.5。

2、将n个候选收益值中的最大值对应的候选行为确定为期望行为。

可选地,优先从n个候选收益值中的较大值进行采样,得到期望行为。

综上所述,本实施例通过虚拟对象的当前状态从行为树中确定目标行为模型,调用目标行为模型确定虚拟对象的期望行为。由于该期望行为是通过目标行为模型获得的,使得虚拟对象执行的期望行为更加符合人类的逻辑,强化虚拟对象的能力,使得虚拟对象拥有更高的智能。

且,将训练模型的部分负担转移到行为树上,减小了训练目标行为模型需要的运算量,可以加速目标行为模型的收敛,以实现目标行为模型的快速训练。还可以通过更换行为树上的行为模型以实现模块化设计,方便技术人员按照实际需求修改、优化行为树。

且,会根据不确定度来确定具体的期望行为,在不确定度较大时,会使用推荐数据来确定期望行为,在不确定度较小时,会使用目标行为模型来确定期望行为。

在目标行为模型是DQN模型的情况下,图6示出了本申请一个实施例提供的目标行为模型的示意图。该目标行为模型的主体为DNN(Deep Neural Networks,深度神经网络)模型。该目标行为模型的输入为当前状态,输出为候选行为对应的候选质量值。

在图6中,首先将当前状态601输入到DNN网络602中的输入层603中,输入层603将当前状态601转化为嵌入向量,并将嵌入向量输送到隐藏层604中。隐藏层604和输出层605对嵌入向量进行向量运算,输出候选质量值。

示例性的,在目标行为模型是DQN模型的情况下,目标行为模型等价于函数f(s,w),其中,s表示虚拟对象的当前状态,w表示目标行为模型中的模型参数。此时,函数f(s,w)的输出为一个向量[Q(s,a

在目标行为模型是HIRO模型的情况下,图7示出了本申请一个实施例提供的目标行为模型的示意图。该目标行为模型的输入为当前状态,输出为期望动作。

该目标行为模型分为高层面策略μ

例如,在图7中,g

图8示出了本申请一个实施例提供的行为模型的训练方法的流程示意图。该方法可由图1所示的终端120或服务器140或其他计算机设备执行,该方法包括以下步骤:

步骤801:获取样本数据,样本数据包括样本对象的样本状态和样本建议行为。

样本状态指样本对象的状态和/或样本对象所处环境的状态。可选地,当前状态包括样本对象当前执行的动作、样本对象的生命值、样本对象的形态、样本对象的姿势、样本对象的类型中的至少一种。可选地,当前状态包括样本对象所处环境的类型、样本对象所处环境的位置、样本对象所处环境的复杂度中的至少一种。

样本建议行为指当样本对象处于样本状态下,建议样本对象执行的行为,可选地,样本建议行为包括但不限于前进、后退、跳跃、下蹲、旋转、攀爬、释放技能、攻击、防御、调整身体姿态、爬行、步行、骑行、飞行、驾驶、拾取、射击、投掷中的至少一种。

步骤802:调用行为模型中的目标行为模型,根据样本状态确定m个样本质量值和样本期望行为,m为大于1的正整数。

目标行为模型是根据样本状态确定的。

示例性的,如图9所示,行为模型901在训练阶段中是通过训练叶节点905实现的,训练叶节点905又包括通过样本数据902对叶节点进行训练、通过行为树模型903对叶节点进行训练和通过强化学习训练904对叶节点进行训练。

步骤803:根据样本建议行为、样本期望行为和m个样本质量值,对目标行为模型进行第一阶段训练。

可选地,该步骤包括以下子步骤:

1、确定样本建议行为和样本期望行为之间的第一误差。

第一误差指在样本对象的状态相同时,样本建议行为和样本期望行为之间误差。例如,当样本对象处于巡逻状态时,样本建议行为是侦察周围,样本期望行为是继续巡逻,所以,样本建议行为和样本期望行为之间是可能存在区别的,故计算样本建议行为和样本期望行为之间的误差得到第一误差。

2、采样得到m个样本质量值中的采样样本质量值。

可选地,优先从m个样本质量值中的较大值进行采样,得到采样样本质量值。

在本申请的一种实现方式中,采样样本质量值属于Q值。

3、根据采样样本质量值计算第一价值函数值。

示例性的,计算第一价值函数值的公式为:

Q(s

其中,α为常量,r

4、以最大化第一价值函数值为训练目标,根据第一误差对目标行为模型进行第一阶段训练。

示例性的,在第一阶段训练的过程中,计算得到第一价值函数值A、第一价值函数值B和第一价值函数值C,其中,第一价值函数值A为2.3,第一价值函数值B为5.2,第一价值函数值C为7.5。那么在训练行为模型时,优先对第一价值函数值C对应的模型参数进行优化。

步骤804:调用行为模型中的行为树,采用无监督训练对行为模型进行第二阶段训练,行为树用于记录虚拟对象的状态和虚拟对象的行为模型之间的对应关系。

可选地,交替进行第一阶段训练和第二阶段训练,对行为模型进行训练。

可选地,该步骤包括以下子步骤:

1、根据样本对象的训练状态,从行为模型中的行为树中确定目标训练行为模型。

训练状态指样本对象在训练过程中的中间状态。

2、调用目标训练行为模型,根据训练状态确定k个训练质量值,k为正整数。

在本申请的一种实现方式中,训练质量值为Q值。

3、采样得到k个训练质量值中的采样训练质量值。

可选地,优先从k个训练质量值中的较大值进行采样,得到采样训练质量值。

4、根据采样训练质量值计算第二价值函数值。

示例性的,计算第二价值函数值的公式为:

Q(s

其中,α为常量,r

5、以最大化第二价值函数值为训练目标,采用无监督训练对行为模型进行第二阶段训练。

示例性的,在第二阶段训练的过程中,计算得到第二价值函数值A、第二价值函数值B和第二价值函数值C,其中,第二价值函数值A为4.6,第二价值函数值B为5.6,第二价值函数值C为6.9。那么在训练行为模型时,优先对第二价值函数值C对应的模型参数进行优化。

综上所述,本实施例将行为模型的训练过程分为两部分,先通过样本数据进行第一阶段训练,而后通过无监督训练的方式进行第二阶段训练。由于引入了第一阶段训练使得整个行为模型可以按照技术人员期望的方向收敛和演进,从而提高行为模型的训练效率。另一方面,将训练模型的部分负担转移到行为树上,减小了训练目标行为模型需要的运算量,可以加速目标行为模型的收敛,以实现目标行为模型的快速训练。

示例性的,当本申请实施例运用在游戏中时,图10示出了本申请一个实施例提供的确定虚拟对象行为的方法的流程示意图。该方法可由图1所示的终端120或服务器140或其他计算机设备执行,该方法包括以下步骤:

步骤1001:获取游戏对象的当前游戏状态。

游戏对象指游戏中的可活动对象。示例性的,游戏对象包括游戏中的虚拟人物、虚拟动物、动漫人物等。

当前游戏状态指游戏对象在当前时刻的状态和/或游戏对象所处环境的状态。可选地,当前游戏状态包括游戏对象当前执行的动作、游戏对象的生命值、游戏对象的形态、游戏对象的姿势、游戏对象的类型中的至少一种。可选地,当前游戏状态包括游戏对象所处环境的类型、游戏对象所处环境的位置、游戏对象所处环境的复杂度中的至少一种。

步骤1002:在游戏对象的行为树中,确定与游戏对象的当前游戏状态对应的目标行为模型。

在本申请实施例中,行为树中的每一个叶节点代表一个行为模型,根据当前状态,从行为树中的至少两个叶节点中确定目标叶节点;根据目标叶节点确定目标行为模型。

步骤1003:调用目标行为模型,根据当前游戏状态在至少两个候选游戏行为中确定游戏对象的期望行为。

候选游戏行为是指游戏对象可执行的行为。候选游戏行为可由技术人员自行设置。示例性地,候选游戏行为包括但不限于前进、后退、跳跃、下蹲、旋转、攀爬、释放技能、攻击、防御、调整身体姿态、爬行、步行、骑行、飞行、驾驶、拾取、射击、投掷中的至少一种。

期望行为可以是候选游戏行为中的一种行为,也可以是候选游戏行为中的多种行为。

目标行为模型包括DQN模型、A3C模型、OpenAI模型、A2C模型、actor-critic方法、HRL模型、HIRO模型、DDPG模型中的至少一种。

综上所述,本实施例通过游戏对象的当前状态从行为树中确定目标行为模型,调用目标行为模型确定游戏对象的期望行为。由于该期望行为是通过目标行为模型获得的,使得游戏对象执行的期望行为更加符合人类的逻辑,强化游戏对象的能力,使得游戏对象拥有更高的智能。还将训练模型的部分负担转移到行为树上,减小了训练目标行为模型需要的运算量,可以加速目标行为模型的收敛,以实现目标行为模型的快速训练。还可以通过更换行为树上的行为模型以实现模块化设计,方便技术人员按照实际需求修改、优化行为树。

本申请实施例可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景,示例性的,以辅助驾驶为例进行说明,此时,虚拟对象变为现实场景中的车辆,图11是本申请一个示例性实施例提供的确定车辆行为的方法的流程示意图。该方法可由图1所示的终端120执行,该方法包括以下步骤:

步骤1101:获取当前车辆的当前驾驶状态。

当前车辆指与终端对应的车辆。例如,在终端120是车载终端的情况下,当前车辆指与车载终端对应的车辆。

当前驾驶状态指当前车辆在当前时刻的状态和/或当前车辆所处环境的状态。可选地,当前驾驶状态包括当前车辆的类型、速度、耗油量、耗电量、剩余油量、剩余电量、发动机转速、档位、启动时长中的至少一种。可选地,当前驾驶状态包括当前车辆所处环境的类型、当前车辆所处环境的复杂度、当前车辆所处环境的天气、当前车辆所处环境的温度、当前车辆所处环境的湿度中的至少一种。

示例性的,获取到当前车辆的当前驾驶状态包括当前车辆为自动档车辆,当前车辆的档位为D档(Drive档,前进档),当前车辆的速度为40km/h(千米/时),当前车辆处于雨天环境中。

步骤1102:在当前车辆的行为树中,确定与当前车辆的当前驾驶状态对应的目标行为模型。

在本申请实施例中,行为树中的每一个叶节点代表一个行为模型,根据当前状态,从行为树中的至少两个叶节点中确定目标叶节点;根据目标叶节点确定目标行为模型。

示例性的,若当前车辆的当前驾驶状态为当前车辆为自动档车辆,当前车辆的速度为40km/h,当前车辆处于雨天环境中,确定目标行为模型是行为模型A。当前车辆的当前驾驶状态为当前车辆为自动档车辆,当前车辆的速度为30km/h,当前车辆处于晴天环境中,确定目标行为模型是行为模型B。

步骤1103:调用目标行为模型,根据当前驾驶状态在至少两个候选驾驶行为中确定当前车辆的期望行为。

候选驾驶行为是指当前车辆可执行的行为。候选驾驶行为可由技术人员自行设置。示例性地,候选驾驶行为包括但不限于前进、后退、加速、减速、左转、右转、变档、刹车、打开/关闭雨刮器、打开/关闭车灯、打开/关闭车窗、打开/关闭车门、打开/关闭后备箱中的至少一种。

期望行为可以是候选驾驶行为中的一种行为,也可以是候选驾驶行为中的多种行为。

示例性的,若当前车辆的当前驾驶状态为当前车辆的速度为90km/h,当前车辆位于右弯道的入口,则调用目标行为模型,根据当前驾驶状态确定当前车辆的期望行为是减速和右转。示例性的,若当前车辆的当前驾驶状态为当前车辆的速度为80km/h,当前车辆处于雨天环境,则调用目标行为模型,根据当前驾驶状态确定当前车辆的期望行为是减速和打开雨刮器。

目标行为模型包括DQN模型、A3C模型、OpenAI模型、A2C模型、actor-critic方法、HRL模型、HIRO模型、DDPG模型中的至少一种。

综上所述,本申请实施例通过当前车辆的当前驾驶状态从行为树中确定目标行为模型,调用目标行为模型确定当前车辆的期望行为。由于该期望行为是通过目标行为模型获得的,使得当前车辆执行的期望行为更加符合现实情况,确保当前车辆的正常行驶,保证用户的安全。还将训练模型的部分负担转移到行为树上,减小了训练目标行为模型需要的运算量,可以加速目标行为模型的收敛,以实现目标行为模型的快速训练。还可以通过更换行为树上的行为模型以实现模块化设计,方便技术人员按照实际需求修改、优化行为树。

下面为本申请的装置实施例,对于装置实施例中未详细描述的细节,可以结合参考上述方法实施例中相应的记载,本文不再赘述。

图12示出了本申请的一个示例性实施例提供的确定虚拟对象行为的装置的结构示意图。该装置可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或一部分,该装置1200包括:

获取模块1201,用于获取所述虚拟对象的当前状态;

确定模块1202,用于在所述虚拟对象的行为树中,确定与所述虚拟对象的所述当前状态对应的目标行为模型,所述行为树用于记录所述虚拟对象的状态和所述虚拟对象的行为模型之间的对应关系;

调用模块1203,用于调用所述目标行为模型,根据所述当前状态在至少两个候选行为中确定所述虚拟对象的期望行为。

在本申请的一种可选实施方式中,所述调用模块1203,还用于调用所述目标行为模型,根据所述当前状态确定n个候选行为对应的n个候选质量值,n为大于1的正整数;基于所述n个候选质量值,计算出所述当前状态对应的不确定度,所述不确定度用于预测在所述虚拟对象处于所述当前状态时,所述n个候选行为中的所述期望行为的分散性;在所述不确定度小于不确定度阈值的情况下,将所述n个候选质量值中的最大值对应的候选行为确定为所述期望行为。

在本申请的一种可选实施方式中,所述调用模块1203,还用于计算所述n个候选质量值的方差和;计算所述方差和与所述n个候选质量值的个数之间的比值,得到所述当前状态对应的所述不确定度。

在本申请的一种可选实施方式中,所述调用模块1203,还用于调用所述目标行为模型,通过所述当前状态值,计算所述n个候选行为对应的n个候选收益值,所述n个候选收益值中的第i个候选收益值用于预测所述虚拟对象在执行第i个候选行为后获得的收益,i为小于n的正整数;将所述n个候选收益值中的最大值对应的候选行为确定为所述期望行为。

在本申请的一种可选实施方式中,所述调用模块1203,还用于在所述不确定度大于所述不确定度阈值的情况下,从推荐数据中确定与所述当前状态对应的所述期望行为,所述推荐数据用于记录所述虚拟对象的所述当前状态和推荐的期望行为之间的对应关系。

在本申请的一种可选实施方式中,所述调用模块1203,还用于调用所述目标行为模型,将所述当前状态转化为当前状态值,所述当前状态值用于通过数值表示所述虚拟对象的状态或所述虚拟对象所处环境的状态;调用所述目标行为模型,基于所述当前状态值计算所述n个候选行为对应的所述n个候选质量值。

在本申请的一种可选实施方式中,所述行为树中的每个叶节点代表一个行为模型;所述确定模块1202,还用于根据所述当前状态,从所述行为树中的至少两个叶节点中确定目标叶节点;根据所述目标叶节点确定所述目标行为模型。

综上所述,本实施例通过虚拟对象的当前状态从行为树中确定目标行为模型,调用目标行为模型确定虚拟对象的期望行为。由于该期望行为是通过目标行为模型获得的,使得虚拟对象执行的期望行为更加符合人类的逻辑,强化虚拟对象的能力,使得虚拟对象拥有更高的智能。

且,将训练模型的部分负担转移到行为树上,减小了训练目标行为模型需要的运算量,可以加速目标行为模型的收敛,以实现目标行为模型的快速训练。

图13示出了本申请的一个示例性实施例提供的行为模型的训练装置的结构示意图。该装置可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或一部分,该装置1300包括:

样本获取模块1301,用于获取样本数据,所述样本数据包括样本对象的样本状态和样本建议行为;

模型调用模块1302,用于调用所述行为模型中的目标行为模型,根据所述样本状态确定m个样本质量值和样本期望行为,m为大于1的正整数;

训练模块1303,用于根据所述样本建议行为、所述样本期望行为和所述m个样本质量值,对所述目标行为模型进行第一阶段训练;

所述训练模块1303,还用于调用所述行为模型中的行为树,采用无监督训练对所述行为模型进行第二阶段训练,所述行为树用于记录所述虚拟对象的状态和所述虚拟对象的所述行为模型之间的对应关系。

在本申请的一种可选实施方式中,所述训练模块1303,还用于确定所述样本建议行为和所述样本期望行为之间的第一误差;采样得到所述m个样本质量值中的采样样本质量值;根据所述采样样本质量值计算第一价值函数值;以最大化所述第一价值函数值为训练目标,根据所述第一误差对所述目标行为模型进行所述第一阶段训练。

在本申请的一种可选实施方式中,所述训练模块1303,还用于根据所述样本对象的训练状态,从所述行为模型中的所述行为树中确定目标训练行为模型;调用所述目标训练行为模型,根据所述训练状态确定k个训练质量值,k为大于1的正整数;采样得到所述k个训练质量值中的采样训练质量值;根据所述采样训练质量值计算第二价值函数值;以最大化所述第二价值函数值为训练目标,采用所述无监督训练对所述行为模型进行所述第二阶段训练。

在本申请的一种可选实施方式中,所述训练模块1303,还用于交替进行所述第一阶段训练和所述第二阶段训练,对所述行为模型进行训练。

综上所述,本实施例将行为模型的训练过程分为两部分,先通过样本数据进行第一阶段训练,而后通过无监督训练的方式进行第二阶段训练。由于引入了第一阶段训练使得整个行为模型可以按照技术人员期望的方向收敛和演进,从而提高行为模型的训练效率。另一方面,将训练模型的部分负担转移到行为树上,减小了训练目标行为模型需要的运算量,可以加速目标行为模型的收敛,以实现目标行为模型的快速训练。

图14是根据一示例性实施例示出的一种计算机设备的结构示意图。所述计算机设备1400包括中央处理单元(Central Processing Unit,CPU)1401、包括随机存取存储器(Random Access Memory,RAM)1402和只读存储器(Read-Only Memory,ROM)1403的系统存储器1404,以及连接系统存储器1404和中央处理单元1401的系统总线1405。所述计算机设备1400还包括帮助计算机设备内的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)1406,和用于存储操作系统1413、应用程序1414和其他程序模块1415的大容量存储设备1407。

所述基本输入/输出系统1406包括有用于显示信息的显示器1408和用于用户输入信息的诸如鼠标、键盘之类的输入设备1409。其中所述显示器1408和输入设备1409都通过连接到系统总线1405的输入输出控制器1410连接到中央处理单元1401。所述基本输入/输出系统1406还可以包括输入输出控制器1410以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1410还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备1407通过连接到系统总线1405的大容量存储控制器(未示出)连接到中央处理单元1401。所述大容量存储设备1407及其相关联的计算机设备可读介质为计算机设备1400提供非易失性存储。也就是说,所述大容量存储设备1407可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机设备可读介质(未示出)。

不失一般性,所述计算机设备可读介质可以包括计算机设备存储介质和通信介质。计算机设备存储介质包括以用于存储诸如计算机设备可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机设备存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable ReadOnly Memory,EPROM)、带电可擦可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM),CD-ROM、数字视频光盘(Digital Video Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机设备存储介质不局限于上述几种。上述的系统存储器1404和大容量存储设备1407可以统称为存储器。

根据本公开的各种实施例,所述计算机设备1400还可以通过诸如因特网等网络连接到网络上的远程计算机设备运行。也即计算机设备1400可以通过连接在所述系统总线1405上的网络接口单元1412连接到网络1411,或者说,也可以使用网络接口单元1412来连接到其他类型的网络或远程计算机设备系统(未示出)。

所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器1401通过执行该一个或一个以上程序来实现上述确定虚拟对象行为的方法,或,实现如上方面所述的行为模型的训练方法的全部或者部分步骤。

在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述各个方法实施例提供的确定虚拟对象行为的方法,或,实现如上方面所述的行为模型的训练方法。

本申请还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方法实施例提供的确定虚拟对象行为的方法,或,实现如上方面所述的行为模型的训练方法。

本申请还提供一种计算机程序产品或计算机程序,上述计算机程序产品或计算机程序包括计算机指令,上述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从上述计算机可读存储介质读取上述计算机指令,上述处理器执行上述计算机指令,使得上述计算机设备执行如上方面实施例提供的确定虚拟对象行为的方法,或,实现如上方面所述的行为模型的训练方法。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

技术分类

06120115925646