机器学习与数据挖掘人工智能/模式识别/机器学习精华专题深度学习-推荐系统-CV-NLP

AlphaGo 的“前世今生”

2018-06-17  本文已影响73人  小道萧兮

一、AlphaGo 的“前世”——深蓝——蛮算的“硬汉”

1996 年 2 月,在美国费城举行了一项别开生面的国际象棋比赛,报名参加比赛者包括了 “深蓝”计算机 和 当时世界棋王 卡斯帕罗夫。

比赛最后一天,世界棋王卡斯帕罗夫对垒“深蓝”计算机。在这场人机对弈的6局比赛中,棋王卡斯帕罗夫以 4:2 战胜计算机“深蓝”,获得 40 万美元高额奖金。人胜计算机,首次国际象棋人机大战落下帷幕。比赛在 2 月 17 日结束。其後研究小组把深蓝加以改良。

次年,也就是1997 年 5 月 11 日,在人与计算机之间挑战赛的历史上可以说是历史性的一天。

1997年电脑深蓝首次战胜国象棋王卡斯帕罗夫

计算机在正常时限的比赛中首次击败了等级分排名世界第一的棋手。加里·卡斯帕罗夫以 2.5:3.5 (1胜2负3平)输给 IBM 的计算机程序 “深蓝”。机器的胜利标志着国际象棋历史的新时代。

落败

其中,比赛的转折点出现在第二局。

卡斯帕罗夫第一局获胜,感觉很好。但在第二局中,双方却打得不可开交。在第 36 步棋时,电脑的做法让卡斯帕罗夫不寒而栗。在当时的情况下,几乎所有顶尖国际象棋程序都会攻击卡斯帕罗夫暴露在外的皇后,但深蓝却走出了一步更为狡猾的棋,最终的效果也更好。这令卡斯帕罗夫对电脑另眼相看。

对卡斯帕罗夫和所有旁观者来说,深蓝突然不再像电脑一样下棋(它顶住诱惑,没有攻击皇后),反而采取了只有最聪明的人类大师级选手才有可能使用的策略。通过在卡斯帕罗夫面前深藏不漏,IBM成功让人类低估了它的水平。

他的斗志和体力在随后3局被拖垮,在决胜局中,仅 19 步就宣布放弃。

后来,IBM拒绝了卡斯帕罗夫的再战请求,拆卸了“深蓝”。卡斯帕罗夫虽然后来多次挑战电脑战平,却无法找“深蓝”“复仇”,留下永久的遗憾。

在今天看来,“深蓝”还算不上智能,它主要依靠强大的计算能力穷举所有路数来选择最佳策略:“深蓝”靠硬算可以预判12步,卡斯帕罗夫可以预判10步,两者高下立现。

深蓝计算机

二、AlphaGo 的“今生”

在 AlphaGo 诞生之前,计算机在除围棋之外,几乎所有棋类游戏上战胜了人类,唯独围棋没有被攻克,为什么呢?

AlphaGo

围棋游戏只有两个非常简单的规则,而其复杂性却是难以想象的,一共有 10 的 170 次方种可能性,这个数字之大,以至于用当今世界最强大的计算系统,算几十年也算不完,是没有办法穷举出围棋所有的可能结果的。所以,计算机需要一种更加聪明的方法。

直到 2016 年,AlphaGo 第一版发表在了 Nature 自然杂志上,这可是牛逼得不要不要的期刊。

Nature 杂志封面

而刚过去一年,Google DeepMind 又在 Nature 上发表了一篇 AlphaGo 的改进版——AlphaGo Zero,同样的围棋 AI,竟然在自然杂志上发了两次!赞叹他们的实力呀!

AlphaGo 战胜过欧洲冠军樊麾,韩国九段棋手李世石,而后又赢了世界冠军柯洁,种种迹象表明,人类已经失守最拿手的围棋了。这些围棋高手一个个都表示 AlphaGo 走到了他们想不到的地方,战胜了人类的生物极限。那 AlphaGo 又是怎么在策略上战胜人类的呢?很简单,它会做计划。

在我被 AlphaGo 2:0 领先以后,我彻夜未眠。因为我一直在想我如何才能赢了它,它会不会有什么漏洞,哪怕是捡一盘也好啊!在第三局中,我竭尽全力以求一胜。因为在第二局的时候,我其实布局是领先的,布局的领先让我依稀看到了胜利的曙光。在第三盘中我跟它拼了!可是就在早早布局的阶段,我却出现了一个非常致命的失误。——引自柯洁的演讲

棋至中盘,我努力寻找机会,可是 AlphaGo 实在是太完美了,它下出了让我感到寒冷的一步棋,令我感到绝望的一步棋。它下完之后,我知道我这盘棋是不可能赢了。我感到浑身都在颤抖,真的,寒冷地颤抖。我再也控制不住情绪,赶紧冲出对局室,找到一个无人的角落里哭了起来。因为即将到来的3:0,这样的结局对我来说实在是太绝望了。——引自柯洁的演讲

三、AlphaGo 背后的原理

阿尔法狗(AlphaGo)是通过两个不同神经网络合作来改进下棋。这就像有两个导师,每个都是多层神经网络。它们从多层启发式二维过滤器开始,去处理围棋棋盘的定位,就像图片分类器网络处理图片一样。经过过滤,13 个完全连接的神经网络层产生对它们看到的局面判断。这些层能够做分类和逻辑推理。

这些网络通过反复训练来检查结果,再去校对调整参数,去让下次执行更好。这个处理器有大量的随机性元素,所以人们是不可能精确知道网络是如何“思考”的,但更多的训练后能让它进化到更好。

AlphaGo 原理

导师1号:落子选择器(Move Picker)

Policy network

AlphaGo 的第一个神经网络大脑是“策略网络(Policy Network)”,观察棋盘布局企图找到最佳的下一步。事实上,它预测每一个合法下一步的最佳概率,那么最前面猜测的就是那个概率最高的。这可以理解成“落子选择器”。

导师2号:棋局评估器(Position Evaluator)

Value network

AlphaGo 的第二个大脑相对于落子选择器是回答另一个问题。不是去猜测具体下一步,它预测每一个棋手赢棋的可能,在给定棋子位置情况下。这个局面评估器就是“价值网络(Value Network)”,通过整体局面判断来辅助落子选择器。

然后,AlphaGo 通过吸收人类几千年来优秀的棋谱,不断学习优化 策略网络 和 价值网络,从而战胜了欧洲冠军樊麾,韩国九段棋手李世石,而后又赢了世界冠军柯洁。

AlphaGo 下棋

但是,这并不是重点。

四、AlphaGo Zero

终于说到重点了~~

Zero 英文意思是:零。除了围棋最基本规则(棋盘的几何学定义,轮流落子规则,终局输赢计算,打劫等),它就是一张白纸。放弃参考任何人类棋谱,完全自我学习。

AlphaGo Zero

如果你和一个有人类老师的 AlphaGo 交手,那可能还会在它背后看到人类下棋的影子。但是 AlphaGo Zero,完全是一个无师自通的家伙,和它下棋,你可能闻到很浓烈的机械味。但从另一方面想,这样的 AlphaGo 打破了数千年来人类下棋思维的限制,探索了人类想不到的下棋境界,学会了一个崭新的下棋方式。

仅仅经过 3 天的训练后,这套系统已经可以击败 AlphaGo Lee,也就是击败韩国顶尖棋手李世石的那套系统,而且比分高达100:0。经过 40 天训练后,它总计运行了大约 2900 万次自我对弈,使得 AlphaGo Zero 击败 AlphaGo Master,也就是击败世界冠军柯洁的系统,比分为 89:11。要知道职业围棋选手一生中的正式比赛也就一千多局, 而 AlphaGo Zero 却进行了 2900 万次对局。

AlphaGo Zero 训练效果

在技术层面来说,AlphaGo Zero 使用的不再是之前提到的两套神经网络系统,而是将它们融合成一个神经网络系统,这样做能更有效利用资源,学习效果更好。其关键在于采用了新的 Reinforcement learning(强化学习),并给该算法带了新的发展。

柯洁对 AlphaGo Zero 的看法

而且,它不再仅仅使用 GPU,转而添加了自家的专门为机器学习打造的 TPU,而且使用的硬件个数也在逐步降低,然而学习的效果却不断上升。在短短 40 天没有老师教的训练中,AlphaGo Zero 超越了他所有的前辈,在这个时候,我相信它真正做到了在围棋场上无人能敌了。

最后,正如 AlphaGo 之父 David Silver 所说,一个无师自通 AlphaGo 的产生,并不仅仅意味着我们的 AI 能在围棋场上战胜人类,放眼未来,它还意味着,在更多方面,我们能用这样的 AI 创造出更多人类历史上的新篇章。

围棋场上,无论谁赢,最终获胜的都是人类自己。

上一篇 下一篇

猜你喜欢

热点阅读