国际象棋(Chess) 毫无疑问,国际象棋是世界上最受欢迎的棋盘游戏之一。国际象棋计算机程序在计算机早 期时代就已经存在,甚至可以追溯到家用计算机的出现。例如,1983 年,ZX-81 Spectrum 家用计算机系统中引入了一个几乎完整的称为 ZX Chess 的国际象棋引擎,其只包含大约 672 字节的机器代码。虽然这个实现并不完整,缺乏像“王车易位”这样的规则,但它在34 | 第 2 章 当时是一个伟大的成就,对今天的计算机象棋爱好者来说仍然很有吸引力。ZX Chess 作为 最小国际象棋程序的记录保持了 32 年,仅在 2015 年被 BootChess 打破,而 BootChess 只 有 487 字节。该程序可以玩游戏排列可能比宇宙中的原子还要多的棋盘游戏。能用如此 小的代码库编写计算机程序的程序员几乎可以被认为是软件工程天才。 虽然从纯数字的角度看不像围棋那么复杂,但国际象棋可以被认为是最具挑战性的棋盘游 戏之一,因为玩家需要几十年才能达到大师级别。 在 20 世纪 80 年代中期,即使在比基本的家用计算机 ZX-81 Spectrum 更好的硬件上,专家 级计算机国际象棋程序仍然遥不可及。难怪当时的国际象棋高手在与计算机对战时自信满 满。例如,Garry Kasparov(2017)回忆了在 1985 年他是如何同时进行了 32 场比赛的: 1985 年 6 月 6 日在汉堡度过了愉快的一天……我的 32 个对手,每一个都是一台 计算机……毫无意外的……我取得了 32–0 的完美比分。 直到计算机国际象棋开发人员和国际商业机器公司(IBM)的硬件专家花了 12 年的时 间制造了一台名为“深蓝”的计算机,机器才能够击败当时的人类世界国际象棋冠军 Garry Kasparov。Garry Kasparov 在其历史性地输给“深蓝”这一事件 20 年后出版的书 中写道: 12 年后,我在纽约市为我的国际象棋生涯而战。我面对的仅有一台机器,一台 价值 1000 万美元的 IBM 超级计算机,绰号“深蓝”。 Kasparov 与“深蓝”一共打了 6 场比赛,最终计算机以 3.5 分战胜 Kasparov 的 2.5 分 (每盘游戏获胜者得 1 分,平局时每位玩家得 0.5 分)。虽然“深蓝”输掉了第一场比赛, 但它赢了剩下 5 场比赛中的 2 场,另外 3 场比赛以双方协议的平局告终。有人指出,“深 蓝”不应该被视为人工智能的一种形式,因为它主要依赖于庞大的硬件集群。这个由 IBM 专门为此活动设计的具有 30 个节点和 480 个专用于国际象棋芯片的硬件集群每秒可以分 析大约 2 亿个棋局。从这个意义上说,“深蓝”主要依靠蛮力技术,而不是神经网络等现 代人工智能算法。 自 1997 年以来,硬件和软件都取得了巨大进步。Kasparov 在其书中提到现代智能手机上 的国际象棋应用时,如此说道: 再向前快进 20 年到今天,即 2017 年,你可以为你的手机下载任意数量的免费国 际象棋应用,这些应用可以与任何人类大师相媲美。 击败人类大师的硬件价格已从 1000 万美元降至约 100 美元。然而,普通计算机和智能手 机的国际象棋应用仍然依赖于数十年计算机国际象棋的智慧。它们体现了大量人为设计的 游戏规则和策略,依赖大型数据库进行开局,然后受益于现代设备增加的计算能力和内 存,以对数百万个国际象棋棋局进行基于蛮力计算的评估。 这就是 AlphaZero 的用武之地。AlphaZero 掌握国际象棋游戏的方法完全基于强化学习,不 同版本的人工智能体相互对弈。DeepMind 团队将计算机国际象棋的传统方法与 AlphaZero 进行了如下对比(参见 AlphaZero 研究论文“AlphaZero: Shedding new light on chess, shogi, and Go”): 图灵社区会员 cxc_3612(17665373813) 专享 尊重版权超级智能 | 35 传统的国际象棋引擎,包括世界计算机国际象棋冠军引擎 Stockfish 和 IBM 的开 创性的“深蓝”,依赖于由强大的人类玩家手工制作的数千条规则和启发式算法, 这些规则和启发式算法试图解释游戏中的每一种可能性……AlphaZero 采取了完 全不同的方法,其利用深度神经网络和通用算法来代替这些手工制作的规则,而 这些通用算法除了基本规则之外对游戏一无所知。 通过采用这种完全从零开始的方法,AlphaZero 在经过几小时的基于自我对弈的训练后表 现非常出色,完全不逊于领先的传统国际象棋计算机程序。AlphaZero 只需要 9 小时或更 短的训练就可以掌握国际象棋,其水平超过了每个人类棋手和所有其他计算机国际象棋程 序,包括曾经统治计算机国际象棋的 Stockfish 引擎。AlphaZero 在 2016 年举办的 1000 场 比赛测试中击败了 Stockfish,赢了 155 场(主要是在玩白棋时),仅输了 6 场,其余的则 平局。 IBM 的“深蓝”每秒能够分析 2 亿个棋局,现代国际象棋引擎(如 Stockfish)可以在商用 多核硬件上每秒分析大约 6000 万个棋局,而 AlphaZero 每秒只能分析大约 6 万个棋局。尽 管 AlphaZero 每秒分析的棋局是 Stockfish 的 1/1000,但它仍然能够击败 Stockfish。人们倾 向于认为 AlphaZero 确实能显示出某种形式的智能,而这种智能是纯粹的蛮力无法弥补的。 考虑到人类大师每秒可以根据经验、模式和直觉分析数百个棋局,AlphaZero 可能处于专 家级人类国际象棋棋手和基于蛮力方法的传统国际象棋引擎之间的最佳位置,并辅以手工 规则和积累的国际象棋知识。人们可以推测,AlphaZero 获得了与人类模式识别、远见和 直觉类似的东西,并且由于使用了为此目的而适配的硬件,因此具有更快的计算速度。