欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

专访深蓝之父:AlphaGo很棒 但并不完美

程序员文章站 2022-05-20 15:32:32
文/机器之心围棋人机大战已进尾声,这注定是一次要载入史册的比赛,也正如机器之心之前所言:这次比赛没有失败者,而是全人类的胜利。20多年前,IBM也曾因类似的事情备受瞩目。IBM的深蓝计算机击败了国际象...

文/机器之心

围棋人机大战已进尾声,这注定是一次要载入史册的比赛,也正如机器之心之前所言:这次比赛没有失败者,而是全人类的胜利。20多年前,IBM也曾因类似的事情备受瞩目。IBM的深蓝计算机击败了国际象棋大师Garry Kasparov。Murray Campbell就是当时深蓝研发组的重要人员之一。如今他是 IBM 认知计算部门的高管,负责Watson人工智能平台。

The Verge 在比赛期间采访了 Murray Campbell,深入了解深蓝之前的比赛以及与DeepMind的AlphaGO有何不同。

专访深蓝之父:AlphaGo很棒 但并不完美

问:深蓝的比赛已经过去了20多年了,请你谈谈当时你们是如何解决计算机下象棋并击败 Kasparov ?

答:当我们是卡内基梅隆大学研究生时,我们就已经开始研究象棋程序了。hou lai IBM 招来包括我在内的三个人,建造新一代的象棋计算机,也就是深蓝。我们意识到一个纯粹的暴力算法( brute-force)并不能击败世界冠军,但另一方面,大量的计算能力却能产生不同的效果。而且程序的优点与计算速度之间有关联也是已经证明过的。所以我们把在算法、搜索和评估中先进的AI类型,与超级计算机结合起来做出了世界级冠军水平的国际象棋计算机。1996年比赛我们输了,但第二年,经过改善的新系统最终赢得了比赛。

问:从人类角度来说,一开始让你进入这一领域的动机是什么?是对象棋的更感兴趣?或者更多的是对计算机抽象的挑战?「计算机像人一样下棋是非常困难的」。

答:恩,我必须承认两者都有。我的确对象棋感兴趣,在我成为计算机学家之前,我是一位象棋选手,我一度是我们阿尔伯塔省(加拿大西部一省)的象棋冠军。但我必须承认,我离真正的大师还有很远的距离。这让我有兴趣知道让计算机拥有这样高的水平。我对我的专业也保持着很高的兴趣,所以当我加入IBM后,我认识到这是一次找到答案的机会,并证明能够做出这样的计算机。

除了个人爱好之外,在那个时候,这也正是计算机科学领域的一个挑战。1949年,数学家Claude Shannon发表了一篇著名的论文,提出了创造象棋计算机会是怎样的一个过程,并认为这是一个巨大的挑战。

问:对你而言,让计算机精通象棋要做到哪种程度?就只是把规则输入进去,让其计算出结果还是让其通过过去的经验进行计算?

答:我认为拥有象棋的知识是很重要的。但在早期,对我们而言,了解这些知识,成为象棋高手并不是重要的事。到了最后的准备阶段时,你就需要了解很多象棋的具体细节以及大师级的标准是什么。所以我们发现引入一个象棋大师Joel Benjamin做咨询还是很有帮助的。而且最后我们也找了更多的象棋高手做陪练,测试我们系统的表现。

问:当时的目标是让计算机模拟人类下棋还是不计成本地开发一个可以获胜的产品?

答:我认为我们并不是让计算机模仿人的风格,我们只想达到人类大多数情况下的水准。人类的下棋风格已经被研究过了,虽然未被了解通透,但过去几十年心理学家一直在研究。我们都知道象棋高手或大师在思考接下来的步骤时都能看到接下来的多个步骤。有时他们需要深入的计算并决定落子,有时不需要这么做。但是他们对落子有一套非常复杂的计算和检索机制,所以要模仿人类下棋的风格非常的困难。

人工智能最初的工作是想设计出很像人类下棋风格的计算机。但拥有相当肤浅计算力,可计算出更多落子的更有计算机风格的电脑能非常轻松的就击败了它们。完全的依靠搜索,就达到了相当高的象棋水平。但接下来我们就意识到依靠计算机并不够,要必须模仿人类下棋的某些方面。人类会非常严格的遵守下棋的关键点,那我们也要让系统做到这一点。这也是深蓝能够成功地重要地方之一。

问:1997年,大多数棋手看完Kasparov如何被击败时会不会觉得深蓝的风格不一样吗?

答:是的,现在依然有一种说法,当你看到计算机下了出乎意料或者非直观的一步棋时,人们会把它称为计算机路数(computer move)。这只是人类以固定的方式思考的结果,并非把自己放到高手的水平。这就是为什么计算机即使不能完全正确的计算位置依然能够击败人类:因为它们如此不同,能够看到人类可能看不到的路数。就如同是年轻的棋手比老一代更容易使出计算机路数一样。

问:所以,最终计算机的进步也让人类进步了

答:我认为完全是这样。

问:在对计算机科学的要求上,围棋与象棋有什么不同?

答:我并不下围棋,但我也对它有所了解。在落子上,两者都非常的复杂,可能性非常多。但围棋有着象棋没有的特征,只靠看是无法计算围棋落子的。我这样中等的象棋手坐下来几个小时就可能写出一个计算象棋落子的计算程序,更不要说象棋高手了。但与搜索结合起来之后,就能走出高水平的棋局。

专访深蓝之父:AlphaGo很棒 但并不完美

但围棋是一种随时间对垒的游戏,下棋的结构与相互影响方式都非常复杂。象棋游戏就是众多棋子中的运动。在以最终计算余子定胜负的情况下,就能做。现在明显要比这复杂了,但是有经验法则可以运用。围棋就并非如此,并不是简单的把棋子加起来。因为双方数目可能大致相同。这样计算起来更加困难。所以我想DeepMind的一大进步就是找到了一个使用机器学习计算落子的好方法。

问:你如何看待 AlphaGo ?你们在开发深蓝的时候有考虑过 AlphaGo 采用的这些技术吗?

答:这是一个很好的问题。我也和 DeepMind 的人聊过。首先来说,他们的工作非常棒。但如果能让这套算法不仅可以应付围棋还能延伸到其他棋类的话,我觉得会更令人激动。

那么这套算法可否运用到国际象棋呢?我推测或许这样的程序会比现在的人类国际象棋大师更厉害,但还是比不上现有的国际象棋程序。

如今的国际象棋程序非常强大,我觉得上述算法打造的程序并不一定比原有的程序更强大。我之所以这样说是因为,国际象棋区别于其他棋牌类游戏的一个特点就是搜索,国际象棋的搜索要比我欸欸其更重要。当然,围棋也需要深度搜索,但围棋比赛还有很多直觉和预估的要素。

国际象棋搜索方面的需求是无可替代的。我了解到的最强大的国际象棋程序叫 Komodo ,它的搜索能力非常强大,能够高效搜索多个可能的步数。所以我觉得很难有一个擅长在围棋领域的算法同样适用于国际象棋,这个算法无法重新创建搜索而且还需要另一个技术突破方向。

问:AlphaGo 所做的其实是自己和自己比赛,看起来也在不可阻挡地变强大…….

答:是的,AlphaGo 在自己和自己比赛中提高能力。我不知道他们是否发现AlphaGo 有能力提升的局限性,或许它还会不断成长。我能确定的就是,如果将 AlphaGo 的技术放在国际象棋程序里,它一定赢不了现有的程序。

问:计算处理能力在两个棋牌游戏中有多重要?

答:国际象棋并不需要太多的计算处理能力。计算处理能力提供的越多,其收货也更多。未来,你的智能手机或许就能就打败几乎所有的国际象棋选手。算法的改进让程序变得更有效率。而围棋则需要巨大的计算处理能力,根据他们之前论文里透露的,AlphaGo 如果增加更多的 CPU 和 GPU,其表现也会越好。所以这次比赛 AlphaGo 的计算处理能力会非常强。

问: AlphaGo 这次胜利的意义又是什么?

答:我觉得这次的胜利将给人工智能在棋牌游戏的研究热潮降温,接下来将有更酷的产品出来。部分原因即便这些游戏非常复杂,但另一方面却非常简单,不管围棋还是国际象棋,都是完美信息的游戏,也都是零和游戏。这些游戏无法反映现实世界。世界上只有很少一部分问题在解决前能够掌握足够的信息,从而让你做出正确的决策。将这些(研究)运用到现实世界的问题中才是下一步重点要做的。

我需要特别提出一点,当我们将这些技术(应用)运用到现实世界的时候,我认为我们简单粗暴地认为这些(装备)新技术的机器一定比人类强大是不合适的。这些技术在某些方面的确比人类强大,但也有另一些方面却非常差劲。所以人类与机器的互补很重要。

问:你最关注现实世界里的哪些实际应用?

答:我觉得医疗领域的应用很有趣。我并不觉得机器人或计算机会在这个领域做出诊断,但计算机可以利用数据分析、图像识别方面的技术,能够帮助医生更好地做出决策,使得诊断过程变得高效和精确。