(4) 几乎均匀的位置很难标记;但是,假设拥有足够的训练数据,这些位置就会形成一条界线,在这条界线上很难区分获胜位置和失败位置。 5.2.3.贝叶斯学习的效率 评价函数贝叶斯学习的最大的问题可能就是效率问题。每个评价函数都需要计算逆协方差矩阵乘以特征向量四次。由于矩阵都是对称的,组合特征需要的浮点相乘次数为2N(N + 1),其中N为特征数量。这样,特征数量很多就会严重拖慢程序的运行速度。而且,如果特征数量很多的话,准确估计参数就需要更多的训练数据。 我们可以使用主成分分析法(Principal components analysis)[4]减少特征空间的维度,从而解决这个问题。这种分析将特征空间转为一个有独立特征的空间,我们可以舍弃不重要的特征(那些方差较小的特征)。另一种类似的方法是使用费雪线性判别(Fisher's linear discriminant)[4],这种判别使用标记的训练数据将类别间方差和类别内方差之比降至最低。 5.3.对其他领域的适用性 贝叶斯学习早已被应用到语音识别、视觉识别和字符识别以及许多其他领域中。本研究首先使用贝叶斯学习学习评价函数中的特征组合。使这项应用成为可能的关键概念是:我们使用贝叶斯学习最大限度地对获胜位置和失败位置进行分类。 这个算法适用于任何其他游戏以及任何其他基于搜索且使用静态评价的应用:(1)必须使用好的特征;(2)必须能够对类别定义目的;(3)多元正态分布必须提供合理的拟合。 任何成功的程序都须具备第一个条件。在计算机游戏程序中,满足第二个条件很容易,因为获胜类别和失败类别是学习的理想概念。在其他领域可能就较为困难。大多数领域都能满足第三个条件。 虽然我们使用不同版本的BILL生成训练数据,但是这种做法不一定可取。在计算机很难理解的游戏中,例如围棋,自我生成训练数据将会造成许多位置标记不当。但是如果是那样的话,使用水平更高的玩家间的游戏应该会实现更好的性能;但是,在这种情况下是不可能的,因为在黑白棋领域未必存在这样的玩家。但是在围棋领域,人类的水平要比程序高得多,使用专家完成的游戏进行训练将会更大地提升程序的游戏水平。 6.总结 在本论文中,我们介绍了一种组合评价函数的项或特征的新算法。这种算法基于贝叶斯学习。首先须获取一个训练数据库,再将每个位置标记为“获胜位置”或“失败位置”。用这些位置训练一个判别函数,这个函数通过估计某一位置是获胜位置的概率来评价这个位置。 虽然有人曾研究过评价函数的机器学习,但是他们的算法,例如Samuel的算法,都存在以下缺陷:缺乏平滑性、过多的人为调校和缺乏普遍适用性。贝叶斯学习解决了这些问题并且还具有一些理想的特点: (1) 完全自动地学习训练数据; (2) 最佳正交组合; (3) 理解特征协方差; (4) 能从错误特征中恢复; (5) 直接估计获胜概率的评价。 我们证明了贝叶斯学习能大幅提高黑白棋程序的游戏水平——早已是世界冠军水平。我们认为这种算法可以应用到任何需要进行静态评价的领域中,并且它不仅会大幅减少调校时间,而且还会大幅提高程序的性能。 致谢 作者希望感谢Hans Berliner为本文提供了有用的讨论并且阅读了本文的草稿;感谢Roy Taylor和Beth Byers阅读本文的草稿。 (责任编辑:本港台直播) |