共计 5236 个字符,预计需要花费 14 分钟才能阅读完成。
在 2008 年秋季,作为普林斯顿大学计算机科学研究生,我选修了人工智能课程。在学期末的一次关于神经网络的讲座中,我明显感觉到,神经网络已经成为了一个边缘领域。
神经网络在 20 世纪 80 年代末和 90 年代初取得了一些令人印象深刻的结果。但随后进展停滞了。到 2008 年,许多研究人员已经转向了如支持向量机这样数学上更优雅的方法。
然而,在我上课的同一栋计算机科学大楼里,普林斯顿的一个团队正在开展一个项目,该项目将颠覆传统智慧并展示神经网络的力量。这个团队由李飞飞教授领导,他们并没有在开发更好的神经网络版本。他们几乎完全没有考虑过神经网络。
相反,他们正在创建一个新的图像数据集,这个数据集将比之前的任何数据集都要大得多:1400 万张图像,每张图像都被标记为近 22,000 个类别中的一个。
李飞飞在其最近的回忆录《我所见的世界》中讲述了 ImageNet 的故事。在项目进行过程中,她面临了许多朋友和同事的质疑。
“我认为你把这个想法推得太远了,”一位导师在 2007 年项目开始几个月后告诉她。“诀窍是与你的领域一起成长。不要跳得太远。”
这不仅仅是因为构建如此大规模的数据集是一个巨大的后勤挑战。人们怀疑当时的机器学习算法是否会从如此庞大的图像集合中受益。
“在 ImageNet 之前,人们不相信数据,”李飞飞在 9 月的一次计算机历史博物馆采访中说道。“每个人都在使用极少量的数据在 AI 中完全不同的范式上工作。”
无视负面反馈,李飞飞追求这个项目超过两年。这耗尽了她的研究预算,也考验了她研究生们的耐心。当她在 2009 年转到斯坦福大学时,她带走了几位学生和 ImageNet 项目一起去了加利福尼亚。
ImageNet 在 2009 年发布后的头几年几乎没有引起关注。但在 2012 年,多伦多大学的一个团队在 ImageNet 数据集上训练了一个神经网络,在图像识别方面取得了前所未有的性能。这个开创性的 AI 模型,被称为 AlexNet,以主要作者 Alex Krizhevsky 的名字命名,引发了持续至今的深度学习热潮。
如果没有 ImageNet 数据集,AlexNet 不会成功。如果没有一个名为 CUDA 的平台,AlexNet 也不可能实现,该平台允许 Nvidia 的图形处理单元(GPU)用于非图形应用程序。当 Nvidia 在 2006 年宣布 CUDA 时,许多人持怀疑态度。
神经网络是由成千上万、百万甚至数十亿个神经元组成的网络。每个神经元是一个数学函数,根据其输入的加权平均值产生输出。
假设你想创建一个能够识别手写十进制数字的网络。这样的网络会接收图像中每个像素的强度值,并输出十个可能数字的概率分布。
要训练这样的网络,你首先用随机权重初始化它。然后你在一系列示例图像上运行它。对于每个图像,你通过加强推动网络朝向正确答案的连接并削弱推动错误答案的连接来训练网络。如果在足够多的示例图像上训练,模型应该开始在看到数字 2 时预测高概率,而在其他情况下则不然。
在 20 世纪 50 年代末,科学家们开始试验具有单层神经元的基本网络。然而,他们的初始热情随着他们意识到这种简单网络缺乏进行复杂计算所需的表达能力而冷却。
更深的网络——那些具有多层的网络——有可能更加多功能。但在 20 世纪 60 年代,没有人知道如何有效地训练它们。这是因为改变多层网络中间的某个参数可能会对输出产生复杂且不可预测的影响。
因此,当 Hinton 在 20 世纪 70 年代开始他的职业生涯时,神经网络已经失宠。Hinton 想研究它们,但他很难找到一个可以这样做的学术家园。在 1976 年到 1986 年之间,Hinton 在四个不同的研究机构工作过:苏塞克斯大学、加利福尼亚大学圣地亚哥分校(UCSD)、英国医学研究委员会的一个分支,最后是卡内基梅隆大学,他在 1982 年成为教授。
在 1986 年的一篇具有里程碑意义的论文中,Hinton 与他在 UCSD 的前同事 David Rumelhart 和 Ronald Williams 合作,描述了一种称为反向传播的技术,用于有效训练深度神经网络。
他们的想法是从网络的最后一层开始并反向工作。对于最后一层的每个连接,算法计算一个梯度——一个数学估计,判断增加该连接的强度是否会推动网络朝向正确答案。基于这些梯度,算法调整模型最后一层的每个参数。
然后,算法将这些梯度反向传播到倒数第二层。这里的关键创新是一个基于高中微积分中的链式法则的公式,用于根据下一层的梯度计算一层的梯度。使用这些新的梯度,算法更新模型倒数第二层的每个参数。然后梯度被反向传播到倒数第三层,整个过程再次重复。
该算法在每次训练中只对模型进行小的更改。但随着过程在成千上万、百万、十亿甚至万亿个训练示例上重复,模型逐渐变得更加准确。
Hinton 和他的同事们并不是第一个发现反向传播基本思想的人。但他们的论文推广了这种方法。随着人们意识到现在可以训练更深的网络,这引发了对神经网络的新一波热情。
每台个人电脑的大脑是一个中央处理单元(CPU)。这些芯片设计用于按顺序执行计算,一步一步来。这对于 Windows 和 Office 等传统软件来说很好。但有些视频游戏需要如此多的计算,以至于它们超出了 CPU 的能力。尤其是像 Quake、Call of Duty 和 Grand Theft Auto 这样的游戏,它们每秒渲染多次三维世界。
因此,游戏玩家依赖 GPU 来加速性能。在 GPU 内部有许多执行单元——本质上是非常小的 CPU——打包在一个芯片上。在游戏过程中,不同的执行单元绘制屏幕的不同区域。这种并行性使得图像质量和帧率比仅使用 CPU 更高。
Nvidia 在 1999 年发明了 GPU,并从此主导了市场。到 2000 年代中期,Nvidia CEO Jensen Huang 怀疑 GPU 内部的巨大计算能力对于游戏以外的应用也会有用。他希望科学家们能用它来进行天气模拟或石油勘探等计算密集型任务。
因此,Nvidia 在 2006 年宣布了 CUDA 平台。CUDA 允许程序员编写“内核”,这些短程序设计用于在一个执行单元上运行。内核允许将一个大的计算任务分解成可以并行处理的小块。这使得某些类型的计算比仅使用 CPU 快得多。
李飞飞在 2007 年 1 月作为计算机科学教授开始在普林斯顿的新工作时,并没有考虑神经网络或 GPU。在获得加州理工学院(Caltech)博士学位期间,她构建了一个名为 Caltech 101 的数据集,包含 101 个类别的 9000 张图像。
这段经历教会她,计算机视觉算法在更大和更多样化的训练数据集上往往表现更好。李飞飞不仅发现自己的算法在 Caltech 101 上训练时表现更好,而且其他研究人员也开始使用她的数据集训练他们的模型并相互比较性能。这使得 Caltech 101 成为计算机视觉领域的基准。
因此,当她到达普林斯顿时,李飞飞决定做得更大。她对视觉科学家 Irving Biederman 的估计着迷,即普通人大约能识别 30,000 种不同的物体。李飞飞开始思考是否有可能构建一个真正全面的图像数据集——一个包含人们在物理世界中常见到的所有物体的数据集。
一位普林斯顿的同事告诉李飞飞关于 WordNet 的信息,这是一个试图分类和组织 140,000 个单词的庞大数据库。李飞飞称她的新数据集为 ImageNet,并使用 WordNet 作为选择类别的起点。她排除了动词、形容词以及像“真理”这样的无形名词。这留下了一个包含 22,000 个可数物体的列表,从“救护车”到“西葫芦”。
她计划采用与 Caltech 101 数据集相同的方法:使用 Google 的图像搜索来查找候选图像,然后让人类验证它们。对于 Caltech 101 数据集,李飞飞自己在几个月内完成了这项工作。这次她需要更多的帮助。她计划雇佣几十名普林斯顿本科生来帮助她选择和标记图像。
但即使在大幅优化标记过程之后——例如,预先下载候选图像以便学生可以立即审查——李飞飞和她的研究生 Jia Deng 计算出,选择和标记数百万张图像将需要超过 18 年的时间。
这个项目在李飞飞了解到亚马逊的众包平台 Mechanical Turk(AMT)后得以挽救,该平台在几年前由亚马逊推出。AMT 的国际劳动力不仅比普林斯顿本科生更便宜,而且平台也更加灵活和可扩展。李飞飞的团队可以根据需要雇佣尽可能多的人,并只在有工作时支付他们。
AMT 将完成 ImageNet 所需的时间从 18 年缩短到两年。李飞飞写道,她的实验室在两年内“在财务的刀刃上”挣扎,团队努力完成 ImageNet 项目。但他们有足够的资金支付三个人来查看最终数据集中的 1400 万张图像。
ImageNet 在 2009 年准备好发布,李飞飞将其提交给了那年在美国迈阿密举行的计算机视觉和模式识别会议。他们的论文被接受了,但没有得到李飞飞希望的那种认可。
“ImageNet 被降级到一个海报会议,”李飞飞写道。“这意味着我们不会在预定时间在礼堂向观众展示我们的工作,而是会在会议地板上放置一个大型格式印刷品,总结项目,希望路过的与会者可能会停下来提问……在这么多年的努力之后,这感觉只是反高潮。”
为了引起公众的兴趣,李飞飞将 ImageNet 变成了一个竞赛。意识到完整的数据集可能对数十名参赛者来说过于庞大,她创建了一个小得多的(但仍然庞大的)数据集,包含 1000 个类别和 140 万张图像。
2010 年的第一届比赛引起了相当大的兴趣,有 11 个团队参加。获胜的条目基于支持向量机。不幸的是,李飞飞写道,这只是“对我们领域其他地方的尖端工作的微小改进”。
ImageNet 竞赛的第二年吸引了比第一年更少的参赛者。2011 年的获胜条目是另一个支持向量机,它只是勉强改进了 2010 年获胜者的性能。李飞飞开始怀疑批评者是否是对的。也许“ImageNet 对大多数算法来说太多了”。
“连续两年,经过时间考验的算法只展示了能力的微小提升,而真正的进步似乎几乎不存在,”李飞飞写道。“如果 ImageNet 是一场赌注,现在是时候开始怀疑我们是否输了。”
但当李飞飞不情愿地在 2012 年再次举办比赛时,结果完全不同。Geoff Hinton 的团队首次提交了一个基于深度神经网络的模型。其前 5 名的准确率为 85%——比 2011 年的获胜者高出 10 个百分点。
李飞飞的最初反应是难以置信:“我们大多数人把神经网络看作是玻璃罩中被天鹅绒绳保护的尘封文物。”
AlexNet 的成功证明了 Hinton 对神经网络的信念,但可以说,这对 LeCun 的验证更大。
AlexNet 是一种卷积神经网络,LeCun 在 20 年前开发了这种网络来识别支票上的手写数字。(有关 CNN 工作原理的更多细节,请参阅我在 2018 年为 Ars 撰写的深入解释。)实际上,AlexNet 和 LeCun 在 1990 年代的图像识别网络之间几乎没有架构上的差异。
AlexNet 只是大得多。在 1998 年的一篇论文中,LeCun 描述了一个具有七层和 60,000 个可训练参数的文档识别网络。AlexNet 有八层,但这些层有 6000 万个可训练参数。
LeCun 在 1990 年代初无法训练如此大的模型,因为没有像 2012 年 GPU 那样强大的计算机芯片。即使 LeCun 设法构建了一个足够大的超级计算机,他也不会有足够的图像来正确训练它。在 Google 和 Amazon Mechanical Turk 出现之前的几年里,收集这些图像将是非常昂贵的。
而这正是李飞飞在 ImageNet 上的工作如此重要的原因。她没有发明卷积网络或弄清楚如何让它们在 GPU 上高效运行。但她提供了大型神经网络实现其全部潜力所需的训练数据。
科技界立即认识到 AlexNet 的重要性。Hinton 和他的学生们成立了一家壳公司,目标是“被大科技公司收购”。几个月内,Google 以 4400 万美元的价格收购了该公司。Hinton 在接下来的十年里在 Google 工作,同时保留了他在多伦多的学术职位。Ilya Sutskever 在 Google 工作了几年后成为 OpenAI 的联合创始人。
AlexNet 还使 Nvidia 的 GPU 成为训练神经网络的行业标准。2012 年,Nvidia 的市值不到 100 亿美元。如今,Nvidia 是世界上最有价值的公司之一,市值超过 3 万亿美元。这一高估值主要是由对优化用于训练神经网络的 GPU(如 H100)的巨大需求驱动的。
今天,领先的 AI 实验室认为,AI 进步的关键是在庞大的数据集上训练巨大的模型。大型科技公司急于构建训练更大模型所需的数据中心,以至于他们已经开始租赁整个核电站来提供必要的电力。
你可以将这视为 AlexNet 教训的直接应用。但我怀疑我们是否应该从 AlexNet 中得出相反的教训:过于依赖传统智慧是一个错误。
“缩放定律”在 AlexNet 之后的 12 年里取得了显著的成果,随着领先的实验室进一步扩大其基础模型,我们可能会看到另一代或两代令人印象深刻的结果。
但我们应小心不要让 AlexNet 的教训硬化成教条。我认为至少有可能在接下来的几年里缩放定律会失去动力。如果发生这种情况,我们将需要新一代固执的非传统主义者注意到旧方法不再奏效并尝试新的东西。