IT业界

这篇文章告诉你AlphaGo隐藏弱点 以及它是如何下棋的

 

 

这篇文章告诉你AlphaGo弱点 以及它是如何下棋的

 

杰米斯·哈萨比斯(Demis Hassabis) ,Google DeepMind CEO

企鹅智酷 | 深度解读

这篇分析中,企鹅智酷将结合 AlphaGo 相关权威论文中提供的信息,以及这两场比赛中李世石与 AlphaGo 表现,来用更简洁的方式,告诉你谷歌 AlphaGo 到底如何下棋,以及它有哪些被隐藏起来的弱点。

先说核心结论:

作为战胜了人类围棋冠军的人工智能,AlphaGo (目前版本)强在小范围战斗,弱点在于对全局的判断;

AlphaGo 并非没有“情绪”。它也会怀疑自己,只是用另一种形式呈现(不是人类的抖手或者挠头发);

是谁在训练 AlphaGo ?是它自己。用一种远超人类效率的方式学习;

李世石如何赢?和很多围棋专家分析的一样,从科技角度看,李世石必须在开局阶段建立优势,并且最好能够更频繁转移战场范围;

未来,AlphaGo 会将人类棋手远远甩在身后。它就只能继续和自己玩了。

一、AlphaGo 是如何决定下每一步棋的?

企鹅智酷没有能够真的打开 AlphaGo 代码库,去检查它全面的运行逻辑。我们只能从已公开的权威论文中,来梳理这个迄今为止走进公众视野的最强大人工智能,是如何做出决策,战胜人类的。

简单说,AlphaGo 下的每一步棋,都依赖于“概率”。

1.当一开始,棋盘有大量空白区域,棋子较少时,AlphaGo会更愿意采用“固定策略”。

这种策略来自于 AlphaGo 自己模拟训练的数百万场棋局(每一局都从开始模拟到结束)。这让 AlphaGo 心中有一个大概的最佳选择可能性,即下在点A和点B,哪个更好些。

 

这篇文章告诉你AlphaGo隐藏弱点 以及它是如何下棋的

 

在这个时候,AlphaGo 是通过经验来判断的。虽然这个经验不来自与人类,而是来自于它结合人类下棋方式学习后,自己和自己对弈的数百万经验值。但这种基于经验的判断,是人类挑战它的最佳机会——和“恐怖”的机器推演能力相比,经验,起码离人类更近一些。

为什么 AlphaGo 不在一开始就用蒙特卡罗算法,尽量穷尽所有可能性,去给出更可靠的“计算答案”,而不是“经验答案”呢?

我们猜测,一方面是当棋局尚未真正交锋时,各种选择的概率差不多,没必要做精确计算;另一方面,也为了节省时间。

2.当棋局有局部拼杀时,AlphaGo 的战力就升级了。

这时候,再依赖那数百万局“自己与自己下棋”的经验,明显是不够的。因为棋局瞬息万变,李世石的下法,很可能是 AlphaGo 没有模拟过的(不要高估数百万局训练,和围棋的可能性相比,只是沧海一粟)。

这时候,AlphaGo 会不再聚焦于整个棋盘,而将计算精力缩到一个小范围(战斗区域,例如右下角5*5,8*8这种)。这时候,它会启动现场演算推理功能,即开始计算每一个落子位置的后续走势,来计算最佳一步。

这需要时间。所以,AlphaGo 在短兵相接时,不得不缩小观察范围,在局部启动现场计算。这虽然失去了一定的“大局观”,但换来了计算的效率,和电脑比,人脑的纯粹计算力是相对弱势的,所以,短兵相接,机器占大优势。

3.当局势需要兼顾大局和计算力时,AlphaGo 怎么办?

开局布局,AlphaGo 用经验;短兵相接,AlphaGo 用计算力。那么在局势复杂时,AlphaGo 的另一个特长就有用武之地了——兼顾大局观和计算能力。

它叫做“棋局评估器 (Position Evaluator)”。这个东西会告诉 AlphaGo ,哪些地方是“不值得”你去深度计算的。这就帮助 AlphaGo 节省大量的计算需求,只针对局面上有价值的点,来推演,并给出最终的优胜概率排序。所以,这个评估器也叫作“价值网络”。

 

这篇文章告诉你AlphaGo隐藏弱点 以及它是如何下棋的

 

这东西是怎么实现的呢?也是经验。AlphaGo 模拟了两个“自己”,然后随机落子计算每个位置对赢棋的价值。这种简单粗暴的计算是人类大脑无法训练的,只有机器可以肆无忌惮的这么做。

打个形式上的比喻。如果你用过扫地机器人就知道,启动后,它并非按照人类的方式,一块地砖接一块的扫地,而是以一种乱序的方式,在房间里横冲直撞。

你以为它疯了。但只要你关上门,过一会,你会发现它已经把地打扫干净了——所有的区域,都被这种随机方式覆盖到。

人类是不可能这么扫地。会累死你。

但和穷尽推演相比(虽然目前不可实现),这种价值估算并不是完全准确的(扫地和围棋在精读与复杂度上,是完全不同的)。它是在兼顾时间和效率基础上,一种最适合的策略。这也是 AlphaGo的一个弱点。

二、AlphaGo 也会怀疑自己

我们觉得人机对战对李世石不公平的一个地方,是机器人不会受情绪影响,而人类棋手却时常受困于其中。

从单一棋局看,AlphaGo 确实是不会“后悔”的,因为它的每一步,都是它认定的最佳决策。但当你通过多局去观察 AlphaGo 时,会发现它其实也会“怀疑”,只是这种怀疑,并不会影响它的棋力,反而会促进它的进化。

原理很简单。AlphaGo 会怀疑自己,是因为在很多局面选择时,最优解不止一个,或者比较接近。例如有五个点的赢棋概率都是45%,在这一局里,AlphaGo 可能选择了点A,但下一句,它可能会选择点B……

如果点A赢了,以后它会一直选择点A吗?这个我也不清楚,论文里没说。但从逻辑上推断,既然是经过了百万棋局的演算,那么一局的胜负,对于具体某点的概率提升,不会太明显。所以,AlphaGo 在应对同样局面时,它可能给出完全不同的下法——根据几个最优解,随机选择。

而这一点,也正是它可怕之处。连开发它的人类,都无法预测它的行为。因为你把随机函数的权利,交给了人工智能自己。

三、AlphaGo 为什么极少下臭棋?

我们通常把人工智能比作”高智商婴儿“,按照这个推断,AlphaGo 就算表现惊艳,但应该也会有下臭棋的时候。因为单纯的人工智能,是无法真的模拟人类思维的。

但 AlphaGo 没有丢过人。因为在一开始,它并非完全的“自学”。工程师们安排 AlphaGo 在网络对战平台上,与人类棋手不断下棋,用来学习人类下棋的风格和方式。当工程师们觉得 AlphaGo 足以“像个人类棋手”时,才让它开始自己和自己更疯狂的练棋。

你如果很早在KGS(网络围棋对战平台)上遇到过 AlphaGo ,那么,你可能有幸看到过 AlphaGo 还是婴儿时的样子。

四、AlphaGo 自己训练自己,而且效率吓人

前面提到了,和人类练棋不同,AlphaGo 在学会了人类下棋方式后,复制了两个自己,依托计算机性能优势,不断下棋,去丰富对局面判断力。这种效率非常之高,甚至已经超越了人类历史上所有的对弈棋局总数量。

这意味着 AlphaGo 会越来越”老练“。虽然它还是无法在每一局的每一步中,穷尽所有可能性(如果它能做到,就战无不胜了),但它会不断通过训练积累大局观,而随着大局观提升,在实战中,它需要做现场精准推演的效率也会更聚焦——人类也就越来越难赢它。

在可以预见的未来,AlphaGo 会将人类棋手远远甩在后面。然后,它就只能在自己的世界里,自己和自己下棋玩了。

人类棋手会像今天的电竞爱好者那样,去看看两个“AlphaGo“ 的对局直播,一边惊叹,一边感悟。

希望看到您的想法,请您发表评论x