论文部分内容阅读
人工智能是近年来很活跃的研究领域之一。机器学习和博弈是人工智能研究的重要分支。国内外对博弈的研究已经较为广泛,特别是IBM的国际象棋程序“深蓝”,已经达到了人类的世界冠军水平。但是这些程序或者需要经过大量训练,或者采用死记硬背的学习方法,或者是采用大规模搜索算法实现,难以避免“组合爆炸”的危机,因此,一个真正“智能”的,有学习能力的高效率的博弈策略还有待进一步研究。本文将TD(Temporal Difference)预测与BP神经网络相结合,得到一种用于博弈的强化学习法,以博弈中常用的极小极大搜索法和NegeScout搜索法为基础,并应用它实现了一个能自学习的五子棋博弈程序。该方法克服了使用静态估值函数的不足,实践证明,该方法是成功的,使用该方法的程序经过较短时间的训练后达到了较好的下棋水平。本文首先研究了五子棋在计算机中的表示问题,讨论了计算机中存贮棋局和识别下棋次序,局势状态变化及局势特征的等方法。其次研究了博弈树的极小极大搜索技术及在此基础上的α-β剪枝过程和剪枝优化问题。实现将候选的后继节点按位置邻近顺序排序,使剪枝过程得到优化。此外还研究了α-β剪枝的改进算法NegeScout算法,此算法首先采用一小的有限α-β窗口,以确定实际估计值的范围,再在这个较小的范围中搜索实际的估计值。由于在较小的范围中搜索,效率能得以提高。再次,根据五子棋的特点,提取棋局局势的若干特征,对这些特征赋加权分,并对整个棋局进行特征统计,采用一个线性函数求得棋局的总估计分值。实践中,采用极小极大搜索加此静态估值技术的初版程序,达到了比初学者强的水平,一些比较熟练的业余人员时常也会负于此程序。采用固定的估值法,估值的不准确使其“智力”较低,而且固定的赋值方式使其不能通过学习提高。因此我们继续研究,利用强化学习法(Reiforcement Learning)设计了第二版本,具有自学习功能的五子棋程序。TD即瞬时差异预测法是指在一个对局中相邻两个时刻的局面的形势判断差值,如果这个形势判断函数比较准确,则这个差(即瞬时差异)应该接近于0,即用后一局面的估计分值作为前一局面的实际可能估计分值。本文中采用将TD预测法与BP神经网络相结合,采用三层BP神经网络结构来设计一非线性估值函数,将不同棋局特征的数目加入神经网络的输入端,输出端输出对局势的估计分值。学习过程中,按照TD预测法原理,计算网络误差,利用BP神经网络误差传播法,在对弈过程中,不断调整神经网络的权值,使其网络估值准确度在学习中逐步改善,提高程序的下棋水平。针对BP神经网络收敛速度慢,本文还采用了网络初始化等手段改善网络性能。实践表明,本程序的学习功能较强,收敛速度较快,经过近1200盘的训练后,程序已经<WP=4>能击败另电脑程序-欢乐五子棋的初级水平,而采用TD强化学习法的博弈程序――Tesauro的名叫TD-GAMMON(1995年)的西洋双陆棋程序经过30万盘与自己的对弈后才取得了与其它同类程序的胜利。