社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

强大的人工智能推理(五):深度学习的回报在减少

人工智能学家 • 3 年前 • 459 次点击  

深度学习技术如今变得越来越普遍,其应用包括语言翻译、预测蛋白质的折叠过程、分析医学扫描、玩围棋之类的复杂游戏等。在多个领域的成功使这种机器学习技术从21世纪初的默默无闻发展到了今天的主导地位。

虽然深度学习近几年才声名鹊起,但它的诞生时间却不短。1958年,填满房间的大型计算机还依靠真空管运行,康奈尔大学的弗兰克•罗森布拉特(Frank Rosenblatt)受大脑神经元之间的相互连接知识的启发,设计出了第一个人工神经网络,他非常有远见地将其描述为一种“图形识别设备”。不过,罗森布拉特的雄心超过了他那个时代的能力,而且他知道这一点。他甚至在第一篇关于神经网络的论文中就被迫承认了神经网络对计算能力的贪婪需求,哀叹“随着网络连接数量的增加……传统数字计算机的负担很快会变得过重”。
幸运的是,针对这种人工神经网络(后来随着额外神经元层的加入被重新命名为“深度学习”),几十年来,摩尔定律和计算机硬件方面的其他改进使计算机在1秒内可以完成的计算量提高了大约1000万倍。因此,21世纪末研究人员研究深度学习时使用的是足以应对挑战的工具。
这些功能更强大的计算机让构建具有大量连接和神经元的网络成为可能,从而提高了对复杂现象建模的能力。随着研究人员将深度学习应用于新的任务,他们凭借这种能力打破了一个又一个纪录。
虽然深度学习的崛起很快,但它的未来可能充满坎坷。与之前的罗森布拉特一样,如今深度学习研究人员的工具可实现的效果正在接近极限。要理解为什么这会重塑机器学习,我们必须首先理解为什么深度学习如此成功,以及保持它的成功需要付出什么代价。
深度学习是人工智能在现代的体现,这种趋势正在从基于专家知识的精简系统转向灵活的统计模型。早期的人工智能系统以规则为基础,通过应用逻辑和专家知识得出结果。后来的系统则加入了学习设置可调参数,但其数量通常很少。
今天的神经网络也会学习参数值,但这些参数是灵活的计算机模型的一部分,如果足够大,它们可以成为通用函数逼近器,这意味着它们可以适合任何类型的数据。正是得益于这种无限灵活性,深度学习才可以应用于如此多的不同领域。
神经网络的灵活性源自采用广泛的模型输入和以多种方式组合网络。这意味着输出将不再是应用简单公式得出的结果,而是非常复杂的公式所产生的结果。
例如,先进的图像识别系统Noisy Student在将图像的像素值转换为图像中是什么物体的概率时,它使用的是具有4.8亿个参数的网络。为确定这么多参数值而进行的训练更加惊人,因为它只使用了120万张带标签的图像,显然,这可能会让人感到困惑,因为根据我们学习的高中代数,方程数应该比未知数多。所以,打破这条规则是关键。

深度学习模型是过参数化的,也就是说,其参数多于可用于训练的数据点。传统上来说,这会导致过度拟合,模型不仅学习一般趋势,还学习训练数据的随机变化。深度学习通过随机初始化参数,然后使用名为“随机梯度下降”的方法迭代调整参数集以更好地拟合数据,从而避免了这种陷阱。令人惊讶的是,现已证明这一过程可以确保很好地泛化所学模型。

从机器翻译中就可窥见灵活的深度学习模型的成功。几十年来,我们一直在用软件将文本从一种语言翻译成另一种语言。早期处理这个问题时,我们使用的是语法专家设计的规则,但随着特定语言的可用文本数据越来越多,我们可以应用统计方法,比如最大熵、隐马尔可夫模型和条件随机场等名称深奥的方法。
最初,最适合每种语言的方法因数据的可用性和语法属性而异。例如,最初使用基于规则的方法翻译乌尔都语、阿拉伯语和马来语等语言的效果要优于统计方法。如今,所有这些方法都被深度学习所超越,事实证明,深度学习在几乎所有应用领域都具有优越性。
因此,好消息是深度学习具有巨大的灵活性。坏消息是,这种灵活性带来了高昂的计算成本。这一不幸的现实分为两部分。
第一部分适用于所有统计模型:为了将性能提高k倍,必须再使用至少 K2数据点来训练模型。计算成本的第二部分显然来自过参数化。一旦涉及这个问题,所产生的性能提高总计算成本至少为k4倍。4的指数虽然小但却非常昂贵:比如,10倍的提高需要增加至少1万倍的计算量。
为了更加生动地解释灵活性计算权衡,我们可以设想这样一个场景:预测患者的X光片是否提示癌症。我们进一步假设,在X光片中测量100个细节(通常称为变量或特征)就可以得到真正的答案。那么我们面临的挑战是,我们无法提前知道哪些变量是重要的,而且可能有大量候选变量需要考虑。
专家系统解决这个问题的方法是让熟悉放射学和肿瘤学的人指出他们认为重要的变量,让系统只检查这些变量。灵活系统采取的方法是测试尽可能多的变量,让系统自己找出哪些是重要的变量,这需要更多的数据,并且会在该过程中产生更高的计算成本。
由专家建立相关变量的模型只需有限的计算量便能快速学习哪些值对这些变量最有效,因此这些模型在早期很盛行。不过,如果专家没有正确指出模型应该包含的所有变量,它们的学习能力就会停滞。相比之下,深度学习等灵活模型的效率较低,需要大量计算才能匹敌专家模型的性能,但是,有了足够的计算(和数据),灵活模型的表现会比由专家指定相关变量的模型更好。

显然,如果使用更多的计算能力来构建更大的模型并使用更多的数据来训练它们,我们可以借助深度学习获得更高的性能,但这种计算负担的成本如何?成本是否会高到阻碍进步呢?

为了具体地回答这些问题,我们最近从1000多篇深度学习研究论文中收集了数据,涉及图像分类、对象检测、问答、命名实体识别和机器翻译等领域。在此,我们只详细讨论图像分类,但其经验教训广泛适用。
多年来,减少图像分类错误带来了巨大的计算负担。例如,2012年,AlexNet模型接受了两个GPU为期五六天的训练,它是第一个展示了对深度学习系统进行图形处理单元(GPU)训练的力量的模型。2018年,另一个模型NASNet-A将AlexNet的错误率降低了一半,但它使用了1000多倍的计算量才实现这一点。

通过分析这一现象,我们还比较了实际发生的情况与理论预期。理论告诉我们,改善性能至少需要将计算量提高4次方,而在实践中,实际需求至少为9次方。

9次方意味着要将错误率减半,我们可能需要500多倍的计算资源。其代价极高,不过可能还有一线希望。现实与理论预测之间的差距可能意味着仍有未被发现的算法改进,可以大大提高深度学习的效率。
正如我们所注意到的,摩尔定律及其他硬件进步大大提高了芯片性能。这是否意味着计算需求升级无关紧要?事实并非如此。在AlexNet和NASNet-A使用的1000倍计算差异中,只有6倍的提高得益于更好的硬件;其余的则得益于使用了更多的处理器或更长的运行时间,因此产生了更高的成本。
估计了图像识别的计算成本-性能曲线之后,我们可以使用它来估计未来要达到更出色的性能基准所需的计算量。例如,实现5%的错误率需要1020亿次浮点运算。
通过马萨诸塞大学阿默斯特分校的学者开展的重要工作,我们可以理解这种计算负担所隐含的经济成本和碳排放量。答案令人沮丧:训练这样一个模型将花费1000亿美元,而且产生的碳排放量与纽约市1个月的碳排放量相当。如果估算错误率为1%,结果会更糟。
推断出这么高的数量级合理吗?合理,也不合理。当然,尽管有这么惨不忍睹的结果,但我们要知道,这些预测并不精确,它们不必传达不可持续性的总体信息,这一点很重要。如果我们假设研究人员会沿着这条轨迹一直走下去,直到得出如此极端的结果,那么这种推断是不合理的。我们没有这样假设。面对飞涨的成本,研究人员要么必须提出更有效的方法来解决这些问题,要么放弃对这些问题的研究,进步也将就此停滞。
另一方面,我们的推断结果不仅合理而且很重要,因为它提示了未来挑战的规模。这个问题的前沿已显而易见。谷歌子公司DeepMind训练其系统下围棋时,估计花费将达3500万美元,而DeepMind研究人员设计玩《星际争霸2》电子游戏的系统时,则故意没有尝试多种方法来设计一个重要的组件,因为训练成本太高了。
OpenAI是一家重要的机器学习智库,其研究人员最近耗资400多万美元设计和训练了一个备受赞誉的深度学习语言系统GPT-3。虽然他们在实施该系统时犯了一个错误,但他们并没有进行纠正,只是在学术出版物的附录部分解释说“由于训练成本问题,对模型进行再训练不具有可行性。”
甚至科技行业外的企业现在也开始规避深度学习的计算费用。欧洲一家大型连锁超市最近放弃了一个基于深度学习的系统,虽然该系统能显著提高其预测哪些产品销路更畅的能力。公司高管之所以放弃这一尝试是因为他们认为该系统的训练和运行成本太高。
面对不断上升的经济和环境成本,深度学习界需要找到方法以便在不引起计算需求激增的情况下提高性能。如果不这样做,进步就会停滞不前,但无需绝望,我们正在做大量工作来应对这一挑战。

一种策略是使用专门针对深度学习计算设计的高效处理器。这种方法在过去十年中得到了广泛应用,CPU被GPU所取代,在某些情况下,还被现场可编程门阵列和专用集成电路(包括谷歌的张量处理单元)所取代。从根本上说,为了提高专业化的效率,这些方法都牺牲了计算平台的通用性。不过这种专业化面临着回报递减的问题。因此,要获得长期收益需要采用完全不同的硬件框架,可能是基于模拟、神经形态、光学或量子系统的硬件。然而到目前为止,这些完全不同的硬件框架尚未产生重大影响。

另一种减轻计算负担的方法是搭建(实现时)更小的神经网络。每次使用这种策略都会降低成本,但通常也会增加训练成本(到目前为止,我们一直在本文中介绍这一点)。这些成本中哪一项最重要需要视情况而定。对于一种广泛使用的模型而言,运行成本在总投资中所占比例最大。对于其他模型(例如经常需要再训练的模型)而言,训练成本可能占主导地位。无论哪种情况,总成本都大于训练本身的成本。因此,如我们所示,如果训练成本过高,那么总成本也会过高。
这就是各种缩小实现规模的策略所面临的挑战:它们不能充分降低训练成本。例如,一种策略可训练一个大型网络,但会在训练过程中牺牲复杂性。另一种策略是训练一个大型网络,然后“修剪”掉不重要的连接。还有一种策略是通过优化多个模型(称为“神经结构搜索”),找到尽可能高效的架构。虽然这些技术中的每一种都能为实现带来显著益处,但对训练的影响比较小,当然也不足以解决我们在数据中看到的问题。此外,在很多情况下,它们会增加训练成本。
有一项名为“元学习”的技术有望降低训练成本。其理念是让系统学习各种数据,然后应用于许多领域。例如,与其构建单独的系统来识别图像中的狗、图像中的猫和图像中的汽车,不如用全部图像对单个系统进行训练并多次使用。
可惜的是,麻省理工学院的安德烈•巴布(Andrei Barbu)在最近的研究中揭示了元学习的难度。他及共同作者指出,即使原始数据与这些数据的期望应用场景之间存在微小差异,也会严重降低性能。他们证明,当前的图像识别系统在很大程度上取决于对象是从特定角度拍摄的还是以特定姿势拍摄的。因此,即使是识别不同姿势的同一个对象这种简单任务,也会使系统的精确度降低近一半。
加州大学伯克利分校的本杰明•雷希特(Benjamin Recht)等人更直截了当地表明了这一点,他们指出,即使有专门为模仿原始训练数据而构建的新数据集,性能也会下降10%以上。如果数据上的微小变化也会导致性能的大幅下降,那么一个全面的元学习系统所需要的数据可能非常巨大。因此,元学习的广阔前景远未实现。
另一种可能规避深度学习计算限制的策略是转向其他可能尚未发现或未被充分认识的机器学习类型。正如我们所述,基于专家洞察构建的机器学习系统的计算效率较高,但如果专家不能区分所有影响因素,那么其性能就无法达到深度学习系统的水平。目前人们正在开发神经符号方法和其他技术,将专家知识和推理的力量与神经网络中常见的灵活性结合起来。

就像罗森布拉特在神经网络诞生之初所面临的情况一样,深度学习如今正受到可用计算工具的限制。面对经济和环境成本高昂的计算规模扩张,我们必须要么调整深度学习方式,要么面对进步缓慢的未来。显然,调整是更好的选择。通过巧妙的突破,我们可能会找到提高深度学习效率或增强计算机硬件性能的方法,帮助我们继续使用这些非常灵活的模型。否则,摇摆的局面很可能会偏向更多地依靠专家来确定需要学习的内容。

作者:Neil C. Thompson, Kristjan Greenewald, Keeheon lee ,Gabriel F. Manso

IEEE Spectrum

《科技纵览》

官方微信公众平台






往期推荐
强大的人工智能推理(四):人工智能,人在其中
强大的人工智能推理(三):从7个方面看人工智能的失败
强大的人工智能推理(二):深度学习的工作原理
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/125568
 
459 次点击