游戏人工智能系统的加速方法及系统与流程

文档序号:22118830发布日期:2020-09-04 15:55阅读:178来源:国知局
游戏人工智能系统的加速方法及系统与流程

本发明涉及采用计算机构建游戏人工智能系统技术领域,具体地,涉及一种游戏人工智能系统的加速方法及系统。



背景技术:

采用计算机构建游戏人工智能系统,最初的技术主要专注于设计启发函数,例如国际象棋ai程序深蓝是由多名国际象棋高手设计特征,再由计算机程序员编写极大极小搜索程序得来。但这类做法有以下局限:(1)人类对游戏的认知有限,例如对于围棋等状态空间极大的任务,人类的领域知识极为有限,从而设计的启发函数也就不可靠;(2)极大极小搜索过于暴力,耗时巨大,效率低下,仅仅在国际象棋上超越人类,而无法在围棋类对弈上取得突破进展;(3)手工线性特征过于简单,无法适应复杂的围棋类对弈,也无法发挥现代高性能计算资源的优势。

随着深度并行计算框架,特别是深度卷积神经网络的发展,使得端到端的技术应用日益广泛。目前有一些将多通道游戏数据(例如棋盘)视为图像的方法出现,并取得了突破性的进展。

围棋类对弈智能系统的研发,是几十年来业界和学术界的研发焦点之一,它的人工智能程序研发极具挑战性。目前已有用神经网络对优先度和返回值进行建模的方法,但仍然是通过自我对弈进行抽样,虽然效果很好但极其消耗硬件资源。具体地,优先度-返回值是用残差模块建立的,接收围棋类棋盘表示作为输入,估计其下一步落子概率分布和胜率,它可以看作是一种快而强大的启发函数来指导蒙特卡洛树搜索。近两年有几家企业、团队沿用这种方法,研发出高水平的围棋类对弈人工智能程序,但都仅仅是简单复现,并未有理论或方法上的创新,且耗费硬件资源和时间巨大,普通研究者或个人无法承受。

机器学习手段可以用来训练、增强游戏人工智能系统。对围棋类对弈来说,可设计一个认知系统,用来初始化数据节点优先度,监督学习和强化学习都可以用于增强该认知系统。监督学习方法是用一个包含超过2000万个(多通道游戏数据-优先信息-返回值)三元组的数据集来训练优先度-返回值模型。强化学习是用自我对弈的方式产生大量数据用于增强系统,并且在迭代过程中产生更高质量的数据,而认知模块性能逐渐变强。

自我对弈是一类强化学习,模型通过与环境不断交互产生训练数据,用训练数据更新模型后得到更强的策略,然后继续产生数据,如此迭代下去。不过,这样的自我对弈,在如今的深度学习的时代,每次自我对弈耗费资源和时间巨大,这对业界的复现和生产很不利,因此需要一些手段去减少自我对弈棋局的数量。

目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。



技术实现要素:

针对现有技术中存在的依赖大量数据进行机器学习、硬件消耗大的缺陷,本发明的目的是提供一种游戏人工智能系统的加速方法及系统,提高系统提升的速度的同时,降低硬件资源的消耗和处理时间。

本发明是通过以下技术方案实现的。

根据本发明的一个方面,提供了一种游戏人工智能系统的加速方法,包括:

s0:输入多通道游戏数据,根据游戏逻辑得到返回信息;

s1:输入多通道游戏数据,使用深度并行计算框架计算节点优先度初始值和返回信息近似值,并产生特征图,用于s3缩小其间的平方误差;

s2:利用s1中计算得到的节点优先度初始值形成树形结构,生成新的数据节点,并填入s1计算得到的节点优先度初始值作为数据节点信息,再将s1中计算得到的返回信息近似值填入数据节点,然后将数据节点信息回传,更新各个数据节点保存的信息,输出一个行动后验预测结果,即为最终优先度;另外,按最大访问次数原则取得由一系列多通道游戏数据及对应返回近似值组成的最优路径,用于更新深度并行计算框架的参数时选取多通道游戏数据;

s3:根据s2中得到的最终优先度结果,通过缩小相邻多通道游戏数据优先度之间的差异以及相邻多通道游戏数据的特征图之间的平方误差,更新深度并行计算框架内的参数;

根据s0中得到的返回信息和s2中得到的最终优先度结果,通过缩小最终优先度与返回信息之间的差异,更新深度并行计算框架内的参数。

优选地,所述s0中,输入多通道游戏数据,根据具体棋类的规则和逻辑,输出判定后得到的返回信息。

优选地,所述s1中,深度并行计算框架,包括l层的残差模块和第l+1层的特征调整模块,其中,多通道游戏数据经过l层的残差模块的过程,数据维度不变,用于对数据进行压缩操作和批归一化处理;所述第l+1层的特征调整模块包括如下两部分:

-第一部分,调整特征图尺寸后经过softmax函数计算输出节点初始优先度;

-第二部分,调整多通道游戏数据尺寸后经过tanh函数计算输出对返回信息的估计;

其中:

节点优先度初始值,即第l+1层的特征调整模块第一部分计算输出的节点初始优先度,为一个362维数组,作为s2中的节点优先度初始值;

返回信息近似值,即第l+1层的特征调整模块第二部分计算输出的返回信息的估计,为一个标量,作为s2中生成的数据节点的价值初始值。

优选地,每一层所述残差模块均包括数据压缩层和批归一化层,分别用于对数据进行压缩操作和批归一化处理;其中,所述数据压缩层的卷积核大小为3×3。

优选地,所述s2中,树形结构的数据节点间建立连接,其中每一个数据节点均用于存储如下信息:

-节点优先度初始值,代表选择该数据节点的优先程度,由s1计算得到;

-访问次数,代表该数据节点被访问过的次数;

-平均结果信息,由s1计算得到的返回信息近似值累计平均值得来;

重复以下4个步骤:

-选择:树形模拟采用最优优先原则,即每一层按高节点初始值、低访问次数、高动作值的原则访问子数据节点,最终到达的末端节点即为被选择的数据节点;

-展开:根据s1中的计算,初始化末端节点下的所有合法节点,节点初始值初始化为s1中计算的节点优先度初始值,访问次数和平均返回信息近似值初始化为0;

-评估:得到s1中对末端节点的返回信息近似值;

-回传:向上逐层更新数据节点信息,直至初始数据节点;具体地,访问次数自增1,平均返回信息近似值累加评估后,取平均值;

以上步骤重复多次后,利用每个子数据节点的访问次数除以所有子数据节点访问次数之和,计算选择每个行动的最终优先度。

优选地,所述s3中,缩小相邻多通道游戏数据优先度之间的差异的方法是,最小化s2中所取得最优路径上各个多通道游戏数据的返回近似值的方差;缩小两个相邻多通道游戏数据的特征图之间的平方误差的方法是,计算特征图对应元素差值平方并求和,然后通过更新并行计算框架的方式缩小该值。

优选地,所述s3中,缩小最终优先度与返回信息间差异的方法是,最小化节点优先度初始值和最终优先度之间的交叉熵,最小化返回信息近似值与返回信息之间的平方误差。

根据本发明的另一个方面,提供了一种游戏人工智能系统的加速系统,包括:

数据处理模块:对于输入的多通道游戏数据,根据游戏逻辑得到返回信息;对于输入的多通道游戏数据,使用深度并行计算框架计算节点优先度初始值和返回信息近似值;

优先度计算模块:利用认知模块中计算得到的节点优先度初始值形成树形结构,生成新的数据节点,并填入认知模块计算得到的节点优先度初始值作为数据节点信息,再将认知模块中计算得到的返回信息近似值填入数据节点,然后将数据节点信息回传,更新各个数据节点保存的信息,输出一个行动后验预测结果,即为最终优先度;另外,按最大访问次数原则取得由多通道游戏数据及对应返回近似值组成的最优路径,用于更新深度并行计算框架的参数时选取多通道游戏数据;

更新模块:根据优先度计算模块中得到的最终优先度结果,通过缩小相邻多通道游戏数据优先度之间的差异以及相邻多通道游戏数据的特征图之间的平方误差,更新深度并行计算框架内的参数;根据认知模块中得到的返回信息和优先度计算模块中得到的最终优先度结果,通过缩小最终优先度与返回信息之间的差异,更新深度并行计算框架内的参数。

优选地,所述深度并行计算框架,包括:

l层残差模块:其中每一层残差模块均包括数据压缩层和批归一化层,所述数据压缩层的卷积核大小为3×3,经过l层残差模块的过程不改变多通道游戏数据的大小;

第l+1层特征调整模块:包括如下两部分:

-第一部分,调整特征图尺寸后经过softmax函数计算节点初始优先度;

-第二部分,调整多通道游戏数据尺寸后经过tanh函数计算对返回信息的估计。

优选地,所述l取值为10。

与现有技术相比,本发明具有如下有益效果:

1、本发明提供的游戏人工智能系统的加速方法及系统,采用深度并行计算框架,完全利用网络数据集和机器生成数据更新并行计算框架参数,并非人工设计,提高了系统性能,降低了硬件消耗。相比免模型的强化学习技术,本发明通过深度并行计算框架,使得数据处理性能得到了大幅提升,稳定性也得到了大幅提高。尤其在基础局面上,本发明出错率大大减少,由于崩溃情况大大减少,通过本发明提供的方法及系统进行性能提升的游戏人工智能系统,在同等硬件条件下表现明显优于其他现有技术。

2、本发明提供的游戏人工智能系统的加速方法及系统,相比在分布式系统上使用数千块gpu的技术,本发明仅需4块左右gpu和普通配置的cpu,普通研究者或团队可在7天内运行并复现结果,且无需分布式等跨机器技术,也无需搭建大数据平台,采用的深度并行计算框架,也是依赖于numpy科学计算库和pytorch的深度学习框架。

3、本发明提供的游戏人工智能系统的加速方法及系统,仅需1万局专业棋谱作为训练数据,所有棋谱数据均可在互联网上获得。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明实施例中所提供的游戏人工智能系统的加速方法及系统的总体结构图;图中,第一行为多通道游戏数据,第二行为深度并行计算框架,第三行为深度并行计算框架所抽取的特征图。

具体实施方式

下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

请参阅图1,本发明实施例提供了一种游戏人工智能系统的加速方法,包括:

s0:输入多通道游戏数据,根据游戏逻辑得到返回信息;该步骤的具体实现与游戏种类有关;

s1:使用深度并行计算框架计算节点优先度初始值和返回信息近似值,中间会产生特征图,用于s2中的数据节点生成时节点信息的初始化以及s3中的深度并行框架参数更新;

s2:利用s1计算得到的节点优先度初始值形成树形结构,生成新的数据节点,并填入认知模块计算得到的节点优先度初始值作为数据节点信息,再将s1中得到的返回信息近似值填入数据节点,然后将数据节点信息回传,更新各个数据节点保存的信息,输出一个行动后验预测结果,即为最终优先度,用于s3中深度并行计算框架参数的更新;

s3a:根据s0的返回信息和s2的计算结果,通过缩小计算结果与s0、s2返回信息间的差异,更新深度并行计算框架内的参数。该步骤是通过更新参数的方式加强游戏系统的性能;

s3b:根据s2的计算结果,通过对计算结果的调整,缩小相邻多通道游戏数据间优先度的差异,更新深度并行计算框架内的系数。该步骤是通过上述方式加快系统更新的速度。

本发明上述实施例利用多通道游戏数据固有的低方差性质,约束深度并行计算框架型的更新,使得深度并行计算框架在与环境交互前就可以开始执行,从而减少了训练数据的数量,降低了硬件消耗并缩短了数据处理时间,大大提升了系统性能。训练好的游戏ai系统可以达到当今最高水平附近,在一些优选的实施例中,所用计算资源在4核cpu和4块普通显卡以内。

在一优选实施例中,s0中,输入多通道游戏数据,根据游戏种类实现游戏逻辑,输出返回信息。例如围棋输出1(黑方胜利),-1(白方胜利);atari游戏输出最终的得分。该返回信息用于s3更新深度并行计算框架的系数。

在一优选实施例中,s1中,使用深度并行计算框架,输入多通道游戏数据,经过l个残差块,最终输出初始优先度和对返回信息的近似估计。更进一步地,s1中,采用的深度并行计算框架,包括:

l层残差模块:其中每一层残差模块均包括数据压缩层和批归一化层,数据压缩层的卷积核大小为3×3,步长为1,批归一化层计算输入多通道游戏数据的均值和方差,使其每一维归一化到[0,1]范围内,用于系统提升加速和稳定。经过l层残差模块的过程不改变多通道游戏数据的大小。

进一步的,第l+1层特征调整模块:包括如下两部分:

-第一部分,调整特征图尺寸后经过softmax函数计算节点初始优先度;

-第二部分,调整多通道游戏数据尺寸后经过tanh函数计算对返回信息的估计。

在一优选实施例中,s2中,树形结构的数据节点间建立连接,其中每一个数据节点均用于存储如下信息:

-节点优先度初始值,代表选择该数据节点的优先程度,由s1计算得到;

-访问次数,代表该数据节点被访问过的次数;

-平均结果信息,由s1计算得到的返回信息近似值累计平均值得来;

重复以下4个步骤:

-选择:树形模拟采用最优优先原则,即每一层按高节点初始值、低访问次数、高动作值的原则访问子数据节点,最终到达的末端节点即为被选择的数据节点;

-展开:根据s1中的计算,初始化末端节点下的所有合法节点,节点初始值初始化为s1中计算的节点优先度初始值,访问次数和平均返回信息近似值初始化为0;

-评估:得到s1中对末端节点的返回信息近似值;

-回传:向上逐层更新数据节点信息,直至初始数据节点;具体地,访问次数自增1,平均返回信息近似值累加评估后,取平均值;

以上步骤重复多次后,利用每个子数据节点的访问次数除以所有子数据节点访问次数之和,计算选择每个行动的最终优先度。

在一优选实施例中,形成树形结构后,选定一条最优路径,方法是:每层选访问次数最多的节点,这些节点形成的序列就是最优路径。在遍历节点的同时,用深度并行计算框架计算它们的返回值估值v,它们的平均值作为更新的目标。如果用其他原则选择节点,则稳定性会有所下降。

在一优选实施例中,s3中,根据模型理论上固有的路径一致性性质,更新深度并行计算框架的参数,更新按如下公式进行:

该公式是平方误差损失,用于缩小最优路径上返回近似值的方差,达到加速的效果,ls3是最终的平方误差损失,v是深度并行计算框架给出的返回信息近似值,是最优路径上优先度的平均值。

在s2选定最终优先度最大的节点后,会形成另一个新的多通道游戏数据,将这两个相邻的多通道游戏数据送入s1的深度并行计算框架,形成两个高维游戏特征图,根据如下公式更新深度并行计算框架的系数:

l=(f1-f2)2

其中,l为特征图平方误差,f1是前一个高维游戏特征图,f2是后一个高维游戏特征图,该公式计算两者之间的平方误差,通过缩小该误差实现路径一致性性质。这里特征图是深度并行计算框架的中间计算结果,通常为更高维的多通道游戏数据,计算平方误差时,是计算各个维度计算差的平方然后求和。

同时,还可以通过s0得到的返回信息,更新深度并行计算框架的系数,更新按如下公式进行:

ls4=-πlogp+(v-z)2+c||θ||2

其中,ls4为总损失,第一项-πlogp是交叉熵机制,用于计算框架输出的节点优先度初始值与数据集记录的优先度之间的差异,π是s2中得到的最终优先度,p是深度并行计算框架给出的节点优先度初始值;第二项(v-z)2是平方误差损失,用于计算框架输出的返回信息近似值与根据游戏胜负返回的二值信息之间的差异,z是游戏结束时s0根据胜负返回的二值信息,v是深度并行计算框架给出的返回信息近似值;第三项c||θ||2是正则项,用于缩小框架的规模,θ是深度并行计算框架的全部参数,c是用于控制正则项的系数。

在一优选实施例中,深度并行计算框架在s3中需要更新的参数包括:卷积核的权重和偏置;批归一化层的参数;计算优先度时的权重和偏置;计算返回近似值的权重和偏置。

基于本发明实施例所提供的游戏人工智能系统的加速方法,本发明实施例同时提供了一种游戏人工智能系统的加速系统,系统能够用于执行方法。

在另一实施例中,本发明提供一种游戏人工智能系统的加速系统,包括:

数据处理模块:对于输入的多通道游戏数据,根据游戏逻辑得到返回信息;对于输入的多通道游戏数据,使用深度并行计算框架计算节点优先度初始值和返回信息近似值;

优先度计算模块:利用认知模块中计算得到的节点优先度初始值形成树形结构,生成新的数据节点,并填入认知模块计算得到的节点优先度初始值作为数据节点信息,再将认知模块中计算得到的返回信息近似值填入数据节点,然后将数据节点信息回传,更新各个数据节点保存的信息,输出一个行动后验预测结果,即为最终优先度;另外,按最大访问次数原则取得最优路径;

更新模块:根据优先度计算模块中得到的最终优先度结果,通过缩小相邻多通道游戏数据优先度之间的差异,更新深度并行计算框架内的参数;根据认知模块中得到的返回信息和优先度计算模块中得到的最终优先度结果,通过缩小最终优先度与返回信息之间的差异,更新深度并行计算框架内的参数。

在一优选实施例中,数据处理模块的深度并行计算框架,包括:

l层残差模块:其中每一层残差模块均包括数据压缩层和批归一化层,数据压缩层的卷积核大小为3×3,经过l层残差模块的过程不改变多通道游戏数据的大小;

第l+1层特征调整模块:包括如下两部分:

-第一部分,调整特征图尺寸后经过softmax函数计算节点初始优先度;

-第二部分,调整多通道游戏数据尺寸后经过tanh函数计算对返回信息的估计。

在一具体实施例中,上述的l取值为10。当然,在其他实施例中也可以是其他数值,具体根据实际应用需求进行设定。

本发明上述实施例提供的游戏人工智能系统的加速方法及系统,完全利用网络数据集和机器生成数据训练得到启发函数,并未采用人工启发函数。相比免模型的强化学习技术,本发明上述实施例提供的游戏人工智能系统的加速方法及系统,虽然在计算最终优先度的过程中引入了深度并行计算框架作为计算模型,但通过该深度并行计算框架,性能得到了大幅提升,稳定性也得到了大幅提高。尤其在基础局面上,本发明上述实施例提供的游戏人工智能系统的加速方法及系统,出错率大大减少,由于崩溃情况大大减少,通过本发明上述实施例提供的技术方案进行性能提升的系统在同等硬件条件下表现明显优于其他现有技术。

本发明上述实施例提供的游戏人工智能系统的加速方法及系统,相比在分布式系统上使用数千块gpu的技术,本发明仅需4块左右gpu和普通配置的cpu,普通研究者或团队可在7天内运行并复现结果,且无需分布式等跨机器技术,也无需搭建大数据平台,采用的深度并行计算框架,也是依赖于numpy科学计算库和pytorch的深度学习框架。本发明上述实施例提供的游戏人工智能系统的加速方法及系统,仅需1万局专业棋谱作为训练数据,所有棋谱数据均可在互联网上获得。

采用本发明上述实施例提供的游戏人工智能系统的加速方法及系统的游戏人工智能系统,hex棋达到目前已有程序中最高水平。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

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