加里·马库斯:走向深度学习与符号 AI 的混合
Gary Marcus: Toward a Hybrid of Deep Learning and Symbolic AI
批评当前深度学习路线的局限,主张结合符号推理与结构化知识,走混合式的智能之路。
Anthropic 内部产品工程团队,现在有 65% 的 PR 由一个叫 Claude Tag 的机器人直接合并进主干。这个数字看起来像是机器已经能自己写代码。但加里·马库斯(Gary Marcus)会用过去二十年反复讲的一个论点告诉你:写代码这件事,机器做得再好,也说明不了它理解了任何东西。
马库斯是纽约大学荣休教授,Robust.AI 和 Geometric Intelligence 的创始人,后者是一家被 Uber 收购的机器学习公司。他写过《重启 AI》(Rebooting A.I.)和《Kluge》。多年来他一直扮演同一个角色:在深度学习最热闹的时候,指出它的边界在哪里。在这次和 Lex Fridman 的对话里,他把自己攒了二十多年的观察浓缩成一句话:我们正在用统计相关性模仿智能,真正的理解还远在天边。
智能不是一根刻度尺,上面只有冷和热
人们谈论 AI 超越人类,脑子里通常浮现一个数字。比如 IQ 到 262 的那一天,人类就出局了。马库斯说这套模型从根上就错了。
智能是一个多维变量。有语言智能,有运动智能,有数学智能。机器在数学智能上已经远超大多数人,下棋也是。但在理解语言这件事上,它们落后我五岁的孩子远不止一条街。(加里·马库斯)
他给了一个具体的例子。一个五岁小孩能理解“瓶子装水、人喝水解渴、人不想脱水”这一串事实。不需要解释,不需要标注数据,看一眼就知道。机器不知道这些。算力从来不是这里的问题。机器手里空空如也,它没有任何关于世界的最基础模型。
马库斯把这种东西叫常识。常识覆盖的范围极广,它是一整片海洋,远远超出任何单点式的定义。你读一本小说,看一场电影,每一个情节的推进都依赖读者自动补全大量没有说出口的背景知识。机器缺了这片海洋,连一个简单的句子都读不懂。
这片海洋还有一个反直觉的数学性质:里面每一块知识,你告诉它,它都能判断真假;你让它主动说出来,它大概率想不起来。像是一个巨大的隐式数据库,人类可以随时调用,却无法完整枚举。马库斯提到,Cyc 系统花了三十年试图把这些东西编码出来,最后也没成功。问题出在他们太依赖逻辑,没有充分处理概率和不确定性。
物理推理和心理推理,哪个更难
Lex 提了一个假设:训练一个机器人理解物理世界,可能比理解人类心理更容易。因为机器人可以动手实验,把瓶子倒过来看会不会漏水,把盖子拧上看能不能拧紧。
马库斯部分同意,同时补充了一个更尖锐的观察。物理实验可以做,心理实验做不了。你没法让机器人通过反复掐一个人类来学会疼痛是什么。那过不了伦理审查,公司会被起诉。
人类心理中很多深层次的东西,爱、恐惧、不安全感,能不能通过数字形式去探索?我觉得只能触及非常有限的切片。Facebook 确实在做心理实验,他们很擅长让人上瘾,理解什么能把人拉回来。但即便握着巨大的数据量,他们能触及的也只是人类经验里很小的一块。(加里·马库斯)
他摆出一个有意思的对照:机器人学不会“被掐会疼”,但能学会“输掉游戏让人不爽”。后者在人类身上高度一致,程序也容易写。一旦把范围扩大,比如性挫败、职场失意、和家人争吵,整个问题就复杂到现有技术完全接不住。
语言更像围棋,还是更像物理世界
Lex 提了一个分类:围棋和国际象棋是封闭问题,规则两千年没变,361 个交叉点就是全部可能。物理世界是开放的,什么都可能发生。语言站在中间某个位置。
马库斯的回应把这个判断拆得更细。语言确实有约束,比如语法。可语言的句子数量在原则上是无限的,你可以无限堆叠形容词,可以构造“我认为你认为你妈妈认为”这种嵌套。而且几乎所有物理世界里的事情都能用语言描述。读一个故事,你调用的世界模型可能比下一盘棋复杂得多。
语言对机器来说极其困难。语言学家研究它也很吃力。可孩子学起来并不难。这正是驱动我整个职业生涯的问题。我师从史蒂芬·平克,我们想搞清楚为什么孩子能学会语言而机器不能。(加里·马库斯)
这个问题的核心,是婴儿出生时那种“blooming buzzing confusion”到底意味着什么。婴儿没有语言,却能在三年左右掌握一套复杂到任何现有模型都无法复现的系统。马库斯认为答案里没有“更多数据”或“更大模型”这种选项,因为架构本身就缺了关键零件。
1998 年那个实验,到今天还没被解决
马库斯在 1998 年做过一个实验,用的是当时深度学习的先驱架构,叫 auto-associator。任务是判断一个二进制数是奇数还是偶数。网络把所有偶数都学得很好,遇到奇数时完全无法泛化。
很多人觉得我是不是傻了,或者实验是假的。可它确实是真的。这些网络把世界看得和我们完全不一样。它们关心的是最右边那个输出节点是 1 的概率,在它们见过的所有训练数据里,那个节点从来没有被激活过。所以它们判断:为什么要现在打开它?(加里·马库斯)
一个人类看到同样的问题,会立刻知道把二进制数加一,奇偶性就翻转了。这就是代数,X 加二等于 Y。你不需要见过一百万个偶数才能理解这个操作。马库斯说,这个实验的核心结论二十一年后依然成立:深度网络学的是输入和输出节点之间的相关性,它没有学到作用于变量之上的结构化操作。
他提到最近有人拿 GPT-2 试图反驳这个观点。对方输入了“A rose is a rose, a tulip is a tulip, a lily is a ___”,GPT-2 正确填了“lily”。看起来挺厉害。马库斯回了一句:一个例子说明不了什么,换个新词还能行吗?二十分钟后对方回复:那些情况有些问题。
二十一年前预测的局限性,在更强的硬件、更大的数据、更多的层数面前,依然没有被打破。
说皇帝没穿衣服这个比喻,其实不太准
马库斯被问到是否觉得自己在扮演那个指出皇帝没穿衣服的孩子。他的回答很坦率。
我并没有说这个皇帝没穿衣服。准确地说,他穿着内裤。很多问题他做得确实很好,比如语音识别。但我讲的是另一组问题,人类非常擅长、机器完全不擅长的那一组。这些问题二十年前就存在,现在依然存在。(加里·马库斯)
他把任务分成两类。一类是感知分类,比如识别一张图片里有没有猫。深度学习是目前最好的工具,比任何其他方法都好。另一类是抽象推理,比如理解瓶盖为什么要拧紧、奶酪刨的把手为什么在上面、为什么所有的孔都是锋利的。深度学习对后者几乎没有贡献。
他提到一个叫 Virtual Home 的项目,让众包工人描述一段锻炼流程。工人写出来的是“走到有电视和哑铃的房间,打开电视,举起哑铃,放下哑铃”。这些描述极其细碎,完全没有抓住锻炼的本质:在特定时间段内完成一定数量的动作,针对特定肌肉群。可你要是问一个普通人刚才做了什么,他只能给你这些边角料。
构建常识知识库的困难不止在技术层面,还在于人类自己并不擅长把内隐知识外化成机器能用的形式。你知道很多东西,你不知道你知道。只有当别人说出来,你才能判断对或不对。这个过程没法靠简单的众包完成,它需要既懂认知又懂 AI 系统的人,才能构造出正确的知识形态。
专家系统错在哪里,深度学习又错在哪里
马库斯先澄清了一个常见误解:他并不主张回到 80 年代的专家系统。那些系统几乎全是手写规则,没有机器学习。现在的主流做法是几乎全是机器学习,没有规则。两边各有优势,也各有盲区。
如果你在讨论感知分类,怎么识别一个瓶子,深度学习是目前最好的工具。如果你在讨论推理瓶子能做什么、盖子怎么拧紧,那么更接近专家系统的方法可能仍然是最好的选择。我们需要两者的混合,而且是在两者之间找到新合成方式的混合。(加里·马库斯)
他举了一个例子说明为什么某些任务永远不该用机器学习。你不会用机器学习去构建一个网页浏览器。你不会记录所有键盘输入和屏幕截图,然后让系统去学它们之间的关系。任何理性的工程师都会直接写代码:如果 X 大于 Y,就执行这个操作。条件判断、变量比较、逻辑运算,这些东西从计算机诞生之初就存在,而且工作得很好。
卷积神经网络的成功恰好说明了这一点。卷积是一个先验结构,由人类专家设计进去,系统不需要自己学会“同一个物体出现在不同位置应该被识别为同一个物体”。这个抽象是人工植入的,而且极其有效。马库斯说,问题在于没人愿意做这种植入工作。
罗素有一句话:偷窃比诚实劳动更有优势。把因果性、容器、瓶子这些东西编程进去非常困难。Ernie Davis 和我写了一篇四十五页的论文,就为了理解容器是什么。他花了三个月才把逻辑陈述弄对。没人愿意做这种苦力活。所有人都想直接喂一堆视频,让机器自己学。(加里·马库斯)
“苦涩的教训”到底教会了我们什么
Rich Sutton 写过一篇著名的博客叫《苦涩的教训》(The Bitter Lesson),核心观点是七十年 AI 研究告诉我们,利用算力的通用方法最终总是最有效的。Lex 把这个观点抛给马库斯。
马库斯的回应很直接:“最有效”是对什么而言?感知分类和一些强化学习问题,通用方法确实最有效。它在自然语言理解、常识推理、机器人导航这些领域没有带来任何实质性进展。
你可以造一把更好的梯子,这不意味着你能造一把通向月球的梯子。(加里·马库斯)
他承认算力越多越好,这跟钱越多越好是一个道理,没人会拒绝。可大脑只用了二十瓦就做到了深度学习做不到的事。这里藏着一个存在性证明:智能不需要谷歌规模的计算资源。
顺着这条线往下推,如果算力不是瓶颈,瓶颈就一定在架构和表示上。深度学习缺少的是对抽象概念、因果关系、变量操作的支持。这些不会因为数据变多就自动涌现。马库斯说他从未见过一个深度网络真正提取出抽象概念,只在有人明确编程进去的时候见过,比如卷积。
进化很慢,可它累积
马库斯对进化有一个很精确的描述。进化非常低效,一个脊椎动物大脑方案花了十亿年才出现。一旦出现,它会迅速扩散。鱼有,狗有,人有。色彩视觉出现后也迅速扩散到很多物种。
进化像是一套不断累积的库。一旦有了构建多指结构的库,手可以用,脚也可以用,只需要调整参数。进化速度因此会加快,因为库越来越大。(加里·马库斯)
他认为人们在进化计算上的尝试之所以失败,是因为起点太低。从几乎一无所知开始进化,进展极其缓慢,学生拿不到论文就放弃了。如果能从更丰富的初始结构出发,进化可能会快得多。
这条思路也延伸到 AI 的设计哲学。与其从零开始让机器自己学会一切,不如把生物学已经验证过的结构先搭起来。生物模仿在材料科学里很常见,AI 应该做同样的事情。认知科学、心理学、神经科学、语言学,这些都是可以借鉴的资源。他甚至开玩笑说,如果真能把狗的认知搞明白,机器人的社交能力可能都有救。
怎么判断一个系统真的理解了
马库斯提了一个具体的测试方案,叫理解力挑战。核心思想很简单:让机器看一集《绝命毒师》,然后问它任意关于角色动机的问题。比如沃尔特·怀特为什么要对杰西下手?
如果你能回答关于角色动机的任意问题,我会非常佩服。人类可以做到。看一部精心构造的电影,有人捡起一块石头,所有观众都知道他为什么要捡。这种能力如果机器能具备,而且不限于某一种类型的电影,那才叫真正的理解。(加里·马库斯)
他强调测试不能用选择题,选择题太容易被统计方法钻空子。必须是开放式问题,必须涉及多种类型的电影,必须能应对新词和新情境。
他提到《斯巴达克斯》里那个著名场景:一群人站起来喊“我是斯巴达克斯”。观众立刻明白两件事。第一,这显然不可能,他们不可能都叫斯巴达克斯。第二,他们在撒谎,为的是保护真正的斯巴达克斯,保护他们共同相信的东西。如果机器能推断出这些,那才叫理解。
他还顺便吐槽了尤金·古斯特曼那个通过图灵测试的程序。那套系统假装成一个来自敖德萨的十三岁男孩,英语不好,态度阴阳怪气,用回避和搪塞来躲开所有深层问题。它骗过了评审,却绕开了图灵真正关心的东西:怎么让机器变得智能。
可信 AI 的前提是深度理解
马库斯和 Davis 那本书的最后一章是乐观的,描述了一个真正实现了常识推理和混合架构的世界。那种乐观带着一个前提:我们必须先能用代码或某种形式表达“伤害”“公平”“意图”这些概念。
你不能和一个只处理相关性、不理解瓶子也不理解伤害的系统谈对齐。阿西莫夫的第一定律是不得伤害人类,可如果你连伤害是什么都没法在 Python 或 TensorFlow 里表达,谈何让 AI 遵守这条规则?如果做不到,我们就是在骗自己。(加里·马库斯)
他设想了这样一个流程:先有一个由伦理学家、技术专家和广泛代表组成的委员会,讨论规则应该是什么。然后有工程师把这些规则翻译成机器能执行的形式。最后这一步目前根本不存在。你可以在自然语言里写“不得伤害”,你没法把它翻译成可执行的代码,因为机器手里没有伤害这个概念。
这里又回到他反复强调的那条主线:没有对世界的深层理解,就谈不上真正可信的 AI。深层理解需要符号操作、结构化表示和因果模型,而这些恰好是当前深度学习最缺的东西。他还顺便提醒,制定规则这件事不能只交给软件工程师,也不能只交给掌握大公司的技术老板,伦理学家的位置不可替代。
给普通人判断 AI 新闻的几个问题
马库斯在书里给非专家读者提供了一套判断方法,其中最实用的一条是找 demo。
如果某家公司宣称实现了某种能力,却没有提供可以让你自己试用的 demo,那它大概率还没真正跑通。如果 demo 只在一个极窄的场景下有效,比如 Google Duplex 最初只能在预约理发店和餐厅、查询营业时间这三件事上工作,那它离通用智能还很远,属于高度特化的脚本。
马库斯对 Sophia 这类项目的态度很明确:它拿到了很好的剧本,却根本不理解自己在说什么。面对一个宣称拥有对话能力的系统,你要问:我能试试吗?它泛化得怎么样?换一个新话题还行不行?换一种问法还行不行?
这些问题背后站着一个更根本的标准:如果一个系统只在被训练过的分布上表现良好,那说明它还没理解,它在做的不过是在训练分布里记忆和插值。
什么才是真正值得投入的方向
马库斯反复强调,他对深度学习并没有全盘否定,他要做的只是指出它的边界。他的立场可以概括成三点。
第一,感知归感知,推理归推理。深度学习在感知分类上做到了前人做不到的事,这个成就应该被承认。但感知分类的方法论搬不到推理和语言理解上。
第二,符号操作、变量绑定、因果模型这些工具从 McCarthy 时代就存在。它们被冷落,真正的原因是深度学习的商业成功太耀眼。Cyc 的失败被当成整个符号方法的失败,而 2010 年之前所有深度学习的失败却没有人这样记账。这是双重标准。
第三,未来的突破大概率来自混合架构。它既会有符号的成分,也会有神经网络的成分,两者有机结合。AlphaGo 就是一个例子:它同时用了深度学习和蒙特卡洛树搜索,后者属于经典的符号 AI 技术。只是人们习惯性地把它称为深度学习系统,模糊了其中的混合本质。
我担心的是,不管未来出现什么新方法,人们都会把它重新包装成深度学习。就像 IBM 把 Watson 从一个具体系统变成了整个认知部门的名字。这不会改变技术本身,却会让公众和投资人更难看清真正的进展在哪里。(加里·马库斯)
给读者的行动清单
- 下次看到“AI 实现某某能力”的新闻,先找 demo。没有 demo,默认它还没成功。demo 只在极窄场景下有效,那它只是脚本。
- 用“换个新词还行不行”来测试语言模型。如果换一批训练集里没出现过的新词、新情境,系统立刻崩,那它学的是相关性,谈不上理解。
- 把 AI 的能力拆开看。数学和棋类一类,感知分类一类,语言理解和常识推理是完全不同的另一类。不要用某类问题的成功去推断另一类问题也会成功。
- 不要用机器学习去解决本该写代码解决的问题。条件判断、变量操作、逻辑推理,写代码比训练模型更可靠,也更可解释。
- 如果你在做 AI 产品,问自己一个问题:用户能不能通过某种方式验证系统真的理解了他的意图?如果不能,用户迟早会发现系统只是在做模式匹配。
- 对“AI 威胁论”和“AI 万能论”保持同样的警惕。两者都忽略了同一个事实:我们连伤害是什么都还没法用机器可执行的形式表达出来。
- 关注那些在做混合架构的团队,别只盯着谁的模型参数更大。参数规模的增长有上限,架构的突破没有。
本集资源与出处
- 视频在 YouTube 收看
- 音频官方 MP3 直链来自 lexfridman.com 官方播客 RSS
- 官网Lex Fridman 官网本集页面
- 文稿HappyScribe 版文稿