20 年前就打败了人类,「深蓝」开发者又如何看待 AlphoGo?
— shenzhenware —
DeepMind 的围棋人工智能 Alphago 对人类的碾压来得促不及防,现在它以 3:1 领先围棋冠军李世石。由于围棋的复杂性,很多人工智能专家曾认为,计算机要战胜顶尖人类,还需要数十年时间。而在约二十年前,IBM 也同样在人机之间挑起过争论,当时它开发的深蓝计算机打败了国际象棋大师加里·卡斯帕罗夫 (Garry Kasparov)。
Murray Campbell 是深蓝开发中的关键人物,也是 IBM 认知计算部门的高级经理,正是这一部门管理着现在的 Watson 人工智能平台。那这位深蓝的开发者,是怎样看待新世纪人机之战的呢?最近 Theverge 与他进行了对话,深圳湾对文章编译如下 (有删减):
在20年前,你们如何解决象棋问题,打败卡斯帕罗夫的?
我们还在卡耐基梅隆大学读研时,就在开发象棋程序了,接下来 IBM 招了我们其中三个来开发下一代象棋计算机,也就是后来的深蓝。我们当时意识到,单纯的暴力破解方法很难打败世界冠军;但另一方面,拥有强大的计算力确实有用,而且程序的能力确实与计算速度有关,这有文献支持。所以我们将一些人工智能类的先进算法 (搜索和评估方面的),与大型超级计算机相结合,来开发冠军级别的程序。1996 年的比赛我们失败了,但次年用改进的系统卷土重来,并取得了胜利。
你当时为什么会做这事?是出于对象棋的兴趣,还是对计算的挑战?
两者都有。我对象棋很感兴趣,在成为计算机科学家前也是象棋玩家,还曾获得过加拿大亚伯达省的冠军。不过我也认识到,真正厉害的高手有一些我没有的东西。这也让我想知道,怎样才能开发一个高水平的计算机来下棋呢?后来加入 IBM 时,我感到这是个机会,可以证明自己的想法。
除了个人兴趣,打败人类也对早期的计算机科学来说是个挑战。1949 年,知名数学家克劳德·香农 (Claude Shannon) 发表了一篇论文,描述了如何创造一台象棋计算机,并认为这是一个大挑战。
开发中,多大程度上你自己要了解国际象棋?是输入一些规则就行了,还是根据自己的经验来?
我认为了解一些象棋知识很重要。在开发的早期阶段,我们不需要成为个中高手,而且当时也不是。但进行到最后阶段时,会有很多关于如何下棋,以及大师的标准是什么的细节需要考虑,所以有个高手来帮忙很重要。当时我们请了象棋大师 Joel Benjamin 来帮忙。最后,我们还请了其他大师与机器对战,测试系统性能。
当时的目标是模仿人类风格,还是开发一个不惜一切取得胜利的系统?
我们完全没想着模仿人类,只不过是人类多数情况下,棋下得不错,所以我们也希望系统如此。人类的风格被研究得很好,虽然没被研究透,但心理学家数十年前就在研究了。而得到的结论是,象棋高手在考虑走棋时,只会关注少量的步数和位置。有时他们会计算到很深,才能决定怎么走,有时候不会。但他们很擅长棋局评估和搜索机制,这有助于决定选择哪种方式探索棋局。模仿人类是很困难的事。
最初的人工智能确实想让计算机有人类的网络,但往往会败给那些更「计算机风格」的计算机,即少进行评估,尽可能计算可能的步数。仅靠纯粹的搜索确实能达到一定的水平,但我们也意识到,这还不够,还是得在某些方面模仿人类。人类长于根据关键路线进行深入思考,我们也希望系统能这样做,而这也是深蓝能成功的一个重要原因。

到 1997 年,多数玩家都知道卡斯帕罗夫被打败了,他们认为深蓝的风格很不寻常吗?
是的,有这样一种说法,你看到计算机下出很出乎意料,或反直觉的一步棋时,会称它为「计算机走法」。这是因为人类有这样的思考方式,而有些走法,人类高手也不会用。这也是为何计算机能打败人类,虽然在某种程度上说,它们无法准确评估棋局:由于它们不同寻常,所以能看见一些人类不会看见的走法。不过有趣的是,现在的年轻棋手会比老一代更容易走出计算机的走法,可能是因为他们一直有跟计算机下棋。
所以计算机战胜人类,也让人类变得更优质?
很正确。
在计算机科学角度上,围棋与国际象棋有什么区别?
两者都需要强大的计算量,都很复杂。但围棋有一些象棋没有的特点,那就是很难评估它的棋局。像我一样的中级象棋选手,可能几个小时就能写一个评估函数,用于判断象棋的棋局。虽然达不到大师的水平,但与搜索结合起来,已经足够下高水平的棋了。
但围棋会随着时间推移而衍变,而且结构和互动非常复杂。象棋中的棋子会移动,没有很多静态结构,甚至只要数下谁的子多,你就能很好地预测谁会赢。现实当然会更复杂,但这是个不错的经验。围棋则完全不是这样,你没法数棋子,因为一般来说双方都差不多,而且评估起来难得多。所以我觉得,DeepMind 的高明之处在于,通过机器学习方法找到了更好的棋局评估方法。
你怎么看待 AlphaGo,它用的技术当时能用吗,能不能用在深蓝上?
我也与 DeepMind 的人讨论过这种问题。首先我认为 AlphaGo 很厉害,也提高了现在的人工智能水平。如果他们证明 AlphaGo 是一种通用机制,还能用在除围棋外的其它游戏中,我会更震惊。
至于这种方法能不能用在国际象棋上,我觉得它可能让程序比所有人类都厉害,但不会是最先进的,因为现在的象棋程序已经很强大,且超越了人类。象棋在搜索上是不同的游戏,即搜索对象棋很重要,但在围棋上不是这样。围棋中也需要深层次的搜索,但其中直觉,评估以及互动更为重要。
可以说,没有什么能替代搜索,现代程序,比如我知道的最好的 Komodo,都有搜索可能的走法上很高效,搜索的层次也很深。我认为 AlphaGo 所用的通用机制就算用在象棋上,也无法重塑搜索,它需要其它的突破。
AlphaGo 能与自己下棋,看起来能力会不断提升。
它在与自己下棋时,确实看起来有所提升。我不知道这是否会有限制,它能否不断改进。但根据我对两种游戏的理解,AlphaGo 用的方法直接用在象棋上时,无法打败现有的程序。
处理能力对两类游戏来说有多重要?
在象棋中可能没那么重要。处理能力越强当然越好,但现在的智能手机已经能打败任何人了。算法已经有了优化,程序也相当高效。AlphaGo 似乎用了很多处理能力,发表的论文上也说在 CPU 和 GPU 更多时,表现也更好。(编者注:上周 DeepMind 表示,逐渐达到了收益递减的临界点,即再增加计算性能似乎无法让计算机的表现更好)
AlphaGo 的胜利对人工智能领域来说会意味着什么?会有下一个目标或里程碑吗?
我认为,这会让围棋和象棋的研究减少。会有很好的机制处理这类游戏,部分是因为,虽然它们很复杂,但在另一方面上看又很简单。他们都是完美的信息游戏,是零和游戏,也是轮流来玩的游戏,所以没有运气的成分在里面。但现实世界并不如此,你在决策中很少能完全了解情况,决定的结果也很难理清楚。
所以我很想知道如何将 AlphaGo 的系统用在其它游戏上,以及在没有人类输入的情况下用在围棋上会怎么样。这些都可以成为里程碑,但我认为我们会瞄准棋类游戏之外。将这种技术用在现实世界的问题会更有价值,也是我们应该做的。不过在这种转移过程中,系统不会很快超越人类,因为人类与机器都有自己擅长的方面,需要互补。
最直接的现实使用是什么?
我认为可能是医疗保健方面。我不认为计算机会很快帮人类做决定,但它们能分析数据,帮人类做出更好的决定。算法可以帮助识别出数据中的模式,为医生提供决策洞见,让决策更准确。
● ● ●
— shenzhenware —