标签归档:AlphaGo

简评围棋世纪大战

W020160309499767463096AlphaGo与李世石的世纪大战在3月15日落下了帷幕,李世石终于不敌AlphaGo,最后战成了1:4。其中可圈可点的第四盘,AlphaGo走出奇臭无比的黑79手,并没有像很多IT专家开赛前预测的横扫李世石,把无数“专家”们的脸都打肿了。

甚至有很多国内“专家”开始鼓吹人工智能已经战胜人类,甚至人类将要被人工智能统治等无知言论,让人实在看不下去。做为围棋爱好者和一个普通挨踢工作者,这里可以简单说一下AlphaGo的原理和机制。

AlphaGo是一个通用型人工智能程序?这个恐怕是今年最大的误解。

让我们看看背后的英国团队DeepMind的Aja Huang(黄士杰),从2003年硕士论文开始研究围棋打劫程序,到2011年博士论文研究围棋MCTS算法,一直是各大围棋程序研究的中坚力量,其本人也有业余6段水平。DeepMind的创始人Demis还是一个国际象棋13岁的天才大师。DeepMind团队中其他懂围棋的也不在少数,团队更是从去年就开始请欧洲冠军樊麾做他们的全职围棋顾问。

其所使用的算法,主要可以分为三大块:蒙特卡洛搜索(MCTS),快速走子,和深度神经网络。MCTS是目前非常针对围棋的博弈类搜索算法,快速走子是充分利用围棋定式和规则的在极短时间内下子的算法,深度神经网络是一个获取统计知识的训练学习模型。可以看到,只有深度神经网络勉强算作通用性算法,其余都是相当针对围棋这一课题的专业性特殊算法。

最近深度神经网络炒作的火热,甚至有人认为从深度神经网络就可以发展出真正的智能来了。深度神经网络是统计知识的学习算法,它并不具备逻辑知识,从目前应用来看,可以解决一些图像识别问题,但是离真正的人工智能还有十万八千里。

从对弈结果来看,我们也发现了AlphaGo极大的不足:大局观优秀,计算力不行。一个很尴尬的问题就是,为什么计算机还会计算力不行?这实际上还是因为围棋的棋盘太庞大,如果采用全盘搜索,即使深度再深,对于局部来说也搜不到几步。AlphaGo并不像其它围棋程序一样,在局部战斗的时候会临时缩小搜索范围,产生局部最大化的计算力,因此AlphaGo的局部往往会亏损,反而没有职业棋手算的清楚。

计算力不足导致的另一个严重问题是,一旦涉及到复杂的劫争,就会立刻陷入被动,导致崩盘。从对弈过程来看,AlphaGo有意的避免打劫的出现,是有目共睹的。实际上,大局观和局部计算力是任何一个围棋程序难以取舍的两个难点。要大局观,必须全盘搜索,使得局部计算力有一定缺陷。要计算力,必须在局部问题上加以限制,因此往往不会脱先去争别处的好点。

另一个问题是,自我训练(self-train)可以显著提高水平么?这一点在之前被专家们鼓吹的很凶猛,号称一直训练下去可以得到围棋上帝。实际上自己和自己下得到的谱,一般来说是有瓶颈存在的。在两个估价函数相同的程序看来,因为搜索深度和宽度局限,看不到的棋局依然看不到。随便举个例子,两个6岁小孩对下10000局可以提高到职业9段?只有和比你更厉害的高手对弈才可以显著提高水平。这也是AlphaGo团队请了樊麾去做围棋顾问,特训了几个月的原因所在。

Alp470e92b60339250b849feaf4802f0891haGo解决了围棋问题了么?AlphaGo就是围棋上帝?其实远远没有解决。人类研究围棋算法已有超过百年历史,最近十几年MCTS算法也给围棋程序注入了一股新鲜的活力,极大的提高了围棋程序的水平。然而,围棋由于状态空间的庞大,注定是需要更多更长时间来优化的。甚至如果说要完全“解决”围棋问题,搜索完全部的围棋状态空间,恐怕未来50年都看不到任何希望。

从世界范围来看,AlphaGo的算法改进创新上不见得很优秀,在我看来更像是利用了Google庞大的计算资源(相比之下其它围棋程序的可分配计算资源简直少的可怜)而取得的成果。本次对弈尽管从结果上来看非常的出色,机器程序有史以来第一次战胜了人类职业9段,但在我看来依然有着浓重的商业营销味。

围棋是个大问题,棋盘太大,可能性太大,职业棋手确实有时候都无法评价一步棋的好坏。未来几年,也许发展过后的围棋程序可以帮助职业棋手提高水平增强实力,不过如果要把围棋程序和人工智能生扯在一起,我觉得从目前来看依然是远远不够的。

到目前为止,没有任何迹象表明,深度神经网络对统计知识的学习可以表征人类智能,恰恰相反,深度神经网络其局限性也越来越多的被人了解。智能是非常复杂的统计知识的表征么?智能是什么,其实到现在依然是个谜。