神经网络简史(下)——「深度学习」会迎来终结者吗?

神经网络简史(下)——「深度学习」会迎来终结者吗?

前情提要

《神经网络简史(上)——从“极高的期待”到“极度的怀疑”》

第三周期的复兴:深度学习

Geoffrey Hinton、Yoshua Bengio和Yann LeCun获得2018年图灵奖是众望所归。

Geoffrey Hinton, Yoshua Bengio, Yann LeCun(从左至右),拍摄者:Eviatar Bach, Jérémy Barande

在那漫长的神经网络的第二个冬天里,正是他们的坚持才迎来了第三周期的复兴,而且势头远远大于前面两次。其中,Hinton是1986年和2006年两次里程碑式论文的作者,也是BP算法和玻尔兹曼机的提出者;Bengio在词嵌入与注意力机制、生成式对抗网络、序列概率模型上有贡献;LeCun独立发现并改进了BP算法,发明了卷积神经网络。

——

神经网络之所以翻身了,关键还是在一些经典的难问题上展示了实用性,把一些停滞了很久的问题向前推进了。

先是体现在手写字符识别MNIST(2006)上,然后是在语音识别(2010)和图像分类ImageNet(2012)上。ImageNet ILSVRC 2012竞赛是神经网络方法第三次兴起的标志性事件。国内同步就有了报道,余凯当天在微博上说:

Deep learning令人吃惊!最*第三届ImageNet Challenge上,Hinton团队获得第一,Hit Rate@Top5 =84%,比第二名高出10%!第一届比赛,我带领的NEC团队获得第一,成绩是72%。去年第二届,Xerox Lab获得第一,但结果和我们前年的差不多,无实质进步。今年可是飞跃了。

之后另一个标志性事件是2016年 AlphaGo 击败围棋世界冠军李世石,背后基于深度强化学习方法。

李世石与 AlphaGo 围棋人机大战,图源:腾讯科技

这件事有极大的公众宣传效果,激发了一轮深度学习风险投资的狂潮。在机器阅读理解竞赛SQuAD上,自2018年以来,序列到序列学习模型也取得了与人类匹敌的成绩。

效果是反驳一切怀疑的最好的武器。

为什么深度学习能战胜“第二代终结者”,取得这么好的成绩呢?

下面从「算法细节」、「算法哲学」、「工程成本」三个角度谈一些个人看法。

  • 从算法细节的角度分析

上篇我们提到链式求导带来一系列问题。单隐层全连接造成收敛速度不够快,但是由于“梯度消失”(或对偶的“梯度爆炸”)问题,难以实现多隐层误差反向传播。而且,网络还有泛化能力不好、容易过拟合等问题。它的解决方法其实并不复杂。

首先,用分段线性函数 ReLU(Rectified Linear Units): f(x)=max(0,x) 取代 sigmoid 激活函数——这个函数甚至不是严格可微的。线性保证了它的导数不会趋*于零,分段线性则保证了我们可以分段逼*一个函数,尽管从理论上这个逼*不*滑,但是工程上够用。

Softplus是*滑版的Relu函数

实践表明,ReLU函数在训练多层神经网络时,更容易收敛,并且预测性能更好。这不是从理论推导出来的结果,而是有了实践之后,反过来总结出来的。

我们发现单侧抑制一些神经元(ReLU的实际作用)会导致“表征稀疏”,而这反而是好事,既让表示更具有鲁棒性,又提高了计算效率。

这种丢弃信息反而提高效果的工程实践在深度学习的其他一些细节也有体现。比如,“丢弃”算法(dropout)通过每次训练让部分神经元“装死”来避免过拟合,卷积神经网络中引入“池化”(pooling)丢弃一些输入信息反而会指数级减小泛化误差。

以上种种工程技巧,基本原理并不复杂,一旦捅破窗户纸,不免给人“原来如此简单”的感觉。与当初战胜“第一代终结者”也颇有类似之处,就是并非依赖一个高深莫测的新理论,而是依赖一些朴素的“常识”,去从工程上想办法。

那为什么这些看似简单的方法,要过十几年才被接受呢?大概是因为学术界的遗忘周期是15年吧!三代博士过后大家基本就不记得从前了。正所谓“人心中的成见是一座大山”,直到连成见都被遗忘了,才会有新的开始。

  • 从算法哲学的角度来分析

总的来说,神经网络的演进一直沿着“模块化+层次化”的方向,不断把多个承担相对简单任务的模块组合起来。

BP网络是感知器的层次化,深度学习网络则是多个BP网络的层次化——当然后来也出现了多种非BP网络的深度层次化。Hinton最*提出的“胶囊”(capsule)(文章:Dynamic Routing Between Capsules)网络就是要进一步模块化。

层次化并不仅仅是网络的拓扑叠加,更重要的是学习算法的升级,例如,仅仅简单地加深层次会导致BP网络的梯度消失问题。

从本质上说,深度学习网络可以比经典的BP网络处理更复杂的任务,在于它的模块性,使得它可以对复杂问题“分而治之”(Divide and Conquer)。

无论是多层前馈网络,还是循环神经网络,都体现了这种模块性。因为我们处理的问题(图像、语音、文字)往往都有天然的模块性,学习网络的模块性若匹配了问题本身内在的模块性,就能取得较好的效果。

这可以看成一种连接主义的“动态规划”,把原来全连接网络的训练这种单一决策过程,变成了多阶段决策过程。例如,在多层卷积网络对图像的处理中,会出现不同的层次依次“抽取”出了从基础特征到高层次模式的现象,每一层基于上一层的输入,就相当于很多子任务可以被重用了。所以这种方法也被称为表示学习(representation learning)方法。

这样的好处是多方面的,既极大提高了学习收敛的速度(解决了维度灾难),又可避免那些“不合理”的局部最优解(因为它们在模块性匹配的过程中被自然淘汰了)。

从这个角度去理解,深度神经网络是“优雅”的,在于它简洁而美。

一个“好”的模型,通常是“优雅”的。这很难说是什么科学道理,但是就和物理学一样,一个计算机科学的算法,如果它是技术主干道上的一个有深远价值的东西,往往它是“美”的,简洁的,没有太多补丁。

一个糟糕的算法,就好像托勒密的“本轮”,一个补丁套一个补丁,或者像在发明抗生素之前治疗肺结核的方法,神秘而不可解释。

如之前给BP网络和Hopfield网络打各种补丁的方法,前置各种ad-hoc不变形特征提取器,用进化算法训练网络结构,用局部定位消除虚假吸引子等等,数学上都高深莫测,但是效果并不好。现在回头看,那些模型都很“丑”。

深度学习把学习分层,不是个数学问题,而是个知识重用问题,每一层自然分解出不同等级的特征,从底层特征到高层特征。这样一下子就把原来打几千种补丁的必要性都消灭了。

这个架构是优雅的,也同时解决了收敛速度问题和泛化问题,因为它触及了问题的本质。一个优雅的方法,基本的原理往往是特别好懂的,不用看公式就能懂。

这里多说一句,深度学习模型现在大火的同时,也出现了很多对它的“本轮”补丁,如一些几百层的神经网络模型。搞得这么复杂的模型,通常在技术演进上是旁支。

  • 从工程成本角度分析

深度学习的成功,工具系统的可用性是很关键的因素。工具大大降低了运用这些方法的门槛。

深度学习被采用,并不一定是因为它效果最好——许多场合可能就和传统方法的最好水*差不多。

但是,发挥传统方法的最好水*需要一位有多年经验的“老中医”,而深度学习工具可以让一个刚出道的学生就达到相*或稍差的表现,在语音和图像场景上更可以超出传统方法。这从管理学和经济学上都带来了巨大的好处。

- 例如2006年Netflix推荐算法大赛,冠军团队利用集成算法,整合了107种算法,最后提高了10个百分点。

- 而2016年,有人用Keras写了一段不到20行的深度神经网络程序就得到了类似的结果。

- 又如基于深度学习的依存文法解析器senna和传统的Stanford parser相比,效果接*,略差一点,但是从建模复杂性上,senna就远远比Stanford parser简单了,senna只用了一个零头的代码量就达到了接*的效果。

以前需要“老中医”来做特征工程,现在交给深度学习来进行表示学习(representation learning),通过深度神经网络中的逐层加工,逐渐将低层的特征表示转化为高层的特征表示。

同样,以前也需要“老中医”来对核函数(kernel)、卷积模板(mask)等强烈依赖经验的计算单元进行选择或者构造,这限制了可能的学习种类。深度学习网络相当于可以从数据中学习kernel或者mask,大大提高了灵活性,降低了对经验的依赖。

又如,在深度学习中广泛采用预训练模型(如最*很火的BERT)。这个想法的本质是知识重用。可复用的预训练模型作为“工作母机”,可以被后续的工程再去针对特定的任务修正和调优。

综上所述,大量深度学习工具的出现,大大降低了神经网络的入门门槛,大大增加了神经网络工程师的供给总量,大大降低了领域专家介入成本,从而有利于控制工程总成本。

不过,现实的问题求解并不是单一工序。任何一个实际问题的解决,都需要工程上的细致的问题分解,并不总是存在“端到端”的方法,多种工具的组合运用是工程不可或缺的。

随着深度学习的普及,最*几年毕业的学生,很多甚至不知道深度学习之外的方法了,连传统机器学习都丢掉了,更不用说规则方法了,这对实际解决问题将是有害的。

会有第三代终结者吗?

深度学习如今进入了本轮高潮的第7个年头,正如日中天,在前所未有的海量资金投入时,讨论是不是会有什么因素导致本轮高潮的结束似乎是杞人忧天。

有人认为,这一次的神经网络复兴将是最后一次,因为神经网络将不可能再次进入低谷。

不过,“一切伟大的世界历史事变……可以说都出现两次”。“极高的期待导致极度的怀疑”这件事已经发生两次了,如今正处在第三次“极高的期待”中,很多名人又开始担心人工智能威胁人类了。

电影《机械公敌》(又名《我,机器人》)剧照,展现了人类对人工智能发展的担忧

为了这一领域的健康发展,我们也应该审视深度学习是不是有其自身的边界,并提前想一想对这些边界的应对。

如之前的分析,第二代终结者问题(链式求导的副作用)恰恰是为了解决第一代终结者问题(非线性分类)而带来的新问题。

那终结第三次神经网络高潮(深度学习)的会不会也是为了解决第二代终结者问题而导致的新问题呢?

  • “暴力美学”问题

当我们加深网络层次并引入模块性的时候,会带来什么副作用呢?

现在深度学习反而变得越来越贵,层数越来越多,预训练模型也越来越昂贵,深度学习在很多场景下反而变成了“暴力美学”,成为拼数据、拼GPU的烧钱游戏。

但是,其实去非巨头的企业走走就会知道,大多数的领域落地问题,还不能承担这种成本,尤其是很多机构组织的问题解决,必须从低成本小问题开始。

“暴力美学”式的深度学习,就只能停留在“头部问题”(即存在大量数据和大量算力的问题)上,而难以解决大多数垂直领域问题。

  • “炼丹”问题

深度学习的结果越来越难以解释和定向优化,整个系统是个“炼丹”的黑箱。

当然,这个问题不是深度学习独有的,是整个“连接主义”方法共同的问题。只是深度学习把这种“炼丹”推到了一个全新的高度,调参的效果往往不可理解,没法解释。

但是非常多的应用问题,如医疗和自动驾驶,的确是需要可解释性和定向优化的,这就限制了应用的效果。

  • 递归性序列问题

黑箱问题本身可能还不是致命的,但是它又带来了另一个问题:一些在人看起来很清晰的问题,基于海量的训练数据机器还是学习不好。

这类问题通常是一种“递归性生成规则”,最简单的如数字的构成规则,基于这些规则可能生成无穷无尽的序列。基于纯语料对齐技术训练,就很难得到不出错的中英文数字翻译。

类似的递归性序列不仅在语言中大量存在,在表格、篇章等结构中也广泛存在。

深度学习到底能不能在工程上解决这类语法归纳(grammar induction)问题,还是个待实践的问题。

  • 知识融合问题

这个问题也是*来学术界关注的热点。如何把先验知识或者“知识图谱”(即数据本身的结构性)融合进深度神经网络?

各类的向量化方法被提出,语义并不依赖于把符号直接映射到模型世界的个体上,而取决于个体的统计特性。但是除了词向量,其他更复杂的知识结构(例如属性、二元关系和表达式)在工程上依然鲜有成功。

在自然语言处理中,外源知识恐怕是难以避免的,目前的向量化方法,似乎还不足以独立完成这个任务。

深度学习的这些问题(潜在的“第三代终结者”问题),也同样是难以仅仅用拓扑的改良来解决的,例如增加神经网络层数或者再提升数据的量级。可能需要我们进一步提出更先进的网络结构,或者融合其他的AI工具,而不仅是“打补丁”(和二十多年前一样)。

读者可能也会得出自己的“终结者问题”。思考这些问题,并不意味着我们否定深度学习,而是有助于我们进一步拓宽思路。

也许,如之前的两次复兴一样,答案并不复杂,需要的仅仅是从常识出发,去发现工程的技巧。

本文为文因互联CEO鲍捷为《深度学习导论》一书作序

作者:[美]尤金·查尔尼克(Eugene Charniak)

  • 人工智能经典入门书
  • 美国常青藤名校经典教材
  • 理论与实战结合的良好典范
  • 附带习题和答案

本书讲述了前馈神经网络、Tensorflow、卷积神经网络、词嵌入与循环神经网络、序列到序列学习、深度强化学习、无监督神经网络模型等深度学习领域的基本概念和技术,通过一系列的编程任务,向读者介绍了热门的人工智能应用,包括计算机视觉和自然语言处理等。

本书编写简明扼要,理论联系实践,每一章都包含习题以及补充阅读的参考文献。

本书既可作为高校人工智能课程的教学用书,也可供从业者入门参考。

 

posted @   菜鸡一枚  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2015-06-28 Growing Pains for Deep Learning
2015-06-28 优秀简历要遵循哪些规则
2015-06-28 当你学不进去的时候,试试“普瑞马法则”
2015-06-28 如何成为一名好的研究生
2015-06-28 What qualities characterize a great PhD student
2015-06-28 拌饭酱
2015-06-28 如何做一场完美的科研报告
点击右上角即可分享
微信分享提示