自从去年 AlphaGo 完虐李世乭,深度学习火了。但似乎没人说得清它的原理,只是把它当作一个黑箱来使。有人说,深度学习就是一个非线性分类器[1]?有人说,深度学习是对人脑的模拟[2]……但我觉得都没有捅透那层窗户纸。
当读完 Jeff Hawkins 的《论智能》[3],「就是它了!」。而我惊奇地发现,原书竟是 2004 年出版的!我怕自己读了本假书,或是某个美国民科的著作,特意到豆瓣、知乎上查了下,发现几乎每个看过这本书的人都对其理论啧啧称赞。但奇怪的是,似乎没人肯替它站台,这套理论的影响止步于此,好像大家都在刻意掩饰自己看过这本秘笈。它明明已经完整解释了人脑智能的运作机制了啊!注意是 Real Intelligence ,而不仅仅是 Artificial Intelligence !!!
三个洞见
比起绝大多数脑科学论文,作者的洞见简单得多,也深刻得多:
长久以来,由于我们没有能力从内部去观察思维,所以人们总是把「智能」等同为「表现出智能的行为」。但当我们看书时,在外人看来并没有任何变化,而我们自己知道,这期间产生了无数的联想、顿悟、回忆。所以,「理解」是无法通过外部行为来测量的,它是一个内在度量的指标。
从草履虫到人类,大自然会为每一种生物分别设计一套智能机制,还是沿用一套机制,亦或是从某一代开始出现某种全新的智能机制,并沿用至今(那么,最先产生这套智能机制的又是什么物种呢?)?我们所说的智能,是人类所独有,还是生物的普遍特征(只是多寡之别)?而作者相信,智能不可能是上帝专为人类而设计的,它一定来自大自然的某种惯用伎俩。
大脑皮层,不管是结构上还是功能上,都有着相同的构造/机理(严格来说,这不算作者的洞见,而是早在 1978 年由 Vernon Mountcastle 发现的)。
由这三个洞见出发,自然而然地导向了以下疑问:
如果智能不是由行为定义的,那该如何定义它?
向前看,智能是如何演化而来的?
向内看,大脑皮层的结构是如何捕捉这个世界的结构的?
简单地说,作者的结论是:
智能并没有人们想象的那么玄乎,它不过是一种「预测未来的能力」罢了。
这些预测的实质,不过是「生物的应激性」在「生物自平衡机制」&「环境压力」下产生的副产品。
智能的核心是某种「稳定不变的东西」。而这得益于大脑皮层同质的层级结构。
下面,我们就来看看作者是怎么从那三个简单的洞见一步步推测出智能的本质的。
生命的秋千
小到人体,大到经济系统,复杂系统内都有着一种消减冲击、使系统回归稳态的类似机制。血糖浓度低了,胰高血糖素分泌会增加,拉高血糖;而血糖高了,胰岛素分泌会增加,拉低血糖。通过调节这对激素,系统竭力让血糖维持在某一范围内。这种自稳态机制出现在生命的各个角落,保持着生命的自我平衡[4]。
这就像一只「看不见的手」,总是想推开挤压,同时把「逃兵」抓回来。这只「看不见的手」在我们大脑中编织了无数「正确的位置」(用脑科学家的黑话说就是「恒定表征」)。一旦偏离,我们就开始警觉起来,并调动多个系统联合应对。举个书中的例子,一个球飞过来,我们并不是去计算它的弹道、落点,而是指挥肢体相应调整,直到抓住来球。这套调整算法就是「预测」。从这个事例看,人们在接球这件事上表现出的智能,和草履虫向着食物划动所展现的应激性,又有什么本质的分别呢?
为什么说「预测」是智能的基础?
平常,人们理解的「预测」步子迈得太大了,就好比从一发球就要精准地算出其落点,而人脑的「预测」更像是「应激」,球动我动,一点点微调。现代社会发展得太快,让我们看不清概念的历史面貌,因而更容易被表象的迷雾困惑。当我们走回历史的起点,迷雾自然散去。智能,于我们最大的益处是什么?并非创造什么,而是生存下去。人类无时无刻不在「生存」还是「发展」之间纠结。但很少有人看到:发展,不过是为了应对未知的生存挑战。
我们应该怎么去定义智能呢?也许演化的历史能告诉我们更多。智能,是帮助人类生存下去的一种能力:是让我们可以在溪流中叉到游动的鱼儿的能力,是让我们可以只靠一幅模糊的图像就判断出是朋友还是猛兽……我们应该去研究那些「如何保持平衡」之类的问题,而不是什么弹道求解问题,那不是大自然的进化目标,自然也得不到什么大脑的机制。
所有生存问题都可以归结为一个元问题:如何识别出这个问题中的那些个恒定不变的东西。比如:溪流中的鱼、回家的方向……如果说智能中还存在别的成分,比如:想象、创造工具、解决问题,都可以规约到某种抽象手段上。归根结底,人类解决一切问题的方法只有一个——运用抽象,在更高维度上调和矛盾。
一切绕不开「恒定表征」(invariant representations)。
抽象的本质
就如同人们在认可了「负数」这一概念之后,终于能将「加法」&「减法」这两种表象上完全不同(一个增加,一个减少)的运算,统一为「整数域上的加法」。从更高的维度调和矛盾,这正是大脑皮层的构造方式,也是其工作原理。不断在现象中找到共同点,提取出来,取个名字;这些名字又成为了上一层抽象的基石(或者叫「词汇」)。这样一层一层,直至得到那个智能的圣杯——恒定表征。
举个例子,我们是如何识别边缘[5]的呢?
我们先来考察一小块 3×3 的视网膜,分别标记为 #1~#9 (如下图所示)。当一条竖线出现时(#1, #4, #7 均被激活),电信号传递到第二层。第二层的每一个神经元,分别响应视网膜上一组细胞被激活的情况。比如:第二层最左边的那片神经元,响应的是单个视网膜细胞被激活的情况。再比如:第二层左二那片神经元,响应的是任意两个视网膜细胞被激活的情况。以此类推……
如果我们把时间的因素考虑进去,假设信号并不会马上消失,而是随着时间衰减,那么只要时间够短,输入 (#1, #4, #7)、(#2, #5, #8)、(#3, #6, #9) 这三组刺激,就会在第三层激活某个神经元,代表「发现一条竖线」。
看,其实每一个神经元都是一个「单词」(或是「概念」/「抽象」/「特征」)。只不过低层神经元描述的「单词」抽象程度更低。比如:第二层那个 #(1, 4, 7) 神经元代表的是「在视网膜的最左边出现一条竖线」,而其上层那个则没有「在视网膜的最左边」这一约束。
记忆的角色
神经元可以在 5 毫秒内完成信息的收集-整合-输出,相当于运算速度为每秒 200 次。人类可以在半秒内(相当于 100 步)识别图像、作出选择…… 100 步,机器可做不到。在人类已知的算法里面,也许只有「打表」(把答案事先存储在记忆中,用时并不作计算,而只是提取)可以做到。所以,整个大脑皮层就是一个记忆系统,而非什么计算机。
深度学习做对了什么?
多层网络,提供了逐层抽象的通道。如今,图像识别系统正是这么做的:底层识别边缘,而后识别特定形状,再高层识别某种特征……
卷积,提供了获得「恒定表征」的手段。
还有什么我们不知道?
当我们想要提取某段记忆时,往往只需要只言片语就行了。也就是说,记忆似乎是以一种全息的形式存储的。任何片段都包含了全部。
还有,我们依然不知道大脑是怎么在 100 步内完成决策的。我们也不知道为什么会有那么多反馈连接?轴突 v.s. 树突在功能上有什么分别?……
现在让我们回过头来看作者的三个洞见,用黑话再讲一遍就是:
理解,是对「大脑如何形成记忆,并利用这些记忆作出预测」的一个内部度量。
预测,是某种自我调节机制的副产品。
大脑皮层在外表 & 结构上存在着惊人的同质性。也就是说,大脑皮层使用相同的计算方式来完成它的一切功能。人类展现出来的所有智能(视觉、听觉、肢体运动……)都是基于一套统一的算法。
人类正在慢慢接近世界的本质——物质只是承载信息模式的载体。人脑之外的器官都只是保障这一使命的给养舰队。