AlphaGo 是否会打劫终于不成为争议了。
但它其实根本就不是一件应当被争议的事。打劫只是围棋中「不得全局同形再现」这一条规则的推论,而这条规则对 AI 来说实现起来再简单不过:只要在搜索决策树的时候,跳过所有已经出现过的局面就好了。
这当然不是说,AlphaGo 的实现细节中一定没有任何针对劫的专门逻辑存在。一些特定的优化也许是有意义的。但是以为 AlphaGo 和人一样,有必要去辨认劫的特性,选择和保存劫材,在多个劫同时存在的局面下做复杂的战略决策,只不过是把人的思维方式错误地套用在遵循完全不同逻辑的神经网络上而已。神经网络自我学习的特性保证了只要让它遵循围棋的基本规则,它完全可以「显得」像是懂得复杂的围棋概念,但这绝不意味着它真的「在乎」这些概念。AlphaGo 的主要作者中的两位 Chris Maddison 和 Aja Huang 在他们 2015 年发表过的一篇论文 Move Evaluation in Go Using Deep Convolutional Neural Networks 中写过这样一段话(原文为英文,以下是我的翻译):
很明显,神经网络内在地理解了围棋的许多深奥的层面,包括好形,布局,定式,手筋,劫争,实地,虚空。令人惊异的是这样一个单独、统一、直接的架构就能把围棋的元素掌握到这个程度,而不需要任何明确的先导。
归根结底,劫是一个完全人为构造的概念。人们用它来描述自己的战略,建构自己的思考模式,就像别的围棋术语一样。但它只是刻画,并非本质。如果 AlphaGo 有意识,它也许会在面对人类的询问时说:噢,原来你把我走的这一步叫做打劫啊。
但这是人类的缺陷么?我们是否是在把一个本来应该用纯粹的计算解决的问题毫无必要地归纳于概念,然后又让自己的思维囿于这些概念而作茧自缚呢?
恰恰相反。能够迅速建立起高级抽象的概念,然后用它来简化和指引决策,这是人类在千百万年间进化出的伟大能力,今天的人工智能还远远不能望其项背。借助这些抽象观念,人们得以把全局问题分解为一系列局部的可以简明描述和推理的子问题,做出也许未必在数值上严格最优但是相当接近最优的判断,从而取代人工智能需要耗费海量计算才能作出的决策。更重要的是,这些抽象观念可以让一个人从极少数样本中辨认本质,总结经验,汲取教训,获得成长。一个棋手从观摩一盘棋中得到的教益,可以多于 AlphaGo 千万盘自我对局。AlphaGo 的神经网络自我反馈训练虽然有效,但是盲目。而人们知道自己要学的是什么。
这是人类智能最耀眼的优势之一。
这引出了下面进一步的问题:这两种思维方式是否有可能对接?能不能让 AlphaGo 把自己的决策过程翻译为人类可以理解的概念和语言呢?
这件事在应用上的潜力显而易见(用人工智能来辅助教学,当然不限于围棋),但更重要的是它在理论上的挑战。AlphaGo 的决策过程是个黑箱,我们能够提炼出它用来提取棋局特征的元素,但无法直接理解它们意味着什么。我们不知道它们如何对应于人所熟悉的概念,或者在那里是否存在人们尚未总结出的新知识。我们当然可以看到它最终的结论,例如一步棋是好是坏,可是仅有结论并没有太多用处。
但这里仍然有做文章的余地。AlphaGo 可以看做是一个记录了自己每一次神经脉冲细节的人工大脑,而机器学习的原理也可以应用在这些海量的记录数据本身之上。不难设想,也许可以训练出另一个神经网络来识别出这些数据中对应于人类高级概念的特征,从而设法把 AlphaGo 的决策过程拆解和翻译为人类熟悉的观念模块。如果可以实现这一点,人类就可以更直观地理解 AlphaGo。
我不知道这能否实现,但我希望可以。那将是一个重大的飞跃。
到那时,我们也许就可以看到人类棋手和 AlphaGo 在真正的意义上「复盘」了。