(3) 加权格子衡量玩家每个棋子占据的格子的优胜度。使用静态衡量标准(中心格子好于靠边格子)和动态衡量标准(围住的棋子好于外围棋子)。 (4) 边位置使用包含每一边上的特征组合的特征表衡量玩家的边位置。这个特征表由概率极小极大过程生成[7]。 感兴趣的读者可查看[11]或[7]了解黑白棋策略分析。 BILL 2.0将这些特征线性组合在一起。通过创建十个不同的版本并在这十个版本间举行比赛,决定线性组合中的权重。将赢得比赛的版本选为最终的系数集。我们将在相同的四个特征上应用贝叶斯学习,通过将所得程序与BILL 2.0作对比来衡量该程序的性能。 3.3.评价函数学习 我们现在将介绍一种评价函数学习算法,这种算法使用的是第3.1节中所描述的贝叶斯学习。我们的应用和典型应用的关键区别在于: 学习(训练) 评价(识别) 图4. 提出的基于贝叶斯学习的评价函数学习算法的学习和评价过程 我们试图将棋盘位置识别并分类为获胜位置或失败位置,而不是识别具体对象。我们算法的基本思路如图4所示。和贝叶斯学习类似,这个算法包含两个阶段,即训练(学习)阶段和识别(评价)阶段,我们将在接下来的两部分中阐述这两个阶段。 3.3.1.训练阶段 为了训练贝叶斯判别函数,我们需要一个位置数据集,这个数据集中的每个位置都被标记为“获胜位置”和“失败位置”。获取这个数据集的方法有很多种。在本研究中,我们从两位专家进行的实际比赛中获取训练数据,获胜方的每个棋子位置都被标记为“获胜位置”,失败方的每个棋子位置则都被标记为“失败位置”。尽管这是一个简单且一致的方法,但是它存在一个严重的问题:获胜位置可能因为之后的棋步较差而丢失,并且会被错误地标记为“失败位置”。 我们可以通过两种方法解决这个问题:第一种方法需要可靠的黑白棋专家。由于BILL 2.0是一个世界冠军级别的玩家,我们只需从初始位置起使它进行自我模拟来生成训练数据。第二种方法:为每场比赛生成20个初始棋步,在下完这20个随机棋步后开始进行训练(或者在棋盘上摆有24个棋子之后)。通常,在下完20步后其中一位玩家便会领先,并且他会在最后赢得这场比赛。在位置真正均衡时,充足的训练数据应该得到相同数量的获胜标记和失败标记。 为了生成训练数据,在以下情况中须设置BILL 2.0进行自我模拟:开始的20半步随机生成,然后BILL 2.0的每一方有15分钟的时间走完剩下的40半步[2]。当只剩下15半步时,执行终局搜索,寻找获胜方,前提假设双方发挥完美水平。终结比赛并将其记录为训练数据。再通过进行3000场比赛来预测参数。 众所周知,黑白棋游戏的不同阶段需要不同的策略 [2]。因此,我们为每个阶段生成一个判别函数,其中每个阶段由棋盘上的棋子的数量定义。N个棋子的阶段的判别函数由共有N-2、N-1、 N、N+ 1和N+ 2个棋子的训练位置生成[3]。由于每场黑白棋游戏中几乎总是进行60步,通过统计棋子数量可以准确估计游戏的阶段。通过合并相邻数据,判别函数进行缓慢变化,这类似于Berliner提出的应用系数[2]。 在生成训练数据后,从数据集中的每个位置中提取四个特征。然后,估计“获胜”和“失败”这两个类别中的特征间的均值特征向量和协方差矩阵。表1在N = 40显示获胜和失败位置的均值向量和相关矩阵。它们显然支持我们先前的说法,即每对特征都在某种程度上相互关联,并且非线性关系对评价函数的成功至关重要。 表1:获胜和失败类别在第36步的均值向量和相关矩阵;Mob:机动性;Pot:潜在机动性;Wtd:加权格子;Edge:边位置 3.2.2.评价阶段 (责任编辑:本港台直播) |