大约20年前,深蓝系统打败世界国际象棋冠军,但是当时的系统并没有做出多少真正的创造性贡献,现在不一样了。本文编译自medium原题为“How Computers Are Reinventing Chess”的文章。
这是一款标准的休闲游戏,供玩家在卧室玩,从开局到将死,大约只需要9分钟。一边是国际象棋世界冠军马格努斯?卡尔森 (Magnus Carlsen),他是当之无愧的神童,13岁就成为了国际象棋特级大师。另一边是iPhone程序Play Magnus App,程序能模仿卡尔森的下棋习惯。卡尔森将机器的年龄下调到18岁,然后与程序对决,但卡尔森还是遭遇了挑战。最开始几分钟,卡尔森被出乎意料的攻击打得十分狼狈,然后他继续奋战,想与App打平,但最终还是投降。我们似乎看到App居高临下说:“你需要好好磨练一下棋艺,让我们再试一次吧!”卡尔森只能用微笑回应。
事件没有什么特殊的。事实上,卡尔森已经发布多段视频,讲述自己与不同年龄虚拟棋手对决的故事。这些视频清楚告诉我们:不论是输是赢,电脑都是卡尔森最不喜欢的对手。
问题无法回避。卡尔森的确有可能是人类历史上最棒的国际象棋棋手,但这样的棋手为何会被电脑一次又一次打败,人类是怎样走到这一步的?
1997年的故事
大家可能是国际象棋门外汉,让我们先来温习一下:计算机征服国际象棋的故事源自深蓝,1997年,深蓝系统打败世界围棋冠军卡斯帕罗夫(Gary Kasparov)。从那时开始,机器便展现出自己的优势,它轻松咀嚼人类抛给它的精美图案和美妙策略。但是现代分析人士却得出不同的结论:机器是脆弱的,卡斯帕罗夫犯了很多错误,双方都有明显失误。
第一局深蓝系统赢了,但在第二局中,最后有一步棋出现变化。当时深蓝系统本来有机会拿下一个兵,但它后撤了,深蓝系统采取另外一种措施,它封锁了卡斯帕罗夫反击的可能性。计算机的行为超出了卡斯帕罗夫的预料,他深感不安,最终错过了逼平的机会。赛后卡斯帕罗夫指责深蓝系统作弊,他认为有一个超级大师帮助计算机,让它下出预料之外的棋步。
备受争议的棋步可能只是意外。几年之后,帮助IBM设计深蓝系统的科学家Murray Campbell解释说,这步棋是漏洞造成的,在第三局开始之前,团队悄悄修正了漏洞。可惜伤害已经造成。在随后的比赛中,卡斯帕罗夫不再那么自信。因为无法理解深蓝的举动,卡斯帕罗夫浪费了很多时间,他想用非同寻常的人类举动欺骗电脑,结果在第六局比赛中早早就犯错,而这一局决定了比赛的胜负。
总之,虽然深蓝胜利了,但对于计算机行业来说并不是什么壮举,它获胜是因为人类失误造成的。这件事告诉我们,人类有弱点,比如犹豫、恐惧、喜欢猜测、容易疲劳,所以容易受到攻击。深蓝系统虽然表现并不出色,但它不知疲倦,始终保持一致。当卡斯帕罗夫的直觉出现问题时,计算机就能轻松取胜。
人类绝望图
国际象棋可能是一项很优雅的游戏,但是深蓝的游戏策略瞄准的却是丑陋的蛮力。当时深蓝还没有用上神经网络、机器学习策略。相反,深蓝用强大的原始力量推测潜在举动,速度达到每秒2亿步。
深蓝系统根据各种不同的参数评估每一步,然后为每一项参数赋值。研究人员对将近100万局大师下的棋局进行分析,然后给参数确定权重,接下来再让国际象棋大师优化。深蓝系统的下棋方法等于是将无数大师棋局拼凑在一起的,因为系统拥有足够大的原始计算力,所以它可以预测未来,避免发生大错误。
到了今天,全球已经有十多个计算机国际象棋引擎,所有引擎都在标准硬件之上运行,它们还高度依赖过去200年积累的国际象棋历史。在竞赛中,国际象棋引擎可以搜索海量数据库,在比赛开始之前找到开局。到了盘中时,系统可以确保自己站在有利位置。在棋局结束之前,系统可以使用各种策略,它不断搜索数据库,让每一步接近完美。
至于国际象棋引擎评估权重的规则,它们是由一大群国际象棋精通者协助制定的。贡献者提出算法修改建议,然后再制作测试版本,接下来新老版本对决,直到研究人员确定哪个版本更优秀。
国际象棋使用的是Elo评级系统,就是说系统会根据打败对手的可能性判断权重。不过要将计算机与人的表现对比是一件难事,因为能与计算机抗衡的人很少,有兴趣这样做的人也很少。
机器可以轻轻松松连续比赛1000局,所以将计算机与人做比较只能估计。尽管如此,只要你看一眼当今顶尖人类与顶尖国际象棋引擎的数据,就能看到一幅“人类绝望图”。
从数据看,计算机是统治者,但它并不完美。它们无法预测棋局的结尾,因为结果的可能性比宇宙中的原子还要多。想打败人类世界冠军,引擎没有必要完美。计算机只要保持一致、不知疲倦、不犯明显错误就行了。
AlphaZero出手不凡
国际象棋实际上很重视积累,这点可能是外行人忽视的。有许多国际象棋冠军说,新一代最终会击败老一代,之所以这样并不是因为他们更年轻、更有精力,而是因为他们可以获得更多知识。如果用创造棋步的标准来衡量,计算机本来比不上人类,但最近出现了变化。
2017年,谷歌资助的公司DeepMind展示第一代深度学习系统AlphaZero。最开始时AlphaZero并没有内置国际象棋知识,里面没有开局步法目录,也没有几百万局大师下的棋,它只知道下棋的规则,除此再无其它。
不过AlphaZero会学习,而且学习的速度很快。它自己与自己下棋,下几个小时就能达到大师水平。一天结束时,AlphaZero已经拥有精湛的技艺,可以打败有限版Stockfish国际象棋引擎。去年,Stockfish又打败了完整版Stockfish。
当AlphaZero学习时,人类可以观察到它的进步,看着它从初步者进化为大师,然后继续时化。
AlphaZero和Stockfish使用的硬件基本一样,但是AlphaZero每秒分析的步数只有Stockfish的千分之一,AlphaZero的优势不在分析速度,而是学习。卡斯帕罗夫分析棋步之后感叹说,AlphaZero就像他自己一样拥有动态风格。马修?萨德勒(Matthew Sadler)则说:“AlphaZero找到了过往最佳棋手的秘密笔记本。”它如同一个会下国际象棋的外星人降临在人类的头顶。
AlphaZero和之前的计算机国际象棋程序有一个很大的不同:AlphaZero不需要模拟人类,它装备神经网络,可以自己理解棋局。AlphaZero不只打败了人类,它也许还能帮助人类理解国际象棋,之前没有计算机系统能做到,AlphaZero算是第一个。相比当年深蓝系统击败卡斯帕罗夫,AlphaZero的意义似乎更重大。
译者:小兵手