8
本文作者: 小芹菜 | 2016-01-28 11:45 |
【编者按】本文是雷锋网2015年9月份发出的文章,由知社学术圈王鹏编译,原标题《深度学习机器自学国际象棋72小时,媲美国际大师》,文章来源:MIT Technology Review。
谷歌旗下Deep MInd创始人宣布了谷歌在人工智能领域取得重要进展:开发出一款能够在围棋中击败职业选手的程序——AlphaGo,《Nature》杂志也以封面论文的形式, 介绍了AlphaGo击败欧洲围棋冠军樊麾,并将在 3 月和世界冠军李世乭对战。在此之前,有专家提到人工智能机器——“长颈鹿”,它可以通过自学从而像人类那样通过评估局势来下棋,这完全颠覆了传统象棋程序。
自IBM研发的超级计算机深蓝首次在标准锦标赛规则下击败国际象棋世界冠军加里·卡斯帕罗夫至今已近20年。从那时以来,电脑象棋选手不断完善强大,以致顶尖人类棋手在面对一台运行现代象棋程序的智能手机时,恐怕也机会渺茫。
虽然计算机的运行速度越来越快,但象棋程序的工作模式并没有改变。他们的强大始终依赖于穷举法,即遍历所有未来可能性以选择最佳棋路的过程。
当然,没有哪个人类可以做到这一点,哪怕做得接近也绝无可能。当深蓝以每秒2亿步的速度进行搜索计算的时候,卡斯帕罗夫可能顶多在进行着每秒5步的思考。不过他依然可以下出同样的水准。显然,人类掌握着计算机所尚未精通的奥妙。
问题的关键在于评估盘面局势并缩减最优棋路的搜索。这将大幅简化计算工作,好比代表棋路可能性的繁茂大树被修剪到只剩几条枝干。
计算机向来不擅长这样的工作,但今天凭借帝国理工学院马修·莱的努力,事情有了改变。
莱制造了一台人工智能机器并取名为长颈鹿,它可以通过自学从而像人类那样通过评估局势来下棋,这完全颠覆了传统象棋程序。
直接应用的结果就是,这台新机器与顶级传统象棋程序达到同一水平,而这些传统程序多年来已有所优化。同真人对战时,它相当于FIDE(世界国际象棋联合会)国际大师水平,位列国际象棋锦标赛选手的前2.2%。
莱的新机器背后所依靠的技术是神经网络系统。这是一种以人类大脑为原型的信息处理模式。它包含多层节点,节点彼此连结并可通过训练对系统变化作出反馈。该训练过程采用了大量实例对节点连结进行微调,使神经网络可以根据特定的输入产生特定输出。例如,在图片中进行面部识别。
近几年,神经网络的迅猛发展得益于两项进步。首先是随着神经网络的学习,对如何进行微调有了进一步理解。这要部分归功于运算更快的计算机;第二是海量注释数据集的出现,使神经网络得以更好地学习。
这些成果使计算机科学家可以训练更庞大的划分为多层级的神经网络。这些所谓的深度神经网络功能已非常强大,并已在日常的模式识别工作上较人类更为胜任,比如人脸识别以及手写识别。
所以,深度神经网络能够在国际象棋中进行模式发掘并不奇怪,这也正是莱所采用的方法。他的网络系统包括四个层次,以三种方法共同判断棋盘上的每一个状态:
系统首先会观察比赛全局,比如双方的棋子数量与类型,哪方移动,王车易位权等等;进一步,系统检查棋子相关信息,如各方每个棋子的位置;最后绘制出每个棋子的攻防格局。
莱用于其神经网络系统的训练数据素材谨慎选自真实象棋比赛。此数据集必须具有正确的象棋布局。“比如说,训练系统掌握每方有三个皇后的棋局就没有意义,因为这种布局根本不会出现在实战当中”,他讲到。
除了在高水平国际象棋比赛上经常见到的局面之外,它还必须包含大量多样的非均势棋局。因为尽管在真实象棋比赛中很少出现实力悬殊的状况,但在计算机内部执行的搜索中,它们依然会频繁出现。
此数据集需要具有相当的规模。在训练过程中对神经网络中海量连结的微调只能建立在庞大数据集的基础上完成。如果采用较小的数据集,则会导致神经网络无法识别真实世界中千变万化的模式。
莱从计算机国际象棋比赛的数据库中随机选取了500万种盘面状态以生成他的数据集。然后他给每个状态随机添加一步合理走法以创建更多的变化,最后应用于训练。通过这种方式,他总共生成了1.75亿种盘面状态。
训练机器的通常做法是人工评估每个盘面局势并将此信息输入计算机使其可以识别棋局的强弱。
对于1.75亿种盘面来说这是巨大的工作量。虽然这可以通过另一个象棋程序来完成,但莱有更大的期望,他希望机器能够自主学习。
所以,他采用了一种自举法技术使长颈鹿通过与自己对战来提高其对未来棋局评估的预测能力。这个方法切实可行,因为每一种走法都有其对应的参考分数来最终决定其价值——无论比赛最后是胜,是负,还是平局。
通过这种方式,计算机可以掌握哪些局势是有利的,哪些是弱势的。
对长颈鹿训练后,最后一步要进行测试,而结果非常有趣。莱采用一个名为战略测试套件的标准数据库对他的机器进行测试,它包含了1500种预置棋局以检测象棋程序识别各种战略构想的能力。“比如,有一个设定可以测试对开放线控制的理解,另一个可以检验对象和马的价值在不同情况下如何变化以及对各自影响的理解,还有一种设定能够检验对中心控制的理解”,他说。
测试结果以15000分为满分。
莱使用这种办法对机器的不同学习阶段进行了测试。在自举过程开始时,长颈鹿很快达到了6000分的成绩并经过72小时最终攀升至9700分。莱表示这已可以匹敌世界上最强的国际象棋程序。
“(这成绩)很了不起,因为那些评测功能都是由人们精心设计并包含数百个参数的巨物,在过去多年中还经过了人为和自动的调试,其中很多都出自象棋大师之手。”他补充道。
莱继续使用同样的机器学习方法来确定一步既定走法是否值得实施的机率。这一点非常重要,因为这将避免不必要的对无用枝干的深度搜索,从而大幅提高计算效率。
莱称这种概率方法有46%的机率预测出最佳走法,并有70%的机率将最佳走法列在前三种选择里。所以计算机无需检测其他走法。
这项有趣的工作标志着国际象棋程序运算方式的巨大变革。当然,它尚不完美。长颈鹿的一个缺点就是神经网络相比其他类型的数据处理速度要慢很多。莱谈到要搜索同样数量的棋局,长颈鹿所花费的时间比传统象棋程序要多出10倍。
不过即便有所不足,它仍然很有竞争力。“长颈鹿在现代主流PC机上运行可以达到FIDE国际象棋大师水平”,莱介绍到。相比之下,顶级的象棋程序可以达到超级大师水平。
这已经非常棒了。
“与当今众多象棋程序不同,长颈鹿的下棋本领并非来自对前方可能性的探查,而是源于对当前错综局势的精确评估,以及对复杂棋局概念的理解。这些概念对人来说非常直观,但长久以来对象棋程序却难于理解。”莱讲到,“这一点在开局和残局阶段非常重要,而它在此表现得尤为出色。”
这仅仅是个开始。莱表示这种方法应该直接应用于其他游戏当中,很明显的例子就是传统中国围棋,目前人类相比于他们的硅制对手仍掌握着绝对优势。也许莱在未来能够有所突破。
【作者介绍】知社学术圈,海归学者发起的公益学术交流平台,旨在分享学术信息,整合学术资源,加强学术交流,促进学术进步。
推荐阅读:
1、Google人工智能击败欧洲围棋冠军, AlphaGo 究竟是怎么做到的?
雷峰网原创文章,未经授权禁止转载。详情见转载须知。