深度学习带动了人工智能发展的新历程。2013 年 4 月,《麻省理工学院技术评论》杂志将深度学习列为 2013 年十大突破性技术之首。一大批初创公司乘着深度学习的风潮涌现,使得人工智能领域热闹非凡。现在,深度学习一时风光无两。但是,深度学习有没有它自己的局限性?它的未来会怎么样?
深度学习现在被用于翻译语言,预测蛋白质如何折叠,分析医学扫描,以及玩类似围棋的复杂游戏,这些仅仅是这种技术中一些应用,现在已经普及。上述及其他领域的成功,使得这一机器学习技术从 21 世纪初的默默无闻发展到今天的主导地位。
尽管深度学习的成名相对来说比较晚,但它的起源可并不晚。1958 年,当大型计算机挤满了房间,运行在真空管上时,康奈尔大学的 Frank Rosenblatt 受大脑神经元之间相互连接的知识启发,设计了第一个人工神经网络,他预见性地将其描述为一个“模式识别装置”。但 Rosenblatt 的雄心壮志超出了他那个时代的能力——他知道这一点。甚至连他的就职论文也不得不承认神经网络对算力的渴望,他哀叹道:“随着网络中连接数量的增加……传统数字计算机的负担很快就会变得过重。”
幸运的是,对于这样的人工神经网络——当它们包含额外的神经元层时,后来被重新命名为“深度学习”——数十年来的摩尔定律,以及计算机硬件的其他改进,使得计算机在一秒钟内能完成的计算数量增加了大约 1000 万倍。所以当研究人员在 2000 年代末回到深度学习的时候,他们有了足够的工具来应对挑战。
这种功能更强大的计算机使构建更多连接和神经元的网络成为可能,从而提高了对复杂现象建模的能力。研究人员利用这种能力打破了一个又一个记录,将深度学习应用到新的任务中。
尽管深度学习疾如流星般的迅速崛起,但是它的未来可能会很坎坷。就像之前的 Rosenblatt 一样,今天的深度学习研究人员正在接近他们的工具能够达到的前沿。要理解这为什么重塑机器学习,你必须先理解深度学习为何如此成功,以及保持这种成功所付出的代价。
深度学习是人工智能长期趋势的现代化身,这一趋势已从以专家知识为基础的流水化系统转向灵活的统计模型。早期的人工智能系统是基于规则的,应用逻辑和专家知识来推导结果。后来的系统结合了学习,以设定其可调参数,但这些参数通常数量很少。
今天的神经网络也学习参数值,但是这些参数是非常灵活的计算机模型的一部分,如果它们足够大,就能近似成通用函数,这意味着它们可以适用于任何类型的数据。这种无限的灵活性正是深度学习能够应用到如此多不同领域的原因。
神经网络的灵活性来自于对模型的大量输入,并允许网络以无数种方式将其组合。这就是说,输出将不是应用简单公式的结果,而是极其复杂的公式。
举例来说,当尖端的图像识别系统 Noisy Student 将图像的像素值转换为该图像中物体的概率时,使用了一个具有 4.8 亿个参数的网络。确定如此多的参数值训练甚至更了不起,因为它只用了 120 万张标记的图像——这可能会使我们这些从高中代数中应该记住更多的方程而非未知数的人感到困惑。打破这条规则才是关键所在。
深度学习模型过度参数化,即其参数多于可用于训练的数据点。这常常导致过拟合,即模型不仅能学习总体趋势,还能学习其训练的数据的随机变化。深度学习通过随机初始化参数,然后迭代调整参数集,这样就可以使用一种称为随机梯度下降的方法更好地对数据进行拟合,从而避免这种陷阱。出人意料的是,这一程序已经被证明可以保证所学模型具有很好的通用性。
在机器翻译中可以看出灵活的深度学习模型的成功。软件已经被用于将一种语言的文字翻译成另一种语言几十年了。这一问题的早期解决方案是使用语法专家设计的规则。但是,随着许多特定语言的文本数据的出现,统计方法——那些被称为最大熵(maximum entropy)、隐马尔可夫模型(hidden Markov models)和条件随机域(conditional random fields)的深奥名称——可以应用。
起初,对每种语言最有效的方式取决于数据的可用性和语法属性。比如,基于规则的方法翻译乌尔都语、阿拉伯语和马来语等语言最初要好于统计方法。如今,所有这些方法都已被深度学习所超越,而深度学习几乎在它的任何应用领域都显示出它的优势。
好消息是深度学习提供了极大的灵活性。坏消息是,这种灵活性是以巨大的计算成本为代价的。这个不幸的现实有两个部分。
从近几年的研究结果推断,到 2025 年,设计成用于识别 ImageNet 数据集中物体的最佳深度学习系统,误差水平应降至只有 5%(顶部)。但是,训练这样一个未来系统所需的计算资源和能源将是巨大的,因此产生的二氧化碳排放量相当于纽约市一个月的排放量(底部)。 (来源:N.C.Thompson、K.Greenewald、K.Lee、G.F.Manso)
第一部分对所有统计模型都是正确的。要使性能提高 k 倍,至少需要用超过 k² 个数据点对模型进行训练。计算成本的第二部分显然是由超参数化产生的。将这一点考虑在内,我们可以得出,改进的总体计算成本至少为 k⁴。这个指数中的小 4 已经非常昂贵了。例如,10 倍的改进就需要至少 10000 倍的计算量。
想要使灵活性和计算的权衡更清晰,可以考虑一个场景:你尝试预测病人的 X 射线是否显示了癌症。进一步假设,如果你测量 X 射线中的 100 个细节(通常称为变量或特征),就可以找到真正的答案。挑战在于,我们不能事先知道哪些变量是重要的,而且可能有非常多的候选变量需要考虑。
针对这一问题,专家系统的解决方法就是让那些在放射学和肿瘤学方面有研究的人员指定他们认为重要的变量,让系统只检查这些变量。灵活系统的方法是测试尽可能多的变量,让系统自己知道哪些是重要的,在这个过程中需要更多的数据并产生更多的计算成本。
专家已经确定了相关变量的模型可以迅速了解哪些数值对这些变量最为有效,并且在有限的计算量下做到这一点——这就是为什么它们在早期如此受欢迎。但是,如果专家没有正确指定模型中应包含的所有变量,它们的学习能力就会停滞不前。相比之下,像深度学习这样的灵活模型效率较低,而且需要大量的计算才能匹配专家模型的性能。然而,如果有足够的计算(和数据),灵活的模型可以胜过那些专家试图指定相关变量的模型。
很明显,如果你使用更多的算力来构建更大的模型,并且在更多的数据上训练它们,你就能从深度学习中得到更好的性能。但是,这样的计算负担到底有多昂贵呢?成本是否会变得太高而阻碍进展?
为明确回答这些问题,我们最近收集了超过 1000 篇深度学习研究论文的数据,包括图像分类、物体检测、问答、命名实体识别和机器翻译等领域。在本文中,我们将只详细讨论图像分类,但这些经验适用范围很广。
近年来,图像分类误差的减少伴随着计算负担的急剧增加。举例来说,在 2012 年,AlexNet 模型首次展示了在图形处理单元(GPU)上训练深度学习系统的能力,使用两个 GPU 进行 5~6 天的训练。到 2018 年,另一个模型 NASNet-A 将 AlexNet 的错误率降低了一半,但是它使用了超过 1000 倍的计算量来达到这一目标。
通过对这一现象的分析,我们还可以把实际发生的事情和理论预期相比较。这一理论告诉我们,计算至少需要四次方的性能改进才能扩展。在实践中,实际的需求至少要用九次方来扩展。
这个九次方意味着要将错误率降低一半,你可能需要超过 500 倍的计算资源。这一代价实在太贵了。不过,这里可能还有一些生气。事实和理论预测之间存在着差距,这可能意味着还有一些尚未发现的算法改进,可以极大地提高深度学习的效率。
我们已经指出,摩尔定律和其他硬件方面的进步大大提高了芯片的性能。那就意味着计算需求的升级无关紧要吗?很遗憾,不是的。在 AlexNet 和 NASNet-A 使用的 1000 倍的计算量中,只有 6 倍的改进来自于更好的硬件;其余的来自于使用更多的处理器或运行更长时间,导致成本增加。
对图像识别的计算成本 - 性能曲线进行估算后,我们可以利用它来估算将来达到一个更令人印象深刻的性能基准所需要的计算量。例如,要达到 5% 的错误率,就需要进行 10¹⁹ 亿次浮点运算。
来自马萨诸塞大学阿默斯特分校的学者们的重要工作使我们得以了解这种计算负担所带来的经济成本和碳排放。答案是严峻的:训练这样一个模型将花费 1000 亿美元,产生的碳排放量相当于纽约市一个月的碳排放量。如果我们估计 1% 的错误率所带来的计算负担,结果会更糟。
推断出如此多的数量级,这是否合理呢?是,也不是。当然,重要的是要理解这些预测并不精确,尽管在如此令人瞠目结舌的结果中,它们并没有必要传达不可持续的整体信息。如果我们假设研究人员一直沿着这条轨迹走下去,直到这个极端,那么这种推断就是不合理的。我们并没有。面对暴涨的成本,研究人员要么想出更有效的方法来解决这些问题,要么就放弃对这些问题的研究,进展将停滞不前。
在另一方面,推断我们的结果不仅是合理的,也是重要的,因为它表达了未来挑战的严峻性。这一问题的前沿已经开始显现。谷歌子公司 DeepMind 训练它的系统下围棋时,估计花费了 3500 万美元。DeepMind 的研究人员在设计一个玩《星际争霸 II》视频游戏的系统时,由于训练费用高昂,他们有意识地没有尝试多种方法来构建一个重要的组件。
最近,研究人员在一个重要的机器学习智库 OpenAI 中,设计和训练了一种广受赞誉的深度学习语言系统 GPT-3,耗资超过 400 万美元。虽然他们在实施该系统时犯了一个错误,但他们并没有改正,只是在其学术出版物的补编中解释说,“由于训练成本过高,重新训练该模型不可行。”
甚至科技行业以外的企业现在也开始对深度学习的计算成本望而却步。最近,欧洲一家大型连锁超市放弃了一个基于深度学习的系统,该系统可以显著提高对购买哪种产品的预测能力。这家公司高管放弃了这一尝试,因为他们认为训练和运行该系统的成本太高。
面临着日益增长的经济和环境代价,深度学习社区需要找到提高性能的方法,同时又不引起计算需求的激增。如果他们不这样做,进展将会停滞不前。但是不要绝望:为迎接这一挑战,人们正在做大量的工作。
一种策略就是使用专门为深度学习计算而设计的高效处理器。由于 CPU 让位给 GPU,在过去十年里,这种方法被广泛应用,在某些情况下会让位给现场可编程门阵列和专用集成电路(包括谷歌的张量处理单元)。从根本上说,所有这些方法都牺牲了计算平台的通用性,从而实现更高效的专业化。但是专业化面临着收益递减的问题。所以,长期的收益需要采用完全不同的硬件架构——也许是基于模拟、神经形态、光学或量子系统的硬件。但是,到目前为止,这些完全不同的硬件架构并没有产生多大影响。
减少计算负担的另一种方法主要是生成神经网络,在实现时,这类神经网络比较小。这一策略减少了每次使用它们的成本,但它经常增加训练成本(我们在本文中已详细说明)。这些成本中哪一项最重要,取决于情况。对被广泛使用的模型来说,运行成本是投资总额的最大部分。而在其他模型中,比如那些经常需要重新训练的模型,训练成本是主要的。无论那种情况,总成本都要大雨训练本身。所以,如果训练成本过高,就像我们所显示的那样,那么总成本也会很高。
同时,为了减少实施的规模,这也是各种策略所面临的挑战:它们并未完全降低训练成本。举例来说,有一种方法可以训练一个大型网络,但是在训练过程中对复杂性进行惩罚。另一种方法是训练一个大型网络,然后“修剪”掉不重要的连接。还有一种方法是通过对许多模型进行优化,寻找尽可能有效的架构——即所谓的神经架构搜索。虽然这些技术中的每一种都能为实现带来显著的收益,但是对训练的影响却很微弱——当然不足以解决我们在数据中看到的问题。而且很多时候,它们会增加训练成本高。
一项新出现的技术可以降低训练成本,这被称为“元学习”(Meta-learning)。其思想是,系统从各种数据中学习,然后可以应用到很多领域。举例来说,与其建立单独的系统来识别图像中的狗、图像中的猫和图像中的汽车,不如使用一个系统训练所有这些数据并多次使用。
很不幸,麻省理工学院的 Andrei Barbu 最近的研究揭示了元学习有多么难。他和他的合作者表示,即使是原始数据和你想使用它的地方之间的微小差异都可能严重影响性能。他们证明,目前的图像识别系统在很大程度上依赖于拍摄对象是否以特定的角度或特定的姿势进行拍摄。所以,即使是识别不同姿势的相同物体的简单任务,也会导致系统的准确性几乎减半。
加州大学伯克利分校的 Benjamin Recht 等人更明确地指出了这一点,他们表明,即使有特意构建的模仿原始训练数据的新数据集,性能也会下降 10% 以上。如果数据的微小变化都会导致性能的大幅下降,那么一个全面的元学习系统所需要的数据可能是巨大的。因此,元学习的广阔前景还远未实现。
另外一种可能的策略是,避开深度学习的计算极限,转而使用其他可能尚未被发现或未被重视的机器学习类型。正如我们所描述的,基于专家的洞察力而构建的机器学习系统在计算上会更有效率,但如果这些专家不能区分所有的影响因素,那么它们的性能就无法达到与深度学习系统相同的高度。目前神经符号方法和其他技术正在发展之中,以结合专家知识和推理的力量与神经网络中常有的灵活性。
就像 Rosenblatt 在神经网络诞生之初所面对的情况一样,今天的深度学习也开始受到现有计算工具的限制。由于计算规模将在经济上和环境上都被“毁灭”,因此我们必须调整深度学习的方法,或者面对一个发展更缓慢的未来。很明显,我们需要适应。明智的突破也许能找到一条途径,让深度学习更加高效或者计算机硬件更加强大,从而让我们能够继续使用这些特别灵活的模型。否则,钟摆很可能会重新回到依赖专家来确定需要学习什么。
作者介绍:
Neil C. Thompson,麻省理工学院计算机科学和人工智能实验室的研究科学家。
Kristjan Greenewald,麻省理工学院 IBM Watson 人工智能实验室研究人员。
Keeheon Lee,首尔延世大学助理教授。
Gabriel F. Manso,巴西利亚大学学生。
原文链接:
https://spectrum.ieee.org/deep-learning-computational-cost