# AlphaGo Zero 为啥能赢？用肉夹馍和比武就能解释了

- 作者：不存在日报
- 发布时间：2017-10-27 15:45
- 分类：公司
- 原文：https://www.ifanr.com/930183

![](https://s3.ifanr.com/wp-content/uploads/2017/10/a41d9bfcf8d486fd325e2cc0805fc5aa.jpg)

> 本文由不存在日报（微信 ID：non-exist-FAA）原创，转载请联系邮箱 faa@faa2001.com。

就在上周，阿尔法村第四代 AlphaGo Zero 闭关出山，以满血姿态秒杀了前辈 AlphaGo，又以 89 比 11 的高绝战绩碾压了 Master。

而 AlphaGo 去年刚以 4 比 1 的总比分战胜 18 届世界冠军李世石；Master 不到半年单挑人类世界顶尖棋手，保持 60 连胜，更三战全胜地拿下了人类世界第一人柯洁。

这从不曾与人学艺，全靠闭关自修的 Zero 到底是何方神圣，不由让人非常好奇。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal2al.jpg)

### **狗中有乾坤**

每个人工神经网络在使用的时候，都分为两步：训练与使用。 AlphaGo 也不例外。

Zero 之前，AlphaGo 的基本过程，就是用人类棋谱来训练决策网络，然后自我对弈来强化学习，然后用强化学习后的决策网络来训练价值网络。都训练成功后，就可以在实际比赛中结合蒙特卡洛树搜索来进行下棋决策了。

类比来说就是：

一开始，郭靖跟着江南七怪学功夫，被各种教育各种折磨，这就是照着人类经验深度学习训练的决策网络。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal15al.jpg)

学到一定程度后，江南七怪看郭靖实在太笨，自己能教的都教完了，他只学会了怎么猜别人出拳，于是只能叹一口气走了。这就是快速走棋。

接着，郭靖遇到了周伯通，教他怎么左右手互博。于是郭靖开始不断和自己对打，功力逐步增强。这就是自我对弈强化学习训练的决策网络。

然后，郭靖在和自己对打的时候，逐渐形成了超强的武感，看一个人抬手就知道他要出什么招，看一个人吐纳就知道自己这一拳胜算几何。这就是价值网络。

某一天，郭靖终于出山了，开始和 18 届天下第一武道会冠军金轮法王，以及人类世界第一人王重阳交手，对方每一次出招前郭靖都能预判，该怎么应对，每种方案胜率多少，怎么引诱对方露出破绽，这就是蒙特卡洛树搜索。

至此，天资愚笨的郭靖终于成为了一代巨侠。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal9al.jpg)

**到了 Zero 这一代，我们去掉了准确率不高的快速走棋网络，用一个极深残差网络合并了决策网络与价值网络。**

再举个例子，石破天原本什么武功都不会，某一天他来到了侠客岛，面对大量的武功秘籍却一本都看不懂，因为他不识字。

接着，他看到了洞壁上的太玄经，就随便照着动了下经脉，这就是初始随机网络。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal3al.jpg)

随着经脉活动得越来越多，石破天的内力开始逐渐积累，并且开始和自己对打，虽然一开始只是花拳绣腿，但太玄经本身的功效非常强大，石破天的进步神速。

第 3 天，他已经可以打败金轮法王了。 第 21 天，可以打赢王重阳。 第 40 天，正式出关的石破天已经可以打败此前的天下第一郭靖。

于是，完全靠着无字天书和自己对殴的石破天，成了江湖上无能及的神一般的存在。

可见，**结构更加简单了，但功能却变得更加强大。**

### **长江后浪推前浪，一浪更比一浪浪**

网络结构的改变，为什会造成这么大的影响？

一切的开端，就是我们脑袋里的那个小小的细胞——神经元。

形象一点来说，就是**一群人跟你说话，每人说一句，然后你就自己琢磨了一下，把自己琢磨的结果说给了下一个人听。**

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal22al.png)

接着，一大堆神经元连接起来，一组神经元的输出接到另一组神经元的输出，最后留几个作为整个网络的输出，这就是神经网络。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal18al.png)

**组成网络并不是最终目的，最终目的是根据输入来给出恰当的输出，并且这个输出能在可评判的标准里达到最好。**

也就是说，神经网络在把神经元通过一定的网络结构连接起来后，会不断地调整神经元的参数，使得最终输出的结果与训练用的数据尽可能地接近。最后当网络稳定下来后，我们就认为得到了一个最符合输入与输出之间内在逻辑关系（或者说本质规律）的神经网络，可以用来做别的事了。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal8al.jpg)

那么，神经网络为什么这么厉害？ 你可以这么理解：

**每一层神经网络就好比流水线上一名专门的工作人员，但他只能做一个领域的事情。**当只有输入层和输出层的时候，就好比流水线上只有两名工作人员，一个只会和面，一个只会切菜，于是你最后得到的只能是酸菜饼。

然后，加一层隐藏层，就好比又来了一个师傅，他会包饺子，好了，你可以吃韭菜饺子了。再来一个隐藏层，他会剁肉，你就有了猪肉韭菜饺子了。第三个隐藏层会买老干妈，那日子就美啦~~~

因此，**隐藏层越多，整个网络能做的菜就越多，表达能力就越强。**

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0-30.jpg)

 **（**不好意思放错图了……）

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal1al.jpg)

（图片来源：martechtoday.com）

但做菜师傅多了也不总是好事，因为要付工资…… 这在神经网络中就体现为，**要训练的神经网络越深，需要消耗的计算资源就越高。**所以如何调节网络结构，在不降低网络能力的情况下降低计算量，就很重要了。

我们先来看最简单的，有一层隐藏层的神经网络，即所有输入节点连接到每一个输出节点上，这种网络被称为全连接网络。

但这样每个节点上的连接太多，导致计算量会非常大，而且问题都压在了如何选择神经元的激活函数上。

就好比我们本来希望可以通过流水线来分解满汉全席，但现在却要求一位大厨把整座菜都给做了，问题根本没有简化。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal21al.jpg)

为此，我们就给网络添加若干节点，这些节点是在输入和输出之间隐藏起来的一层， 被称为隐藏层：

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal18al.png)

神经网络的复杂表述力来源于其网络结构，所以我们一般会给网络加上多层隐藏层，这就是多层神经网络。如果层数还非常多，那就是深度神经网络。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal20al.png)

这样，表达力是强了，但有一个问题：需要训练的节点与连接的数量也陡然增加。

本来网络上每个人发的微博你都会看到，这样显然就信息过载了，于是每个人只看自己的朋友圈——下一层网络中的节点不与上一层的所有节点相连，而只与相邻的节点相连；

接着，我们进一步假定朋友圈里的亲戚发的消息都是同类型的，每个同事发的消息也都是同类型的，决定信息类型的只是朋友和你的关系，而不是看具体是谁——下一层节点与上一层节点的连接权重只与相对位置有关而与具体哪个节点无关；

最后，我们看朋友圈的时候只看主要信息，忽略次要信息——这就是池化。

就比如下面这样：

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal16al.jpg)

**卷积网络的特征，就是认为局部特征是全局适用的，就好比有人说 “观一叶落而知秋至”**，你不需要管到底是哪一片树叶落下了，这是一种局部与整体对应的特性。

卷积网络解决了同一层计算量过大的问题，但整个网络的深度依然是一个问题，因为**太深的网络训练传不下去**。

为了解决这个问题，人们就又想出了不同层交错合并的残差网络。残差网络将某一层经过简单处理后，与其后经过 N 层处理的结果进行合并，在不损失处理能力的情况下，让从结果来的训练结果可以传递回之前的起点，从而有效缓解了网络过深时的训练结果传递的各种问题。

就像这样：

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal23al.jpg)

残差网络使得深度神经网络的深度可以有一个极大的飞跃。比如 2015 年的图形识别比赛中，初次登场的残差网络在别的网络都只能训练三十多层的情况下，率先训练到了一百五十多层。

这就好比说，**普通高手只能苦练三十年，有三十年的功力，残差网络却可以一口气拥有一百五十年的深厚内力，那要傲视武林当然就轻松愉快了。**

AlphaGo 系列从一代到三代，使用的深度学习网络是基于卷积神经网络的，而四代目则将利用残差神经网络将策略网络和价值网络合并，形成了极深神经网络来做学习，就好比虚竹找到了无崖子，获赠了百年北冥神功内力，一跃成为三巨头之一。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal13al.jpg)

### **童年的终结**

围棋曾被誉为人类智能的高地，那么 Zero 为什么可以不依靠人就完成 “学习” 呢？

很大程度上是因为围棋的特殊性：**游戏规则是确定的，对胜负的判定有明确的标准。**

举例来说，程序可以随机生成一个布满棋盘的黑白棋分布，通过游戏规则来判定这个分布下到底谁赢了，如果调整某个棋子的位置，胜负会怎么变化。久而久之，计算机就可以知道下子在什么地方胜率最大，怎么走最保险。

相比之下，你要人工神经网络生成一篇 “感人” 的文章，对于什么是 “感人” 并没有一个很明确的定义，这就难办了。

因此可以想象，**未来更多判定标准明确的领域，恐怕都会被人工智能所占领**，比如科研领域——于是我发现我失业的概率又增加了好几成……

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal19al.jpg)

自我学习的 Zero 还为大家带来了一些思想上的转变，比如人类的经验和知识到底有多合理？真理到底是怎么样的？

在哲学上，知识论就是处理经验、知识与真理之间关系的一门学问，四代目的出现无疑向这一古老的哲学学科提出了新的挑战。

以莱布尼茨为代表的天赋论流派就认为，真理本就存在于单子（或者别的哲学本体）中，人们不过是从单子内获取本就存在的知识。

这样的观点在 AlphaGo Zero 看来显然是不正确的。一来人们普遍认为人工智能不具备自我意识，那么它们自然不可能从单子内获取知识，而来它们的成绩表明，它们比人类更接近围棋的真理。一个不具备获取知识能力的东西，比人类更先获取到更全面的知识，这对天赋论来说无疑是一个概念上的挑战。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal17al.jpg)

同时，Zero 还对人类经验的有效性造成了冲击。它似乎告诉我们一件其实人类早就知道的事实：**人类的经验只能覆盖很小的一部分现实，死抱着经验不放，只能把自己圈定在一个越来越窄的小范围里。**

这一显而易见的事实，被一个暂时还不具备真正智能的人工神经网络给指了出来，这就让人不舒服了。

未来会有越来越多的人类经验被以人工智能为代表的 “冰冷的机械” 给推翻，我们是否做好准备了呢？

如果人工智能通过做实验，研究出了人类从来不曾想到过的物理理论和创造生命的方式；或是通过研究全球金融市场，发明了更快更高效的工具和策略，从而可以从人类金融市场赚取巨量的资金；或是自行设计无人驾驶汽车，甚至分析人类历史，总结出了一套社会学理论，我们又将如何？

![](https://s3.ifanr.com/wp-content/uploads/2017/10/0lal5al.jpg)

当然，我们暂时不用想太多，因为从金融市场开始的一切，都不存在明确的规则和判定标准，不是现在的 AI 能解决的问题。

但如果未来的第八百代真的做到了上述这些事，人类又是否做好准备接受这突如其来的新时代呢？

**童年的终结带来的，往往都是成年的残酷。**
