./t20161219_450465_taonews.html
专题
首页  >  专题  >  科技知道

电脑为何下不过围棋高手?

  我是Facebook的智能围棋darkforest的负责人和第一作者。现在我们最新的darkfmcts3 在KGS上有5段,和目前最好的软件相当,让四子与一位韩国的职业六段一胜一负。收到的评论都是说“下得非常像人”,大局观强,屡见好手,当然偶尔也犯低级错误。

我们用了DCNN(深度卷积神经网络)进行模式匹配再加MCTS(蒙特卡罗树)搜索的办法。DCNN其实要比简单的开局库或者搜索引擎要厉害得多,在看过十几万局棋之后,它会有比较强的泛化能力,或者通俗地说是举一反三的能力。围棋虽说是“千古无同局”,但在局部及开局还是有很多相似或者相同的模式会反复出现,DCNN能够抓住这些模式并且在实战中灵活运用。完全不用搜索的DCNN挂在KGS上就有3段的水平,这是非常让人吃惊的,甚至比我们通过搜索能达到5段更让人吃惊,我们只在这个项目上花了五个月的时间,若是用传统方法来做这个模式识别,估计耗时几年1k都不一定上得了。

单单拿游戏的状态个数去比较它们的难度,是不准确的。有很多状态空间广阔但是易解的例子。比如状态空间的估值函数很平滑,用一个简单的函数就容易拟合,在这种情况下即使状态数目是无穷大,问题也不难。

让计算机投篮,出手的方向、速度、篮球的旋转,每个变量都是连续的,因而有无限可能,但是计算机试几次之后很快就能找到最优解。又比如状态空间存在可以用数学表达的全局结构,这样用贪心法或者动态规划也可以很快地解决,其难度和状态个数就无关。

比如说棋盘上放些黑子作障碍物,要求白子从左上角走到右下角,哪怕是千路万路棋盘,尽管可能的路径有指数条,一个最短路径搜索也就可以搞定了。

围棋难的地方在于它的估值函数非常不平滑,差一个子盘面就可能天翻地覆,同时状态空间大,也没有全局的结构。这两点加起来,迫使目前计算机只能用穷举法并且因此进展缓慢。但人能下得好,能在几百个选择中知道哪几个位置值得考虑,说明它的估值函数是有规律的。这些规律远远不是几条简单公式所能概括,但所需的信息量还是要比状态空间本身的数目要少得多(得多)。现在的深度学习能在大量对局中找到这样的一些规律,但仍然没有人脑厉害。这一方面说明我们现在算法的局限性,另一方面它还有巨大的发展空间。

一句话,穷举状态并不是最终目标,就算以后超超级计算机能做到这一点,也不能说解决了人工智能。只有找到能学出规律的学习算法,才是解决问题的根本手段。像NP-hard的问题也是如此,不太可能会在多项式时间内被一个简单算法解决,也不太可能需要超级计算机穷举解决,而是会被过去的大量经验加上适当搜索解决。这个方向最近开始有一些文章了,我觉得这是个有趣的方向。

大家都知道创造是需要素材的,从机器学习的角度来说,素材就是给自己大脑的训练样本,在从这些样本中抽取别人不曾抽取到的共同点,找到潜在的联系及局限性,创造力就会自然而然地产生。

现在机器不如人的地方就是它抽取的效率太低,需要大量的样本,而人脑在过去经验加上更有效算法的基础上,只要几个样本就可以做到。如何让计算机也做到这一点?我们还需要进一步的研究。

作者:田渊栋,美国卡耐基梅隆大学机器人系博士

本文来自:《科技生活》周刊
特别声明:本文转载仅仅是出于科普传播信息的需要,并不意味着代表本网站观点或证实其内容的真实性;如其他媒体、网站或个人从本网站转载使用,须保留本网站注明的“来源”,并自负版权等法律责任;作者如果不希望被转载或其它相关事宜,请与我们接洽。
[责任编辑:北京科技报_1]
分享到:
文章排行榜
©2011-2025
./t20161219_450465_taonews.html