一种基于深度蒙特卡洛的强化学习军棋AI系统
未命名
10-19
阅读:185
评论:0
一种基于深度蒙特卡洛的强化学习军棋ai系统
技术领域
1.本发明涉及人工智能ai博弈技术领域,具体涉及一种基于深度蒙特卡洛的强化学习军棋ai系统。
背景技术:
2.在人工智能领域,将深度学习与强化学习结合起来产生了如alphago等杰出的博弈类人工智能。一般的棋类游戏,如围棋或者象棋是完全信息博弈,因为双方玩家都可以观测到整个棋盘的情况。而军棋是非完全信息博弈,对战的过程中,一方玩家是无法知道另一方玩家的棋子信息的,这使得设计军棋的ai变得极具有挑战性。
3.目前国内外尚未能较好解决该问题,为此,设计了一种基于深度蒙特卡洛的强化学习军棋ai系统及其训练方法,利用深度蒙特卡洛方法以及棋子上下限评估算法,大大提升了军棋ai的表现,具有良好的现实意义和应用前景,填补了人工智能领域军棋ai的空白。
技术实现要素:
4.本发明的目的在于提供一种基于深度蒙特卡洛的强化学习军棋ai系统,提高军棋ai对战人类时的表现,为军棋爱好者提供了一个方便且具有趣味的的人工智能对手。
5.为了实现上述目的,本发明采用了如下技术方案:
6.一种基于深度蒙特卡洛的强化学习军棋ai系统,所述系统包括:军棋对战模块、军棋招法生成模块、军棋特征采集模块、军棋招法决策模块以及决策评估模块;
7.所述军棋对战模块,用于对行棋双方局势的展示、双方决策的执行与交互,并判断棋子间交战的结果;
8.所述军棋招法生成模块,通过检索当前棋局情况并给出当前玩家所有可行的招法,并送入军棋特征采集模块;
9.所述军棋特征采集模块,从军棋对战模块中获得当前己方棋子信息、敌方棋子信息以及双方最近几步的招法,从军棋招法生成模块获得所有可行招法,将这些数据转化为合适的编码格式作为状态值输入军棋招法决策模块;
10.所述军棋招法决策模块,分为训练阶段和实际对战阶段;
11.其中,所述训练阶段包括:根据输入的状态值采用深度蒙特卡洛网络决策技术生成对当前玩家所有可行招法的评估值,即对当前局面下该玩家所有的可行招法进行评估,然后选择估值最大的招法,不断进行抉择直至对局结束分出胜负,根据决策评估模块的最终的反馈信息,训练决策网络,优化决策网络的参数;
12.所述实际对战阶段包括:经过充分训练后的决策模型不再更新网络参数,根据输入的状态值采用深度蒙特卡洛决策技术选出最优招法;
13.所述决策评估模块,根据最终游戏结果来评估整局游戏中各个决策的分数,并生成反馈信息给军棋招法决策模块。
14.优选地,所述系统具体执行流程包括有如下步骤:
15.s1、军棋对战模块实时存储当前棋局信息以及对对战双方的决策进行执行与判断;
16.s2、军棋招法生成模块根据当前棋局信息,分析和匹配出当前玩家所有可能的行棋招法;所述招法的结构包括:已方棋子坐标、己方棋子类型、目标坐标、目标坐标类型;
17.s3、军棋特征采集模块根据当前棋局信息,提取出当前玩家视角下所有可见信息,具体包括己方棋子信息、敌方棋子信息、未发生吃子回合数、当前玩家所有招法和最近二十个回合双方招法,将其作为军棋招法决策模块的输入;
18.s4、军棋招法决策模块根据输入的状态值通过深度蒙特卡洛网络对当前棋局下各招法进行评估,进行招法的选择并交由军棋对战模块执行,切换至另一玩家视角,返回执行s2,直到军棋对战模块判断本局游戏结束;
19.s5、军棋招法评估模块根据收集到的对战数据、最终结果以及期间的状态值,通过计算mse(均方误差)来优化军棋招法决策系统中的深度蒙特卡洛网络。
20.优选地,s3中所述棋子信息具体包括:所有棋子当前坐标、棋子类型、存活状态、是否位于铁路上、是否位于行营;棋子依据存活状态分为存活棋子与阵亡棋子;对于已阵亡棋子,其当前坐标、存活状态、位于铁路以及位于行营特征为全0,区别于存活棋子。对于敌方棋子的棋子类型,由于未知,采用可能性方法表述。具体为,初始时根据其坐标设置初始可能性,根据军棋的开局规则分别设置。游戏过程中,根据对战结果以及移动行为更新可能性。
21.优选地,s4中所述深度蒙特卡洛网络为一个对动作和状态的价值网络的估值网络;所述估值网络用于产生招法决策的值函数,网络结构包含一个接受最近二十步招法生成特征的lstm网络,其输出与动作状态值以及棋局状态值连接一同传入全连接层,生成与招法种类相等数量个估值,其中,传入全连接层的信息具体包括己方棋子信息、敌方棋子信息、最近二十步招法经过lstm网络生成的特征值、当前可行的招法。
22.优选地,所述训练阶段的训练方法具体包括如下内容:
23.a1、为两位玩家建立经验池b1、b2,所述经验池是一种存储,分别存储两位玩家对战中每回合的输入特征f,人为设定经验池的上限为s,当经验池存储达到s时,则进行训练来清空经验池并重新开始存储;
24.a2、为两位玩家建立决策网络q1、q2,所述决策网络可以读取输入特征f并给出估值,在回合t选出招法动作a
t
的方法是:
25.a
t
=argmaxaq(s
t
,a)p=(1-ε)
26.a
t
=random(s
t
,a)p=ε
27.每一回合的奖励值由最终的结果决定:
28.r
t
←rt
+γr
t+1
29.式中,s
t
指第t回合,当前玩家视角下的棋盘状态;r
t
指第t回合,当前玩家操作获得的奖励值;argmaxa指从当前回合棋盘状态s
t
与动作集合a通过决策网络q计算得出的估值中选出最大估值的动作作为当前回合动作a
t
;random指从当前回合动作集合a中随机选取一个动作作为当前回合动作a
t
;ε指当前回合的探索概率;p指通过探索概率计算得出的动作方法的对应概率;γ是衰退因子,指当前回合奖励的计算由当前回合奖励以及一个经过衰退的下一回合奖励共同决定;
30.a3、进行总次数为t次的经验池学习,每当一局游戏结束,将该局游戏积累下来的回合特征录入到经验池b中,经验池装满后进行一次学习,至到最终学到t次;
31.a4、每一轮学习中,首先获得经验池b中特征f
t
送入网络q中,得到估值g
t
,与记录的r
t
,使用均方误差来计算损失函数,并使用adam算法解决网络q学习率消失、收敛慢、参数更新异常的问题。
32.优选地,所述实际对战阶段指人机对战,其中,人机对战的“人”指军棋人类玩家,“机”指军棋ai;具体执行流程包括如下步骤:
33.b1、军棋人类玩家在开始界面决定先手后手,安排己方军棋布局;
34.b2、先手玩家行棋,军棋特征采集模块根据当前棋局信息,提取出当前玩家视角下所有可见信息,具体包含己方棋子信息、敌方棋子信息、未发生吃子回合数、当前玩家所有招法、最近二十个回合双方招法,军棋招法生成模块检测当前玩家招法是否违反游戏规则,若是违反则无法操作;
35.b3、军棋对战模块执行先手玩家招法,并根据规则判断吃子结果,更新双方棋局信息;
36.b4、后手玩家行棋,军棋特征采集模块根据当前棋局信息,提取出当前玩家视角下所有可见信息,具体包含己方棋子信息、敌方棋子信息、未发生吃子回合数、当前玩家所有招法、最近二十个回合双方招法,军棋招法生成模块检测当前玩家招法是否违反游戏规则,若是违反则无法操作;
37.b5、军棋对战模块执行后手玩家招法,并根据规则判断吃子结果,更新双方棋局信息;
38.b6、若是游戏没有结束则返回执行步骤s2,否则宣判获胜方。
39.优选地,所述军棋ai也具有决定先手后手功能,若军棋ai为先手玩家,则所述b2中先手玩家招法由军棋ai的深度蒙特卡洛网络评估与决定;若军棋ai为后手玩家,则所述b4中,先手玩家招法由军棋ai的深度蒙特卡洛网络评估与决定。
40.与现有技术相比,本发明提出了一种基于深度蒙特卡洛的强化学习军棋ai系统,具备以下有益效果:
41.本发明提出了一种基于深度蒙特卡洛的强化学习军棋ai系统,同时进一步提出了与系统相匹配的训练方法及实际对战执行方法,解决了军棋这一非完全信息博弈游戏的ai难以设计及训练等问题,提高军棋ai对战人类时的表现。对于军棋爱好者的训练以及研究具有较大意义,提供了人机对战以及军棋ai自我对弈训练功能。通过本发明,军棋爱好者可以轻松、方便以及高效的磨练自己的技术、放松紧张的心情、舒缓生活的压力。
附图说明
42.图1为本发明实施例1中实际对战流程图;
43.图2为本发明实施例1中军棋ai系统各模块交互行为示意图;
44.图3为本发明实施例1中基于深度蒙特卡洛的招法评估网络示意图。
45.图中标号说明:
46.101、军棋对战模块;102、军棋招法生成模块;103、军棋特征采集模块;104、军棋招法决策模块;105、决策评估模块。
具体实施方式
47.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
48.实施例1:
49.请参阅图1-2,本发明提出一种基于深度蒙特卡洛的强化学习军棋ai系统,正常的对局过程如图1所示。
50.s1、棋局初始化,军棋人类玩家在开始界面中决定先手后手,安排己方军棋布局;
51.s2、实时对战交互,先后手玩家依次行棋,运用深度蒙特卡洛算法规划招法并由军棋对战模块101来判断对战结果,更新实时局面;
52.s3、特征处理,其穿插于对战之中,每次军棋对战模块101更新完局面后,就会将新的包含己方棋子信息、敌方棋子信息、未发生吃子回合数、当前玩家所有招法、最近二十个回合双方招法在内的特征传输给即将行棋的玩家。其中已知信息包含将行棋玩家自身的棋子的所有信息以及可见的敌方棋子的坐标以及根据军棋规则可以得出的必然信息。而未知信息则包含对敌方存活棋子以及死亡棋子的猜测。将这些特征加工之后,就生成了新的特征。
53.本发明提出的军棋ai系统的各模块的交互行为如图2所示,军棋对战模块101实时存储当前棋局信息以及对对战双方的决策进行执行与判断并将棋局信息穿输给军棋招法生成模块102以及军棋特征采集模块103,并且当满足要求后将训练数据送入决策评估模块105;
54.上述军棋招法生成模块102接受当前棋局信息并生成所有可行招法送入军棋特征采集模块103,做进一步加工。
55.而军棋特征采集模块103则接受招法以及棋局信息后将它们提炼成特征并送入军棋招法决策模块104。
56.军棋招法决策模块104接受特征并采用深度蒙特卡洛网络决策技术生成对当前玩家所有可行招法的评估值,即对当前局面下该玩家所有的可行招法进行评估,然后选择估值最大的招法。
57.决策评估模块105则是在对局数据产生到一定数量时,接受军棋对战模块101打包好的训练数据进行评估,并将评估之后产生的损失值计算梯度后用来进行参数更新。
58.具体地,采用深度蒙特卡洛算法进行招法评估,首先用lstm网络接收最近几步的招法来生成关于历史周期的特征。特征网络结构如图3所示,输入层为全连接层,其输入状态值为棋子当前坐标、棋子类型、存活状态、是否位于铁路上、是否位于行营以及招法还有上一步lstm生成的特征,网络的中间层为全连接层,最后的输出层为softmax层,输出值为当前环境以及招法的评估值。
59.参数更新使用的adam算法,而损失函数则是计算评估值g
t
与最终游戏结果r
t
的均方差。
60.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
技术特征:
1.一种基于深度蒙特卡洛的强化学习军棋ai系统,其特征在于,所述系统包括:军棋对战模块、军棋招法生成模块、军棋特征采集模块、军棋招法决策模块以及决策评估模块;所述军棋对战模块,用于对行棋双方局势的展示、双方决策的执行与交互,并判断棋子间交战的结果;所述军棋招法生成模块,通过检索当前棋局情况并给出当前玩家所有可行的招法,并送入军棋特征采集模块;所述军棋特征采集模块,从军棋对战模块中获得当前己方棋子信息、敌方棋子信息以及双方最近几步的招法,从军棋招法生成模块获得所有可行招法,将这些数据转化为合适的编码格式作为状态值输入军棋招法决策模块;所述军棋招法决策模块,分为训练阶段和实际对战阶段;其中,所述训练阶段包括:根据输入的状态值采用深度蒙特卡洛网络决策技术生成对当前玩家所有可行招法的评估值,即对当前局面下该玩家所有的可行招法进行评估,然后选择估值最大的招法,不断进行抉择直至对局结束分出胜负,根据决策评估模块的最终的反馈信息,训练决策网络,优化决策网络的参数;所述实际对战阶段包括:经过充分训练后的决策模型不再更新网络参数,根据输入的状态值采用深度蒙特卡洛决策技术选出最优招法;所述决策评估模块,根据最终游戏结果来评估整局游戏中各个决策的分数,并生成反馈信息给军棋招法决策模块。2.根据权利要求1所述的一种基于深度蒙特卡洛的强化学习军棋ai系统,其特征在于,所述系统具体执行流程包括有如下步骤:s1、军棋对战模块实时存储当前棋局信息以及对对战双方的决策进行执行与判断;s2、军棋招法生成模块根据当前棋局信息,分析和匹配出当前玩家所有可能的行棋招法;所述招法的结构包括:已方棋子坐标、己方棋子类型、目标坐标、目标坐标类型;s3、军棋特征采集模块根据当前棋局信息,提取出当前玩家视角下所有可见信息,具体包括己方棋子信息、敌方棋子信息、未发生吃子回合数、当前玩家所有招法和最近二十个回合双方招法,将其作为军棋招法决策模块的输入;s4、军棋招法决策模块根据输入的状态值通过深度蒙特卡洛网络对当前棋局下各招法进行评估,进行招法的选择并交由军棋对战模块执行,切换至另一玩家视角,返回执行s2,直到军棋对战模块判断本局游戏结束;s5、军棋招法评估模块根据收集到的对战数据、最终结果以及期间的状态值,通过计算均方误差来优化军棋招法决策系统中的深度蒙特卡洛网络。3.根据权利要求2所述的一种基于深度蒙特卡洛的强化学习军棋ai系统,其特征在于,s3中所述棋子信息具体包括:所有棋子当前坐标、棋子类型、存活状态、是否位于铁路上、是否位于行营;棋子依据存活状态分为存活棋子与阵亡棋子;对于已阵亡棋子,其当前坐标、存活状态、位于铁路以及位于行营特征为全0,区别于存活棋子。4.根据权利要求2所述的一种基于深度蒙特卡洛的强化学习军棋ai系统,其特征在于,s4中所述深度蒙特卡洛网络为一个对动作和状态的价值网络的估值网络;所述估值网络用于产生招法决策的值函数,网络结构包含一个接受最近二十步招法生成特征的lstm网络,其输出与动作状态值以及棋局状态值连接一同传入全连接层,生成与招法种类相等数量个
估值,其中,传入全连接层的信息具体包括己方棋子信息、敌方棋子信息、最近二十步招法经过lstm网络生成的特征值、当前可行的招法。5.根据权利要求1所述的一种基于深度蒙特卡洛的强化学习军棋ai系统,其特征在于,所述训练阶段的训练方法具体包括如下内容:a1、为两位玩家建立经验池b1、b2,所述经验池是一种存储,分别存储两位玩家对战中每回合的输入特征f,人为设定经验池的上限为s,当经验池存储达到s时,则进行训练来清空经验池并重新开始存储;a2、为两位玩家建立决策网络q1、q2,所述决策网络可以读取输入特征f并给出估值,在回合t选出招法动作a
t
的方法是:a
t
=argmax
a
q(s
t
,a)p=(1-ε)a
t
=random(s
t
,a)p=ε每一回合的奖励值由最终的结果决定:r
t
←
r
t
+γr
t+1
式中,s
t
指第t回合,当前玩家视角下的棋盘状态;r
t
指第t回合,当前玩家操作获得的奖励值;argmax
a
指从当前回合棋盘状态s
t
与动作集合a通过决策网络q计算得出的估值中选出最大估值的动作作为当前回合动作a
t
;random指从当前回合动作集合a中随机选取一个动作作为当前回合动作a
t
;ε指当前回合的探索概率;p指通过探索概率计算得出的动作方法的对应概率;γ是衰退因子,指当前回合奖励的计算由当前回合奖励以及一个经过衰退的下一回合奖励共同决定;a3、进行总次数为t次的经验池学习,每当一局游戏结束,将该局游戏积累下来的回合特征录入到经验池b中,经验池装满后进行一次学习,至到最终学到t次;a4、每一轮学习中,首先获得经验池b中特征f
t
送入网络q中,得到估值g
t
,与记录的r
t
,使用均方误差来计算损失函数,并使用adam算法解决网络q学习率消失、收敛慢、参数更新异常的问题。6.根据权利要求1所述的一种基于深度蒙特卡洛的强化学习军棋ai系统,其特征在于,所述实际对战阶段指人机对战,其中,人机对战的“人”指军棋人类玩家,“机”指军棋ai;具体执行流程包括如下步骤:b1、军棋人类玩家在开始界面决定先手后手,安排己方军棋布局;b2、先手玩家行棋,军棋特征采集模块根据当前棋局信息,提取出当前玩家视角下所有可见信息,具体包含己方棋子信息、敌方棋子信息、未发生吃子回合数、当前玩家所有招法、最近二十个回合双方招法,军棋招法生成模块检测当前玩家招法是否违反游戏规则,若是违反则无法操作;b3、军棋对战模块执行先手玩家招法,并根据规则判断吃子结果,更新双方棋局信息;b4、后手玩家行棋,军棋特征采集模块根据当前棋局信息,提取出当前玩家视角下所有可见信息,具体包含己方棋子信息、敌方棋子信息、未发生吃子回合数、当前玩家所有招法、最近二十个回合双方招法,军棋招法生成模块检测当前玩家招法是否违反游戏规则,若是违反则无法操作;b5、军棋对战模块执行后手玩家招法,并根据规则判断吃子结果,更新双方棋局信息;b6、若是游戏没有结束则返回执行步骤s2,否则宣判获胜方。
7.根据权利要求6所述的一种基于深度蒙特卡洛的强化学习军棋ai系统,其特征在于,所述军棋ai也具有决定先手后手功能,若军棋ai为先手玩家,则所述b2中先手玩家招法由军棋ai的深度蒙特卡洛网络评估与决定;若军棋ai为后手玩家,则所述b4中,先手玩家招法由军棋ai的深度蒙特卡洛网络评估与决定。
技术总结
本发明公开了一种基于深度蒙特卡洛的强化学习军棋AI系统,属于人工智能AI博弈技术领域;本发明提出一种基于深度蒙特卡洛的强化学习军棋AI系统,并进一步提出了与系统相匹配的训练方法和实际对战执行方法,利用深度蒙特卡洛方法以及棋子上下限评估算法,大大提升了军棋AI的表现,具有良好的现实意义和应用前景,填补了人工智能领域军棋AI的空白。本发明解决了军棋这一非完全信息博弈游戏的AI难以设计及训练等问题,提高军棋AI对战人类时的表现。对于军棋爱好者的训练以及研究具有较大意义,提供了人机对战以及军棋AI自我对弈训练功能。提供了人机对战以及军棋AI自我对弈训练功能。提供了人机对战以及军棋AI自我对弈训练功能。
技术研发人员:林文斌 吕航 王玮 杨雪晴
受保护的技术使用者:南华大学
技术研发日:2023.07.06
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
