在20世纪的80年代末和90年代初,神经网络算法取得了一些令人印象深刻的成果。不过后来它的发展停滞。到2008年,许多研究者已转换思路,探求那些在数学表达上更加优雅的方法,例如支持向量机。
如今的“AI教母”李飞飞彼时正于普林斯顿大学带领团队开展神经网络研究项目,但他们并不试图开发更好的神经网络,甚至没怎么琢磨神经网络本身,而是力求创建一个比以往任何数据集都大得多的新图像数据集:1400万张图像,每张都标着它所属的类别,类别总数达到近22000个。这套数据集,也就是后来所谓的ImageNet,将颠覆传统观点,展现神经网络的威力。
李飞飞在她今年出版的回忆录《我看见的世界:李飞飞自传》中讲述了ImageNet的故事。创建ImageNet的过程中,充满来自朋友和同事的质疑声。导师认为她的想法太过远大不可及;同行们怀疑当时的机器学习算法能否从如此庞大的图像集合中获益。(“AI教母”李飞飞:她看见的世界和她改变的世界)
“ImageNet出现前,人们并不相信数据,每个人都在用零星数据研究完全不同的AI范式。”
当然,李飞飞不受负面声音干扰,坚持开展项目长达两年多。她的研究预算被耗尽了,研究生们的耐心也被耗尽了。等到2009年,她决定跳槽斯坦福大学,并带着几名研究生和ImageNet项目前往加州。
2009年发布的ImageNet在最初几年里并未引发太多关注。但到2012年,多伦多大学团队借助ImageNet数据集训练了一个神经网络,并看到了它在图像识别方面前所未有的优异表现。该开创性AI模型因其主要作者亚历克斯 · 克里切夫斯基(Alex Krizhevsky)而得名为AlexNet,从此开启一直持续至今的深度学习热潮。
若无ImageNet数据集,就不会有AlexNet的成功。当然,如果没有CUDA平台,AlexNet也无法实现。
CUDA是英伟达公司开创并于2006年发布的一种并行计算平台和编程模型,允许图形处理单元,即GPU,被用于非图形应用程序。
综上,我们可以说过去12年间的AI热潮是由3位梦想家合力推动。
一位是多伦多大学计算机科学家杰弗里 · 辛顿(Geoffrey Hinton),一度受到了几乎所有人的质疑,却仍数十年如一日地推广神经网络。另一位是英伟达首席执行官黄仁勋,很早就意识到GPU的用途不仅限于图形处理。第三位就是李飞飞,她创建了一个图像数据集,虽然大多数同事都觉得ImageNet大到离谱,但事实证明,它是展现在GPU上训练的神经网络潜力的关键。
神经网络可以超越其他机器学习方法
杰弗里 · 辛顿
神经网络是由数千、数百万甚至数十亿个神经元组成的网络。每个神经元都是一个数学函数,根据其输入的加权平均值产生输出。
假设你想创建一个可识别手写十进制数字(如上图红色方块里的数字2)的网络。此网络会接收图像中每个像素的强度值,并输出10个可能数字(0、1、2、3、4、5、6、7、8、9)的概率分布。
要训练这样的网络,首先应使用随机权重对它做初始化,然后在一系列示例图像上运行它。对于每幅图像,你通过强化可推动网络走向正确答案(输出“2”的概率很高)的连接以及削弱推向错误答案(输出“2”的概率很低,输出其他数字的概率很高)的连接来训练网络。如果经受了足够多训练,当模型看到“2”时,它就应开始预测“2”的高概率。
1950年代末,科学家开始尝试使用单层神经元的基本网络。但他们慢慢意识到这种简单的网络缺乏复杂计算所需的表达能力。
更深层的网络(多层网络)颇具前景,但那是1960年代,没人知道如何有效训练它们,因为改变多层网络中某个参数可能对输出产生复杂且不可预测的影响。
因此,当辛顿于1970年代开启职业生涯时,神经网络已不再受欢迎。辛顿想研究它们,但很难找到一个学术归宿。1976年至1986年间,辛顿辗转4家科研单位:萨塞克斯大学、加州大学圣地亚哥分校、英国医学研究理事会的一个分支机构以及卡内基梅隆大学。
杰弗里·辛顿
在1986年发表的一篇里程碑式论文中,辛顿与加州大学圣地亚哥分校的两位前同事戴维 · 鲁梅尔哈特(David Rumelhart)和罗纳德 · 威廉姆斯(Ronald Williams)合作,介绍了一种称作反向传播、可用于有效训练深度神经网络的技术。
他们的概念是,从网络最后一层开始,由后往前运转。对于最后一层中的每个连接,算法都会计算一个梯度——一个关于增加该连接强度会否推动网络朝正确答案前进的数学估计。根据这些梯度,算法会调整模型最后一层中的每个参数。
接着,算法将这些梯度反向传播至倒数第二层。此处的关键创新是一个基于微积分中链式法则的公式,用于根据下一层的梯度计算这一层的梯度。利用新得到的梯度,算法更新模型倒数第二层的每个参数。然后,梯度反向传播至倒数第三层,再次重复整个过程。
算法在每一轮训练中只对模型做出很小改变。但随着该过程在数千、数百万、数十亿甚至数万亿个训练样本上重复,模型将越来越准确。
辛顿及其同事并非最先领悟反向传播基本理念的人,但他们的论文推广了此方法。人们意识到可以训练更深层次的网络了,行业对神经网络的新一轮热情点燃了。
1987年,辛顿进入多伦多大学,并开始吸引那些有意探究神经网络的年轻人来投。法国计算机科学家杨立昆(Yann LeCun)是最早加入者之一,在辛顿麾下做了一年博士后,后于1988年转投贝尔实验室。
辛顿的反向传播算法帮助杨立昆训练出足够深层次的模型,模型在手写识别等现实任务中表现出色。到1990年代中期,杨立昆的卓越技术开始被银行用于处理支票。2022年出版的《天才制造者》(Genius Makers)一书中如此写道:“杨立昆的发明一度读取了10%以上的存入美国银行的支票。”
但当杨立昆等学者尝试将神经网络应用于更大规模、更复杂的图像时,结果并不理想。然后神经网络又失去了热度,一部分研究人员转向别的项目。
辛顿始终坚信神经网络可以超越其他机器学习方法,但他需要很多年才能获得足够数据和计算能力来证明自己的观点。
把超级计算带给大众
黄仁勋
黄仁勋
每台个人计算机的大脑都是中央处理器,即CPU。此类芯片被设计成按顺序、一步一步执行计算;这样的模式对Windows和Office等传统软件来说好极了,不过有些视频游戏需进行大量计算,可能令CPU不堪重负,例如某些游戏会每秒多次渲染三维世界。因此,游戏玩家要仰仗GPU来提高性能。
GPU内部有许多执行单元(本质上是微型CPU),它们被封装在单块芯片上。游戏过程中,不同执行单元绘制屏幕不同区域。相较于仅使用CPU,这种并行性可以实现更高的图像质量和帧率。
1999年,英伟达发明GPU,自此占据市场主导地位。到2000年代中期,英伟达首席执行官黄仁勋认为GPU内部的强大计算能力不局限于游戏应用,希望科学家将其用于天气模拟或石油勘探等计算密集型任务。
2006年末发布的CUDA平台允许程序员编写所谓“内核”(kernels),即被设计为能在单个执行单元上运行的简短程序。内核允许将大型计算任务拆分为可并行处理的小块。这使得某些类型的计算能比单独使用CPU更快地完成。
不过CUDA发布时华尔街方面并不买账。
黄仁勋把超级计算带给大众,大众却表现得好像他们不想要这玩意儿。
有媒体人这样评论道:“英伟达在这种新芯片架构上投入巨大。他们把数以十亿计的美元砸向学术和科学计算领域一个不起眼的角落,一个市场体量小于他们投入量的角落。”
黄仁勋认为,CUDA的存在将扩大超级计算领域。但此观点并未得到广泛认同,到2008年底,英伟达股价已下跌70%……
CUDA的下载量于2009年达到顶峰,之后3年间持续下滑。董事会成员担心公司股价低迷会使他们成为掠夺式收购者的目标。
黄仁勋在创建CUDA平台时并未专门考虑人工智能或神经网络。但事实证明,反向传播算法很容易分解成小块,辛顿也很快意识到CUDA的潜力,因此训练神经网络成为CUDA的杀手级应用。
2009年,辛顿团队使用CUDA平台训练神经网络来识别人类语音,最终收获令人惊讶的结果并在当年晚些时候的一次会议上展示了它们。
后来辛顿联系到英伟达,表示自己已经告诉一千名机器学习研究人员应当购买这家企业的显卡,并希望对方赠送自己一张显卡,但遭到拒绝。
尽管如此,辛顿与他的研究生,亚历克斯 · 克里切夫斯基和伊尔亚 · 苏茨克维(Ilya Sutskever),还是为AlexNet项目拿到了一对Nvidia GTX 580 GPU——每个GPU都有512个执行单元,帮助两个研究生能以比使用CPU快数百倍的速度训练神经网络。
借助神速计算,他们训练更大规模的模型,并在更多训练图像上开展工作;此外,GPU也为处理庞大的ImageNet数据集贡献力量。
AI三大基本要素的首次融合
李飞飞
李飞飞
在加州理工学院读博期间,李飞飞建立了一个名为Caltech 101的数据集,它包括了归属101个类别的9000幅图像。
这段经历让她明白,计算机视觉算法往往在更大规模、更多样化的训练数据集上表现更好。
不仅李飞飞自己的算法因Caltech 101训练而出类拔萃,其他学者也开始使用该数据集训练模型并相互比较训练效果。
Caltech 101成为计算机视觉领域的基准。
2007年1月,李飞飞走上普林斯顿大学计算机科学教授的新岗位,并决定再搞个大的出来。
她着迷于视觉科学家欧文 · 比德曼(Irving Biederman)的一个估计,即普通人类可以识别大约30000种不同物体;那么,有无可能建立一个真正全面的图像数据集,一个囊括人们在现实世界中经常遇见的每一种物体的数据集?
普林斯顿大学的一位同事向李飞飞介绍了WordNet——一个试图对14万单词作分类和整理的庞大数据库。她给自己新建的数据集命名为ImageNet,并以WordNet作为选择类别的起点。她排除了动词、形容词以及无形名词(诸如“truth”),这样就剩下一个包含22000个可数对象(如“ambulance”,又如“zucchini”)的列表。
李飞飞计划采用与创建Caltech 101时相同的方法:通过谷歌的图像搜索查找候选图像,然后请人类验证它们。Caltech 101数据集的工作耗费了她几个月时间。而这一次,她需要更多帮助,于是招募了数十名本科生来帮她选择和标记图像。
但李飞飞与其研究生邓嘉计算发现,即便针对标记过程做出大量优化(例如预先下载候选图像以便学生立即查看),选择并标记数以百万计的图像需要至少18年时间。
亚马逊几年前推出的众包平台Amazon Mechanical Turk(简称AMT)拯救了该项目。
AMT平台不仅成本支出比请普林斯顿本科生更低,还具备更强的灵活性和可扩展性。借力AMT,李飞飞团队得以根据需求雇佣尽可能多的人力。
最终,李飞飞的实验室用时两年时间,“在财务紧张的情况下”完成ImageNet项目。(3名工作人员查看了最终数据集中的1400万张。)
2009年,李飞飞将成果提交给当年在迈阿密举行的计算机视觉和模式识别会议。论文被接收了,但没得到她所期待的认可。
李飞飞写道:“ImageNet被降级为海报会议。这意味着我们不会在某个预定时间向报告厅内的观众展示工作,而只能在会议楼层占个地儿摆幅海报来总结我们的工作,并希望路过者驻足问询……”
为激发公众兴趣,李飞飞搞起了比赛。她意识到完整的数据集太过庞大,没法发给数十名参赛者,于是创建了个小很多(但仍非常庞大)的数据集,其中包含1000个类别和140万张。
2010年举办的第一届比赛引起了人们的极大兴趣。共有11支队伍参赛,获胜者的作品基于支持向量机,不过“它只比其他前沿成果略有进步”。
第二届ImageNet竞赛吸引的参赛作品较上届更少,获胜的成果同样围绕支持向量机,比之前辈略有提升。
李飞飞开始自我怀疑。“或许ImageNet对大多数算法而言太难了。连续两年,老套的算法只表现出渐进式的性能提升。如果ImageNet是一场豪赌,那么现在是时候思考我们已输。”
然而,当李飞飞等人于2012年不情愿地举办第三届比赛时,故事迎来转折。
辛顿与其学生克里切夫斯基等人成为首个提交基于深度神经网络的模型的团队。排行第五的参赛者都实现了高达85%的准确率,比2011年冠军高出10个百分点。
杨立昆
2012年获胜者名单在意大利佛罗伦萨的欧洲计算机视觉大会上公布。当时刚生完孩子的李飞飞本不想参会,但她面对AlexNet在ImageNet数据集上取得的巨大成功,意识到那场会议无比重要无法错过。
当获胜的克里切夫斯基结束讲演后,同样参会的杨立昆站起来称AlexNet毫无疑问是“计算机视觉历史上的转折点”。这一转折点证明了辛顿对神经网络的信念,也是对杨立昆生涯工作的终极肯定。
AlexNet是一种卷积神经网络架构,而卷积神经网络由杨立昆于1980年末提出,用于识别支票上的手写数字。事实上,AlexNet与杨立昆几十年前的成果在架构上几乎无区别。只是前者规模大得多。
在1998年的一篇论文中,杨立昆描述了一个具有7层结构和6万个可训练参数的文档识别网络。AlexNet有8层,但这些层有6000万个可训练参数。
1990年代初期的杨立昆无法训练这么大的模型,因为当时没有计算机芯片具备2012年GPU那般的处理能力。即使他成功打造一台够大的超级计算机,他也没足够的图像来正确训练它。
在谷歌和亚马逊的AMT出现前的几年里,收集这些图像的成本非常高昂。这也是为何李飞飞围绕ImageNet所做的工作会如此关键。
她并没发明卷积网络,也没搞清楚怎样让它们在GPU上高效运行,但她提供了让大型神经网络充分发挥潜力所需的训练数据。
科技界立即意识到AlexNet的重要性。
辛顿与学生成立了一家壳公司,旨在被一家大型科技公司“收购”。几个月后,谷歌以4400万美元收购了它。接下来的十年间,辛顿一直为谷歌工作,同时保留着他在多伦多大学的学术职位。伊尔亚 · 苏茨克维在谷歌干了几年,后成为OpenAI联合创始人。
另一方面,AlexNet也使英伟达的GPU成为训练神经网络的行业标准。
2012年,市场对英伟达的估值不到100亿美元;眼下,市值超3万亿美元的他们是全球最有价值企业之一。如此高的估值主要源于对H100等针对训练神经网络进行优化的GPU的巨大需求。
李飞飞在今年9月面对美国计算机历史博物馆的采访时说道:“那一刻(杨立昆口中‘计算机视觉历史上的转折点’)对AI世界而言具有标志性意义,标志着现代人工智能3大基本要素的首次融合。第一个要素是神经网络。第二个要素是利用ImageNet的大数据。第三个要素是GPU计算。”
资料来源:
How a stubborn computer scientist accidentally launched the deep learning boom
END