在与 Google 合作下,计算机历史博物馆发布了 AlexNet 的源代码。AlexNet 是一个神经网络,它在 2012 年开启了当今人工智能的主流方法。该源代码已在 CHM 的 GitHub 页面上开源。
AlexNet 是什么?
AlexNet 是一种人工神经网络,旨在识别图像内容。它由当时的加拿大多伦多大学研究生 Alex Krizhevsky 和 Ilya Sutskever 以及他们的导师 Geoffrey Hinton 在 2012 年开发。
深度学习的起源
Hinton 被认为是深度学习的先驱之一。深度学习是一种使用神经网络的人工智能,是当今主流人工智能的基础。早在 20 世纪 50 年代后期,就出现了只有单层自适应权重的简单三层神经网络,最著名的例子是康奈尔大学研究员 Frank Rosenblatt 的研究成果,但它们被发现存在局限性。[这篇解释文章详细介绍了神经网络的工作原理。] 特别是,研究人员需要具有多层自适应权重的网络,但当时没有好的训练方法。到 20 世纪 70 年代初,神经网络在很大程度上被人工智能研究人员抛弃了。
Frank Rosenblatt [左,与 Charles W. Wightman 合影] 在 1957 年开发了第一个人工神经网络,即感知器。Division of Rare and Manuscript Collections/Cornell University Library
在 20 世纪 80 年代,神经网络研究在人工智能社区之外被加州大学圣地亚哥分校的认知科学家们重新燃起,并以“联结主义”的新名称出现。Hinton 在 1978 年获得爱丁堡大学博士学位后,成为加州大学圣地亚哥分校的博士后研究员,在那里他与 David Rumelhart 和 Ronald Williams 合作。这三位研究人员重新发现了用于训练神经网络的反向传播算法,并在 1986 年发表了两篇论文,证明它使神经网络能够学习用于语言和视觉任务的多层特征。反向传播是当今深度学习的基础,它利用网络当前输出与预期输出之间的差异来调整每一层的权重,从输出层反向传播到输入层。
1987 年,Hinton 加入多伦多大学。远离传统人工智能中心,Hinton 的工作以及他的研究生们的工作使多伦多在接下来的几十年里成为深度学习研究的中心。Hinton 的一位博士后学生是 Yann LeCun,现在是 Meta 的首席科学家。在多伦多工作期间,LeCun 证明,当反向传播应用于“卷积”神经网络时,它们在识别手写数字方面变得非常出色。
ImageNet 和 GPU
尽管取得了这些进展,但神经网络无法始终如一地胜过其他类型的机器学习算法。它们需要来自人工智能领域之外的两个发展来铺平道路。第一个是通过网络提供的用于训练的大量数据的出现。第二个是足够的计算能力来执行这种训练,以 3D 图形芯片(称为 GPU)的形式出现。到 2012 年,AlexNet 的时机已经成熟。
Fei-Fei Li 的 ImageNet 图像数据集于 2009 年完成,对训练 AlexNet 至关重要。图中,Li [右] 与 Tom Kalil 在计算机历史博物馆交谈。Douglas Fairbairn/Computer History Museum
训练 AlexNet 所需的数据来自 ImageNet,这是一个由斯坦福大学教授 Fei-Fei Li 发起并领导的项目。从 2006 年开始,Li 挑战了传统观念,设想了一个包含英语中所有名词的图像数据集。她和她的研究生开始收集从互联网上找到的图像,并使用 WordNet(一个单词及其相互关系的数据库)提供的分类法对它们进行分类。鉴于任务的巨大规模,Li 和她的合作者最终将图像标记的任务外包给了亚马逊 Mechanical Turk 平台上的众包工人。
ImageNet 于 2009 年完成,其规模比以前任何图像数据集都要大几个数量级。Li 希望它的可用性能够推动新的突破,并在 2010 年启动了一项竞赛,鼓励研究团队改进他们的图像识别算法。但在接下来的两年里,最好的系统只取得了微不足道的改进。
神经网络成功所需的第二个条件是经济地获得大量计算能力。神经网络训练涉及大量重复的矩阵乘法,最好是并行执行,而 GPU 就是为此而设计的。英伟达由首席执行官 Jensen Huang 共同创立,在 2000 年代引领了 GPU 的通用化和可编程化,使其应用范围超越 3D 图形,特别是在 2007 年发布的 CUDA 编程系统中。
ImageNet 和 CUDA 与神经网络本身一样,都是相当利基的发展,它们都在等待合适的时机才能大放异彩。2012 年,AlexNet 首次将这些元素——深度神经网络、大型数据集和 GPU——结合在一起,取得了突破性的成果。每一个都离不开其他。
AlexNet 的诞生
到 2000 年代后期,Hinton 在多伦多大学的研究生们开始使用 GPU 来训练神经网络,用于图像和语音识别。他们在语音识别方面取得了首批成功,但在图像识别方面的成功将表明深度学习可能是人工智能的一种通用的解决方案。一位学生 Ilya Sutskever 认为,神经网络的性能将随着可用数据的增加而扩展,ImageNet 的出现提供了机会。
2011 年,Sutskever 说服了 fellow 研究生 Alex Krizhevsky(他擅长从 GPU 中榨取最大性能)为 ImageNet 训练一个卷积神经网络,Hinton 担任首席研究员。
AlexNet 使用运行 CUDA 代码的英伟达 GPU 在 ImageNet 数据集上进行训练。英伟达首席执行官 Jensen Huang 因其对计算机图形芯片和人工智能的贡献而被授予 2024 年 CHM 奖。Douglas Fairbairn/Computer History Museum
Krizhevsky 已经使用英伟达 GPU 为一个卷积神经网络编写了 CUDA 代码,称为 cuda-convnet,并在更小的 CIFAR-10 图像数据集上进行了训练。他扩展了 cuda-convnet,使其支持多个 GPU 和其他功能,并在 ImageNet 上重新训练它。训练是在 Krizhevsky 在父母家卧室里的一台配备两块英伟达显卡的电脑上进行的。在接下来的几年里,他不断调整网络参数并重新训练,直到它取得了优于竞争对手的性能。该网络最终以 Krizhevsky 的名字命名为 AlexNet。Geoff Hinton 这样总结 AlexNet 项目:“Ilya 认为我们应该做,Alex 让它成功,我获得了诺贝尔奖。”
Krizhevsky、Sutskever 和 Hinton 撰写了一篇关于 AlexNet 的论文,该论文于 2012 年秋季发表,并由 Krizhevsky 在 10 月意大利佛罗伦萨举行的计算机视觉会议上发表。资深计算机视觉研究人员并不信服,但 LeCun 在会议上宣布这是一个人工智能的转折点。他是对的。在 AlexNet 之前,几乎没有一篇领先的计算机视觉论文使用神经网络。之后,几乎所有论文都会使用它。
AlexNet 仅仅是一个开始。在接下来的十年里,神经网络将发展到合成逼真的合成人声,击败围棋冠军,生成艺术作品,最终在 2022 年 11 月由 Sutskever 共同创立的 OpenAI 公司发布了 ChatGPT。
发布 AlexNet 源代码
2020 年,我联系了 Krizhevsky,询问他是否愿意让 CHM 发布 AlexNet 源代码,因为它具有历史意义。他把我介绍给了 Hinton,当时他在 Google 工作。Google 拥有 AlexNet,因为它收购了 Hinton、Sutskever 和 Krizhevsky 拥有的公司 DNNresearch。Hinton 通过将 CHM 与 Google 的合适团队联系起来,启动了这个项目。CHM 与 Google 团队合作了五年,以协商发布事宜。该团队还帮助我们确定了要发布的 AlexNet 源代码的具体版本——多年来,AlexNet 已经有了很多版本。GitHub 上还有其他名为 AlexNet 的代码库,但其中许多都是基于著名论文的重新创建,而不是原始代码。
CHM 很荣幸地发布 2012 年版 AlexNet 的源代码,它改变了人工智能领域。您可以在 CHM 的 GitHub 页面上访问源代码。
本文最初发表在计算机历史博物馆的博客上。
致谢
特别感谢 Geoffrey Hinton 提供了他的引言并审阅了文本,感谢 Cade Metz 和 Alex Krizhevsky 提供了额外的澄清,以及感谢 David Bieber 和 Google 团队的其他成员为确保源代码发布所做的工作。
参考文献
Fei-Fei Li,The Worlds I See: Curiosity, Exploration, and Discovery at the Dawn of AI。第一版,Flatiron Books,纽约,2023 年。
Cade Metz,Genius Makers: The Mavericks Who Brought AI to Google, Facebook, and the World。第一版,企鹅兰登书屋,纽约,2022 年。