正在加载图片...
280 智能系统学报 第7卷 系到棋子被提的可能性和地盘的占有率 法应用在围棋机器博弈中,则此时需解决的问题转 2.2系统动作 化为求合适的<类型,方向>动作, 围棋每走一步都有相应的说法,即术语,而常用 2.3动作奖励 的围棋术语有很多,如“拆”、“飞”、“长”、“立”、 当尝试动作a时,系统会获得一个奖励r.,并且 “尖”、“扳”、“接”、“断”、“挖”、“夹”、“托”、“虎”和 在围棋机器博弈中这样的奖励是确定的.在实际的 “刺”等21.若将每一种下法作为一种动作,则系统 博弈过程中,奖励跟下棋后棋盘位置的静态值、己方 动作数量会过大而使算法失去实用性,这需要将术 棋子总数与对方棋子总数、是否吃子与被吃、气微薄 语归类,也就是划分基本动作,下面以“扳”和“挖” 的数目等信息有关例如,当落下某棋子时,使得某 为例说明其归为哪一基本动作,如图2所示,未标号 串棋的气数减少(甚至为1),这样很有可能在对方 棋子为已下棋子,标号棋子为欲下棋子 下一手棋或后几手的时候提掉整个串,这样的下子 动作将会得到较少的奖励(甚至为负).基于这样的 情况,下面给出动作奖励规则: ra=S。+Sm+Ln+S1: (6) 式中:S,为棋盘棋子位置的静态分值,S。为己方棋 (a)扳 )挖 (c尖 (d跳 子总数与对方棋子总数的差值,L为吃子与被吃子 图2围棋的一些着法 数的差值,S,为对方气为1的棋子数目与己方气为 Fig.2 Some actions in Go 1的棋子数目的差值。 由图2可知,“扳”和“挖”均可看作在己方棋子 的“尖”或“跳”位置上下棋,若选取“扳”和“挖”中 3实验 离棋子1位置最近的己方棋子则为“尖”,采用此归 3.1生成训练集 类方法,选取如下四大类下法作为基本动作:“拆”、 “飞”、“尖”和“长”,如图3所示 当Q(s,a)值(即状态-动作值)很大时,用表格 等手段存储,则表格的尺寸会非常大,这使得搜索空 间也增大.为此,在基于时间差分算法的围棋机器博 弈系统中,采用人工神经网络作为回归器,此时以 s、a.作为网路输入,Q(s,a)值为网络输出,如图4 (a)拆1和拆2 (b)飞1和飞2 所示 棋谱 训练 (c)尖 (d) 文件网络 图3四大基本动作 Fig.3 4 Basic actions expQ(s,a)rTT凵人 P(als)= 选取 由此可得到动作的形式化描述集A,具体形式 之exp[Q(s,b)yTT 动作a 如下: 图4采用神经网络的时间差分算法 A={ActionType),(ActionDirection)f; Fig.4 The flow chart of the application of temporal ActionType =extend1,entend2,knimovel,kn- difference using neural networks imove2,diamove,nobi; 由于人工神经网络为监督学习方法,因此需要 ActionDirection ={up,down,left,right,to- 训练集TS.故本文首先将棋谱文件导入至博弈系统 pright,botright,topleft,botleft. 中,按照棋谱文件下棋,根据式(3)计算Q(s,a) 式中:动作集A由动作类型和方向参数2个参数组 值,式(3)中需要用到的奖励r。则由式(6)得到,再 成.动作类型有6种,分别为“拆1”、“拆2”、“飞 将s,、a、Q(s,a,)存储至系统中得到样本集TS(表1 1”、“飞2”、“尖”和“长”.“拆1”、“拆2”、“尖”和 给出样本集TS中10个训练样本).其中折扣率y “长”的方向参数为上下左右4个,“飞1”和“飞2” 取0.5,7取0.4,η随时间逐渐减小,每次减小 的方向参数为上下左右和右上、右下、左上、左下8 0.0012.需注意的是,由于围棋博弈空间巨大,故训 个.6种动作组合一起,共32个动作.将时间差分算 练时需要相当数量的样本才能达到训练效果,本文
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有