CN111389010B - 虚拟机器人训练方法、装置、电子设备和介质 - Google Patents

虚拟机器人训练方法、装置、电子设备和介质 Download PDF

Info

Publication number
CN111389010B
CN111389010B CN202010108453.1A CN202010108453A CN111389010B CN 111389010 B CN111389010 B CN 111389010B CN 202010108453 A CN202010108453 A CN 202010108453A CN 111389010 B CN111389010 B CN 111389010B
Authority
CN
China
Prior art keywords
robot
virtual robot
target virtual
training
robots
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010108453.1A
Other languages
English (en)
Other versions
CN111389010A (zh
Inventor
任春旭
吕唐杰
范长杰
胡志鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202010108453.1A priority Critical patent/CN111389010B/zh
Publication of CN111389010A publication Critical patent/CN111389010A/zh
Application granted granted Critical
Publication of CN111389010B publication Critical patent/CN111389010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/67Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6027Methods for processing data by generating or executing the game program using adaptive systems learning from user actions, e.g. for skill level adjustment

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Robotics (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Toys (AREA)

Abstract

本申请提供了虚拟机器人训练方法、装置、电子设备和介质,涉及人工智能领域。本申请提供的方法,先生成了包含有多个目标虚拟机器人的机器人集合;而后,针对每个目标虚拟机器人,从机器人集合中选择不同的虚拟机器人与该目标虚拟机器人进行模拟对抗,并根据模拟对抗结果和该目标虚拟机器人对应的回报函数训练该目标虚拟机器人,以及根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人;最后从训练后得到的所述机器人集合中选择第一目标虚拟机器人作为训练结果。这种训练虚拟机器人的方法,使得虚拟机器人可以从不同种类的对手中学习到相应的对抗策略,丰富了虚拟机器人的战斗应变能力。

Description

虚拟机器人训练方法、装置、电子设备和介质
技术领域
本申请涉及人工智能领域,具体而言,涉及虚拟机器人训练方法、装置、电子设备和介质。
背景技术
电子游戏中存在有各种各样的机器人,这些机器人可以作为对手与玩家进行对抗,也可以是在玩家暂离的时候接替玩家来对玩家所控制的角色下达操作指令,以接管该角色。
传统方案中,这些机器人均是按照编程人员所编写的控制程序来执行动作的。比如,编程人员会在程序代码中写明,在A条件下执行第一动作,在B条件下执行第二动作。
一般情况下,编程人员主要是依据其玩游戏的经验来编写这些控制程序的,因此,编程人员的游戏水平越高,利用其编写出来的控制程序来运行的机器人的能力也就越强。
发明内容
本申请的目的在于提供虚拟机器人训练方法、装置、电子设备和介质。
在一些实施例中,一种虚拟机器人训练方法,包括:
生成包含有多个目标虚拟机器人的机器人集合;多个目标虚拟机器人对应有不同的第一属性信息;
针对每个目标虚拟机器人,从机器人集合中选择不同的虚拟机器人与该目标虚拟机器人进行模拟对抗,并根据模拟对抗结果和该目标虚拟机器人对应的回报函数训练该目标虚拟机器人,以及根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人;
从训练后得到的机器人集合中选择第一目标虚拟机器人作为训练结果。
在一些实施例中,针对每个目标虚拟机器人,从机器人集合中选择不同的虚拟机器人与该目标虚拟机器人进行模拟对抗,并根据模拟对抗结果和该目标虚拟机器人对应的回报函数训练该目标虚拟机器人,以及根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人,包括:
迭代执行如下步骤,直至达到终止训练条件:
针对每个目标虚拟机器人,从机器人集合中选择指定的虚拟机器人与该目标虚拟机器人进行模拟对抗;
针对每个目标虚拟机器人,根据该目标虚拟机器人的模拟对抗结果和该目标虚拟机器人对应的回报函数对该目标虚拟机器人进行训练;
针对每个目标虚拟机器人,根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人。
在一些实施例中,终止训练条件包括以下的任意一个:
多个目标虚拟机器人中对抗优势程度低于预定数值的虚拟机器人的数量是否超过预定数值;目标虚拟机器人的对抗优势程度是根据该目标虚拟机器人每次模拟对抗的结果的变化程度确定的;
多个目标虚拟机器人中的第二目标虚拟机器人的对抗优势程度是否符合预设要求;第二目标虚拟机器人的对抗优势程度是根据第二目标虚拟机器人每次模拟对抗的结果的变化程度确定的。
在一些实施例中,第一属性信息包括以下的任意一种或多种:
角色类型、回报函数。
在一些实施例中,从训练后得到的机器人集合中选择第一目标虚拟机器人作为训练结果,包括:
针对训练后得到的机器人集合中属于目标角色类型的每个虚拟机器人,根据该虚拟机器人的模拟对抗结果,统计该虚拟机器人的对抗优势程度;
根据属于目标角色类型的每个虚拟机器人的对抗优势程度,从属于目标角色类型的虚拟机器人中选择出第一目标虚拟机器人作为训练结果。
在一些实施例中,从训练后得到的机器人集合中选择第一目标虚拟机器人作为训练结果,包括:
针对第一属性信息中的目标属性信息,从训练后得到的机器人集合中选择该目标属性信息下的虚拟机器人中训练时间最晚的第一虚拟机器人作为训练结果。
在一些实施例中,生成包含有多个目标虚拟机器人的机器人集合,包括:
根据目标虚拟机器人所在游戏的游戏类型,确定每个目标虚拟机器人的第一属性信息;
根据每个目标虚拟机器人的第一属性信息,生成包含有多个目标虚拟机器人的机器人集合。
在一些实施例中,针对每个目标虚拟机器人,从机器人集合中选择指定的虚拟机器人与该目标虚拟机器人进行模拟对抗,包括:
针对每个目标虚拟机器人,根据机器人集合中虚拟机器人的第二属性信息确定每个虚拟机器人的选择概率;第二属性信息包括以下的任意一种或多种:虚拟机器人的训练时间、虚拟机器人的模拟对抗结果、虚拟机器人的角色类型、虚拟机器人的回报函数;
针对每个目标虚拟机器人,根据机器人集合中每个虚拟机器人的选择概率,从机器人集合中选择指定的虚拟机器人与该目标虚拟机器人进行模拟对抗。
在一些实施例中,一种虚拟机器人训练装置,包括:
生成模块,用于生成包含有多个目标虚拟机器人的机器人集合;多个目标虚拟机器人对应有不同的第一属性信息;
训练模块,用于针对每个目标虚拟机器人,从机器人集合中选择不同的虚拟机器人与该目标虚拟机器人进行模拟对抗,并根据模拟对抗结果和该目标虚拟机器人对应的回报函数训练该目标虚拟机器人,以及根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人;
选择模块,用于从训练后得到的机器人集合中选择第一目标虚拟机器人作为训练结果。
在一些实施例中,一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如权利要求1至18任一的虚拟机器人训练方法的步骤。
在一些实施例中,一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至8任一的虚拟机器人训练方法的步骤。
本申请所提供的虚拟机器人训练方法,先生成了包含有多个目标虚拟机器人的机器人集合;其中,多个目标虚拟机器人对应有不同的第一属性信息;而后,针对每个目标虚拟机器人,从机器人集合中选择不同的虚拟机器人与该目标虚拟机器人进行模拟对抗,并根据模拟对抗结果和该目标虚拟机器人对应的回报函数训练该目标虚拟机器人,以及根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人;最后从训练后得到的机器人集合中选择第一目标虚拟机器人作为训练结果。这种训练虚拟机器人的方法,将不同第一属性信息的虚拟机器人进行了交叉式的对抗,并且依据对抗结果进行了训练,使得虚拟机器人可以从不同种类的对手中学习到相应的对抗策略,丰富了虚拟机器人的战斗应变能力。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的虚拟机器人训练方法的基本流程图;
图2示出了本申请实施例所提供的虚拟机器人训练方法中的表示迭代训练过程的流程图;
图3示出了本申请实施例所提供的一种训练虚拟机器人的框架示意图;
图4示出了本申请实施例所提供的一种优化的训练虚拟机器人的框架示意图;
图5示出了本申请实施例所提供的电子设备的示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
传统方案中,电子游戏中机器人的水平完全受编程人员的游戏水平所决定。编程人员的游戏水平越高,则机器人的游戏水平越高。但由于新游戏和新玩法层出不穷,编程人员难以每次都快速的适应新的玩法,并且,游戏的复杂度越来越高使得这种通过人工编程来控制机器人的方式逐步的被淘汰。
针对通过人工编程来控制机器人的方式的弊端,后续技术中出现了采用机器学习技术来自动生成机器人的方案。这种采用机器学习技术来生成机器人的方案主要有两种实现方式,第一种实现方式是系统将玩家的对抗数据输入到模型中来学习玩家的操作习惯,并进一步使得模型输出机器人;第二种实现方式是不依靠玩家的对抗数据,而是采用迭代学习的方式完成学习;具体实现时,先控制两个原始的机器人进行相互对抗,而后,将对抗数据输入到模型中来进行学习,而后使用学习之后的结果更新机器人,并重新使用更新后机器人再次对抗…直至迭代出最终的机器人。
对于上述第一种实现方式而言,需要预先搜集到大量的玩家对抗数据,这对于没有公开发行的游戏而言是很困难的。如果在搜集到足够的玩家对抗数据后再训练机器人,则时效性太差。
对于上述第二种实现方式而言,在实际操作的时候需要预先为机器人设计回报函数,回报函数通常只有一个,就是最快速的胜利。因此,机器人在训练的时候只会关注对快速胜利起到决定性作用的动作,训练出来的机器人会比较激进,比如在决斗类游戏中,训练出来的机器人在对抗的时候,会快速接近对方,并期望快速的击杀对方。经过发明人分析,这种训练方式有一定的优势,具体体现在迭代速度较快,针对单一场景的胜率较高。但其劣势也较为明显,主要体现在:机器人行动模式单一,在与玩家对抗的时候,适应能力不足。具体来说,如在决斗类游戏中,训练出来的机器人在对抗的时候,都采用在对抗开始时快速接近对方,并期望快速的击杀对方的话,玩家就会采用迂回的方式先消耗掉机器人的技能,而后玩家再在机器人没有技能的时候攻击机器人,采用此种方式,玩家对抗机器人的胜率就会很高,对应的机器人对抗玩家的胜率就很低了。即使换其他回报函数的机器人来与玩家进行对抗,玩家只需要针对性的采用另一种战术,也可以保证玩家对抗机器人的胜率。
针对上述情况,本申请发明人认为,这主要是因为在对机器人进行训练的时候,机器人的回报函数是固定的,这种方式使得机器人的训练容易发生钻牛角尖的情况。具体来说,就是当机器人发现某种动作方式能够最大限度的满足胜利条件的时候(通过设置回报函数来实现),其在学习的时候,就会只关注这种类型的动作方式,后续迭代训练的过程中就会忽略其他类型的动作方式,这使得最终输出的机器人只能采用固定的一种风格进行战斗(如十分激进的战斗方式),适应能力不强。
进而,本申请发明人提供了一种改进的机器人训练方法,如图1所示,包括如下步骤:
S101,生成包含有多个目标虚拟机器人的机器人集合;多个目标虚拟机器人对应有不同的第一属性信息;
S102,针对每个目标虚拟机器人,从机器人集合中选择不同的虚拟机器人与该目标虚拟机器人进行模拟对抗,并根据模拟对抗结果和该目标虚拟机器人对应的回报函数训练该目标虚拟机器人,以及根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人;
S103,根据训练后得到的机器人集合中每个虚拟机器人的角色类型和模拟对抗结果,从机器人集合选择目标虚拟机器人作为训练结果。
步骤S101中,机器人集合中应当设置有大量的不同种类(不同第一属性信息)的虚拟机器人。这些不同种类的虚拟机器人可以是发明人预先编程输入的,也可以是从某些游戏测试过程中得到的(系统经过自我学习后得到的)。为了保证样本的多样性,如果是系统自动生成虚拟机器人,则可以按照如下方式完成:
步骤1011,根据目标虚拟机器人所在游戏的游戏类型,确定每个目标虚拟机器人的第一属性信息;
步骤1012,根据每个目标虚拟机器人的第一属性信息,生成包含有多个目标虚拟机器人的机器人集合。
步骤1011中,游戏类型如棋牌类、体育对抗类、决斗类等。此处,棋牌类游戏如象棋、跳棋、纸牌、麻将等。体育对抗类游戏如篮球、足球、冰球等。决斗类游戏主要是指一方获胜是以另一方的死亡(资源耗尽)或认输为前提的游戏,如生存类游戏、格斗类游戏等。这些游戏通常都是有着固有的角色类型,同时也有着固有的胜负决策方式。如生存类游戏的胜负决策方式主要是看存活时间,篮球类游戏是看得分,因此,可以根据角色类型(不同的角色拥有不同的属性,或者是不同的技能)和胜负判别方式所对应的不同回报函数来确定出第一属性信息。而后,针对每个第一属性信息来生成对应的虚拟机器人就可以了。一般来说,机器人集合中的目标虚拟机器人应当是不同角色类型的机器人,如果两个机器人的角色类型相同,则这两个机器人的回报函数应当是不同的;或者说,对于机器人集合中的任意两个目标虚拟机器人,这两个目标虚拟机器人的角色类型和回报函数中的至少一个应当是不同的。
步骤S102中,为了保证机器人训练的多样性,针对每个目标虚拟机器人,应当从机器人集合中选择不同的虚拟机器人与该目标虚拟机器人进行模拟对抗(选择出来与目标虚拟机器人进行模拟对抗的虚拟机器人就是陪练机器人)。由于机器人集合中的虚拟机器人的第一属性信息是不同的,因此,每个目标虚拟机器人都可以与不同种类的虚拟机器人进行对抗,从而丰富该目标虚拟机器人的战斗策略、扩展该目标虚拟机器人的战斗风格。此处,第一属性信息一般包括如下两种信息中的至少一种:回报函数、角色类型。
通常情况下,目标虚拟机器人在一次训练的过程中只会与一个虚拟机器人进行模拟对抗。因此,为该目标虚拟机器人匹配了多少陪练的虚拟机器人(陪练机器人),该目标虚拟机器人就应当进行多少次模拟对抗。如,共为该目标虚拟机器人匹配了10个陪练的虚拟机器人,该目标虚拟机器人就需要进行10次模拟对抗(每次模拟对抗只与一个陪练机器人进行对抗)。当然,针对某些特殊的游戏场景中(如生存类游戏的游戏场景),通常需要多个虚拟对象同时互动(极端情况下,也可以只有两个虚拟对象进行互动,但互动效果较差),针对这种需要多个虚拟对象同时互动的游戏场景,也可以将目标虚拟机器人同时与多个不同的陪练机器人在一次模拟对抗中完成对抗。
目标虚拟机器人不论在一次模拟对抗过程中,与一个陪练机器人进行对抗,还是与多个陪练机器人进行模拟对抗,在对抗之后,都应当依据模拟对抗结果和该目标虚拟机器人的回报函数对该目标虚拟机器人进行训练。此处,训练的方式大致可以分为两种:第一种是目标虚拟机器人每完成一次对抗之后,就依据对抗结果和回报函数进行一次训练;第二种是进行多次对抗之后,再依据这几次的对抗结果和回报函数进行一次训练。第一种训练方式更加直接,机器人的迭代速率更快,但是占用系统资源过多。第二种训练方式是在系统资源占用和机器人迭代速率之间进行了平衡,一般来说,第二种训练方式在实现时,是先针对每个目标虚拟机器人都建立一个数据池,在该目标虚拟机器人完成一次模拟对抗之后,便将模拟对抗结果输入到该数据池中,当数据池中的数据足够多了之后,就利用数据池中的模拟对抗结果和该目标虚拟机器人的回报函数进行一次训练。
通常情况下,目标虚拟机器人在完成一次训练之后,也就得到了进化,下次使用目标虚拟机器人与陪练机器人进行模拟对抗的时候,是使用进化后的目标虚拟机器人进行模拟对抗,而不是使用进化前的目标虚拟机器人进行模拟对抗。
需要说明的是,从机器人集合中选择不同的虚拟机器人的行为可以是一次完成的,也可以是多次完成的。为了提高训练的多样性,通常是采用分多次完成的实现方式,也就是,每次在准备将目标虚拟机器人进行模拟对抗的时候,才临时从机器人集合中选择一个虚拟机器人作为本次的陪练的机器人进行模拟对抗。实际操作中,每次都是临时从机器人集合中提取陪练机器人的行为更为合理,这样的话,选择的陪练机器人就可能是某个目标虚拟机器人进化后的版本,这样进行模拟对抗的价值更大。
并且,每个目标虚拟机器人进行训练后,都更新机器人集合中的虚拟机器人,可以使后续再从机器人集合中选择陪练机器人的时候能够选择到新的虚拟机器人(进化后的虚拟机器人),这样可以使每个目标虚拟机器人的学习效率和准确度进一步提高。
也就是,对于每个目标虚拟机器人而言,在进行模拟对抗的时候,使用的是该目标虚拟机器人的最近新版本与陪练机器人进行对抗的,进行模拟对抗的时候所使用的陪练机器人可能是该目标虚拟机器人本身的某一个版本(可能是最新的版本),也可能是其他目标虚拟机器人的某一个版本。
最后,在达到某个训练结束条件后(如训练次数足够多,训练时间足够长等)就可以执行步骤S103了,即从机器人集合中选择某个虚拟机器人作为第一目标虚拟机器人输出。具体实现时,可以是针对每个角色类型,选择出1个或多个模拟对抗结果(模拟对抗结果可以反映出虚拟机器人的优良程度)比较好的虚拟机器人作为该角色类型的第一目标虚拟机器人,也可以是只针对某一个角色类型,根据模拟对抗结果选择出该角色类型下最好/最合适的虚拟机器人作为第一目标虚拟机器人。当然,在输出的时候,也可以是将所有的虚拟机器人根据模拟对抗结果进行排序,以从全体虚拟机器人(不区分是否是某个角色类型的虚拟机器人)中选择一个或多个虚拟机器人作为第一目标虚拟机器人作为训练结果。
也就是,输出的第一目标虚拟机器人可能是某个目标虚拟机器人的最终版本(最后一次训练后所得到的版本),也可能是某个目标虚拟机器人的某一个版本。
下面,对虚拟机器人的回报函数和角色类型进行说明。
回报函数是用来计算虚拟机器人在进行模拟对抗的过程中,其做出的行为所对应的奖励的计算函数式。此处的行为通常是指虚拟机器人所做出的某一个动作,如在决斗类游戏中,虚拟机器人释放的某一个技能(如劈砍、跳跃等),又如在棋类游戏中,虚拟机器人移动棋子的行为。此处的奖励即是指这些行为所对应的奖励值,如虚拟机器人释放某一个技能使得环境发生了变化,那么就可以根据该环境的变化计算出该行为所对应的奖励值;具体如,虚拟机器人放出技能后,对方的血量减少(环境变化的一种提心形式),或者是自身的血量增加,就可以计算出该行为所对应的奖励值了(计算出奖励值的前提是回报函数的计算因子中有对方血量,或者自身血量的考量要素);又如,虚拟机器人通过移动棋子吃掉了对方的某个棋子,那么就可以根据吃掉对方的棋子的类型计算出奖励值了(计算出奖励值的前提是回报函数的计算因子中有吃掉对方棋子这个考量要素)。
通过设置特定的回报函数,使得虚拟机器人在后续学习的过程中可以更加关注某些行为。如在决斗类游戏中,可以将双方的血量变化值设置在回报函数中,那么虚拟机器人在训练的时候,就会关注双方血量变化的情况;如在决斗类游戏中,将时间损耗设置在回报函数中,那么虚拟机器人在训练的时候就会关注时间的流逝,这样就可以训练出更快/更慢结束战斗的虚拟机器人(如比较激进的虚拟机器人,或比较喜欢躲避的虚拟机器人)。
也就是,回报函数决定了虚拟机器人在学习时,在不同方面(如血量变化方面、时间长度方面、体力变化方面等)的关注程度。
正是由于回报函数决定了虚拟机器人在学习时的关注点,使得在两个虚拟机器人回报函数不同的情况下,这两个虚拟机器人做出了相同的动作,并产生了相同的结果,也会使得不同的虚拟机器人学到不同的内容,并且使得这两个虚拟机器人朝向不同的方向进化,并最终可能会形成不同对抗风格的虚拟机器人。
角色类型指的是虚拟机器人所控制的虚拟角色的类型。通常情况下,不同角色类型的虚拟角色应当在动作技能方面有差异。如冒险类游戏中,常见的角色类型如战士、刺客、法师等。如在篮球类游戏中,常见的角色类型有前锋、中锋等(当然,也可以将某个球队这一整体认为是一个角色类型,这一的话,角色类型就可以是A球队、B球队)。又如在枪战类游戏中,不同角色类型的虚拟角色可以使用不同的枪械等等。
由此可见,不同角色类型的虚拟角色所具有的能力是有差异的,如战士所具有的技能通常是法师所没有的(法师无法使用战士的技能),法师所具有的技能通常是刺客所没有的(刺客无法使用法师的技能)。又如,篮球类游戏中,不同角色类型的虚拟角色的体力值、投篮准确度是不同的。
也就是,不同角色类型的虚拟角色所能够使用的技能,或者其本身所具有的能力是有差别的。正是由于不同角色类型的虚拟角色有着上述差异,使得两个角色类型不同的虚拟角色在对抗的时候,可以学习到不同的内容,比如战士A在特定环境下释放劈砍技能后,对方损失血量;法师A在特定环境下释放火球之后,对也损失血量;那么在学习的过程中,如果战士A所对应虚拟机器人就会关注劈砍技能的释放,而法师A所对应的虚拟机器人就会关注火球技能的释放。可见,在角色类型不同的情况下,不同的虚拟机器人进行学习后,也可以朝向不同的方向进化,并最终会形成不同对抗风格的虚拟机器人。
经过发明人大量实验,认为第一属性信息中只有角色类型的时候,训练质量较低。也就是,在虚拟机器人的角色类型不同,但回报函数相同的情况下(如A虚拟机器人为运动速度最大值较低的战士机器人;B虚拟机器人为运动速度最大值较高的战士机器人),进行训练后所得到的虚拟机器人的成熟度不高。因此,第一属性信息中通常来说应当至少有回报函数,也可以同时有回报函数和角色类型。
本申请所提供的方案中,步骤S102在实现的时候,通常是采用迭代训练的方式来实现的,也就是,步骤S102可以按照如下方式实现:
如图2所示,迭代执行如下步骤S1021-S1023,直至达到终止训练条件:
S1021,针对每个目标虚拟机器人,从机器人集合中选择指定的虚拟机器人与该目标虚拟机器人进行模拟对抗;
S1022,针对每个目标虚拟机器人,根据该目标虚拟机器人的模拟对抗结果和该目标虚拟机器人对应的回报函数对该目标虚拟机器人进行训练;
S1023,针对每个目标虚拟机器人,根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人。
步骤1021中,反映了两个内容,分别是从机器人集合中选择虚拟机器人(陪练机器人),并且将选择出的虚拟机器人与目标虚拟机器人进行模拟对抗。通常情况下,选择出的虚拟机器人的数量是不受限的,每次选择的时候可以选择出一个,也可以选择出多个。不论选择出一个还是多个,一般来说,这些选择出来的虚拟机器人都会与目标虚拟机器人进行至少一次的模拟对抗。
此处,某个陪练机器人(选择出的虚拟机器人)与目标虚拟机器人进行模拟对抗的次数也是不受限的,可以只进行一次,也可以是进行多次。比如,选择出来了一个陪练机器人(机器人集合中的某个虚拟机器人)后,可以将目标虚拟机器人与该陪练机器人进行多次模拟对抗。具体实现时,可以先建立多个对抗副本,每个副本中都有目标虚拟机器人与该陪练机器人进行模拟对抗,即陪练机器人可以同于在不同的副本中与该目标虚拟机器人进行模拟对抗,并且,每个副本都可以输出模拟对抗结果,这些模拟对抗结果都可以用来在后续步骤中训练目标虚拟机器人。又如,当只建立一个副本的时候,则可以在该副本中反复进行多次目标虚拟机器人与陪练机器人的模拟对抗。
当然,针对每个目标虚拟机器人,如果建立了关于该目标虚拟机器人的多个副本,则通常会在每个副本中使用不同的陪练机器人与该目标虚拟机器人进行模拟对抗,以此,在资源有限的情况下,尽量保证了训练的多样性。
在选择陪练机器人的时候,为了使得训练效率得到提升,应当通过考察虚拟机器人的训练时间(即虚拟机器人的生成时间,主要用来反映虚拟机器人的生成先后次序,或者说反映虚拟机器人的进化次数)来选择陪练机器人。具体来说,也就是训练时间越晚的虚拟机器人的进化程度越高,越应当成为陪练机器人。进而,步骤S1021可以按照如下方式实现:
步骤10211,针对每个目标虚拟机器人,根据机器人集合中虚拟机器人的第二属性信息确定每个虚拟机器人的选择概率;第二属性信息包括以下的任意一种或多种:虚拟机器人的训练时间、虚拟机器人的模拟对抗结果、虚拟机器人的角色类型、虚拟机器人的回报函数;
步骤10212,针对每个目标虚拟机器人,根据机器人集合中每个虚拟机器人的选择概率,从机器人集合中选择指定的虚拟机器人与该目标虚拟机器人进行模拟对抗。
步骤10211中,虚拟机器人的训练时间,反映了该虚拟机器人的进化次数(迭代次数),或者说一定程度上反映了优化程度,一般来说,虚拟机器人的训练时间越晚,越应当被选择作为陪练机器人。虚拟机器人的模拟对抗结果反映了该虚拟机器人的游戏水平,一般来说,游戏水平越高越应当被选择(通过模拟对抗结果反映该虚拟机器人在进行模拟对抗时,胜率较大,或者是获胜时有优势更大,则游戏水平越高);虚拟机器人的角色类型反映了该虚拟机器人在游戏中的角色,为了保证训练的全面性,陪练机器人的角色类型不能过于单一,如果只考察模拟对抗结果的话,很有可能只选择某几种胜率很高的虚拟机器人作为陪练机器人了,这样不利于训练,因此,应当结合虚拟机器人的角色类型来选择陪练机器人,以保证陪练机器人的全面性。虚拟机器人的回报函数说明了陪练机器人的战斗风格,为了保证训练的全面性,也应当是各个回报函数的虚拟机器人都平均的选择(不必然是绝对的平均,但应当保证至少各个类型的虚拟机器人都参与过模拟对抗)。
步骤10212中,在依据第二属性信息选择每个目标虚拟机器人的陪练机器人时,可以是一次性选择完所有的陪练机器人,也可以是针对目标虚拟机器人进行一次选择。
针对每个目标虚拟机器人完成模拟对抗后,都会产生模拟对抗结果,而后,在步骤S1022中,就可以根据该目标虚拟机器人的模拟对抗结果和该目标虚拟机器人对应的回报函数来对该目标虚拟机器人进行训练了,训练的过程与前文中所说相同,此处不再重复说明。
最后,步骤S1023中,就可以根据步骤S1022中的训练结果(训练后的目标虚拟机器人、进化后的目标虚拟机器人)来更新机器人集合中的虚拟机器人了。这样,机器人集合中就增加了一个新的虚拟机器人,该目标虚拟机器人再次执行步骤S1021的时候,就应当使用训练后的目标虚拟机器人来执行步骤S1021了,并且,在执行步骤S1021的时候,也有可能选择到该训练后的目标虚拟机器人作为陪练机器人(指定的虚拟机器人)参与和训练后的目标虚拟机器人进行模拟对抗。
步骤S1021-S1023是重复执行的,直到达到终止训练条件之后才会结束,否则会一直重复执行步骤S1021-S1023下去。每次对目标虚拟机器人进行训练之后,再执行步骤S1021的时候,都是使用训练后的目标虚拟机器人与对应的陪练机器人进行模拟对抗的。
此处,表征达到终止训练条件的信息通常有两种来源,第一种来源是技术人员主动下达的,第二种来源是系统(步骤S101-S103的执行主体所在的系统,也可以是对该系统进行监控的其他系统)自动生成的。
表征达到终止训练条件的信息是来源于技术人员的时候,通常是技术人员会人工监测训练数据,比如训练的时间、迭代的次数(执行一次步骤S1021-S1023就完成了一次迭代)、目标虚拟机器人的对抗优势程度等,而后,技术人员会根据这些训练的数据来判断现在结束训练是否合适,如果合适,则会向系统输入结束训练的指令,而后,系统就会结束步骤S1021-S1023的迭代行为。当然,结束迭代行为的指令可以是针对某个目标虚拟机器人来下达的(只有该目标虚拟机器人结束迭代S1021-S1023,其他目标虚拟机器人正常迭代S1021-S1023),也可以是针对全部的目标虚拟机器人来下达的(所有的目标虚拟机器人均结束迭代S1021-S1023)。此处,对抗优势程度可以如:胜率(使用某一代的目标虚拟机器人与大量陪练机器人进行战斗后所统计出的胜率),或在模拟对抗结束时,自己的资源优势(如在模拟对抗结束后,自身和对手的血量差值、自身和对手的游戏评分差值等)。
表征达到终止训练条件的信息是来源于系统的时候,则不需要人工介入,而是系统自动监控训练数据。监控的数据与人工监控的数据类型是相似的,都是训练的时间、迭代的次数(执行一次步骤S1021-S1023就完成了一次迭代)、目标虚拟机器人的对抗优势等。而后,在系统认为目前已经可以结束训练之后,就会发出一个结束训练的指令,使得某个目标虚拟机器人结束迭代S1021-S1023,或者是所有的目标虚拟机器人均结束迭代S1021-S1023。
不论是采用上述哪种终止训练的方式来实现方案,训练的时间、迭代的次数都是常规的考量标准,对训练整体不会起到过多的辅助作用,对训练能够起到较大辅助作用的是目标虚拟机器人的对抗优势程度。下面对依据目标虚拟机器人的对抗优势程度来结束训练的方式进行说明。
在依据目标虚拟机器人的对抗优势程度来结束训练的时候,大致可以分为两种情况,下面分别进行说明:
第一种情况,在能够确定以哪个或哪几个目标虚拟机器人为主要训练对象(如这些目标虚拟机器人的最终版本作为第一目标虚拟机器人)的情况下,可以在与第一目标虚拟机器人相关联的第二目标虚拟机器人的对抗优势程度符合预设要求后,终止训练。也就是,在该种情况下,终止训练条件可以包括:
多个目标虚拟机器人中的第二目标虚拟机器人的对抗优势程度是否符合预设要求;第二目标虚拟机器人的对抗优势程度是根据第二目标虚拟机器人每次模拟对抗的结果的变化程度确定的。
此处,第二目标虚拟机器人与第一目标虚拟机器人可以是相同的也可以是不同的。当第二目标虚拟机器人与第一目标虚拟机器人是不同的虚拟机器人的情况下,第二目标虚拟机器人也应当与第一目标虚拟机器人有足够的关联。具体如,第二目标虚拟机器人可以涵盖所有的角色类型的目标虚拟机器人(即第二目标虚拟机器人具体包括多个目标虚拟机器人,这多个目标虚拟机器人应当涵盖每个角色类型,或者是涵盖大部分的角色类型),这样,当每个角色类型的目标虚拟机器人的对抗优势程度都符合要求后,说明每个角色类型下至少有一个目标虚拟机器人基本完成了训练,那么对于第一目标虚拟机器人而言,其已经可以从不同的类型的高手中学习到了对战的经验,此时就可以认为第一目标虚拟机器人的训练情况是较为理想的。具体如,当第一目标虚拟机器人是法师类型的虚拟机器人时,第二目标虚拟机器人可以有战士、法师、刺客等多个类型的虚拟机器人,进而,当这多个类型的虚拟机器人的进化都完成之后,则说明法师类型的第一目标虚拟机器人很可能已经从与其他类型的高手机器人(进化完成的虚拟机器人)的模拟对抗中学习到了相应的对抗技巧,此时,结束训练是比较合适的。
第二种情况,在无法确定以哪个或哪几个目标虚拟机器人为主要训练对象的情况下,则应当是全部或大部分的目标虚拟机器人都训练完成了,才能保证第一目标虚拟机器人的质量,在该种情况下,终止训练条件可以包括:
多个目标虚拟机器人中对抗优势程度低于预定数值的虚拟机器人的数量是否超过预定数值;目标虚拟机器人的对抗优势程度是根据该目标虚拟机器人每次模拟对抗的结果的变化程度确定的。
也就是,当大部分或全部的目标虚拟机器人的对抗优势程度都足够高的时候(如对抗优势程度基本不再发生变化),就可以终止训练了。此处,对抗优势程度更多是以胜率作为衡量标准,当某个目标虚拟机器人的胜率长期不再发生变化的时候,就说明该目标虚拟机器人无法再进一步改良了,当大部分的目标虚拟机器人都达到了该种状态,也就可以终止训练了。
具体来说,前文中所说的胜率是根据目标虚拟机器人与对应的全部陪练机器人的模拟对抗结果确定的。但在某些情况下,也可以调整计算方式,即胜率可以是根据目标虚拟机器人与指定角色类型的陪练机器人的模拟对抗结果确定的。也就是,在训练的时候,主要是考察目标虚拟机器人与某个角色类型的陪练机器人的胜率。比如,当目标虚拟机器人的角色类型是法师,计算胜率的时候,可以只根据其与角色类型为战士的虚拟机器人模拟对抗结果来计算胜率,则当该胜率不发生变化的时候结束训练,则可以保证法师类型的机器人对战士类型的玩家或机器人时,都保持有较高的胜率。
前文中介绍了终止训练的相关内容,下面对终止训练后的内容进行介绍。在终止训练后,一般来说就可以直接从机器人集合中选择第一目标虚拟机器人了,在选择第一目标虚拟机器人的时候,通常就是将最新的一代目标虚拟机器人作为第一目标虚拟机器人了。采用此种方式,就可以是分别为每个,或指定的属性信息确定对应的第一虚拟机器人。
也就是,步骤S103可以按照如下方式实现:
步骤10311,针对第一属性信息中的目标属性信息,从训练后得到的机器人集合中选择该目标属性信息下的虚拟机器人中训练时间最晚的第一虚拟机器人作为训练结果。
步骤10311中,目标属性信息可以是某一个第一属性信息,也可以是某多个第一属性信息,或者是全部的第一属性信息。当目标属性信息是全部的第一属性信息的时候,步骤10311在执行完成后,就可以为每个第一属性信息确定一个第一目标虚拟机器人了。目标属性信息也可以是有技术人员预先确定好的,那么在步骤10311在执行完成后,就可以为技术人员所期望的某种第一属性信息确定一个第一目标虚拟机器人了。
训练时间最晚的虚拟机器人也就是最后一代虚拟机器人了,或者说,训练时间最晚的虚拟机器人也就是目标机器人的当前版本(最新版本)。
除了采用训练时间来确定训练结果,还可以是依据虚拟机器人的对抗优势程度来确定训练结果,具体来说,步骤S103可以按照如下方式来实现:
步骤1032,针对训练后得到的机器人集合中属于目标角色类型的每个虚拟机器人,根据该虚拟机器人的模拟对抗结果,统计该虚拟机器人的对抗优势程度;
步骤1033,根据属于目标角色类型的每个虚拟机器人的对抗优势程度,从属于目标角色类型的虚拟机器人中选择出第一目标虚拟机器人作为训练结果。
步骤1032中,是要对属于目标角色类型的虚拟机器人进行统计,此处对抗优势程度在前文中已经进行过解释,此处不再重复说明。步骤1033中,通常是会选择对抗优势程度最大的虚拟机器人作为第一目标虚拟机器人。
为了保证选择出的第一目标虚拟机器人的均衡性,在统计对抗优势程度的时候,可以是分别进行统计。具体来说,步骤1032可以按照如下方式实现:
步骤10321,针对训练后得到的机器人集合中属于目标角色类型的每个虚拟机器人,根据该虚拟机器人的模拟对抗结果,统计该虚拟机器人针对每个角色类型的虚拟机器人的对抗优势程度;
步骤10322,针对训练后得到的机器人集合中属于目标角色类型的每个虚拟机器人,基于该虚拟机器人的针对每个角色类型的虚拟机器人的对抗优势程度进行加权计算,确定该虚拟机器人的对抗优势程度。
也就是,可以先统计出虚拟机器人针对每个角色类型的虚拟机器人的对抗优势程度,而后采用加权计算的方式确定出该虚拟机器人的对抗优势程度,这样计算出的数值更为准确,而不是只看某个对抗优势程度最大的数值。
本申请所提供的方法,在对虚拟机器人进行训练的时候,为了保证训练的多样性,产生了不同第一属性信息的虚拟机器人,并且通过让这些第一属性信息不同的虚拟机器人进行相互的迭代战斗,使得最终得到的目标虚拟机器人能够从不同的虚拟机器人身上学习到对应的对抗策略,提高了目标虚拟机器人的战斗应变能力。
下面,以一个具体的实例来说明本申请所提供的方法,相关技术中,在训练机器人的时候,均是采用独立训练的方式进行的,也就是被训练的机器人只会和自己进行模拟对抗,由于一个机器人只会有一个回报函数,因此,机器人在于自己进行模拟对抗后,很快就会收敛。具体来说,机器人在与自己进行对战的过程中如果发现某种对抗方式会很影响其收益(如某种对抗方式很影响胜负),则该机器人在利用回报函数针对对抗结果进行学习的时候,通常就会只关注该种对抗方式,这就导致机器人更多的会使用该种对抗方式进行模拟对抗。进而,在训练完成后,该机器人也会更多的使用该种对抗方试进行与玩家的对抗,或者是替代玩家进行操作。
如在篮球竞技游戏中,在某个特定的回报函数下,机器人可能会学习到只是用三分球进攻的得分效率最高,那么在训练完成后,该机器人与玩家进行对战的时候就只会使用三分球作为进攻手段了。但实际上,玩家如果发现机器人只会使用三分球作为进攻手段的话,玩家就可以将防守人员全部设置在三分线上,以干扰对手投篮,从而大大降低机器人的进攻效率。并且,由于机器人在学习过程中只关注三分球,也就导致了其在进行防守方面学习的时候,只会关注三分球的方式,而忽视突破、中距离投篮等进攻方式的防守,此时玩家如果采用三分球以外的方式来进攻的时候,则机器人无法采用有效的防守方式。可见,这样的机器人与玩家对战的时候,胜率是很低的,玩家只要将各种不同的进攻方式进行结合,或者是使用一些机器人不关注的进攻方式,就可以轻松的战胜机器人。
又如,在象棋游戏中,如果只讲关注度放在吃掉某些重要的棋子上的话,那么机器人在进行学习的时候,就会想尽各种办法吃掉这些棋子,而不关注其他棋子。又或者是当吃掉不同棋子的收益是固定的时候(如吃掉对方车,收益为0.6,吃掉对方马,收益为0.4等),这样设置的话,依然会导致机器人更关注某些棋子的得失,而不是关注整体的全局收益。
又如,在生存类游戏(如荒野行动)中,如果只将关注度放在存活时间上的话,那么最终训练出来的机器人就会是只有躲藏技能比较高的机器人。但实际上,这类游戏中有大量的激进玩家,这类玩家在游戏开始的时候就会主动寻找和击杀其他玩家,由于机器人在训练的时候,只关注了躲藏技巧方面,这直接导致了机器人很可能只会被动挨打,而不会采用其他应急的措施。及时在回报函数中增加了击杀玩家的奖励,当机器人发现某一种击杀玩家的成功率较高的时候,也就只会采用这一种击杀方式,而不会采用其他的击杀方式来进行游戏,当玩家发现了机器人的这种行动规律之后,就可以采用其他的对抗方式与机器人进行对抗,由于机器人在训练的时候没有训练过其他的对抗方式,因此,一旦玩家采用了其他的对抗方式,机器人就会显得无所适从,导致和玩家进行对抗的胜率很低。
针对此种情况,本方案可以采用如下训练机器人的方式来应对。
如图3所示,训练初始时,分别生成N个目标虚拟机器人(图中仅示例性的示出了目标虚拟机器人A-D),并使用当前的N目标虚拟机器人更新机器人集合(初始状态的机器人集合中只有刚生成的目标虚拟机器人A-D)。
对于任一个目标虚拟机器人都迭代执行如下步骤:
步骤11,从机器人集合中选择陪练机器人;
步骤12,将目标虚拟机器人与陪练机器人进行模拟对抗,产生模拟对抗结果;
步骤13,目标虚拟机器人使用模拟对抗结果和该目标虚拟机器人的回报函数进行训练;
步骤14,使用训练后的目标虚拟机器人更新虚拟机器人集合(步骤14执行后,重新执行步骤11)。
需要说明的,由于训练是迭代进行的,因此,本轮训练后的目标虚拟机器人应当作为下一轮的步骤12中作为目标虚拟机器人。
由于各个目标虚拟机器人的训练都是同时进行的,因此机器人集合中会不停的增加新的虚拟机器人(训练后的目标虚拟机器人,训练后的目标虚拟机器人可以与训练前的虚拟机器人共存在机器人集合中,二者都可以作为陪练机器人被选择)。
在对虚拟机器人进行训练的时候,可以不采用对抗一次就训练一次的方式,如图4所示,示出了一种改良的训练某个目标虚拟机器人的方式,在该种训练方式下,对于某个目标虚拟机人而言,其训练过程可以通过迭代执行如下步骤来实现:
步骤21,从机器人集合中选择多个陪练机器人;
步骤22,分别在不同的训练副本中将目标虚拟机器人与对应的陪练机器人进行模拟对抗,产生多个模拟对抗结果;(步骤22执行后,重新执行步骤21)。
步骤23,使用模拟对抗结果更新数据池;当数据池中的数据超过预定数值后,执行步骤24;
步骤24,目标训机器人A使用数据池中的模拟对抗结果和该目标虚拟机器人的回报函数训练;
步骤25,使用训练后的目标虚拟机器人更新虚拟机器人集合。
上述步骤21-23的执行与步骤24-25的执行并无绝对的逻辑关系,通常来说,步骤21-23是有着必然的逻辑先后关系,步骤24执行的前提条件是数据池中的数据超过预定数值;因此,可以是在步骤23执行后,测算一下当前数据池中的数据量,当数据量足够多的时候进行一次训练。当然,训练后的目标虚拟机器人可以与训练前的虚拟机器人共存在机器人集合中,二者都可以作为陪练机器人被该目标虚拟机器人选择,也可以被其他目标虚拟机器人选择选择。
针对不同的游戏类型,回报函数的设计是有侧重的,下面对回报函数的设计进行简要说明。
本申请所提供的方案中,关于回报函数的设计可以用如下公式概括,假设一个游戏中总共有N种事件:
其中,Ei代表第i种事件参数的参数,vi代表为这个事件设计的权重。如果一个事件只有发生或者不发生两种情况,则Ei就只会为1或者0;除此之外,有些事件会有连续的参数,例如决斗类游戏里削减对手资源(如血量)的事件,会有一个削减量,此时Ei就是削减量的值,也可以是削减量进行数学变换后(如取几次方、取三角函数等等)的值。
如在篮球游戏中,回报函数应当围绕着得分来设计,例如对手进球获得负回报值,我方进球获得正回报值,回报值的大小根据进球的种类(2分还是3分进行调整),另外比赛的最终胜负也会影响最后一次的回报值。从而鼓励AI Bot(虚拟机器人)多得分、少失分,并在比赛快结束且落后时使用较激进的手段(如犯规战术)来获得更高的胜利机会。但游戏的设计未必合理,例如某个游戏里投三分球的战术的进攻效率明显低于突破战术的效率,模型会很快学到使用突破战术作为主要的进攻手段,从而训练中遇到的所有对手,都使用突破进攻,而不会使用投三分球的战术。这样就造成了AI Bot对手使用突破战术的过拟合,遇到使用三分球战术的玩家,AI Bot表现会变的非常差。此时就可以用的方法来改进这种情况,除了原始的回报函数作为最终产出模型的回报函数以外,设计另外一种回报函数,这种回报函数在获得三分球进球时,可以获得比通常更多的回报(如原始回报的2倍),从而鼓励使用这类回报函数的AIBot尽可能地采用投三分球的进攻方式。因此最终产出的模型在仍然保持使用突破进攻战术的情况下,可以同时获得防守三分球战术的能力。
又如《荒野行动》这样的生存游戏,这样的游戏会以生存下去为回报函数的主要构成部分,例如多生存一秒就能获得正回报,以死亡结束会是负回报,以活到最后为结束得到正回报。以这样的回报函数进行训练,很有可能得到除了在地图角落里呆着,其它什么事情都不做的AI Bot。众所周知这类游戏里有很多很激进的玩家,他们以击败其他玩家为乐趣,并不在意自己的生存。AI Bot在训练中没有见过这样的玩家,应对这样的对手时会表现很不好。此时也可以增加一类回报函数,这类回报函数给予击杀更多的回报值,降低生存带来的回报值,从而让最终产出的AI Bot在训练过程中能够与这类激进风格的AIBot进行战斗,上线后面对激进玩家的表现能够变得更好。
又如团队协作类游戏(即两个或者多个队伍进行对抗的游戏,或者是一个或多个队伍组队与某个游戏对象进行对抗,通常,每个队伍中应当由多个对象组成;如dota)中,每个对象(机器人)都有自己的回报函数,这些回报函数的参数依然根据游戏中发生的事件来确定。可以通过调整一支队伍中每个机器人的回报函数的数值和由不同类型的机器人来组成队伍,来得到不同的风格的队伍。训练的时候,会以队伍为单位进行,即一场对战的两个队伍,第一个队伍中的所有机器人都会处于探索模式,第二个队伍中所有机器人都处于利用模式,处于探索模式的一对(第一个队伍)采集到的数据会用来训练所有本队伍中的机器人(即第二个队伍中的机器人是陪练机器人,第一个队伍中的机器人是要训练的目标机器人;也可以理解为同一个队伍中的某些机器人是陪练机器人,另一些机器人是要训练的目标机器人)。具体实现时,在两个队伍中,可以有部分成员的回报函数不同。如Dota2里中,辅助英雄的回报函数可以保持不变,只变更核心位置英雄的回报函数,设置回报函数可以按照如下方式进行:例如通过获取的金钱方式的权重来控制机器人更偏好于击杀小兵获取金钱,还是偏好于击杀对方英雄来获取金钱,其它的回报函数可以根据控制视野、经验获取、肉山击杀、摧毁对方建筑等等事件来设计。
还有一个比较经典的游戏模式是棋牌类游戏。棋牌类的分类比较广,下面分类说明一下。
象棋,包括中国象棋和国际象棋、日本将棋等等,都是以吃掉对方某个指定的子为目标。吃掉指定的子和多次形成相同局面作为胜负判定的条件,自然会成为回报函数中不可缺少的一部分。但如果只有在游戏结束的时候回报函数才输出非零值,AIBot是很难(实际上是不可能)学会什么有意义策略的,最后的结果就是随机乱下。常规的、也是符合人类直觉的方式是给每一次吃子都对回报函数产生影响,另外对一些关键性的操作,例如象棋中的出车、两个子形成或者失去互保等等也给予回报值。可以用如下公式概括。
其中Ei代表上一步中是否发生某种事件,是为1,否为0。vi代表这种事件人为定义的回报函数的权重。例如中国象棋中,我方失去一个车的事件vi可以设为-9,吃掉对方一个炮的事件的vi可以设为+5。可以通过调整这些权重来获得多种回报函数,达到获得不同风格的AI Bot,并最终提高产出的AIBot的能力和健壮性的目的。初步想到的这样可以获得偏好吃对方的车马炮,偏好兑子等等风格的AI Bot。
跳棋、五子棋、麻将可以在某种意义上算是一类,他们是以己方的棋子构建成某种形态为结束。对于这种游戏,在玩的时候,潜意识里有一个“完成度”的概念。在五子棋里,棋子可以构成“活三”、“死四”,乃至于“活二”。从没有“活二”,到有“活二”,或者从“活二”到“活三”,离胜利就近了一步(如果发生在对手身上,就是离失败近了一步),把这种变化称为“完成度”的升高。可以把这种完成度的改变作为前述公式里的事件。通过调整不同事件的权重,可以得到喜欢凑活三、喜欢冲死四这样的AI Bot。
麻将可以用“目前的手牌换(或者是碰或者吃,这些操作在完成度上等价)多少张牌可以胡”来表示完成度,注意对手的完成度变化事件虽然在游戏中不可见,但是可以用来计算回报函数的,因为回报函数本身并不会影响决策,只是用来评价决策优劣的指标,所以可以用“上帝视角”来计算回报函数。另外跟五子棋和麻将不同的一点是,麻将的胜利根据胡牌时的牌型有番数的不同。所以在麻将中,胡牌的牌型和完成度改变都会成为回报函数的组成部分。通过调整胡牌牌型的系数,可以得到偏好胡清一色、胡七对的AI Bot;通过调整完成度改变事件的系数,可以得到偏好自己胡牌或是阻止别人胡牌的AI Bot。
围棋更接近于象棋。控制的空地数量的变化,棋盘上双方棋子数量的变化,棋子“气”总量的变化,都可以作为回报函数的组成部分。围棋我玩得也不多,有可能可以得到偏好圈地(己方控制空地系数大)的AI Bot,偏好吃对方子(对方棋子数系数大)的AI Bot,偏好努力不被对方吃子(气和己方棋子数系数大)的AI Bot。
与上述方法相对应的,本申请还提供了一种虚拟机器人训练装置,包括:
生成模块,用于生成包含有多个目标虚拟机器人的机器人集合;多个目标虚拟机器人对应有不同的第一属性信息;
训练模块,用于针对每个目标虚拟机器人,从机器人集合中选择不同的虚拟机器人与该目标虚拟机器人进行模拟对抗,并根据模拟对抗结果和该目标虚拟机器人对应的回报函数训练该目标虚拟机器人,以及根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人;
选择模块,用于从训练后得到的机器人集合中选择第一目标虚拟机器人作为训练结果。
在一些实施例中,训练模块,包括:
模拟对抗单元、训练单元和更新单元依次迭代工作,直至达到终止训练条件:
模拟对抗单元,用于针对每个目标虚拟机器人,从机器人集合中选择指定的虚拟机器人与该目标虚拟机器人进行模拟对抗;
训练单元,用于针对每个目标虚拟机器人,根据该目标虚拟机器人的模拟对抗结果和该目标虚拟机器人对应的回报函数对该目标虚拟机器人进行训练;
更新单元,用于针对每个目标虚拟机器人,根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人。
在一些实施例中,终止训练条件包括以下的任意一个:
多个目标虚拟机器人中对抗优势程度低于预定数值的虚拟机器人的数量是否超过预定数值;目标虚拟机器人的对抗优势程度是根据该目标虚拟机器人每次模拟对抗的结果的变化程度确定的;
多个目标虚拟机器人中的第二目标虚拟机器人的对抗优势程度是否符合预设要求;第二目标虚拟机器人的对抗优势程度是根据第二目标虚拟机器人每次模拟对抗的结果的变化程度确定的。
在一些实施例中,第一属性信息包括以下的任意一种或多种:
角色类型、回报函数。
在一些实施例中,选择模块,包括:
统计单元,用于针对训练后得到的机器人集合中属于目标角色类型的每个虚拟机器人,根据该虚拟机器人的模拟对抗结果,统计该虚拟机器人的对抗优势程度;
第一选择单元,用于根据属于目标角色类型的每个虚拟机器人的对抗优势程度,从属于目标角色类型的虚拟机器人中选择出第一目标虚拟机器人作为训练结果。
在一些实施例中,选择模块,包括:
第二选择单元,用于针对第一属性信息中的目标属性信息,从训练后得到的机器人集合中选择该目标属性信息下的虚拟机器人中训练时间最晚的第一虚拟机器人作为训练结果。
在一些实施例中,生成模块,包括:
根据目标虚拟机器人所在游戏的游戏类型,确定每个目标虚拟机器人的第一属性信息;
根据每个目标虚拟机器人的第一属性信息,生成包含有多个目标虚拟机器人的机器人集合。
在一些实施例中,模拟对抗单元,包括:
确定子单元,用于针对每个目标虚拟机器人,根据机器人集合中虚拟机器人的第二属性信息确定每个虚拟机器人的选择概率;第二属性信息包括以下的任意一种或多种:虚拟机器人的训练时间、虚拟机器人的模拟对抗结果、虚拟机器人的角色类型、虚拟机器人的回报函数;
模拟对抗子单元,用于针对每个目标虚拟机器人,根据机器人集合中每个虚拟机器人的选择概率,从机器人集合中选择指定的虚拟机器人与该目标虚拟机器人进行模拟对抗。
与上述方法相对应的,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如虚拟机器人训练方法的步骤。
如图5所示,为本申请实施例所提供的电子设备示意图,该电子设备1000包括:处理器1001、存储器1002和总线1003,存储器1002存储有执行指令,当电子设备运行时,处理器1001与存储器1002之间通过总线1003通信,处理器1001执行存储器1002中存储的虚拟机器人训练方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (11)

1.一种虚拟机器人训练方法,其特征在于,包括:
生成包含有多个目标虚拟机器人的机器人集合;所述多个目标虚拟机器人对应有不同的第一属性信息;
针对每个目标虚拟机器人,从机器人集合中选择不同的虚拟机器人与该目标虚拟机器人进行模拟对抗,并根据模拟对抗结果和该目标虚拟机器人对应的回报函数训练该目标虚拟机器人,以及根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人;
从训练后得到的所述机器人集合中选择第一目标虚拟机器人作为训练结果。
2.根据权利要求1所述的方法,其特征在于,针对每个目标虚拟机器人,从机器人集合中选择不同的虚拟机器人与该目标虚拟机器人进行模拟对抗,并根据模拟对抗结果和该目标虚拟机器人对应的回报函数训练该目标虚拟机器人,以及根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人,包括:
迭代执行如下步骤,直至达到终止训练条件:
针对每个目标虚拟机器人,从机器人集合中选择指定的虚拟机器人与该目标虚拟机器人进行模拟对抗;
针对每个目标虚拟机器人,根据该目标虚拟机器人的模拟对抗结果和该目标虚拟机器人对应的回报函数对该目标虚拟机器人进行训练;
针对每个目标虚拟机器人,根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人。
3.根据权利要求2所述的方法,其特征在于,所述终止训练条件包括以下的任意一个:
多个所述目标虚拟机器人中对抗优势程度低于预定数值的虚拟机器人的数量是否超过预定数值;所述目标虚拟机器人的对抗优势程度是根据该目标虚拟机器人每次模拟对抗的结果的变化程度确定的;
多个所述目标虚拟机器人中的第二目标虚拟机器人的对抗优势程度是否符合预设要求;所述第二目标虚拟机器人的对抗优势程度是根据第二目标虚拟机器人每次模拟对抗的结果的变化程度确定的。
4.根据权利要求1所述的方法,其特征在于,第一属性信息包括以下的任意一种或多种:
角色类型、回报函数。
5.根据权利要求1所述的方法,其特征在于,从训练后得到的所述机器人集合中选择第一目标虚拟机器人作为训练结果,包括:
针对训练后得到的所述机器人集合中属于目标角色类型的每个虚拟机器人,根据该虚拟机器人的模拟对抗结果,统计该虚拟机器人的对抗优势程度;
根据属于目标角色类型的每个虚拟机器人的对抗优势程度,从属于目标角色类型的虚拟机器人中选择出第一目标虚拟机器人作为训练结果。
6.根据权利要求1所述的方法,其特征在于,从训练后得到的所述机器人集合中选择第一目标虚拟机器人作为训练结果,包括:
针对第一属性信息中的目标属性信息,从训练后得到的所述机器人集合中选择该目标属性信息下的虚拟机器人中训练时间最晚的第一虚拟机器人作为训练结果。
7.根据权利要求1所述的方法,其特征在于,生成包含有多个目标虚拟机器人的机器人集合,包括:
根据目标虚拟机器人所在游戏的游戏类型,确定每个目标虚拟机器人的第一属性信息;
根据每个目标虚拟机器人的第一属性信息,生成包含有多个目标虚拟机器人的机器人集合。
8.根据权利要求2所述的方法,其特征在于,针对每个目标虚拟机器人,从机器人集合中选择指定的虚拟机器人与该目标虚拟机器人进行模拟对抗,包括:
针对每个目标虚拟机器人,根据机器人集合中虚拟机器人的第二属性信息确定每个虚拟机器人的选择概率;所述第二属性信息包括以下的任意一种或多种:虚拟机器人的训练时间、虚拟机器人的模拟对抗结果、虚拟机器人的角色类型、虚拟机器人的回报函数;
针对每个目标虚拟机器人,根据机器人集合中每个虚拟机器人的选择概率,从机器人集合中选择指定的虚拟机器人与该目标虚拟机器人进行模拟对抗。
9.一种虚拟机器人训练装置,其特征在于,包括:
生成模块,用于生成包含有多个目标虚拟机器人的机器人集合;所述多个目标虚拟机器人对应有不同的第一属性信息;
训练模块,用于针对每个目标虚拟机器人,从机器人集合中选择不同的虚拟机器人与该目标虚拟机器人进行模拟对抗,并根据模拟对抗结果和该目标虚拟机器人对应的回报函数训练该目标虚拟机器人,以及根据训练后的目标虚拟机器人更新机器人集合中的虚拟机器人;
选择模块,用于从训练后得到的所述机器人集合中选择第一目标虚拟机器人作为训练结果。
10.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如权利要求1至8任一所述的虚拟机器人训练方法的步骤。
11.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至8任一所述的虚拟机器人训练方法的步骤。
CN202010108453.1A 2020-02-21 2020-02-21 虚拟机器人训练方法、装置、电子设备和介质 Active CN111389010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010108453.1A CN111389010B (zh) 2020-02-21 2020-02-21 虚拟机器人训练方法、装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010108453.1A CN111389010B (zh) 2020-02-21 2020-02-21 虚拟机器人训练方法、装置、电子设备和介质

Publications (2)

Publication Number Publication Date
CN111389010A CN111389010A (zh) 2020-07-10
CN111389010B true CN111389010B (zh) 2023-04-07

Family

ID=71415113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010108453.1A Active CN111389010B (zh) 2020-02-21 2020-02-21 虚拟机器人训练方法、装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN111389010B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114167749A (zh) * 2021-11-17 2022-03-11 深兰盛视科技(苏州)有限公司 足球机器人的控制方法及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108888958A (zh) * 2018-06-22 2018-11-27 深圳市腾讯网络信息技术有限公司 虚拟场景中的虚拟对象控制方法、装置、设备及存储介质
CN109960545A (zh) * 2019-03-29 2019-07-02 网易(杭州)网络有限公司 虚拟对象控制方法、系统、装置、介质及电子设备
US20190344449A1 (en) * 2018-05-09 2019-11-14 Sony Interactive Entertainment Inc. Apparatus Control Systems and Method
CN110555507A (zh) * 2019-10-22 2019-12-10 深圳追一科技有限公司 虚拟机器人的交互方法、装置、电子设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190344449A1 (en) * 2018-05-09 2019-11-14 Sony Interactive Entertainment Inc. Apparatus Control Systems and Method
CN108888958A (zh) * 2018-06-22 2018-11-27 深圳市腾讯网络信息技术有限公司 虚拟场景中的虚拟对象控制方法、装置、设备及存储介质
CN109960545A (zh) * 2019-03-29 2019-07-02 网易(杭州)网络有限公司 虚拟对象控制方法、系统、装置、介质及电子设备
CN110555507A (zh) * 2019-10-22 2019-12-10 深圳追一科技有限公司 虚拟机器人的交互方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111389010A (zh) 2020-07-10

Similar Documents

Publication Publication Date Title
Elias et al. Characteristics of games
García-Sánchez et al. Evolutionary deckbuilding in hearthstone
Szita Reinforcement learning in games
García-Sánchez et al. Optimizing hearthstone agents using an evolutionary algorithm
CN112843725A (zh) 智能体处理方法及装置
Font et al. Dota 2 bot competition
Lee et al. Showdown AI competition
Cerny et al. Rogue-like games as a playground for artificial intelligence–evolutionary approach
Panumate et al. An Approach to Quantifying Pokemon's Entertainment Impact with Focus on Battle
Chan et al. Evolutionary behavior testing of commercial computer games
Pantaleev In search of patterns: Disrupting rpg classes through procedural content generation
US20120115605A1 (en) Systems and methods for inverse franchising of virtual characters
CN111389010B (zh) 虚拟机器人训练方法、装置、电子设备和介质
Donaldson Towards a typology of metagames
Kowalski et al. Summarizing strategy card game ai competition
US20120088586A1 (en) Linkable and extensible virtual characters
JP2020121125A5 (zh)
Diah et al. Quantifying engagement of video games: Pac-man and dota (defense of the ancients)
Hoang et al. Lag of legends: The effects of latency on league of legends champion abilities
Krucher Algorithmically balancing a collectible card game
US20120313320A1 (en) Role-playing board game with character dice
JP6942970B2 (ja) 情報処理装置およびゲームプログラム
Bakkes Rapid adaptation of video game AI
McMahon et al. Engaging in videogame play: an activity-centric analysis of the player experience
Aldaboubi Big Data In Single Player Games

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant