# 围棋：电脑战胜人类有多难？

- 作者：积木
- 发布时间：2014-03-28 10:25
- 分类：公司
- 原文：https://www.ifanr.com/410201

[![Go](https://s3.ifanr.com/wp-content/uploads/2014/03/Go.jpg)](http://www.ifanr.com/410201/go-2)

1997 年，在 IBM 的深蓝战胜国际象棋世界冠军 Garry Kasparov 之后，时代杂志提出了一项新的挑战：让计算机与人类下围棋吧，它获胜的机会很小。“计算机要在围棋上战胜人类，还要再过一百年，甚至更长的时间”，时代杂志的文章中这些写道。

时代杂志的预言似乎要落空了。在去年 3 月份举办的日本电圣战上，电脑围棋 Crazy Stone 打败了石田芳夫，一位获得过五次冠军的围棋九段高手。公平地来说，这并不是一个“深蓝”时刻，因为石田芳夫让了四子，而且他也不再处于巅峰时期。不过，这仍然是计算机取得的一项了不起的成就。石田芳夫在失败后，称 Crazy Stone 为“天才”。

目前来说，编写电脑围棋的都是个体程序员或者小团队。Crazy Stone 就是一个人的作品，其开发者是法国里尔第三大学的计算机科学教授 Remi Coulom。为什么大公司没有兴趣投入呢？Google Research 的 Peter Norvig 对[纽约客网站](http://www.newyorker.com/online/blogs/elements/2014/03/the-electronic-holy-war.html)说，即使是邀请了大量专家，投入了百倍的硬件，设计了高明的软件架构，采用了正确的机器学习算法，结合神经科学方面的成就，也未必能够使计算机在围棋方面达到“深蓝”的成就。

为什么计算机更擅长国际象棋，而在围棋上遭遇了困难呢？这与围棋的游戏规则有关。在围棋中，有一条规则是，当一方的棋子被另一方包围后，就要从棋盘上撤下这些棋子。问题在于，当你去包围对方棋子的时候，你下的棋子或许也正在被对方包围。在任何一个给定的时刻，计算机很难确定一片棋子的状态，也就难以确定那一方是处于领先地位。

在最初的时候，人们试图让计算机掌握下围棋的策略，把格言和谚语转换为计算机可以理解的代码，另一些人则试图让机器学习人脑，神经学家们对围棋高手们的大脑进行扫描。但是，人类大脑所最擅长的任务却是人工智能中最难解决的问题，比如模式辨识、学习能力和直觉。这些早期的研究并没有什么突破性成就。

Crazy Stone 采用了蒙特卡罗算法。这种计算机随机生成算法是 70 年前“曼哈顿计划”的产物。在考虑某一步棋的时候，计算机将以这一步开始，随机计算接下来数以百万的棋局变化。计算机会挑选出最有可能实现其模拟胜利的那一步棋。Google 的 Norvig 解释说，这种算法是一个重要的创新，“在 20 步之后，我们不能肯定地说谁会赢得比赛，因此我们用了蒙特卡罗算法，把游戏玩到最后，然后我们就能确定谁获胜。我们将这个过程重复百万次，每一次的选择都会更好，因为前面步骤的胜利和失败都给出了反馈。” 在与石田芳夫的对战中，Crazy Stone 一共玩了 360 万场随机的游戏。

今年，Crazy Stone 的对手是依田纪基，一位往棋盘上猛砸棋子，使对手心情紧张的人，这一招对 Crazy Stone 显然不管用。这次仍然是人类让了四子。Crazy Stone 最终以 2.5 目胜。在比赛结束后，依田纪基说，他对于 Crazy Stone 表示感激，因为它到最后的时候不再咄咄逼人了。这是随机算法的结果，还是它开始对人类表示同情了？

题图来自：[wikipedia](http://en.wikipedia.org/wiki/Go_and_mathematics)
