万字对谈MIT人工智能传奇人物Tomaso Poggio

本文记录了MIT专家保罗与人工智能先驱托马索·波焦(Tomaso Poggio)的深度对话,探讨了当前AI领域处于“伏打时代”的工程实践阶段,亟需建立如麦克斯韦电磁学般的理论基石。波焦提出了“稀疏组合性”等核心原则,解释了深度神经网络为何必要,并对比了数学抽象与计算机科学中函数构建的本质差异。对话还回顾了机器学习从浅层网络到深度学习的范式转变,以及神经科学理论与人工智能算法之间的深刻联系。

保罗:今天这位嘉宾的履历实在太过丰富,我恐怕难以在几句话中介绍清楚。他是托马索·波焦(Tomaso Poggio)。至于他的头衔,实在太多了。 他是麻省理工学院脑与认知科学系的Eugene McDermott讲席教授,麦戈文脑科学研究所研究员,麻省理工学院计算机科学与人工智能实验室(CSAIL)的成员。此外,他还分别是生物与计算学习中心以及脑、心智与机器中心两个研究中心的负责人。 托马索发表论文的年头,比我的年纪还要大,而我也早已不再是初出茅庐的毛头小子了。在谷歌学术上,他最早的一篇论文发表于1972年,刊登在Kybernetik上。论文题目是《时间记忆与视动反应的全息特性》(Holographic Aspects of Temporal Memory and Optomotor Responses)。 简而言之,他在这条路上已深耕多年。他究竟在探寻什么?答案是智能背后的理论基石。其中的关键词在于“理论”,托马索始终对智能背后的理论原则感兴趣。为此,他将人工智能与大脑的运作机制并置研究。 我们今天拥有非常出色的人工智能。这样的系统已经存在一段时间,从最初并不成熟,发展到如今性能惊人,并且仍在不断进步。但从根本上讲,我们依然没有看透它是如何运作的。人工智能的早期发展当然有理论基础作为起点。但近年来这波汹涌的AI浪潮,本质上是由工程实践驱动的,在于构建和扩展系统,而不是在深入理解其原理。 托马索用一个历史类比,来说明当前人工智能领域工程与理论之间的关系。他认为,我们现在的处境有点像当年伏打与麦克斯韦之间的那段时期。当年,亚历山德罗·伏打(Alessandro Volta)发明第一块电池之后,人类第一次获得了持续稳定的电源。随之而来的是大量应用的出现,人们开始利用电,并逐渐将其工程化。但那时,人们并不真正理解电的本质。直到多年以后,詹姆斯·麦克斯韦(James Clerk Maxwell)提出电磁方程组,系统建立起电磁学理论,人类才真正理解电磁现象的规律。正是这套理论,使后来一系列技术得以发展,包括计算机以及现代人工智能。在托马索看来,今天的人工智能,很可能正处在伏打与麦克斯韦之间的阶段。 在那个时期,从工程突破到理论成熟,中间经历了很多年。当然,当时的信息传播远比今天缓慢。正如托马索稍后提到的,那时消息主要靠马匹传递。但即便如此,从电池被发明,到相关应用逐步出现,再到人们真正理解电为何以及如何运作,这之间依然相隔多年。他认为,我们今天正处在类似的阶段。因此,他多年来孜孜不倦地钻研那些理论原则,试图以此照亮我们对智能运作机制的理解之路。 今天,我们会讨论他近年来一直在研究的一些理论原则。在他看来,如果想构建一个高效、可计算的函数系统,并让这些函数组合出一个能支撑智能行为的泛化计算体系,那么这些原则在理论上是非常重要的。 如果要给这些原则一个名称,其中一个则是“稀疏组合性”(sparse compositionality)。它的含义是,如果你希望高效地计算出某种智能行为,那么这个系统需要由许多相对简单的函数构成。这里的“简单”,指的是每一个函数本身只依赖于少量变量。当系统具备这样的结构,由多个低维函数组合而成时,从理论上说,它更有可能实现泛化。 这也解释了为什么深度神经网络需要“深度”才能发挥作用。它依赖于大量简单函数的重复与组合。这种结构听起来有些像大脑的新皮层。我们在对话中也讨论了,这些原则是否只适用于人工智能和深度学习,还是同样适用于我们的大脑。此外,对话中我们还谈到了他是如何发展出这些理论,以及他为何选择从理论角度理解智能的。 在这次对话中,我尤其享受于托马索分享他数十年来与不同领域杰出人物合作、研究有趣问题的经历,而且他至今仍在继续这样的工作。我们这次对谈,只谈到了托马索多年研究中的一小部分,从而了解到了他工作的一个侧面。下面,让我们正式开始。 学习:通向智能理论的真正入口 保罗:大多数科学家在科研生涯中都会经历乐观与悲观的起伏,尤其是在早期阶段。也许那正是关键所在,我也说不太准。这种起伏既体现在对自己研究进展的判断上,也体现在对整个领域前景的看法上。 举个例子,当年你和大卫·马尔(David Marr)提出分析层级框架,后来又把“学习”加入为第四个层级。我想,当时你应该是乐观的,觉得这会真正开启一个新的维度,也可能会加快研究进展。如果大家意识到,学习才是需要关注的重点,或许整个领域都会因此受益。而且,从你的研究轨迹和做事方式来看,,你似乎是一个无论境遇如何,都能稳步向前的人。你是个例外吗?还是说,在这方面你也和常人无异,同样会经历这种起伏? 托马索:我也会经历那种起伏。有些起伏很大,可能持续几个月,甚至几年。也有小的,日常的波动,就像是今天乐观,明天又悲观的表现。“我能证明这个定理,我已经证明了。”然后又发现,“不对,我错了。”诸如此类。 至于把“学习”作为第四个层级加入框架,那是后来回顾时的说法。其实在很多年之前,我已经意识到了学习的重要性。 我第一篇关于机器学习的论文,大概是在1981年左右,讨论的是非线性学习。不过当时我决定先去研究其他问题,比如人类视觉、立体视觉,我们如何看到三维世界。在真正回到学习这个主题之前,大约花了十年时间做这些研究。可以说,关于学习的研究我是晚了一些才重新展开的。 保罗:是因为学习这个问题更难,还是因为那些其他的问题更有吸引力呢? 托马索:主要是那些问题更容易下手,而学习确实更具挑战性、更难一些。而且我一直有一种偏好,也许是错误的偏好。回头看,我总希望在做应用或演示之前,先在理论层面理解一种新方法。这更多是一种研究取向的差异,有些人倾向于先尝试,如果有效,再去发展理论,或者干脆不发展理论。比如杰弗里·辛顿(Geoffrey Hinton)就更偏向那种做法,而我恰好相反。 有时候,这种理论优先的做法可能限制了我原本可以更早尝试的事情,但没办法,这就是我的思考方式。直到1990年,我建立起一个机器学习的理论框架之后,才开始把学习方法应用到各种问题上,比如计算机视觉、计算机图形学、基因芯片中的癌症检测、文本分类、自动驾驶,几乎涵盖了今天人们仍在研究的许多方向。当时使用的主要是浅层网络,比如径向基函数网络和核方法,这些90年代的技术。 保罗:那时候计算资源有限,网络规模也更小,所以实现起来更困难。但从某种意义上说,那些方法反而更有理论基础,是吗? 托马索:是的。1990年,我和一位出色的合作者费德里科·吉罗西(Federico Girosi)一起写了一篇论文,讨论了这种浅层网络的理论。那实际上是一套关于“核机器”(kernel machines)的理论,只是当时这个术语还没有被正式使用。在有了这套理论之后,我才开始把学习方法应用到遗传学、视觉、图形学等问题上。 保罗:也就是说,在有了理论之后,你才觉得可以自由地去做那些应用。 托马索:是的。 保罗:我明白,这是你的风格。 托马索:没错。从某种意义上说,我对此有些遗憾。也许后来我学到的一点教训,和伏打的故事有关。 这只是一个比喻,不必过于字面理解。正如那句话所说,历史不会简单重复,但有时会以相似的方式出现。伏打与电学的这个类比,本身就值得思考。很多人或许没有意识到,在1800年之前,也就是两百多年前,当时正值拿破仑时代,信息传播的速度基本上就是马匹的速度。 在那之前,人类历史上信息传播从未比马更快。有一些有趣的历史书信,记录了人们得知君士坦丁堡陷落时的反应。这在当时的基督教世界是一件重要事件,大约发生在1453年。人们在巴黎、维也纳之间互相通信。在巴黎,有人写信问:“你听说了吗?君士坦丁堡被土耳其人攻陷了。”在马德里,也有类似的书信。那时,我们甚至可以追踪信息传播所花费的时间:传到维也纳用了三周,到巴黎用了四周,到马德里用了五周。花费的时间,差不多就是一匹马连续奔跑所需的时间。 保罗:前提是天气还得不错。 托马索:是的,前提是天气好。1800年,伏打的时代,也是拿破仑的时代。在那之前,人们对电的认识基本上只停留在闪电这样的自然现象上。直到伏打发明了第一种能够持续产生电流的装置,科学家第一次可以在实验室里系统地研究电现象。随之而来的是一连串发现,几乎可以说是一场科学的“雪崩”。接下来的十五到二十年里,电化学迅速发展。随后,人们陆续提出了电学的一系列基本定律,比如欧姆定律、安培的电磁理论,法拉第发明了发电机和电动机,厄斯特揭示了电与磁之间的联系。所有这些成果,最终在1864年达到高潮。那一年,麦克斯韦提出了著名的四个电磁方程,系统地建立起电磁学理论。 保罗:是的,他建立了一整套理论。 托马索:这可是花了整整六十年。 保罗:而且还是按“马车时代”的速度算的。 托马索:是的,不过那依然是很长的一段时间。在那六十年里,在麦克斯韦出现之前,人们其实并不知道电究竟是什么。但这并没有妨碍电动机、发电机等重要应用的发展。这正是我想说的启示。在人工智能领域,我们今天很可能也正处在伏打与麦克斯韦之间的某个阶段。只是,我们究竟走到哪一步了,很难判断。 保罗:是的,我们现在可比马跑得快多了。我听你讲过这个类比。不过我也听你在别的场合提到过另一种可能:也许人工智能并不需要自己的“麦克斯韦”,也许并不一定需要一套统一理论。可你自己又在努力推动理论的发展。这两种说法怎么协调?我很难想象你真的相信“不需要理论”。你这么说,是不是在承认某种你自己都不信的可能性? 托马索:是的。某种程度上,我确实承认了一种自己并不真正相信的可能性。不过,我还是希望我们需要理论,而且最终也会有理论。至于它会有多完整,我不知道。但我几乎可以肯定,它不会像麦克斯韦那样,用四个方程就统一一切。它更可能是一组关于“智能的基本原则”。 就像分子生物学那样。我们并没有几条简单的方程来解释生命,但我们有一些根本性的原则。比如DNA的双螺旋结构如何复制和传递生物信息。这本身就是一个极其优雅的原理。我想,关于智能的理论可能也会类似。它们是基础性原则,但未必会像电磁学那样,形成一套高度封闭、完整的数学体系。这是我的期待。当然,也始终存在另一种可能:也许机器学习系统、大型语言模型,或者它们的继任者,会自己发展出某种理论,而我们却未必能够理解它。 保罗:你刚才提到“原则”,这一点很有意思。我最近和一位神经生理学家亚历克斯·迈耶(Alex Meyer)聊过。他最近对“整合信息理论”(Integrated Information Theory)非常着迷,认为它可能解释意识。他之所以着迷,是因为这套理论有一整套严格的数学形式。它似乎让人看到一种可能,也许我们可以为意识建立数学定律。而这种形式化的表达,往往会让科学家特别有满足感。 当然,进化论、分子生物学、DNA双螺旋,这些都是重要的原则,但它们不像自然定律那样有精确的数学表达。某种程度上,我们这些科学家似乎只有在把现象写成数学关系时,才真正感到安心。我本来想说“简化”,但也许更准确的词是“形式化”。那么,你在研究学习理论和机器学习理论时,追求的也是这种形式化的原则吗? 托马索:我想是的。我追求的确实是原则,而且是具有数学结构的原则。 保罗:我们接下来要谈的“稀疏性”和“组合性”,本质上也是原则。但要对它们作出具体而严谨的陈述,就必须通过定理来证明。而这正是你一直在做的事情。 那这和“形式化的数学定律”有什么区别?它们算是原则,还是定律? 托马索:像“稀疏组合性”(sparse compositionality)这样的原则,是一个很有意思的例子,我们稍后可以详细讨论。我们可以证明,如果一个函数,或者完成某项任务的能力,是由图灵机在非指数时间内可计算的,那么它必然具有组合稀疏的结构。这是可以严格证明的。这意味着,任何运行在计算机上的系统,比如ChatGPT,都必然是组合稀疏的,因为它们本质上是在图灵机上实现的。但这并不意味着,人脑所做的一切也都是组合稀疏的。因为我们并不知道,大脑的全部能力是否都可以被机器完全复现。大多数人相信可以,不过—— 保罗:我明白,这是你的风格。你自己呢? 托马索:我并不完全相信。这个问题我们可以稍后再谈。这里还有一个关键点。所谓“可计算”,并不是指在理论上可以算出来,而是指“高效可计算”。也就是说,它必须能够在合理时间内算完,而不是说要算上个宇宙年龄那么久,对吧? 所谓“合理时间”。换个说法,有些物理过程,比如混沌系统,例如天气的形成和演化,很可能并不是“高效图灵可计算”的。原因在于,如果你想在未来保持一个固定的预测窗口,也就是说,希望预测的时间范围不随着时间推进而缩短,那么你就必须以指数级的方式提高对初始条件的测量精度。从理论上讲,它当然是可计算的。但它并不是“高效图灵可计算”的。这里存在一个所谓的“可预测窗口”。顺便说一句,这也许和意识的问题有关。也许意识本身并不是图灵可计算的,就像我们无法以任意精度预测三天后的天气一样。 保罗:我几乎无法想象意识是图灵可计算的。亚历克斯·迈耶有一个观点。他希望在某种数学结构与“现象意识”的属性之间建立一种同构关系,比如主观体验,也就是所谓的“感质”(qualia)。他刻意把意识和认知区分开来。因为认知可以被理解为函数。人工智能做的事情、神经网络实现的计算,本质上都是函数映射。但“同构”与“函数”是两种完全不同的概念。这之间有很大的差别。 托马索:是的。在我看来,你有一类函数,它们本质上是可组合的,也能被计算机计算;而另一类函数则太复杂了,没办法在合理的时间内算出来。 保罗:学习本身也是一种函数。自从你把“学习”作为第四个分析层级提出之后,它是不是就成了你长期关注的核心问题?你几乎一直在研究它。我真正想问的是,这些年你对“学习”的看法有没有发生变化?有没有哪些你过去深信不疑、现在却不再认同的观点?还是说,你的思路一直都是稳步推进,并没有大的转折? 托马索:我一直认为,学习是真正通向智能的大门。改变的,其实不是我对学习重要性的看法,而是计算机科学界对它的态度。很长一段时间,我一直在对计算机系的同事们说,学习至关重要。但大概是在2010年左右,他们才开始认真听我说,至少在麻省理工学院是这样。 保罗:他们为什么不愿意接受?当时的症结在哪里? 托马索:这个问题很有意思。其实,如果从历史上看,这种情况是有有迹可循的。自1950年代左右计算机科学形成以来,这个领域的基本研究范式一直是“编程”。 保罗:算法,以算法为核心的编程。 托马索:对。你告诉计算机该做什么。哪怕任务再复杂,本质上也是由人来写程序、给出明确的指令。研究者的职责,就是写出一个足够聪明的程序。这种模式大概一直持续到2000年前后,甚至2010年左右。但如果看看今天的计算机科学,它已经完全变了。几乎所有方向都围绕机器学习展开。过去,编译器、程序语言、机器人、计算机视觉、自然语言处理,这些都是彼此独立的领域,各自为政。现在几乎都被机器学习统一了。早在1990年左右,我就说过,机器学习会成为计算机科学的“通用语言”。只是,这个转变确实花了很长时间。 我记得在1980年代,我们在麻省理工学院已在使用电子邮件。那时我还担任一家很有意思的小公司的顾问,这家公司叫“思维机器公司”(Thinking Machines)。他们开发了一种叫“连接机器”(Connection Machine)的超级计算机,内部有一百万个非常简单的处理单元。当时我是他们的企业研究员。另一位企业研究员是理查德·费曼(Richard Feynman)。 保罗:你的老朋友吗? 托马索:对,还有史蒂芬·沃尔夫勒姆(Stephen Wolfram)也是。 当时公司里还有几位同样很有意思的人。那时候,在我看来,电子邮件显然是未来的发展方向。但人们又过了整整15年才真正停用传真机。 保罗:上个月我还被迫发了次传真,我完全搞不懂为什么还要用这玩意儿。 托马索:当时我基本都放弃电子邮件会普及的希望了,结果它当然还是来了。 保罗:到那时,你可能已经开始用Slack*之类的工具了吧。神经网络其实一直都在。PDP学派,也就是“并行分布式处理”那一批研究者,多年来一直在强调学习的重要性。问题在于多层网络的训练,尤其是反向传播算法(backpropagation),曾经被认为太慢、效率不高。当然,情况在2012年发生了改变。那一年,在ImageNet数据集上的突破显著降低了错误率。所以,并不是神经网络不存在,而是它们真正发挥威力,经历了一个漫长的过程。 *译者注:Slack是一种企业内部即时通讯与协作工具,在科技公司和研究团队中被广泛使用。 托马索:神经网络确实一直存在。但我当时是个怀疑者。从某种意义上说,我错了。 保罗:错在哪儿? 托马索:在神经网络的问题上。我当时主要使用的是浅层神经网络,而不是深度网络。因为在2008年,甚至2010年之前,浅层网络的表现其实并不比深度网络差。这牵涉到另一个话题,就是技术如何影响思想。我们常常以为,是理论和算法推动了技术的发展。但很多时候,恰恰是当下的技术条件决定了我们能做什么。什么是可行的,什么是容易实现的,什么又太困难。这些都会在很大程度上影响我们提出什么样的理论,以及采用什么样的算法。 保罗:是的,杨立昆也曾强调过这一点。历史上这样的例子太多了。 托马索:没错。我记得大约在1999年左右,我坐过一辆梅赛德斯在德国斯图加特测试的自动驾驶汽车。 保罗:真的假的? 托马索:是的。那辆车当时可以在斯图加特市中心狭窄的街道上自动行驶。当然,驾驶座上还是有一位司机,双手几乎贴着方向盘,以防万一。后备箱里塞满了计算机设备。我记得,当时有一场为期三天的自动驾驶研讨会,只邀请相关人员参加。最后半天出席的是律师。研讨会结束时,戴姆勒·奔驰的管理层就拍板了:“不搞自动驾驶了,砍掉这个项目。” 保罗:我刚想说两件事。第一,我敢打赌,那辆车的计算系统里肯定没用上福岛邦彦(Kunihiko Fukushima)的“新认知机”模型。 托马索:怎么会?不,其实用到了,因为我们当时做的基本上就是类似的东西。比如,我们训练了一个行人检测系统。当时只用了大约200个样本。以今天的标准来看,这几乎难以想象。从科学研究的角度讲,那个系统表现得相当不错。但从实际应用的角度看,它每十秒钟大约会出现三次错误。虽然按帧数计算,错误率其实并不算高,远远不到每一帧都出错。但在真实驾驶环境中,这样的错误频率显然是不可接受的。无论如何,它都还谈不上真正可用。 保罗:托马索,交个底吧,那天你们到底“撞”了多少人? 托马索:没有撞到真正的人啦。 保罗:我还以为你会说,最后他们承诺“五年内就能实现自动驾驶”,因为科技圈的承诺永远都是“再过五年”。结果你却说他们直接说“不搞了”,看来律师确实起了作用。 托马索:总之,戴姆勒公司内部终止了这个项目。其实挺可惜的,当时他们确实走在最前沿。只是时机太早了。 保罗:你刚才说那辆车,是在1999年左右? 托马索:差不多吧。也许是1997年左右。 保罗:我读过你的自传。当然,在那之前我也已经了解了你很多研究工作。你在书里提到,自己在1980年代初期就开始做目标识别的研究,也就是在当时的场景里,检测行人或物体。这显然和神经网络中的学习问题密切相关。你当时曾怀疑,休伯尔(David Hubel)和维泽尔(Torsten Wiesel)提出的“简单细胞”和“复杂细胞”模型,是否真的能够通过层级组合构成对物体的表征。后来你承认自己错了,并发展出HMAX模型,也就是基于层级结构的目标识别系统。那段时间,你是怎么理解“学习”这个问题的? 托马索:在那个时候,我们所谓的“学习”,其实只发生在最后一层。前面的层级结构负责做特征处理,但这些特征并不是通过复杂的学习得到的,而是用一种很简单的方式构建出来。比如,从图像里随机取一些局部片段作为特征。真正的学习,主要是训练分类器的权重,也就是网络最后一层的参数。 保罗:明白了。 托马索:原因在于,我当时真的不相信“反向传播”在生物学上是合理的。 保罗:你这个怀疑是有道理的。 托马索:从某种意义上说,我当时是对的。但在机器学习的实践层面,我又是错的。我当时是被这个“生物学约束”给绊住了。现在,我们开始有一些新的想法。从神经科学的角度看,这些模型似乎更合理。当然,我不知道它们是不是对的,这还需要实验来检验。但至少,是有可能的。 它未必是严格意义上的反向传播。更像是一种更一般形式的梯度下降。而这种机制,也许可以通过神经元连接的自组织方式自然实现。听起来有点神奇,但未必真的那么神奇。我觉得,这是神经科学里一个非常关键的问题。因为如果我们真的能在大脑里找到某种与反向传播等价的机制,那神经科学和机器学习之间就会建立起一种非常深的联系。到那时,我们就可以看着具体的神经回路、突触结构,说:“哦,这里正在发生这样的计算。” 保罗:这算是个题外话,我稍微跳一下话题。你刚才提到自己在做一些自组织、具备生物可行性的可塑性网络模型。其实这些年也有不少研究在尝试提出“生物学版本”的学习机制,希望在功能上复现反向传播。已经有好几种概念验证方案了,只是它们在多大程度上真正模拟了反向传播,效果各有不同。 我最近读了你的一篇论文,里面几乎全是深度学习理论的术语。我心里在想,“天哪,我也算懂一点,比如流形之类的概念,可一旦进入那些技术细节,就有点跟不上了。”你显然已经完全沉浸在那个世界里。所以我很好奇,你平时思考问题时,更多是在机器学习的框架里思考,还是在生物学习的框架里思考?如果这两者可以区分的话,你的大脑大概是怎么分配的? 托马索:很长一段时间里,大概是五五开。但在过去五年左右,我可能稍微更偏向人工神经网络这一侧。 保罗:是因为那里的数据更充足,更方便做验证吗? 托马索:也不完全是,不单纯因为数据。更主要的原因是,我一直被一个问题困扰:我们到底需不需要一套真正的理论?这两三年来,我越来越觉得,自己可能抓到了一些原则。当然,我并不认为它们是最终答案,更谈不上是最关键的原则。但至少,它们看起来像是理解人工机器学习系统时绕不开的一部分。 为什么浅层理论不够? 深度与组合结构的必要性 保罗:那我们现在就来谈谈这些吧。“稀疏组合性”是你目前关注的核心原则吗? 托马索:它是其中之一。对我来说,它确实解决了一个长期困扰我的问题。正如我之前提到的,我总是需要对正在发生的事情至少有一个理论上的轮廓性的理解。大约在2003年左右,我和一位非常著名的数学家史蒂芬·斯梅尔(Stephen Smale)一起,为美国数学学会写了一篇关于机器学习的综述文章。在那篇文章中,我们比较系统、也相当完整地梳理了浅层网络、核机器等模型的理论基础。 当时在讨论部分,我专门写了几段文字,谈到一个让我始终想不通的难题。按照当时的理论框架,浅层网络已经足够表达我们关心的函数,并不需要多层深度结构。可是从生理学角度看,例如视觉皮层的结构,却明显是多层级组织,而且这些层级似乎具有功能上的重要性。于是问题就出现了。既然浅层理论已经足够,为什么大脑却是分层的。深度到底有什么必要性。这个问题让我卡了很久。在真正愿意去接受并应用深度网络之前,我始终没有想明白这一点。后来我逐渐意识到,“稀疏组合性”很可能正是这个谜题的答案,同时也解释了其他类似的问题。 保罗:我可以想象两种路径。一种是,你先训练深度网络,然后去观察它们的内部表征,从这些表征中总结出某些结构性的规律。另一种是,你从一个更偏理论、更强调原则的角度出发,先思考哪些结构特征在原理上应该是重要的。你的想法是怎么形成的? 托马索:更接近第二种方式。这个想法最初其实是为了回答另一个相关的问题,那就是,为什么卷积神经网络似乎明显优于全连接网络。在卷积网络中,就像视觉皮层一样,每个神经单元只接收一小部分输入,而不是连接到所有输入。举个简单的例子。假设你有大量感光受体,也就是视网膜上的光感受器。第一层中的每一个单元,只会“看到”其中一个很小的局部区域,而不是整个输入图像。 保罗:也就是一个小的局部区域。 托马索:对,就是局部区域。于是我开始思考这样一个问题。假设我们有一个多变量函数。为了简单起见,我们设它有八个输入变量,记作X1、X2、一直到X8。现在再设想,这个函数并不是一个“整体式”的函数,而是具有某种层级结构。也就是说,它是“函数的函数的函数”。例如,我们先定义一个关于X1和X2的函数。再定义另一个关于X3和X4的函数。接着,再定义一个函数,把前面两个函数的输出作为输入。依此类推。从结构上看,它就像一棵二叉树。最底层是八个输入节点,而每一个上层节点,都是由两个变量,或者两个子函数的输出,组合而成。 这个结构,可以看作是卷积神经网络的一种“玩具模型”。这里卷积本身并不是关键。所谓卷积,就是权重在平移下保持不变。但真正重要的,是这种“局部组合”的结构。如果我们考虑一个普通的八变量函数,在一般情况下,就会遇到所谓的“维度灾难”(curse of dimensionality)。换句话说,为了逼近这样一个函数,你所需要的参数数量,往往会随着变量数量呈指数级增长。而指数级增长,在计算上是灾难性的。 保罗:如果这些变量彼此独立,没有高度相关性,那就是最糟糕的情况。 托马索:没错。函数的平滑性在某种程度上可以缓解这个问题,但根本的困难还是会出现。举个例子,如果我们有一个包含一千个变量的函数(其实这并不算多),一张32×32的小图像就大约有一千个像素。现在设想,我们要逼近一个关于这1000个像素的函数,并允许大约10%的逼近误差。在一般情况下,你可能需要大约10^1000个参数。这是一个极其巨大的数字。作为对比,宇宙中质子的总数大约是10^80。 保罗:我就知道你会用电子或者质子的数量来做类比。一旦参数数量超过宇宙中质子的总数,那肯定不是个好兆头。 托马索:但如果这个函数具有我刚才说的那种结构,也就是“函数的函数”的层级结构,情况就完全不同。我们最初称之为“层级局部性”,现在更准确的术语是“稀疏”。所谓“组合稀疏”,是指整个函数是由多个子函数组合而成,而每一个子函数只依赖于少量变量。 保罗:这里的“稀疏”是一个精确定义的概念吗?还是只是一个方向性的说法?比如,稀疏是不是意味着变量少于三个?还是说只是相对而言比较少? 托马索:它首先是一个方向性的概念。不过考虑到指数级复杂度带来的后果,我会给出一个数量级上的判断。比如在二值变量的情况下,“稀疏”大致意味着每个子函数所涉及的变量数量少于40个。 保罗:明白了。 托马索:如果是非二值变量,那么这个数量级大概在14个左右。 保罗:那这显然是非常稀疏了。 托马索:是的。 保罗:那么,“稀疏”是一方面。你刚才说“函数的函数”,那既是“组合”的含义,也是“层级”的含义。你能区分一下“层级性”和“组合性”吗? 托马索:严格来说,两者并没有实质差别。我认为它们只是不同的说法。我更喜欢“组合”这个词,因为我们讨论的是函数的组合,也就是函数的函数的函数。这个概念在很多领域都会出现,比如语言学中的“组合性”。意思是,我们可以用简单的基本单元,构建出更大的结构、更丰富的意义。诺姆·乔姆斯基强调过这一点。赫尔曼·冯·亥姆霍兹(Hermann von Helmholtz)也曾指出,语言的力量在于能够用有限的简单元素生成无限复杂的表达。但更有意思的是,这种能力并不只属于语言。它实际上是所有能够被高效计算的函数所共有的一个性质。 保罗:也就是说,这是必然的。 托马索:是的,必然如此。 保罗:那么,这里的瓶颈究竟在哪里?关键点是什么?关键在于函数本身吗?如果从进化的角度来想,进化是如何“找到”那些能够在这种稀疏组合结构中高效协作的函数的?听起来这像是一个非常精细、甚至有些脆弱的系统,但我们知道大脑其实是高度稳健的。是否问题的关键在于,你必须选对那些函数?而且无论如何,这些函数仍然需要通过学习获得。 托马索:这个问题非常有意思。我不确定这算是一种冲突,还是说是一条分界线,但它确实揭示了经典数学和计算机科学之间的一种差异。在经典数学中,我们通常是先定义一个函数空间。这个空间具有某些性质,比如不同形式的平滑性,或者满足若干阶导数存在等条件。函数是在这样的抽象空间里被研究的。而在计算机科学中,思路完全不同。计算机科学里,每一个函数都是由少量基本原语构造出来的。你从“与”、“或”、“非”这些最基本的逻辑操作开始,然后通过不断组合,构建出越来越复杂的函数。在这里,“组合”本身就是一种基本操作。因此,对计算机科学家来说,组合性并不是某种偶然的演化结果,而是所有能够被计算的函数必然具有的结构特征。 保罗:明白了。 托马索:对数学家来说,这个观点会更难接受,这并不是他们熟悉的那套思维方式。 保罗:我差点忘了,我们现在是在计算机科学的地盘。一切最终都要回到布尔逻辑,对吧? 托马索:是的。事实上,在我为一个包含28篇文章的理论文集撰写的论文中,有一篇就专门讨论一个问题:“实数是否真的存在?”这并不是一个玩笑式的问题。

准备好启动您的定制项目了吗?

现在咨询,即可获得免费的业务梳理与技术架构建议方案。