Go版 - 人工智能自行学习国际象棋72小时从零到达国际大师水准 |
|
|
|
|
|
s*****V 发帖数: 21731 | 1 离IBM的“深蓝”机器人击败国际象棋世界冠军已经有20年了。一旦人们了解了如何将
象棋规则用数学表示,电脑玩象棋的技术就一直突飞猛进——现在即使是最优秀的棋手
,面对运行在一台手机上的象棋游戏AI也未必是对手。
但是,尽管计算机在飞快地变快,象棋引擎运作的方式却一直没有大的变化。象棋算法
仍然是暴力算法——通过搜索所有可能的未来情况来找出当前的最佳走法。
当然,面对这种算法人类没有任何胜算。深蓝当时能够每秒钟计算超过2亿步,但是他
的对手,人类象棋世界冠军,也许每秒能算不会超过5步。即使表面上计算能力有如此
之大的差距,人脑和计算机的象棋水平却基本持平。显然,人脑有一些机器不具备的技
巧。
这种技巧就是通过经验缩小搜索范围的能力。通过预测最有价值的走法,人脑极大地简
化了计算任务。用计算机的语言说,搜索树被砍掉大半,只留下少数几个枝桠。
长久以来,计算机一直不擅长这个。但是今天,这种情况被伦敦皇家学院的Matthew
Lai改变了。Lai写出了一个名字叫长颈鹿的程序,通过一种完全不同于传统象棋算法的
方式来自行学习象棋。
国际上早有通用的象棋水平测试标准,这些方法同样常用来测试游戏AI的水准。经过测
试,这款程序在没有任何先验知识库的情况下,仅自行训练72小时,就达到了传统象棋
引擎的顶级水平——传统引擎到达这一水平往往需要人工进行长达几年的精细调节。对
应到人类选手,这个程度相当于国际象棋联盟(FIDE)的“国际大师”水准,在全球职
业象棋选手中排到前2.2%。
这堪称辉煌的数据背后,只是一个神经网络模型。这是一种受人类神经系统启发的信息
处理方法。它包括若干层“神经元”,各个神经元之间的连接强度随着系统的进化而改
变。对,说穿了就是深度学习算法。近年来,基于深度学习的算法在识别领域超过人类
水平以及不是新鲜事了。
所以,乍一看深度神经网络超过人类棋手似乎不是那么令人惊讶。Lai的程序里使用了4
层神经网络,为了训练它,Lai从象棋数据库中抽取了五百万个棋阵,然后通过加入随
机步骤将训练样本数目增加到一个天文数字——1.75亿个棋阵。当然,电脑强大的计算
能力和网上可用的庞大数据库能够支持他实现这种计算。但问题是, 通常要训练神经
网络,你需要手动对每个棋阵进行评价,告诉程序哪个好哪个坏,然后神经网络才能去
学习这个样本。 但是,谁能有精力人工标定1.75亿个样本呢?显然是行不通的。
Lai采取了另一种办法——让机器和自己对战。
在他的训练算法中,“长颈鹿”会自己和自己进行对战,以此提高其对棋阵的预测能力
。这样,一种走法的好坏不再需要人工给出判定,而是由这一局最终的胜负来评价。训
练样本的问题迎刃而解。
在训练一段时间后,最后一步就是测试了。这在一套标准象棋AI测试平台上进行。平台
会选择1500个棋阵,让AI引擎去分析。Lai在“长颈鹿”训练的各个时间都进行了测试
,对其性能变化进行了跟踪。在这个满分15000分的测试里,“长颈鹿”开始“自我对
弈”后不久就达到了6000分,并最终在72小时的训练后到达9700分。Lai表示这已经可
以和世界上最优秀的象棋引擎相媲美。
“这个结果很令人激动,因为要知道他们的引擎是对几百个参数进行长达几年的人工调
参、计算优化得到的,过程中甚至有很多人类高级棋手参与。”
作为衡量与人脑思维相似度的另一个重要指标,是预测出有价值走法的能力。这种能力
可以让程序不必耗费大量计算在没可能成功的走法上。测试结果显示,“长颈鹿”将“
最佳走法”列为待衡量走法列表第一位的概率达到46%,而将其列在前三位的概率到达
70%。可以说,在长颈鹿的算法里,完全没有必要每步棋算上个几亿步,只需衡量少数
几个选项。
这项研究代表了棋类引擎开发的一个重大变革趋势。当然,现在的“长颈鹿”还称不上
完美,虽然它拿到了国际大师(International Master)的称号,但目前世界最强的AI
能够达到超级大师水准(super-Grandmaster)。但是,”长颈鹿“开创了一种极大减小
计算量的新思路。
而且,这还只是个开始。Lai声称这种方法移植到其他任务上是很容易的。也许,更具
挑战性的围棋,会成为长颈鹿的下一个目标。 |
|
|
|
|
|