Sutskever-精选论文清单-一-

Sutskever 精选论文清单(一)

原文:Sutskever's List

译者:飞龙

协议:CC BY-NC-SA 4.0

献词

致我的妻子和三个儿子:感谢你们每次我说话时都假装相信。

对《苏茨克弗的清单》的赞誉

“如果你想了解当今方法从何而来,是什么推动了它们,以及一小组想法如何帮助定义了该领域的轨迹,这是一个极好的起点。”

——塞巴斯蒂安·拉斯奇卡(《从零开始构建大型语言模型》作者)前言

“对自 1990 年代以来人工智能研究中最重要的突破提供了清晰、简洁且背景丰富的概述。这是一本非常愉快的读物,作者将苏茨克弗及其同伴的个性融入了更广泛的叙述中。”

——尼科·斯穆茨,数据科学高管

“作者拒绝将《苏茨克弗的清单》视为其表面看起来的样子——只是一个阅读清单,一篇又一篇必须单独对待的论文。相反,作者将其重构为一场精心论证的思想之旅。”

——弗朗西斯科·佩雷斯-索罗萨尔,独立人工智能工程师和顾问

“这本书有助于形成对塑造当今人工智能成就的主要思想及其相互作用的心理图景。”

——斯特凡诺·洛蒂尼,软件工程师

“作者对主题领域有着极其深入、细致和细腻的知识。”

——温蒂·兰格,Good Stuff! 辅导

“如果你想通过理解基础研究论文来学习深度学习的历史、广度和深度,《苏茨克弗的清单》就是你需要的一切!作者在每章末尾的直觉充满了智慧和洞察力——你会喜欢阅读它们。”

——巴文·萨克,New Relic

“我喜欢作者如何将这本书变成一个故事。我非常喜欢它。”

——杰伊·卡尔卡,卡尔卡系统

“第 8 章给了我之前没有的对复杂性和‘grok’研究的清晰概念化。”

——莱奥·胡奥维宁,坦佩雷大学

序言

我一直喜欢读论文。在我看来,一篇好的论文不仅仅是呈现一个结果。它会解释研究人员想要解决什么问题,他们做了什么假设,当时什么不奏效,以及为什么一个新想法似乎值得追求。从这个意义上说,论文是理解一个领域的最佳方式之一,因为它们不仅展示了方法,还展示了产生这些方法的动机。

这是我喜欢并推荐这本书的原因之一。它精选了有影响力的论文,并将它们转化为现代 AI 发展的导览。而且,它没有把这些作品仅仅当作一个列表,而是展示了它们之间的联系。你可以看到一系列工作如何为下一步创造了条件,以及实际问题如何塑造了研究重点,最终导致了我们今天使用的方法。

这个视角在今天尤其有用,因为现代 AI 发展迅速,人们很容易只在应用层面遇到当前的方法。例如,AlexNet 是对手工特征的局限性和让深度学习在计算机视觉中大规模工作的难度的回应。残差网络解决了随着这些深度神经网络深度增加而出现的优化问题。序列模型、注意力机制和 Transformer 出现是因为早期方法在捕获和使用长上下文信息方面遇到了具体的瓶颈。后来,缩放定律帮助形式化了当模型大小、数据和计算一起增加时性能如何系统地提升。

这本书的一个优点是它关注动机,而不仅仅是结果。这是因为一旦我们理解了一个方法的原始动机,我们就能更好地判断它的核心思想是否仍然重要,以及哪些教训可以继续推广。这也是为什么对于从业者和刚进入一个领域的研究人员来说,阅读旧论文仍然如此有价值的原因。即使具体的实现细节会过时,问题表述和设计选择往往仍然高度相关,它们帮助我们学习如何构思自己的想法和设计下一代方法。

对于喜欢论文的读者来说,这本书提供了一种特别有回报的体验,它帮助恢复那些经常被简化为引用、迷因或基准参考的作品的上下文。而对于那些刚接触这个文献的读者来说,它提供了一条通往一个否则可能感觉分散在子领域和时代的作品集合的可访问路径。

从这个意义上说,这本书既具有历史性又具有实用性。它回顾了塑造现代 AI 的论文,但它也给读者提供了理解现在的更好框架。如果你想了解今天的方法来自哪里,是什么驱动了它们,以及一小部分想法如何帮助定义了该领域的轨迹,这是一个极好的起点。

—塞巴斯蒂安·拉斯奇卡

《从零开始构建大语言模型》的作者

RAIR Lab 的创始人兼首席 AI/LLM 研究工程师

序言

2023 年底,一个问题在网上流传:“伊利亚看到了什么?”背景是 OpenAI 一场戏剧性的权力斗争,据报道,伊利亚·苏茨克维勒因担忧而支持罢免 CEO。埃隆·马斯克公开对此事的评论引发了更多猜测。在混乱之中,一个关于苏茨克维勒心态的有趣线索重新浮出水面:他与约翰·卡马克分享的一份个人研究论文阅读清单,非正式地被称为“苏茨克维勒清单”。据称,苏茨克维勒声称它包含了当今 AI 中“90% 重要的东西”。这种单个论文集就能掌握现代 AI 钥匙的想法,给这份清单增添了一种神秘和重要的色彩。

苏茨克维列表

我最初是通过这些传闻和在线寻宝才了解到苏茨克维列表的。爱好者们拼凑出线索,最终一个重建版本的列表出现了,迅速获得了近百万次浏览。它成为了一个文化试金石。问“你读过苏茨克维列表吗?”就成了掌握当代人工智能基础的简写。然而,这个问题往往更多是信号,因为许多人知道这个列表,却没有真正研读上面的论文。在一个快速发展的领域中,一个稳定的思想经典的想法让人感到耳目一新和必要。我意识到,探索这些作品及其产生的背景,可以为理解人工智能如何演变成我们今天所见的样子提供无价的洞察。

这本书源于那种认识。

致谢

我最深切的感谢要给予那些让苏茨克维列表充满活力的研究人员和工程师。他们来之不易的胜利推动了这个领域的发展。我感谢那些挑战传统智慧并证明怀疑者错误的深度学习先驱,感谢那些设计出让人工智能在现实世界中发挥作用的系统的问题解决者,以及那些为更广泛的受众澄清这些复杂思想的教育家和传播者。

我特别感谢那些怀疑超越了纸面质疑,成为对更好证据的活生生需求的人——他们不仅宣布了人工智能的局限性,还磨砺了基准,揭露了脆弱的主张,并迫使这个领域通过结果来赢得信任。他们的怀疑比纸面上的希望和疑虑更能增强这个领域。

我也深深感谢 Manning Publications 为这个项目提供了归宿,并从一份粗略的提案开始,精心引导它成为一本完成的书。我的收购编辑 Jonathan Gennick 早期就相信了这个项目,并帮助它成为现实。我的发展编辑 Doug Rudder 帮助完善了它的结构、节奏、世界观和声音。我还感谢 Tulika Bhatt,她的技术审查提高了书的准确性。Tulika 是 Netflix 的高级软件工程师,她在那里的工作是大规模实时数据系统和个性化基础设施。最后,我感到荣幸的是塞巴斯蒂安·拉施卡撰写了序言;他作为研究人员、教育家和传播者的工作激励了我,并帮助使现代机器学习对无数读者更加可及。

致所有审阅人:Adi Shavit、Anirban Majumder、Arslan Gabdulkhakov、Arturo Geigel、Bhavin Thaker、Bin Hu、Bryan Cardillo、Casey Robinson、Jérémie Clos、Thomas Briegel、Emin Tahirovic、Frances Buontempo、Francisco Perez-Sorrosal、Georgerobert Freeman、Giovanni Alzetta、Hardev Ranglani、Henry Beveridge、Ian Yang、Ioannis Atsonios、Iurii Iurchenko、Jay Kelkar、Jean-François Morin、Jerry Kuch、Joaquin Gracia、John Williams、Jonathan Thoms、Joseph Catanzarite、Julian Squires、Kostas Passadis、Krishna Kandi、Krzysztof Kamyczek、Leo Huovinen、Lucas Roberts、M. Milan Loseke、Manoj Agarwal、Marielle Dado、Mengyue (J.P.) Li、Milorad Imbra、Natasha Chong、Nico Smuts、Nicolas Bievre、Payam Pourashraf、Praveen Nair、Prof. Hyung-Jong (John) Kim、Ravi Kiran Bamidi、Recep Erol、Ruben Gonzalez-Rubio、Sanny Mulyono、Sidharth Mahotra、Stefano Lottini、Stephen Wolff、Surbhi Madan、Vitosh K. Doynov、Wendy Langer 和 William Springer:你们的建议使这本书变得更好。

关于本书

苏茨克维列表 的目标是阐明关键突破之间的联系,将每个突破置于一个贯穿 2010 年代和 2020 年代初深度学习革命的叙事中。章节没有将每篇论文视为孤立的成就,而是将它们编织在一起,讲述一个更大的故事,将技术创新与范式转变、文化里程碑和人工智能内部不断发展的哲学联系起来。在这些页面中,你会发现每个突破解决了什么问题,打开了什么门,甚至提出了什么争议或问题。通过伊利亚·苏茨克维的视角审视里程碑式的研究,本书提供了一个统一的框架,帮助我们理解我们如何到达今天的人工智能状态,以及我们可能走向何方。

你将遇到那些承载深度学习火炬的研究人员、那些扩展算法的工程师,甚至那些挑战炒作的批评家和怀疑论者。我们也强调思想如何相互建立:一个实验中的技巧如何促成了下一个实验的突破,以及理论洞察如何进入实际系统。这样做,苏茨克维列表 既是现代人工智能知识领域的地图,也是对其旅程的评论。无论你是来了解著名算法的背景故事,还是来把握一位人工智能先驱的心态,本书的指导目的都是相同的:阐明基础人工智能研究如何成为我们今天见证的改变世界的力量。

目标读者

苏茨克维列表 是那种人们可能真正喜欢阅读并读完的书——这比大多数机器学习和人工智能书籍更难能可贵,后者通常是为了被参考而写的,而不是被阅读的。具体来说,本书是为广泛但技术上有好奇心的读者编写的。其主要受众是软件工程师、数据科学家和机器学习从业者。如果你构建或使用人工智能模型,本书将丰富你对这些模型为何以当前形式存在以及促成它们的关键工程模式的理解。

然而,苏茨克维列表 也旨在对有动力的普通读者可及。我们只假设你对计算和数学有基本的了解。如果你曾经读过技术类的大众科学描述,或者喜欢了解科学突破背后的故事,你会在这里发现类似的叙事方式,尽管它不回避每个思想的技术核心。简而言之,本书欢迎任何渴望了解人工智能如何演变的人,为不同读者提供不同层次的见解。工程师可能会欣赏更精细的技术细节或历史参考,而非专业人士将获得坚实的概念理解。

代码、软件和资源

本书的一个显著特点是,不需要任何软件或编码即可参与其中。这不是一本动手编程指南,而是一次关于思想和历史的概念之旅。不需要代码下载、库或沙箱环境。所有重要的算法和实验都在文本中描述和讨论,因此你不需要在自己的机器上运行任何东西。“输出”是理解,而不是软件。

读者指南

各章按逻辑顺序组织,建议按顺序阅读,特别是如果你是人工智能新手。如果你从第一章开始并向前推进,你会跟随一个逐渐建立背景的故事线,包括后续章节将建立或引用的概念和术语。例如,理解卷积网络如何在视觉中获胜(第 2 章)将加深你对训练更深层网络(第 3 章)中挑战的欣赏;知道 RNN 和 LSTM 是什么(第 4 章)为 Transformer 的创新(第 5 章)奠定了基础;等等。叙事旨在累积性,随着你的进展揭示反复出现的主题和不断发展的视角。直接通读将使你对苏茨克维的世界观以及人工智能领域如何随时间转变有一个统一的理解。

尽管如此,本书的结构也允许选择性阅读。每一章都聚焦于一个独特的主题和一组特定的论文,所以如果你对某个特定主题感兴趣——比如你对 Transformers 如何工作最感兴趣,或者你想直接跳到 AI 安全的讨论——你可以直接前往相关的章节。我们努力确保每一章都提供了足够的背景信息以独立存在。关键概念在必要时会重新介绍,而且每当我们在前面的章节引用一个想法时,我们会提供一个简短的回顾或指向其首次被解释的地方。因此,一个有动力的读者肯定可以深入阅读第 5 章关于注意力机制的内容,或者第 9 章关于超级智能的内容,并仍然能够理解论证。如果你选择这种方式,你可能会偶尔跳过一些交叉引用,但你仍然会获得对这个故事片段的洞察。

无论你是从头到尾阅读还是跳跃阅读,都可以将参考文献作为深入探索的工具。如果某个特定想法让你着迷,参考文献可以引导你找到更详细处理的原始资料。此外,附录包括每章的关键要点和工程原则,这可以帮助巩固你所学到的知识。

最后,AI 领域充满了辩论。在阅读过程中,你会遇到这些线索贯穿在叙述中。它们包括经验主义与理论、伦理与风险、安全与进步之间的平衡,以及“智能”究竟意味着什么。积极参与这些辩论将丰富你的体验。到最后,你不仅会更清楚地了解 AI 的核心思想来自哪里,还会有一个框架来思考 AI 的走向,以及我们作为读者和从业者如何驾驭那个未来。

liveBook 讨论论坛

购买 苏茨克弗的清单 即可免费访问 liveBook,Manning 的在线阅读平台。使用 liveBook 的独家讨论功能,你可以对整本书或特定章节或段落添加评论。为自己做笔记、提出和回答技术问题,以及获得作者和其他用户的帮助,都非常简单。要访问论坛,请前往 livebook.manning.com/book/sutskevers-list/discussion

Manning 对读者的承诺是提供一个场所,让个人读者之间以及读者与作者之间能够进行有意义的对话。这并不是承诺作者会有任何特定程度的参与,作者对论坛的贡献仍然是自愿的(且无偿的)。我们建议你尝试向作者提出一些挑战性的问题,以免他的兴趣转移!只要书还在印刷,论坛和以前讨论的存档就可以从出版商的网站上访问。

关于作者

Rich Heimann 是一位研究人员、实践者、教育家和传播者。在机器学习领域拥有超过十年的经验,他亲眼见证了该领域的快速变革。作者参与了从基础算法开发到应用 AI 系统的项目。这种实践经验辅以对教学法和科技公众参与的热情。在学术界,作者教授过机器学习课程并指导学生,赢得了在不简化复杂概念的情况下使其变得清晰的声誉。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/Heimann-photo.png

关于封面插图

苏茨克弗的清单 封面上的插图,标题为 "Le Maraicher" 或 "The Market Gardener",取自 Louis Curmer 在 1841 年出版的一本书。每幅插图都是精细绘制和手工上色的。

在那些日子里,通过人们的穿着就可以很容易地判断他们居住在哪里以及他们的职业或社会地位。Manning 以基于几个世纪前区域文化丰富多样性的书封面来庆祝计算机业务的创造力和主动性,这些封面通过来自像这样的收藏的图片而复活。

1 伊利亚看到了什么?

本章涵盖

  • 伊利亚·苏茨克弗的崛起之路

  • OpenAI 作为对 Google 的制衡而成立

  • GPT-2 令人惊讶的能力和争议

  • OpenAI 董事会危机,伊利亚处于中心位置,Altman 被罢免

  • 苏茨克弗的清单的持久谜团和影响

2023 年 11 月,Elon Musk 发推文说:"有些东西让伊利亚害怕到想解雇 Sam。那是什么?"不久后,"伊利亚看到了什么?"这个短语走红,激发了 AI 研究人员和爱好者的兴趣。伊利亚·苏茨克弗,OpenAI 的联合创始人,是否瞥见了其他人错过的存在风险?许多人认为是这样。

这些时刻反映了 AI 前沿更深层次的紧张关系,但要理解它们,我们必须审视塑造伊利亚思维的更广阔的知识格局。具体来说,我们需要研究"苏茨克弗的清单",这是一本由近 30 篇论文、博客和书籍组成的合集(为简单起见,我们在本书中将其全部称为"论文"),博客和书籍(为简单起见,我们在本书中将其全部称为"论文")他曾经向传奇程序员 John Carmack 描述其中包含"今天 90% 重要的内容"。

然而,这种清晰性是难以捉摸的。与其将每篇论文视为孤立的贡献,本书将它们作为更大叙事中相互关联的线索进行探索。这样,本书就不仅仅是一部选集。它适合那些想要了解这些想法如何联系、它们最初意味着什么以及今天仍然意味着什么,以及它们揭示了 AI 最具变革性时期之一的什么的人。这本书不仅仅分析技术里程碑。它将文化时刻、范式转变、盲点以及该领域的雄心和焦虑编织在一起。这样做,它将可能枯燥的参考作品转化为连贯而引人入胜的叙述。

我们将追踪伊利亚的智力演变,追溯塑造他工作的不断变化的视角。苏茨克弗清单上的每一项——跨越研究论文、博客文章,甚至一门大学课程——都提供了对他最重要的事情的洞察。通过这份清单,我们创建了其编纂者的肖像和其代码的地图,浮现出包括加速主义与谨慎、扩展与对齐、成功与失败、雄心与不确定性之间的紧张关系在内的主题。

虽然这本书以伊利亚为中心,但它不是传记。相反,在我们探索 AI 更广泛的发展时,他的智力旅程充当叙述主线。他的决定,从他在 AlexNet 上的工作,到他在 Google 的时光,OpenAI 的成立,以及他最终的离开,与该领域的自身轨迹交叉并反映了它。

在第 1 章中,我们追溯伊利亚的崛起,成为 AI 最具影响力和神秘色彩的思想家之一。我们介绍 苏茨克弗的清单 并概述伊利亚的心理模型。本章重点讨论 GPT-2(一个明显不在清单上的模型),因为它说明了伊利亚的工作和哲学的现实影响。当 GPT-2 被宣布为"过于危险而无法发布"时,它标志着早期 AI 扩展和安全之间的第一次公开冲突。这种紧张关系将加深,塑造 OpenAI 的文化,并最终导致公开危机。我们研究 GPT-2 不是因为它是故事的开始或结束,而是因为它标志着现代 AI 的轨迹变得更加清晰的点。

本章为接下来的更深入的技术讨论提供了背景。它阐明了为什么 AlexNet、ResNet 和 Transformers 等创新很重要。随着书的进展,这一开章的强度和紧迫性不可避免地让位于更多的技术细节。但就在那里,我们开始建立关注点、假设和旅行方向。随着我们浏览清单,我们将探索伊利亚的谨慎愿景以及为什么它继续在今天产生共鸣。

1.1 伊利亚的崛起

伊利亚·苏茨克维格:从谷歌大脑到 OpenAI 的超级对齐

早期职业生涯与 AlexNet

伊利亚·苏茨克维在多伦多大学攻读研究生,师从“人工智能教父”杰弗里·辛顿 [3]。当时,辛顿虽广受尊敬,但尚未达到他今天的传奇地位,这部分归功于苏茨克维的工作。

2012 年 9 月,亚历克斯·克里泽夫斯基、苏茨克维和辛顿训练了一个卷积神经网络(CNN)来对图像进行分类。他们的模型 AlexNet 大幅降低了 ImageNet 大规模视觉识别挑战赛(ILSVRC)中的错误率,并横扫了竞争对手 [4]。

这一成就很大程度上消除了数十年的怀疑。这场胜利提供了怀疑者无法忽视的经验证据 [5]。当人们讨论结果时,连杨立昆这样长期倡导 CNN 的人也感到震惊。他称这场胜利为“计算机视觉史上一个明确的转折点” [6]。数十年的手工视觉方法被一个端到端在原始图像上训练的人工神经网络所推翻 [7]。

谷歌大脑与 TensorFlow

2013 年,谷歌认识到该团队工作的重要性,并收购了由辛顿、苏茨克维和克里泽夫斯基创立的 DNNresearch。随着深度学习开始重塑该领域,这次收购将这些专业知识带到了内部 [8]。

在谷歌大脑,苏茨克维成为推动深度学习的核心人物 [9][10]。他是 TensorFlow(谷歌的开源深度学习库)的早期合著者,并合著了开创性的 AlphaGo 论文 [11]。此外,苏茨克维的清单 上的几个项目直接源于他在谷歌的那几年,包括循环神经网络正则化的开创性工作,以及对有影响力的架构如 Pointer Networks 和 Neural Turing Machines 的间接支持 [12]。

创立 OpenAI

然而到了 2015 年,一个新的机会正在成形。时任 Y Combinator 总裁的山姆·奥特曼邀请苏茨克维与埃隆·马斯克等人共进私人晚餐 [13][14]。苏茨克维并不知道他是贵宾。晚餐对话围绕人工智能的未来展开,包括像谷歌这样的现有公司是否不可战胜,或者是否可以创建一个新的研究实验室作为“平衡力量”。

平衡力量的想法在几周前变得更加紧迫。在一次派对上,马斯克与谷歌联合创始人拉里·佩奇发生冲突,因为佩奇分享了他对人类与机器竞争资源的未来的愿景。马斯克直言不讳地回应:“如果发生这种情况,我们注定要灭亡。”佩奇无视这种担忧,并称马斯克为“物种主义者” [15]。佩奇那超现实的声称——即偏爱人类而非机器等同于物种主义——令马斯克感到震惊,他想要建立一个平衡力量。

整个想法与苏茨克维产生了共鸣。在 机器人大脑 播客中,伊利亚回忆道:“我真的很希望它以工程为主。看到埃隆将参与其中,我想,好吧,还有谁比这更好的呢?我无法想象从谁那里能更好地学习大工程项目的方面” [16]。经过一些犹豫和几个月的反提案后,苏茨克维离开了谷歌。马斯克后来将伊利亚描述为新企业的“关键”,强调他的参与对项目的可信度至关重要 [17][18]。

早期里程碑与马斯克的离开

OpenAI 于 2015 年底成立。伊利亚成为 OpenAI 的首席科学家以及“公司的灵魂及其研究的推动力”,塑造了 OpenAI 的研究议程和文化 [19][20][21]。苏茨克维的影响确保了工作保持雄心勃勃,促使大胆甚至夸张的说法,例如构建“能够做人类以前无法做到的事情的系统” [22]。但这一说法缺乏明确阐述的目标。OpenAI 讨论了平衡开放性与安全性,并辩论了其追求通用人工智能(AGI)的速度。这些辩论揭示了一个由广阔抱负而非精确战略方向塑造的组织。

但讨论并未永远停留在理论层面。OpenAI 很快开始将其哲学思考转化为实际的里程碑。该实验室开发了 OpenAI Gym,一个加速强化学习研究的平台 [23]。它还取得了 AI 驱动的游戏玩法的早期突破,特别是掌握了复杂的多人游戏 Dota 2 [24]。到 2018 年,这些努力汇聚成了对 Transformer 的聚焦实验,最终发布了名为 GPT-1 的语言模型。从广泛的不确定性到有针对性的探索的转变标志着 OpenAI 的一个关键时刻。与此同时,还发生了一次内部重组,埃隆·马斯克因与他在特斯拉的角色冲突而分道扬镳 [25]。

然而,在幕后,据透露马斯克提议对 OpenAI 实施更直接的控制,因为他担心它正在落后于谷歌 [26]。其他联合创始人拒绝了马斯克的竞标,使得奥特曼和苏茨克维牢牢掌控着 OpenAI 的方向 [27]。苏茨克维选择站在非营利机构一边,而不是将控制权让给马斯克。这反映了一种原则立场,即公司应专注于其长期、安全的 AGI 目标。

GPT-2、GPT-3 和 ChatGPT

OpenAI 的研究加速了。2019 年,苏茨克维监督了 GPT-2 [28]。到 2020 年,实验室已经拥抱了规模化。那年六月,它发布了 GPT-3,一个拥有 1750 亿参数的模型,以其多功能性令观察者震惊 [29]。该项目需要大量的工程工作,在苏茨克维的愿景下,团队构建了使其成为可能的基础设施。他被广泛认为是 GPT-3.5 的主要架构师,而 GPT-3.5 是 ChatGPT 背后的首个模型 [30]。

公开反思与争议

随着 OpenAI 的创作变得越来越有趣,苏茨克维作为该领域最杰出的研究思想家之一的声誉也在增长。这一时期也巩固了他有点隐士的形象:“我过着非常简单的生活,”伊利亚在一次采访中说。“我去上班,然后回家。我不做太多其他事情。有很多社交活动可以参加,有很多活动可以去。但我没有” [31]。

苏茨克维也对 OpenAI 研究的影响变得更加公开反思。2022 年 2 月,就在 ChatGPT 发布前近一年,他在 Twitter(现为 X)上发布了一条好奇的声明,引发了重大辩论:“也许今天的大规模神经网络稍微有意识” [32]。这条推文具有挑衅性,并触及了许多研究人员持怀疑态度的话题:机器意识。苏茨克维没有提供进一步的解释,也没有删除这条评论,即使在它引发批评和怀疑之后。

虽然一些研究人员,如安德烈·卡帕西,通过回应“同意……意识是对压缩的有用见解”支持了这一说法,但其他人更为怀疑。图灵奖得主杨立昆回应道“不对”,而伦敦帝国理工学院教授、谷歌 DeepMind 首席科学家默里·沙纳汉补充道,“在同样的意义上,也许一大片小麦地稍微有点像意大利面” [33][34][35]。这一事件突出了苏茨克维愿意发表非传统想法。虽然大多数专家驳回了这一想法,但该评论预示了伊利亚对 AI 的哲学和安全维度的日益关注。

超级对齐

越来越多地,伊利亚成为公司内部安全 AGI 的精神传教士。OpenAI 启动了一个新的“超级对齐”团队,由苏茨克维和研究员扬·莱克共同领导。团队的目标是引导一个潜在的超级智能 AI 并防止其在四年内“失控”。在 ChatGPT 发布八个月后发布的一篇广泛阅读的博客文章中,苏茨克维强调了紧迫性,暗示虽然超级智能可能感觉遥远,但它“可能在这个十年发生” [36][37]。

这一时期的报道将他描绘成一个热情——如果说有些古怪——的人物,他凝聚了整个公司围绕创造有益 AGI 的使命。据报道,他鼓励员工“感受 AGI”,以近乎虔诚的热情对待通用人工智能的追求[38]。在一个引人注目的轶事中,苏茨克维委托制作了一个代表“未对齐”超级智能 AI 的木制人偶,这种 AI 可能伤害人类,并在同事面前仪式性地将其焚烧。

这些仪式性的展示,在一篇揭露 OpenAI 内部文化的报道中被描述,即使以科技行业的标准来看也属罕见。它们展现了苏茨克维强烈的信念以及他为对齐任务带来的庄重感。一些内部人士认为这令人鼓舞,而另一些人则感到担忧[39]。不管怎样,到 2023 年底,苏茨克维已转向一种更紧迫、审慎的立场,这很快将迫使他迎头面对 OpenAI 的发展轨迹。

紧张局势在 2023 年 11 月 17 日达到顶点,当时苏茨克维所在的 OpenAI 董事会突然罢免了 Sam Altman[40]。据报道,苏茨克维是这一决定的关键煽动者[41]。公开场合,董事会将 Altman 的解职归因于模糊的“沟通破裂”,这是一个具有讽刺意味的含糊措辞,几乎掩盖了更深层的战略分歧[42]。在 Ilya 看来,OpenAI 正在快速发展,如果不加控制,可能很快就会越过危险的临界点。

有报道称,就在 Altman 被解雇之前,几名 OpenAI 研究人员——可能来自苏茨克维的对齐团队——曾写信给董事会,警告他们一项他们认为可能构成生存威胁的新突破[43]。他们提到了一个代号为 Q*(读作 Q-star)的秘密研究项目,据内部人士称,该项目展示了解决小学水平数学问题的能力。虽然长除法似乎难以证明如此极端的行动是合理的,但一些研究人员认为它可能扩展为一台更通用的推理机,并敦促董事会考虑安全影响[44]。

Altman 被解雇呼应了最早在 GPT-2 发布期间隐约可见的未解决的紧张局势,这是一个我们将在下一节更深入探讨的关键事件。在这两个实例中,OpenAI 都采取了基于预期风险而非直接威胁的先发制人行动。将它们联系在一起的是一种根深蒂固的信念,由苏茨克维和许多 AI 安全研究人员所倡导:行动太晚比行动太早更糟糕。然而,虽然 GPT-2 的决定很大程度上是象征性的,但 Altman 的解雇产生了实际后果,将假设性的担忧转化为一场机构危机。

事件发生后,“Ilya 看到了什么?”这个问题捕捉到了行业突如其来的存在主义焦虑[45][46]。但是,与 GPT-2 一样,所担心的灾难从未到来,使 OpenAI 不得不面对一场完全由其自身制造的危机。具有讽刺意味的是,防范灾难的冲动反而导致了灾难。

后果是混乱的。OpenAI 的员工感到震惊。在一次紧张的全员会议上,Ilya 试图为这一决定辩护,告诉员工董事会正在“履行其职责”[47]。这一举动适得其反,因为没有明确沟通说明 Altman 的哪项具体安全担忧或失误促成了这一决定。在 48 小时内,OpenAI 的 770 名员工中超过 700 人签署了一封公开信,威胁除非董事会改变路线,否则将辞职并追随 Altman,无论他从事什么新的创业项目[48]。

苏茨克维成为激烈批评的目标,许多人认为这是一场危及公司稳定的政变。在这种压力下,面对 OpenAI 可能崩溃的局面,苏茨克维扭转了立场。11 月 20 日,也就是董事会决定仅仅三天后,Ilya 道歉,发推文说:“我非常后悔参与了董事会的行动”,并补充说:“我从未意图伤害 OpenAI”[49][50]。

这一认错非同寻常:董事会成员公开否认一项决定是罕见的,这凸显了局势已经失控到何种程度。对苏茨克维来说,这一事件在个人和职业层面都造成了打击。在这场惨败之后,他辞去了 OpenAI 董事会的职务[51]。此后数月,有报道称苏茨克维并未在 OpenAI 积极工作。有人说他正在休假;也有人说他正在悄悄地从远处领导他的团队。不管怎样,很明显他的内部影响力已经减弱[52]。Altman 事件说明了苏茨克维对 AI 安全的深刻承诺以及他为原则甘愿冒一切风险的意愿。但它也说明了这种单边做法的危险,略带一种宗教狂热的色彩。

2024 年 5 月,Ilya 与 OpenAI“分道扬镳”,许多人认为这一结果不可避免[53]。Sam Altman 在一封尊重的内部消息中宣布了苏茨克维的离开,称他“显然是我们这一代最伟大的头脑之一”,并哀悼失去了一位一代人一遇的智力人物,他的影响力从一开始就塑造了 OpenAI[54]。同一周,苏茨克维在 Superalignment 团队的联合负责人 Jan Leike 也辞职了,理由是对 OpenAI 发展方向的信任正在削弱[55][56]。随着两位领导人的离开,OpenAI 解散了 Superalignment 团队[57]。Ilya 的离开将始于 GPT-2 的不安转化为某种个人且重要的东西。

1.2 GPT-2 争议

2019 年 2 月 14 日,《卫报》发表了一篇题为《新的 AI 假文本生成器可能过于危险而无法发布,创制者如是说》的文章[58]。该文章病毒式传播,并突出了 OpenAI 决定不发布完整版 GPT-2 模型,理由是担心恶意使用。文章配发了一张乔治·奥威尔的黑白照片,他嘴里叼着烟,唤起了一种反乌托邦的调性,呼应了《1984》的主题。文章中对奥威尔的提及以及第二行中的“文本深度伪造”一词,建立了生成式人工智能新兴能力与虚假信息潜力之间的联系。

GPT-2 是一个基于 transformer 的语言模型,拥有 15 亿个参数,训练数据来自从 Reddit 抓取的约 800 万个网页。它是 GPT-1 的直接扩展,参数和训练数据量增加到 10 倍以上。Vox 的 Kelsey Piper 写道,GPT-2 是“我见过的最酷的 AI 系统之一”,如此像人类,以至于它“可能也是那个会让我失业的系统”[59]。记者们对 GPT-2 的零样本能力感到惊叹。无需任务特定训练,它就能根据标题生成新闻文章或回答阅读理解问题,取得对语言模型来说似乎难以想象的结果[60]。

TechCrunch 报道说,GPT-2 比之前的模型产生“更长、更连贯的文本”,称其相比原始 GPT-1 模型有了巨大的进步[61]。甚至 OpenAI 的研究人员也感到大吃一惊,当该模型产生了一篇有说服力的、论证一个反直觉观点的文章时,将其描述为“你可以提交给 SAT 并获得好成绩的东西”[62]。这样的轶事迅速传播,激发了人们兴奋地认为 AI 已经达到了一个新的复杂水平,事实确实如此。

GPT-2:“奥维德的独角兽”及其影响

“奥维德的独角兽”示例

该模型的技术意义在精选的“奥维德的独角兽”示例中得以体现。从一个关于在安第斯山脉发现会说英语的独角兽的异想天开的提示开始,GPT-2 生成了多段风格上看似合理的文本,包括一位虚构的科学家、一个大学隶属关系,以及新闻惯例,如先以全名介绍科学家然后仅用姓氏称呼,还有虚构的引文。这一切都没有显式的记忆机制。尽管 GPT-2 仍然幻觉出“四角独角兽”和“水下燃烧的火焰”,揭示了其脆弱的底层“世界模型”,但这篇散文令人信服的形式和长程连贯性重置了人们对语言模型能力的期望。该模型的流畅性对于习惯于早期模型的专家来说是大开眼界,因为早期模型很快就会偏离正轨。

规模与社区认可

但一些研究人员指出,虽然 GPT-2 的底层技术并不新鲜,但其规模带来了差异。“这里没有算法贡献……他们只是‘扩大规模’了先前的研究,但看到这些扩大规模后的模型究竟有多强,本身就是一项重要的贡献,”一位研究人员指出,并补充说“如果我把 [GPT-2] 独角兽故事给同事看……并告诉他们这是 AI 生成的,我想他们不会相信我”[63]。社区承认 GPT-2 证明了扩大规模可以产生惊人的新性能水平。

OpenAI 的立场转变与有限发布

OpenAI 将 GPT-2 描述为“如此优秀……且恶意使用的风险如此之高”,以至于它“打破了其开放发布和出版的常规做法”。GPT-2 是未来事物的入门读物,包括 GPT-3、缩放定律、涌现行为以及 OpenAI 董事会政变。它还反映了过去的情况,当时发布是默认的,共享模型是常态。

而不是发布完整模型,OpenAI 提供了一个小得多的 1.24 亿参数版本,大致与 GPT-1 大小相同,以及一篇作为“负责任披露的实验”[64] 的研究论文。完整的 GPT-2 模型、训练数据和代码均被扣留,这与 OpenAI 早期开放出版的承诺重大背离,并转向更保守、选择性的策略。

有趣的是,这种立场的变化早有预示。2018 年,在 GPT-2 发布前近一年,OpenAI 悄悄更新了其章程,反映了其在日益不稳定的技术环境中角色的演变。修订后的章程指出:“我们致力于提供帮助社会走向 AGI 的公共产品。今天,这包括出版我们的大部分 AI 研究,但我们预计安全和保障问题将减少我们未来的传统出版,同时增加分享安全、政策和标准研究的重要性。”因此,GPT-2 的有限发布看起来不像是对技术突破的突然反应,而更像是已开始的机构转变的第一个公开信号。

风险场景与深度伪造

尽管如此,OpenAI 将其决定基于特定风险。一篇官方博客文章概述了几个证明更谨慎发布是合理的场景。担忧包括生成误导性新闻文章、在网上冒充个人、制作侮辱性或虚假的社交媒体内容,以及自动化垃圾邮件和钓鱼活动。OpenAI 辩称,这些场景意味着像 GPT-2 这样的模型在错误手中可能很危险。“技术正在降低生成虚假内容和进行虚假信息活动的成本,”博客警告说,并指出需要对文本持怀疑态度,就像“深度伪造”教会人们对图像持怀疑态度一样。

深度伪造是 AI 生成的逼真合成视频或图像,展示人们做或说他们从未真正做过的事。到 2019 年,它们已经引发了公众关注。基于伊恩·古德费洛在 2014 年提出的生成对抗网络(GAN)框架,这些模型让生成器与判别器对抗,以产生越来越令人信服的伪造品[65]。想象一下,一个伪造者画出赝品杰作(生成器),而一位艺术专家试图识别这些假货(判别器)。每次专家发现一个假货,伪造者就会学习并改进。随着时间的推移,这种竞争使得区分假货和真品变得越来越困难。GAN 很快与道德风险联系在一起,包括未经同意的色情内容、虚假信息和操纵媒体。“文本深度伪造”作为对大规模生成令人信服的合成文本的警示。

媒体争议与专家辩论

扣留模型的决定被呈现为一种主动的发布策略,以便社区有时间讨论其影响。OpenAI 承认“我们不确定今天这是不是正确的决定”,但表示希望它能鼓励关于 AI 发布规范的更细致讨论,类似于生物技术和网络安全等领域的辩论。2019 年,将模型视为双重用途技术而不是学术出版物并强调安全性是非传统的。毫不奇怪,这一决定遇到了震惊、怀疑,有时甚至是嘲笑。

媒体将 GPT-2 描绘成一个危险的“虚假新闻生成器”,吸引了公众对其能力和风险的关注。Wired 发表了一篇题为“太危险而不能公开的 AI 文本生成器”的报道,并引用了一位 OpenAI 工程师对 GPT-2 逼真度的惊叹:“它看起来相当真实”,担心它可能使“有恶意意图的人……生成高质量的虚假新闻”[66]。TechCrunch 以直白的标题“OpenAI 构建了一个如此优秀的文本生成器,被认为太危险而不能发布”呼应了这一报道[67]。

相反,许多专家认为这种叙述掩盖了更细致的讨论。当时在加州理工学院担任 AI 教授兼 NVIDIA 机器学习研究总监的 Anima Anandkumar 告诉 The Verge,OpenAI 的方法从安全角度来说是不必要的,并且最终对 AI 研究的进步有害。该领域的其他人也持有相同观点,指出当涉及风险时,开放出版尤为重要,因为透明度使研究人员能够识别和开发保障措施[68]。

许多人开玩笑说 OpenAI 已经变成了“ClosedAI”,这是对该组织偏离其开源根源的评论。“ClosedAI”模因在 2019 年在 X 和 Reddit 上广泛传播[69]。社区怀疑 OpenAI 的谨慎是一种宣传手段。怀疑论者指出,戏剧化的框架引发了媒体炒作,提升了 OpenAI 的形象,并出现了“OpenAI 受到炒作驱动”的指控[70]。尽管这场争议引起了关注,但与 OpenAI 即将从 GPT-3 和 ChatGPT 等模型获得的巨大公众关注相比,它只是小巫见大巫。

辩解与后续

尽管有批评,OpenAI 仍认为谨慎的方法是必要的。政策研究员 Miles Brundage 强调,目标不仅仅是关注 GPT-2,而是提高对更广泛风险的认识:“我们试图突出 GPT-2 的当前能力以及更广泛类别系统的风险。”当然,这种立场似乎矛盾:它声称 GPT-2 出于谨慎而被扣留,但这一举动通过指向未来系统的风险来证明合理。如果 GPT-2 本身没有构成那种风险,那么扣留它就无法在 GPT-2 特定的安全理由下得到辩护。

OpenAI 在 2019 年 8 月 20 日发布的一篇题为“GPT-2:6 个月后续”的博客文章中澄清了其立场[71]。该文章概述了分阶段的发布策略,从 2 月的 1.24 亿参数模型开始,接着是 5 月的 3.55 亿参数模型,然后是 7.74 亿参数模型以及六个月的后续。

1.2 GPT-2 and the Emerging Safety Debate

这种分阶段发布的方式很快影响了该领域的其他机构。到 2019 年底,最初由一家实验室做出的决定已经演变为一场关于如何管理可能被滥用的、日益通用的 AI 系统的社区对话。与华盛顿大学合作,Hugging Face 和艾伦人工智能研究所采用了类似的策略来发布他们的语言模型 Grover [72][73]。2022 年,谷歌以伦理考量为由,未公开发布 Imagen 扩散模型 [74]。2023 年,Meta 限制了 LLaMA 1 的访问权限,仅向经批准的学术研究人员、政府机构和公民社会组织提供。

回顾过去,围绕 GPT-2 的争议之所以引人注目,并不是因为这个模型特别出色。至少以今天的标准来看,它并不出色。GPT-2 也不特别危险。2019 年 11 月,OpenAI 在发布完整的 15 亿参数 GPT-2 模型时也承认了这一点,指出“我们目前还没有看到滥用的有力证据” [75]。但 GPT-2 是尚未到来的风险的早期例证。它的意义在于它作为未来事物的预兆所扮演的角色。

我们现在知道,更强大的模型很快就会出现。事实上,有些模型在公开发布后不久就被撤回了。2022 年 11 月,Meta 在发布 Galactica 三天后就将其下架,原因是担心其听起来权威的错误信息 [76]。2024 年,谷歌也遵循了类似的模式,在为其历史不准确的输出道歉几天后,就下架了 Gemini [77]。回想起来,曾经被认为是对 GPT-2 的过早谨慎,越来越像是对即将到来的艰难决策的预览。

GPT-2 标志着 AI 社区首次公开面对创新与加速之间的张力,以及风险缓解与安全之间的张力。如今,随着语言模型编写代码、总结会议和模仿公众人物,GPT-2 的那一刻几乎显得有些过时了。尽管如此,它标志着 75 年研究中第一次有人按下暂停键,尽管猜测 AI 风险和控制一直是研究人员的最爱消遣,从图灵和维纳到古德和明斯基,再到博斯特罗姆和尤德科夫斯基。这些讨论基本上仍然停留在理论、哲学层面,或被降级到脚注。从这个意义上说,GPT-2 象征着一个文化时刻,标志着 AI 的第一次重大分裂。

但 GPT-2 的决定并没有缓解任何紧张局势。事实上,通过宣布该模型“危险到无法发布”,OpenAI 打开了潘多拉魔盒。通过公开承认既不存在也不被理解的风险,OpenAI 触发了一系列事件。这一刻预示着后来爆发的危机,导致了一场缓慢的进程,最终 OpenAI 董事会以模糊的安全担忧为由解雇了 CEO 萨姆·奥特曼。

各种理论流传,认为 Sutskever 在发现某种危险能力或存在性风险后将 Altman 赶下了台。社区抓住了这个神秘事件,产生了无数帖子和推测性线索 [78][79]。许多人执着于那个令人不安的问题:是什么吓到了 Ilya。这个迷因成为某种更深层事物的简写,强调了 AI 核心的历史焦虑。它反映了一种日益增长的怀疑,即最接近前沿的人可能正在看到尚未被广泛理解的行为或轨迹。结合 Sutskever's List 的传说,它描绘了社区对他的看法。对一些人来说,他是一个安静、几乎孤僻的人物,对现代 AI 的方向有着不寻常的洞察;对另一些人来说,他是该领域最成就卓著的工程师之一,在不确定性中航行 [80]。

1.3 The list

传奇游戏开发者约翰·卡马克面临着一个挑战。在用《德军总部》、《雷神之锤》和《毁灭战士》等标志性作品重塑了游戏世界之后,卡马克将好奇心转向了 AI。但 AI 是一片未知的领土。在与 OpenAI 创始人的招聘会议上,卡马克问他如何加快学习。作为回应,伊利亚·苏茨克维递给他一件很快有了自己生命的东西:一份精选的阅读清单,苏茨克维承诺这将提供 AI 中“今天真正关键的 90%”。

卡马克将这个挑战放在心上。“我做了。我埋头苦读了所有那些东西,它开始在我脑海中理清 [AI]。”

当卡马克透露他拥有这份清单时,它立即抓住了 AI 社区的想象力。一位著名技术专家的认可为这份清单的重要性增添了分量。它承诺将穿透数千篇出版物的噪音,直接指向最关键的想法。卡马克被关键进展是“不是极端的黑魔法数学巫术”所震撼。他补充说,“很多都是相对简单的技术,在我理解它们之后,它们对我来说完全合理” [81]。这种令人安慰的后见之明——一旦理解,复杂性就会简化为简单——鼓励了新人,使 AI 看起来易于接近。

在快速发展的领域中,读者能从这么少的参考中获取“重要的 90%”这一概念是诱人的。苏茨克维亲自策划了这份清单,这增加了吸引力,尤其是考虑到他谨慎的在线形象。尽管在 X 上有超过 48.1 万粉丝,他发帖很少,这只会增加神秘感。苏茨克维的沉默将一份可能普通的阅读清单变成了一个图腾。

然而,尽管卡马克在采访中经常提到这份清单,其内容仍然未被披露。有趣的是,这种保密并没有让人们失去兴趣。事实上,它产生了相反的效果。随着消息在论坛和社交媒体上传播,兴奋感加剧,尤其是在 ChatGPT 流行之后。ChatGPT 于 2022 年 11 月发布,在推出后的两个月内就吸引了超过 1 亿用户 [82]。这起到了催化剂的作用,重新点燃了对这份清单的好奇心。到 2023 年初,兴趣达到了顶峰。一个 Hacker News 帖子“伊利亚·苏茨克维给约翰·卡马克的清单上有哪些论文?”引发了超过 130 条评论的推测和众包猜测 [83]。太多人想要这份清单,以至于卡马克在 X 上发帖,表达了他希望 Ilya 将其公开的愿望。卡马克写道,“来自领先人物的权威参考清单会受到许多人的赞赏” [82]。但这从未发生。

这个谜团引发了一场寻宝,AI 爱好者试图用线索和二手报告来重建这份清单。2023 年,一位研究人员编制了一个可能的版本并在线分享,重新点燃了对话。它至今已被观看近百万次 [84][85][86]。本书采用了这个精心重建的版本。

围绕苏茨克维清单的阴谋论随着时间的推移而增长,它成为了一个共同的文化试金石。“你读过苏茨克维的清单吗?”成为询问某人是否了解现代 AI 研究基础的简写,即使他们实际上并没有读过清单上的条目。仅仅知道这份清单就带有一定的声望。

今天,某种神话仍然依附在它身上,部分原因是 Ilya 从未正式发布它,尽管卡马克公开督促。矛盾的是,苏茨克维的沉默增强了它的吸引力,吸引了从热切的爱好者到好奇的图书出版商的所有人,其中一些人,我可以亲自证实,发现诱惑不可抗拒。我怀疑原因是——在一个突破层出不穷的领域中——关于稳定经典的概念有着独特安慰的东西。但对许多人来说,这不仅仅是一份阅读清单。许多人看着苏茨克维的清单,试图解读他的世界观。伊利亚·苏茨克维究竟认为我们需要理解关于 AI 的什么?这份清单是给安全鹰派的吗?对齐信仰者?AGI 的朋友?从业者?一句话,是的。

该列表包含了定义计算机视觉深度学习革命的论文,如 AlexNet 和 ResNet。它还重点介绍了基于注意力的神经网络,如 Pointer Networks 和 Transformers。循环神经网络和长短期记忆(LSTM)网络也占有重要地位,反映了基于注意力架构之前主导的自然语言处理范式。该列表还包括教学作品,如斯坦福大学的 CS231n、Andrej Karpathy 的《循环神经网络的不合理有效性》、Chris Olah 有影响力的散文《理解 LSTM 网络》,以及 Alexander “Sasha” Rush 的《带注释的 Transformer》。

该列表突出了工程创新,包括像 GPipe 这样的论文,详细介绍了训练大模型的流水线并行。它还涵盖了缩放定律,包括 OpenAI 的 2020 年研究,该研究展示了模型性能如何随着规模的增加而提高。这些论文强调了 Sutskever 对粗暴缩放能推动前沿多远以及代价多大的兴趣。

该列表不止于工程壮举或新的架构设计。它还包括关于最小描述长度、柯尔莫哥洛夫复杂性和算法随机性的论文——这些都是 Ilya 在访谈中经常讨论的话题。Scott Aaronson 的博客《复杂动力学的第一定律》和他的异想天开的《咖啡自动机》的出现表明了对复杂理论的开放态度。

简而言之,Sutskever 的列表最好被解读为一份紧凑的课程大纲,涵盖了塑造现代深度学习的思想,从 CNN 和序列模型到注意力、缩放以及使这些系统在实践中工作的工程模式,同时绕道复杂性和基于压缩的直觉。

这本书主要按主题分析列表上的论文,尽管它仍然以松散的时间顺序进展,连接概念线索。每篇论文都得到专门关注,包括其技术和文化意义,尽管有些论文被更简洁地处理。放心,列表上的每篇论文都将被探索,而不遗漏任何重要的见解。

此外,虽然列表指导了书的核心叙事,覆盖了从 2012 年到 2022 年的大约十年,但我们的探索扩展到了这个窗口之外。这本书选择性地引入了早期和后来的研究,以提供关键背景,照亮盲点,澄清 Sutskever 更广泛的哲学视角,并追踪连接旧研究与现代实践的线索。仍然,主要焦点牢牢地固定在这些核心论文及其直接的智力环境上。因此,这本书不打算成为 AI 的完整历史,也不打算解决谁应该因各种创新而获得信用的棘手问题。

此外,Manning 书籍通常采用“心智模型”方法,为读者提供由作者的经验和见解塑造的清晰概念框架。但这本书不同。这里呈现的心理模型并不完全是我自己的;相反,它反映了 Ilya Sutskever 的世界观,直接源自列表中的主题和论文,并进一步由他的公开声明和访谈塑造。通过解开 Ilya 的心理模型,读者获得的不仅仅是历史背景:他们获得了一个概念工具包,用于解释过去的发展、预测未来的转变,并指导实际的工程权衡。简而言之,这本书提供了概念清晰度,并在适用的情况下提供了实际见解,所有这些都通过 Ilya 的眼睛来看。

考虑到这一点,让我们介绍 Sutskever 世界观的基础主题。考虑以下初步见解,不是作为明确的结论,而是作为起点,我们将随着更深入地探索塑造现代 AI 的思想而完善它们:

  • 不要押注深度学习——Ilya 明确相信“不要押注深度学习” [87]。这一信念反映在列表中,该列表强调深度学习及其成功,而省略了对旧符号方法和经典规划的提及。值得注意的是,强化学习(RL)也缺失了,尽管 Sutskever 领导了 OpenAI 在 RL 上的早期工作,以及它在 AlphaGo 和 OpenAI Five 等项目中的作用。相反,该列表几乎完全专注于监督和自监督深度学习。

  • 工程务实主义——该列表优先考虑大规模工程努力,而不是纯粹的理论创新。有影响力的项目,如 AlexNet 和 Deep Speech 2,说明了这种哲学,将成熟的技术与大量的计算资源结合起来,提供前所未有的实际性能提升。虽然批评者将这种方法斥为仅仅是渐进的“工程”而不是创新的“科学”,但 Ilya 认为,实际的进展来自务实的实验、迭代改进和实际部署,而不是孤立的理论洞察。

  • 在规模下用更少做更多——Sutskever 的研究哲学是,真正的进步源于在规模下完善想法并通过实验发现有效的方法。例如,ResNets 引入了一个称为残差连接的简单架构技巧,解锁了极深模型的训练 [88]。Transformers 用可并行注意力取代了循环架构。即使像“顺序重要”这样一篇较为冷门的论文,也探讨了如何重新排列序列数据可以使训练更高效。这些例子强调了概念上的简单性和规模下的实际结果,并符合 Ilya 对“以最小创新获得最大结果”的偏好 [89]。

  • 涌现与压缩——Sutskever 的列表探讨了柯尔莫哥洛夫复杂性、最小描述长度(MDL),甚至是一篇思考封闭系统中复杂性如何上升然后下降的文章,暗示了他思维中的哲学倾向。为什么一个忙碌的 AI 工程师会推荐阅读关于算法随机性或“咖啡自动机”的内容?可能是因为 Sutskever 将智能视为一个压缩过程,产生更简单、更抽象的复杂现象表示。在这种观点下,当系统能够将原始经验提炼成最小的、可泛化的形式时,智能就涌现了。

例如,ResNets 引入了一个称为残差连接的简单架构技巧,解锁了极深模型的训练 [88]。Transformers 用可并行注意力取代了循环架构。即使像“顺序重要”这样一篇较为冷门的论文,也探讨了如何重新排列序列数据可以使训练更高效。这些例子强调了概念上的简单性和规模下的实际结果,并符合 Ilya 对“以最小创新获得最大结果”的偏好 [89]。

带着这种概念框架,让我们接下来转向 Sutskever 的列表。在残差网络、变换器和缩放定律之前,有 AlexNet。它标志着一个时代的结束和另一个时代的开始。

2 AlexNet 时刻

本章涵盖

  • 对人工神经网络的怀疑

  • AlexNet 之前的特征工程

  • 训练人工神经网络的困难

  • ImageNet 在 AlexNet 成功中的作用

  • AlexNet 时刻和技术创新

论文

  • ImageNet Classification with Deep Convolutional Neural Networks (2012) Krizhevsky, Sutskever, and Hinton

2012 年,Ilya 与 Alex Krizhevsky 和 Geoffrey Hinton 一起训练了一个卷积神经网络来分类图像。他们的网络通过显著降低新兴的 ImageNet 大规模视觉识别挑战赛(ILSVRC)中的错误率,震惊了 AI 社区。AlexNet 实现了 15%的 top-5 错误率,显著优于依赖手工特征工程的传统方法,后者的错误率约为 26%。top-5 错误率衡量了正确答案不在模型前五个预测中的频率。

虽然原始论文没有明确命名模型,但社区采用了“AlexNet”,遵循一种非正式的传统,以主要作者命名有影响力的网络,如之前以 John Hopfield 命名的 Hopfield Networks(1982)、以 Yann LeCun 命名的 LeNet(1998)以及以 Dan Ciresan 命名的 DanNet(2011)[1][2][3]。后来的模型,如牛津大学视觉几何组的 VGGNet 和 ResNet(第 3 章),转向了更具描述性或品牌化的名称,通常由作者直接选择。然而,在经历了多年的失败之后,AlexNet 证明了人工神经网络(ANN)在模式识别方面非常有效[4]。

AlexNet 论文已成为高引论文。到 2025 年春天,它已被引用超过 174,000 次。虽然一些报告警告说这些模型仍然脆弱,需要大量数据,有时会做出奇特的错误,但那段时间的整体基调是庆祝性的。革命似乎已经到来。AlexNet 将 ANN 从投机的好奇心转变为战略投资,标志着学术界、工业界和公众认知的根本转变。可以说,这一刻将深度学习从一种小众兴趣转变为全球现象。

然而,要感受到 AlexNet 时刻的全部重量,我们必须理解它所进入的世界。这包括它所违背的假设、它之前的失败,以及那些相信它会成功的人的默默坚持。

今天,ANN 已被视为理所当然,但它们的历史往往是短暂的热情和长期的幻灭。复兴始于 1980 年代,当 David Rumelhart、Geoffrey Hinton 和 Ronald Williams 推广反向传播,这为训练多层 ANN 提供了实用算法[5]。当 ANN 根据训练数据的反馈调整其权重和偏差以最小化预测误差时,它就正在学习。这个学习过程由一个损失函数引导,该函数衡量模型预测与正确答案之间的差异。模型通过梯度下降迭代更新其参数,以最小化损失并提高性能。反向传播计算损失相对于网络中每个权重的梯度,使模型能够在训练中减少误差。这一突破重新燃起乐观情绪,并为现代深度学习奠定了基础。

几年后,LeNet-5,以其五层架构命名,展示了一种称为卷积神经网络(CNN)的专用 ANN 的潜力。在手写数字识别方面的令人印象深刻的性能表明,CNN 可以扩展到现实任务,但这一承诺并未实现。训练更深的网络具有挑战性,大型数据集稀缺,计算能力仍然有限。虽然连接主义技术在小问题上显示出潜力,但它们没有泛化,势头减弱。到 1990 年代末,ANN 被视为死路。一位观察者回忆说,“[artificial] 神经网络已成为 backwater”,“许多研究人员已经离开”[6]。事实上,在整个 1990 年代和 2000 年代,ANN “几乎被完全抛弃,研究人员转向其他方法”[7]。

学术界围绕具有坚实理论基础和有限数据上良好性能的方法组织。例如,支持向量机(SVM)是绘制类别之间清晰边界的分类器。SVM 因凸优化而流行,这是一种吸引人的数学属性,确保可以高效地找到全局最优解[8]。

与 SVM 相比,ANN 缺乏理论保证。它们难以分析,并被正确地视为缓慢的黑箱。在高维数据上训练多层网络可能需要几天时间,通常导致爆炸或消失梯度等问题,我们将在后续章节详细讨论。

此外,这些网络在没有大型数据集的情况下容易过拟合,而大型数据集几乎无法获得。它们还倾向于陷入糟糕的局部最小值或误差低但不是最低的点,阻止进一步改进。缺乏今天的数据、计算资源和架构改进,那个时代的 ANN 未能交付承诺的收益,促使许多研究人员放弃它们[9]。正如 Geoffrey Hinton、Yann LeCun 和 Yoshua Bengio 在 2015 年的一篇深度学习评论中指出的那样,即使是 1990 年代有些成功的 CNN,也“被主流计算机视觉和机器学习社区抛弃,直到 2012 年 ImageNet 竞赛”[10]。

只有少数信仰者在这段时间里保持了研究活力。Hinton、LeCun、Bengio、Jürgen Schmidhuber 和其他少数人在 2000 年代继续发展思想。他们的努力,包括 Hinton 在 2006 年关于深度信念网络的研究和 Bengio 在 2007 年的贪婪逐层训练,得到了承认,但未能说服更广泛的学术界,后者仍然持怀疑态度[11][12][13]。普遍的智慧更青睐更实用的方法。事后看来,这些研究人员在人工智能冬天维持了这一领域。然而,AlexNet 的关键优化见解最终弥合了这些休眠的理论思想与实际突破之间的差距。

2.1 特征工程

要理解 AlexNet 突破的意义,我们必须理解它所颠覆的主导范式。在 2000 年代,所有高性能计算机视觉系统都依赖手工制作的分层特征管道。局部描述符如 SIFT(尺度不变特征变换)和 SURF(加速稳健特征)用于检测和描述图像块[14][15][16]。同时,词袋模型、量化 SIFT 描述符的直方图和空间金字塔编码全局表示[17]。这些全局表示将局部块描述符如 SIFT 和 SURF 转化为图像的单个直方图“词汇”。研究人员随后将这些工程特征输入浅层学习算法,如 SVM 和提升决策树,这些算法直接将输入特征映射到输出,而不学习中间或分层表示。这种方法非常稳定,并在整个时期持续提供最先进的结果。即使在 2012 年,PASCAL Visual Object Classes (VOC) 挑战赛的获胜作品也使用了这种方法。

计算机视觉研究人员偏好手工特征,因为它们融入了关于视觉不变性的先验知识。例如,SIFT 被设计用于考虑尺度和旋转变化,而 HOG(梯度方向直方图)有效地捕获边缘模式以进行形状检测。这些特征被认为是可靠和可解释的,因为研究人员可以解释它们正在测量什么。

手工设计特征的稳定性伴随着隐藏的代价。它硬编码了关于“信号”应该是什么样的特定想法,当现实不符合时,模型没有能力修订这些假设。少数人,包括 Ilya Sutskever,已经开始注意到这一点[18]。基于 HOG 的检测器可能对无关的边缘模式做出强烈响应,或难以处理轻微的图像扭曲,例如在一片水中检测到“汽车”,而学习到的 CNN 特征可以更好地处理这种情况[19]。在这种情况下,分类器忠实地分离了它所获得的输入。失败是上游的,其中特征表示将类似汽车的边缘与汽车混淆了。见图 2.1。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH02_F01_Heimann.png

图 2.1 该图显示了一只鹅在游泳(上方),其中目标检测器错误地将一小片波纹水面标记为汽车。图像下方有三个可视化,澄清了此错误的来源:水斑的特写(左)、对应的 HOG 特征(中)以及一个专门的可视化(右),显示波纹水面的特征在 HOG 特征空间中与汽车相关的特征相似。经主要作者(Carl Vondrick)许可使用。

相比之下,使用 ANN 的自动特征学习是不透明的,并且依赖于大型数据集。当时的普遍观点是,有效的特征需要通过手工创建[20]。少数持不同意见者认为特征应该直接从数据中学习,但没有人成功。这些论点仍然停留在理论上,因为没有学习到的特征能够匹配像 SURF、HOG 或 SIFT 这样的方法的性能[21]。该领域更信任人类直觉而非数据,并认为特征是设计出来的,而不是发现出来的。

可变形部件模型(DPM)体现了深度学习前时代的心态[22][23]。HOG 和 SIFT 捕获了训练数据中存在的特定形状信息。当与 SVM 结合时,它们在诸如行人检测等任务上取得了强大的性能[24]。到 2000 年代末,这种方法已被改进为 DPM,它使用 HOG 特征和潜在结构化 SVM 来将物体表示为具有可学习空间关系的部件集合[25]。虽然 DPM 增加了一些几何灵活性,但它也引入了硬负样本挖掘,其中每个假阳性都被作为硬负样本添加回训练集。然后重新训练模型以围绕该错误雕刻出新的决策边界。DPM 不仅仅是在 PASCAL 上训练的。它的几何形状实际上是围绕数据集的统计特性塑造的。这种高性能掩盖了泛化能力差的问题。事后看来,DPM 是手工工程特征的最高水位标志[26]。

这些弱点无意中塑造了研究重点。2011 年,Alexei“Alyosha”Efros 和 Antonio Torralba 强调了这些问题,对最佳手工制作流程的稳健性提出质疑[27][28]。计算机视觉已经变得由基准驱动和数据集绑定,针对人为设计的基准上的性能进行优化,而不是真实世界的泛化。无论是有意还是无意,计算机视觉正在为自身选择的成功定义进行优化。Efros 和 Torralba 暴露了整个领域的盲点,一旦多层 ANN 可以端到端训练,一切崩溃了。但最终验证他们承诺的突破仍在前方,不仅需要算法创新,还需要根本性的思维转变。

2.2 AlexNet 前的怀疑

在这个时代,机器学习的许多领军人物怀疑 ANN 能否与既定方法竞争。Jitendra Malik,加州大学伯克利分校著名的计算机视觉研究者,体现了定义该领域的学术怀疑。他的立场反映了更广泛的“show-me”态度,即研究者要求清晰的实验证据。意识到这种怀疑,Geoffrey Hinton 在 2011 年接近 Malik,询问什么样的证据会令人信服。Malik 回答说:“你真的想给我留下深刻印象吗?展示给我看它们能处理 PASCAL VOC 挑战”[29]。

Malik 的回应反映了一种类似于罗素茶壶的哲学立场,其中举证责任在于主张者,而不是他人去反驳它。毕竟,Malik 的怀疑在当时是合理的。尽管在较小的欧洲视觉挑战中取得了一些有希望的胜利(包括 DanNet),ANN 尚未在该领域最受关注的基准测试中取得明确突破,在这些基准测试中,手工制作的特征流程仍然是标准。视觉社区正在等待足够有力的证据来克服有根据的怀疑。虽然这在任何科学学科中都是健康的态度,但交流的语气也可能揭示出一个曾经受过伤害的领域。

许多人觉得,“我们在 1990 年代尝试过人工神经网络,但它们不起作用。为什么现在它们会起作用?”过去的失败历历在目,失望坚定了这种普遍情绪。社区没有忘记始于 1980 年代并在 1990 年代末“失去势头”的 ANN“第二波”[30]。年轻研究者继承了这种怀疑,常常将 ANN 视为过时和非正统的[31]。到 2011 年,该领域变得难以置信,采取了“show me, don’t tell me”的立场。任何理论承诺或轶事成功都不够;研究者要求被淹没,但不是被仅由数据驱动的改进所淹没。

一位明确表达这种怀疑的研究者是 Alyosha Efros,他认为 ANN 中许多表面上的突破更多是由更大的数据集驱动的,而不是真正的算法创新。与当时的许多人一样,Efros 不相信 ANN 从规模中受益的方式与更简单的模型根本不同。他相信, given enough data,一个更简单的方法可以表现得一样好。实际上,他的批评表明,ANN 研究者(通常被称为连接主义研究者)将他们有限的成功过多地归功于他们的架构,而过少地归功于他们的训练数据[32]。

Efros 回忆说,他审阅了一篇 2008 年的论文,其中 ANN 在图像定位方面优于他早期的工作。怀疑这种收益来自更大的数据集,他要求作者在相同数据集上评估一个简单的最近邻算法。该方法通过将新点与所有已知示例进行比较并根据最接近的匹配进行标记来工作。它纯粹依赖于数据相似性,而不是学习到的特征。作者发现 ANN 并不比这种简单方法更好。“如果你保持数据规模不变,花哨的[artificial]神经网络并不比简单的最近邻更好,”Efros 说。他补充说,“我不是说‘忘记[artificial]神经网络……但在这个特定设置下,确实是数据在承担所有的主要工作”[33]。随着该领域开始关注更大的数据集,这种观点获得了 traction。 “大数据”的兴起强化了这样一种观点,即数据规模而不是架构是进步的主要引擎,数据被称为“新石油”[34][35]。

2009 年,在谷歌期间,Alon Halevy、Peter Norvig 和 Fernando Pereira 发表了“数据的不合理有效性”,一篇短文,至今已被引用超过 2700 次[36]。他们认为,对于许多自然语言处理问题,限制因素不是我们语言理论的优雅或我们建模机制的复杂性,而是覆盖范围。因此,扩大数据规模,即使它是噪声和未标注的,也使得学习重要的尾部事件成为可能,而这些事件是较小的、经过策划的语料库所无法包含的。他们的挑衅并不是说建模选择从不重要,而是说一旦训练集变得足够大,来自额外结构的边际收益会缩小。该论文直截了当地指出:“简单的模型和大量的数据胜过基于更少数据的更精细模型。”

这一立场与 Efros 的批评一致,即没有数据,“华而不实”的模型不过是精致的脚手架,而像最近邻这样的简单基线却可能显得惊人地有竞争力。在这种精神下,《数据的不合理有效性》一文将规模而非架构视为决定性因素,将数据视为通用的均衡器,并暗示任何统计方法都能从规模中受益。该论文没有提及 ANNs;相反,它强调了 n-gram 语言模型。这些简单的统计模型根据前面的短序列来预测单词(例如,“the cat” → “sat”)。这一概念在论文中出现了七次[37]。当时,甚至谷歌也认识到追求 ANNs 的徒劳。

教训很明确:ANNs 并非炼金术。它们不会仅凭结构就变出智能。充其量,它们反映了训练数据,这使许多人得出结论,任何拥有更多数据的方法可能就足够了。《数据的不合理有效性》和 Efros 更广泛的批评都认为,研究人员首先应该收集更多的数据。在这种观点下,更好的性能来自于给即使是普通的统计方法提供足够的材料来工作。

在民间故事《石头汤》中,一位饥饿的旅行者来到一个村庄,村民们坚持说他们没有多余的食物。旅行者毫不气馁,开始用几块石头烧水,并随口说如果加些胡萝卜、洋葱、大麦甚至鸡肉会更好吃。村民们一个接一个地贡献出缺失的配料。最后,锅变成了一顿令人愉悦的集体餐,村民们惊叹于如此美妙的汤竟然是用几块石头做的。

现代的重述中,研究人员承诺创造人工智能[38][39]。研究人员表示,如果拥有他们的所有数据,包括图像、文本、来自人类反馈的强化学习以及日益精细的提示,它会表现得更好。用户欣然顺从。最终的系统被赞为仿佛是智能的唯一来源,尽管实质内容来自倒入锅中的集体贡献[40]。

这种现代重述中有相当的真理性。该领域需要更多的配料,数据并没有得到足够的信任。然而,与故事的通用配方不同,并非所有算法都能平等受益。虽然更多数据更好的信念正在合理地获得势头,但数据本身是通用均衡器的想法掩盖了一个更深层的真相:一些架构从规模中受益不成比例。ImageNet 很快将提供丰富的数据,但它并没有使该领域民主化,而是加冕了一个单一的冠军,而且它不是 SIFT+SVM、最近邻,甚至不是 n-gram。

2.3 ImageNet

Jitendra Malik 对 Hinton 的挑战是明确的:“证明给我看他们能处理 PASCAL VOC 挑战”[41]。PASCAL VOC 是一个规模适中但标注精细的数据集,也是计算机视觉算法的激烈试验场。对 Malik 来说,VOC 是一个严肃的基准,能够区分炒作与实质。“证明给我看他们[人工神经网络]能处理一些严肃的东西,”Malik 补充道。Hinton 回答:“没运气,它太小了。”Hinton 坚持要一个替代方案。Malik 告诉 Hinton:“好吧,如果不是 PASCAL,那就去赢 ImageNet。”如果 ANNs 要超越手工范式,这将是他们必须证明自己的地方[42]。挑战已发出。

人工智能研究员李飞飞于 2006 年开始在普林斯顿开发 ImageNet。该项目的灵感来自认知心理学家欧文·比德曼,他试图解释人类视觉识别的非凡效率。比德曼提出,可识别的物体如桌子、灯和杯子是由有限的基本形状组成的,即“geons”(几何图标),包括圆柱体、方块、楔形、锥体和甜甜圈形状的环[43]。在确定了 36 个这样的 geon 之后,他认为人类能感知大约 30,000 种有意义的形状组合,这个数字被称为“比德曼数字”。这种认知理论与大规模视觉分类的融合为 ImageNet 提供了概念基础[44]。ImageNet 数据集和随附的论文于 2009 年发布,首次大型比赛在次年举行。

十一支队伍参加了首届比赛,获胜作品结合了手工描述符——包括 SIFT 和局部二值模式(LBP)——与 SVM[45][46]。2011 年的比赛只有四支队伍参赛,整体注册人数也更少。它再次由施乐欧洲研究中心的基于 SVM 的方法赢得,该方法用基于 SIFT 的压缩 Fisher 向量替代了 LBP[47]。李飞飞曾赌更多的数据会带来更好的性能,但早期结果令人失望。传统技术占主导,但与 PASCAL VOC 相比只取得了微小的渐进改进,而非突破。研究人员仍在手工制作特征,而 ImageNet 的规模在没有能够从其增加的大小和多样性中学习表示的架构的情况下,收益递减。ImageNet 面临着成为美丽但无用的规模纪念碑的严重风险。

李飞飞构建 ImageNet 是为了通过规模推动计算机视觉领域和视觉识别算法的极限。但李飞飞的雄心壮志遭到了包括 Malik 在内的同行的怀疑,Malik 警告她不要跳得太远,跑到领域的前头。Malik 是李飞飞的英雄之一,但他警告他的门生:“我觉得你把这个想法带得太远了……诀窍是与你的领域一起成长。不要跳得那么远”[48][49]。这种追求被视为过度。研究人员还没有准备好,甚至对这种规模不感兴趣。

与此同时,端到端学习的早期迹象明显显现。2011 年,丹·奇雷桑的“DanNet”表明,CNN 一贯优于手工设计的流程。它不仅是第一个赢得计算机视觉比赛的 CNN,而且连续赢了四场,包括国际文档分析与识别会议(ICDAR,2011)、国际神经网络联合会议(IJCNN,2011)、IEEE 国际生物医学成像研讨会(ISBI,2012)和国际模式识别协会(IAPR,2012)[50][51][52]。在 IJCNN 交通标志挑战中,DanNet 达到了 99.46% 的准确率,比第二名高出 1.15 个百分点(~68% 的错误率降低)。尽管如此,DanNet 的成功并未引起太大关注,因为这些是小型的、专门的基准。它证明了 CNN 可以优于特征工程,但没有解决它们是否仍能在 ImageNet 规模上表现的问题。

克里热夫斯基、苏茨克维和辛顿认识到 ImageNet 是完美的战场。它足够大,可以允许多层人工神经网络学习特征表示。2012 年,ImageNet 在绝对数量上比今天小。2009 年发布时,该数据集包含 320 万张图像和超过 5,000 个类别。2012 年,ImageNet-1k 是 ImageNet 大规模视觉识别挑战(ILSVRC)中从 2012 年到 2017 年广泛使用的子集,包含大约 120 万张图像,涵盖 1,000 个类别。然而,相对而言,ImageNet 是巨大的。相比之下,2012 年,PASCAL VOC 包含 20 个类别和大约 11,000 张图像;MNIST 有 10 个类别和 70,000 张图像;CIFAR-10 有 10 个类别和 60,000 张图像;德国交通标志基准大约有 50,000 张图像[53]。如今,ImageNet 包含超过 1,400 万张标注图像,跨越超过 22,000 个类别,正趋于比德曼数字。

虽然 DanNet 的胜利在技术上令人印象深刻,但它们更容易被斥为小众演示,而非范式转移。与此同时,AlexNet 不仅仅赢得了一场比赛;它击败了一个被认为“超前于时代”的基准。Hinton 选择 ImageNet 并不是因为社区将其视为计算机视觉算法的终极基准或试验场,而是因为没有人认为它会奏效。ImageNet 被认为过度且不切实际。通过决定性地赢得 ILSVRC,AlexNet 创造了一个其胜利至关重要的舞台。这种差异最好地解释了为什么历史将 AlexNet 视为突破,而将 DanNet 视为重要的先驱[54]。

2.4 为什么训练很困难

训练 ANN 的一个关键因素是网络权重如何初始化。权重初始化在训练开始前为每个参数设置起始值。通常使用随机权重以确保网络中每个被称为神经元的计算块学到独特的东西。如果所有权重都初始化为相同的值——例如零或任何常数——则每层中的每个神经元在反向传播期间接收相同的梯度并相同地更新。这阻止了神经元分化并学习不同的特征,有效地将层坍缩为一个单元。随机初始化打破了这种对称性,使神经元能够专业化并建模更复杂的模式[55]。

但糟糕的初始化会在信号通过网络时扭曲信号。如果权重开始时太大,在应用激活函数后,神经元输出可能过度增长,导致梯度爆炸或神经元饱和。这种不稳定性阻止模型达到稳定解,即“收敛”[56]。如果权重初始化太小,梯度也可能消失,导致学习缓慢或停滞[57]。随着网络变深,这些问题变得特别明显。

要理解为什么,考虑在反向传播期间梯度是如何计算的。它们是当你在层间向后移动时多个偏导数的乘积。如果这些导数小于 1,乘积随深度缩小,导致梯度消失。结果是前面层的权重接收的更新如此之小,以至于它们实际上停止了学习。这个梯度消失问题导致许多人得出结论,认为深度本身才是问题。

相反,如果导数超过 1,梯度可能爆炸,导致不稳定的权重更新,阻止收敛。当时的研究人员认为多层网络本质上难以训练,不仅因为数据和计算的限制,还因为优化地形充满糟糕的局部最小值和鞍点,使学习不稳定。虽然 GPU 后来加速了训练,但它们并没有使优化更容易。

这些问题因早期激活函数如 sigmoid 和双曲正切(tanh)而加剧,它们在反向传播期间进一步削弱了梯度。结果,更深的网络不仅需要更多训练时间,而且表现更差。所有这一切强化了多层网络本质上不稳定、需要特殊技巧训练的信念。如果这些想法有些密集,没关系。我们将在本书中多次重新提及它们,每次在新的背景下,这样它们背后的直觉会自然发展。这里重要的是,在 AlexNet 之前,训练具有任何真正深度的网络被认为是不切实际的。

为了逃避这个困境,训练 ANN 的主导方法是使用逐层无监督预训练,然后进行有监督的微调。而不是一次性训练整个网络,每个层被单独训练。一层的输出作为下一层的输入,逐步构建网络。预训练使网络权重更接近好的解,使反向传播能够在以前失败的地方成功。一旦所有层都以这种方式预训练,它们被“展开”成一个单一架构[58]。这种初始化帮助模型避免糟糕的局部最小值,并提高训练期间的收敛。展开后,整个网络可以使用反向传播进行端到端微调。

这一策略由 Geoffrey Hinton 于 2006 年提出,并由 Yoshua Bengio 于 2007 年扩展。Bengio 表明,无监督预训练可以有效地解锁深度架构,否则这些架构无法用基于梯度的方法训练[59][60]。这些结果是惊人的,但也带来了一个新的正统观念。研究人员开始相信,没有预训练,深度网络将不可避免地失败。在这种怀疑和停滞的背景下,James Martens 2010 年的研究论文脱颖而出。它显著影响了 Ilya,Ilya 经常引用它作为 AlexNet 的关键灵感来源[61]。Martens 的工作直接挑战了当时流行的信念,即无监督预训练是训练多层网络所必需的。相反,他表明模型可以通过随机初始化从头训练。

Martens 重新框定了问题。困难并不像广泛假设的那样源于局部最小值众多,而是源于一阶方法如梯度下降的局限,这些方法仅使用损失函数的斜率来更新权重。这些方法沿最陡下降方向移动,但对景观的曲率视而不见。相反,二阶方法还利用了关于该斜率如何变化的信息,即损失表面的曲率或“弯曲”,使它们能够更智能地调整步长和方向。

Martens 证明,ANN 经常包含“病态曲率”区域。这些区域(见图 2.2)是长而窄的谷,导致优化算法停滞。基于梯度的方法缺乏曲率意识。它们要么无用地振荡,要么采取微小的渐进步骤,这显著减缓了训练。Martens 提出了一种利用曲率高效穿越这些谷的二阶方法。他将其成功应用于自动编码器——直到那时,这些模型只能通过无监督逐层预训练来训练。他的洞察揭示,实际障碍不是损失景观本身,而是导航其几何的工具不足[62]。结果是惊人的。正如 Martens 在论文摘要中指出,“不使用预训练,我们获得了比 Hinton & Salakhutdinov (2006) 在相同任务上报告的更好的结果” [63]。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH02_F02_Heimann.png

图 2.2 优化形如长而窄谷的函数的挑战。等高线表示一个谷,沿谷底运行的箭头指示最佳进展方向。较小的箭头表示梯度下降采取的步骤:左图显示大步在谷中低效振荡,而右图显示小步沿谷底缓慢进展。“病态”性质并非源于高或低的曲率,而是源于谷的横向高曲率与沿谷的低曲率的结合。经作者(James Martens)许可使用。

比结果更重要的是潜在原则。成功并非源于任何特定的模型架构或巧妙的初始化方案。它源于一个更强大的优化器,能够导航复杂的损失表面。在传统方法如梯度停滞的地方,Martens 的方法能更好地理解损失景观的形状,并沿更直接的路径走向更低误差。Martens 证明了无监督预训练并非必要。真正的障碍不是深度,而是缺乏处理曲率的工具。

Martens 在 2010 年的论文中致谢了 Sutskever,两人甚至在 2011 年合作研究了另一个训练起来出了名的困难的架构:长短期记忆(LSTM\[64\]\[65\]。但 Martens 的方法计算量很大,更适合小规模问题。然而 Sutskever 理解了更广泛的含义。如果二阶方法可以从头训练深度网络,那么具有适当改进的一阶方法可能也能做到。

这成了 AlexNet 背后的赌注。改进的初始化、更好的激活函数和足够的计算能力使梯度下降能够克服曾经让深度学习看似不可能的障碍。在后来的采访中,Sutskever 声称他知道 AlexNet 会成功。对有些人来说,这可能听起来像事后偏见,但事实并非如此。Martens 已经表明深度网络可以收敛。对 Sutskever 来说,这种信心不是理论上的,而是经验上的。他已经看到了它的发生 \[66\]

2.5 AlexNet

AlexNet 以 15.3% 的 top-5 误差重新定义了 ImageNet 竞赛,这意味着正确标签出现在其前五个预测中的时间超过 84%。AlexNet 不仅超越了亚军(其误差为 26.2%),而且彻底击败了它。这些结果源于精心设计的架构创新,详细记录在开创性论文“ImageNet Classification with Deep Convolutional Neural Networks”中,通常缩写为 KSH,以作者 Krizhevsky、Sutskever 和 Hinton 的名字命名 \[67\]

2.5.1 网络架构

AlexNet 显著增加了标准网络配置的深度和宽度。从结构上讲,AlexNet 包含 6000 万个参数和大约 65 万个所谓的“神经元”。如前所述,参数是模型的权重和偏差,在训练过程中进行调整。同时,神经元是模型的计算单元:它们接收输入,乘以权重,可能加上偏差项,然后通过激活函数将结果重新缩放到特定范围(0 到 1 或 -1 到 1)。

单个神经元用处不大。但通过跨多层连接许多神经元,网络可以从数据中学习复杂模式,例如识别猫或翻译语言。通常,研究者强调参数数量,因为它们直接影响模型训练的难度、运行成本以及过拟合的容易程度。相反,神经元数量更抽象且模糊,特别是在参数共享的卷积层中。

尽管存在这种模糊性,KSH 仍强调了其神经元数量。2012 年,人工神经网络研究者经常强调与生物系统的类比,以为其架构选择提供直觉和动机。AlexNet 通过引用神经元数量和推广局部响应归一化,坚定地置身于这一受生物启发的传统中。作者声称这一概念受到大脑侧向抑制的启发,尽管它对 AlexNet 的性能实际影响有限。在标准化基准取得戏剧性改进使这些类比变得 largely 不必要的时代之前,这种与生物学的平行关系提供了本质上的合法性。如今,人工神经网络通常用务实的、以工程为中心的术语来描述。尽管如此,AlexNet 明确的神经元数量反映了一个生物直觉对建立可信度和激发对新方法信心至关重要的时代。

AlexNet 成功的核心在于其前五个卷积层,它们实现了自动的分层特征提取。与传统手工方法不同,卷积层逐渐捕获越来越复杂的模式。它们从简单模式开始——如最早层中的边缘和纹理——随着网络深入演变为复杂的形状、角点和可识别的物体部分。例如,早期层可能检测猫图像中的水平和垂直边缘;下一层可能将这些边缘组合成胡须状或耳朵状的轮廓,而更深层可能将这些部分组装成猫脸的连贯表示。

每个卷积层使用多个小滤波器在输入图像上滑动,将每个片段与学习到的模式进行比较。你可以将这视为测量图像区域与滤波器的相似程度。在数学上,这种比较通过滤波器权重与输入像素之间的点积来进行。结果值形成特征图,突出显示特定视觉模式最常被检测到的位置。这些激活表明哪些滤波器对图像的不同部分响应最强烈。至关重要的是,相同的滤波器被应用于输入的每个位置,极大地减少了参数数量,并实现了平移不变性,即无论模式在图像中的位置如何都能识别的能力。例如,AlexNet 的第一个卷积层使用 96 个不同的滤波器,生成 96 个特征图,供更深层进一步抽象和分析。

AlexNet 的卷积层不仅深,而且在战略上也很宽。随着网络变深,滤波器数量从第一层的 96 增加到 256,然后 384,保持 384,最后以 256 结束,扩展了网络的容量。同时,滤波器尺寸从初始层的 11 × 11 减小到 5 × 5,然后在网络更深处减小到 3 × 3。见图 2.3。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH02_F03_Heimann.png

图 2.3 AlexNet 架构(在原始论文中裁剪)。数字表示每个阶段的空间尺寸和通道深度。输入图像(224 × 224 × 3 RGB)通过一系列卷积和池化层,逐渐减少空间分辨率(224→55→27→13),同时增加通道深度。早期下采样由第一个卷积层(11 × 11 滤波器,步长 4)驱动,随后是最大池化层(3 × 3 窗口,步长 2)进一步减少空间尺寸。步长决定滤波器在输入上每步移动多远,控制图像采样的密集程度和空间分辨率降低的速度。滤波器尺寸(11、5、3)被描绘为立方体,定义每个卷积的局部感受野。两条水平流反映了模型原始的双 GPU 训练设置,其中特征图在设备间拆分(例如 48 + 48 = 96 通道)。全连接层(4096 个神经元,在 GPU 间实现为 2048 + 2048)输入到 ImageNet 分类的 1000 路输出。经主要作者 (Alex Krizhevsky) 许可使用。

这种进程使 AlexNet 能够最初关注粗糙特征,然后将其细化为日益复杂、精细的模式。最大池化通过系统减少特征图尺寸并仅在小空间区域(通常为 3 × 3 窗口)内选择最强激活来补充这一策略。这种选择性降低减少了计算复杂性,并增强了网络对轻微位置变化和输入失真的鲁棒性。通过在更深层中缩小滤波器尺寸并增加特征图数量,AlexNet 扩展了每个神经元的感受野,即影响该神经元激活的输入图像区域。这使网络能够构建分层表示,捕获跨更广图像区域的日益复杂的视觉抽象。

在卷积层提取特征之后,AlexNet 转向三个全连接(FC)层。这是网络在图像分类中的最后关键步骤。与卷积层不同,FC 层将前一层中的每个神经元连接到每个神经元。这种密集的连接将特征图展平为单个向量,有意地丢弃空间结构,以将高级特征整合到统一的表示中。这样做,FC 层可以合成整个图像的信息,识别出对准确分类至关重要的全局模式。这种从空间感知特征提取到空间不可知的全局解释的转变,使 AlexNet 能够将复杂的视觉特征映射到精确的类别预测中。

AlexNet 的前两个全连接层占了模型约 6000 万个参数中的大部分。这一规模显著提高了模型的表示能力,但也引入了过拟合的风险。我们将在下一节 [68] 中进一步讨论。

最后一层全连接层输出一个 1000 维的向量,直接对应 ImageNet 数据集中的 1000 个类别。softmax 函数将这些原始分数转换为预测概率,最高概率决定网络的最终分类。总之,卷积层提取视觉模式,全连接层将这些模式解释为类别预测。它们共同构成了一个计算管道,尽管缺乏真正的现象学经验或视觉理解,但却使 AlexNet 能够以开创性的准确性将原始像素转换为对象分类。

2.5.2 训练创新

AlexNet 中一个关键的创新,源于 Ilya Sutskever 的见解,是在每个卷积层之后采用整流线性单元(ReLU)激活函数 [69]。与传统的激活函数如 sigmoid 或 tanh(它们将输出压缩到有限范围,并常常导致神经元饱和和梯度消失)不同,ReLU 在整个训练过程中保持强大的梯度流。图 2.4 显示,ReLU 通过将负输入映射为零,同时保持正输入不变,实现这一点,在该区域有效地充当恒等函数。因为其导数对于正值是常数,梯度可以穿过许多层而不会被反复削弱。这个看似简单的修改使 AlexNet 能够有效地扩展到前所未有的深度。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH02_F04_Heimann.png

图 2.4 由作者在 R 中生成的 ReLU(顶部)、sigmoid(中部)和 tanh(底部)激活函数图。激活函数将输入值(x 轴)映射到输出值(y 轴)。例如,ReLU 对负输入产生 0;对于正输入,输出等于输入(x < 0 时为 0,x ≥ 0 时为线性)。sigmoid 函数将输入映射到 0 和 1 之间的值,类似于 S 形曲线。同样,tanh 函数提供平滑的 S 形曲线,但将输入映射到 –1 和 1 之间的值,以 0 为中心。

在一项受控实验中,KSH 证明,从传统 tanh 切换到 ReLU 激活可以加速收敛 6 倍。作者们认识到这一效率增益是多么关键,明确指出“如果我们使用传统的饱和神经元模型(即 sigmoid 或 tanh 激活函数),我们就无法为这项工作实验如此大的 [人工] 神经网络。”这一改进之所以可能,是因为 ReLU 激活通过避免饱和和缓解 Martens 所说的“病态曲率”来帮助平坦化优化景观 [70]。

AlexNet 的成功牢固地确立了 ReLU 作为深度网络的默认激活函数。后来的网络,如 VGGNet、GoogLeNet 和 ResNet,都使用了 ReLU 或其变体,确认非饱和激活对于扩展到更深网络至关重要。

全连接层包含了 AlexNet 的大部分参数,使得它们特别容易过拟合。为了应对这一弱点,作者采用了 dropout,它在每个训练迭代中随机禁用一部分神经元。Dropout 是一种正则化技术,在训练期间施加约束以防止过拟合并保持模型的泛化能力。在 AlexNet 的情况下,前两个全连接层(FC6 和 FC7)中 50% 的神经元在每次迭代中被丢弃。Geoffrey Hinton,类比教父,著名地用“共谋者”类比解释了 dropout 的直觉 [71]。如果你想找出谁犯了罪,你会分别审讯嫌疑人,而不是一起审讯。类似地,dropout 迫使神经元独立地学习有用的特征,而不是依赖紧密耦合的组。见图 2.5。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH02_F05_Heimann.png

图 2.5 左:具有两个隐藏层的标准神经网络。右:对左图网络应用 dropout 产生的网络示例。经主要作者 (Nitish Srivastava) 许可使用。

在 AlexNet 成功之后,每当担心过拟合时,dropout 就成为标准做法——随着网络规模的增大,这种担忧变得更加频繁。在训练期间,随机关闭一部分神经元,使网络无法依赖“共谋者”。在测试时,什么都不关闭。早期的实现通过在测试时缩小层的输出来补偿,以匹配网络在训练期间看到的情况。但现代实现使用反向 dropout,它在训练期间应用补偿,因此不需要测试时的调整 [72][73]。两种方法保持平均信号相同,但反向 dropout 已成为事实上的标准,因为它使训练和测试保持在同一尺度,并简化了部署。

KSH 指出,没有 dropout 的网络“表现出严重的过拟合”。拥有 6000 万参数和仅 120 万训练图像,网络很容易记忆而不是泛化。然而,一个副作用是训练更慢:“dropout 大致使收敛所需的迭代次数增加一倍”,论文报道。这是合理的,因为有了 dropout,每次训练更新效率稍低,每个神经元只接收其原本应接收更新次数的一半。

如前所述,AlexNet 还引入了局部响应归一化(LRN),这是一种受生物侧向抑制启发的实验性技术。LRN 将每个神经元的激活相对于相邻特征图上同一空间位置的相邻神经元进行归一化,鼓励神经元之间的竞争。这有助于抑制均匀强烈的激活,并增强独特的、有选择性的特征响应。在实践中,作者仅观察到泛化的适度改进,但他们仍然在前两个卷积层之后包含了 LRN 层。LRN 很快失宠,被更有效的归一化方法所取代,特别是 2015 年的批量归一化 [74]。尽管现代网络不再使用 LRN,但它在 AlexNet 中的包含体现了其设计的实验创新特征,即使事后看来,AlexNet 的结果并不关键地依赖于这一特定技术。

2.5.3 数据增强

KSH 使用了激进的数据增强来扩展 ImageNet 的有效规模和多样性。使用了两种主要技术:

  1. 几何变换—随机裁剪和水平反射被用来训练网络具有空间不变性,使其即使在不同位置或方向出现物体时也能识别

2. 光度畸变

基于 PCA 的颜色抖动通过对 RGB 像素值的主成分进行扰动,引入了亮度、对比度和色彩平衡的细微变化。该技术模拟了光照变化的效果,并增强了对光照变化的鲁棒性。

总之,这些增强策略通过模拟训练数据中真实的变异和噪声,提升了 AlexNet 的泛化能力。数据增强与 dropout 的结合有效缓解了过拟合,尽管模型高度过参数化,仅用 120 万张图像训练了 6000 万个参数。这使得网络能够充分利用其容量,精确拟合训练数据,同时仍能泛化到 ImageNet 数据集中未见过的测试图像。

2.5.4 高效且可扩展的训练

GPU 最初是为实时视频游戏图形设计的,但它们擅长的计算与训练人工神经网络(ANN)所需的计算非常相似。当时,NVIDIA 正在为其小众硬件寻找新的应用。在接受《麻省理工科技评论》采访时,NVIDIA 首席执行官黄仁勋说:“当你发明一项新技术时,你必须乐于接受疯狂的想法。”他接着说:“我的心态一直是在寻找古怪的东西,而[artificial]神经网络将改变计算机科学的想法,那是一个极其古怪的想法”[75]。

在 120 万张图像上训练一个拥有 6000 万个参数的八层网络,不仅在计算上要求很高,而且在概念上也具有挑战性。2012 年可用的 NVIDIA GTX 580 GPU 只有 3 GB 内存,不足以存储整个模型。KSH 战略性地将网络拆分到两块 GPU 上,以绕过这一限制。每块 GPU 处理每层一半的滤波器和每个训练批次一半的特征图。受到先前模型并行化研究的启发,这种双列架构通过在精心选择的层同步 GPU 通信来最小化开销:在第二层卷积层之后,以便在早期处理完成后启用跨 GPU 学习;在第五层之后,以便在过渡到网络的全连接层之前完全整合特征[76][77][78] [79][80]。

并行使用两块 GPU 使团队能够扩展网络,每层滤波器数量是较小的单 GPU 变体的两倍。这将 top-1 准确率提高了 1.7%,top-5 准确率提高了 1.2%。双 GPU 设置还实现了更大的深度,这对模型性能至关重要。KSH 发现,移除任何卷积层并重新训练都会降低准确率,尽管每个卷积层仅占模型参数的不到 1%。

这些观察结果表明,AlexNet 的优势部分源于其规模和深度的增加,从而实现了多阶段特征提取。现代卷积神经网络现在通常在 GPU 集群上训练,直接延续了 AlexNet 开创的轨迹。当时,团队明确将 GPU 内存和计算时间视为主要约束,指出网络规模“主要受限于当前 GPU 上可用的内存以及我们愿意容忍的训练时间”。他们 anticipate 进一步的改进,指出“结果可以通过简单地等待更快的 GPU 和更大的数据集可用而得到提升。”尽管他们最初的工作规模相对较小,但随后的进展完全验证了这一预测,强调了 AlexNet 对更深、更强大网络的影响。

有效训练神经网络需要平衡几个因素以确保稳定学习和最佳性能。AlexNet 使用小批量随机梯度下降(SGD)进行训练,并辅以 0.9 的动量。梯度指示损失增加最快的方向和速率,因此一阶方法沿相反方向(下坡)移动,调整权重以减少损失。换句话说,一阶优化仅使用关于函数在当前点如何变化的局部信息,而不需要诸如曲率(二阶导数)等额外细节。这种简单性使得一阶方法在计算上高效,并且在训练大型网络时很受欢迎。

想象一个孤独的登山者在雾蒙蒙的山上。由于登山者无法看到整个地形,他们扫描周围的一小块地面。这代表用于测量局部下坡方向的随机小批量图像。然后登山者沿着相反的斜坡移动一段距离。因为扫描只是一个样本,估计是有噪声的。尽管如此,动量就像惯性一样,平均最近的步骤,使登山者能够滑过浅层高原,而不是采取稍微上坡的步骤或横向摇晃。

AlexNet 的训练使用了 128 张图像的批次、0.01 的初始学习率以及一个手动计划,每当验证准确率平坦时,学习率下降 10 倍。学习率决定了模型参数在每一步对梯度的响应变化量。这使得登山者能够在早期采取大胆的步骤,而在接近谷底时采取更精细、更审慎的步骤。尽管 SGD 永远不能保证绝对最小值(即全局最小值),但在崎岖的地形中,它可以之字形移动以避免高原或鞍点。尽管如此,小批量采样、动量和衰减学习率的结合始终如一地引导 AlexNet 走向高质量的解决方案,使其能够实现突破性的 ImageNet 性能。

仔细的权重初始化也提高了 AlexNet 的训练稳定性。权重从均值为零、标准差较小(0.01)的高斯分布中初始化,确保神经元输出以稳定的平衡范围开始。此外,特定层的偏置被有意设置为 1 而不是通常的 0,在训练开始时激活 ReLU 神经元。该策略缓解了“dying ReLU”问题,其中不活跃的单元卡在输出 0 且永远无法恢复[81]。尽管微不足道,但这种仔细的初始化对于维持健康的训练动态至关重要。

尽管 AlexNet 最终在梯度下降方面取得了成功,但许多研究人员最初怀疑这种方法能够训练多层人工神经网络。当时普遍的误解是,基于梯度的优化方法不可避免地会陷入局部最小值,从而使训练无效。研究人员将损失景观可视化为充满糟糕局部最小值的低维地形。但他们忽略了高维空间中损失表面的行为不同。此外,像 AlexNet 那样在小批量上平均梯度,进一步平滑了损失景观中的不规则性,实现了更稳定的优化。认识到这一微妙但深刻的真理对于 AlexNet 开创的深度学习革命至关重要。

2.5.5 效果

2012 年,ImageNet 的训练集已经比 PASCAL VOC 的大 100 倍,但 ImageNet 和 PASCAL VOC 的性能都停滞不前。从 SIFT 和 HOG 到视觉词袋流水线的手工特征,缺乏足够的改进空间。然而,AlexNet 将 ImageNet 的 top-5 错误率从 26%降至 15%,而 PASCAL VOC 的分数几乎没有变化。AlexNet 是 2012 年竞赛中第一个也是唯一一个使用人工神经网络的模型,并将 top-5 错误率减半,证明了更多的数据是不够的。重新定义该领域的并非数据本身,而是一种能够从中提取更多含义的架构。

2013 年,ImageNet 竞赛(ILSVRC)吸引了 24 支队伍。这超过了前三年(21 支)的总和。几乎所有参赛作品都使用了 CNN,这标志着这种一年前还被认为不切实际的方法取得了显著的转变。时代精神完全转变了。人工神经网络(ANN)不仅摆脱了污名,而且它们现在正在推动最前沿的技术。在 2010 年,你可能会因为使用它们而被拒绝;到 2013 年,你可能会因为不使用它们而被拒绝。

AlexNet 的成功激发了更深、更有效的架构浪潮。2013 年,纽约大学的一支队伍实现了 11.2%的 top-5 错误率[82]。2014 年,准确率超过了 90%。同年,GoogLeNet 以惊人的 6.7% top-5 错误率赢得了 ILSVRC,与 AlexNet 之前的结果相比,两年内错误率大致降低了四倍。见图 2.6。到 2017 年,参加 ILSVRC 的 76%(38 支中的 29 支)队伍实现了 top-5 准确率大于 95%[83][84][85]。他们都使用了 CNN。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH02_F06_Heimann.png

图 2.6 2010 年至 2017 年 ILSVRC 的 top-5 错误率。SIFT 和 SVM 在 2010 年和 2011 年获胜,但性能趋于平稳。CNN 从 2012 年到 2017 年获胜,包括 2012 年的 AlexNet,并最终使基准饱和。

在 AlexNet 成功之后,Malik 拥抱了深度学习。2014 年,他在加州大学伯克利分校的团队开发了 R-CNN,这是一种应用 CNN 实现最先进目标检测的方法[86]。这一快速的后续行动表明,AlexNet 时刻并非侥幸。AlexNet 可以被其他人复制和扩展。2017 年,Malik 称 AlexNet 为“过去五年中机器学习和计算机视觉领域最具影响力的论文”,并将其描述为“引领计算机视觉领域拥抱深度学习”的论文[87]。2020 年,Malik 承认对深度学习的有效性感到惊喜,并承认他“在 2010 年肯定不会相信这一点”[88]。

AlexNet 不仅仅赢得了一个基准测试;它重新定义了科技行业的优先事项。谷歌率先行动,在 2013 年初收购了 DNNresearch,扩展了谷歌大脑,然后在 2014 年收购了 DeepMind。Facebook 在 2013 年底成立了 Facebook AI Research(FAIR),任命 CNN 先驱 Yann LeCun 为其主任。最后,百度招募了 Andrew Ng 来领导一个新的语音和图像任务的 AI 实验室。Clarifai 的创始人赢得了 2013 年 ILSVRC 竞赛,它成为了商业 CNN 的供应商[89]。

AlexNet 还戏剧性地重塑了围绕 AI 的公众叙述。MIT Technology Review宣布“深度学习”是其 2013 年的顶级突破之一,并补充说它“终于变得聪明”[90]。这种乐观情绪在年底激增,当时The New York Times在头版刊登了一篇题为“类脑计算机,从经验中学习”的报道,表明深度学习如何深刻地吸引了文化想象力[91]。即使是批评性的报道,如The Guardian的“不要相信科学炒作:我们还没有创造出真正的 AI”,也间接地验证了新范式的主导地位[92]。少数仍然表示怀疑的人是通过引用所谓的“黑箱”批评来做到这一点的,该批评认为模型不可解释或被过度炒作,而不是指出实际性能。

最终,AlexNet 推翻了十年来令人舒适的假设。ANNs 被斥为过于复杂的 curiosity,“fancy schmancy”架构,追逐着特征工程和聪明内核(即 SVMs)可以更高效地解决的问题。AlexNet 用一场来之不易的胜利证明,只要成分正确,深度学习可以战胜现有的行动手册。它刺破了“石头汤”和“数据非理性有效”叙述的自满版本。是的,数据被低估了,更多的数据提供了高性能机器学习所需的重要覆盖和对尾部事件的访问,但它并不是一个伟大的均衡器。

AlexNet 整合了一系列优化感知的选择,包括用于防止梯度消失的 ReLU 激活、用于稳定早期训练的适当权重初始化、用于平滑更新的动量、用于减少过拟合的 dropout,以及用于增加训练集有效大小的数据增强[93]。AlexNet 还分布在两个 GPU 上。这对不起眼的 3 GB GPU 说明,一切都有不起眼的开始,“深度学习革命”也不例外。这些想法单独来看都没有魔力。魔力在于坚持将它们组装成一个端到端的大规模系统,然后通过工程来证明这一点。

在 AlexNet(2012 年)之后,网络架构逐渐加深。VGGNet(2014 年)有 19 层。GoogLeNet(2014 年)有 22 层。然而,尝试训练更深的网络遇到了障碍。其中主要的是持续的梯度消失和模型退化问题。AlexNet 扭转了时代精神,但要可靠地训练更深的网络,仍然需要架构和优化的创新。

3 ResNet 革命

本章涵盖

  • 训练深度神经网络的挑战

  • 残差连接以及它们如何彻底改变深度学习

  • 演进到 ResNet v2 以及训练超过 1000 层的网络

  • 池化和步长,它们被空洞卷积取代用于密集预测任务

  • CS231n 作为斯坦福大学的第一门深度学习课程

论文

  • Deep Residual Learning for Image Recognition (2015) He, Zhang, Ren, and Sun

  • Identity Mappings in Deep Residual Networks (2016) He, Zhang, Ren, and Sun

  • Multi-Scale Context Aggregation by Dilated Convolutions (2016) Yu and Koltun

  • Stanford CS231n (2015) Fei-Fei Li, Andrej Karpathy, and Justin Johnson

2015 年之前,增加深度并没有立即转化为性能的提升。事实上,更深的模型往往表现出更高的训练误差。问题的核心是一个双重束缚。深度是表示能力所必需的,但它损害了优化。减少深度可以缓解优化,但限制了能力。就在绝望似乎合理的时候,一个看似简单却欺骗性的想法出现了。

残差连接通过提供保留前向信号并在反向传播中维持有效梯度路径的捷径来缓解这种紧张。在残差网络(ResNet)中实现,它们在 Sutskever 列表上赢得了一席之地,因为它们代表了设计哲学的关键转变,其中“添加残差连接”已成为机器学习工具包中不可或缺的工具[1]。

从经验上讲,ResNet 实现了性能的阶跃变化。与 AlexNet 一样,ResNet 将前一年的 top-5 错误率大致减半。在 2015 年的 ILSVRC 中,ResNet 集成实现了 3.57%的 top-5 错误率,而单个 ResNet 实现了 4.49%,超过了之前的集成结果,并在分类、定位和检测竞赛类别中获胜[2][3]。回顾这一突破,ResNet 团队负责人何恺明承认,“我们甚至不相信这个单一想法会如此重要。”这种情绪强调了机器学习中一个基本真理:一个想法的重要性与其复杂性无关。

ResNet 将“深度”从一种渴望变成了现实且高效的现实。ResNet-152 比 19 层的 VGGNet 深八倍,但需要的计算操作和模型参数却更少。突然之间,深度不再只是象征性的。原始 ResNet 论文中展示的实验策略反映了 Sutskever 的信念,即人工智能的进步源于对理念的完善和发现真正有效的方法。随后的 ResNet v2 论文也体现了这种精神。它通过完善带来有意义的提升,最显著的就是预激活残差块,而不是一个全新的架构。两者都表明,人工智能的进步并不总是需要新的概念飞跃,而且往往不需要。

3.1 电话游戏

在 AlexNet(2012 年,8 层)之后,架构的深度逐渐增加。VGGNet(2014 年)有 19 层。GoogLeNet(2014 年)有 22 层。然而,所有训练更深网络的尝试都遇到了障碍。其中最主要的是持续存在的梯度消失和模型退化问题 [4]。尽管有批量归一化、仔细的权重初始化和梯度裁剪等部分解决方案,但没有出现全面的解决方案。虽然批量归一化稳定了层统计信息,仔细的初始化从训练开始就保持了激活和梯度的适当缩放,但两者都没有为梯度穿过数十个非线性层提供捷径。

想象一下,信息通过一系列层传递,每层都设计为从原始数据中提取模式。当信息(如图像)通过每一层时,随机权重会轻微扭曲数据。只有几层时,这种扭曲是可控的,但随着网络变深,这些微妙的扭曲会累积。当信息到达多层网络的最后几层时,原始图像或数据实际上已被打乱成随机噪声,与最初输入系统的内容几乎失去了所有有意义的联系。这种有意义信号的退化被称为 模型退化

前向传播之后,网络通过计算其输出与正确答案之间的差异来衡量性能。这种差异称为 损失。为了改进,网络将损失通过其层反向传播,以确定每层的权重应该如何调整。当反馈信号(即梯度)通过每一层反向传播时,由于与各层权重的重复相乘,它们会变得越来越小且扭曲。当这些梯度到达最早的层——那些最接近原始输入的层——它们已经衰减到没有有意义信息的程度,使得早期层无法有效更新其权重。这种梯度在反向传播时有效消失的现象被称为 梯度消失问题

虽然退化和梯度消失问题是不同的,但它们可以在一个有害的反馈循环中相互强化,就像两个人争论到忘记或完全扭曲原始观点一样。扭曲的前向信号会破坏输出,导致反向传播时更弱的梯度。那些更弱的梯度又导致糟糕的学习,这进一步扭曲了随后的前向传递,并使研究人员陷入一个令人沮丧的循环中,其中训练误差实际上随深度增加而上升。

在这种背景下,微软研究人员引入了 ResNet。在他们开创性的论文“深度残差学习用于图像识别”中,作者们通过一个看似简单的架构创新解决了长期存在的问题:残差连接。想象一下玩“电话游戏”,其中一条消息沿着一行从一个人传到另一个人。通常,当消息到达最后一个人时,它会扭曲,因为每个参与者都会轻微听错或误解。现在想象一下,在某些点,你可以直接将纸条传递给更远的人,跳过多个中间低语者。这条捷径可以确保至少部分原始消息保持清晰和完整。

这正是残差连接背后的想法。与其强迫每个信号顺序通过许多层(其中扭曲会累积),残差连接创建了捷径,让信息既 通过绕过 某些层组。这种双路径结构确保有意义的信息完整地到达更深的层,并确保清晰的梯度信号平滑地流回网络。

在前向传播期间,每个残差块沿两条并行路径计算:一条通过卷积层、批量归一化和非线性激活来提取复杂特征,而另一条则不变地传递输入,保留其原始信息。在反向传播期间,决定权重更新的梯度沿这相同的两条路径反向传播。直接的捷径有助于保持更强的梯度,减少它们反向传播时梯度消失的风险,并提高训练更深网络的稳定性。

具体来说,每个残差块在其内部层上计算一个增量调整,称为 残差,然后将其直接加到原始输入上。正式地,每个残差块的输出为:

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/heimann-ch3-eqs-0x.png

这里,F(x) 表示块内部变换产生的输出,而 x 表示原始输入。见图 3.1。通过显式添加原始输入,残差连接在前向传播期间保留清晰信号,并在反向传播期间稳定梯度流。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH03_F01_Heimann.png

图 3.1 简单 ResNet 块的图解。它说明了输入数据如何沿两条路径流动:一条 通过 两个带有激活步骤的变换层,另一条 绕过 通过一条没有变换的直接“快捷”路径。这两条路径的输出被组合在一起,得到的向量经历最后的激活步骤。这种“快捷”方式通过保留来自更早层的信息,帮助网络更有效地学习。经主要作者(何恺明)许可使用。

图 3.2 显示了随着深度增加,没有残差(或跳跃)连接的架构会遇到困难。一个没有残差连接的“普通”56 层网络比浅一些的 20 层网络具有更高的训练误差。这种训练误差的意外增加不是由于过拟合;它揭示了训练深层网络的根本困难。更深的网络也有更高的测试误差,表明添加更多层并不会自动提升性能。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH03_F02_Heimann.png

图 3.2 20 层和 56 层“普通”网络在 CIFAR-10 上的训练误差(左)和测试误差(右)。更深的 56 层网络比浅一些的 20 层网络显示出更高的训练误差,表明在没有额外架构创新的情况下优化更困难。它也有更高的测试误差(右),表明简单地添加层并不能改善性能。在两个图中,x 轴表示以 10,000 为单位的训练迭代;每次迭代对应一次小批量更新。随着训练在大约 60,000 次迭代中进行,更深的网络持续表现不佳。经主要作者(何恺明)许可使用。

但当引入残差连接后,更深的网络优于其“普通”对应网络。作者比较了两个没有残差连接的“普通”网络:一个 18 层,另一个更深的 34 层版本(见图 3.3)。直观上,你可能期望更深的 34 层网络表现更好,或者至少不差,因为它原则上应该能表示较浅的 18 层网络所能表示的所有函数。也就是说,18 层网络的解空间本质上是更深的 34 层模型的一个子集。令人惊讶的是,结果恰恰相反。更深的网络在整个训练过程中表现更差。这种反直觉的结果说明了退化问题。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH03_F03_Heimann.png

图 3.3 细误差曲线表示 ImageNet 上的训练误差,粗误差曲线表示 ImageNet 上的验证误差。左:18 层和 34 层的普通网络。右:18 层和 34 层的 ResNet。残差网络的参数数量不超过其普通对应网络。经主要作者(Kaiming He)许可使用。

对于没有残差连接的网络,挑战在于每一层都必须学习有用的变换。但强制层学习变换——即使在不必要时——可能会破坏训练的稳定性。残差连接通过允许层在没有找到有益变换时直接将输入向前传递不变来解决这个问题,这个过程被称为恒等映射。如果需要变换,层会学习相对于输入的残差。因此,添加额外层变得安全,因为残差连接默认不执行任何操作,从而保持性能而不是损害它。

这种行为还作为一种正则化形式,鼓励层在没有更复杂的变换提升性能时什么都不做。因此,残差网络可以在没有相应优化惩罚的情况下实现更大的深度。相反,传统架构每增加一层都会带来巨大的计算代价。ResNet-152 的深度大约是 VGG-19 的八倍,但它需要的浮点运算(FLOPs)更少,参数数量也更少。152 层的 ResNet 有 113 亿次 FLOPs,低于 VGGNet-16/19(分别为 153 亿和 196 亿次 FLOPs)。ResNet-34 只需要 36 亿次 FLOPs,大约是 VGG-19 的 196 亿次的 18%,尽管 ResNet-34 的层数几乎是 VGG-19 的两倍。这种效率主要来自 ResNet 的卷积设计,以及在更深版本中专门的“瓶颈”块。

要理解瓶颈如何工作,首先考虑通道在卷积网络中的作用是有帮助的。每个通道代表查看同一图像的不同方式,就像应用强调边缘、颜色或纹理的不同滤波器一样。虽然通道使模型能够捕获大范围的细节,但处理所有通道在计算上是昂贵的,而且常常是冗余的。瓶颈层通过策略性地减少然后扩展通道数量来解决这个问题,在保持表达能力的同时压缩工作负载。

首先,1 × 1卷积通过从原始输入学习一组更少的特征组合来减少或“压缩”通道数量(见图 3.4)。接下来,将3 × 3卷积应用于这个简化(即低维)的表示,从而降低计算成本,同时仍然捕获空间结构。关键的是,3 × 3卷积在这个缩减的空间中运行,这就是瓶颈设计高效的原因。最后,1 × 1卷积通过以新方式重新组合这些特征,将表示扩展回更高数量的通道。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH03_F04_Heimann.png

图 3.4 左:ResNet-34 中使用的基本块将 64 通道输入通过两个3 × 3卷积,然后在应用 ReLU 之前加回原始输入。右:更深 ResNet 中使用的瓶颈块首先用1 × 1卷积压缩特征,用3 × 3层处理,然后用另一个1 × 1卷积恢复维度。快捷旁路保留了原始信号,确保更深的模型细化特征而不是丢失它们。经主要作者(Kaiming He)许可使用。

将瓶颈视为数据压缩器。它首先收缩信息,处理压缩后的版本,然后将其扩展回原始形式。由于核心计算在较少的数据量上运行,ResNet 可以在几乎不增加计算需求的情况下表现更好,这意味着它可以有更多层。事实上,仅仅三年前,AlexNet 仅用八层就将 ImageNet 上的 top-5 错误率减半。但随着性能接近饱和,再次将错误率减半需要显著更多的层。ResNet 将 top-5 错误率减半,并展示了非凡的深度是可能的,包括一个前所未有的 1202 层网络。

然而,ResNet 的深度也招致了一些批评。虽然更深的网络变得可行,但没有 principled 的方法来确定最佳深度。原始的 ResNet 论文通过经验发现 152 层对 ImageNet 是最佳的,但作者没有提供理论或分析框架来指导深度选择。从业者几乎别无选择,只能依靠试错,这表明该领域仍然缺乏将规模(即深度、宽度、数据和计算)与预期性能联系起来的定量规则。这个差距后来由经验缩放定律(第 6 章)解决。

此外,超深 ResNet 仍然需要大量的计算资源和大型数据集;否则,它们有过拟合的风险。随后的架构,包括 ResNeXt、DenseNet、ShuffleNet 和 EfficientNet,通过展示精心设计的模型可以用显著更少的参数和更少的计算来匹配或超过 ResNet 的性能,强化了这些担忧[5][6][7][8]。尽管如此,ResNet 从根本上重新定义了可能的事物。

3.2 与其他主要架构的比较

通过检查先前的架构如何处理网络深度、复杂性、效率和表示能力,我们可以更好地理解 ResNet 创新的意义和影响。

3.2.1 ResNet 与 AlexNet 和 ZFNet

在 2013 年,ZFNet 通过用较小的7 × 7滤波器替换 AlexNet 的第一个卷积层,而不是较大的11 × 11滤波器,改进了 AlexNet。性能的这一轻微提升确认了仔细的架构调整的重要性。然而,尽管取得了成就,AlexNet 和 ZFNet 由于优化问题很快遇到了限制。因此,它们无法在不出现训练不稳定或性能下降的情况下增长到大约十几层以上。

3.2.2 ResNet 与 VGGNet

在 AlexNet 和 ZFNet 之后,牛津大学视觉几何组的研究人员在 2014 年引入了 VGGNet。与其仔细设计每一层,VGGNet 堆叠了相同的卷积层。从哲学上讲,这种方法更接近地预示了 ResNet,后者引入了模块化的、可重复的残差块,大大简化了网络缩放。堆叠标准模块N次可以胜过异构设计的想法是强大的,而这种简单性是表征 Sutskever 列表上许多条目的根本创新。

VGGNet 主要采用统一的 3 × 3 卷积,并穿插池化操作,这表明持续重复一个小的构建块以增加深度可以带来性能提升。他们的 16 层 VGG-16 变体在 ImageNet 上实现了 7.3% 的 top-5 错误率。然而,尽管与 ResNet 共享模块化理念,VGGNet 仍遇到了实际限制。其大型全连接层导致参数量巨大(1.38 亿)和显著的计算需求。此外,由于梯度消失问题,堆叠超过 19 层仍然导致训练不稳定。如果没有架构创新来保持信号活跃,扩展网络还尚未可能。

3.2.3 ResNet 与 GoogLeNet

2014 年,Google 引入了 GoogLeNet [9]。GoogLeNet 并非堆叠相同的卷积层或依赖统一的构建块,而是以精心设计的 “Inception 模块” 为特色。一个 Inception 模块就像一个微型网络,在多个路径上并行处理输入特征。不同的卷积滤波器尺寸(通常为 1 × 1、3 × 3 和 5 × 5)和池化操作在单个模块内同时运行。这些并行路径的输出被合并,使得网络能够在单一层内捕获多尺度特征。GoogLeNet 在 ImageNet 上以 22 层和大约 680 万参数实现了令人印象深刻的 6.7% top-5 错误率。

然而,尽管 Inception 模块有效,但它需要手动调整和平衡多个并行计算路径。尽管这种方法以更少的参数实现了令人印象深刻的准确性,但其设计脆弱且难以扩展。每个新版本都需要手动调整的滤波器尺寸和并行分支,针对特定深度进行定制。

相比之下,ResNet 采用了更直接的策略。这种方法允许网络扩展(例如 ResNet-18、ResNet-34、ResNet-50、ResNet-101、ResNet-152 和 ResNet-1202)而无需重新设计。它解决了梯度消失问题,并成为无数下游模型的默认骨干。甚至 Inception 最终也效仿,在 Inception-ResNet (2016) [10] 中采用了残差连接。表 3.1 总结了 VGGNet、GoogLeNet 和 ResNet 的关键指标。它突出了深度的显著增加和准确性的提升。

表 3.1 VGG-19、GoogLeNet (Inception v1) 和 ResNet-152 的比较

| 架构 | 年份 | 深度(层) | 参数 | Top-5 准确率 |

| --- | --- | --- | --- | --- |

| VGG-19 | 2014 | 16 conv + 3 FC | ~1.44 亿 | ~92.7% |

| GoogLeNet (Inception v1) | 2014 | 22 | ~680 万 | ~93.3% |

| ResNet-152 | 2015 | 152 | ~6000 万 | ~95.5% |

3.3 实际应用

研究人员迅速从旧的架构(如基于 VGG 的模型)转向 ResNet 变体。ResNeXt-101 (2016) 和 SENet (2017) 等模型在 ImageNet 竞赛中取得了最佳成绩 [11][12]。计算机视觉的获胜公式已成为 “ResNet 加上一些调整”。例如,在 Faster R-CNN 中用 ResNet-101 替换 VGG-16,在 COCO 数据集上(一个广泛使用的物体检测和分割基准)的准确率提高了 6% 到 7% [13]。

2023 年的一项调查强调了它们在临床决策支持系统中的广泛部署,其中它们协助从 CT 扫描诊断肺部肿瘤、从乳腺 X 光片检测乳腺癌以及分类皮肤病变 [14]。ResNet 因其对自动驾驶中尺度和视角变化的鲁棒性而备受青睐。例如,特斯拉的 Autopilot 据报道使用了一个名为 HydraNet 的改进版 ResNet-50 骨干网来处理多相机输入,用于物体检测、车道识别和深度估计等任务 [15][16]。研究一致表明,像 ResNet-101 这样的更深变体优于更浅的模型,特别是在具有挑战性的任务如车道检测 [17]。

Google 将它们整合到像 Inception-ResNet [18] 这样的混合架构中。Facebook 也效仿,采用了 Mask R-CNN 和 ResNeXt 等框架。与此同时,Amazon 引入了 ResNeSt [19][20]。ResNet 成为生产级图像识别的默认骨干,应用于 Google Photos、Pinterest 和 Microsoft Azure Cognitive Services 等平台。到 2018 年,NVIDIA 的 Detectron 和 PyTorch 的 torchvision 等平台为生产流程提供了可靠的实现。其多功能性、效率以及在大规模视觉任务上的强劲性能,使 ResNet 成为行业规模计算机视觉部署的事实上的起点,并且至今仍被广泛使用。

3.4 ResNet v2

虽然原始的 ResNet 架构通过残差连接实现了更深网络的训练,但它并非没有缺陷。研究人员发现,在添加跳过连接之后放置非线性激活仍然可能破坏信号传播,特别是在非常深的网络中。这一洞察促使作者在后续论文 “Identity Mappings in Deep Residual Networks” 中重新审视他们的设计,其中他们引入了 ResNet v2。

ResNet v2 的核心创新(再次)看似简单。在每个残差块内重新排序操作保留了跳过连接的完整性。在原始设计中,每个块将变换路径(卷积和激活)与恒等路径合并,然后应用最终的 ReLU 激活。ResNet v2 消除了这种合并后激活,并将所有归一化和激活步骤前置到卷积之前。这一微妙的转变使跳过连接成为干净的、未改变的恒等映射,改善了梯度流动并简化了优化,特别是在超深架构中。

一个直观的类比可能有助于澄清这个想法:将残差连接想象为一条高速公路,旨在快速绕过城市(网络)移动交通(或信息)。原始的 ResNet 设计在合并两条繁忙道路(跳过连接和卷积路径)后立即放置了一个交通灯(激活函数)。这导致了拥堵,特别是当 “交通灯” 意外变红时,就像激活函数饱和时一样。意识到这个问题,作者重新设计了交叉点。他们将所有交通控制转移到卷积路径上。结果,交通可以自由流动,避免了不必要的瓶颈——这是所有通勤者在高峰时段都会羡慕的。

3.4.1 后激活到预激活

在原始的 ResNet 设计中,ReLU 激活是在残差和跳过路径合并后应用的,这意味着两者被一起修改。相反,在预激活设计中,激活仅在残差分支内应用,保持跳过连接不变。作者观察到,预激活 ResNet 的训练误差略高,但测试误差低于原始的后激活对应模型,他们将这一现象归因于在每个卷积层输入处应用批归一化的正则化效果。参见图 3.5。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH03_F05_Heimann.png

图 3.5 左侧:原始残差单元显示两个 “权重” 层(即卷积层),它们之间有批归一化(BN)和 ReLU 激活,随后是一个与恒等连接合并的额外步骤。右侧:修订后的残差单元通过将 BN 和 ReLU 放置在权重层之前来重新组织操作,简化了路径。灰色箭头突出了支持信息通过残差连接顺畅前向和后向流动的直接路径(即跳过连接)。经主要作者(何恺明)许可使用。

3.4.2 消融研究

消融研究

消融研究系统地移除或修改模型的各个部分,以确定它们各自的贡献。作者使用消融研究来测试对跳跃连接的若干修改,并验证保留恒等映射的重要性。即使是很小的改动,例如将跳跃路径按常数缩放(例如 0.5),或在训练期间随机丢弃它,也会导致性能下降和收敛不佳。更复杂的调整——包括可学习门控,或在跳跃路径上添加卷积层——表现更差,常常提高错误率或导致优化完全失败。在这些深度下,微小的架构决策变得成败攸关。工程上的结论很明确:最简单、未经改动的恒等跳跃连接更优雅,也有效得多。

操作的位置

作者还评估了改变操作位置——例如激活函数(ReLU)和归一化步骤(批归一化)相对于跳跃连接的位置——如何影响性能。与原始方法(在合并路径后放置激活)相比,他们发现将批归一化直接放在相加之后会破坏跳跃路径并损害准确率。同样,在相加之前应用 ReLU 会将残差分支限制为仅正向调整,从而限制其有效性。在每个卷积之前单独使用 ReLU、不使用批归一化,也没有显著改善性能。最终,最有效的方法是完全预激活策略,即将批归一化和 ReLU 放在卷积之前,并在相加之后省略激活。

哲学

ResNet v2 对保留纯恒等映射的坚持,反映了一种更广泛的哲学:重视经验清晰性而非理论新颖性。作者没有发明全新的机制,而是通过系统实验严格测试现有假设,揭示出即使是细微偏差——例如缩放或门控跳跃连接——也可能使训练脱轨。这种实验心态呼应了 Sutskever 的信念:AI 的真正进步并非来自追逐概念性突破,而是来自深入理解已知思想、在规模上改进它们,并发现真正有效的东西。ResNet v2 论文体现了一种与 Sutskever 观点共鸣的精神:通过迭代进步,而非发明。

CIFAR-10 上的超深 ResNet

借助预激活残差单元,作者成功在 CIFAR-10 数据集上训练了一个超深 1,001 层 ResNet——该基准数据集包含 10 个对象类别、60,000 张小型(32 × 32)彩色图像。有趣的是,CIFAR-10 由 Alex Krizhevsky 于 2009 年提出,他正是 AlexNet 名声中的那个“Alex”,这凸显了他对数据集和架构的双重影响 [21]。即便如此,1,001 层 ResNet 仍取得了创纪录的准确率,将分类误差降至 4.62%。相比之下,原始(后激活)1,202 层 ResNet 架构的错误率为 7.93%。在训练深度网络仍是一种磨难的时代,作者证明了如果精心设计,极深架构可以保持稳定。深度不再是敌人,只要架构遵守优化所施加的约束。

ImageNet

在更大的 ImageNet 数据集上,作者训练了一个 200 层预激活 ResNet,其准确率高于原始 152 层后激活版本。将原始后激活设计扩展到 200 层会降低性能,不是因为模型原则上太深,而是因为该架构无法在这种规模下支持稳定优化。这凸显出,在这种深度下,成功的余量惊人地极其微小。最小的事情都可能导致收敛崩溃。

理论洞见

后续理论工作有助于解释为什么这能成功。研究表明,ResNet 的行为类似于许多不同深度较浅网络的集成 [22]。极深网络中的梯度传播通常通过更短、更直接的路径发生,而不是顺序遍历每一层。因此,1,000 层 ResNet 并不是作为一条 1,000 层的单一链起作用;相反,它包含许多用于梯度和信号的更短路径。这些更短路径有助于防止梯度消失,使训练显著更稳定。因此,可以添加额外层而不损害性能,因为未使用的层可以被绕过。恒等映射让网络能够按需选择和使用层,忽略无用的层。

层移除

作者通过系统移除单个层以观察效果的实验支持了这一想法。他们发现,移除带有残差连接的单个层只会导致误差适度增加,而不是灾难性失败。这表明网络可以通过使用其他可用路径来补偿。他们的分析显示,在 110 层 ResNet 中,最有效的梯度流动沿较短的子网络(大约 10–34 层)发生,而非常深的路径贡献极小,并且基本上学到了恒等映射。这一解释表明,ResNet 的成功不仅源于拥有一个非常深的模型,还源于结合了许多由残差连接实现的更简单、重叠的模型。

未来架构

到 2025 年,纯卷积网络将被基于 Transformer 或混合架构补充或部分取代,特别是在具有复杂长程依赖的建模任务中。尽管如此,即使这些先进模型也依赖残差连接。ResNet 的核心哲学鼓励每一层做出最小、增量的调整(“残差”),而不是完全转换数据。这些微小改进逐层累积,逐步增强表示。鉴于它对极深神经网络如何优化和训练的基础性影响,这篇论文在 Sutskever 的清单中占有一席之地也就不足为奇了。

3.5 用密集预测扩展 ResNet

ResNet 是为图像分类而构建的,其目标是每张图像给出一个预测(标签)。这被称为 稀疏预测任务。池化将局部区域聚合成单个值。步长卷积通过跳过像素对图像进行下采样。这些策略对稀疏任务很有效,因为它们将空间结构压缩为紧凑表示,并丢弃不影响全局标签的精细细节 [23][24]。

相比之下,密集预测任务——例如图像分割——旨在划分图像并为每个像素打标签。例如,图像分割为每个像素分配一个标签,指示它代表道路、汽车还是狗。因为目标是对象和表面的精确轮廓,而不仅仅是对图像内容的大致感觉,这些任务要求高空间保真度。因此,常用于图像分类的池化和步长卷积等技术就不太适合。那些改善全局识别的下采样,会抹去分割所依赖的边缘和位置线索。

另一种方法是跳过池化,并扩大卷积核以拓宽感受野,即模型“看到”的图像部分。更大的卷积核确实能拓宽上下文,但它们会急剧增加参数。例如,3 × 3 卷积核有九个参数,而 15 × 15 卷积核有 225 个。这是 25 倍的增长。因此,AlexNetVGGNet 等架构使用小卷积核,配合池化和堆叠层来扩展感受野,而不增加计算复杂度。尽管如此,这种策略在密集预测中仍会遇到限制,因为池化和大卷积核往往会模糊逐像素标注所依赖的精细细节和边缘。

2015 年,Fisher Yu 和 Vladlen Koltun 发表的论文“Multi-Scale Context Aggregation by Dilated Convolutions”引入了空洞卷积,用于在不降低分辨率或使用池化的情况下扩大感受野[25]。空洞卷积通过在元素之间插入基于扩张因子的间隙来扩大感受野,而不是使用更大的核。堆叠扩张因子为 1、2、4、8 等的层可以迅速扩大视野,而不会增加每层的参数数量。因此,感受野呈指数增长,而参数数量呈线性增长。它也是 Sutskever 列表上的论文之一。

这一创新是上下文模块的核心,该组件专为多尺度上下文聚合而设计。通过堆叠扩张速率不断增加的空洞卷积,上下文模块使网络能够在全分辨率下捕获精细的局部结构和广泛的全局依赖性。它解决了传统类 ResNet 架构在密集预测任务中的一个核心局限,即通常以空间分辨率换取更深的抽象。上下文模块通过在不牺牲像素级细节或计算效率的情况下收集广泛的上下文来规避这种权衡。这一策略在图 3.6 中得到说明。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH03_F06_Heimann.png

图 3.6 空洞卷积在不增加计算成本的情况下迅速扩大感受野。每个点代表一个卷积核元素。随着扩张增加(从左到右),感受野呈指数扩展,捕获更广泛的空间上下文,同时保持参数数量不变。经主要作者(Fisher Yu)许可使用。

作者修改了著名的 VGG-16 主干网络。由于密集像素预测需要高分辨率特征图,他们移除了池化和步长层,并用空洞卷积替换它们。这去除了以分类为中心的设计选择,产生了一个更简单的、面向分割的模型。在 PASCAL VOC 上,它在平均像素交并比(IoU)上比领先模型高出 5 个百分点以上[26][27]。平均像素 IoU 是语义分割最常见的基准。它衡量模型预测区域与真实对象区域逐像素重叠的程度。结果表明,在不使用池化的情况下扩大感受野可以产生更清晰、更准确的分割。

图 3.7 直观地比较了不同模型在分割任务上的结果。它展示了不同模型在图像中识别和勾勒不同对象的准确程度。该图描绘了五个场景:一个人骑着马、一架战斗机在天空中翱翔、一只飞行中的鸟、客厅里的家具以及一组椅子。每个场景都带有原始照片、三种分割方法的预测以及正确的轮廓(真实标注)。方法的精度各不相同。第一种方法(FCN-8s)产生粗糙的轮廓,难以捕获细节。第二种方法(DeepLab)提高了准确性,更紧密地勾勒对象,但仍有一些不完美之处。作者提出的方法进一步细化了这些轮廓,接近真实标注的准确性和清晰度。总体而言,直观的比较突出了空洞卷积如何改善密集预测。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH03_F07_Heimann.png

图 3.7 不同分割模型产生的语义分割。从左到右:第一列是输入图像,第二列是 FCN-8s 的预测,第三列是 DeepLab 的预测,第四列是 Yu 和 Koltun(2015)的预测,最后一列是真实标注。这些示例展示了越来越精确和准确的分割,Yu 和 Koltun(2015)的方法相比以前的方法显著改善了边界定义和对象识别。经主要作者(Fisher Yu)许可使用。

然而,训练空洞上下文模块被证明出乎意料地不稳定。传统的随机权重初始化效果不佳。作者在恒等函数中找到了一个惊人简单的补救方法。不是从随机噪声开始,每个卷积滤波器被初始化,使得每个输出通道直接复制其对应的输入通道。换句话说,每层开始时都是一个恒等映射。

这种初始化为网络提供了一个有意义的起点。在训练早期,每层只是不变地向前传递信息,即使通过多个空洞卷积也能创建稳定的信号流。优化随后专注于学习来自恒等映射的小偏差(残差),以提高预测准确性,而不是从头开始重建映射。

这一想法呼应了残差连接的逻辑,其中信号路径保持开放,学习细化差异。但在这里,稳定性不是通过显式的跳跃连接实现的,而是通过权重本身实现的。网络从接近线性的状态开始,然后随着反向传播调整滤波器,逐渐学习非线性改进。这个看似简单的“恒等初始化”使得上下文模块能够可靠地训练。尽管担心这种初始化可能使模型陷入无所作为的状态,但作者发现事实恰恰相反。网络迅速使用上下文信息,并在不改变架构的情况下实现了分割准确性的可衡量提升。这是一次极简主义、几乎 ResNet 式的操作:微妙、优雅且非常有效。

虽然 ResNet 在分类方面表现出色,但它对池化和下采样的依赖使其不适合像分割这样的密集任务,其中空间精度至关重要。突破来自于空洞卷积,它在不牺牲分辨率或增加参数数量的情况下扩大感受野。这导致了上下文模块的创建,通过堆叠扩张速率不断增加的空洞卷积,该模块在全分辨率下捕获局部细节和全局上下文。恒等初始化通过从每层处于无操作状态开始,即该层什么都不做并不变地传递其输入,进一步稳定了训练。这些设计选择共同代表了密集预测深度学习演变中的关键时刻。

3.6 人类衡量标准

在 2015 年的一篇博客文章中,微软报告称其基于 ResNet 的系统可以“达到有时超过人类水平的表现”[28]。这一成就激发了关于 AI 的公开讨论。与 AlexNet 不同,AlexNet 很大程度上是一个内部人士庆祝的私人里程碑,并以 Geoffrey Hinton 和 Jitendra Malik 等领先研究人员之间的友好打赌为标志,ResNet 开启了一个与人类基准和公开演示进行明确竞争的时期。

人类表现阈值于 2014 年底由斯坦福大学的 Fei-Fei Li 团队引入。它来自一个极其有限的样本,即两名“专家标注者”:一名在 500 张图像上训练,另一名在 100 张图像上训练[29]。这个小型实验报告的人类错误率为 5.1%,随后 5%被采用为人类表现的阈值。ResNet 的表现无疑令人印象深刻,但仅从如此小的数据集、只有两名标注者就达到人类水平的表现,在方法学上是可疑的。

ImageNet 人类水平基准的争议与影响

基准的可疑有效性

然而,方法论并非唯一的问题:该基准的有效性也存疑。ImageNet top-5 指标旨在衡量机器性能,如果真实标签出现在模型的前五个预测中,则预测计为正确。例如,如果给模型展示一个篮球,它返回的猜测如“croquet ball”、“bikini”、“warthog”、“basketball”和“moving van”,它仍然计为正确 [30]。这种宽松的评分有助于评估机器,因为认识到模型至少“接近”可以提供诊断性见解。但事后将这一标准应用于人类,充量说是令人尴尬的。

人类在区分“篮球”和“比基尼”这样简单的物品时,很少会提供多个猜测,这使得 top-5 指标在概念上与人类表现不一致。这种事后指派造成了关于“人类水平”表现究竟何意的混乱。ResNet 较少被讨论的 top-1 准确率为 78.57%,远低于人类表现的 95% 阈值 [31][32]。

该阈值实际上捕捉到了标注者根据 ImageNet 的专业惯例标注图像的熟练程度,而非评估一般的人类视觉敏锐度。这种标注涉及独特的区分,如细粒度的犬类或鸟类品种,以及微妙的类别边界,旨在训练和评估机器学习模型,而非反映现实世界场景中的一般人类感知。

请记住,ImageNet 大规模视觉识别挑战包含 1000 个物体类别,其中包括许多细粒度类别。虽然人类擅长识别像比基尼这样的熟悉物体,但他们在面对人工类别、微妙区分或不熟悉的专业分类时却很吃力——例如,区分亲缘关系很近的犬类品种或 ImageNet 数据集中定义的稀有鸟类物种 [33]。

ImageNet 团队在他们 2014 年的论文中承认了这一点,描述“用 1000 个类别之一标注图像对未经训练的标注者来说是一项极其困难的任务” [34]。

象征力量与媒体炒作

人类水平基准作为衡量人工智能进步的外部基准而具有影响力,明确将机器性能与人类认知能力联系起来。事实上,ResNet 的重要性部分源于超越了这一可疑但象征性强的阈值,将一个简单的指标转化为一个里程碑,许多人将其视为迈向“真正”人工智能的具体进展——无论其定义多么模糊。这种象征意义迅速摆脱了学术基准的束缚,在公众想象中获得了独立的生命,成为媒体的诱惑。

它经常被引用为 AI 在视觉方面已“优于人类”的证据。标题充斥着技术胜利主义:EE Times 发表了“微软、谷歌在图像识别上击败人类”(2015 年 2 月);Fast Company 紧随其后发表了“微软软件识别图像优于人类” [35][36]。The Guardian 在 2015 年 5 月更进一步:“计算机现在优于人类识别和分类图像” [37]。到 2017 年,Entrepreneur 问道:“人工智能能比人类更好地识别图片吗?”该文章的俏皮副标题是:“计算机用了不到一个世纪就学会人类花了 5.4 亿年才知道的东西” [38]。显然,进化需要雇佣更好的工程师。

这些令人喘不过气的报道很少停下来追问该基准是否捕捉了人类视觉,还是仅仅奖励机器在无人关心的分类学上超越人类标注。然而,几乎没有人停下来思考一个更深层的问题:即使该基准确实准确反映了人类水平的视觉敏锐度(这是有争议的),超越这一阈值是否意味着机器在认知或心理上的合理性?在 ImageNet 上“击败人类”是否表明了机器感知、理解或推理视觉世界的任何基本事实,还是仅仅确认它们已经掌握了训练数据和标注分类法?

模型鲁棒性的失败

实际上,超越人类水平的阈值并不表明类似人类的视觉理解或一般的鲁棒性。卷积神经网络(CNNs)很快因其缺乏鲁棒性以及有限的泛化到现实世界的能力而受到批评。研究人员发现,这些模型容易受到对抗性示例的攻击:输入被轻微扰动,方式对人类不可感知,却足以欺骗网络产生自信的误分类 [39]。这激发了对更可解释的模型设计和事后解释技术的兴趣,因为仅仅向 CNN 添加残差连接并没有解决对模型 为何 做出自信决策的缺乏洞察。

鲁棒性失败超出了合成对抗性示例,并在现实世界部署中显著体现。例如,2015 年,Google Photos 错误地将黑人个体的照片标记为“大猩猩”,这说明了在声称人类水平的性能下,模型对代表性不足的示例的泛化可能多么脆弱 [40]。即使架构变得更深并在基准上接近人类水平的性能,它们仍然容易犯人类在遇到微妙分布偏移时不会犯的错误。

这一差异提出了关于究竟什么构成“人类水平”性能的合理问题,如果模型不像人类智能那样行为。到那时,Google 已经改进了其原始的 GoogLeNet 架构。Inception v3 在 ImageNet 上实现了 5.6% 的 top-5 错误率,在 2015 年 ILSVRC 竞赛中仅次于 ResNet 的 4.49% 排名第二。然而,与所谓人类水平基准的调情并未使这些模型对现实世界的脆弱性免疫,突出了排行榜指标与真正鲁棒性之间的持续差距 [41]。尽管与较浅的模型相比,深度提供了优越的表征学习,但当训练分布不完整或预测跨越敏感类别时,仅实现高准确率几乎不能提供保证。

阈值的遗产

虽然 ResNet 并未建立这一阈值,但其背后的 Microsoft 团队拥抱了其象征意义。在更早的、无关的 2015 年论文中,他们写道:“我们的结果是首次在这项视觉识别挑战中超越人类水平的性能(5.1%)。”到那年晚些时候 ResNet 论文发布时,团队已经敏锐地意识到跨越该阈值的修辞力量。他们通过在论文摘要中引用原始的人类水平性能估计,使其明确化。5% 的错误率将超越一个指标,ResNet 以刻意的强调跨越了它。

尽管有其局限性,ImageNet 的 5% 人类基准在现代 AI 中具有关键意义,不是因为它在方法论上健全或有效,也不是因为它是机器首次与人类比较,而是因为它提供了一个人类性能的固定、定量的衡量标准。存在更早的人类基准,包括 IBM 的深蓝、Chinook 程序、IBM Watson 在危险边缘中的胜利、Facebook 的“DeepFace”、DeepMind 的 Agent57 和 AlphaGo。尽管如此,ImageNet 的阈值是最早定义和推动深度学习时代进展的此类指标之一。

Microsoft 研究团队顺应这一趋势,并帮助巩固了“人类水平性能”作为明确的研究目标。这激励了其他人效仿,将现代 AI 的奥弗顿窗口转向人类基线作为基准的常规使用。今天,无论在视觉、语言还是语音领域,研究人员通常都会建立人类基线,设定人类水平的阈值,并庆祝达到或超越它们的模型。虽然更早的成就暗示了这一转变,但 ResNet 的突破普及了现在普遍的信念,即人类性能是一个需要超越的基准。

从哲学角度来看,将人类能力简化为数值基准,过度简化了关于智能和人类认知的复杂问题。从社会层面来看,仅仅将人类视为需要超越的基准,会将重点从创造互补、有益的技术转向竞争,从而隐含地将人类的角色从创新者重新定义为竞争者。虽然人工智能在技术上可能已经准备好追逐基准,但大多数人还没有准备好理解超越这些基准意味着什么。

3.7 CS231n

斯坦福大学的 CS231n 是该校第一门完全致力于深度学习的全程课程,并且紧密反映了 ILSVRC 的突破。定义了那个时代的架构,如 AlexNet、VGGNet、GoogLeNet 和 ResNet,都是课程的一部分[42][43] [44][45]。该课程甚至让学生在 ImageNet 的一个子集上训练模型,强调了这种联系以及“边做边学”的理念。该课程由李飞飞、Andrej Karpathy 和 Justin Johnson 共同创建。

CS231n 在斯坦福大学之外也产生了巨大的影响。讲座幻灯片、视频、笔记和作业都可以在线免费获取。讲师们鼓励外部人员跟随学习,甚至建立了一个公共 subreddit(r/cs231n)和一个 Twitter 账号(@cs231n),学习者可以在那里讨论和提问。这种开放性帮助 CS231n 获得了全球关注并扩大了其影响力。

到 2017 年,该课程从 2015 年的 152 名斯坦福学生增加到峰值 774 人,使其成为斯坦福计算机科学最大的课程之一。作为背景,吴恩达是斯坦福教授,共同创立了 Google Brain,创立了 Coursera 和 DeepLearning.AI,并领导了百度的 AI 团队。他著名的机器学习课程 CS229 在峰值时有 869 名学生[46]。CS231n 同时记录并塑造了深度学习在视觉领域的崛起。这是一门拥有自己遗产的课程,继续为下一代装备知识,这就是它为什么出现在 Sutskever 的列表上。

3.8 扩展什么?

ResNet 的出现是对模型退化的务实回应。随着深度增加,网络表现更差。残差连接以及后来的预激活恢复了信号流。这种稳定性创造了飞轮效应:微小的架构调整解锁了更大的模型,而更大的模型又提高了架构的回报。这个飞轮是深度学习所特有的。

相比之下,支持向量机是一种浅层边缘最大化器。它在固定的特征空间(显式或核定义)中选择决策边界。没有堆叠的表示或梯度可以穿过深度传播,因此随着网络变深,没有类似于梯度消失或模型退化的现象。事实上,没有“更深”的旋钮可以转动。虽然你可以使用更多的计算来更精确地解决凸优化问题,但这不会创建深度学习风格的扩展循环。因此,这种架构使得残差连接等创新变得无关紧要。

相反,只有当架构可靠地将计算和数据转化为更丰富的学习表示时,它们才会复合。这正是残差连接在深度学习中所实现的机制。只有当模型通过基于梯度的优化在许多层上迭代地学习分层表示时,残差连接才重要。

在他 2019 年有影响力的文章《残酷的教训》中,理查德·萨顿认为,研究人员最好投资于随着计算增加而可靠改进的通用方法,而不是手动调整启发式方法或围绕关于“我们如何思考我们如何思考”的内省故事构建解决方案[47]。这种动态在前一章中很明显,当时 AlexNet 优于手工特征工程(例如 SIFT)。编码先验知识可以带来短期收益,但随着时间的推移,这些收益往往会被直接从数据中学习相关特征的架构所超越。

但《残酷的教训》经常被误解为暗示进步的主要驱动力是“更多的计算获胜”,而研究人员和架构的作用在减弱。正如伊利亚·苏茨克维克在采访中反复强调的那样,通常是在回应《残酷的教训》时,我们必须澄清:“我们到底在扩展什么?”[48]。“规模”是一个乘数,但只有当底层方法被设计为将计算资源转化为性能时,它才会变大。

类似的观点出现在阿廖沙·埃夫罗斯的“花哨”叙事中,它明确将数据视为解释惊人进步量的“无名英雄”[49]。他认为数据是普遍的均衡器,研究人员应该更谦逊。《残酷的教训》将计算视为普遍的均衡器,并同样敦促研究人员保持谦逊。两种叙事都强调真正的魔力不在架构中,研究人员往往给自己太多的功劳。但真的是这样吗?

数据和计算是必要的,但不够。决定性的问题不是我们是否有更多,而是架构和训练范式能否有效地使用它们。像苏茨克维克的阅读清单这样的东西之所以重要,一个原因是它使那些最初让扩展产生回报的发明以及背后的人变得清晰可见。如果《残酷的教训》告诉研究人员去扩展,那么伊利亚的回应提出了一个更可操作的研究问题:扩展什么?

最终,ResNet 及其引入的残差连接在创新和实用性之间找到了最佳点。它在计算机视觉与模式识别会议(CVPR)上获得了著名的 2016 年最佳论文奖,强调了它对一个真正感到惊讶的社区的影响。回顾这一成功,何恺明表示,ResNet“摧毁了”他以前对深度学习局限性的一些假设[50]。

2012 年,AlexNet 点燃了深度学习革命,将 ILSVRC 推入计算机视觉的决定性战场。然而,仅仅五年后(就在 ResNet 引入两年后),ImageNet 达到了饱和点。这场被吉特德拉·马利克视为超越时代的竞赛已经解决,促使李飞飞停止了比赛。研究人员将目光转向了新的前沿。结果,ImageNet 数据集从前沿基准变成了只是另一个基线。它现在在计算机视觉研究中占据着更具象征意义的位置,类似于 MNIST,一个手写数字数据集,长期以来一直作为入门工具和初学者的参考点,而不是持续创新的来源。

到 2025 年,原始的 ResNet 论文在学术文献中积累了超过 10 万次引用,在 Google Scholar 上大约有 25 万次,使其成为 21 世纪被引次数最多的科学论文,涵盖所有领域[51]。几乎每一篇新的计算机视觉论文都引用、比较或基于 ResNet,巩固了其作为该领域标准架构的地位。残差连接也超越了计算机视觉,推动了从 AlphaGo 对棋类游戏的掌握和 AlphaFold 对蛋白质结构预测到 GPT-2 等语言模型进步等领域的突破。通过实现深度网络,残差连接已成为现代人工智能在各个领域不可或缺的一部分。

然而,计算机视觉只是更广泛的深度学习革命中的一个前沿。随着模型扩展到序列、语音和语言,它们也变得更大、更复杂、更苛刻。这种扩展给该领域带来了新的压力,将进步从孤立的架构洞察转向训练、优化和部署大规模系统所需的工程规范。

4 深度学习加速

本章涵盖

  • AlexNet 之后循环神经网络的复兴
  • 卡帕西的博客如何让循环神经网络变得易于理解,激发实验热情

  • 克里斯·奥拉如何用生动的视觉和比喻阐明长短期记忆

  • 选择性 Dropout 如何使更深层的循环网络成为可能

  • Deep Speech 2 如何证明循环神经网络的现实潜力

  • AI 中的工程范式转变

论文

  • 循环神经网络的不合理有效性(2015)安德烈·卡帕西

  • 理解 LSTM 网络(2015)克里斯·奥拉

  • 循环神经网络正则化(2014)Zaremba、Sutskever 和 Vinyals

  • Deep Speech 2:英语和汉语的端到端语音识别(2015)Amodei 等人

循环神经网络(RNN)是序列模型。序列模型处理有序数据,如文本、语音或时间序列,其中每个元素的位置都很重要。n-gram 是序列模型。它们通过查看先前 token 的固定窗口来捕捉短程依赖关系。RNN 通过携带整个序列历史的压缩表示扩展了这一思想。然而,尽管具有理论前景,诸如梯度消失或爆炸、对长程时间依赖关系的处理不佳以及训练效率低下等实际问题限制了其有效性。这些挑战一直持续到一种专门为循环架构设计的 dropout 方法被引入。

在此期间(2014–2016),通过有影响力的教育资源,循环网络的直观吸引力得到了广泛认可。安德烈·卡帕西用生动的例子和易懂的代码激发了开发者社区的兴趣,导致广泛的实验。作为对卡帕西平易近人见解的补充,克里斯·奥拉提供了清晰、直观的可视化,阐明了长短期记忆(LSTM)网络的内部运作。

本章以对 Deep Speech 2(DS2)的考察结束,DS2 是一个里程碑式的端到端基于 RNN 的语音识别系统,展示了精密的架构结合足够的计算资源如何能够超越人类精度。DS2 代表了伊利亚·苏茨克维所倡导的实用、可扩展的进步,将 RNN 与卷积神经网络(CNN)一起确立为深度学习革命中的基础架构。

4.1 循环神经网络的不合理有效性

2015 年 5 月,安德烈·卡帕西写了一篇题为“循环神经网络的不合理有效性”的博客文章 [1]。当时,对 RNN 的解释晦涩、数学繁重且难以理解。卡帕西提供了一种直观的方法,通过突出的例子和易于理解的代码示例展示 RNN 能够实现什么。

一个特别令人难忘的实验涉及向模型提供保罗·格雷厄姆创业散文的全文;格雷厄姆最出名的是共同创立 Y Combinator [2]。动机是半开玩笑的。格雷厄姆提供了永恒的创业建议,但他是一个缓慢的生成器。如果能按需合成新鲜的创业智慧就好了。

卡帕西的保罗·格雷厄姆生成器被构建为一个字符级语言模型,使用约 1 MB 的保罗·格雷厄姆散文拼接文本进行训练,总计约 100 万个字符。该模型(“char-rnn”)被实现为一个两层堆叠的 LSTM,每层包含 512 个隐藏单元,总计约 350 万个参数。它使用了比率为 0.5 的 dropout 正则化。训练后,模型通过一次预测一个字符来生成新文本,从概率分布中采样,其随机性可通过调整温度参数来控制;较低的温度产生可预测的、重复的文本,而较高的温度产生更有创造性但连贯性较差的输出。结果文本如下:

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/Prompt-LSTM.png

The surprised in investors weren’t going to raise money. I’m not the company with the time there are all interesting quickly, don’t have to get off the same programmers. There’s a super-angel round fundraising, why do you can do. If you have a different physical investment are become in people who reduced in a startup with the way to argument the acquirer could see them just that you’re also the founders will part of users’ affords that and an alternation to the idea. [2] Don’t work at first member to see the way kids will seem in advance of a bad successful startup. And if you have to act the big company too.

这并不算好。虽然有一些熟悉的创业陈词滥调,如超级天使、收购方和融资轮次,但创业建议明显是不连贯的。它是创业领域的恐怖谷效应:模糊熟悉但情感空洞。它甚至凭空生成了一个引用“[2]。”它试图听起来权威而非清晰,这与保罗·格雷厄姆的写作风格相反。现在读起来让人有些迷失方向。的确,它未能通过奥维德的独角兽所确立的氛围测试,这一标准 GPT-2 要再过四年才能达到。它提醒我们,曾经的期望有多低,多少人轻易就为之惊叹,以及该领域自那时以来走了多远。

出于好奇,我提示 ChatGPT(4o)“帮我重写这个”,它给出了以下回应 [3]:

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/Response-Chatgpt.pngThis seems like a garbled or machine-generated paragraph, but here’s an attempt to rewrite it into something coherent and meaningful, assuming it’s about startup fundraising and acquisition dynamics.

Rewritten version: “Surprised investors weren’t planning to raise money. I wasn’t at the company full-time, but things were moving quickly—there wasn’t a need to hire the same kind of programmers right away. It felt more like a super-angel round than a traditional fundraise. If your investment thesis is more physical than digital, you tend to back people who can reduce complexity in a startup. That makes it easier for potential acquirers to see the long-term value. Founders who focus on user needs early tend to build stronger momentum, even if the initial product doesn’t work perfectly. And sometimes, if you’re forced to act like a big company too soon, it can kill the very thing that made the startup interesting.”

如果我们要宽容地看,“char-rnn”是在单个字符层面学习,使其难以理解的胡言乱语有些令人印象深刻。字符级模型在连贯性上挣扎,因为它们以更精细的粒度运作,一次生成一个 字母 的文本,而不是使用单词或子词。与处理有意义的词块的基于 token 的模型不同,字符级模型没有内置的单词或拼写概念,因此更难在句子间保持语义一致性。这意味着它们必须在更多的步骤上建模长程依赖关系,大大增加偏离主题或失去连贯性的风险。然而,即使在这个粒度水平上,模型也不是盲目地拼凑字母;它在近似语言结构和概念模式。尽管有这些固有的限制,即使是勉强连贯的文本生成在 2015 年也感觉是突破性的。

的确,卡帕西的原帖开头就捕捉到了这种惊奇感:“There’s something magical [sic] about Recurrent Neural Networks。”在当时,这听起来不像今天那样轻率;观看模型逐个字符生成文本是相当惊人的。卡帕西通过对比 RNN 和 CNN 来解释这种“魔力”。CNN 需要固定大小的向量作为输入,并产生固定大小的向量作为输出。这使得它们非常适合独立分析静态图像或单个视频帧,但限制了它们在涉及序列数据的任务中的有效性,如句子、音频流或连续视频序列。

从结构上讲,RNN 与其他神经网络共享基本组件,包括由神经元组成的层、连接权重、偏置、激活函数,以及通过反向传播进行训练。它们的区别特征是循环反馈回路,允许来自前一个时间步的信息影响当前输出。这个循环使 RNN 能够处理任意长度的序列,而不需要固定大小的输入,因为在每个步骤中相同的计算单元被递归应用,将上下文随时间向前传递 [4]。参见图 4.1。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH04_F01_Heimann.png

图 4.1 这张图片来自 Chris Olah 的工作(将在下一节讨论),展示了一个代表 RNN 的链状结构。它说明了 RNN 如何顺序处理数据,一个步骤的输出输入到下一步。循环的、链接的模块反映了 RNN 传递信息的能力,使其非常适合学习随时间展开的模式,例如时间序列、文本或音频。经作者 (Chris Olah) 许可使用

在每个时间步,一个简单的 RNN 接收两个输入。第一个是序列的当前元素(例如,单词、子词或字符),第二个是来自上一步的隐藏状态,它编码了所有先前输入的摘要。这个隐藏状态充当持久的内部“记忆”,在每一步更新并为后续步骤提供上下文。尽管网络在每一步生成输出,但隐藏状态而不是输出被传递到下一步。通过这种方式,RNN 随时间维持上下文,使其能够对序列数据建模。

为了更好地理解这种设计的重要性,考虑一个更简单的模型,例如 n-gram,它存储长度为 n 的序列的概率。例如,预测 “hel” 后面的下一个字母仅依赖于在训练数据中某些字母跟在 “hel” 后面的频率。n-gram 具有固定的、有限的记忆,无法捕获超过 n 步的依赖关系。相比之下,RNN 的动态隐藏状态可以编码超出固定窗口的上下文模式。RNN 不是计算序列频率,而是学习分布式表示,隐式地捕获上下文、语义和语言结构,使它们能够建模更复杂的关系。

在处理 “hello” 这个词时,RNN 不会孤立地预测每个字母。相反,它根据上下文不断更新内部表示。在遇到 “hell” 之后,模型必须确定这个词是否完整(“hell”)或者它是否应该继续构成 “hello”。至关重要的是,这个决策不仅基于从训练数据中记住的频率,还基于其隐藏状态中编码的即时上下文。简而言之,隐藏状态使模型能够记住并使用上下文来解决歧义(例如,重复的字母)并确定序列何时应该结束。

Karpathy 的核心演示集中在使用维基百科、莎士比亚、LaTeX 和 Linux 源代码等数据集进行字符级预测。维基百科模型产生了合理的 Markdown 和引用结构。莎士比亚模型成功地模仿了舞台对话的结构模式,但没有模仿其戏剧效果或诗意品质。例如:

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/Prompt-LSTM.png****PANDARUS:

唉,我想他将会被接近,日子;

当小 srain 将被达到进入从未被喂养的存在。

LaTeX 模型经常生成语法有效的方程式,但它也会犯错误。LaTeX 是一种用于撰写数学和科学文档的排版语言,其中像 证明引理 这样的环境必须用匹配的命令打开和关闭。模型有时会开始一个 \begin{proof} 环境,却错误地用 \end{lemma} 关闭它。这些错误源于无法建模长期依赖。当模型到达证明的结尾时,它已经忘记了它是在处理证明还是引理。类似地,模型可能会以 \begin{enumerate} 打开,却记不得关闭它。随着模型变大,这些错误变得不那么频繁,但它们仍然强调了在扩展序列上维持上下文的挑战。

为了进一步阐明这些结果,Karpathy 引入了工具来解释 RNN 的内部工作。他可视化了神经元激活,揭示了对引号、URL 或 Markdown 标签做出响应的单元。一些神经元变成了范围跟踪器,而另一些似乎是引号平衡器或缩进计数器。这些可视化提供了窥探模型内部分布式计算的罕见窗口,作为学习表示中结构的早期、可访问的示例。

该博客走红,成为 Hacker News 上的头条,获得超过 900 分和数百条评论 [5]。这个受欢迎的技术论坛上的读者赞扬了 Karpathy 澄清复杂概念的能力;一位评论者指出,这是“我第一次理解这个领域的人…… [他] 打破了障碍。更重要的是,激情贯穿他的写作。并且可以感受到。我在阅读时感到非常兴奋” [6]。这种情绪被广泛分享。在 Reddit 上,读者惊叹于模型生成合理 LaTeX 公式的能力。“它几乎能写出有效的 LaTeX?”有人诚恳地写道。“如果这不是杰出智慧的标志,我不知道是什么。”至少对 Reddit 用户来说,“智慧”的真正标志是正确的方程格式。不管是否有效,那里有一些氛围 [7][8]。

该博客的配套开源代码在 GitHub 上积累了近 12,000 颗星和数千个 fork [9]。世界各地的开发人员开始在几乎所有可以想象的数据集上训练字符级 RNN:烹饪食谱、Eminem 歌词、爱尔兰民谣、特朗普和奥巴马的演讲,甚至圣经 [10][11][12][13][14][15]。Twitter 和 Reddit 上充满了古怪的 RNN 生成文本。这些衍生内容创造了飞轮效应:衍生内容扩大了博客的影响力,增强了其可见性,并加速了其在技术和流行领域的影响。

人工智能研究人员也扩展了该帖子的影响力。Chris Olah 在他那篇病毒式传播的文章“理解 LSTM 网络”中引用了 Karpathy 的博客 [16]。Olah 写道:“我将把对 RNN 可以实现的惊人壮举的讨论留给 Andrej Karpathy 的优秀博客文章。”这成为了一个教学时刻。Karpathy 清晰的解释、示例和代码降低了入门门槛。一位评论者抓住了这种精神:“Karpathy 是我最喜欢的作者之一……他花了很多时间让这个领域变得不神秘……这是鼓励他人探索它的一种聪明方式” [17]。Karpathy 有影响力的博客和 CS231n 课程在深度学习社区中成为了经典。

自然,并非每个人都被这种氛围所吸引。一个平行的、怀疑的对话出现了。例如,研究人员 Yoav Goldberg 撰写了一篇后续博客文章,将 Karpathy 关于字符级 RNN 的帖子与更简单的基线进行比较,例如未平滑的 n-gram 模型 [18]。

Goldberg 基本上应用了与 Efros 相同的方法论要求,但在一个不那么正式的场合。在同行评审中,Efros 推动 CNN 论文展示相对于在相同数据上训练和测试的最简单的最近邻基线的改进。Goldberg 对字符级 RNN 工作提出了类似的挑战,在将功劳归于架构或其作者之前,将其与基于频率的 n-gram 基线进行比较。背景当然不同,但原则相同。在这两种情况下,潜在的信息是相同的:给定足够的数据,更简单的模型表现惊人地好。更广泛的观点是,数据起到了均衡器的作用,中和了架构差异。

第四章:循环神经网络

4.1 RNN 之争

戈德堡的批评

戈德堡认为,卡拉帕蒂博客的读者是“因错误的原因而留下深刻印象”。这一论点暗示,只有像戈德堡这样更有洞察力的读者才能看到实际上令人印象深刻的地方。正如戈德堡所解释的,“错误的原因”在于读者错误地认为连贯的文本生成是 RNN 等神经架构所独有的或特别的。但通过强调连贯的文本生成等结果之间的任意重叠,并忽视架构差异,戈德堡的批评制造了一种虚假的等价。这是一种在审视下会崩溃的肤浅对称。当模型收敛到相似的输出时,人们容易看到相同之处。但结果的相同并不意味着架构的相同。

定量证据

托马斯·米科洛夫(Tomas Mikolov)以开发 word2vec(2013)而闻名,他提供了 RNN 优势的明确定量证据,包括与平滑 n-gram 模型相比,语言建模的困惑度降低 50%,语音识别中的词错误率(WER)相对降低 18% [19][20]。WER 是语音识别的标准准确性指标,衡量系统转录与参考真实情况之间的差异程度。更值得注意的是,即使 n-gram 模型获得大量更多数据,RNN 仍然保持了这一优势,突出了根本的表征优势。

修辞策略

戈德堡的批评也有修辞的尖锐。将某物称为未平滑的 n-gram,旨在通过坚持性能只是任何人都可以用足够数据做到的技巧来削减其规模。虽然 RNN 还有很长的路要走,但它们展示了在学习结构方面相对于简单统计模型的质和量的飞跃。性能不是架构和数据之间的妥协,而是来自它们的综合优势。答案不在中间的某个地方;而是明确地两者都是。

AGI 与计算功能主义

具有讽刺意味的是,戈德堡将性能与架构等同的修辞技巧,被人工通用智能(AGI)的支持者广泛使用,他们混淆了机器和人类的性能与架构等价。这种混淆体现了计算功能主义的核心原则,这是一种哲学观点,认为如果系统执行相同的功能,则它们是等价的。例如,只要生物和计算基质保持其功能角色,它们就被认为是无关紧要的。从这个角度来看,相似的性能、行为或个体化功能使内部机制的具体细节变得无关紧要。这种推理抹平了心灵和模型之间的机制和认识论不对称。在每种情况下,修辞技巧都涉及夸大相似性以掩盖差异,在表面等价的背后伪装形而上学的差异。关键点是,像戈德堡这样的怀疑论者和 AGI 爱好者使用同样有缺陷的推理。尽管如此,卡拉帕蒂在他的原始帖子中链接了戈德堡的批评,信任读者公平地评估竞争的观点。

卡拉帕蒂博客的影响

最终,戈德堡承认 RNN 是“酷”的。然而,甚至这种让步感觉不像钦佩,而更像是对他们流行吸引力的略带轻蔑的点头,好像它们是有趣的玩具而不是严肃的工具 [21]。当时,这种怀疑主义有些道理,因为 RNN 是实验性的,甚至是玩具般的。事实上,卡拉帕蒂的博客显示它们还不是严肃的工具。但 n-gram 也不是,而 RNN 至少展示了优越的性能。尽管如此,循环很快就会被基于注意力的人工神经网络(第五章)所掩盖。

与戈德堡的博客不同,卡拉帕蒂的博客激励了无数项目,因为它赞美实际的探索和工程独创性,而不是贬低它们。它出现在深度学习对大多数开发者不透明的时候,使其变得可接近、视觉化、轻松愉快,并且没有虚伪。它不仅仅是关于 RNN 产生连贯的输出;而是关于突然的可访问性。任何有 GPU 和文本文件的人都可以探索它。卡拉帕蒂的博客捕捉到那个短暂的文化窗口,当时前沿研究和业余实验之间的差距瞬间崩溃,使人工神经网络对许多人来说第一次感到有形。它表明,一个精心制作的博客可以争夺到与高引用研究论文相当的心理份额。真正“不合理的有效性”是一篇写得好的博客文章能走多远。

4.2 理解 LSTM 网络

虽然卡拉帕蒂展示了 RNN 能做什么,但克里斯·奥拉(Chris Olah)有影响力的博客“理解 LSTM 网络” [22] 生动地说明了它们是如何实现的,使用直观的视觉和令人难忘的类比。他清晰、吸引人的风格不仅简化了 LSTM;在该领域最需要的时候,它为清晰性和可访问性设立了新标准。

传统 RNN 与梯度消失

传统的前馈神经网络独立地处理每个输入,但许多任务,例如预测句子中的下一个单词,需要上下文。RNN 通过逐步处理数据同时维护捕获过去信息的隐藏状态来解决这个问题。与像 n-gram 这样只查看有限固定窗口的简单语言模型不同,RNN 可以捕获跨越许多步骤的依赖关系,允许早期上下文影响后来的预测 [23][24]。考虑句子“我在法国长大……我讲流利的法语。”为了准确预测“法语”,网络必须回忆起早期对“法国”的提及,即使它被许多中间词隔开。不幸的是,随着中间词之间距离的增加,RNN 难以连接信息。

训练 RNN 依赖于通过时间的反向传播,它在多个步骤上“展开”循环结构,将类似循环的递归转换为具有共享权重的深线性序列 [25]。在观察 100 个单词后预测下一个单词类似于训练具有 100 层的网络。与 CNN 一样,深度带来了挑战。例如,学习 100 个单词序列的第一个和最后一个单词之间的关系极其困难,因为指示早期输入如何影响最终预测的梯度变得微不足道,使模型几乎没有关于长程依赖关系的学习信号。随着输入和输出之间的差距增加,输入对损失的影响指数级减小,导致 RNN 忽略早期但相关的信息 [26]。

LSTM 网络

为了克服梯度消失问题并更好地建模长程依赖关系,塞普·霍赫赖特(Sepp Hochreiter)和于尔根·施密德胡伯(Jürgen Schmidhuber)开发了一种特殊类型的 RNN:LSTM 网络 [27]。LSTM 显著提高了需要长程记忆的任务的性能,例如语言建模、语音识别和手写识别。与单个神经网络层不同,LSTM 使用四个以独特方式交互的层。奥拉著名地将 LSTM 的内部运作描述为在工厂中平稳移动的传送带,在恰好正确的时刻选择性地添加、携带和移除物品(信息)。这个类比展示了这些网络如何在长序列上有效地管理信息 [28]。

LSTM 通过专门的门管理信息流,并保持两种类型的记忆:长期和短期(因此得名长短期记忆)。细胞状态(C[t])被认为是长期记忆,是 LSTM 的核心组件(见图 4.2)。它允许信息在多个步骤中几乎不变地传递,有助于防止与梯度相关的问题。这在概念上类似于残差连接,因为两者都提供允许梯度更容易流动的路径。虽然残差连接直接将输入加到输出,但 LSTM 细胞状态通过门控机制选择性地管理信息。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH04_F02_Heimann.png`

图 4.2 单个 LSTM 单元。输入是当前向量X[t]、前一隐藏状态h[t][–1]和前一细胞状态C[t][–1]。有三个学习到的门:遗忘f[t]、输入i[t]和输出O[t]。它们都由 sigmoid 层(“σ”块)产生。一个 tanh 层形成候选更新https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/eq-chapter-4-56-1.png[t]。逐点乘法(“×”)和加法(“+”)在顶部“传送带”路径上更新细胞状态。箭头表示向量流;图例标记了逐点操作、拼接和复制。这是标准的 LSTM,强调了门控如何实现选择性记忆保留和暴露。经作者(Chris Olah)许可使用,尽管它与原始形式略有修改

使用奥拉的比喻,细胞状态是传送带,是 LSTM 从序列早期保留重要信息的能力的骨干。相比之下,短期记忆(h[t]),或隐藏状态,在每一步都被积极调整,并对当前输入(X[t])做出反应。这两条记忆路径紧密相连,使 LSTM 能够管理长期上下文和短期变化。

为了管理这个双重记忆系统(长期和短期),LSTM 使用三个门:遗忘门、输入门和输出门。

遗忘门f[t])决定保留多少过去的信息。它将当前输入与前一隐藏状态结合,产生介于 0 和 1 之间的值,这些值对前一细胞状态进行缩放。接近 0 的值意味着大部分或全部先前的记忆被遗忘,而接近 1 的值则保留它。

输入门i[t])和候选<https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/eq-chapter-4-60-1.png>``[t])共同工作,将新信息引入长期记忆。候选记忆使用 tanh 激活函数产生介于–1 和 1 之间的值,从而产生更丰富的表示。一个单独的 sigmoid 函数决定该候选记忆的哪些部分应该被存储。然后,这个经过过滤的候选记忆被加到长期记忆中,更新细胞状态。技术上,这种过滤是通过逐点乘法完成的:每个元素可以被单独缩放,而不是像矩阵乘法那样在所有维度上均匀缩放。

最后,输出门O[t])塑造短期记忆输出。在更新长期记忆后,细胞状态通过 tanh 激活函数处理以产生潜在的短期记忆。然后输出门应用另一个 sigmoid 函数来决定输出多少潜在的短期记忆。这成为当前时间步的输出。这种乘法门控使网络能够选择性地传递、更新或抑制信息。至关重要的是,当门接近 1 时,它们会在许多时间步中保留信息和梯度,帮助 LSTM 克服梯度消失问题。

同时使用 sigmoid 和 tanh 激活函数是一个特别巧妙的设计选择。sigmoid 调节信息流,产生介于 0 和 1 之间的值,决定是保留、更新还是丢弃信息。相反,tanh 将值映射到–1 和 1 之间,使模型能够表示正负信号并捕获更细微的信息。最终,sigmoid 控制信息流动的量,而 tanh 决定存储什么信息。它们相互补充。

尽管 sigmoid 和 tanh 在标准网络中可能导致梯度消失,但 LSTM 在门控加法架构中使用它们,从而在长序列中保留信息和梯度。通过将乘法门与加法更新相结合,LSTM 避免了原始 RNN 的不稳定梯度行为,同时保持了选择性。例如,在处理提到“爱丽丝”的故事时,LSTM 可以在多个句子中保留该上下文,并正确预测后来“她”这样的代词指代爱丽丝。这使得 LSTM 成为涉及广泛上下文依赖的序列建模任务的标准 RNN 变体。更准确地说,网络可以将该实体在C[t]中保持活跃许多步,使用O[t]在需要时揭示它(例如,在预测“她”时),并在上下文改变时使用f[t]丢弃它。

要理解为什么“Understanding LSTM Networks”看起来像是一次教学上的飞跃,有助于将其与 Hochreiter 和 Schmidhuber(1997)的原始示意图并列来看。他们的图表是为研究人员设计的。它是对“恒定误差旋转木马”的精确呈现,具有明确的门控和注释变量。那种严谨性很好地服务了其受众。对于新手来说,同样的精确性可能令人难以承受,就像在研究电线束[29]一样。见图 4.3。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH04_F03_Heimann.png

图 4.3 原始的 Hochreiter–Schmidhuber(1997)LSTM 单元示意图,包括“恒定误差旋转木马”。经其中一位作者(Jürgen Schmidhuber)许可使用

在原始 LSTM 之后,架构不断演进。引入了遗忘门,后来又增加了窥视孔连接[30]。这些扩展在同样精确的示意图中得到了记录。如图 4.4 所示,蓝图传统使每条路径都明确无误,从而设计清晰。尽管如此,对新学习者来说结果更密集。奥拉的处理将立足点转向信息流,使用简化的图标和传送带隐喻来突出模型在做什么。“Understanding LSTM Networks”在阐述上是一次进步,而不是在数学上,但它是一次最终使核心见解一览无余的进步。一起阅读,两种风格是互补的;一个精确地展示了单元是如何构建的,而另一个展示了它为什么这样行为。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH04_F04_Heimann.png

图 4.4 一个扩展的 LSTM 示意图,显示了遗忘门与输入和输出的加权连接。经其中一位作者(Jürgen Schmidhuber)许可使用

“Understanding LSTM Networks”不可能在传统的学术场所发表,因为它过于阐述性和隐喻性。这篇帖子无意中凸显了促进理解的东西——比如隐喻、阐述和直观插图——与学术论文通常强调的东西之间日益扩大的差距。在各个领域,可读性下降,行话增多,论文越来越针对形式主义、可重复性和引用指标进行优化,而不是为了沟通清晰度[31]。在那背景下,奥拉的文章之所以成功,恰恰因为它将解释视为研究目标。它抽象掉接线细节以突出信息流,采用稳定的视觉语言,并为新手和专家提供了共同的心理模型。

奥拉的博客出现在 Sutskever 的列表上,不是因为它引入了像 Hochreiter 或 Schmidhuber 那样的新算法,而是因为它的清晰性和广泛影响。许多当代论文针对评审者最大化可读性,而奥拉针对读者最大化可读性。对他工作的反应表明,对于复杂想法,阐述具有真正的价值。事实上,Sutskever 列表上的大多数条目都具有这一特征:它们的重要性更多来自卓越的执行和展示出的触及更大受众的能力,而不是纯粹的新颖性。

4.3 循环神经网络正则化

要理解为什么 Karpathy 和奥拉的博客帖子在 2015 年产生如此大的影响,有必要重新审视一年前 RNN 面临的挑战。尽管它们有理论上的前景,但每一次扩展 RNN 的尝试都遇到了过拟合。结果,在标准的序列建模基准上超越关键阈值,比如宾州树库(PTB),似乎遥不可及。一个特别可怕的障碍是 100 的困惑度。

困惑度与 RNN 正则化的演进

困惑度:一种意外程度的度量

困惑度衡量语言模型对新词的“意外”程度:困惑度越低,模型越确定;困惑度越高,模型越困惑。一个有用的思考方式是把它看作一个多项选择题。困惑度为 100 就像模型在序列的每一步中从大约 100 个合理的下一个选项中进行选择。作为对比,如果模型只是从 50,000 个可能的标记中随机猜测,其困惑度将在 50,000 左右。所以 100 比随机好得多。这表明模型已经学到了真正的模式,即使它不太确定。然而当时,实现低于 100 的困惑度似乎是一个难以逾越的挑战。

Dropout 突破

2014 年,沃伊切赫·扎伦巴(Wojciech Zaremba)、伊利亚·苏茨克维(Ilya Sutskever)和奥里奥尔·维尼亚尔斯(Oriol Vinyals)通过精心设计一种针对 LSTM 架构的选择性 dropout 方法,改变了局面[32]。他们在一篇题为“循环神经网络正则化”的论文中引入了这项技术,解决了过拟合这一长期挑战。呼应了 AlexNet 早期严谨的方法论方法和有针对性的正则化创新,他们的工作标志着 RNN 的一个决定性转折点,RNN 长期以来一直停滞不前。

背景:AlexNet 的 Dropout

回想一下,AlexNet 使用了 dropout,它暂时“关闭”一部分随机神经元,在每次训练迭代中创建一个略有不同的网络。这种随机性迫使神经元发展出稳健的特征,而不是依赖于特定的神经元组合。在推理(或测试)期间,dropout 被禁用,并且 AlexNet 中神经元的输出被缩小 0.5,作为对 dropout 训练期间创建的所有假设网络的预测进行平均的一种计算效率近似。通过这种方式,dropout 实现了类似于模型集成的效果,显著减少过拟合,而无需显式训练单独的模型。虽然 dropout 大致使训练迭代次数翻倍,但它提高了泛化能力,并减少了模型过拟合训练示例的倾向。

训练 RNN 的困难

然而,训练 RNN 是出了名的令人沮丧,就像几年前训练 CNN 一样。事实上,它是如此困难,以至于那个时代最具影响力的论文之一,被引用超过 8000 次,标题是“论训练循环神经网络的困难”[33]。作者们找出了循环网络挣扎的原因。这在这一点上不应该感到惊讶,但是由梯度消失和梯度爆炸引起的严重训练不稳定性破坏了它们对长期依赖关系进行建模的能力。此外,当研究人员试图扩大这些网络时,他们不可避免地遇到了过拟合。虽然存在部分解决方案,例如梯度裁剪,可以驯服梯度爆炸,但梯度消失问题仍然存在,并且是训练更深 RNN 架构的重大瓶颈。

规模化的困境:更深层的 RNN 及其局限性

在后续实验中,这些研究人员探索了更深层的网络,测试了具有三个循环层的架构,但仅在困惑度方面取得了微小的改进。即使是这些微小的收益也需要精细的技巧,例如快捷连接和逐层预训练,让人联想到 AlexNet 之前的策略[34]。他们明确警告说,随着模型变得更深,训练可能会“更加有问题”,意味着除非出现突破,否则收益递减。面对这些限制,他们明确指出 dropout 是一个有前途的未来方向。

为什么传统的 dropout 对 RNN 无效

但是传统的 dropout 技术对 RNN 效果不佳。它们破坏了对维持记忆能力至关重要的敏感循环连接。这放大了循环动态中的噪声[35][36]。因此,当时的正则化方法仅带来了适度的改进[37][38]。结果,RNN 仍然很浅,只有一两个循环层和相对较小的参数数量。即使是那个时期最有影响力的 RNN,也仅在单个隐藏层上达到了最佳困惑度 114[39]。当时最大胆的尝试采用了两层网络,将困惑度适度提高到 107。但是在两层之外,研究人员不仅仅是遇到收益递减;他们撞上了一堵不可逾越的墙[40]。

集成与混合方法

面对这一障碍,研究人员转向集成和混合方法来实现增量收益。例如,2012 年的最先进方法结合了三种不同的方法:一个捕获短且频繁词序列的 Kneser-Ney 5-gram 语言模型;一个提升最近出现词概率的基于缓存的语言模型;以及一个融合了语义主题向量的 RNN,这些向量来自潜在狄利克雷分配(LDA),提供更广泛的上下文理解。

每种方法都无法在 PTB 上将困惑度降到 100 以下。仅 Kneser-Ney 产生了 141 的困惑度,缓存增强变体为 125,RNN-LDA 组合为 114——比缓存增强的 Kneser-Ney 变体好大约 10 个点。然而,通过仔细结合它们的预测并调整每个组件的影响以平衡其优势,一个集成将困惑度降低到 92。后来,同样的作者通过整合多种神经主题模型变体以及传统模型,扩展了这种方法,最终达到了 72.9 的困惑度。虽然聪明,但这个临时拼凑的混合策略未能达到 AlexNet 推广的端到端学习的优雅承诺。

单模型 LSTM 的局限性

尽管这些复杂的组合在实践中不可扩展,但它们确实降低了困惑度,强调了一个令人不安的现实:没有任何单一的 RNN 架构,甚至更稳健的 LSTM,能够自行打破 100 困惑度的障碍。事实上,在 2014 年之前,单模型 LSTMs 在 PTB 等基准测试中经常挣扎。2012 年的一项早期 LSTM 研究报告称,相对于标准 RNN,困惑度仅降低了约 8%,强调了它们有限的收益[41]。Zaremba、Sutskever 和 Vinyals(ZSV)指出,即使是“相对较小的 LSTMs(就参数数量而言)也很容易过拟合训练集。”没有有效的正则化,增加更多的隐藏单元或层会降低训练困惑度,但会迅速提高验证困惑度,因为过拟合。这种无法扩展意味着在 dropout 之前的时代,单模型 PTB 困惑度分数很少低于 120,使得进一步的进步似乎遥不可及。

AlexNet 之前的平行时期

这种“拼凑起来”的策略反映了 AlexNet 之前时代计算机视觉的状态,当时所有高性能的视觉系统都缺乏能够扩展或支持端到端学习的架构。这些 AlexNet 之前的解决方案依赖于精心设计的表示,这些表示是由手工制作的特征管道拼接而成,使用局部描述符来检测和描述图像块、量化描述符的直方图以及空间金字塔来编码全局表示。然后,这些与像支持向量机这样的浅层模型配对,或者与逐层无监督预训练随后进行有监督微调配对。通过仔细整合互补组件,计算机视觉研究人员突破了性能平台期,但这种方法后来被端到端训练的统一架构所取代,例如 DanNet 和 AlexNet。同样,早期语言模型是专门组件的拼凑。

ZSV 的关键洞见是将选择性 dropout 仅应用于层间的非循环连接,而绝不应用于随时间保存记忆的水平循环连接。这样,循环路径可以在不被破坏的情况下保留历史信息,因此 dropout 在不影响稳定性的前提下增强了鲁棒性。这种选择性策略提供了有效的正则化,鼓励神经元形成稳定的表示,同时确保循环连接保持完整,以便跨时间步保留和传递历史信息。通过为 LSTM 引入选择性 dropout 正则化,他们大幅降低了 PTB 困惑度。一个单独的“大型”LSTM(1,500 个单元,两层)配合 dropout 实现了 78.4 的测试困惑度,打破了此前记录,并优于计算量庞大的 10 模型 RNN 集合(其困惑度为 80)。这是一次巨大的飞跃。

作者通过四个不同的真实世界应用展示了其专用 dropout 技术的强大能力:

  • 语言建模PTB)—作者测试了每层 650 个单元、dropout 率 50% 的中型 LSTM 网络,以及每层 1,500 个单元、dropout 率 65% 的大型网络。结果显著。dropout 将测试困惑度从基线 114.5 降至 78.4。dropout 使更大、此前不切实际的 LSTM 能够有效训练,呼应了 AlexNet 的突破。此外,结合 10 个大型 dropout 正则化模型将困惑度降至 69.5,凸显了 dropout 的可扩展性。

  • 语音识别(冰岛语语音数据集)—有限的数据集往往会导致声学建模中的过拟合,从而导致泛化能力差。dropout 直接解决了这一问题。虽然标准 LSTM 模型达到了 68.9% 的准确率,但经过 dropout 正则化的版本提升至 70.5%。尽管由于 dropout 引入的噪声导致训练准确率略有下降,但泛化能力显著提高,反映了 AlexNet 最初展示的核心洞见。

  • 机器翻译(英法 WMT 数据集)—正则化的 LSTM 改进了神经机器翻译,将 BLEU 分数从 25.9 提升至 29.03。BLEU 分数评估机器生成的翻译与人工撰写的翻译的接近程度;分数越高表示翻译质量越好。尽管当时传统统计方法仍具竞争力,但这一改进凸显了 dropout 在神经翻译中的潜力,为后来的突破奠定了基础,例如即将彻底改变机器翻译和更广泛的自然语言处理的 transformer 架构。

  • 图像描述生成MSCOCO 数据集)—在图像描述实验中,dropout 将单模型 BLEU 分数提升至 24.3,与多个非正则化模型集合获得的 24.4 几乎相同。这一结果展示了 dropout 的效率优势:一个充分正则化的模型即可达到与集合相当的性能,同时大幅降低了计算复杂度。

“循环神经网络正则化”这篇论文篇幅不长,仅六页、不到 3,000 字。然而,论文表明当几乎停滞不前的困惑度分数突然下降时,性能障碍可以被克服。通过应对正则化挑战,ZSV 扩展了深度学习的实际应用,影响了后续在语音识别、机器翻译和序列建模领域的研究。

4.4 Deep Speech 2

虽然卷积神经网络在 AlexNet 中迎来了决定性时刻,但循环网络则经历了更为渐进的上升,在多个前沿上稳步取得进展。几篇重要论文几乎捕捉到了那个时刻。Sutskever、Vinyals 和 Quoc Le 在 2014 年引入了编码器-解码器架构(seq2seq)[42]。同年,Bahdanau 注意力在机器翻译中建立了新的性能基准 [43]。两者将在下一章中讨论。虽然这些进展对该领域具有变革性和重要意义,但它们缺乏 AlexNet 时刻那种鲜明的清晰度。百度的 DS2 由 Dario Amodei(OpenAI 的关键人物和 Anthropic 的联合创始人)领导,提供了最接近的类比。与 AlexNet 一样,DS2 令人信服地展示了大规模、基于 GPU、端到端训练的神经架构可以超越传统混合方法。

4.4.1 核心架构

DS2 在没有音标字典的情况下将音频转换为文本,而音标字典利用音标转录提供单词的发音。这些字典通常使用语言规则手工制作。由于发音可能因语言、口音和领域而异,维护音标字典既费力又容易出错。DS2 通过直接从音频特征映射到字母或字符(即字素)来消除对它们的需求。该模型有效地内化了旧系统必须显式编码的发音规则。听起来熟悉吗?

传统系统还依赖帧级对齐来标记每个单词的开始和结束。DS2 用一种称为 连接主义时间分类CTC)的训练方法取代了它,从而消除了对这种精确对齐的需求。Alex Graves 于 2006 年引入 CTC,专门为了让 RNN 能够在没有预分段标签的情况下对齐序列 [44]。到 2015 年,CTC 已在较小任务上得到验证,但 DS2 将其应用于前所未有的规模。

在内部,DS2 首先将每个音频片段转换为显示声音能量随时间变化的视觉频谱图。卷积层扫描该图像以提取短的局部特征,例如音调的细微变化或背景噪声。然后结果通过几个循环层,追踪声音随时间的展开方式。最后,一个全连接层预测英语的字母对(双字母)或汉语的字符,直接将语音转换为文本。参见图 4.5。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH04_F05_Heimann.png`

图 4.5 左:用于训练英语和汉语语音的 DS2 架构。作者将卷积层的数量从 1 到 3、循环层的数量从 1 到 7 进行变化。右:第一篇 Deep Speech 论文中 RNN 模型的结构 [45]。经作者之一(Awni Hannun)许可使用。

重要的是,DS2 引入了行卷积和步长感知输出。传统的 RNN 从左到右处理序列,因此每个预测仅使用过去的输入。双向 RNN 向前和向后运行,以便在做出预测之前使用过去和未来的上下文,这提高了准确性但阻止了实时解码。DS2 的行卷积在单向 RNN 输出之上添加了窄的时间卷积。这近似了双向性的益处,同时保持了流式传输的低延迟。

与行卷积一样,步长也是一种卷积运算。它被应用于早期卷积层以降采样数据,使循环堆栈看到的步数减少,减少量由步长因子决定。与扩张卷积(在不降低分辨率的情况下扩大感受野)不同,步长显式地降采样信号,以时间细节换取计算效率。为了以原始输出速率保留信息,DS2 的英语系统预测不重叠的字符双字母而非单个字母。例如,而不是分别输出“t”和“h”,单个输出标记可以是双字母“th”。同时,汉语预测字符。

使用双字进行跨步可以通过将序列长度减半来降低计算复杂度和内存使用,并有效压缩输入。没有这项创新,11 层网络可能太慢而无法训练或运行。例如,步长为 2 时,100 帧的语音产生 50 个 RNN 步。预测 50 个字符可能会丢失信息,但预测 50 个双字仍然可以覆盖 100 个字符。相比之下,行卷积主要是一种部署优化。它为实时单向流模型提供了适度的精度提升。

DS2 还引入了序列级批归一化。标准的批归一化(2015 年提出)在训练期间通过计算每个小批量内激活的均值和方差来归一化层输入,以确保激活分布的一致性[46]。小批量是在一次前向和后向传递中一起处理的训练数据子集。这种一致性减少了内部协变量偏移,即层输入的分布在整个训练过程中持续变化。通过稳定每层的输入分布,批归一化可以实现更高的学习率,降低对权重初始化的敏感性,并加速收敛。DS2 的序列级适配将这一概念具体应用于时间维度,稳定了循环网络的训练并提高了泛化能力。

4.4.2 训练技巧

DS2 通过跨多个 GPU 的数据并行来扩展训练。每个训练数据批次被均匀分割,以便每个 GPU 并行处理相等数量的样本。每次迭代后,梯度被平均为一个同步更新。典型的运行使用 8 到 16 个 GPU,总批量大小为 512 到 1024 个样本(每个 GPU 64 个)。

该团队设计了一个自定义的全归约例程(第 6 章)来替换标准的消息传递协议,从而实现直接的 GPU 到 GPU 传输,并保持 GPU 之间的数据传输通道繁忙。这比标准的、现成的 OpenMPI 设置快了 2.5 倍,完成整个训练数据集的一次完整遍历(即一个完整周期)。当 GPU 数量加倍时,训练时间大致减半,但超过 8 个设备后,随着通信开销增加,收益递减。与三年前 AlexNet 的自定义 GPU 内核一样,DS2 的工程进步(不仅在于其架构)使得在此规模下的端到端语音识别成为可能。

另一个重大改进是转向用于推理的半精度(FP16)算术。FP16 使用 16 位(半精度浮点)而不是传统的 32 位(单精度浮点)。这一变化有效地将内存占用减半,并在兼容硬件上大致使推理吞吐量翻倍,而不会显著损害精度。DS2 转向 FP16 是减少精度的一个早期且有影响力的例子——这是现在通常归入量化的更广泛低精度技术的先驱。量化涉及用更少的位表示网络权重、激活和计算。

量化在今天很常见,通常降到 8 位整数(INT8),有时甚至降到更低的精度格式,特别是对于边缘和移动部署,这些部署通常缺乏更强大机器的资源。尽管如此,DS2 对 FP16 的采用展示了量化技术在实际大规模实现中的可行性和益处,使其成为模型优化策略发展中的一个里程碑。

另一个改进是引入了一种称为渐进梯度的课程学习策略。使用渐进梯度,在第一个训练周期中按长度对训练序列进行排序,使网络能够随着时间的推移逐步处理更具挑战性的例子。通过首先呈现较短(通常更容易)的语音,渐进梯度在早期阶段确保了更稳定和高效的训练,减少了数值不稳定性,并帮助模型从一开始就可靠地收敛。序列级批归一化和渐进梯度使 DS2 能够训练更深的网络,并获得显著提高的转录准确性和训练稳定性。

DS2 将合成背景噪声纳入约 40%的训练样本中,提高了对现实世界噪声环境的鲁棒性和泛化能力,就像 AlexNet 使用数据增强(例如随机裁剪、翻转和颜色抖动)来提高不变性并防止过拟合一样。在这两种情况下,工程化的噪声都作为多样性的代理,迫使网络学习信号而不是记忆伪影。

DS2 令人印象深刻的结果是以巨大的数据和计算资源为代价的。作者在约 11,940 小时的英语音频和 9,400 小时的中文音频上训练了 DS2。训练单个模型需要专门的高性能计算基础设施,包括 8 或 16 个 12GB 内存的 Titan X GPU。这种暴力扩展是一把双刃剑。它证明了端到端深度学习可以实现什么,但也为其他试图在没有类似资源的情况下复制或建立在此基础上的人设置了很高的门槛。

结果令人印象深刻。作者发现,训练数据量每增加 10 倍,WER 相对降低约 40%。这些结果证实了 DS2 作为 RNN 版 AlexNet 的地位,展示了通过端到端学习、大规模训练和高性能计算技术取得的重大飞跃。

DS2 在标准基准测试中的表现值得注意,在 WSJ 和 LibriSpeech 等干净语音数据集上,其词错误率低于众包(Mechanical Turk)的人类基线。事实上,DS2 在四个测试集中有三个优于众包人类转录员(见表 4.1)。尽管如此,DS2 在更具挑战性的条件下并没有超越人类表现,包括噪声环境(CHiME)和重度口音(VoxForge)语音。

表 4.1 DS2 与人类水平在朗读语音上的词错误率。CHiME 数据是在噪声环境中收集的,包括公交车、咖啡馆、街道和行人区域。

| 测试集 | DS2 | 人类 |

| --- | --- | --- |

| WSJ eval'92 | 3.60 | 5.03 |

| WSJ eval'93 | 4.98 | 8.08 |

| LibriSpeech test-clean | 5.33 | 5.83 |

| LibriSpeech test-other | 13.25 | 12.69 |

| VoxForge (American-Canadian) | 7.55 | 4.85 |

| CHiME | 21.79 | 11.84 |

4.4.3 语言模型与解码

拥有高达 1 亿个参数,DS2 在 2015 年不太适合设备端使用。因此,它被部署为 GPU 服务器上的交互式云服务来处理用户查询。尽管如此,一系列精心设计的优化措施旨在实现实时推理和计算效率,使部署更加实用。

批量调度是一种将并发用户音频流动态分组到优化批次中的技术。即使是两到四个的小批次,通过重用加载的权重,也减少了内存带宽开销。通过智能地批量处理输入,DS2 降低了分别处理单个请求的内存带宽开销,并且通常在中等系统负载下实现了 50 到 70 毫秒的延迟。

最后,该团队使用了带有启发式剪枝的束搜索解码,将模型得分的流转换为单个转录。像束搜索这样的解码策略能够高效地从概率模型中找到高质量的输出序列,而无需评估每个可能的序列,这通常是计算上不可行的。

一种朴素的策略是贪婪解码,即模型选择单个最可能的转录词。它速度很快,但限制了你的选择。束搜索(beam search)不保留最可能的选项,而是保留一份有希望的候选清单。每处理一段新的音频,它会扩展每个候选,并使用声学模型和语言模型(该语言模型偏好真实单词和合理短语)对它们进行评分。然后只保留最好的几个,丢弃其余的。最后,它选择得分最高的完整句子。

DS2 通过使用启发式剪枝使束搜索变得实用,从而尽早消除死胡同。作者在每次扩展后为英语解码器保留了得分最高的 500 个部分转录,为中文解码器保留了 200 个。他们丢弃了得分远落后于领先者的候选。这种修剪很重要,因为大部分概率质量集中在少数候选上;探索其余部分会增加成本而不提高性能。这对中文尤其有帮助,因为许多汉字共享相同的发音,使得搜索空间很大。束搜索在解决歧义方面远优于贪婪搜索,且远比穷举搜索便宜,并且可以通过调整束宽度和剪枝规则轻松进行调优。

4.4.4 意义与更广泛的影响

DS2 代表了语音识别领域的一项突破。然而,DS2 声称超越人类水平准确性的说法存在争议。批评者指出,人类水平的基准通常依赖于 Amazon Mechanical Turk 的转录,而非专家转录,而且单独的转录在没有额外校正的情况下是不充分的[47]。这引发了关于 DS2 在任何转录设置中是否与人类专家匹配的疑问。尽管如此,DS2 仅通过最少的修改就展示了在英语和中文方面的显著通用性。

值得注意的是,DS2 将训练加速了高达七倍,将以前需要数周的实验缩短到几天。虽然"scaling laws"(第 6 章)直到 2020 年才获得广泛流行,但 DS2 论文展示了数据集大小、计算资源和模型性能之间的经验关系。诸如逐序列批归一化、SortaGrad 课程学习以及带步长的卷积前端等创新,降低了每个样本的计算成本。DS2 还采用了 FP16 来将吞吐量翻倍,并使用剪枝启发式方法显著加速推理,这对于具有大量字符集的语言(如中文)尤其有益。实际部署策略,包括优化的 GPU 内核和"batch dispatch"系统,实现了中位延迟低于 70 毫秒的实时转录。所有这些都强调了 DS2 如何有效地将算法创新与数据和原始计算能力结合起来。

话虽如此,DS2 在束搜索解码期间仍然依赖外部语言模型(LM)。这意味着仅靠神经网络并没有完全解决语音识别,因为它需要一个 LM 来纠正语音错误并选择最合理的词序列。这是一个微妙的局限性。虽然 DS2 是迈向端到端自动语音识别(ASR)的重要一步,但它并没有统一所有组件。尽管如此,它标志着迈向能够在不同语言和具有挑战性的声学环境中泛化的通用自动语音识别系统的重要一步。

在 DS2 出现几年后,更新的架构开始超越它。基于 Transformer 和 transducer 的模型带来了显著的增益。Conformer 通过将卷积模块与自注意力(参见第 5 章)结合来模拟局部声学模式和长程依赖关系[48],变得特别有影响力。Conformer 风格的编码器在以准确率为导向的 ASR 基准中仍然占据重要地位,实现了更低的错误率,但推理效率在很大程度上取决于解码器和部署设置——这些架构我们将在下一章讨论。

同样,DS2 固定的非重叠英语双音节输出在很大程度上被更灵活的输出单元所取代,如字素、词片段、字节对编码(BPE)和字节级 token,这些减少了未登录词问题,并允许模型在字符或字节回退可用时组合未见过的单词[49][50][51]。但 DS2 并不是死胡同。它对端到端训练、CTC 式序列学习、大规模数据、卷积前端和可部署性的强调演变为标准的 ASR 实践,即使具体技术如行卷积和英语双音节输出被更通用的架构和分词所取代。

4.4.5 工程转向

在 2010 年代,AI 研究转向了强调端到端学习的大规模、工程密集型系统。DS2 以细致的包罗万象的工程为标志,体现了这一方向。像 AlexNet 一样,这些项目结合了经验策略以实现实质性的实际性能提升,而不是依赖单一的理论突破。AlexNet 整合了已知技术——包括 GPU 加速、仔细的权重初始化、ReLU 激活、dropout 和数据增强——以实现前所未有的结果。同样,DS2 采用了务实的方法,结合架构改进、计算优化、课程学习和先进的归一化来提高性能。

然而,尽管性能令人印象深刻,但 AlexNet 和 DS2 等系统以工程为重点的方法付出了代价。这些策略遭到了更广泛科学界的怀疑。批评者将这些进步贬低为仅仅是"工程"或由"规模"或"暴力"驱动的成就,暗示这是对"真正的人工智能"追求的倒退,这个短语的矛盾性质暗示了关于真实性和人工性的更深层紧张关系。

在回顾性批评中,AlexNet 被描述为"主要是对 LeNet 的进化改进",而不是一个根本上新的设计。但这种评估忽视了 AlexNet,而不是LeNet,重塑了计算机视觉领域[52]。同样,纽约大学教授加里·马库斯警告说,虽然 AlexNet 代表了"具有直接实际应用的重要工作",但它最终只是"迈向创造真正智能机器的一小步"[53]。马库斯几乎以轻蔑的方式呈现这一点,好像经验进步是创新的一种低等形式。但进步正是该领域所缺乏的。例如,AlexNet 的作者(Krizhevsky、Sutskever 和 Hinton)展示了在该领域停滞时如何使用这项技术。从理论承诺到实际能力的转变需要许多批评者低估的经验务实主义。

虽然马库斯认为 AlexNet 没有解决智能问题是正确的,但他使用了错误的基准。根据与当代视觉系统和基准的适当基线进行评判,它重置了该领域。只有当我们混淆目的地与我们实际运行的比赛时,称其为"一小步"才成为批评。

这些叙述说明了批评者通常如何根据理想化的未来(如"真正智能机器")来衡量进步。虽然我们经常寻求超越时代的解决方案,但这一概念几乎总是不连贯的,因为未来不是我们可以验证的知识来源。因此,我们不能根据未来来衡量进步;我们只能根据我们开始解决问题的地方来衡量进步。真正的创新通过现实世界的试错逐步出现,突出了那些"脏手"的人(受现实世界知识限制)与那些"干净手"的人(根据抽象的、通常不可达到的标准判断进步)之间的区别。

工程与理论:AI 研究中的张力

DS2:突破与争议

与 AlexNet 一样,DS2 被视为一项突破。《麻省理工科技评论》将百度的系统评为 2016 年十大突破之一,指出它超越了人类水平 [54]。在语音研究界,研究人员感到兴奋的是,一个更简单的架构可以取代整个手工设计的流程,同时仍能超越最先进系统。但学术界怀疑论者将 DS2 视为一项工程壮举,而非灵感的来源。

同行评审批评

2016 年 ICML(国际机器学习会议)上对 DS2 论文的同行评审批评了这项工作。一位审稿人写道:"我对这篇论文的主要问题是,其中很多内容借鉴了现有工作……而且在新颖性方面贡献甚少,"并指出"大多数技术以前都已经被尝试过。"另一位审稿人同意 DS2 没有引入任何根本性的新方法,评论道:"论文的新颖性在于规模扩展和实现,而非任何方法论上的进步" [55]。

工程与理论之间的张力

这种以工程为重点的方法与理论研究形成对比,后者以基础性论文为代表,例如 Martens 的 Hessian-free 优化、Rumelhart 的反向传播,或 Hochreiter 和 Schmidhuber 的 LSTM。这些贡献优先考虑概念清晰、数学优雅和新颖性。相比之下,DS2 和 AlexNet 强调解决具体的、大规模的工程挑战,并取得可衡量的结果。人们几乎可以原谅自己将研究目标误认为是制造有用的东西。最终,这里的张力显而易见:理论新颖性与实际功效。对一种方法的偏好而非另一种,揭示了研究人员价值观和智力取向的根本差异。

AlphaGo 的里程碑与领域的转变

2016 年 AlphaGo 对围棋冠军李世石的历史性胜利展示了密集工程努力的巨大潜力。在 AlphaGo 之前,大多数 AI 进步来自小型的、以想法驱动的团队或个人:Martens 的 Hessian-free 优化只有一位作者;Rumelhart 的反向传播有三位作者;Hochreiter 的 LSTM 论文有两位作者。虽然 AlexNet 只有三位作者,但 Deep Speech 2 有 34 位,AlphaGo 有 20 位。该领域正在成熟,变得更加协作和资源密集,越来越关注大规模工程。

Sutskever 的愿景与 OpenAI 的转型

对 Ilya Sutskever 来说,AlphaGo 使他一段时间以来一直发展的信念明确化:大规模工程将驱动 AI 的未来。这在 2010 年代中期并不明显。在 Google,Sutskever 遇到了一种与学术界偏好概念创新深度契合的文化。尽管这种方法对于产生想法很有价值,但 Sutskever 认识到,仅靠概念突破将不再足够。日益复杂的模型需要庞大的数据集、先进的 GPU 基础设施和稳健的工程实践,这超出了小型学术导向团队的能力。这些团队本质上是资源受限的,针对新颖性而非持续、可扩展、可靠的实现进行了优化 [56][57]。

Google 不是问题所在。根据 Sutskever 的说法,学术界本身存在更深层的结构性问题。学术激励鼓励研究人员"从小处思考",奖励渐进式进步和表面新颖性,而非实际、可扩展的结果。当被问及创造全新想法与完善现有想法之间的平衡时,Sutskever 强调,概念突破只占真正进步的一小部分。真正的进步来自深刻理解现有想法、迭代改进和部署它们,以及仔细分析结果,特别是在实验产生意外结果时 [58]。认识到这种不一致,OpenAI 被设计为优先考虑实际功效和可部署性,而非渐进式新颖性和学术荣誉。

作为工程驱动研究案例的 DS2

DS2 是 Sutskever 对"为新颖而新颖"持怀疑态度的一个案例研究。在 Ilya 看来,部署是一种研究工具,能产生通过纯理论或小规模研究无法获得的洞见。这种心态重视迭代的、高杠杆的改进,磨砺工程细节,并让现实来裁决。这种务实的哲学与 John Carmack 对 Keen Technologies 的愿景相似,后者刻意重新审视旧想法,以发现由现代规模或工程驱动方法启用的机会 [59]。

百度已经在 2014 年发布了 Deep Speech 1 (DS1) [60]。它是一个端到端、CTC 训练的 RNN,简化了经典的自动语音识别栈,并通过将大量数据与严格工程配对,实现了当时的最先进 WER。一年后,DS2 并没有发明一个全新的范式。它通过无情地扩展同一核心理念而获胜:更深的网络、序列级批量归一化、SortaGrad、步长和双词组输出、激进的多 GPU 同步训练,以及面向生产的技巧,如行卷积和低延迟服务的批量调度。他们甚至开源了 Warp-CTC,以便其他人能在 GPU 上快速训练,强调了"作为研究的部署"这一姿态 [61]。这强化了 DS2 的声誉,不仅作为一种模型,而且作为深度学习工程的基准。它表明,规模、工程和现实世界压力可以将一个好想法(DS1)转化为一个更好的想法(DS2)。

OpenAI 的工程优先文化

作为 OpenAI 的首席科学家,Sutskever 引导实验室走向以产品为导向的研究,偏好大规模实验而非论文。GPT 系列体现了这种哲学。虽然 Google 在 2017 年引入了 Transformer 架构,但 OpenAI 将其扩展为实用、可部署的产品。对 Sutskever 来说,部署给数百万人使用系统比局限于学术圈的新颖想法更有价值。在他看来,真正的进步来自理解和改进技术,而非永远追逐那些只有几十个人会读的新概念。这种哲学渗透到 OpenAI 的文化中,使其区别于纯研究组织。OpenAI 是以 AGI 为目标创立的,但在 Sutskever 的领导下,它成为了一家工程优先的公司。

历史教训:AGI 公司的失败

历史上,雄心勃勃的面向 AGI 的公司未能平衡抱负与实际部署。例如,在 Ben Goertzel 编辑《人工智能》一书(第 9 章)的几年前,他的公司 Intelligenesis 开发了 Webmind,该产品被设想为一个在互联网上培育的无实体"全球大脑"。媒体宣布 Webmind"愚蠢"但有着"辉煌的未来" [62][63]。《华尔街日报》和《澳大利亚金融评论》等出版物设想 Webmind 将开启一个超越人类认知优势的智能新时代 [64]。与此同时,Intelligenesis 因其"无问题可解决"的商业模式而正在走向破产。Goertzel 在一篇商业事后剖析中写道,"创造一台思考机器然后将其商业化"的目标本应该"在与任何严肃商界人士的对话中被嘲笑" [65][66]。Webmind 与 OpenAI 形成了鲜明对比。

结论:实用主义的胜利

Sutskever 一直专注于实验,即使底层算法如 CNN、RNN 或 Transformer 已经非常成熟。Ilya 的天才在于将那些在纸上看起来很好的想法在现实世界中实现。这种哲学分歧揭示了 Sutskever 列表背后的动机,该列表隐含地表明现代 AI 根植于一小套开创性思想,而大多数其他贡献通过引入表面变化制造噪音而非进步,从而增加了微不足道甚至负面的价值。Sutskever 的列表通过优先考虑深度和实用性而非琐碎的渐进式知识,强化了这一观点。

DS2 和选择性 Dropout 使循环网络取得了成功,Karpathy 和 Olah 使其变得可理解。然而,即使 RNN 被稳定、正则化和扩展,它们仍然通过一个脆弱的渠道将过去向前传递。下一章就从这个压力点开始。研究人员停止了试图将一切压缩到单一状态的努力,引入了注意力,使模型能够查看整个序列,而不是强行将其通过瓶颈。这是朝向一个更激进的问题迈出的第一步,即是否根本需要循环。

5 注意力就是一切

本章涵盖

  • Transformer 如何用自注意力替代循环和卷积

  • Q/K/V、多头注意力以及位置编码

  • 序列到序列、“思想向量”、反转技巧以及“顺序很重要”

  • Transformer 的文化影响以及“X 就是一切”的迷因

  • 通用 Transformer

论文

  • 注意力就是一切 (2017) Vaswani et al.

  • 注解 Transformer (2018), Alexander Rush

  • 通过联合学习对齐和翻译进行神经机器翻译 (2014) Bahdanau et al.

  • 指针网络 (2015) Vinyals et al.

  • 神经图灵机 (2014) Graves et al.

  • 顺序很重要:集合的序列到序列 (2015) Vinyals et al.

2017 年,谷歌的研究人员用一种基于注意力的新架构取代了循环层和卷积层,他们称之为 Transformer[1]。作者写道,“我们展示了 Transformer 在学术英德和英法翻译基准上优于循环和卷积模型”[2]。在这种严谨的学术语气之下,一场革命开始了。

Transformer 并不是第一个使用注意力的模型,但它通过整合早期的创新,包括 Bahdanau 注意力(2014)、Graves 注意力(2014)和 Luong 的改进(2015),几乎完善了这一机制[3][4][5]。这种融合是一个催化时刻,导致了诸如 GPT 模型家族等架构的出现,并最终催生了 ChatGPT。

这篇论文的标题超越了它的起源,成为了一个决定性的流行语。许多流行语已经出现,定义了现代 AI 精神的各个方面。“随机鹦鹉”批判了语言模型的模仿和缺乏理解;“苦涩的教训”强调了规模的作用以及基于我们自认为的思维方式构建解决方案的挑战;“太危险而不能发布”和“Ilya 看到了什么?”概括了这个时代对最先进模型的恐惧;“p(doom)”已成为存在风险的统称;“感受 AGI”已成为一种调侃的方式,既表达对接近人工通用智能的主张的热情,又表达怀疑;而像“氛围编码”这样的俏皮短语则捕捉了向更对话式软件开发方法的转变,这种方法因速度而受到一些人的称赞,但也因缺乏严谨性而受到另一些人的指责。然而,没有一个像“注意力就是一切”那样抓住了这个时代。它标志着神经机器翻译以及后来的神经序列建模采用新方法的关键时刻。

5.1 Transformer

语言模型是文本上的概率模型。取句子“The mouse ate the cheese.”。这符合语法且有意义,因此一个好的语言模型会赋予它在训练数据中出现的高概率。考虑“The the mouse ate cheese.”。这里重复的“The”破坏了语法,所以模型会赋予较低的概率。现在考虑“The cheese ate the mouse.”。这符合语法但语义上奇怪。Cheese doesn’t eat mice。一个好的模型会以更低的概率反映这一点。这些例子表明语言模型既学习语法,包括语法规则,也学习语义,即管理意义。

大型语言模型(LLM),如 ChatGPT(OpenAI)、Claude(Anthropic)和 Gemini(Google),是生成模型。也就是说,一旦模型学习了文本的分布,它就可以从中采样来生成全新的句子或段落,或者进行多轮对话。

大多数现代 LLM 被训练为自回归模型。它们逐词生成文本,根据之前的内容进行每次预测。整个句子的概率被分解为一系列条件概率:先采样第一个词,然后根据第一个词采样第二个词,依此类推。这意味着模型必须同时处理局部依赖,例如意识到“the the ...”不太可能,以及长程依赖,例如知道“cheese”通常不吃“mice。”

LLM 的自回归目标通过自监督学习实现,其中训练数据通过移动序列来提供自己的标签。因果掩码强制执行每个 token 只能关注它之前的 token 的约束,防止来自未来的信息泄露。训练通过在每个位置同时预测下一个 token 来进行,将单个序列转换为许多监督示例。

当然,说起来容易做起来难。在长序列上处理语法、语义和上下文需要一个能够同时处理短期和长期依赖的架构。正如 Paul Graham 生成器所展示的(第 4 章),这很困难,特别是对于一次处理一步文本的循环神经网络(RNN)。序列到序列(seq2seq)模型通过将 RNN 与编码器配对以表示输入句子、与解码器配对来生成其翻译,从而改进了翻译等任务,但 seq2seq 仍然难以在长距离上保留信息[6][7][8]。下一部分将更详细地探讨 seq2seq 模型。Transformer 保留了编码器-解码器架构,同时去除了循环,使模型能够并行处理整个序列,并通过一种称为“注意力”的机制将每个 token 直接连接到其他每个 token。

在编码器或解码器做任何事情之前,它必须将文本转换为 token,然后转换为数字。一个 token 并不总是一个完整的词。常见的词可能是单个 token,而稀有的词可能被分割成更小的部分。例如,像“Transformers are powerful”这样的句子可能会变成类似:

[4032, 17, 9821]

这些整数只是词汇 ID;同一个 token 在出现时总是得到相同的 ID。它们本身不包含结构或意义。

接下来是嵌入层,这是一个学习到的表格,将每个 token ID 映射到一个向量。在原始 Transformer 中,每个向量有 512 个数字,所以 512 只是模型的隐藏宽度。这 512 个数字不是手工编码的特征。它们是模型内部表示空间中学习到的坐标。结果是一个每行对应一个 token、有 512 列的矩阵。因此,当查找 token 4032时,它被替换为一个 512 维的向量,例如:

[0.12, -0.77, 0.41, …]

如果输入句子有多个 token(通常确实如此),每个 token 都被替换为其对应的 512 维向量,其中每个维度是一个学习到的特征,捕捉意义或用法的方面。这个矩阵就是编码器接收到的输入。

每个编码器层都以一个自注意力子层开始。自注意力允许每个 token 从同一序列中的其他 token 收集信息。一个具体的例子使机制更容易理解。假设输入是“How are you?”。为了更新“are”的表示,模型将“are”与“How”、“are”和“you”进行比较,并询问它们中哪一个对于在上下文中解释“are”最重要。如果结果权重为“How”0.2,“are”0.1,“you”0.7,那么“are”的新表示就成为这三个 token 表示的加权混合,以“you”为主导。换句话说,自注意力将每个 token 转化为序列的上下文敏感摘要。

正式地,模型使用每个词元表示的三个学习到的投影来计算这些权重:一个查询 Q、一个键 K 和一个值 V。查询表示当前词元在寻找什么,键表示每个词元提供什么,值携带实际将要传递的信息。标准公式如下:

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/heimann-ch5-eqs-0x.png

这里 K^T 表示 K 的转置,它只是将键排列以便与查询比较,d[k] 是键向量的大小。然后分数被缩放(https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/eq-chapter-5-32-1.png)以确保它们保持在稳定范围内,然后通过 softmax,在那里它们变成和为 1 的权重,然后用于对值向量进行平均。

在注意力之后,每个词元通过一个前馈网络(FFN),它分别对其进行变换。参见图 5.1。在原始 Transformer 中,FFN 由两个线性变换组成,中间有一个 ReLU 激活。注意力跨词元混合信息,然后前馈网络在每个位置重塑混合表示。例如,一个 512 维向量通过一个线性层扩展到 2048 维,经过一个 ReLU 激活以添加非线性成分,然后通过第二个线性层投影回 512 维。残差连接和层归一化稳定了整个堆叠,允许模型在许多层中重复这种模式。前馈层的作用是对注意力后的表示进行非线性变换。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH05_F01_Heimann.png

图 5.1 Transformer 架构的简化示意图。模型由一个编码器(左)和一个解码器(右)组成,每个都由重复的子层堆叠而成,包括多头注意力机制、前馈神经网络以及残差连接和层归一化等后处理步骤。位置编码(表示为圆圈交叉)被添加到输入嵌入中以显式表示词元顺序。该图强调了交叉注意力操作(虚线框标为“Cross-attention”),其中解码器的查询(Q)与编码器的键(K)和值(V)交互。在交叉注意力期间,每个解码步骤计算注意力分数以确定编码输入表示的相关性,产生引导词元生成的上下文向量。这种选择性对齐使解码器能够整合来自编码器的上下文信息,从而提高输出序列的准确性和连贯性。

解码器类似于编码器,但专为生成而构建。每个解码器层有三个主要部分:掩码自注意力、编码器-解码器注意力和一个前馈网络。与编码器一样,每个子层之后都有残差相加和层归一化。

掩码自注意力的工作方式与普通自注意力相同,除了词元只能关注较早的输出位置,绝不能关注未来的位置。这就是使下一个词元预测成为可能的原因。当生成第三个词元时,模型可以使用前两个,但不能使用第四个。这防止了解码器偷看尚未生成的未来输出词元。这是通过将未来位置的注意力分数替换为负无穷(–∞)来实现的,在 softmax 之后将其设为 0。此外,还添加了填充掩码(<PAD>)。一批中的序列通常被填充到相同长度,该掩码防止模型关注那些空白的 <PAD> 位置,就像它们是真实文本一样。除了掩码和填充之外,该子层的工作方式与编码器的多头自注意力相同,使解码器能够从部分输出序列构建上下文。

第二个解码器注意力块是编码器-解码器注意力,也称为交叉注意力。与自注意力(其中 QKV 都来自同一序列)相反,交叉注意力使用来自解码器的 Q 和来自编码器的 KV,使模型能够将生成的文本与输入序列对齐。一个具体的翻译例子使该机制更容易想象。假设源句子是法语的 “Je vais à l’ecole,” 而解码器已经生成了 “I am going to.” 当它即将生成 “school” 时,其当前的解码器状态形成一个查询(Q),它可以强烈关注 “ecole” 的编码器表示。与将整个源句子压缩成单个固定长度向量的旧式 seq2seq 系统不同,交叉注意力允许解码器在任何生成步骤中查阅任何编码器词元。参见图 5.1。

在交叉注意力之后,解码器应用另一个前馈网络。最后一个线性层将每个解码器向量映射到词汇表中每个词元的分数,然后 softmax 将这些分数转换为概率。然后模型可以选择下一个词元,将其追加到输出,并重复该过程。

在原始论文中,该架构同时具有编码器和解码器,因为主要任务是机器翻译。许多现代大型语言模型仅使用解码器的后裔,但核心思想相同:注意力构建上下文敏感的表示,使下一个词元预测有用。

这就是为什么将 Transformer 简化为“仅仅是下一个词元预测器”忽略了重点。是的,目标是下一个词元预测,但实现这一目标的机制远超简单模型中使用的表面预测。关键的设计选择包括注意力、嵌入、位置信息(稍后讨论)以及重复的非线性变换。它们共同使模型能够比早期系统(例如 n-gram 模型和 RNNs)保留更多的上下文,同时仍保持高度可并行训练。这种组合使得 Transformer 与以往的事物有了决定性的突破。最终,“仅仅”的框架将分层的、微妙的架构扁平化为漫画。事实上,“仅仅”总是暴露点。怀疑论者用它来贬低模型:“它们仅仅是下一个词元预测器。” 狂热者用它来扁平化类比的人类方面:“我们(人类)只是一束神经元”或“仅仅是大规模搜索。” 两者都犯了同样的罪过:还原主义,就像命名一个机制等同于解释它一样。

作者在两个尺度上引入了这些想法:Transformer-base(6500 万参数)和 Transformer-big(2.13 亿参数)。当从“base”扩展到“big”时,作者将模型的宽度和前馈能力都增加了一倍,并增加了注意力头的数量,同时保持每个头的维度不变。这种模块化设计使 Transformer 能够在扩展其表示能力的同时轻松扩展。正如 ResNet 所表明的那样,堆叠相同的块可以优于更精细的架构,Transformer 的重复模块简化了扩展,体现了 Ilya Sutskever 的少即是多的哲学,并倾向于标准化、可扩展的设计而非复杂性。

Transformer 的一个无声的革命是它处理序列顺序的方式。没有递归来逐步遍历句子,也没有卷积来扫描它,模型否则无法区分“cat fat”和“fat cat。” 为了解决这个问题,作者在应用自注意力之前向词嵌入添加了位置编码。使用不同频率的正弦函数,模型可以推断绝对位置和相对距离。这为 Transformer 提供了一种轻量级的编码词序的方式,同时仍允许注意力并行地跨越整个序列 [9]。

后续架构对这一方法进行了改进。谷歌的 BERT(2018)用可学习的位置嵌入取代了固定的正弦位置编码,使模型能够在训练过程中优化其位置表示[10]。GPT-2(2019)和 GPT-3(2020)都使用了学习到的绝对位置嵌入。T5(2019)用学习到的相对嵌入扩展了这一想法[11]。最近,LLaMA(2023)使用了旋转位置嵌入(RoPE),将相对位置直接注入注意力机制[12]。总体而言,这些创新凸显了从固定、绝对编码向相对、可扩展和可微分方案的稳步转变。

训练细节完善了论文。作者使用了 Adam 优化器,并采用了特定的学习率调度。学习率在前 4000 个预热步数内线性增加,然后与步数的反平方根成比例衰减。基础模型训练了 10 万步,而“大”模型训练了 30 万步。正则化通过 dropout(应用于子层以及嵌入和位置编码的和)和标签平滑(0.1)实现,这减少了过度自信并提高了 BLEU 分数。BLEU 分数评估机器生成的翻译与人工书写的翻译的接近程度;分数越高表示翻译质量越好。训练在一台配备 8 个 NVIDIA P100 GPU 的机器上进行,使用非常大的批次,每批次约 25000 个源语言和目标语言标记。

5.1.1 实验结果

Transformer 在机器翻译中创造了新的最佳水平。它在 WMT 英法基准测试上取得了 41.0 的 BLEU 分数[13]。这一结果超越了之前发表的所有单一模型,包括谷歌大脑的 1370 亿参数稀疏门控混合专家模型,该模型在一篇题为“Outrageously Large Neural Networks”的论文中得到了恰当的描述[14]。

这一结果也标志着相对于第 4 章讨论的选择性 dropout LSTM(ZSV)模型的巨大改进,该模型在相同的 WMT 英法基准测试上取得了 29.03 的 BLEU 分数。在更具挑战性的 WMT 英德基准测试上,“大”Transformer 取得了 28.4 的 BLEU 分数,超越了之前的所有方法,包括深度循环网络的集成。

这一跃变不仅限于 BLEU。第 4 章中的同一选择性 dropout LSTM 模型,使用单个两层 1500 单元模型,将 Penn Treebank 测试困惑度降低到 78.4,超越了 10 模型 RNN(非正则化)集成(80.0)。虽然令人印象深刻,但更长上下文的注意力推动了不同的前沿。2019 年,Transformer-XL 在 WikiText-103(一个单独的、更困难的语料库)上报告了约 18.3 的困惑度,强调了架构转折和规模如何重置了对下一个标记不确定性的预期[15]。

Transformer 训练速度也更快。“基础”模型在 8 个 GPU 上需要 12 小时,而“大”模型则需要约 3.5 天才能达到最先进结果。与逐个标记处理序列的循环模型不同,自注意力在每一层直接将每个标记连接到其他每个标记。这缩短了关联两个标记所需的最小计算路径长度。在实际中,距离不再增加计算成本,“奶酪”可以直接注意“老鼠”,无论它们之间隔了多少个词。这不仅改进了长程依赖的建模,也加快了训练。与需要许多堆叠层来连接远距离位置的卷积模型相比,Transformer 在单次自注意力操作中就能达到相同效果。

作者还测试了模型在翻译之外的泛化能力。他们在《华尔街日报》语料库(包含约 4 万句话)上训练了一个更小的四层 Transformer,用于英语句法分析。在没有针对特定任务的架构修改的情况下,它取得了 91.3 的 F1 分数,超越了先前基于 RNN 的 seq2seq 模型。这表明循环中嵌入的归纳偏差并不像以前认为的那样根本。事实上,循环甚至可能成为负担,增加不必要的复杂性,阻碍并行性,并限制长程依赖建模。

5.1.2 通用 Transformer

科学哲学家马克斯·普朗克曾著名地指出,科学范式转变缓慢,不是“通过说服对手让他们看到光明,而是因为对手最终去世……”。这通常被改述为“科学一次葬礼接一次葬礼地进步”[16]。但 AlexNet 引发了立即而决定性的回应。在一年内,ILSVRC 中几乎每个参与者(26 个中的 23 个)都采用了卷积神经网络,标志着计算机视觉的彻底转变。虽然该领域抵制了人工神经网络的理论承诺和早期轶事般的成功,但它立即对经验结果做出了回应。范式转变并没有等待对手去世。

Transformer 并没有产生同样剧烈的动荡。事实上,虽然论文在 2017 年被 NeurIPS 接受,但并没有获得完整的口头报告。相反,它被降级为海报环节和简短的“聚光灯”展示。尽管它在短短几年内重塑了自然语言处理(按历史标准仍然很快),但与 AlexNet 的影响相比,这种过渡感觉几乎可以说是渐进的。一个原因是,尽管有开源代码库,Transformer 被证明具有挑战性实现,这一困难我们将很快更详细地探讨。

另一个原因是,自注意力要求每个标记同时与其他每个标记交互,以捕捉任意距离的关系。如果一个句子有 500 个标记,那对应 25 万对交互。如果它有 1000 个标记,那跃升到 100 万。长度加倍,工作量四倍化。对于机器翻译,序列相对较短,这种二次增长是可管理的。但随着序列长度增加,成本爆炸式增长,使长上下文建模成为严重的计算障碍[17]。

这些担忧抑制了早期的热情,但最持久的反对是概念上的。虽然一些人宣称“国王已死,国王万岁!”其他人则认为 Transformer 缺乏一个关键要素:循环[18]。

这种焦虑呼应了计算机视觉中的一个更早时刻,当时连接主义研究者提出用特征学习替代手工设计的特征。现在,Transformer 去除了显式的语言偏差。批评者认为,没有循环,它是“顺序不可知”的,并将位置编码视为一种临时的权宜之计,而不是真正的替代[19][20][21][22][23]。这种抵抗很大程度上是概念上的,但一些研究人员通过随机重排句子中的单词来测试 Transformer 是否能检测到这种干扰[24]。结果证实了理论上的怀疑:即使有位置嵌入的帮助,自注意力也难以捕捉位置线索。但转折点是,当在机器翻译上训练时,一个对词序高度敏感的任务,Transformer 在学习位置信息方面表现优于循环模型。

这种矛盾揭示了理论直觉的一些问题。它们描述了架构的不足,却未能预见优化、规模和任务需求如何能够弥补这一点。虽然循环(recurrence)为序列顺序提供了优雅的理论先验,但它并非在序列任务上取得强大性能的必要条件。这种对经验清晰性的强调而非理论见解,与苏茨克维的研究哲学高度一致。进步往往源于在规模上细化想法,并通过实验揭示真正有效的方法,而不是依赖研究者仅仅觉得正确的东西。这提醒我们,在深度学习中,进步属于那些在规模竞技场中证明自身的方法。

这种对放弃循环的怀疑很快在谷歌付诸架构实践,而谷歌正是在一年前推出了 Transformer。2018 年,谷歌研究人员提出了通用 Transformer(UT),认为原始 Transformer“在许多循环模型轻松处理的简单任务上无法泛化” [25]。尽管自注意力已被证明可以替代循环,但许多研究者仍然难以释怀。

公平地说,UT 并没有破坏 Transformer 对 GPU 友好的并行性。虽然循环引入了时间步的概念,但 UT 是按深度方向且可并行的,与顺序计算不同。见图 5.2。这种深度循环在多个步骤中并行应用于所有 token,重用相同的自注意力和前馈网络层。这个过程逐步精化表示,同时自注意力在每一步混合跨 token 的信息。在某些条件下,这可以使 UT 具有图灵完备性的理论属性——即在足够的时间和内存下,能够执行传统计算机可以执行的任何计算。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH05_F02_Heimann.png

图 5.2 通用 Transformer。经主要作者(Mostafa Dehghani)许可使用。

因此,UT 比循环神经网络更快。尽管如此,它仍比原始 Transformer 慢,且没有明显性能提升。其优势纯粹是概念上的,而 Transformer 所谓的弱点,如缺乏循环和粗糙的位置编码,在更大模型用更多数据训练后,其实影响较小。虽然 UT 体现了一个巧妙的想法,但深度学习更倾向于那些不使优化复杂化的简单设计。

尽管推出了 Transformer,谷歌对其规模化扩张表现出矛盾心态。谷歌的弯路虽然在智识上引人入胜,但暗示了其对标准 Transformer 之所以成为变革性突破的原因存在某种犹豫或困惑。OpenAI 凭借 GPT-2 和 GPT-3 抓住了可扩展性和经验性能。OpenAI 的成功凸显了谷歌最初忽视的一点:Transformer 的繁荣并非依靠精心设计的归纳偏置,甚至不是图灵完备性,而是通过大幅扩展的简单架构。

在 Lex Fridman 播客的一次采访中,伊利亚·苏茨克维认为,“Transformer 之所以成功,是因为它同时结合了多种想法。如果去掉任何一个想法,它的成功程度都会大打折扣。”他指出,Transformer 是可并行的,且“不是循环的……因此更容易优化。”这种分歧凸显了组织文化和领导力的差异如何塑造了现代人工智能的发展轨迹。

这种犹豫不决体现了伊利亚经常谈论的当时谷歌的文化。谷歌重视研究文化,但缺乏决定性的战略清晰度。相比之下,在苏茨克维领导下的 OpenAI 并无此类犹豫。伊利亚在论文发表后的直接反应毫不含糊:“我们现在就要做 Transformer” [26]。

5.2 有注释的 Transformer

原始 Transformer 在理论阐述上相对简单,谷歌甚至开源了代码 [27]。事后看来,这一决定具有历史意义,即使其影响在当时未被完全预见。然而,实际实现证明具有挑战性。谷歌的 Tensor2Tensor 库深度嵌入公司内部工具,新手难以理解 [28]。在此背景下,Alexander ‘Sasha’ Rush 的《有注释的 Transformer》脱颖而出 [29]。它通过呈现一个任何人都能理解的简单开源复现,挑战了当时新兴的共识,即 Transformer 极难实现。Rush 将其命名为“Annotated”,以致敬《The Annotated Alice》(《爱丽丝梦游仙境》的注释版),强调了该项目的教学目的。

《有注释的 Transformer》是一个经过广泛注释、逐行实现的版本,大致对应原始 Transformer 论文的各个部分。它涵盖了所有主要组件,包括编码器和解码器堆栈、多头自注意力机制、前馈网络、嵌入和位置编码层,以及训练过程,包括批处理、掩码和优化。该博客的代码与文本混合,使读者可以在概念理解和实现细节之间切换。它也是完全功能化且优化的,仅用 400 行 PyTorch 代码,就能在 4 个 GPU 上每秒处理 27,000 个 token。

Rush 在许多人都渴望理解 Transformer 的时候,为其去除了神秘色彩。这样做,它在 Transformer 领域占据了与 Andrej Karpathy 的“循环神经网络的不合理有效性”和 Chris Olah 的“理解 LSTM 网络”在 RNN 领域相同的文化和教学空间。三者都在深度学习社区准备采纳的恰好时刻,为突破性架构去除了神秘色彩。其平易近人的风格引发了一波类似的“注释”项目,包括“The Illustrated Transformer”、“The Annotated GPT-2”,甚至“The Annotated Diffusion Model” [30][31][32]。这些项目将 Rush 的工作视为对其格式和清晰度的灵感来源。在 GitHub 上获得超过 6,000 个星标和 1,300 个 fork,该代码库已被许多从业者适配用于实验、教学演示和探索 [33][34][35][36]。

5.3 Bahdanau 注意力

为了应对机器翻译等任务,伊利亚·苏茨克维、Oriol Vinyals 和 Quoc V. Le 在 2014 年引入了 seq2seq 架构,该架构使用基于 LSTM 的编码器将输入序列(例如英语句子)转换为固定维度的内部表示,再用解码器将该表示转换为输出序列(例如法语翻译) [37]。尽管该论文不在苏茨克维的列表上,但它为后来的突破奠定了基础,包括 Transformer。

其关键创新在于通过将整个序列压缩为一个高维的“思想向量”,实现将可变长度的输入序列映射到可变长度的输出。见图 5.3。但它也带来了瓶颈。一个序列的所有句法和语义——无论是 5 个词还是 50 个词——都必须塞进一个固定长度的向量中。句子越长,这种压缩就越吃力。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH05_F03_Heimann.png

图 5.3 编码器在读取每个英语单词时更新隐藏状态。最终隐藏状态成为固定长度的上下文或“思想向量”。解码器使用该向量,加上其已生成的西班牙语单词,来预测下一个西班牙语单词的概率分布。在训练期间,编码器和解码器通过最小化目标翻译的预测误差,从许多成对的源语言–目标语言句子中学习这些表示。

seq2seq 的概念源于更早的嵌入方法。2013 年,Tomas Mikolov、Ilya Sutskever 和 Google 的同事们引入了 word2vec,它从大型文本语料库中学习单词的密集向量表示,使得在相似上下文中使用的单词在嵌入空间中距离更近[38]。这些嵌入因其在词类比中表现出显著的线性规律而广为人知,包括 Hinton 在内的许多人将其视为一种推理形式[39]。

例如,你可能想知道 Paris 的意大利语对应词。Rome 立刻浮现在脑海中。学习到的词嵌入支持这种类型的推断[40]。如果你取 Paris 的嵌入向量,减去 France 的向量,再加上 Italy 的向量,你可能会得到 Rome 的向量,或者至少是一个比其他未参与问题的词更接近 Rome 的向量[41]。见图 5.4。传统自然语言处理研究人员花了数十年试图定义这些概念,但分布式表示打破了这个戈尔迪之结。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH05_F04_Heimann.png

Figure 5.4 Word-embedding vector operations: Paris - France + Italy = Rome

Geoffrey Hinton 普及了“思想向量”这个术语,并在 2015 年的一次采访中提出,将“意义”表示为思想向量可以使机器具有类人的推理能力[42]。这个想法虽然受到直觉支持而非证明,但具有挑衅性[43]。尽管如此,这个短语迅速成为意义神经表征的代名词。理想情况下,这个向量会总结所有必要的语义内容。在实践中,它通常会以随着序列变长和语义丰富而丢失细节的方式压缩信息[44][45]。

根本原因是 RNN 的最终隐藏状态很少能保留来自扩展序列的所有相关信息。序列的早期部分往往在编码器到达终点时被“遗忘”。单个固定维度的向量可能足以处理短句,但随着复杂性和长度的增加,压缩会变得有损。

在他们具有影响力的论文“Neural Machine Translation by Jointly Learning to Align and Translate”中,Dzmitry Bahdanau、Kyunghyun Cho 和图灵奖得主 Yoshua Bengio 引入了注意力机制,现在通常被称为 Bahdanau 注意力[46]。Bahdanau 注意力使解码器在翻译过程中能够动态地关注输入序列的不同部分,而不是依赖单一的思想向量。这一创新使该论文在 Sutskever 的榜单上占有一席之地,并为自注意力和 Transformer 的发展奠定了基础。

Model architecture

所提出的架构,即 RNNsearch 模型,由一个编码器和一个通过注意力机制连接的解码器组成:

  • Encoder—The encoder uses bidirectional gated recurrent units (GRUs). It processes the input sentence in two directions: one GRU reads it forward (left to right), and the other reads it backward (right to left). Their outputs are joined together so that each word’s representation (an “annotation”) carries information from both directions.

  • Bahdanau attention—The attention mechanism lets the model focus on different parts of the input sentence as it generates the translation. At each step, it scores each source word’s relevance, converts those scores into attention weights, and then builds a context vector as a weighted average. This context helps the model decide where to “look” when predicting the next word.

  • Decoder—The decoder is another GRU with 1,000 hidden units. At each step, it combines its previous state, the last word it produced, and the current context vector from the attention mechanism. It then produces a probability distribution over the next word in the sequence. Guided by attention, the decoder can shift its focus as needed, improving translation of long or complex sentences.

experimental results

The authors evaluated their approach using the WMT English-to-French benchmark. They filtered the original dataset down to about 348 million bilingual words to ensure domain relevance. Sentences were limited to 30 or 50 words. Words not included in this selection were replaced with a special “unknown” [UNK] placeholder.

Two baseline models were compared. The first was a basic encoder-decoder model (RNNencdec), which compresses an entire sentence into a single fixed-length vector (that is, a thought vector) before decoding it into a translation. The second was a traditional phrase-based translation system (Moses), which uses large databases of previously translated phrases and a substantial additional language model containing 418 million words.

The proposed attention-based model, RNNsearch, outperformed the basic RNNencdec across all test conditions. When trained on sentences limited to 30 words, RNNsearch-30 achieved a BLEU score of 21.5, compared with RNNencdec’s 13.93. When sentence length was extended to 50 words, RNNsearch-50 increased its advantage, scoring 26.75 against RNNencdec’s 17.82.

The authors also extended the training of the RNNsearch-50 model. They did not change the sentence length limit or the architecture; instead, they gave it more training time. This extended training increased the BLEU score from 26.75 to 28.45, approaching the 33.3 achieved by Moses. Remarkably, when evaluating only sentences without unknown words, RNNsearch-50 even surpassed Moses, achieving a BLEU score of 36.15, while RNNencdec-50 lagged far behind at 26.71. See table 5.1.

Table 5.1 BLEU scores for RNN encoder-decoder (RNNencdec) and attention-based (RNNsearch) models across different sentence length caps

| System | Sentence length cap | BLEU (All) | BLEU (no UNK) |

| --- | --- | --- | --- |

| RNNencdec30 | ≤30 | 13.93 | 24.19 |

| RNNsearch30 | ≤30 | 21.50 | 31.44 |

| RNNencdec50 | ≤50 | 17.82 | 26.71 |

| RNNsearch50 | ≤50 | 26.75 | 34.16 |

| RNNsearch50 (longer training) | ≤50 | 28.45 | 36.15 |

| Moses (phrasebased) | — | 33.30 | 35.63 |

As illustrated in figure 5.5, BLEU scores for RNNencdec declined sharply for sentences longer than about 20 words. By comparison, RNNsearch maintained stable performance even for sentences up to 60 words. This demonstrates that attention effectively addresses the fixed-length bottleneck inherent in the standard encoder-decoder framework.

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH05_F05_Heimann.png

Figure 5.5 BLEU scores versus sentence length: the encoder-decoder scores drop steeply beyond about 20 words, while RNNsearch remains stable up to 60 words. Used with permission granted by the lead author (Dzmitry Bahdanau).

Another major challenge in machine translation is handling word order. English often places adjectives before nouns, as in “red apple,” whereas Spanish places many descriptive adjectives after the noun, as in “manzana roja.” English phrases can translate into German with significant shifts in word order. “To reach” becomes “zu erreichen” in German, where the verb shifts position. The visual alignments in figure 5.6 reveal mostly monotonic word order between English and French, with prominent weights along the diagonal of the matrix. Nonetheless, some notable non-monotonic alignments emerge. For example, the model translates “European Economic Area” to “zone économique européenne,” aligning “zone” with “Area” while jumping back over “European” and “Economic” as needed. The soft alignment used by RNNsearch addresses this complexity by enabling simultaneous attention to both “zone” and “Area”, resulting in the correct translation.

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH05_F06_Heimann.png

图 5.6 展示了由 RNNsearch-50 模型生成的样本对齐。图中的 x 轴和 y 轴分别对应源语言(英语)和目标语言(法语)句子中的单词。像素表示在预测每个目标单词时,注意力机制分配给每个源语言标注的权重,以灰度可视化(0 = 黑色,1 = 白色)。每一行显示了与标注相关的权重,表明在生成每个目标单词时,源语言句子中哪些位置是最重要的。对齐在很大程度上是单调的,每个矩阵中都有强烈的对角权重。然而,也出现了一些非单调对齐。在法语和英语中,形容词和名词的顺序往往不同。例如,“European Economic Area”这个短语被翻译为“zone économique européenne”。模型将“zone”与“Area”对齐,最初跳过“European”和“Economic”,然后重新访问前面的单词以完成整个短语。经主要作者(Dzmitry Bahdanau)许可使用。

重大意义

“Neural Machine Translation by Jointly Learning to Align and Translate”在 seq2seq 模型中引入了注意力机制,使解码器能够动态地关注输入序列的不同部分,而不是被单个固定大小的上下文向量所约束。这一转变重塑了 Geoffrey Hinton 的“思想向量”概念[47]。虽然意义确实可以编码为数字,但将整个句子压缩成一个向量被证明是一个瓶颈。注意力通过允许模型决定输入的哪些部分最重要来打破这一约束。在一年内,几乎所有神经机器翻译研究都采用了某种形式的注意力。

通过直接解决原始编码器-解码器 RNN(即 seq2seq 模型)的“信息瓶颈”,Bahdanau 注意力为 Transformer 奠定了基础。Transformer 可以被视为这一趋势的逻辑结论。Bahdanau 注意力将注意力与 RNN 结合,而 Transformer 将注意力与前馈块结合,没有 RNN。事实上,Bahdanau 的“神经对齐”机制是 Transformer 用于捕获长距离依赖关系而不使用循环的自注意力机制的直接前身。

在过去的十年中,这项工作积累了近 4 万次引用,并在 2025 年被认可为 ICLR Test-of-Time Award 的亚军[48]。该认可强调了 Bahdanau 方法动态关注源句子不同部分的概念简洁性和实际影响力。这一成就呼应了 Ilya Sutskever 在 2014 年 NeurIPS 会议上关于 seq2seq 的评论:“最小的创新,最大的效果”[49]。就像残差连接一样,Bahdanau 注意力是一个简单的修改,却带来了巨大的好处。

5.4 直接指向它!

机器翻译推动了专用架构的发展,包括 seq2seq 模型和注意力机制。这些进步源于翻译可变长度句子和处理语义重排序的结构需求。同样地,组合优化问题迫使了另一场架构飞跃。

当输出词汇表固定时,如在翻译中,seq2seq 工作得很好,但当输出选择必须从输入本身中抽取时,它就会失败。指针网络(Ptr-Net)通过适应 Bahdanau 注意力机制[50]解决了这个问题。而不是产生加权平均上下文向量,Ptr-Net 将注意力分数解释为输入位置上的类别分布。模型不生成新符号;而是指向它们(见图 5.7)。这使得 Ptr-Net 能够复制、重排序或动态选择元素,例如旅行商问题中的城市、凸包中的点或调度中的项目。这样做,Ptr-Net 证明了注意力可以作为一种选择机制,而不仅仅是上下文聚合器。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH05_F07_Heimann.png

图 5.7 一个 seq2seq 模型(左侧)。输入序列(A)创建一个用于生成输出序列(B)的向量。输出维度由问题的维度决定,并且在训练和推理期间保持不变[51]。Ptr-Net(右侧)也是一个编码器-解码器。编码器和解码器的隐藏状态分别表示为(h[1],…,h[n])和(s[1],…, s[n])。Ptr-Net 将输入序列编码为一个代码(A),该代码被馈送到生成网络(B)。在每一步,解码器产生一个向量,该向量调节对输入的内容注意力机制。注意力机制输出一个 softmax 分布,其字典大小等于输入长度。经主要作者(Oriol Vinyals)许可使用。

5.4.1 实验结果

以下实验直接来自 Ptr-Net 论文,并展示了这种架构转变的影响。

凸包

在凸包实验中,序列长度指呈现给模型的输入点的数量。例如,长度为 50 的序列意味着网络接收 50 个二维点,并必须识别形成凸包的子集。序列长度表示任务的复杂性。更长的序列增加了难度,因为随着添加更多点,可能的组合数量会增加。

LSTM 在这项任务中苦苦挣扎:当给定 50 个输入点时,简单的 LSTM 在不到 2%的试验中产生了正确的凸包。添加注意力机制提高了性能,将准确率提高到约 39%。这很惊人,但仍然远非可靠。突破来自 Ptr-Net,它将准确率提高到 72.6%。这确立了 Ptr-Net 作为第一种能够有效扩展到此类组合问题的架构。

更重要的是,Ptr-Net 具有泛化能力。当在一系列长度(5 到 50 个点)上进行训练时,即使在测试比训练期间看到的问题大十倍的问题时,模型仍然保持了准确性。虽然在非常大的尺度(n = 500)下,精确顺序准确率下降,但整体几何性能仍然稳健。见表 5.2。

表 5.2 LSTM、带注意力的 LSTM 和 Ptr-Net 在凸包问题上的性能

| Model || Trained || Tested || Accuracy || Area |

| --- | --- | --- | --- | --- |

| LSTM || 50 || 50 || 1.9% || FAIL |

| LSTM + Attention || 50 || 50 || 38.9% || 99.7% |

| Ptr-Net || 50 || 50 || 72.6% || 99.9% |

| Ptr-Net || 5–50 || 100 || 50.3% || 99.9% |

| Ptr-Net || 5–50 || 500 || 1.3% || 99.2% |

Delaunay 三角剖分

Delaunay triangulation 是一种将点集划分为三角形的几何方法。其构造使得三角剖分中任何三角形的外接圆内都不包含其他点。简而言之,它以最大化最小角度的方式从点集创建三角形,避免极其狭窄或细长的三角形。Ptr-Net 在从给定点集中识别正确三角形的任务上进行了测试,本质上是根据 Delaunay 三角剖分的规则预测如何连接点,并且它学会了近似该三角剖分。由于经典的计算几何算法能够精确求解 Delaunay 三角剖分,因此性能可以直接与已知最优解进行比较。虽然网络在更大尺寸下重建整个三角形方面遇到困难,但即使在 50 个点的情况下,它仍然正确预测了超过一半的三角形。这突出了模型学习几何推理的能力,尽管随着复杂性增加,精确准确率急剧下降:

  1. n = 5: 准确率 80.7%,三角形覆盖率 93.0%

  2. n = 10: 准确率 22.6%,三角形覆盖率 81.3%

  3. n = 50: 完美准确率 0%,但三角形覆盖率 52.8%

旅行商问题

最终测试是著名的具有挑战性的旅行商问题(TSP)。TSP 是一个经典的计算挑战,涉及寻找通过一组给定城市(或点)的最短可能路线,约束是路线必须在同一城市开始和结束,并且每个城市恰好访问一次。虽然概念简单,但复杂性来自于可能的路线数量庞大,随着每个额外城市而指数增长。由于随着城市数量增加,TSP 很快变得计算上不可行,它被归类为 NP-hard 问题,意味着没有已知的多项式时间算法能够有效地解决所有实例当它们增长很大时。因此,研究人员经常依赖产生好的(如果不是总是最优的)解的启发式算法。

Ptr-Net是在较小 TSP 实例的已知最优解样本上进行训练的。训练后,它推广到更大的、未见过的实例。对于多达大约 30 个城市的问题,它始终识别出接近最优的路径,甚至优于它隐式学习的传统启发式算法。这一结果表明,人工神经网络可以学习复杂的优化策略,而无需显式编码它们,只需通过观察和推广先前的解。

表 5.3 显示了旅行商问题上的选定结果。A1是一种贪婪启发式算法,从孤立顶点开始,迭代连接两个最近的片段,直到形成单条路径。Christofides 算法(A3)是 TSP 广泛使用的近似方法。它构造最小生成树,并对奇数度顶点进行最小权重匹配,保证在满足三角不等式的实例中解在最优路径长度的 1.5 倍以内。

表 5.3 启发式算法(A1A3)和Ptr-Net在 TSP 上的性能

| 问题规模 | 最优 | A1 | A3 | Ptr-Net |

| --- | --- | --- | --- | --- |

| 5 | 2.12 | 2.18 | 2.12 | 2.12 |

| 10 | 2.87 | 3.07 | 2.87 | 2.88 |

| 25 | N/A | 4.71 | 4.24 | 4.30 |

| 50 (A1 Trained) | N/A | 6.46 | 5.79 | 6.42 |

| 50 (5–20 Trained) | N/A | 6.46 | 5.79 | 7.66 |

值得注意的是,即使在最弱的启发式算法(A1)上训练,Ptr-Net也学会了超越其老师。这表明网络正在从训练数据中提取更深入的见解,而不是仅仅模仿其来源。在较小的问题规模下,性能几乎完美,但在n = 50 时失效,尽管它仍然远好于随机。相比之下,对于凸包,作者能够推广 10 倍,可能是因为 TSP 更复杂。

传统架构在这些类型的任务上面临困难。Ptr-Net背后的突破是重新思考注意力机制。而不是仅仅使用注意力权重来创建用于从固定词汇表预测单词的“上下文向量”,Ptr-Net直接将注意力权重用作输入位置上的概率分布。在这里,注意力分布作为最终输出,而不是作为中间步骤。这种转变类似于“描述你所看到的”和“指向它”之间的区别。指向更直接。虽然Ptr-Net没有扩展到非常大的问题实例,但它证明了人工神经网络可以纯粹从示例中学习近似 NP-hard 组合优化问题的解。Ptr-Net还预示了 Transformer,通过展示注意力不仅是帮助循环模型的工具,而且是一种能够独立构建输出和表示的通用机制。

5.4.2 意义

而不是从固定词汇表产生符号,网络使用注意力权重指向输入序列中的一个元素作为输出。这种对注意力的简单而强大的修改使神经模型能够处理诸如排序、凸包检测和 TSP 等任务,在这些任务中输出是输入上的位置。

Ptr-Net不仅在这些组合问题上取得了令人印象深刻的结果,而且展示了推广到训练中未见过的输入长度的能力。这种指向行为也预示了后来的复制和生成机制。例如,后来的自然语言处理模型增加了复制机制,在生成输出时,使模型能够通过从源文本中选择来直接复制罕见或词汇表外的标记[52]。

指针概念本质上是注意力的应用,强化了灵活注意力寻址是这些论文中统一创新的主题。Ptr-Net和 Bahdanau 的注意力都说明了当神经网络能够根据需要回指特定输入元素时,表现更好,而不是将所有内容压缩到单个隐藏状态。

5.5 神经图灵机

神经图灵机(NTMs)由 Alex Graves、Greg Wayne 和 Ivo Danihelka 于 2014 年提出。它们将人工神经网络与外部可微记忆[53][54]配对。而不是将所有内容塞进隐藏状态,网络可以使用外部记忆作为草稿板来记录它以后可能需要的内容。这种设计使 NTMs 能够处理算法任务,如复制、排序和联想回忆。

NTM 由一个相对较小的控制器网络组成,最初是 LSTM,以类似于传统循环神经网络的方式处理输入和生成输出。然而,与标准 RNN 不同,计算与记忆分离。控制器通过称为头的专门机制访问记忆,这些机制类似于注意力。读头选择性地从记忆中检索信息,写头根据指令修改记忆。见图 5.8。至关重要的是,控制器与记忆之间的交互是完全可微的,意味着它们可以表示为平滑的数学函数。这一属性支持基于梯度的优化,允许系统在训练期间自动调整其参数。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH05_F08_Heimann.png

图 5.8 神经图灵机架构。控制器网络接收输入,产生输出,并管理外部记忆。读写头在记忆上移动以存储和检索信息。

为了选择性地访问记忆,控制器产生定义记忆位置上的概率分布或权重的向量。网络必须访问记忆的特定区域而不是全部。这种软注意力形式实现了选择性的、有针对性的记忆访问,并需要两种互补机制:

  • 基于内容的寻址根据控制器的查询向量与记忆内容之间的相似性检索信息。这些相似性分数通过余弦相似性计算,由锐度参数缩放,并使用 softmax 函数归一化。这种方法产生可微的联想记忆,类似于后来在 Transformer 中普及的查询-键注意力机制。

  • 基于位置的寻址按位置检索项目,从而高效处理诸如复制或排序等结构化任务。

NTM 注意力通常被称为 Graves 注意力,以主要作者(Alex Graves)命名。这是解决长期动态记忆挑战的早期尝试。Ilya Sutskever 指出,现代神经网络主要将长期知识存储在静态参数中,缺乏有效的动态记忆。在实践中,上下文窗口和检索增强系统充当了一种不可微分的短期记忆形式,部分解决了静态记忆的局限性[55][56][57][58]。

5.5.1 意义

NTM 将 RNN 与外部读写存储器耦合,网络可以通过注意力读写头与之交互。这种设计类似于具有可微分存储器的计算机,其中控制器使用注意力来确定读写位置。结果表明,NTM 可以从示例中学习复制、排序和召回等简单算法。尽管它们难以训练且在实践中未被广泛采用,但其可微分存储器访问的核心概念在概念上与 Transformer 相关。你可以将 Transformer 视为这一想法的更简单、隐式版本。它没有单独的存储器矩阵,但自注意力机制允许每个位置从序列中的所有其他位置读取,有效地将序列本身用作存储器。

5.6 顺序很重要

"顺序很重要:集合的序列到序列"由 Oriol Vinyals、Samy Bengio 和 Manjunath Kudlur 撰写,探讨了排序如何影响 seq2seq 模型的性能[59][60]。传统的 seq2seq 模型本质上假设顺序结构,例如在语言翻译或句子生成中。然而,许多现实世界任务涉及无序数据,包括组合问题和复杂图结构。作者引入了架构和训练修改,以减轻任意排序的影响。

如前所述,seq2seq 模型使用 RNN 顺序处理输入,这使得它们本质上对数据呈现的顺序敏感。Ilya Sutskever 证明,反转输入数据的顺序可以(反直觉地)提高神经机器翻译;我们稍后将更详细地探讨这一点。类似地,在指针网络中计算凸包之前对点进行排序,可以将准确率提高多达 10 个百分点。同样,RNN 训练的有效性很大程度上取决于数据呈现的顺序。选择糟糕的顺序可能会减缓甚至阻碍模型的有效学习。

为了处理无序输入,"顺序很重要"引入了读-处理-写(RPW)编码器(见图 5.9):

  • 读取—输入集合的每个元素被嵌入到共享存储器矩阵中,就像将所有项目写到白板上而不关心顺序一样。

  • 处理—LSTM 控制器使用平等对待每个项目的注意力机制从此存储器重复读取。这确保了无论输入如何排列,表示都保持稳定。

  • 写入—编码器通过注意力重新访问此存储器,将其精炼为解码器的稳定表示。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH05_F09_Heimann.png

图 5.9 读-处理-写将输入序列读入存储器,使用基于 LSTM 的循环控制器进行处理,并写出输出序列。读取模块对输入进行编码,处理模块在关注存储器的同时迭代更新隐藏状态,写入模块一次生成一个标记的输出,并将其自身的预测反馈为输入。解码器输出之间的箭头突出了自回归循环,其中每个生成的标记都会影响下一个标记。经主要作者(Oriol Vinyals)许可使用。

有趣的是,将输入嵌入到存储器矩阵中也是指针网络的核心。在这种情况下,存储器充当了一个列表,解码器在生成输出时可以直接"指向"它。相比之下,RPW编码器主要使用其存储器来构建强大的、顺序不变的表示。

作者提供了几个例子,展示了排序如何影响模型性能。他们考虑了三种排序:自然(即"This is a sentence.")、逆序(即".sentence a is This")和固定的三词反转(即"a is This . sentence")。最后一种排序破坏了句子的底层结构,打乱了自然的词汇分组,使模型更难捕捉语言模式。在以下例子中,作者强调任意排序引入了不必要的复杂性,阻碍了学习过程的效率:

  • 语言建模—当将自然顺序的句子与使用固定三词反转重新排序的句子进行比较时,模型性能下降,导致困惑度上升 10 点(从 86 到 96)。这种增加表明更大的不确定性和不太准确的预测。

  • 成分句法分析—解析树转换为序列的方式会影响模型性能。一个选项是深度优先排序,其中模型在移动到下一个分支之前探索树的一个分支到其最深的节点。另一个是广度优先排序,它逐级进行,在移动到下一层之前覆盖给定深度的所有节点。深度优先排序保留了句子的嵌套层次结构,并产生显著更高的准确率(89.5% F1),优于广度优先排序(81.5% F1)。

  • 组合任务—在排序数字或解决旅行商问题等问题中,输出的顺序很重要。通过强制固定的输出顺序,模型避免了在许多仅顺序不同但同样有效的解上浪费资源,例如始终以相同的起始位置列出城市。这减少了搜索空间,加速了训练,并提高了准确率。

  • 图模型似然估计—在合成星形图上进行训练时,当中央"头部"节点首先呈现,然后是其连接的节点时,模型更容易学习。这种排序简化了模型必须捕捉的结构。在非常大或高度确定性的数据集中,这种优势会消失,因为模型可以有效地学习,无论顺序如何。在大多数情况下,选择正确的输入顺序可以使训练更快、更高效。

当输出是无序集合时,传统的 seq2seq 模型面临一个问题:它们必须致力于单一的线性顺序,尽管存在许多等价的顺序。糟糕的选择可能会减缓甚至阻碍学习。对于输入是集合但输出是序列的任务(例如数字排序),RPW编码器通过提供强大的表示来帮助,解码器可以从中学习自然顺序,例如升序。当输入和输出都是无序集合时,RPW编码器确保编码器对排列不变。同时,特别设计的损失函数让模型在训练期间发现合适的顺序。而不是提前固定一个顺序,模型首先将所有顺序视为同样可能,然后逐渐转向它预测最好的那些顺序。

在实验中,这种自适应策略始终找到最优或接近最优的顺序。例如,在涉及 5-grams 的说明性实验中,它自动识别了最优或接近最优的输出顺序,将困惑度从糟糕的固定顺序下的约 280 显著降低到学习到的最优顺序下的约 225。诸如RPW之类的排列不变编码器还使网络能够更有效地学习自然顺序。即使像 Transformer 这样基于注意力的模型——比 RNN 对顺序变化更稳健——仍然受益。最终,这项工作表明神经网络仍然对数据排序敏感。

《顺序至关重要》的意义在于,它揭示了序列到序列模型存在一个缺陷,即它们假定输入顺序,即使对于不存在自然顺序的问题也是如此。该论文证明,仅仅因为输入的顺序不同,模型的输出就可能发生改变。通过将这个问题框定为一个通用问题,并尝试用注意力作为补救手段,它为能够更灵活处理输入的架构奠定了基础。事后看来,它预见了注意力在将模型从关于信息必须如何结构化的僵化假设中解放出来方面将发挥的更广泛作用。

5.7 反转输入句子

《顺序至关重要》表明,seq2seq 将同一集合的不同排序视为不同的输入,并提出了使模型更具顺序不变性或学习规范顺序的方法。虽然该论文的具体内容与变换器有些分离,但它强化了这样一种观点,即序列模型必须考虑数据的结构特性,在这种情况下是顺序敏感性或缺乏顺序敏感性。

然而,《顺序至关重要》的教训超出了集合问题和组合任务。顺序敏感性不仅在合成实验中显而易见,在实践中也是如此。最引人注目的例子之一是由伊利亚·苏茨克维(Ilya Sutskever)及其同事在 2014 年的 seq2seq 论文中提出的[61]。

在目标保持不变的情况下,他们发现反转输入将 BLEU 分数提高了近 5 分,并将困惑度从 5.8 降至 4.7,这表明预测更精确,模型不确定性更低。有一段时间,这个“反转源”技巧成为了 seq2seq 翻译系统的标准做法。

例如,法语序列中的第一个单词可能对应于英语序列中的第一个单词。在标准的编码器-解码器中,解码器在编码器读完整个源句子之前不会开始生成。这意味着第一个源单词必须经过每个编码器步骤才能影响第一个目标预测。这就像沿着一长排人传递耳语:队伍越长,末端的信号就越弱。

反转源顺序缩短了这条路径。第一个单词现在位于编码器的末尾,因此它对解码器的初始状态具有最强的影响。实际上,第一个源单词在开始时就与解码器相邻,从而更容易对齐源序列和目标序列的开头。正如苏茨克维所解释的,反转输入“大大减少了”源和目标第一个单词之间的处理延迟,使反向传播在建立它们的连接方面更有效。见图 5.10。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH05_F10_Heimann.png

图 5.10 反转技巧缩短了从相关源标记到解码器首次预测的路径。在没有注意力的普通 RNN 编码器-解码器(a)中,解码器从编码器的最终状态开始。反转源(b)使得对早期输出重要的标记在编码器的处理中出现得更晚,因此它们的影响更直接地到达解码器。

模型并没有变得更聪明;它只是得到了一个更容易的优化问题,因为有用信息到达所需位置的路径更短。总体而言,更短的有效路径长度和改善的梯度流使基于 RNN 的编码器-解码器的训练问题更容易。此外,如果经常对齐的源单词更靠近解码器的初始状态,解码器就不需要维护复杂的长时记忆状态。因此,梯度下降过程面临的障碍更少,收敛更快,泛化更好。然而,反转输入也突出了架构中的弱点,并进一步推动了创新,例如注意力机制,使模型能够忽略单词顺序访问信息。

苏茨克维的 seq2seq 论文《顺序至关重要》和吴明长(Minh-Thang Luong)的论文《基于注意力的神经机器翻译的有效方法》(引入了点积注意力机制)都使用了反转技巧。吴明长报告说,在 WMT 2014 英德任务中,反转源句子将 BLEU 提高了 1.3。有一段时间,这是强制性的,就像早期卷积网络中的批归一化和早期深度全连接网络中的随机失活一样[62]。

随着领域的发展,研究人员分析了这种反转技巧,并引入了更复杂的方法,如双向编码器、注意力机制和位置编码,从而减少了反转序列的需求。例如,Bahdanau 注意力允许解码器在每一步关注任何编码器隐藏状态[63]。双向编码器以两个方向处理源,使模型能够学习长距离对齐,而不需要反转输入。到 2017 年,许多神经机器翻译(NMT)研究人员使用了双向编码器(捕捉前向和后向上下文)或某种形式的注意力。

一项实证研究检查了在许多 NMT 配置下源反转的效果。它证实,对于基于单向 RNN 的编码器,反转输入始终优于未反转版本。在单层和两层编码器中,这种效果在统计上是显著的[64]。这与早期的直觉一致,即仅前向的编码器受益于源的开头更靠近解码器的起点。研究人员还发现,即使后者使用反转,双向编码器也优于单向编码器。

此外,随着编码器深度增加到四层或更多层,反转序列的优势下降了。通过堆叠多个 LSTM 层并使用残差连接,模型获得了更大的保留信息的能力,减少了对手动序列反转的需求。这些发现表明,反转主要是对更简单或更浅的架构有帮助的辅助手段。

这种实践的另一个方面是它取决于语言对和词序。当源和目标大致单调时(即顺序相似),反转技巧最有效。苏茨克维的英法翻译符合这种情况,因为两者都是主谓宾语言(SVO)。但如果翻译涉及不同的词序,例如从 SVO 语言翻译成主宾谓语言,反转源可能会破坏自然对齐。

在这种情况下,源的第一个单词可能对应目标的最后一个单词,因此将源的第一个单词移到末尾实际上可能错位序列。一项针对中日 NMT(两种词序不同的语言)的实证研究发现,反转输入句子降低了翻译质量[65]。尽管有用,但这种技巧并非普遍有益,而是在源序列和目标序列预期按顺序对齐的任务中最有效。

变换器联合考虑所有位置,不受 RNN 从左到右记忆限制的影响。因此,它们不需要源反转,也没有基于变换器的现代 NMT 系统使用这种技术。相反,长距离依赖问题通过注意力和位置编码来解决。

尽管如此,反转输入句子的历史做法仍然是一个富有启发性的例子,说明了在注意力前和早期注意力时代,顺序确实至关重要,那里存在一种巧妙的优化技巧。这种技术在 2014 年至 2016 年的 NMT 研究中被广泛使用,并取得了切实的收益。但随着架构超越使其必要的限制,其相关性逐渐减弱。

5.8 效果

虽然对 Transformer 最重要的批评集中在它们缺乏循环性上,但最令人难忘的批评来自华盛顿大学的 Emily Bender,她创造了病毒式隐喻“随机鹦鹉”[66]。

她片面的论点强调了语言模型对概率模式匹配和记忆的依赖,而不是真正的理解。

语言模型确实在不考虑意义的情况下生成输出,并且本质上受到它们训练数据的限制。

然而,这种批评自我削弱了,因为它所谴责的东西也是它的超能力。

也就是说,Transformer 并没有失败;它们非常成功,以至于它们的输出可以欺骗我们,让我们相信它们理解了。

从这个意义上说,批评陷入了一个悖论:语言模型不是因为失败而受到批评,而是因为它们在被设计来执行的任务上表现得太好了。

毕竟,当 Andrej Karpathy 撰写关于 RNNs 的不合理有效性时,没有人这么说,当时他还在庆祝同样的概率模仿。

区别在于 RNNs 从来没有欺骗过任何人。Transformer 做到了。

“随机鹦鹉”的文化共鸣强调了 Transformer 对期望的颠覆有多深。

这个标题成为了一个流行语,被爱好者和怀疑论者 alike 使用。

爱好者将其提升为战斗口号,暗示注意力是实现通用人工智能(AGI)所需要的一切[67]。

怀疑论者将其扭曲为“注意力不是你需要的一切”,将支持者描绘为天真地相信注意力可以产生 AGI[68]。

但两者都歪曲了原意。这篇论文并不是关于智能的笼统陈述,也不是对 AGI 的预测。

相反,它传达了一个精确的、务实的见解:循环和卷积,以前被认为是不可或缺的架构,可以被一个更简单、更可扩展的机制所取代。

尽管如此,这个短语开始出现在许多语境中,有时作为讽刺模板,有时作为对其巨大影响的致敬。

最近对 arXiv 标题的分析发现,在戏仿“你需要的一切”的论文中呈指数增长,有超过 700 篇这样的论文[69]。

“注意力”是被引用最多的术语,有 28 篇论文使用了“注意力就是你需要的一切”这个短语[70]。

这个流行语甚至在 meme 追踪网站 Know Your Meme 上有记录[71]。

研究人员、专家、影响者和怀疑论者通过替换新词来改编这个公式:“数据就是你需要的一切”、“扩展就是你需要的一切”和“强化学习就是你需要的一切”[72][73][74]。

一些条目将 meme 推向了讽刺的境界。例如,“金钱就是你需要的一切”戏谑地捕捉了社区的愤世嫉俗,认为向问题扔钱就会产生最先进结果[75]。

同样,一篇愚人节风格的论文题为“一个 23 兆瓦的数据中心就是你需要的一切”,讽刺地暗示 AI 进步需要手头有一个闲置的 23 兆瓦数据中心[76]。不是每个人都有吗?

社区笑了,但这些笑话带有尖锐性。这种戏谑的评论源于广泛的猜测,即像 GPT-3 这样的模型需要数百万美元来训练,加剧了关于财务规模而非学术创新性是否已成为 AI 进步决定性因素的辩论。

事实确实如此,迹象早在 2019 年 7 月就很明显,当时微软向 OpenAI 投资了 10 亿美元[77]。

金钱是一个催化剂,这些 meme 预见了一个前所未有的规模时代刚刚开始。

一旦注意力解除了顺序瓶颈并实现了大规模并行训练,资本就变得决定性了。

Transformer 成为新浪潮 AI 的象征,以至于它的一位合著者(Llion Jones)在 2023 年半开玩笑地哀叹该领域围绕 Transformer“钙化”了,可能会忽视其他想法[78]。

换句话说,有些人怀疑 Transformer 是否变得过于主导,这证明了该架构的统治程度。

这种转变是深刻的。神经机器翻译和神经序列建模长期以来一直被循环是必不可少的假设所定义。

研究人员甚至在这个时期开玩笑说他们辛苦获得的循环神经网络专业知识突然过时了,因为注意力使其不那么相关了。

RNNs 占主导地位是因为它们自然地按顺序处理单词,并且通过巧妙的优化如分解和条件计算,它们变得更快更实用[79][80]。

卷积方法,如 ByteNet 和 ConvS2S,也展示了处理序列数据的能力。

通过引入扩张卷积(第 3 章)来扩大上下文窗口,它们扩展了感受野,表明局部滤波器可以被拉伸以捕获更广泛的上下文。

然而,尽管它们取得了进展,但两种架构都带有结构性限制。

循环网络难以在长序列上并行化,而卷积网络则依赖于固定的、局部的交互[81][82]。

即使有扩张,卷积编码器-解码器模型仍然有限。

这些约束为 Transformer 铺平了道路,它用一个大胆的、挑衅性的主张抛弃了两者,简洁地体现在其论文标题中。

Transformer 不依赖于循环(信息通过隐藏状态顺序传播)或卷积(通过局部交互组合上下文),而是完全依赖于序列内的自注意力。

仅靠注意力,没有循环,没有卷积,没有任何显式的序列归纳偏差,就能执行复杂序列转换的想法,不仅仅是一个技术建议;它是哲学性的。

它暗示了语言的结构,长期以来被认为需要逐步处理或局部聚合,可以从一开始就被非局部操作捕获。

不仅可以做到,而且可以做得更好、更快、更便宜。

Transformer 表明循环是一种便利而非必要,并揭示了扩展是机器学习进步的主要驱动力。

最终,循环和卷积不需要葬礼。它们进行了抵抗,但最终变得不必要。注意力可能并不是字面上的“你需要的一切”,但它肯定足以拆除关于神经序列建模中本质结构的根深蒂固假设。

在 Sutskever 列表中的论文中,“注意力就是你需要的一切”是最有影响力的。

它的核心想法成为了一个标志性的流行语,超越学术界被广泛认可,并且2025 年自然分析将这篇论文列为 21 世纪被引用次数最多的论文第七名。

Sutskever 列表中只有一篇论文排名比它高[83]。

虽然残差连接默默地实现了更深层的网络,但注意力重新定义了我们与技术的关系[84]。

在 ChatGPT 发布的前夕(2022 年 11 月 29 日),Ilya Sutskever 宣称:“Transformer 这个名字取得很好,因为它改变了一切”[85]。

自从 AlexNet 以来,扩展一直在后台默默运转,等待合适的架构来释放其全部潜力。

有了 Transformer,Ilya 找到了一种被设计用来成长的形状。

现在的问题是扩展能将这种新架构推多远,以及可能会出现什么新能力。

这些问题将是下一章的重点。

6 超大规模的诞生

本章涵盖

  • 扩展准则:Kaplan、Chinchilla 和后 Chinchilla 扩展定律

  • 通用人工智能的火花和涌现行为

  • 平滑损失、锯齿评估和逆扩展

  • 隐蔽的工作:数据和模型并行性

  • GPipe 和流水线并行性

论文

  • 神经语言模型的扩展定律 (2020) Kaplan 等人。

  • GPipe:使用微批次流水线并行性的轻松扩展 (2019) Huang 等人。

现代人工智能表明,更大的模型表现更好。最明显的例证来自从 GPT-2(2019 年)到 GPT-3(2020 年)的性能飞跃。以今天的标准来看,GPT-2 相当普通:它拥有 15 亿个参数,并在一个相对狭窄的数据集 Reddit 上进行训练。尽管如此,它还是凭借诸如奥维德的独角兽(第 1 章)这样的例子吸引了公众的想象力。这篇文章在语气和风格上如此令人信服,以至于它重置了人们对机器生成文本的期望,几乎所有人都忽略了它是经过精选的,并且包含了诸如“四角独角兽”这样的矛盾修辞参考。

仅仅一年后,OpenAI 发布了 GPT-3,它在更多数据上进行训练,成本以数百万美元计 [1]。研究人员没有重新设计架构。他们只是将模型大小增加到 1750 亿个参数,大约是 GPT-2 的 117 倍。但他们这样做是充满信心的,因为他们已经发现了所谓的缩放定律。这些定律表明,随着模型大小、数据和计算资源的扩展,训练损失会平稳下降。然而,出现的结果却让人感觉完全不可预测。GPT-3 在没有任务特定微调的情况下展示了上下文学习和任务能力。

这些通常被称为 涌现能力:在较小模型中仅以随机水平出现的技能,但一旦达到一定的规模阈值,就会在更大的模型中涌现,通常相当突然。例子包括多步推理、多位数算术、在未明确训练过的语言之间进行翻译,或基本代码生成 [2][3][4][5][6]。然而,基准测试可以使这些能力看起来是一起到达的,而底层的损失曲线仍然 largely 平稳且可预测。因此,我们所谓的“涌现”反映的是测量的怪癖,而不是模型能力的尖锐不连续性。

尽管如此,缩放定律给了这个领域一些以前从未有过的东西。随着规模的增加,收益会递减,但这种关系足够一致,可以为研究人员提供进展的路线图 [7]。几十年来,人工智能的进展一直不均衡,其特点是偶尔的算法突破 followed 长期的平台期和偶尔的寒冬 [8]。突然之间,进展的配方变得简单。对于一个长期习惯于罕见、来之不易的收益的学科来说,这种加速是非凡的。

6.1 缩放经典

2017 年,百度的 Joel Hestness 及其同事绘制了深度学习在不同模型家族中如何缩放的图谱,包括 ResNets(第 3 章)、Deep Speech 2(第 4 章)和基于注意力的编码器-解码器(第 5 章)[9]。他们证明,模型误差与数据集大小之间存在可预测的幂律关系。然而,令人震惊的是,这些架构并没有改变这些曲线的斜率。改进的速度(即,随着模型在更多数据上训练,误差下降的速度)在给定的领域内保持不变。各种架构改变的是截距。

也就是说,更好的模型家族将整条曲线向下移动,带来更低的误差,但它并没有使曲线变得更陡峭。视觉领域的 ResNets,以及由此延伸的语言领域的 Transformers,整体上推动了准确性的提高,但规模决定了斜率。正如论文所说:“改进的模型架构和优化器可以改善幂律截距,但不能改善指数;单个领域的模型显示出相同的学习曲线陡峭度。”

这意味着,一旦架构规模确定,后续的进展就变成了一个预算问题。这就是为什么该领域从新颖性转向了扩展模型并为其提供更多数据和计算。虽然 Transformers 没有在 Hestness 的论文中被评估,但它为更详细的缩放定律奠定了基础。三年后,OpenAI 的 Jared Kaplan 及其团队利用这一见解构建了“神经语言模型的缩放定律”(2020 年),这是一篇入选 Sutskever 列表上的论文。

Sutskever 列表上的大多数论文都提供了一个干净利落的飞跃(例如 ResNet 或 Transformers),像 AlexNet 或 Deep Speech 2 这样的工程杰作,或者一个明确界定的实验发现,例如 Pointer Networks 或 Order Matters。Kaplan 的论文不同。它运行了近 30 页,提出了耦合的幂律,映射了损失和非嵌入参数、数据集大小、计算、训练时间和步骤之间的相互作用,以及批量大小理论、过拟合行为和形状不变性结果。本章关注的是 什么为什么,同时保留了主要思想并以通俗语言进行解释。

6.1.1 Kaplan 缩放定律

Kaplan 缩放定律解释说,当模型大小、数据和计算协同缩放时,性能会平稳提高,尽管收益递减。例如,将参数数量(N)翻倍会使误差减少约 5%(技术上是 2^(-αN) 的因子,其中 αN ≈ 0.076)。将训练数据(D)翻倍大致带来 6% 的误差下降(2^(-αD),其中 αD ≈ 0.095)。参见图 6.1。虽然从绝对值来看并不大,但在一个很少有稳定规律的领域中,它是稳定且可靠的。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH06_F01_Heimann.png

Figure 6.1 Language modeling performance improves smoothly as model size, dataset size, and amount of compute used for training increase. For optimal performance, all three factors must be scaled up in tandem. Empirical performance has a power-law relationship with each factor when it isn’t bottlenecked by the other two. Used with permission granted by a coauthor (Ben Cross).

尽管如此,有一个重要的约束。在固定大小的数据集上,通过添加参数来缩放模型最终会阻止测试损失的改善,并且推动模型收敛可能会加速收益递减,甚至引入过拟合。Kaplan 及其同事发现,这种平衡遵循其自身的方程,其中数据随模型大小次线性增长(大致为 D α N^(0.74))。也就是说,如果模型参数的数量翻倍,数据集不需要翻倍。相反,它应该增长约 1.7 倍。将模型大小增加三倍,相应的数据集应该增长约 2.3 倍以保持同步。如果模型被缩放 117 倍(GPT-2 → GPT-3),数据集应该增加约 34 倍。这种关系帮助研究人员使更大的模型更高效。

最后,计算的问题。与数据集一样,训练预算通常是有限的,本能的做法是训练一个较小的模型直到收敛。但 Kaplan 的分析显示了相反的情况。在固定预算下,从业者最好训练一个大得多的模型,但只训练更少的步骤。更大的模型更有效地吸收数据;每个计算单位带来的改善比在更小的系统中更大。这意味着进步不仅仅是关于原始马力,还关乎如何明智地在参数、数据和训练时间之间分配规模。参见图 6.2。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH06_F02_Heimann.png

Figure 6.2 Models larger than the compute-efficient size require fewer training steps, potentially enabling faster training if sufficient additional parallelism is possible. Used with permission granted by a coauthor (Ben Cross).

这项研究专注于仅解码器的 transformers。谷歌在 2018 年引入了仅解码器的 transformer,即在原始 Transformer 之后的一年。它比原始版本更好地处理长输入序列,并且比其编码器-解码器对应物更容易扩展 [10]。作者在仅解码器的模型旁边训练了几个基线 [11]。

实验涵盖了广泛的模型和数据集规模,从 7.68 亿到 15 亿非嵌入参数,以及从 2200 万到近 230 亿训练令牌。作者将模型大小定义为非嵌入参数的数量,因为令牌和位置嵌入在较小模型中可能主导参数数量,而不会显著增加模型容量。相比之下,非嵌入参数的数量取决于网络的深度和层宽度。批大小(在每个训练步骤中并行处理的令牌数量)随模型和数据集规模而变化;最大的运行使用了约 500,000 令牌的批。

为了将规模与形状隔离,作者改变了层数、前馈子层的宽度以及注意力头的数量,同时保持与当时常见设计实践一致的比例。他们还改变了内部向量表示的维度,即模型的隐藏大小(d[model])或每个令牌特征向量的长度。这些架构变化使作者能够研究每个变量的孤立效应,同时保持现实的架构规模和形状[12]。

训练通常持续约 250,000 步,或者直到分配的计算预算耗尽,如果验证损失稳定,则提前结束运行。大多数模型使用 Adam 优化器进行训练,但最大的模型(超过 10 亿参数)使用 Adafactor 来减少内存使用[13]。学习率采用了 3,000 步预热,然后余弦衰减至零,作者发现,只要值合理,最终性能对确切的时间表并不高度敏感。

6.1.2 形状重要吗?

研究表明,性能强烈依赖于规模,而对形状的依赖较弱。这里,形状指的是参数在架构内的分布方式。例如,他们比较了少量宽层与许多薄层的配置,所有配置的参数数量相同。他们还调整了前馈层相对于隐藏大小的宽度。最后,他们改变了自注意力头的数量。

在这些变化中,损失仅变化了几个百分点。只有极端的形状,例如少于两层的形状,才表现出显著的性能下降。这些结果强调了早期创新的重要性,例如注意力机制和残差连接,这些首先使得训练深度、宽度的模型成为可能。同样关键的是批归一化、仔细的权重初始化、优化器创新、层缩放技巧(如学习率预热以稳定训练),甚至随机失活。有了这些突破,确切的排列和参数比例就不那么重要了;决定性因素是模型中的参数数量。

6.1.3 随数据和模型规模扩展

模型在 WebText2 上训练。原始 WebText 数据集随 GPT-2 引入,并由 Ovid's Unicorn 推广。WebText2 将该集合扩展到约 2000 万文档。分词后,语料库包含约 230 亿令牌,即模型在训练期间处理的输入单元。

当模型大小保持恒定而训练数据量变化时,性能遵循一条平滑、可预测的曲线,更多数据改善结果。数据扩展的曲线比模型大小的曲线略陡,表明增加数据集大小比单独增加参数带来更大的改进。但每次数据增加仍导致损失的逐渐减小。这种模式不仅对 WebText2 成立,而且在维基百科和书籍等分布外语料库上的相同模型也成立。这些数据集的改进曲线与分布内曲线大致平行(在对数尺度上),并偏移一个常数间隙,表明扩展的好处很好地转移到新的数据源。

当模型大小、数据和计算一起扩展时,作者还揭示了一些更微妙的东西:那些递减回报的速率可以被管理。作者通过将结果与无限数据极限进行比较,该极限代表模型在无限训练数据下可能达到的最佳性能,使得过拟合不可能发生。在实践中,当模型超出数据集并开始记忆时,就会发生过拟合。

Kaplan 量化了如何保持该曲线的弯曲不过早出现。每次模型参数增加约八倍时,数据集大小必须增加约五倍(D α N^(0.74))以保持泛化。这个 8 倍参数、5 倍数据规则表明数据需求随模型大小亚线性扩展,使得越来越大的模型可行,而不需要数据一对一增长。在 2020 年,这是一个大事件。它提供了第一个直接、定量的配方,用于一起扩展模型和数据集。更大的模型不需要成比例的数据增长,使得训练千亿参数模型成为可想象的事,这正是 OpenAI 用 GPT-3 所做的。

该框架还为研究人员提供了一个诊断工具,以确定模型是否仍在扩展曲线上。如果性能开始比定律预测下降得更快,则表明扩展机制之外的某些东西出了问题。“扩展机制”保持所有变量(例如,架构、目标、分词器、上下文长度、优化器时间表和数据分布)恒定。每个机制都有其自己的曲线,具有不同的斜率。可能存在数据质量问题、过度重复的令牌或优化瓶颈导致性能漂移。例如,假设一个 500 亿参数的模型相比 200 亿参数的模型没有改进。那就是一个危险信号,表明设置已偏离了预期的斜率。

6.1.4 扩展计算

最终问题是性能如何随计算扩展,以及如何花费固定预算。首先,有最佳批大小[14]。回想一下,批大小指的是在每个训练或优化步骤中并行处理的令牌数量。训练步骤是单次参数更新。模型获取一批训练示例,计算该批的损失和梯度,然后让优化器(例如 Adam)更新一次权重。如果批太小,模型就会爬行前进。进展嘈杂,需要太多微小的更新。如果批太大,每一步都会对越来越多冗余示例求平均。作为一般规则,在最佳点附近训练可以使硬件保持忙碌,浪费很少。在实践中,该点通常位于达到目标精度所需的最小步骤数的约 2 倍和最小唯一数据量的约 2 倍。

其次,存在数据量的极限,这指导如何在增加模型大小和延长训练时间之间分配计算预算。对于任何固定预算,都有一个合适大小的模型和一个合适长度的训练运行。构建一个太大的模型并训练它太短暂,你会为未使用的容量付费。保持一个太小的模型并永远训练它,你是在打磨一个无法表达其训练数据的模型。这些边界之间的路径描绘了一条前沿。随着预算增长,必须同时增加模型大小和训练时间以保持平衡。后来的工作表明,许多前沿模型处于大但训练不足的一侧,需要重新平衡以每个参数更多数据来产生更好的结果。我们稍后会讨论这一点。

在语言建模的计算最优区间内,将总计算量翻倍只会使损失降低 3%至 4%,这小于通过扩展数据或参数所带来的收益。然而,更大的模型更具样本效率。也就是说,它们可以用更少的标记和更少的参数更新达到给定的损失,从每个单位数据中提取更多信息。关键结论是,将计算分配用于延长小模型的训练是低效的,而将其分配用于容量(并相应增加数据)则会产生复合收益。

Kaplan 还表明,计算高效的训练在远未达到收敛之前就停止。收敛意味着训练运行已基本稳定,额外的周期几乎不产生任何改进。计算高效的模型训练的步数较少,但可以优于一直训练到完成的更小模型。在这种情况下,早停起到了正则化的作用,抑制了记忆化,同时仍允许更大的网络利用其容量 [15]。净效果是直觉的逆转。进展并非来自训练到收敛,而是来自规模。聪明的投入应该用于容量,而不是将一个小模型拖过终点线。

为了说明这一点,作者们询问了如果计算预算增加十亿倍会发生什么。大部分计算应该用于使模型更大,因为更大的模型更具样本效率,并且每个标记提取更多信息。数据集大小只需适度增加数倍即可避免过拟合,而以步数衡量的训练时间几乎不会变化。见图 6.3。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH06_F03_Heimann.png

图 6.3 作者展示了在计算量增加十亿倍的情况下如何分配训练资源。为了实现最优的计算高效训练,大部分增长应该用于扩大模型大小。只需要相对少量的数据增长就可以防止重复使用。在额外的数据中,大部分可以通过使用更大的批次大小来增加并行性,这只需要极少地增加串行训练时间。经合著者(Ben Cross)许可使用。

6.1.5 架构比较

Kaplan 团队将仅解码器的 transformer 与 GPT-1(另一个仅解码器模型)、原始 Transformer、长短期记忆(LSTM)和循环通用 Transformer 进行了比较。LSTM 尽管在非常短的序列上表现相当,但很快趋于平庸,显示出无法利用长上下文或随参数数量扩展。通用 Transformer 凭借其循环精炼机制和参数复用,实现了略高的每参数效率,但在相同规模下需要更多的计算。这些结果表明,扩展曲线并非单一架构的产物。相反,它们反映了语言建模的更普遍规律。同时,它们澄清了仅解码器 transformer 特别擅长的地方,尤其是在跨长上下文保持性能以及在规模上更高的计算效率 [16]。

6.1.6 扩展假设

尽管是量化的“定律”和稳步改进,但卡普兰曲线在小范围的内部人士之外基本未被注意到。最早理解其重要性的外部人士之一是 Gwern Branwen,这是一个远离主要实验室的独立研究者的笔名。2020 年 5 月,他发表了一篇题为“扩展假设”的博客文章。该文章病毒式传播,推测智能可能仅仅从规模中涌现 [17]。

然而,卡普兰的论文是一项实证研究。它不是一份宣言。Gwern 将这些曲线转化为一种激进的智能理论,远远超出了卡普兰的谨慎框架。他的挑衅引发了人们对扩展的极大热情,并且似乎在几周后 GPT-3 发布时获得了势头,它似乎体现了扩展假设和“规模的祝福” [18][19]。

这一论点在 2023 年的 GPT-4 中达到了顶峰,据报道它拥有近 2 万亿个参数 [20]。微软研究人员在一系列任务中测试了它,包括数学、法律、编程、计算机视觉和推理。他们的报告“人工智能通用智能的火花”表明,规模已经将语言模型推向了狭窄专业化之外的领域,一度看起来令人不安地接近通用智能 [21]。

此后不久,研究人员用更平淡的术语重新诠释了那些所谓的“火花”。一篇题为“自回归的余烬”的论文表明,看起来像通用人工智能(AGI)的“火花”的东西更好理解为自回归训练的“余烬” [22]。“自回归的余烬”认为,推理和抽象的惊人闪光不是通用智能的标志,而是将这种下一词预测过程扩展到极端维度的副作用。结合起来看,火花余烬突出了这个时期的扩展叙事;一个捕捉了涌现能力的兴奋,而另一个提醒我们,智能不仅仅是扩展自回归模型的问题。

尽管如此,扩展定律是机器学习中最接近免费午餐的东西,不是因为它们便宜,而是因为它们将进步从发现转移到执行。与“没有免费午餐”定理形成对比,该定理表明没有优化方法在所有问题上都普遍优越,扩展定律表明规模可以可靠地推动改进,而无需新架构 [23]。至关重要的是,这些定律之所以重要,只是因为早期的突破已经提供了一个可扩展的架构。卡普兰及其同事只是正式化了经济论点,即更大的模型是计算的更好利用,而不是追求新架构。萨顿的“苦涩教训”认为使用更多计算的通用方法优于手工制作的解决方案,提供了方法论的对应物 [24]。它们共同创造了一个理由,为什么该领域应该押注规模,而 OpenAI 抓住了这一点,将规模不仅视为一种训练策略,而且是一种企业哲学。

6.1.7 Chinchilla 和后 Chinchilla

扩展的清晰图景并没有持续太久。2022 年,DeepMind 的 Jordan Hoffman 和同事们用 Chinchilla 扩展定律挑战了卡普兰的处方。卡普兰已经表明,训练步数更少的大模型可以优于训练到完成的小模型。这推动了领域向更大的模型和比例更多的数据发展,而不是更长的训练运行。但 Chinchilla 揭示,许多这些模型训练不足,添加数据可以释放架构中的空间 [25]。

通过分析超过 400 个 transformer 模型,大小从 7000 万到 160 亿不等,训练标记高达 5000 亿,DeepMind 发现对于那个时代的 transformer,最优的标记到参数比大约是 20:1 [26]。这一结论挑战了卡普兰对模型大小的偏见。但教训本身并不新鲜。“不要让模型挨饿数据”正是 Halevy、Norvig 和 Pereira 在 2009 年关于“数据的不合理有效性”的文章中给出的建议,与 Efros 的“花哨”叙事精神相呼应。发生改变的是现在可以测量这些权衡的规模和精度。

使用这种最优的 token 与参数比例,作者们证明,拥有 1750 亿参数、在 3000 亿 token 上训练的 GPT-3 远非最优,每个参数大约有 1.7 个 token。根据 Chinchilla 论文,GPT-3 本应要么小得多,大约 150 亿参数,要么在大约 3.5 万亿 token 上训练,以充分利用其参数。这种不匹配解释了为什么 Chinchilla 最优模型经常优于更大的同类模型,包括 Megatron-Turing NLG(530B)、Gopher(280B)、Jurassic-1(178B),甚至 GPT-3(175B),所有这些模型都曾饱受数据匮乏之苦。

这一洞察改变了行业。“Chinchilla-optimal” 成为有效平衡大小和数据的模型的代名词。据报道,OpenAI 训练 GPT-4 时每个参数使用的数据量远超以往模型 [27]。Meta 的 LLaMA 2(2023)采用了相同的方法,为一个 700 亿参数的模型使用了 2 万亿 token(每个参数约 30 个 token)。这是 GPT-3 训练数据的六倍 [28]。LLaMA 3.1 的训练 token 数量几乎是 LLaMA 2 的 10 倍,这促使该领域质疑 Chinchilla 的比例是严格规则还是仅仅是指导方针 [29]。甚至有人宣称 Chinchilla 已经死了 [30]。

TinyLlama 是推动 Chinchilla 缩放定律的一次尝试,它使用 3 万亿 token 训练一个仅 11 亿参数的模型,每个参数产生近 3000 个 token [31]。然而,在 2023 年底进行的为期数月的现场实验中,TinyLlama 仅达到了与类似大小模型相当的水平。这表明模型能有多小存在极限:低于该点,训练数据无法弥补参数的缺乏,缩放定律可能不适用于模型大小与数据集大小的极端比例。

这一时期可能被称为后 Chinchilla 缩放定律,重点在于训练每个参数使用远多于 Chinchilla 建议的 token 的模型。2024 年 4 月,Llama 3 在 15 万亿 token 上训练 [32]。对于 80 亿参数的模型,Chinchilla 最优 token 数量约为 1600 亿,对于 700 亿参数的模型,则约为 1.4 万亿。然而,Meta 训练的模型中,80 亿参数模型的 token 与参数比例约为 1875:1,700 亿参数模型的比例约为 214:1。

与 Kaplan 原始定律的对比很有启发性。Kaplan 假设了“无限数据极限”,并在实验上限为 230 亿 token 的情况下,得出结论认为扩展参数是前进的最佳途径。Chinchilla 将范围扩展到 5000 亿 token,并证明对于中等大小的模型,性能随着更多数据而继续提升,向数据方向转移了平衡。但随后发生的事情,包括 TinyLlama 和 LLaMA 3,并不是对 Chinchilla 的否定,而是对其边界的探索。Kaplan 强调参数;Chinchilla 恢复了一些平衡;后 Chinchilla 实验测试了其极限。

随着 DeepSeek,缩放再次发生了转变。2025 年 1 月,DeepSeek 向公众发布,它展示了高端模型可以以数百万而非数十亿的成本进行训练,震惊了世界 [33][34]。DeepSeek 将成本降低了 40% 以上,并将吞吐量提高了近六倍 [35][36]。捕捉这种情绪,一篇直截了当地题为“够了!不要再扩展 LLM 了!让我们专注于降级”的论文敦促研究人员通过更具创新性、更低成本的策略来追求规模收益 [37]。

如今,关于前沿缩放的讨论已经安静下来。Kaplan 和 Chinchilla 是公开的里程碑,但来自万亿 token 训练运行的新见解因企业知识产权而丢失。在数十亿美元的风险下,实验室不再分享他们的曲线。我们只能通过泄露和推断间接地看到它们。虽然“缩放定律”仍然是一个活跃的研究领域,每年都有多部作品发表,但前沿缩放定律的时代几乎在一开始就结束了 [38]。

6.2 缩放绕道

批评者迅速指出,缩放定律并非一成不变。2022 年,Gary Marcus 写了一篇题为“深度学习正在撞墙”的博客文章。该文章走红。其中他说:“所谓的缩放定律不是像引力那样的普遍定律,而只是可能不会永远有效的观察。”他补充说:“的确,我们可能已经在深度学习中遇到了缩放极限,也许已经接近收益递减的点” [39]。

Marcus 是对的。缩放定律不像引力,尽管没有人认为它们像引力。它们是经验性的稳定改进规律,但需要注意。但援引“收益递减”并未抓住关键。曲线已经表明收益递减,但它们预测了可靠的进步。实际的问题不是“我们是否在接近收益递减的点?”而是“下一个能力增量是否值得边际成本?”在规模的早期年代,答案是明确的肯定,而且轻松的胜利无处不在。近年来,斜率已经下滑,从业者已经转移了杠杆,关注数据质量、上下文长度、指令调整、工具使用和推理等方面(第 7 章),同时保持缩放主干完好 [40][41]。

对缩放定律更深层的挑战不在于它们所谓的短暂性或有充分记录的收益递减,而在于它们不均匀的行为。缩放定律在纸上看起来平滑,但在实践中它们是嘈杂、脆弱和不均匀的。训练损失表现得像统计平均值,并且可以从上游损失以惊人的精度预测,这在这种混乱的经验科学中是罕见的。但特定能力和下游性能的可预测性就差得多。涌现能力可能突然出现,而逆缩放则表明某些任务在规模上表现更差。在 GPT-2 和 GPT-3 的发展过程中,研究人员提出了诸如“算术何时会出现?”或“模型何时开始编码?”等问题。答案不是渐进的改进,而是突然的阈值,一旦模型跨过这些阈值,能力似乎就打开了。

一项元分析发现,在只有 39% 的案例中,与线性缩放定律有紧密的拟合 [42]。在其余 61% 中,曲线不可预测地弯曲;一些任务进入平台期,一些下降,另一些在长期的平坦表现后急剧上升 [43]。简而言之,缩放定律提供了有价值的经验指南,但从未保证。

6.2.1 锯齿状

缩放定律描述了随着参数、数据和计算资源的增加,训练损失如何下降,但仅在特定的体制内。最终,训练运行会遇到障碍:它可能耗尽数据,分词器或优化器可能改变,或者规则本身可能改变。在对数-对数图上,这看起来像拼接在一起的直线段。然而,它不是一条单一的通用直线;它是分段的,有扭结和新段。关于断裂缩放定律的工作将这些体制变化形式化,并展示了为什么即使在体制内损失曲线看起来稳定,能力也可能跳跃 [44]。

这也解释了为什么能力似乎出现涌现。大多数评估是阈值化的,包括精确匹配和胜率。交叉熵的微小平滑下降可以使许多临界项目从几乎正确翻转为正确,因此测试分数跳跃,即使训练曲线看起来良好。OpenAI 联合创始人 Greg Brockman 推文说:“评估令人惊讶地往往就是你需要的一切” [45]。虽然曲线大致平滑,但重要的是评估所揭示的内容。曲线告诉你在哪里投入计算;评估告诉你何时跨越体制边界以及哪些能力真正开启了。

模型级评估,如测量大规模多任务语言理解(MMLU)、小学数学 8K(GSM8K)、BIG-bench 和人类最后的考试,报告了在问答、数学、指令遵循和代码方面的准确率或通过率[46][47][48][49][50][51]。在数千个项目中,即使训练损失仍然平滑,这样的波动也会导致任务性能出现台阶、平台和下降。进步感觉就像在爬一个缺了台阶的楼梯,而不是一条平滑的下坡路。对于更广泛的受众,这些分数被进一步重新表述为人类可读的阈值,这些阈值隐藏的和暴露的一样多:“通过了律师资格考试”[52]、“SAT 分数”、“博士水平”[53]、“比放射科医生更好”[54]。这些标签将多维的能力概况压缩为单一的社会信号。它们有用但不完整。

没有基准测试能覆盖现代模型可能输入的空间,评估不可避免地只对更大分布的一小部分进行采样。这种采样差距解释了为什么新的优势和新的失败模式经常在部署后出现。它还澄清了如何解释预训练中明显的“魔力”或“火花”[55]。下一标记预测训练了一个文本模型,而世界只能间接进入,通过人类选择写、注意和重复的内容进行过滤。

从这种意义上说,语言模型可以近似一个世界模型,足以产生类似理解的行为,但这种理解是通过语言介导的,并且仍然受分布限制。因此,性能与训练分布紧密相连。该分布包括人类生成的对世界的描述,而不是直接访问世界,并且系统并没有系统地超越它(至少目前还没有)。因此,数据中频繁出现的模式被更完整地学习,而罕见的、缺失的或系统性描述不足的模式仍然薄弱。见图 6.4。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH06_F04_Heimann.png

图 6.4 模型会更容易学习一些任务,而不是其他任务。简单的任务在密集数据中频繁出现,而困难的任务在稀疏数据中很少出现。

即使两个任务看起来同样复杂,模型也会偏向在训练数据中表示更好的那个,因为即使在确定性提示下,输出概率也会引导响应。这可能导致不均衡的能力。多位算术可能在n位数字下有效,而在n + 1位时失败。检索可能保持L个标记的上下文,而在L + 1个时出错。推理可能链接k步,而在k + 1步时步履蹒跚。在代码中,模型可能构建一个以变色美国国旗为特色的简单网站,却无法生成一个播放“生日快乐”的蛋糕,尽管在任务复杂性上显然相似[56]。有时,这就像知道如何系右鞋带,却不会系左鞋带。这一悖论引发了关于可靠性和鲁棒性的争论,尽管模型变得更加一致。

有时差异更大。在某些基准测试中,更大的模型随着规模扩大表现更差,至少在一段时间内是这样。当更大的模型在额外的规模、改进的数据或精炼的训练方法恢复之前,更自信地抓住虚假模式时,就会出现这种反向缩放和相关的 U 形曲线。这就是为什么缩放定律能很好地预测损失,但难以预测下游任务的性能。然而,准确率可能会起伏不定、平台期、反转,然后继续攀升[57][58]。

最终,缩放定律以惊人的精确度预测,随着参数、数据和计算的增加,训练损失将如何下降。这使得它们对于规划预算和预测总体进展非常宝贵。它们没有告诉我们模型何时会突然处理算术、编写代码或可靠地计划。这些能力出现得不均匀。通用基准测试让我们更好地了解下游性能,但它们只能走这么远。

6.2.2 污染

在评估语言模型性能方面也存在方法论上的障碍。例如,当训练数据无意中包含测试集中的元素时,就会发生数据泄漏(测试集污染)。生成模型在互联网规模的数据上进行训练,已经见过数万亿个标记。随着模型规模的扩大,它们获得了更大的容量来存储和重现训练文本,但记忆不仅由大小驱动。重复、冗余和训练持续时间强烈影响哪些内容被逐字保留。因此,越来越难以确定一个基准测试是否在预训练期间被有效地“看到”,无论是直接还是通过训练语料中的密切变体。

第一代基准测试,如 ImageNet,讲述了一个进步的故事。AlexNet 在 2012 年的突破将错误率减半。在几年内,ResNet 超越了人类标注者,基准测试很快饱和。污染不是一个问题。数据集是受控的并被广泛研究。重要的是架构和优化。一旦饱和,这些基准测试就不再是有用的进步指标。

更新的语言基准测试(例如 SQuAD 和 GLUE)分布在 GitHub 仓库、机器学习教程和 Hugging Face 库中。随着网络规模预训练的兴起,来自 SQuAD 或 GLUE 的示例越来越有可能被直接纳入训练语料。结果,重叠是可能的,一些收益——特别是在广泛流传的项目上——被部分夸大。这种影响是真实的但不是彻底的,因为规模和架构仍然占收益的很大一部分。

即使是部分污染也会夸大结果。一旦发布就饱和的基准测试失去了其诊断能力。见图 6.5 [59]。它们变得脆弱,容易被规模和数据泄漏所利用。这些数据集的可见性使得它们可用于可重复性,也使得它们容易渗透[60][61]。来自LM 污染指数的分析表明,许多著名的评估数据集被证实受到污染,而许多其他数据集看起来可疑[62]。这意味着,当定量进展报告仅基于语料库衍生的基准测试时,它们可能不如看起来那样可信。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH06_F05_Heimann.png

图 6.5 折线图(1998–2023)显示了多个序列,在 2018 年后急剧上升,朝着阅读理解、代码生成、数学问题解决和复杂推理的“人类表现=0”线前进,表明基准测试快速饱和。

研究人员现在正在设计更具挑战性和全面的测试。目标是探测推理、抽象和泛化。这催生了诸如 HELM、MMLU、BIG-Bench Hard、GSM8K、人类最后的考试和 ARC 挑战赛等基准测试[63]。这些更困难的基准测试揭示了能力悬垂问题。模型通常具有直到有人测试它们才显现的能力。但一旦经过测试,它们就不再是可靠的衡量标准,这是一类“古德哈特定律”的形式[64]。

6.3 并行性

缩放可能听起来很简单。但每一步尺寸的增加都会暴露内存、计算和通信方面的新瓶颈。虽然缩放曲线暗示了不可避免性,但工程上并非如此。

早期的缩放策略是数据并行。数据通过在每个 GPU 上复制整个网络来保持模型同步。通常,每个模型副本被喂入一批不同的数据,然后梯度通过“全归约”操作求和,以确保每个副本保持同步[65][66]。数据并行是高效且直接的,但一旦参数数量超过单个设备的内存容量,复制就变得不可行[67]。

Unlike data parallelism, which replicates the whole model on every GPU, model parallelism splits a single model across multiple devices. AlexNet demonstrated an early form of model parallelism. ImageNet was large enough to justify a larger model, so Krizhevsky, Sutskever, and Hinton split AlexNet across two GPUs, with each GPU handling half of the feature maps and cross-GPU communication limited to the third convolutional layer, where the two halves reconnect. They limited communication to specific layers to keep it inexpensive. More connections meant more communication; fewer connections meant cheaper transfers. They chose a pattern that kept communication a small fraction of the total computation while still allowing information to mix when needed. This was a crude early form of tensor sharding done by hand.

A quick note on tensors: a tensor is a container for numbers. A single number is a zero-dimensional tensor, a list of numbers is a one-dimensional tensor (that is, a vector), a grid of numbers is a two-dimensional tensor (that is, a matrix), and higher-dimensional tensors are stacks or cubes of numbers. Deep learning models store their weights, activations, and data in tensors. Sharding a tensor means splitting those numbers across devices so no single GPU has to store everything. AlexNet hand-rolled this sharding, which suggests that early scaling limits emerged first in VRAM and interconnect bandwidth. Later systems, such as GPipe (2018) and Megatron-LM (2019), generalized these ad hoc tricks into principled forms of pipeline and tensor parallelism.

6.3.1 GPipe

GPipe introduced pipeline parallelism. Instead of having every GPU carry the full model, GPipe sliced the model into stages and spread them across devices. Training batches were then split into many smaller “micro-batches” that moved through the stages in a steady stream. While one stage was handling one micro-batch, another stage was already working on the next. This overlapping schedule kept accelerators busy and increased throughput. See figure 6.6.

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH06_F06_Heimann.png

Figure 6.6 Pipeline parallelism compared to naive model parallelism. (a) A simple neural network partitioned across four accelerators, with forward passes F[0] – F[3] flowing upward and backward passes B[0] – B[3] flowing downward to compute gradients. (b) In naive model parallelism, layers are split sequentially across devices. Because each stage must wait for the previous stage to complete, much of the hardware remains idle, leading to low utilization. (c) Pipeline parallelism mitigates this inefficiency by splitting each mini-batch into smaller micro-batches. These micro-batches flow through the pipeline in a staggered fashion, keeping devices busy by processing different micro-batches simultaneously. While idle-time bubbles still appear during the pipeline “fill” and “drain” phases, overall utilization improves significantly. Gradients are accumulated across micro-batches, and updates are applied synchronously at the end of each full batch. Used with permission granted by the lead author (Yanping Huang).

GPipe solved two major challenges that earlier model-parallel approaches struggled with. First, it avoided “stale weights.” Rather than updating parameters at different times in different places, GPipe accumulated gradients from all the micro-batches and applied a single, synchronized update at the end of each full batch. Second, it tackled memory limits through activation checkpointing (i.e., recomputation). Instead of storing every intermediate activation, it recomputed selected activations during backpropagation. This trade-off of a little extra compute for a lot of saved memory, unlocked models that would otherwise be impossible to fit.

The paper “GPipe: Efficient Training of Giant Neural Networks Using Pipeline Parallelism” appears on Sutskever’s List and was the first to show researchers that scaling wasn’t just about more GPUs or more data. It could also come from rethinking how to organize the work. The results were striking.

6.3.2 Results

The authors evaluated GPipe’s performance and scalability on two architectures: a convolutional neural network (AmoebaNet) and a Transformer. The experiments focus on how much GPipe improves training speed as more accelerators are used, how it enables larger models by alleviating memory constraints, and the overhead it incurs (for example, idle time and communication overhead).

The most immediate advantage of pipeline parallelism was its reduced memory usage. Without GPipe, a single GPU with 8 GB of memory could train only a modest AmoebaNet of about 82 million parameters before running out of space. By partitioning the model across eight GPUs, GPipe stretched this limit more than 20-fold, to a 1.8-billion-parameter AmoebaNet.

The gains were even more dramatic for Transformers. On TPU hardware, a single 16 GB device can store approximately 282 million parameters. A tensor processing unit (TPU) is Google’s custom-built hardware accelerator designed to run and train artificial neural networks. With GPipe and 128 TPU partitions, the team trained a Transformer with 83.9 billion parameters across 128 layers. This is nearly 300 times the size achievable on a single device.

As mentioned firstly, the authors split the model’s parameters across multiple devices. Secondly, they used rematerialization. Together, these techniques enabled models that, at the time, were almost unimaginably large.

Throughput was the other half of the story. Pipelining allows different micro-batches to be in different parts of the network simultaneously, keeping devices busy. The authors demonstrated that as long as the number of micro-batches was at least equal to the number of partitions, idle time (or “bubbles”) could be almost eliminated. In practice, this meant that adding more accelerators yielded nearly proportional increases in training speed. For the Transformer experiments, an eight-partition pipeline achieved a 6.3× speedup over a single partition, approaching the ideal eightfold speedup. The uniformity of the Transformer layers made it easy to divide work evenly, further improving scaling efficiency.

AmoebaNet, by contrast, scaled less cleanly. Convolutional networks have layers with differing computational costs, making partitions harder to balance. On eight GPUs, the authors observed a 3.5-fold speedup rather than the ideal eightfold. Yet even here, GPipe delivered meaningful gains as long as enough micro-batches were used to keep the pipeline full. But the experiments also highlighted a downside: if only one micro-batch was used per step, there was no pipelining, and all but one accelerator remained idle.

The paper also demonstrated GPipe’s ability to achieve state-of-the-art results through its scale. The authors trained AmoebaNet-B, scaling it to 557 million parameters [68]. Partitioned into four stages and trained across four accelerators, the model reached 84.4% top-1 accuracy on ImageNet-2012. At the time, this set a new benchmark for single-model performance on ImageNet.

The team also tested transfer learning. The 557-million-parameter AmoebaNet-B, trained on ImageNet, was fine-tuned on a range of other vision datasets, including CIFAR-10 and CIFAR-100, Stanford Cars, Oxford Pets, Food-101, FGVC Aircraft, and Birdsnap. The large ImageNet-pretrained model consistently outperformed or matched the state of the art, often by comfortable margins. On CIFAR-100, for example, the error rate dropped from 10.7% to 8.7%. These findings reinforced the idea that a better ImageNet model yields better transfer results, and GPipe enabled the training of even better ImageNet models by easing size constraints [69].

Transformer 实验扩展到了多语言机器翻译。团队训练了一个单一的 Transformer 来将 102 种语言翻译成英语。数据集包括 250 亿个示例,涵盖了高资源语言和低资源语言。在 GPipe 之前,完成这项任务所需的模型规模太大,无法高效训练。借助 GPipe,研究人员训练了几个规模逐渐增大的模型。他们从一个基线 Transformer 开始,大约有 4 亿参数,约为 Transformer-big(“Attention Is All You Need”中介绍的最大模型)的两倍,然后进一步扩展。其他模型规模包括一个深度为 128 层的 Transformer,拥有 13 亿参数;一个宽度为 13 亿参数的模型,具有更大的隐藏维度但层数更少;一个 30 亿参数的模型;以及最后一个结合了深度和宽度的 60 亿参数模型。结果很明确:更大的模型在几乎每对语言上都产生了更好的翻译质量。最大的改进出现在从 4 亿参数增加到 13 亿参数时,尽管收益持续到 60 亿参数,但回报递减。

最显著的结果出现在低资源语言上。虽然高资源语言对如预期那样有所提升,但低数据语言相比双语基线看到了“巨大的质量改进”。在这些场景中,深度 13 亿参数模型优于宽度模型,表明额外的层——而不是简单地更宽的层——为更具挑战性的泛化任务提供了所需的表示深度。支持 GPipe 的 60 亿参数多语言 Transformer 在超过 100 个语言对上优于所有单独的双语模型。这表明,在足够的规模下,单个模型可以同时学习 100 多个任务,并优于针对每个任务专门设计的模型。

GPipe 不仅展示了一个巧妙的调度技巧。它促成了新的科学成果,包括最先进的 ImageNet 准确率、迁移学习的广泛改进,以及一个重写了单个网络能够实现什么的期望的多语言翻译模型。它的技术贡献直接导致了经验上的突破。教训是,并行性不仅仅是一个工程问题,而是一个科学的使能者,使社区能够提出新的问题并构建以前无法企及的模型。

6.3.3 管道化明智吗?

在 2024 年 NeurIPS 上,Ilya Sutskever 回顾管道并行时,用了一句感觉像来自克尔凯郭尔的话:“管道化明智吗?”他问道。“我们现在知道,管道化并不明智。但我们那时并没有现在这么明智……” [70][71]。十年前,Ilya 在八个 GPU 上管道化序列到序列,实现了 3.5 倍的加速,并超越了单个加速器的内存限制。当时,这感觉像是巧妙的工程。事后看来,他看到了短期的收益,但也留下了一串低效。

第一个问题是代码本身。实现管道意味着拆开干净的训练循环,并用微批次调度、跨设备通信以及前向和后向传递的编排重新组装它们。理论上听起来简单的东西很快使代码变得脆弱。即使它们工作,管道也浪费计算。在一批的“填充”和“排空”阶段,设备处于空闲状态 [72]。后续研究表明,气泡可能消耗 15% 到 30% 的训练时间,在某些情况下,超过一半的 GPU 小时被浪费在等待上 [73]。

NVIDIA 的 Megatron-LM (2019) 提供了管道并行的替代方案。Megatron 不是在设备之间垂直划分层,而是在层内进行切片 [74]。矩阵乘法在 GPU 之间被分区,产生部分结果,然后组合。这种“模型并行”避免了管道的一些气泡低效,并打开了训练数十亿参数的大规模 transformer 的大门。它还与管道并行正交,允许两种方法结合。例如,在 GPU 上进行八个管道阶段,每个阶段本身以两种方式分布,产生了有效的 16 路并行。

然而,Megatron 的张量切片仍然是针对特定类型 transformer 层的手工配方。因此,Google 的一条并行工作线推广了这一想法。Mesh-TensorFlow (2018) 允许工程师决定将哪些张量轴分片到哪些网格轴上。拆分批次产生数据并行。拆分词汇表或前馈维度产生张量并行。在专家混合模型中拆分专家维度产生专家并行。管道并行略有不同,因为它拆分计算阶段而不是张量轴,但它属于同一个更广泛的网格家族。

结果是戏剧性的。Megatron-LM 在 512 个 GPU 上训练了一个 83 亿参数的 GPT-2 风格 transformer。它实现了大约 76% 的效率和 15 petaflops 的吞吐量。浮点运算 (FLOP) 是大规模 AI 训练中的标准衡量指标。作为吞吐量指标,一个 petaflop 是 1 quadrillion FLOPs。这一成就不仅证明了数十亿参数模型的可行性,还建立了 GPT-3 将用来扩展到数千个 GPU 的模板。

但这并没有解决根本的内存问题,因为一个 500 亿参数模型的 16 位精度副本仅参数就需要 100 GB 的存储。这超过了单个 GPU 所能提供的,甚至在考虑梯度和优化器状态之前。并行性有助于分配计算,但没有减少内存冗余。在数据并行设置中,每个 GPU 仍然承载着模型的全部重量。

内存分片有所帮助。Microsoft 的 Zero Redundancy Optimizer (ZeRO) 直接解决了这个问题,在数据并行进程中消除了重复存储 [75]。而不是让每个 GPU 保存完整的参数、梯度和优化器状态集,ZeRO (2019) 将它们在设备间分区。每个 GPU 只存储一个分片,按需进行通信以重新创建完整性的幻觉。

借助 ZeRO,一个由 16 个 GPU 组成的集群原则上可以训练比以前大 16 倍的模型,因为每个 GPU 只承担一部分内存负担。Microsoft 展示了在仅 400 个 GPU 上训练 1000 亿参数的模型,达到 15 PFLOPs 的吞吐量,甚至显示出超线性扩展。换句话说,随着更多设备的加入,效率得到了提高,因为并行性得到了更好的平衡。

ZeRO 还使得无需模型并行即可训练 130 亿参数的模型,这一壮举以前被认为是不可能的。打破内存墙也使访问民主化。那些发现管道或模型并行代码令人畏惧的研究人员现在可以用更熟悉的工作流程训练大模型。不久之后,这些技术为 Turing-NLG 提供了动力,这是一个 170 亿参数的模型,是当时最大的模型,但四个月后就被 GPT-3 超越 [76]。

尽管如此,拆分层是有代价的。GPU 必须不断交换部分结果,这些通信成本不断累积。研究人员转向更智能的调度。广度优先管道并行 (2022) 重新想象了微批次流 [77]。而不是经典的单向前向、单向后向 (1F1B) 调度,它遍历模型“逐层”,在最早的阶段并行处理微批次(即“广度优先”)。这种重新排序最大化了计算和通信之间的重叠,与完全分片的数据并行自然结合。在使用小的每 GPU 批次时,它在 520 亿参数的模型上实现了比 Megatron 的调度高 43% 的吞吐量。教训是,更好的管道编排——不仅仅是蛮力——可以带来真正的效率提升。

综合来看,流水线分段、张量切片和内存分片将缩放定律转化为实际工程。GPipe 展示了如何让微批次在流水线中错峰流动;Megatron 展示了如何高效地手工切分 Transformer 层;Mesh-TensorFlow 则将分片变成了网格上的布局问题。ZeRO 消除了冗余存储,并提高了内存上限。每一项突破都扩展了模型规模和性能的可行边界。现代 AI 继承了所有这些思想。它们共同将愿景变成了万亿参数训练运行。

缩放定律本身可能很简单,但将其落地并不简单。通信必须与计算仔细重叠,以让加速器保持忙碌;集合操作需要调优到微秒级;而运行数周的作业必须经受住不可避免的硬件故障和网络抖动 [78]。缩放定律图表中看起来平滑的东西,实际上是艰苦工程的结果,这些工程让每台设备都持续获得数据并具备容错能力。

共识很明确:纯流水线并行已被降格为不得已时的最后手段。现代大规模训练依赖混合方案:用浅层流水线将超大模型分布到各设备上,而大部分繁重工作由数据和张量并行完成。流水线仍然被使用,只是因为有些模型太大,不这样做就无法容纳,工程师通常尽可能避免使用它。这正是 Sutskever 那句话所捕捉到的观点。流水线并行在其时代是聪明的,帮助实现了向巨型模型的跨越,但它留下了脆弱的代码、浪费的算力和无尽的工程开销。事后看来,它从来都不是真正明智的,但它是必要的。

6.4 舍入误差

Epoch AI 在 2024 年的一项研究估计,近期语言模型性能提升中有三分之二归因于数据和算力的扩展 [79]。虽然这似乎印证了“苦涩的教训”,但我们也必须记得问一句:“扩展什么?”尽管如此,规模化的理由已经确立。更大的模型、更多的数据、更多的算力,确实能可靠地带来更好的结果。

然而,许多人对这意味着什么有话要说,而缩放已成为 AI 领域最嘈杂的讨论之一。Gwern Branwen 和微软的研究人员将其重新解释为智能的一种假设(或火花),许多热心者在其失败时说:“这已经是最差的时候了” [80] [81][82][83]。奇点主义者说:“我们正在创造上帝” [84]。活动人士希望冻结比当今更大的系统 [85]。大部分噪音源于表现的不均衡。结果,有些人将 AI 贬低为“随机鹦鹉”,或将其拔高为准备取代人类思维的原始人 [86] [87]。有人说它只是互联网的压缩版本,尽管它有时会生成从未出现在互联网上的内容 [88][89]。

然而,规模化既没有造出上帝,也没有造出鹦鹉。规模化为机器学习提供了有史以来最接近免费午餐的东西,带来了稳定的进步,并将进步转化为工程问题。这与 Ilya 两个最深层的直觉一致:(1)务实的工程,以及(2)在规模上以更少做更多。规模化既非神圣也非琐碎,但它促成了该领域历史上最成功的时期。七十年后,AI 终于成为主流,而这一切都归功于规模化。即便如此,规模化并未产生可靠的多步推理或规划能力。这一局限为从扩展预训练转向承诺推理的系统奠定了基础。这一转向是下一章的重点。

7 转向推理

本章涵盖

  • 变分有损自编码器

  • CLEVR 和 bAbI 上的关系网络

  • QM9 上的消息传递神经网络

  • 跨基准序列推理的关系记忆核心

  • 论文与活生生的疑虑

论文

  • Variational Lossy Autoencoder (2016) Chen et al.

  • A Simple Neural Network Module for Relational Reasoning (2017) Santoro et al.

  • Neural Message Passing for Quantum Chemistry (2017) Gilmer et al.

  • Relational Recurrent Neural Networks (2018) Santoro et al.

OpenAI 没有选择扩展到拥有数万亿参数的 GPT-5,而是投资于“测试时计算”等技术,即让模型在推理期间“思考”更多 [1]。这一转向反映了整个领域更广泛的认识:仅靠扩展预训练所带来的回报正在递减,尤其是在需要推理的任务上。事实上,即使是最响亮的规模化拥护者也开始讨论其局限性。2024 年,Ilya 表示“2010 年代是规模化的时代;现在我们又回到了惊奇与发现的时代。”Sutskever 补充道:“现在,扩展正确的东西比以往任何时候都更重要” [2]。

本章不是关于某一个“解决”了推理的架构。它关乎瓶颈、对象对、图消息、记忆槽,以及最后的测试时计算。这些都是改进人工神经网络计算结构的尝试。变分有损自编码器(VLAE)追问应该将什么信息强制写入潜在编码。关系网络追问模型如何比较对象。消息传递神经网络(MPNN)追问信息应该如何沿图流动。关系记忆核心(RMC)追问记忆如何随时间交互。现代推理模型继承了同样的主题:智能的提升不仅在于模型变得更大,还在于计算被组织得使比较、约束检查和抽象变得更容易。

7.1 变分有损自编码器

序列到序列(seq2seq)模型使用编码器-解码器架构进行机器翻译(第 5 章)。回想一下,编码器将输入映射为潜在表示,解码器用它生成翻译后的句子。自编码器保持相同的架构,但改变了训练目标。它不翻译文本,而是学习重建自己的输入。编码器将输入数据映射为低维表示,称为潜在编码。这个潜在编码可以是图像的向量表示,编码了颜色和形状,也可以是文本的固定长度句子嵌入。解码器使用该潜在编码重建原始输入。见图 7.1。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH07_F01_Heimann.png

图 7.1 自编码器由编码器和解码器组成,编码器将消息映射为编码,解码器从编码重建消息。

由于输入数据经过低维瓶颈,模型无法记住独特的细节。相反,它必须保留准确重建输入所需的特征,通过最小化重建目标 https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/eq-chapter-7-17-1.png,其中 x 是原始输入,https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/eq-chapter-7-17-2.png 是解码器产生的重建。通过缩小两者之间的差距,模型学习到保留数据基本结构的潜在表示。以手写数字为例,它可能学习到边缘、环和笔画方向等特征,这些特征后来证明对分类等下游任务有用,尽管分类从来不是训练目标的一部分。

普通自动编码器(AE)的潜在空间是聚类的而非连续的,这意味着有效的潜在表示占据的是不连通的区域。因此,在它们之间进行插值或采样并不能可靠地产生有意义的输出。这被称为流形外采样。例如,MNIST 是一个手写数字(0-9)数据集,常用于训练机器学习算法。一个训练来重建 MNIST 的模型会将输入数据划分成每个数字的聚类,但这些聚类之间的间隙是巨大的且很大程度上未知。参见图 7.2(左)。这对于解码已知示例(如手写数字)来说没问题,但当解码器必须跨过这些间隙采样时,它就缺乏指导,性能会迅速下降。AE 可以压缩输入并揭示有意义的结构,但它们在潜在空间中排列数据的方式很笨拙。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH07_F02_Heimann.png

图 7.2 左:普通自动编码器在潜在空间中产生不相交的聚类,留下显著的间隙。插值必须穿越流形外区域。右:VAE 产生连续、重叠的区域,能够实现平滑插值和可靠采样。

变分自动编码器(VAE)通过强制潜在空间中连续、重叠的区域来解决这个流形外采样问题,从而实现平滑插值和可靠采样。编码器不输出单个代码。相反,它预测代码分布上的参数(均值向量 μ 和尺度向量 σ)。在训练期间,从该分布中抽取一个潜在向量并传递给解码器 [3]。对于序列,解码器逐个标记地生成输出,基于先前生成的标记(前缀)和潜在样本进行条件。一旦潜在空间具有合适的几何结构,该模型就成为在示例之间进行采样和插值的工具。参见图 7.2(右)。

7.1.1 什么是 VLAE?

然而,当解码器过于强大时,VAE 可能无法使用其潜在代码。在 VAE 中,潜在变量是隐藏值,通常写为向量 z,由编码器从输入中推断,解码器应将其用作该输入的压缩描述。但是,当解码器有足够的容量自行对数据进行建模时,它可能忽略 z,导致潜在代码携带的信息很少或没有信息。这种现象被称为后验崩溃

VLAE 通过控制模型各部分能够表示的信息来解决这个问题。鼓励潜在代码存储全局布局和身份,包括高级信息,例如存在哪些物体、它们的粗略形状、姿态、位置和整体排列。它不打算存储每个局部纹理、边缘或像素级细节。这些细节由图像解码器处理,例如 PixelCNN。VLAE 由 Peter (Xi) Chen、Ilya Sutskever 和 OpenAI 的同事于 2016 年提出,并在 Sutskever 的列表 [4] 中。

VLAE 对潜在代码使用自回归先验。先验是在生成数据之前从中采样潜在变量的分布。但作者没有使用简单的因子化高斯先验(假设所有潜在维度独立),而是引入了一种自回归先验,一次对分布的一个分量进行建模,允许后面的分量依赖于前面的分量。作者将这个过程描述为“信息的显式放置”。实际上,VLAE 使潜在代码负责图像的全局语义结构(防止后验崩溃),而 PixelCNN 风格的解码器则填充合理的局部细节。

7.1.2 结果

VLAE 的表现与当时最强的 VAE 相当或更好,并在 MNIST、Omniglot 和 Caltech-101 Silhouettes 等基准上接近领先的自回归模型的准确率,同时在 CIFAR-10 上保持了坚实的性能。在 MNIST 基准上,VLAE 实现了 79.03 nats 的负对数似然,比以前最好的 VAE 结果好约 0.27 nats。负对数似然(NLL)是对数据“惊讶”程度的惩罚。如果模型对实际发生的事件赋予高概率,惩罚就小;如果赋予低概率,惩罚就大。Nat 是使用自然对数计算该惩罚时的单位。例如,如果模型对正确结果赋予概率 0.5,惩罚为 -log 0.5 = 0.69 nats。如果赋予概率 0.1,惩罚为 -log 0.1 = 2.30 nats。因此,较低的 NLL 表明模型对数据的预测更好。79.03 nats 的分数意味着模型的预测比其前驱对数据的“惊讶”程度略小。尽管很小,但这是一个有意义的改进。

VLAE 在 Omniglot 上获得了 90.98 nats 的分数,Omniglot 是一个由数十种字母表中超过 1,600 个字符组成的手写语料库。它在该数据集上击败了所有先前模型。经过微调,分数略有提升至 89.83。Caltech-101 Silhouettes 是 Caltech-101 物体数据集的仅形状版本;它强调全局结构而非纹理。在此之上,VLAE 实现了 77.36 nats,远好于先前最好的 88.5 nats。在 CIFAR-10 上,一个由十个日常物体类别组成的彩色图像基准,VLAE 接近了领先的全自回归基线(PixelCNN++),且每位维度仅差几个比特。这证实了 VLAE 尽管有潜在约束,但并未牺牲太多生成性能。

能够保持可用的潜在表示而不牺牲性能或质量,这一点很重要,因为 VLAE 是有损的。它们故意在潜在代码中仅存储基本要素,让解码器恢复局部细节。在 MNIST 上,潜在代码携带的平均信息明显低于具有无约束解码器的可比 VAE。此外,来自真实图像的重建在不复制每个像素的情况下保留了身份和形状,确保了全局结构得以保留,并且合理地填充了精细纹理。样本和重建整体上不那么模糊、更连贯,缩小了与竞争架构和纯自回归模型的差距 [5]。传统的 VAE 缺少这一组件,导致输出模糊。参见图 7.3。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH07_F03_Heimann.png

图 7.3 原始 MNIST 图像(左)和来自 VLAE 有损代码的“解压”版本(右)。经主要作者(Peter (Xi) Chen)许可使用。

7.1.3 自回归先验

VLAE 从两个角度解决了后验崩溃问题。首先,它通过赋予解码器一个小的接受域来削弱解码器,迫使它只关注局部细节。其次,作者通过使用自回归流来增强先验,该流迭代地变换高斯噪声,使得每个潜在变量依赖于其前驱。结果是一种适应于编码后潜在变量真实分布的先验,而不是施加定义因子化高斯的严格独立假设。作者通过比较三种设置从经验上证明了这一点:(1) 无先验的小接受域(RF)PixelCNN;(2) 具有高斯先验的小 RF PixelCNN;以及 (3) 具有自回归先验的小 RF PixelCNN。参见表 7.1。

表 7.1 相同小接受域 PixelCNN 配合不同先验

| 模型 | NLL (nats) |

| --- | --- |

| PixelCNN 解码器 | 87.55 |

| PixelCNN 解码器 + 高斯先验 | 79.48 |

| PixelCNN 解码器 + 自回归流先验 | 78.94 |

即使是一个简单的高斯先验,相对于无条件解码器,也能显著提高性能。NLL 从 87.55 降至 79.48。这表明解码器在隐编码上操作。用自回归先验替代高斯先验进一步提高了性能,更重要的是,这意味着传输的隐变量包含更多信息 [6]。VLAE 澄清了新兴的观点,即 VAE 中的信息流受先验和解码器的共同支配,并通过干净的消融实验证明了这一点。

AEVAEVLAE 的讨论可能显得有些生硬。到目前为止,我们讨论了如何防止离流形采样、如何避免解码器用自回归先验压倒隐编码,以及如何将负对数似然的几个 nats 的改进视为真正的进展。这是技术性的,可能很难看出它到底是什么。尽管如此,它表明架构可以决定记住哪些信息、丢弃哪些信息,以及在模型内部使哪些信息可重用。此外,VLAE 表明架构可以决定这些信息的存储位置。现代神经网络系统表明,信息可以存在于权重、内存、草稿纸、图或测试时搜索中。

7.2 关系推理

到 2017 年,深度学习在识别图像和文本模式方面表现出色,但当答案依赖于实体之间的关系时,它就遇到了困难。早期解决这个问题的尝试分为两个截然不同的阵营。符号系统使用规则表示实体和关系,使推理明确,但它们脆弱且手工制作。人工神经网络(ANN)从数据中学习,具有灵活性,但当关系结构稀疏且组合时,它们往往无法识别 [7]。一个 ANN 可以识别红色立方体或绿色球体,但当被问及哪个更大时却失败了。扩大数据和参数规模提高了识别能力,但没有提高关系理解能力。

Adam Santoro 和 Google DeepMind 的同事们的“一种用于关系推理的简单神经网络模块”表明,关系网络(RN)可以解决之前架构无法解决的任务 [8]。RN 计算图像中每对对象或故事中每对实体之间的交互,并聚合它们以回答关于这些关系的查询。参见图 7.4。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH07_F04_Heimann.png

图 7.4 来自 CLEVR 数据集的图像,展示了四个对象以及配对的问题:一个是非关系的(关于对象的属性),一个是关系的(关于对象之间的关系)。注意:为便于黑白打印,原始图像中添加了字母。*经主要作者(Adam Santoro)许可使用。

考虑这个问题:“在大球左侧的棕色金属物体左侧的圆柱体是什么尺寸?”标准的卷积神经网络(CNN;第 2 章和第 3 章)可以检测局部视觉特征,但答案取决于一系列关系。RN 形成候选对象对。一对可能为“棕色金属物体在大球左侧”提供证据。另一对可能为“圆柱体在该棕色金属物体左侧”提供证据。网络并没有显式地编写符号程序,但成对函数 g[θ] 在问题的上下文中对所有对象对进行评分。当这些成对分数相加时,相关的关系证据就会累积。最终的网络 f[φ] 将累积的证据映射到答案“小”。参见图 7.5。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH07_F05_Heimann.png

图 7.5 CLEVR 的图像与一个推理问题配对。CNN 提取对象特征,长短期记忆编码问题,RN 根据该问题比较每个对象对。结果被聚合并传递给另一个网络,该网络输出答案(这里是“小”)。注意:为便于黑白打印,原始图像中添加了字母。*经主要作者(Adam Santoro)许可使用。

7.2.1 基准评估

为了测试 RN 是否捕捉到了推理关系的能力,而不是仅仅记忆模式,作者在不同的设置下对其进行了评估,每个设置都探测了推理的一个不同方面。

CLEVR

CLEVR 是一个合成的视觉问答基准,包含 100,000 个渲染的三维场景和大约 100 万个详细问题。正如人们可能预期的那样,它旨在评估组合语言理解和基本视觉推理,特别是模型在对象属性、关系和比较方面的推理能力 [9]。在 CLEVR 上,RN 达到了 95.5% 的准确率,优于当时最好的基于 CNN + 长短期记忆(LSTM)的基线(约 68.5%)和人类表现(约 92.6%)。最显著的提升出现在比较属性、比较数字和计数任务中,这些任务最直接地依赖于强大的关系推理。参见表 7.2。

表 7.2 CLEVR 测试准确率按问题类型

| Model | Overall | Count | Exist | Compare numbers | Query attribute | Compare attribute |

| --- | --- | --- | --- | --- | --- | --- |

| Human | 92.6 | 86.7 | 96.6 | 86.5 | 95.0 | 96.0 |

| Q-type baseline | 41.8 | 34.6 | 41.7 | 43.7 | 52.2 | 64.4 |

| LSTM | 46.8 | 50.2 | 61.1 | 65.2 | 71.1 | 82.7 |

| CNN+LSTM | 52.3 | 51.0 | 69.8 | 67.1 | 73.5 | 77.4 |

| CNN+LSTM+SA | 68.5 | 36.0 | 36.8 | 49.3 | 85.3 | 82.6 |

| CNN+LSTM+SA* | 76.6 | 51.3 | 51.8 | 53.0 | 52.3 | 75.4 |

| CNN+LSTM+RN | 95.5 | 90.1 | 97.8 | 93.6 | 97.9 | 97.1 |

状态描述

作者还用状态描述替换了 CLEVR 中的图像。状态描述是结构化的符号表,其中每行明确列出一个对象的属性,包括其位置(xyz)、颜色(rgb)、形状、材质和尺寸。使用这些符号输入,RN 达到了 96.4% 的准确率(未在表 7.2 中显示)。这证实了关系模块可以对场景的抽象、分解表示进行推理,而不仅仅是原始像素。

bAbI

bAbI 是一个基于文本的问答数据集 [10]。有 20 个任务,每个任务与特定类型的推理相关,例如演绎、归纳或计数。每个问题都有一组支持事实。例如,“Sandra 捡起了足球”和“Sandra 去了办公室”这两个事实支持问题“足球在哪里?”答案是“办公室”。如果模型的表现超过 95%,则该任务成功。RN 通过了 20 个 bAbI 任务中的 18 个,包括具有挑战性的归纳任务,该任务之前曾难倒早期的增强记忆模型,例如 DeepMind 的神经图灵机(第 5 章)。剩下的两个任务仅差几分。

Sort-of-CLEVR 和物理任务

Sort-of-CLEVR 将 CLEVR 简化为二维彩色形状,以便作者可以将关系问题与非关系问题隔离开来。普通的、现成的 CNN 可以回答基本的非关系问题,但在关系问题上停滞在 63% 左右。添加 RN 缩小了差距,在两个任务上的准确率都提高到 94% 以上。这一结果表明,没有专用模块的标准网络缺乏推理关系的固有能力。

作者还开发了一个彩色球体在桌面上移动的数据集。一些球体独立移动,并自由地与其他球体和障碍墙碰撞。其他随机选择的球体对由隐形弹簧或刚性约束连接。关系网络(RN)以 93%的准确率推断出弹跳球体之间的隐藏连接,并以 95%的准确率识别出连通分量,而大小匹配的网络则表现随机。

总之,这些不同的设置表明关系网络(RN)并不局限于任何输入类型。它提供了一个通用的关系运算符,可以集成到标准神经管道中,并立即揭示网络是理解了关系还是仅仅理解了模式。关系网络(RN)的成功还表明,当“正确”的架构到位时,网络可以推断抽象关系的成对比较[11]。它与其他几种同时期推动结构化推理的方法并存[12][13]。

7.3 神经消息传递用于量子化学

现代化学和材料科学在极端的组合约束下运行。可能分子的空间是巨大的,据估计化学空间中有 10⁶⁰种不同的分子[14][15]。这远远多于实验上可能枚举的数量。因此,化学家依赖于使用基于计算机的方法的虚拟筛选,将搜索缩小到一组可管理的、有前途的化合物以供后续研究。这种方法在广泛使用的量子化学基准中是明确的,这些基准需要计算探索,因为否则对化合物空间的无偏探索是不可行的[16]。传统上,这意味着基于物理的模拟。但到 2017 年,它已经意味着机器学习(ML)。

这种转变由两种力量驱动。首先,大型、精心策划的分子数据集的供应不断增加。其次,机器学习已经变得足够准确,可以近似曾经需要昂贵模拟或实验室工作的性质。例如,机器学习可以预测分子是否对人类有毒,是否与特定蛋白质结合(药物发现的核心问题),或估计用于材料设计的量子性质。价值主张不是完美的准确性,而是具有更快性能的良好准确性,允许从业者探索和过滤比暴力方法更多的化学空间。

在此背景下,Google Brain 和 DeepMind 的 Justin Gilmer 及其同事引入了一种直接从分子数据学习的通用方法。他们的方法(消息传递神经网络,MPNNs)与化学中的特征工程形成对比,后者依赖于手工设计的分子描述符。分子描述符是化学中的 SIFT/HOG(第 2 章)。它们是领域专家的产物,直到表示学习使它们过时。这篇题为“用于量子化学的神经消息传递”的论文在 Sutskever 的列表上[17]。

7.3.1 准确性作为瓶颈

消息传递神经网络的一个主要动机是量子化学的高昂成本。量子力学提供了理论上预测分子行为的方程。但这些方程如此难以解决,以至于研究者不直接为真实分子解决它们。密度泛函理论(DFT)为化学家提供了一个捷径。

密度泛函理论(DFT)是一种用于近似分子许多量子性质的数值方法。与该方法相关的一位发明者因这项工作获得了诺贝尔化学奖,并且 DFT 是史上被引用次数最多的 10 篇论文中的两篇的负责者[18][19]。它被广泛使用是因为它在速度和准确性之间取得了良好的平衡,但关键点是它对于大规模搜索仍然太慢。正如 Gilmer 及其同事所指出的,对一个小有机分子的单次 DFT 计算可能需要在单个 CPU 核心上大约一小时,而仅仅多几个原子的分子可能需要许多小时,因为 DFT 随电子数的三次方缩放。

当任务不是评估单个分子而是探索化学空间时,这很快变得 prohibitively 昂贵。在药物发现或材料设计中,对数十万或数百万个候选分子的暴力筛选是常见的,但如果直接使用 DFT,它将需要多年的计算时间。我们寻求解决的科学问题是组合性和探索性的,而我们依赖的工具却是缓慢且串行的。

7.3.2 消息传递神经网络

分子不是图像或序列。虽然卷积神经网络(CNNs)在网格上操作,如图像,而循环神经网络(RNNs)在序列上操作,如文本,但分子更自然地被表示为图,其中原子是节点,边是携带空间距离信息的键,并且三维方向被编码在成对关系中。消息传递神经网络(MPNNs)提供了一个用于图数据监督学习的框架,它扩展了早期的图神经网络模型,如门控图神经网络(GGNN),它作为基线[20]。

在消息传递神经网络中,图中的每个节点维护一个隐藏状态向量,该向量通过交换消息被迭代更新。将每个原子视为与其邻居共享笔记。在消息传递阶段,每个原子向其邻居发送一个学习到的消息,并根据接收到的消息更新其隐藏状态。经过许多轮后,每个原子的状态总结了其局部邻域。在读出阶段,模型通过池化操作将所有原子状态聚合到一个单一向量中,以预测分子级别的性质(例如,能量、偶极矩、能隙)。目标是让这些节点表示捕捉整个图的结构和特征,从而实现准确的图级别预测。一个有用的心理模型是每个原子向其邻居传递信息。经过连续迭代,分子陷入对其自身的学习总结。

图网络中的一个挑战是在节点之间高效传播信息,特别是当图很大或稀疏连接时。如果重要信息驻留在远离另一个节点的节点上(在图距离上),可能需要许多轮消息传递才能让信息到达那里。实际上,这是一个通信问题。作者探索了虚拟边和主节点来加速这个过程并提高其保真度。“虚拟”边的想法是在每对原本不连接的节点之间添加一种特殊类型的边。实际上,你通过添加携带消息的虚拟连接临时使图完全连接,这些虚拟连接具有不同的标签或权重,以便模型知道这些不是真正的物理边而是长程捷径。

好处是信息可以在更少的步骤中传播长距离。模型可以学习使用这些虚拟边或根据需要忽略它们。即使分子中的两个原子没有直接键合,网络仍然可以通过一个专门的虚拟通道在它们之间传输消息,实现全局通信。这类似于跳过连接(第 3 章),但虚拟边不是跨深度的捷径,而是跨节点表示的捷径。将残差连接视为在楼层(层)之间添加电梯,而虚拟边则是在遥远的房间(节点)之间添加新的走廊。

另一种促进长程交互的方法是引入一个额外的人工节点,称为“主”节点。你可以将其视为一个枢纽,从所有节点收集信息然后广播回去。在消息传递神经网络中,主节点作为一个全局暂存空间,捕捉整个图的高级聚合信息,并在下一步将其提供给所有节点。在这方面,主节点方法类似于神经图灵机。

经过几轮消息传递后,MPNN 必须产生一个输出。在许多应用中(例如量子化学),期望的输出是整个图的属性(例如分子的能量或稳定性),而不仅仅是一个节点。因此,我们需要一个读出函数,将所有节点的最终状态组合成一个单一的、固定大小的图级别表示。作者实验了两种类型的读出函数。

最简单的方法,继承自 GGNN 基线,是将所有节点的最终隐藏向量求和(或求平均),然后对得到的向量应用一个前馈网络。求和很方便,因为它对节点顺序不变。也就是说,节点可以按任意顺序列出,但总和保持不变,从而保留了图的同一性。但求和可能会丢失信息,不同的分布可能产生相同的总和。GGNN 的读出可能通过在求和之前或之后应用非线性变换来缓解这个问题(原始论文为此指定了一个方程),但它仍然产生相对粗糙的聚合。

为了捕捉节点状态集合更复杂的属性,作者转向了《Order Matters》论文(第 5 章)中引入的 Read-Process-and-Write (RPW) 模型。回想一下,RPW 是 seq2seq 模型(第 5 章)的扩展,它使用带有注意力机制的循环神经网络来迭代地关注不同的节点,构建无序集合的表示,这解释了为什么 Gilmer 等人将该模型称为 set2sets2s。在 MPNN 的上下文中,这个集合是最终节点特征向量的集合。从理论上讲,这种读出比简单求和更具表达能力,它可以学习为重要的节点或节点特征组合分配适当的权重。Gilmer 和同事们期望,通过允许网络捕捉简单的置换不变求和可能遗漏的复杂全局图属性,该模型能产生更好的性能,他们是对的。

以乙醇作为一个玩具示例。开始时,每个原子只有局部特征,如原子类型、键类型,也许还有距离信息。经过一步消息传递后,氧原子知道与其键合的碳和氢,每个碳知道其直接邻居。经过两步后,第一个碳可以通过中间碳间接获得关于氧的信息。经过几步后,每个原子的隐藏状态成为其化学环境的学习摘要。然后读出函数将原子状态池化为分子级表示,可用于预测诸如能量、偶极矩或电子能隙等属性。该模型没有解决量子力学。相反,它已经学会了对昂贵的量子化学计算产生的答案的快速基于图的近似。

7.3.3 训练与结果

QM9 数据集提供了大约 134,000 个小分子的 DFT 计算属性。QM9 中的每个分子最多有九个重原子(例如碳、氮、氧或氟)和 13 个 DFT 计算目标。作者随机尝试了 50 种不同的超参数训练设置,并保留了表现最好的那些。所有模型都使用相同的通用配方进行训练,包括小批量、长训练时间以及逐渐降低的学习率。作者拆分了 QM9 数据集,预留 10,000 个分子用于验证以确定何时停止训练以及保留哪个模型版本,另外 10,000 个用于最终测试。其余所有数据都用于训练。

为了实现强大的性能,作者系统地评估了 MPNN 变体和输入表示。最重要的两个选择是包含键类型加上空间距离,以及将氢原子视为分子图中的显式节点。作者还发现,每个模型训练一个属性比多任务训练效果好高达 40%。最强的单模型使用了带有显式氢的边网络消息函数。通过集成(平均)验证误差最低的五个模型的预测,测试准确率进一步提高。表现最佳的单模型(“enn-s2s”)及其五模型集成(“enn -s2s-ens5”)在所有 13 个目标上创造了新的最佳结果 [21]。作者在 11 个目标上达到了化学精度,优于五个手工设计的描述符流水线和两个先前的图神经网络。参见表 7.3。化学精度是指每个目标的平均绝对误差低于化学标准阈值时达到的。最引人注目的是,作者强调神经消息传递可以在毫秒级而不是小时级完成推理。

表 7.3 跨越 13 个分子目标的 QM9 基准比较。行列出预测属性:偶极矩 (mu)、极化率 (alpha)、HOMO、LUMO、能隙、电子空间范围 (R2)、零点振动能 (ZPVE)、原子化能目标 (U[0])、U、H、G、热容 (Cv) 和最高振动频率 (Omega)。列比较了手工设计的描述符方法、先前的基于图的基线以及论文的最佳消息传递模型。每个单元格报告的误差与目标的化学精度阈值的比值,因此低于 1.0 的值表示化学精度。带有显式氢的边网络(“enn”)+ set2set(“s2s”)模型(“enn-s2s”)是所有目标中最佳的单模型,而五模型集成(“enn -s2s-ens5”)进一步提高了性能。

| 目标 | BAML | BOB | CM | ECFP4 | HDAD | GC | GG-NN | DTNN | enn-s2s | enn-s2s-ens5 |

| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |

| mu | 4.34 | 4.23 | 4.49 | 4.82 | 3.34 | 0.70 | 1.22 | - | 0.30 | 0.20 |

| alpha | 3.01 | 2.98 | 4.33 | 34.54 | 1.75 | 2.27 | 1.55 | - | 0.92 | 0.68 |

| HOMO | 2.20 | 2.20 | 3.09 | 2.89 | 1.54 | 1.18 | 1.17 | - | 0.99 | 0.74 |

| LUMO | 2.76 | 2.74 | 4.26 | 3.10 | 1.96 | 1.10 | 1.08 | - | 0.87 | 0.65 |

| gap | 3.28 | 3.41 | 5.32 | 3.86 | 2.49 | 1.78 | 1.70 | - | 1.60 | 1.23 |

| R2 | 3.25 | 0.80 | 2.83 | 90.68 | 1.35 | 4.73 | 3.99 | - | 0.15 | 0.14 |

| ZPVE | 3.31 | 3.40 | 4.80 | 241.58 | 1.91 | 9.75 | 2.52 | - | 1.27 | 1.10 |

| U0 | 1.21 | 1.43 | 2.98 | 85.01 | 0.58 | 3.02 | 0.83 | - | 0.45 | 0.33 |

| U | 1.22 | 1.44 | 2.99 | 85.59 | 0.59 | 3.16 | 0.86 | - | 0.45 | 0.34 |

| H | 1.22 | 1.44 | 2.99 | 86.21 | 0.59 | 3.19 | 0.81 | - | 0.39 | 0.30 |

| G | 1.20 | 1.42 | 2.97 | 78.36 | 0.59 | 2.95 | 0.78 | 0.84 ^() | 0.44 | 0.34 |

| Cv | 1.64 | 1.83 | 2.36 | 30.29 | 0.88 | 1.45 | 1.19 | - | 0.80 | 0.62 |

| Omega | 0.27 | 0.35 | 1.32 | 1.47 | 0.34 | 0.32 | 0.53 | - | 0.19 | 0.15 |

| Average | 2.17 | 2.08 | 3.37 | 53.97 | 1.35 | 2.59 | 1.36 | - | 0.68 | 0.52 |

7.3.4 塔式架构

扩展图网络遇到了根本性的瓶颈。当图网络密集或其内部表示宽泛时,单个消息传递步骤可能需要大量计算,减缓训练和推理。如果每个节点使用宽隐藏状态与其他每个节点通信,成本会迅速膨胀。为了缓解这一负担,作者将每个节点的大型隐藏表示拆分为几个较小的“塔”。每个塔使用自己轻量级的参数执行消息传递步骤,产生临时更新。随后,一个小型前馈网络混合并重组塔输出,为每个节点形成单一表示。这就像几个窄图神经网络并行工作,每轮之间有一次简短的会议。

回报是效率。大部分繁重的计算发生在每个切片内,因此增加塔数量会在步骤的昂贵部分带来大致成比例的加速,而混合的开销很小。这种设计保留了图模型通常的排列不变性,同时允许信息在混合阶段跨塔流动。它还通过使用多个窄消息传递提高了效率,简短的混合比单次非常宽的传递更便宜。

在他们的 QM9 设置中,对 200 维状态使用八个塔,大致实现了 的加速,且没有明显的精度损失。作者指出,这种方法对于更大的分子(例如来自 GDB-17)尤其有益,因为计算节省会累积。该结构还充当了温和的正则化器。因为每个塔学习略微不同的视图,并且它们被周期性地混合在一起,模型的行为有点像集成,并且泛化能力略优于相同总大小的单个宽网络。

虽然化学应用是专门的,但教训是通用的。MPNN 表明,当世界是关系性和无序的时,模型应该在实体和链接上计算,而不是被强制放入有序网格或序列。分子只是一个例子,但同样的抽象出现在知识图谱、社交网络、程序分析、物理模拟、机器人和多智能体系统中。该论文的重要性不仅在于它加速了分子预测。它帮助使人工神经网络可以通过在无序世界模型上传递学习到的消息来进行推理这一观念正常化。

7.3.5 影响

使用 QM9 分子数据集,作者表明 MPNN 可以以与昂贵的密度泛函理论(DFT)计算几乎相同的精度预测分子的量子力学性质。至关重要的是,它实现这一精度的速度远快于运行量子模拟。DFT 计算可能需要 ~10³ seconds,而 MPNN 可以在 ~10^(\-2) seconds 内产生预测。该比率是 ~10⁵,即快 100,000 倍。但论文指出,MPNN 推理比 DFT 计算快约 300,000 倍,这表明实际的 DFT 计算更接近 3-4 × 10³ seconds

在实践中,这往往比精度的小幅提升更具变革性。通过高速提供高精度,MPNN 使新的工作流程成为可能,研究人员可以在极短的时间内筛选庞大的分子库并迭代实验。这种对速度以及精度的强调,预示了 AI 将如何通过实现以前不可能的快速实验来改变学术研究。

原始 MPNN 的成功促使了一波改进模型的浪潮,这些模型保留了其核心架构,但融入了额外的物理知识。SchNet (2017) 是最早在 QM9 数据集上实现化学精度的模型之一,具有更高的速度和精度 [22]。它引入了连续滤波卷积层,以更好地捕捉原子之间平滑的基于距离的相互作用,并添加了残差连接(第 3 章)以在消息传递过程中保留信息。

在此基础上,DimeNet 通过建模键角融入了角度信息 [23]。在 DimeNet 中,消息不仅沿着键传递,还在原子三元组之间传递,以考虑键角,使用球谐函数等技术编码这些角度。这些受物理启发的创新使 DimeNet 能够优于早期基于图的人工神经网络。例如,与之前的图网络相比,DimeNet 在 QM9 上的预测误差降低了约 31%。简而言之,通过注入几何和物理上下文(例如距离和角度),MPNN 的后继者在 QM9 等基准任务上实现了比原始 MPNN 更高的精度,同时保留了消息传递框架的效率优势。

由 2017 年原始 MPNN 论文普及的消息传递框架已被证明具有显著影响力。它表明可以使用相同的端到端学习方法来处理图,这种方法彻底改变了图像和文本。从那时起,纯消息传递门控图神经网络不再是所有问题的最先进水平。尽管如此,MPNN 引入的接口仍然是当今大多数领先图模型的基础。事实上,许多最新的“图 Transformer”或几何深度学习模型可以被视为 MPNN 主题的变体。它们可能用注意力或物理方程替换或增强消息函数。然而,它们仍然是关于节点通过边传递信息并以顺序不变的方式聚合信息。

7.4 关系循环神经网络

标准 RNN,例如 LSTM(第 4 章),甚至先进的增强记忆模型,包括神经图灵机(第 5 章),都擅长随时间存储信息,但它们缺乏对信息内部关系进行推理的能力。在“关系循环神经网络”中,DeepMind 的 Adam Santoro 和同事观察到,经典的基于记忆的网络在强调这些关系的任务上挣扎。好的记忆不仅仅是存储和检索;它是比较。他们引入了 关系记忆核心 (RMC),一种 RNN,允许其内部“记忆”相互作用。它没有将记忆视为单一的整体隐藏状态,而是维护多个记忆槽,保存不同的信息片段,并让它们在每个时间步相互通信。

在 RMC 中,记忆到记忆的通信是通过 Transformer 风格的多头点积注意力(第 5 章)实现的。简而言之,注意力让模型可以动态地关注其数据的不同部分。RMC 并行使用多个注意力头,以同时捕捉不同的关系。RMC 中的每个记忆槽产生一个注意力查询 Q,所有槽产生键 K 和值 V。通过点积匹配查询和键,RMC 确定哪些其他记忆槽最相关,然后读取相应的值。见图 7.6。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH07_F06_Heimann.png

图 7.6 (a) RMC 接收先前的记忆矩阵和当前输入,并应用标记为 A 的多头点积注意力 (MHDPA) 模块,使记忆槽能够相互之间以及与输入交换信息。然后,它使用一个小型前馈网络 (MLP) 细化每个槽,并通过门控写入结果,以产生该步的输出和下一个记忆状态。(b) 对于每个记忆槽和输入,模型形成 查询、键,,使多个“头”能够从不同视角查看关系。(c) 查询 之间的相似性产生归一化的注意力权重,用于计算值的加权组合。结果更新记忆矩阵,使每个槽整合来自其他槽的最相关信息。MLP 和门控然后确定下一步保留的内容。经主要作者 (Adam Santoro) 许可使用。

要理解 RMC 的运行机制,可以想象 n^(th) 最远任务。模型接收一个向量序列,然后必须回答诸如“哪个向量距离向量 M 第二远?”之类的问题。在每个时间步,新向量与之前的记忆矩阵相结合。注意力模块从记忆槽位和当前输入中形成查询、键和值。一个学会了追踪参考向量的槽位可以关注候选向量;另一个槽位则可以积累关于相对距离或排名的证据。注意力输出更新记忆槽位,而门控决定保留多少旧信息。在序列结束时,模型不仅存储了向量——它还在记忆内部反复比较了它们。

这种设计明确鼓励记忆交互和共享信息,这是关系推理的关键一步。RMC 在单个时间步内融入了这些交互,与传统 RNN 注意力不同,后者只关注之前的时间步。在注意力阶段之后,RMC 对每个记忆槽位更新后的内容应用一个小型前馈网络,并使用门控将新信息与旧信息混合。实际上,RMC 在其记忆槽位之间扩展了类似 LSTM 的主干,并加入了自注意力机制,使模型具有天生的推理记忆项之间关系的能力。结果是一种循环架构,它不仅存储和检索信息,还理解这些信息片段如何相互关联以解决复杂问题。

RMC 源于外部记忆系统。神经图灵机(NTMs)表明,具有可微分记忆的控制器可以比普通 LSTM 更好地学习算法任务,如复制、排序和联想回忆。但 NTMs 从孤立的单元读取和写入,这些单元不会相互交叉引用。RMC 保留了记忆矩阵的想法,同时通过允许槽位通过多头点积注意力并行交互来升级接口。实际上,控制器和记忆是协作的,而不是控制器独自完成所有工作。

两个实际注意事项。第一,RMC 引入了明确的容量调节,包括槽位的数量和宽度。如果槽位太少,会出现模型瓶颈。如果太多,则会浪费计算,或者模型可能过拟合。第二,槽位间注意力在实践中是稳定的,使用常见的技巧,如残差连接、层归一化和仔细的权重初始化。净效果是 RMC 提供了一条中间路径。它比 LSTM 更具关系性,比完整的 Transformer 注意力更可预测计算,特别适合流式、算法和关系工作负载,在这些工作负载中,比较是进步的通用语言。

7.4.1 实验方法和实证结果

作者在多种需要序列关系推理的挑战性任务上验证了 RMC 的效用。一个说明性的例子是 n^(th) 最远问题,这是一个合成任务,旨在引出随时间的关系推理。模型被给定一个向量序列,在最后被要求回答诸如“哪个向量是距离向量 Mn^(th) 远?”的问题。例如,“哪个物品距离物品 X 第二远?”解决这个问题并非易事,因为网络必须有效地计算参考向量(M)与其他向量之间的所有成对距离,进行排序,并识别出第 N^(th) 远的向量。

仅仅记忆序列是不够的;模型必须通过比较距离来关联物品。传统的记忆网络在这方面很困难。事实上,作者发现,标准的 LSTM 甚至可微分神经计算机(DNC)——一种升级版的神经图灵机——都无法达到远高于随机水平的准确率 [24]。在这个任务上,它们的准确率停滞在 30% 以下。

相比之下,RMC 表现出色,得益于其关系记忆槽位和注意力。它学会了理清这些距离,并在相同任务上达到了约 91% 的准确率。这种鲜明的对比凸显了在循环模型中启用显式关系推理可以解决此前这些架构无法企及的任务。即使在使用更高维向量使任务变得更难时,RMC 仍保持了强大的性能,这需要更高保真度的记忆。话虽如此,在这些更困难的设置下,极高的准确率一致性稍差。尽管如此,它在 N^(th) 最远任务上的成功有力地证明了网络当时在推理关系(即物品之间的距离),而不仅仅是存储和回忆数据。

关系记忆的好处也体现在程序评估基准中。作者在源自“学习执行”的任务上评估了 RMC,这是 Zaremba 和 Sutskever 2014 年的工作,训练循环网络读取短程序并逐个字符预测其输出 [25]。这些任务测试序列模型是否能执行简单的符号操作,如加法、跟踪、复制和反转序列。在 RMC 论文中,该模型匹配或超过了强大的基线,包括 LSTM、DNC 以及类似于循环实体网络(EntNet)的 LSTM [26]。它在更简单的任务如加法、复制和反转上实现了近乎完美的逐字符准确率,并在更难的完整程序任务上显著优于基线,尽管该任务仍远未解决。重点不在于模型完美地执行了每个程序,而是一个具有关系记忆的单一循环核心能够处理一系列符号序列任务,而无需针对特定任务的手工设计。见表 7.4。

表 7.4 程序评估和记忆任务的准确率

| 模型 | 加法 | 控制 | 程序 | 复制 | 反转 | 双倍 |

| --- | --- | --- | --- | --- | --- | --- |

| LSTM | 99.8 | 97.4 | 66.1 | 99.8 | 99.7 | 99.7 |

| EntNet | 98.4 | 98.0 | 73.4 | 91.8 | 100.0| 62.3 |

| DNC | 99.4 | 83.8 | 69.5 | 100.0| 100.0| 100.0|

| RMC | 99.9 | 99.6 | 79.0 | 100.0| 100.0| 99.8 |

只有一个子任务(“双重记忆”)中,基线模型匹配或超过了 RMC,但两个模型本质上都解决了该任务。值得注意的是,RMC 并未依赖教师在训练期间提供真实标签,而是以纯粹的顺序自回归方式进行训练,作者认为这可能有助于在这些程序执行任务上的泛化。结论是,即使在涉及逻辑指令的场景中,向记忆核心注入关系推理也能带来相当或更好的性能,因为模型可以更轻松地跟踪变量、条件和顺序状态之间的关系。

在强化学习中,RMC 也带来了改进。作者们实验了一个部分可观测版本的经典游戏 Mini-Pacman,以测试 RMC 随时间记忆和整合信息的能力。Mini-Pacman 是 20 世纪 80 年代街机游戏 Pac-Man 的简化版,其中智能体在迷宫中导航,收集豆子获得分数,并避开幽灵,如果幽灵碰到智能体则游戏结束。该设置提供了一个紧凑的世界,包含奖励、惩罚和移动的对手,使其成为研究学习和记忆的理想环境。在 Mini-Pacman 中,智能体具有有限的视野(一个视口),必须依赖记忆来回忆豆子、墙壁或幽灵的位置,特别是当它们移出视线之后。基于 LSTM 的智能体可以记住一些信息,但基于 RMC 的智能体也可以推断关系。例如,它可以对移动的幽灵与最近看到的豆子之间的空间关系进行建模。在实验中,RMC 智能体获得了比基于 LSTM 的智能体更高的分数,在有限视野设置下得分 677 对 550,即高出 127 分。

当被允许观察整个迷宫时,RMC 的优势甚至更大。事实上,它几乎将 LSTM 智能体的分数翻了一番(1159 对 598)。这表明 RMC 的关系记忆对于理解游戏布局和随时间发生的事件至关重要,并且比标准循环记忆更有效地拼凑信息,例如 Pac-Man 上次看到幽灵的位置以及它现在可能在哪里。虽然 Mini-Pacman 是一个简化的环境(5 × 5 视口),但这些结果暗示关系循环网络可以在复杂的部分可观测世界中提供好处,在这些世界中,理解过去事件之间的关系是做出良好决策的关键。

最后,RMC 在标准语言模型基准测试上进行了评估,包括 WikiText-103(一个大型维基百科语料库)、Project Gutenberg 和 GigaWord。语言建模是预测序列中下一个词的任务。性能以困惑度报告,它是负对数似然(NLL)的重新缩放版本。与 NLL 一样,困惑度越低,模型对下一个标记的“惊讶”程度越小,这意味着它为正确的词分配了更高的概率。

表 7.5 WikiText-103、Project Gutenberg 和 GigaWord 的验证和测试困惑度

| 模型 | WikiText-103 验证集 | WikiText-103 测试集 | Gutenberg 验证集 | Gutenberg 测试集 | GigaWord 测试集 |

| --- | --- | --- | --- | --- | --- |

| LSTM ²⁵ | – | 48.7 | – | – | – |

| Temporal CNN ²⁶ | – | 45.2 | – | – | – |

| Gated CNN ²⁷ | – | 37.2 | – | – | – |

| LSTM ²⁸ | 34.1 | 34.3 | 41.8 | 45.5 | 43.7 |

| Quasi-RNN ²⁹ | 32 | 33 | – | – | – |

| RMC | 30.8 | 31.6 | 39.2 | 42.0 | 38.3 |

[25] Edouard Grave, Armand Joulin, and Nicolas Usunier, "Improving neural language models with a continuous cache," arXiv preprint, arXiv:1612.04426, 2016

[26] S. Bai, J. Z. Kolter, and V. Koltun, “Convolutional sequence modeling revisited,” OpenReview (ICLR Workshop), 2018. openreview.net/forum?id=rk8wKk-R-

[27] Y. N. Dauphin, A. Fan, M. Auli, and D. Grangier, “Language modeling with gated convolutional networks,” arXiv preprint, arXiv:1612.08083, 2016. arxiv.org/abs/1612.08083

[28] J. W. Rae, C. Dyer, P. Dayan, and T. P. Lillicrap, “Fast parametric learning with activation memorization,” arXiv preprint, arXiv:1803.10049, 2018. http://arxiv.org/abs/1803.10049.

[29] S. Merity, N. S. Keskar, J. Bradbury, and R. Socher, “Scalable language modeling: WikiText-103 on a single GPU in 12 hours,” 2018, doi: 10.1002/j.2334-1234.2018.12159.x. mlsys.org/Conferences/doc/2018/50.pdf

RMC 在这些数据集上取得了最先进的结果,在困惑度方面优于以前的基于 LSTM 和基于卷积的模型。例如,在 WikiText-103 上,RMC 获得了约 31.6 的测试困惑度,而强大的 LSTM 基线为 34.3。尽管绝对值很小(困惑度下降 1.4-5.4 分),但相对于之前最佳结果,RMC 将困惑度降低了约 5%到 12%。从角度来看,困惑度降低 5%到 12%意味着模型在预测下一个词方面更好,这在语言建模中是难得的进步。这种改进在不同大小和风格的数据集上是一致的。见表 7.5。

作者指出,这些收益主要来自对频繁词的更好建模。RMC 似乎特别擅长捕捉文本中的短期关系,这些关系有助于预测上下文中的常见词。有趣的是,RMC 使用相对较少的记忆槽实现了这些结果。例如,WikiText-103 仅使用一个记忆槽,有效地将 RMC 变成了单槽自注意力 LSTM。然而,即使只有一个槽,多头注意力机制也可以关注最近上下文中的不同位置,其功能就像 Transformer 一样。RMC 在评估期间使用较短的上下文窗口也表现良好。它不需要像 LSTM 那样多的回溯来保持低困惑度,这表明它强调了文本中最相关的最近关系。这一特征与 RMC 具有强关系归纳偏置的观点一致:它不会不加区分地吸收长历史,而是关注最近过去中的显著联系。

《关系循环神经网络》表明,添加结构化的记忆交互可以提高模型的推理能力。通过明确允许记忆相互关联,RMC 解决了一个使传统模型困惑的关系任务,在算法程序执行上匹配或超过了最先进的模型,在游戏环境中提升了智能体的性能,并在语言建模中创造了新的高分。这些收益源于同样的直觉:许多问题需要理解信息片段如何连接,而不仅仅是孤立地存储它们。值得注意的是,这些改进并不是简单地通过扩大 LSTM 的规模得到的。

7.4.2 历史背景

《关系循环神经网络》是 Sutskever 列表上引用最少的论文之一。部分原因在于时机:RMC 于 2018 年中期发布,恰好当时领域正在从循环架构转向纯注意力架构。Transformer 的势头势不可挡。在几个月内,BERT 和 GPT-2 将证明无监督预训练和规模可以掩盖架构上的细微差别。在此背景下,RMC 的贡献看起来像是向复杂性的倒退。

RMC 的引用量不大,反映了研究格局变化之快。Transformer-XL(第 5 章)在 transformer 片段之间引入了循环链接,并很快在相同的语言基准测试上超越了 RMC。通用 Transformer(第 5 章)在 RMC 发布仅一个月后发布,为在自注意力中添加循环同时保持并行性提出了更有力的论据。两者都比 RMC 扩展得更好。社区奖励了那些能够在数十亿标记上进行训练且架构摩擦最小的方法,而 RMC 的顺序计算使其相对缺乏吸引力。因此,随着预训练被证明可以跨任务泛化,对专用记忆模块的兴趣逐渐减弱。

RMC

虽然 RMC 没有成为主导架构,但它对内存做出了一个有用的赌注:它不应该被动。存储的信息应该在模型行动之前进行交互。Transformers 在更大的规模上做出了类似的赌注,用序列中的 token-to-token 注意力取代了循环记忆槽。从这个意义上说,RMC 并不是一个失败的支线任务。与 NTMs 一起,它探索了模型如何随时间存储和操纵结构化信息。RMC 的纳入弥合了循环模型的时代与注意力的现代主导地位,说明了关于记忆和推理的想法是如何演变而不是消失的。

7.5 推理模型

今天,语言模型(LMs)可以处理形式逻辑问题和谜题,并取得了一些成功。例如,GPT-4 可以比以前的模型更有效地处理复杂的三段论和演绎论证 [27]。语言模型在许多常识基准测试上也取得了进展,包括 HellaSwag,它需要为日常情况选择一个合理的延续。GPT-4 在 10 次射击评估中达到了 95.3% 的准确率,远高于以前的模型(GPT-3.5 约为 85%)[28]。

推理也通过代词消歧进行测试。例如,考虑这对句子:

  • 市政委员会成员拒绝给示威者发放许可证,因为他们害怕暴力。

  • 市政委员会成员拒绝给示威者发放许可证,因为他们倡导暴力。

在第一个句子中,代词“他们”自然指的是市政委员会成员。在第二个中,它指的是示威者。两个句子之间的唯一区别是第一个有“害怕”,第二个有“倡导” [29]。这种代词消歧需要理解直观上下文和可能的结果。在 WinoGrande 上,GPT-4 达到了 87.5%(5 次射击),这很强,但仍低于人类表现(约 94%)。尽管如此,这表明 GPT-4 可以推断句子中的指代(例如,“他”或“她”在故事中指的是谁)。

GSM8K 提供了人工编写的、逐步的数学问题解决方案,使模型能够学习“展示他们的工作”。使用少样本链式思维推理,GPT-4 正确回答了大约 92% 的问题,这是从 GPT-3.5 的约 57% 的巨大跳跃,甚至超过了微调的专家模型 [30]。例如,GPT-4 可以解决多步算术应用题,如“如果一个农场有 23 头牛和 17 只鸡,总共有多少条腿?”通过逐步解决,而较小的模型往往做错这类问题。

2022 年,谷歌的 Minerva 被明确训练用于定量推理,并在 MATH 基准测试上达到了约 50% 的准确率,该基准测试由困难的高中奥林匹克和竞赛数学问题组成 [31]。到 2025 年,谷歌和 OpenAI 都宣布,实验性推理模型在类似人类的条件下,在 2025 年国际数学奥林匹克问题上达到了金牌级别的表现,包括两个 4.5 小时的会议,没有工具或互联网,以及自然语言证明 [32]。

当今最好的模型可以在一系列基准测试中胜任推理,有时在受控条件下能与专家表现相媲美。但他们对真正抽象的、分布外推理的掌握仍然是有条件的。在少样本学习、链式思维提示和测试时计算等支架下,它更强,但当规则改变时,它仍然脆弱。

7.5.1 分布脆弱性

提示语言模型很重要。一个精心制作的提示可以在不修改模型本身的情况下,将模型性能提高大约 5% 到 15% [33]。但语言模型也受到它们在训练期间看到的模式的频率和多样性的影响。常见的模式很容易;罕见的模式很脆弱。这创造了一种分布引力,其中模型的能力偏向于它经常遇到的内容。给一个熟悉的谜题添加扰动,解决方案可能会突然崩溃。“杀手提示”可以改变几率,但它不能创造新能力。相反,它帮助模型揭示它已经知道的内容。

这可能很模糊,所以让我们考虑一个例子。狼、羊和卷心菜问题是一个流行的谜题,在线被引用了很多次。它甚至有一个专门的维基百科页面,由于其高质量文本,在训练数据中被过采样 [34]。这个谜题涉及一个农民必须带着狼、羊和卷心菜过河,但船一次只能载一个。挑战是将它们全部运过河,而不留下它们无人看管,这样狼就不能吃羊,羊就不能吃卷心菜。要解决这个谜题,你需要使用任务调度、创造性思考并应用推理。

这个谜题有一个版本,其中羊可以吃卷心菜,狼可以吃卷心菜,而狼不会吃羊 [35]。这个变体对像 ChatGPT 这样的语言模型构成了挑战。模型想把羊带过河并留在另一边,尽管狼会吃卷心菜。在这种设置下,ChatGPT 没有从头重新计算约束,而是表现得像一个被拉向熟悉解决方案模板的系统。因此,它往往对这个具有新约束的谜题变体视而不见。它失败是因为这个变体在训练数据中代表性不足。这个限制突出了适应新信息的挑战,并可能阻碍语言模型在训练数据中未充分表示的上下文中的规划和推理能力。

当一个谜题很常见时,模型通常会反复看到其规范解决方案。这使得正确的答案很容易作为模式检索出来。但检索与重新计算不是一回事。当约束被扰动时,模型的行为往往揭示出它正在寻找一个熟悉的模板,而不是从第一原理推理。人类通常将这种扰动视为正常情况。

传教士和食人者谜题要求解题者协调搜索和反事实推理。在标准表述中,三个传教士(m)和三个食人者(c)必须乘坐一艘两人的船(b)过河。安全约束很简单:如果有任何传教士在场,他们不能被食人者数量超过;否则,食人者会吃掉传教士。所以,你不能贪婪地让人过河 [36]。过河问题在人工智能中相当常见。

具有逐步推理的规范版本对大多数语言模型来说很容易。现在考虑同一个问题的扰动:例如,船仍然载两个人,但一个人不能划船。这是一个微小的变化,但它改变了合法动作的集合。主要检索过河脚本的模型往往会继续产生标准序列,然后用事后解释修补它。这是因为计划周围的文本比计划本身更容易适应。结果是一个在修辞上一致但在逻辑上不一致的语言模型。

解决一个扰动实例需要一种非单调的方法,当新约束到达时更新默认策略 [37]。人类自然地这样做。我们对这类谜题使用标准脚本或内部模型,并将其视为临时的,如果约束阻止它,则重新计算它。相比之下,纯语言模型表现得好像默认脚本更接近单调真理。

7.5.2 逆转诅咒

这些渡河示例展示了一种脆弱性。一个更微妙的诊断是逆转诅咒,即模型可能以一个方向编码“事实”,却无法利用对应的逆关系。《顺序重要》(第 5 章)讨论了序列模型如何不将事实视为无序命题,而是作为有序预测问题,并且改变否则类似信息的序列化方式会改变困惑度和准确性。此外,请记住,反转源句子通过缩短源和目标之间的有效路径提高了翻译性能。逆转诅咒是这种方向依赖性的类比。

在仅解码器的语言模型(如 OpenAI 的 GPT 系列)中,文本是从左到右自回归建模的,因此当预测一个词元 x[t] 时,模型仅通过掩码自注意力条件于前面的词元 x[<t]。Transformer 本身是前馈的,但其训练目标是自回归的。相反,像 BERT 这样的模型被训练为产生双向表示,允许每个词元在每一层融合左右上下文。在这两种情况下,自注意力计算成对分数并进行聚合,但可用的上下文在不同架构中有所不同。参见图 7.7。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH07_F07_Heimann.png

Figure 7.7 BERT 是深度双向的,OpenAI 的 GPT 是单向的,ELMo 是浅层双向的。

这种方向条件有助于解释为什么语言模型能够为同一关联学习不同的映射,而这完全取决于查询的方向。在图 7.8 中,GPT-4 正确识别了汤姆·克鲁斯母亲的名字(左)。但当以母亲的名字作为提示时,它未能检索出“汤姆·克鲁斯”(右)[38]。这种不对称性并非因为模型完全缺乏该事实,而是因为事实是通过学习到的使用模式被访问的。语料库中大量出现的是“汤姆·克鲁斯 | 玛丽·李·费弗尔”这一组合,因此反向查询在零样本设置下是脆弱的。如果你先在提示中陈述正向事实,模型就能可靠地回答逆向问题——这是上下文学习的一个例子。但如果模型的“知识”主要存储在最常见措辞下的学习表示中,那么当查询以非典型方向提出时,模型可能显得有知识,但实际上仍然脆弱。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH07_F08_Heimann.png

Figure 7.8 GPT-4 正确给出了汤姆·克鲁斯母亲的名字(左)。但当被提示她的名字时,它无法检索到“汤姆·克鲁斯”(右)。基于“A is B”训练的模型(例如,“汤姆·克鲁斯的母亲是玛丽·李·费弗尔”)不会自动推断出“B is A”。

7.5.3 提示作为推理接口

如果约翰·麦卡锡(他创造了“人工智能”一词)读到这些例子,他可能不会对这些失败感到惊讶[39][40]。他毕生主张,智能行为依赖于对行动、因果关系和默认假设的显式表征,而非模式关联。当前系统所表明的是,大规模训练足以近似推理的表面形式,从而在熟悉的场景中显得能够进行规划。但一旦世界模型需要修正,这种近似就会变得显而易见。

也就是说,你可以通过提示模型采用更显式的表征来提高可靠性。例如,你可以使用一个提示,将每个状态表示为三元组(mcb),列举合法移动,并在每次过河后验证安全约束。在许多情况下,这有助于模型检测无效步骤,使计划更稳定。

另一个有影响力的技术是思维链(CoT)提示,它指导语言模型在最终确定答案之前用自然语言生成显式的中间推理轨迹[41]。CoT 是对非正式零样本技巧的回应,例如提示模型“大声思考”。这些技巧,以及添加“让我们逐步思考”这样的短语,在没有额外训练的情况下,在多步推理任务上取得了显著改进[42]。

换句话说,我们不是要求模型直接跳到解决方案,而是提示它将复杂问题分解为一步一步的“链”更简单的推理。例如,给定一个数学应用题或逻辑谜题,模型被鼓励一步一步地解决解决方案,就像一个人可能在纸上潦草地写下笔记或步骤一样,然后才产生最终答案。这种简单的提示策略可以显著提高需要多步推理或规划的任务的性能。

在最初的谷歌大脑研究(2022 年)中,CoT 提示使足够大的模型能够解决数学应用题和常识推理谜题,这些谜题在标准提示下使相同的模型困惑[43]。通过将查询分解为子任务并模仿直观的思维过程,模型在推理过程中有效地使用了自己的内部暂存器。值得注意的是,该方法不需要更改模型的架构或参数。因此,CoT 提示体现了向运行时显式推理结构的转变。从经验来看,当与具有数千亿参数的非常大的模型结合使用时,CoT 被证明特别有效,其中遵循逻辑思路的能力似乎随着规模而出现。

CoT 是向推理中注入更多推理的一种方式,但现代方法通常在测试时给语言模型额外的计算或思考时间,以在不需要用户提示的情况下处理复杂问题。一种技术为同一问题生成多个推理链,然后允许模型搜索这些链并选择最一致的答案。这有效地利用了模型“思想”之间的投票来提高可靠性[44][45]。

实际意义不在于语言模型没有价值,或者提示无用。提示是引发现有功能的不完美接口。当任务在分布中时,好的提示可以减少方差并暴露模型已经“知道”的更多内容。当任务需要在新约束下重新计算时,提示是一个微弱的杠杆。它可以提高概率,但它不能替代真正执行搜索、强制不变量或显式表示默认值和异常的机制。

更广泛的教训是,语言模型失败不是因为它们缺乏推理的每一种成分。它们失败是因为它们的推理与问题、事实和解决方案出现的形式分布不均匀地耦合。在熟悉的环境中,这种耦合可以看起来非常智能,模型会检索有用的抽象,遵循学习的程序,并产生令人信服的中间步骤。但当任务被逆转、扰动或使其依赖于新引入的约束时,同一系统可能揭示出它更稳健地学习了推理的表面轨迹,而不是基本的不变量。

这就是为什么现代推理模型最好被理解为不是与语言建模的彻底决裂,而是一次使推理减少对任务最熟悉措辞的依赖的尝试。测试时计算、搜索、验证和显式中间表示都朝着这个方向推进。目标不仅仅是产生更好的答案,而是使通往这些答案的路径在变化下更加稳定。

7.6 论文疑问

推理模型的出现重新点燃了 AI 领域长期存在的争论[46]。在经典的(通常被称为“老式 AI”或“GOFAI”)理性主义观点中,智能建立在离散的、组合的符号以及转换这些符号的规则之上[47]。AI 先驱艾伦·纽厄尔和赫伯特·西蒙曾著名地论证说“符号位于智能行为的根源”,从而将物理符号系统形式化[48]。这种假设将推理视为必须用逻辑来指定的东西,通常是以牺牲灵活性为代价,当世界的混乱细节或基础未被充分指定时。

联结主义者认为智能是从通过基于梯度的方法对统计规律和分布式表示的经验学习中涌现出来的。批评者认为,这样的系统缺乏组合性。杰里·A·福多尔和泽农·皮利申尖锐地提出了这一点:如果思想和语言是组合性的,那么认知架构必须解释这种结构,而不仅仅是近似它[49]。但保罗·斯莫伦斯基阐述的一个关键的联结主义回应是,“硬规则”可以是对底层“软约束”的更高层次的描述,因此类符号的能力可以从神经计算中涌现出来,而不是从被预先指定中产生[50]。

理性主义与经验主义的分裂是关于推理所需结构的哲学分歧。理性主义者认为明确的符号程序是必要的,而经验主义传统则倾向于由数据和归纳偏见塑造的学习表示。但最终解决这场争论的不是决定性的哲学论证,而是标准化的基准、共享的数据集以及针对强基线的测量差异。马利克-辛顿的赌注(第 2 章)最好被解读为关于这种规范的寓言。

吉特德拉·马利克对杰弗里·辛顿的挑战很简单:不要告诉我人工神经网络有多伟大;在一个像 PASCAL 这样的真实基准上展示给我。马利克对理论承诺、轶事成功或哲学论证不感兴趣。辛顿用 ImageNet 来回应,而 AlexNet(第 2 章)交付了结果。没有人质疑卷积网络是否真的能看见或真的能理解;争论的焦点是深度学习是否能优于支持向量机和手工制作的数据管道。这场赌注是经验性的,不是哲学性的。成功是与最佳现有基线对比来衡量的。这种经验标准使深度学习合法化,并重置了领域。

同样的模式在可微分推理的研究中重复出现。RNs 在关系问答中达到了人类水平的表现(约 95%),并通过了 20 个 bAbI 任务中的 18 个。消息传递神经网络在所有 13 个 QM9 目标上创造了新的最佳结果,并在其中 11 个上达到了化学精度。关系记忆核心在基准测试中将语言模型的困惑度降低了 5%到 12%。这三者都提供了可测量的差异,这就是为什么它们被包含在苏茨克弗的列表中。

相比之下,胶囊网络带来了希望。2017 年,图灵奖获得者(也是未来的诺贝尔奖获得者)杰弗里·辛顿在一片喧嚣中引入了它们,它们可能最终通过在图像中纳入对实体的推理来取代 CNN。虽然胶囊网络在 smallNORB 等基准上取得了最先进(SOTA)的结果,并在 MNIST 上接近 SOTA,但它们被证明难以训练和扩展,并且从未在 CIFAR 和 ImageNet 等主流基准上匹配最佳 CNN 的性能。

事后看来,胶囊网络揭示了即使是传奇人物也可能在纸上发表一个漂亮的主意,但却无法通过经验审计。在 AI 领域,声望是通过工作系统赢得的,荣誉和希望并不能免除它们接受这种测试。胶囊网络仍然是一个警示故事:一个优雅的主意在纸上看起来很棒,但如果没有竞争性的结果,它很快就会从聚光灯中消失。

2018 年,加里·马库斯发表了一篇题为“深度学习:批判性评估”的评论。这篇评论虽然片面,但编目了网络目前还不擅长的事情,包括推理、组合性和抽象[52]。这篇论文是在 Transformer 的影响传播之前写的,没有包括本章中探索的面向推理的架构。虽然评论澄清了深度学习的差距,但它也证实了研究中一个常见的愚蠢假设,即识别缺点等同于解决它们。但命名一个恶魔是廉价的;驱魔则不是[53]。任何问题最容易的部分就是命名它。

一个多世纪前,查尔斯·S·皮尔士区分了纸面怀疑活生生的怀疑。纸面怀疑是为了论证而声称的。它们用语言表达,通常是一面之词,并且不会打断任何人的信心。研究人员可以撰写一篇关于 AI 缺点的尖锐评论(或推特风暴),但这纯粹是智力练习,世界上没有任何改变。纸面怀疑不会推动前沿,因为强烈的陈述通常不会改变架构、基线、基准、排行榜或部署。相反,活生生的怀疑是一种本能的不确定性,它动摇了思想并迫使调查。

用今天的话说,“当前深度学习不能推理”这样的说法,如果不受到挑战,就是一种纸面怀疑。这是一个可以雄辩地论证而无需承诺任何东西的立场。它可能与假设的怀疑者展开讨论,但它不会改变行为。活生生的怀疑则会破坏社区的自满情绪并激励行动。我们已经看到,网络缺乏关系推理的活生生的怀疑如何直接导致了 RNs 和 Transformer,对数学抽象的担忧如何导致了像 GSM8K(用于算术推理)这样的基准,以及对视觉推理的担忧如何导致了 CLEVR。

弗朗索瓦·乔莱特的抽象与推理语料库,简称 ARC-AGI,是一个活生生的怀疑的典型例子[54][55]。乔莱特在 2019 年引入了 ARC,作为人类水平通用智能的基准。该基准由小型、神秘的基于网格的谜题组成,以测试机器从几个例子中推理的能力。人类轻松解决这些任务,因为这些谜题不需要专业知识。但 AI 不能依赖暴力预训练。每个任务都是独特的,只提供几个演示,需要非单调推理。也就是说,机器必须在飞行中推断规则并将其应用于新情况,这是纯语言模型所 struggled with 的任务。

原始的 GPT-3 模型在公共评估中得分 0%。GPT-4.1 大致管理了 5% [58]。2024 年底,ARC Prize 报告了 OpenAI 的 o3-preview 系统的一个重大跳跃,该系统在 ARC-AGI 的低于 10,000 美元计算规则下的半私有评估中得分 75.7%,更高配置的配置达到了 87.5%,但成本要高得多。有那么一瞬间,似乎乔莱特的挑战已经被满足,我们正处于通用推理解决方案的边缘[59]。但仅仅几个月后,随着 ARC-AGI-2 的发布,同一系模型的准确率降到了 3%以下[60]。

表面上的巨大跳跃,部分反映了一种过度特化。ARC-AGI-2 被专门设计为使任何可能太紧密地适应 ARC-AGI-1 的技巧都无法达到。这是最纯粹形式的活生生的怀疑。ARC-AGI-1 上的快速进展并不意味着一般抽象问题已经解决;相反,它表明该基准在其特定条件下已经被征服。

乔莱特的“活生生的怀疑”是一种操作化的怀疑,而非假设性的怀疑。通过不断增加难度并引入真正新颖的任务,它迫使研究人员和工程师直面他们的系统是否真的在学习他们声称学习的内容,还是仅仅在学习测试的怪癖。ARC-AGI-2 需要更高水平的泛化能力,而目前,这种怀疑仍未解决。这是一种促使人们做得更好的挑战,而不仅仅是纸面上的批评。

“活生生的怀疑”视角也有助于解读另一个人物。苏茨克维尔(Sutskever)在认为 GPT2 太危险而不宜发布后,支持分阶段发布(第 1 章)。这种担忧并非假设性的或表演性的。多年后,他加入了董事会行动,短暂罢免了山姆·奥特曼(第 1 章)。这些行动不是纸面上的怀疑,而是我们能看到的怀疑。这增加了伊利亚(Ilya)的神秘感。他通过构建有效的解决方案并使其一致,来活出他的希望和怀疑。如果纸面上的希望是没有证据的承诺,那么活生生的希望就是想法可行的证据,就像 CNN 和 Transformer 一样。正是这种严肃性推动并挑战了进步,而不是仅仅为了争论而支持或反对 [61]。

然而,即使是这种经验主义、结果驱动、精英主义的叙述也有裂痕。虽然基准测试至关重要,是人工智能进步的基石,但它们并非无懈可击。它们是建立在关于测量什么的假设之上的工具。它们所测量的内容必须根据稳定、可重复的效果进行操作性定义。ARC-AGI-2 和 ARC-AGI-3 的发布强调了这一点。在 ARC-AGI-1 上看似快速的进步,部分归因于对基准的熟悉和过度专业化的搜索 [62]。

公平地说,ARC-AGI-2 不仅是一个更新的基准,也是一个更难的基准,旨在衡量 AGI 而非传统机器学习的表现 [63][64][65][66]。尽管如此,更广泛的观点仍然成立:人工智能需要收据,这些收据必须被仔细审查。它不在乎你的名字或你的纸面怀疑;没有活生生的希望它无法前进,没有活生生的怀疑它无法安全。收据是在能够承受分布转移并转移到新基准的对照下,针对强基线的可复现收益。能够迁移的鲁棒性比单一排行榜的胜利更有价值 [67]。

虽然苏茨克维尔的清单记录了有效的方法,但我们仍然难以确定我们能从中合法地理解什么。在接下来的章节中,我们超越工程学,直面这些成就意味着什么。这不是偏离苏茨克维尔的清单,而是它的顶点。

8 简洁,隐藏在复杂性中

本章涵盖

  • 压缩如何揭示秘密结构

  • 复杂性如何在秩序与噪声之间达到峰值

  • 简洁如何战胜过拟合

  • 领悟(或记忆,然后简化)

  • 语言模型是否只是互联网的模糊 JPEG 的问题

论文

  • 量化封闭系统中复杂性的兴衰:咖啡自动机 (2014) Aaronson, Carroll, and Ouellette

  • 复杂动力学第一定律 (2011) Scott Aaronson

  • 柯尔莫哥洛夫复杂度与算法随机性 (2017) Uspensky, Shen, and Vereshchagin

  • 最小描述长度原理教程导论 (2004) Peter Grünwald

  • 通过最小化权重的描述长度来保持神经网络简单 (1993) Geoffrey Hinton and Drew van Camp

苏茨克维尔认为,任何好的预测模型隐含地是一个好的压缩器,反之亦然 [1]。在一次演讲中,他引用了 2017 年关于“情感神经元”的研究,其中 OpenAI 研究人员——包括苏茨克维尔——训练了一个长短期记忆(LSTM)网络来预测亚马逊产品评论的下一个字符,但发现一个神经元就捕捉了评论的情感 [2]。情感神经元的出现是因为预测下一个字符迫使模型在潜在变量中编码情感。

苏茨克维尔经常使用的一句话是,好的压缩揭示了数据中的“秘密”。秘密 是潜在变量或隐藏因素,如评论中的情感、语言中的语法结构、机器翻译中的思想向量,或视觉数据中的物理规律,这些没有被标记但影响预测。模型似乎“知道”事实和常识知识,因为它必须编码它们以压缩数据。

但在我们到达那里之前,我们首先追踪结构如何往往存在于秩序与噪声之间的复杂区域。斯科特·亚伦森、肖恩·卡罗琳和劳伦·奥莱特的“咖啡自动机”展示了复杂性如何在系统均质化时上升、达到峰值然后下降。这幅图景延续到人工神经网络,其中杰弗里·辛顿和德鲁·范·坎普训练网络以最小化描述长度,从而提高性能。

此外,关于“领悟”和双下降的工作反映了这些模式:复杂性首先随着网络记忆训练样本而增加,然后一旦发现简单的底层规则就崩溃,测试性能突然提高。同时,双下降表明,随着模型采用更简单、泛化能力更好的解决方案,测试误差先恶化然后再次改善。总的来说,这些想法汇聚成一幅图景,其中简洁出现在我们最意想不到的地方。

8.1 咖啡自动机

在 2011 年的一篇文章《复杂动力学第一定律》中,斯科特·亚伦森猜测,封闭系统中的复杂性从接近零开始,在中间时刻达到峰值,然后回到接近零,而熵则继续单调增加。他将这种行为称为“复杂熵”(complextropy),是复杂性和熵的混合词。这个从秩序到混乱、从简单到复杂再回来的谜题,促使亚伦森在 2014 年与肖恩·卡罗琳和劳伦·奥莱特重新探讨这个问题,论文标题为《量化封闭系统中复杂性的兴衰:咖啡自动机》。两篇论文都在苏茨克维尔的清单上。

热力学第二定律告诉我们,封闭系统的熵永远不会减少。 通常被描述为衡量混乱、随机性或能量和物质在这样一个系统中的分散程度。它解释了为什么系统倾向于从有序状态向混沌状态移动,比如冰融化。最终,熵与系统在给定宏观状态下可以拥有的微观配置数量有关。然而,经验表明,复杂性并不简单地追踪熵。宇宙始于一个光滑、严格约束、低熵的远离平衡状态,最终将结束于高熵的热寂,几乎没有任何可见结构。但在这些端点之间,我们经历了星系、生命和其他组织形式。一杯咖啡的行为类似,但存在负担较小。

倒入奶油,你开始时有两层干净的液体。混合过程中形成漩涡和细丝。随着可见结构达到峰值,熵上升。随着时间推移,杯子变成均匀的米色,反映出高熵状态,梯度被抹去,几乎没有可控结构。熵始终在增加,而复杂性则随着中等尺度模式的出现先上升,然后随着混合结束而下降。见图 8.1。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH08_F01_Heimann.png

图 8.1(左)低熵低复杂性;(中)中熵高复杂性;(右)高熵低复杂性。经主要作者(斯科特·亚伦森)许可使用。

8.1.1 方法论

为了研究复杂性,作者构建了一个随机细胞自动机,作为咖啡杯的模型。细胞自动机是一个大小为 n × n 的二维网格(通常 n = 100)。每个单元格的值表示奶油(1)或咖啡(0)的局部存在。在初始状态下,网格的上半部分填满 1(奶油),下半部分填满 0(咖啡),代表一杯未混合的咖啡,具有清晰的奶油-咖啡边界。从这个起点出发,自动机根据两套规则之一在离散的时间步长中更新,对应两种物理状态:一个相互作用模型和一个非相互作用模型。

相互作用模型意味着每个单元格一次只能被咖啡或奶油占据。在每个时间步长中,自动机随机选择一对相邻的奶油-咖啡,两个粒子交换位置,模仿粒子无法相互穿过的扩散。该规则反映了产生大规模模式的物理约束。随着时间推移,许多随机交换使奶油扩散到咖啡中,但因为每个时间步长只发生一次交换,且远处的奶油粒子必须等待附近粒子移动,混合是渐进的。

非相互作用模型假设奶油粒子之间互不相互作用,自由移动。任意数量的奶油粒子可以占据同一个单元格。在每个时间步长中,每个奶油粒子独立跳转到随机选择的相邻单元格。因为多个粒子可以堆叠,它们不会相互阻挡或作用。

作者引入了一个两步过程。他们不分析由 01 组成的原始网格(随着混合进行,该网格在微观层面本质上变得随机),而是将状态平滑(或降采样)为粗粒化数组,即一个捕捉宏观模式的网格。通过对网格进行粗粒化,微小的斑点消失,只留下大的漩涡和奶油丝状物。同时,作者通过测量完整细粒化状态的可压缩程度来估计熵,这作为拟合观测数据的隐藏排列数量的代理。

作者使用每个单元格周围的一个小邻域并对其中的值求平均。他们对每个邻域求平均,其中接近 0 的值表示主要是咖啡,接近 1 的值表示主要是奶油,中间值表示混合物。然后将这些平均值量化为几个离散标签,如咖啡、奶油和混合。通过粗粒化,作者有意丢弃细粒化的随机性,专注于结构化特征,如定义模式复杂性的奶油-咖啡边界的形状。本质上,粗粒化数组是杯子的一个模糊、量化的“宏观状态”视图,类似于人类可能看到的景象。图 8.2 在一个小例子上说明了这一过程。

https://github.com/OpenDocCN/ibooker-dl-zh/tree/master/docs/sutskevers-list/img/CH08_F02_Heimann.png

Figure 8.2 Illustration of the construction of the coarse-grained array using an example grain size of 3. The values of the shaded cells on the left are averaged to produce the value of the shaded cell on the right. Used with permission granted by the lead author (Scott Aaronson).

posted @ 2026-09-22 11:34  绝不原创的飞龙  阅读(7)  评论(0)    收藏  举报