阿尔法狗火了,但别忘了深蓝!20年前它已打败人类象棋冠军

36氪 显示图片

很多人在关注柯洁对战AlphaGo时,或许都会联想到20年前的Kasparov对战“深蓝(Deep Blue)”,当时的那场世纪之战大概比现在更加轰动,因为正是“深蓝”开创了正式比赛中机器战胜人类象棋冠军的先河。

尽管很多人质疑“深蓝”战胜Kasparov并非全凭下棋谋略,而是掺入了一些作弊手段,但不可否认的是,经过费城惨败后它确实进步飞快。那征服国际象棋之后,IBM的AI技术团队又有了哪些发展呢?下面我们来看看Scientific American上一篇对IBM“深蓝”团队主创Murray Campbell的专访,原文:20 Years after Deep Blue: How AI Has Advanced Since Conquering Chess。

阿尔法狗火了,但别忘了深蓝!20年前它已打败人类象棋冠军

二十年前,IBM开发的“深蓝”计算机经过六场比赛,成为世界上首个击败世界象棋冠军的机器,这一新闻当时可谓震惊了全世界。很多人和Kasparov一样,质疑超级计算机以谋略战胜顶尖棋手的可靠性,甚至引发了社会舆论对IBM涉嫌利用作弊手段赢得人机大赛胜利的指控。然而,接下来的几个月和几年里呈现在大众面前的事实证明,1997年5月的那场大战确非常具有颠覆性,堪比一场激烈的拳王争霸赛,不过,显然这场比赛充满智慧的火花碰撞。以前经历的艰难进步和费城大战的惨败,最终都为后来的绝地逆袭打下了基础。

数十年来,计算机科学家都把国际象棋作为AI进步的标杆。早在上世纪70年代后期,下国际象棋的计算机就已经出现,不过,直到十年后的1989年,卡内基梅隆大学的研究生团队才开发出了第一台象棋计算机“深思(Deep Thought)”,并在后来的一场常规赛中击败一位顶尖象棋选手。但是这此成功寿命不长,同年晚些时候,Kasparov再次以2比0的成绩轻松击败“深思”。IBM对C.M.U.团队的这项技术留下了深刻印象,以至于后来还组织其研究人员继“深思”之后又开发出了初代“深蓝”计算机。“深蓝”研发团队后来在1996年费城举办的一次人机对战中以1比6再次输给了Kasparov,不过,令他们欣慰的是,至少还是赢了世界冠军一局。

阿尔法狗火了,但别忘了深蓝!20年前它已打败人类象棋冠军

Murray Campbell如今是IBM的T. J. Watson研究中心认知计算组里AI基础技术团队中非常杰出的研究人员,他表示,这局看似毫不起眼的胜利却“是对证明我们的研发方向正确的重要肯定”,1997年人机大战最后一场比赛,我们也根据之前获胜的经验改进了计算机系统。接受《科学美国人》的采访时,Campbell谈到了计算机科学家长期以来对计算机下象棋的痴迷,还有IBM是如何成功应对AI技术面临的挑战并扭转战局,击败国际象棋冠军的。

【以下是经过编辑的访谈记录。】

Q:你当初是怎么加入“深蓝”研发项目的呢?

我是IBM当时接触的卡内基梅隆大学研究生团队中的一员。很早之前我就对计算机象棋非常感兴趣,本科期间还写过一个国际象棋程序。在C.M.U.期间,我对人工智能有了更广泛地了解,并不仅限于制作出足以打败世界象棋冠军的高性能象棋计算机。虽然它只是一个编外项目,但我们还是在上面分配了许多研究人员(包括Feng-hsiung Hsu和Thomas Anantharaman),随后研发出了一台名为“深思”的计算机,它还成了首个在象棋赛事中打败象棋大师和专业棋士的计算机程序。

IBM注意到了我们团队用于研发这个机器的预算十分紧张,也认为让我们加入IBM研究中心研发下一代象棋计算机“深蓝”一定会非常有意思。他们还很想知道,不久的将来,那些顶尖国际象棋选手是否还能打败象棋计算机。虽然当时其他研究人员认为打败人类还需几十年,我们却觉得几年内就能成为现实。

Q:对计算机科学家来说,象棋让他们如此感兴趣的地方在哪?

全世界下象棋的人过亿。它是人类智慧的结晶,玩这种游戏需要有一定的策略、远见和逻辑等。因此,象棋对于衡量人工智能发展程度具有重要意义。

看着象棋这类游戏,我们一般会说,“当然,电脑确实下象棋很厉害,因为它的游戏规则、动作以及目标都界定明确。”这是一个你了解所有信息的约束性问题。然而,尽管简化了很多,国际象棋仍然是一个极其复杂的游戏,这也是为什么我们要花50年的时间才最终打败世界象棋冠军的原因。

Q:你在“深蓝”团队担任什么工作呢?

我是团队的AI专家。1990年前期的AI和1989年的AI大不一样。我们现在一般称那段时期很小一部分基于机器学习的AI为老式AI,或象征性AI。当然,机器学习在当时还是一个很严肃的领域,但是现在就不一样了。

现在我们拥有大量的数据集和大型计算机,还有非常先进的算法来研究数据,创建一些惊人的新事物的模型。我刚进入IBM时,用于游戏项目的机器学习方法还相当原始,对我们研发设计“深蓝”没有太大帮助。我们致力于研究提高搜索效率和可持续评估的算法,因为我们知道,要想在比赛中占据竞争优势,“深蓝”必须拥有这种算法。

阿尔法狗火了,但别忘了深蓝!20年前它已打败人类象棋冠军

Q:当时AI最大的限制是什么?

硬件对构建大型网络并没有真正的帮助。而且,数据本身并不一定要达到我们需要的程度。只要你回顾一下20或25年前最流行的计算机系统,你就会对当时如何在这样一个系统上完成指令感到震惊。不过,大概还是因为我们没有经历过,我想我们还不知道自己到底错过了什么。

至于数据,我觉得当时应该没人会知道它以后用处这么大,也不会想到要花钱建立大数据集,其中部分原因大概是运行能力还不足。所以,我们只建了很小的数据集。

Q:你的象棋专长在“深蓝”研发工作中发挥了多大作用?

其实这个专长并没有你想象的那么有用。早期,我还能够识别出系统存在的问题,还能提出我认为可以解决某个问题且不引发一系列其他问题的方法。这点对于我们的研发达到某种程度已经很够用了。不过,如果是要打比赛,那就还有很多真正的游戏专业知识需要掌握。与世界冠军对决时,我们还把Joel Benjamin这些象棋大师都找来帮助我们了。

Q:这些象棋大师如何帮助“深蓝”提高比赛水平呢?

他们有两个主要的作用。一是协助建立开局数据库,把每一种象棋程序都应用起来,从而节省时间,并确保这些程序应用在合理位置上。几个世纪以来,人类一直在研究国际象棋的开局,并发展出了自己喜欢的【棋步】。这些大师正帮我们选出了很多种编写进“深蓝”程序中的棋步。

这些大师也可以充当“深蓝”的陪练。他们与计算机下棋的同时也尝试着发现系统缺陷。随后,他们会与研发团队的其他成员共同讨论缺陷所在并找出解决方法。

有时考虑到我们的条件所限——我们将部分计算机指令直接编进国际象棋加速器芯片,而不是自己编写软件——有一些问题并不能轻易解决。但通常我们还是能提高机器处理现有问题的效率。

Q:“深蓝”如何决定棋步?

“深蓝”采用混合决策。它把通用超级计算机处理器与象棋加速器芯片相结合。在超级计算机上运行的软件只执行部分象棋运算,更复杂的棋步则由加速器处理,然后开始计算对手可能走出的棋步和结果。超级计算机就是根据这些来决定最终的棋步。

阿尔法狗火了,但别忘了深蓝!20年前它已打败人类象棋冠军

Q:为了击败Kasparov,1996到1997年期间,“深蓝”做了哪些改进?

我们做出了好几项改进。通过开发新一代硬件,我们差不多将运算速度提升到原先的两倍。我们还通过改善象棋芯片充实了系统内部的象棋知识,使它能够识别不同的棋局,同时对象棋的概念有更好理解。在不同棋局走势中,这些芯片可以从众多可能性中走出最佳棋步。同时,这几年我们还发现一个棋局中可以有很多种模式,我们分别给它们赋值,从而对局势进行更准确的评估。

1997版本的“深蓝”每秒检索1亿到2亿个棋局,具体数目取决于棋局的类型。有时,系统一次能够计算出6到8种棋步,最多可达20种甚至更多。不过,尽管我们自认为97版“深蓝”比96版改善了很多,但我觉得最终的比赛结果可能还是平局。即便是到了比赛的最后一局,我仍在期待来场平局,或者之后有可能再次交手。

Q:为什么经过1997年的那次比赛后,IBM不同意Kasparov再战的请求?

因为我们觉得已经达到了最初的目标——证明计算机可以在比赛中击败世界象棋冠军,现在是时候转到其他重要的研究领域了。

Q:迄今为止,那场比赛已经过去20年了,这20年里AI有什么变化呢?

当然有了,机器在运行速度和内存等方面都有所改进。人们开始收集更多的数据,从而为机器学习算法提供练习数据。最终我们发现,将他们结合起来可以产生很多绝妙的结果。参加电视竞答节目的IBM“沃森(Watson)”通过机器学习吸收了全球海量数据——包括维基百科——并利用这些数据答出了很多现实问题。从那之后,我们还开始学习如何处理感知任务,如语音识别和机器视觉。“沃森”也可以执行越来越多的商业任务,如分析放射影像并与医师交流信息。

Q:研发“深蓝”项目的这段经历对你们之后在AI领域的工作有何影响?

我们学到了很多经验,其中之一就是多种角度看待复杂问题。举个例子,在国际象棋中,人类的下棋方式通常是基于模式识别和直觉,而机器则是通过密集检索数百万乃至数十亿的可能性。这些方法其实彼此互补。

国际象棋中如此,许多现实世界中的问题同样如此,电脑和人脑的结合都要胜过其中任何一方。例如,我们肯定不希望计算机全权接管病患的诊断和治疗,因为病情诊断涉及大量无法数据化的信息,但是在提供诊疗建议上,计算机系统还是非常有用的。

阿尔法狗火了,但别忘了深蓝!20年前它已打败人类象棋冠军

我们现在采用的是先进的基于人工神经网络的系统——有点像黑箱——它们并不怎么擅长解释自己为何要给出某项建议。但是如果它自己都解释不清原因,又让人们怎么相信这个系统的建议呢?况且,未知的神经网络系统拥有百万参数,极其复杂。

不过,处理部分问题还是可以照着给出的优秀范例来训练系统,这在医疗保健领域,计算机进行诊断或给出治疗建议时尤为明显。如果能给出合理解释的话,我想我们开发出来的机器在医生诊断时或许会有更大的发言权。

(本文由36氪编译组授权发布,未经许可不得转载。文/郝鹏程)