终于有人把人工智能和深度学习讲明白了

Posted 大数据v

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了终于有人把人工智能和深度学习讲明白了相关的知识,希望对你有一定的参考价值。


导读:人工智能、机器学习和深度学习三者有什么联系和区别?

作者:木羊同学

来源:华章计算机(ID:hzbook_jsj)

01 人工智能、机器学习和深度学习的关系

在智能科学领域,有一个初学者很爱问的问题:人工智能、机器学习和深度学习三者有什么联系和区别?

这个是既简单又复杂的问题。这个问题是有标准答案的。答:三者是包含关系,即人工智能包含机器学习,机器学习包含深度学习。可是,如果你一旦细究,就会发现这个问题远比标准答案要复杂得多。

先说一个很容易产生的误区。我们在新闻上经常能看到:某某产品使用了人工智能技术,就具备了怎样“叹为观止”的能力,让人很容易产生一种错觉,以为人工智能和涡轮增压一样,就是一种技术,所有的“人工智能”产品,用到的都是同一种叫“人工智能”的技术。

但实际上,人工智能是一片森林,森林里的每一颗树,都是一条技术原理完全不同的路线。为什么会有这么多不同的路线呢?原因很简单,别看一说人工智能,许多大V都能侃侃而谈,其实大家都在盲人摸象,直到现在也还不知道到底哪一条才是通往真正智能的康庄大道。可能都是,也可能都不是,怎么办呢?那就多路并举。

有多少路呢?总的来说可以分为三路,或者叫三种主流学派:符号主义、连接主义和行为主义。你随便去翻一本人工智能的教材,你就能看到这三种主义都是什么。

不过,这并非唯一的分法。一些文献会将主要路线分为两条:基于规则和基于统计。我更喜欢这种分法——清晰、易懂、好落地。

基于规则的想法很朴素,譬如说语法分析:如果我把所有的语法规则都穷尽了,做出来的语法分析器不就“智能”了吗?理想很丰满,现实很骨感,最大的问题就在于“大”——工作量大。基于规则的路线很多人试了,结论就是:哪怕只是语法,不同的情况也非常多,要穷尽所有规则只能是挂一漏万,人力不可能为之。

目前的赢家是基于统计,优势是成本低,不需要人肉写规则,而且效果还好。机器学习就是基于统计的智能算法。

初学者经常爱问的另一个问题是“机器学习的本质是什么”。我认为很简单,就是用模型拟合数据的分布。对于机器学习来说,数据很重要,非常重要,学过机器学习的同学可能听过一句话,叫“数据决定了性能的天花板”,而选择哪款模型,则决定你与天花板的距离。

可是,为什么呢?就因为:机器学习的本质是拟合数据的分布。如果你得到的数据质量并不好,样本分布和真实分布存在偏差,模型的性能就一定好不了。这就相当于,你考试前背答案,但是答案本身就错了,你背得越熟,结果只能错得越离谱。

机器学习也不是某一种技术,而是一筐技术。譬如有支持向量机、决策树、最近邻等等,单拎出来都可以算是一条技术路线,其中有一路叫神经网络,有的人觉得应该和生物学的神经网络有所区别,应该叫人工神经网络(ANN)——以生物学的神经网络为蓝本设计的机器学习算法。

光听名字,就让人感觉这个算法非常有前途,实际上也确实很有前途,现在大名鼎鼎的深度学习,就是神经网络的Plus版。

02 从神经网络到深度学习

神经网络和深度学习的关系是个热门话题,甚至干脆就叫这个名字的书我都翻过好几本。相关的内容我也写过几次分享,最近在看一本书,是Charu C.Aggarwal写的《神经网络与深度学习》,对这个话题又有更深的了解。

我们知道,近几年人工智能又成了热议的话题和投资的风口,而推高这一波热潮的技术叫深度学习。前面介绍了人工智能、机器学习和深度学习三者是包含关系,不过还是有不少不严谨的媒体,俨然把深度学习当作了人工智能的代名词,那接下来就专门聊聊,这个深度学习到底是怎么一回事。

上面我们提到了神经网络,从技术脉络来说,深度学习就是神经网络这一支系下的一条分叉。所谓深度,其实就是神经网络层数很多的意思。神经网络的发展历程非常曲折,经历了两次大低谷,每次都被打上“此路不通”的标签。

第一次是在1960年代,当时出了一本书叫《感知机》,这是一本在神经网络上具有里程碑意义的著作,在数学上证明了(单层)神经网络无法学习异或,也就是我们熟知的XOR操作。我看过有些教材上直接就写是“神经网络无法学习异或”,这是误导,我们现在使用的多层神经网络是可以学习异或的,严谨的表示应该是单层神经网络无法学习异或。

不过,当时的神经网络都是单层神经网络,所以这个证明结论在很多人看来是直接宣判神经网络的死刑,连很多神经网络领域的领军人物都纷纷另寻他路。

大家看到这里理应产生一个问题:现在深度学习大行其道,所有人都知道多层神经网络是完全可行的,单层神经网络的出路就是把层数加深,这么简单的破局之道,为什么连当时的大牛都看不到?

因为多层神经网络会导致误差难以传导。依靠误差调整权重是神经网络,乃至很多机器学习算法的所谓“学习”过程。简单增加神经网络的层数会导致什么问题呢?梯度消失。简单来说就是传回去的误差为0了,权重也就没法通过学习来调整了。这个问题至今仍然是困扰深度学习的一大难题。

单层没有出路,多层也没有出路,两头堵死,所以大家也就对神经网络失去了信心。直到一个重要的机制横空出世,才让神经网络起死回生。这个机制就是大名鼎鼎的后向传播机制(Back Propagation),一般也简写成BP机制。

BP机制的算法核心是链式求导法则,需要懂一点点高数,不过也就一点点,在数学原理上看,BP机制并不复杂,但角色非常重要。正是有了BP机制,多层神经网络得以实现训练,神经网络在理论上的死局也就破解了。

但是,虽然BP机制给深层神经网络插上了想象的翅膀,但算力限制又把它重新拽回了地面,结果1990年代在实战中被支持向量机按在地上摩擦,又遭遇了一波低谷。这个部分不想照书念了,我有过一些实验,谈感觉吧。

首先记住一点:神经网络严重依赖算力,性能和算力呈正比,可谓是败也算力成也算力。BP机制是1980年代提出来的,那个年代的计算机算力还比不上现在的手机。虽然BP机制在理论上解开了多层神经网络的束缚,但来自硬件方面的算力局限,还是把层数这块拿捏得死死的。

那个年代的多层神经网络,也就多个两三层,层数少,参数规模也小,和现在动辄一个3A大作大小的大模型根本没法比。

性能优势发挥不出来,另一个短板就上来了,那就是训练时间长。

笔者手边做了一个不太严谨的对比实验:同样的硬件环境和同样的数据集,使用最经典的前馈神经网络要接近支持向量机的性能,训练时间差不多是3倍。结论肯定是不严谨的,不过大概也明白了被什么神经网络会在30年前再次进入低谷,性能一般训练时间还长的模型,肯定比不上Bug一样存在的支持向量机有排面。

那怎么办呢?没什么新办法,前面已经说了,神经网络的出路就是增加层数,但是能加多少层,谁说了算呢?算力说了算。

神经网络在1990年代除了被支持向量机按在地上摩擦,还忙了许多事,譬如深度学习的开门第一课卷积神经网络,相关研究远比很多人想象中要早,在90年代初连专利已经出来了。可是神经网络还要等,要等待一个机会,等待属于自己时代的降临。

十年窗下无人问,一举成名天下知。时间来到2012年,在ImageNet的赛场上,一款名为AlexNet的深度神经网络模型,让其它在座的模型深深地明白一个道理:抵抗已经没有意义,往后的比赛都将由深度神经网络主宰,往后的时代恐怕也将交由深度神经网络主宰。

这里我多说一个细节,ImageNet自2009年起年年都举办比赛,我看了下得分,早些年有点菜鸡互啄的意思,大家错误率都差不多,今年你赢可能只是赢在运气好。到了2012年这一届,第一名的AlexNet的错误率仅仅只有15.3%,比第二名低了10个百分点。换句话说,其它模型被AlexNet甩得连车尾灯都没有看见。

后面的事大家都知道了,深度神经网络换了个更容易引流的名字,叫深度学习。我们现在所处的这个时代,正是深度学习时代。

03 《神经网络与深度学习》及其作者

前面提到一本书,叫《神经网络与深度学习》,名字朴实无华,但十分有趣,多写一点介绍。

先说说书的作者Charu C.Aggarwal。这哥们就俩字——大牛。搞数据科学,特别是推荐算法的同学,不应该对这个名字感到陌生。推荐算法领域有一本经典,中文版名字叫《推荐系统:原理与实践》,人称推荐算法圣经,就是这位Charu C.Aggarwal的作品。

这哥们特高产,还专出精品,譬如在数据挖掘领域出过一本《数据挖掘:原理与实践》,最近在机器学习又出了一本《Linear Algebra and Optimization for Machine Learning》,就算在数据科学的推荐书单不是“卷卷有爷名”,也差不多了。

再说《神经网络与深度学习》。同名的书有好几本,所以最初看到书名我是没任何特别的感觉的,不过仔细翻了才猛然发现,这书居然就是大名鼎鼎的星云书。

书的英文名叫《Neural Networks and Deep Learning: A Textbook》,原书封面印了一幅星云图,所以也叫“星云图”。星云图我很有印象,早就听不同的人推荐过好几次,说特别好,就是没有中文版,所以我也只是记得书的英文名字。现在中文版终于也出来了,就是这本和别人撞了名字的《神经网络与深度学习》。

作者是牛人,可是起初我还是有点担心,那就是话题太老。神经网络和深度学习的知识点就那么几个:激活函数、后向传播再加个优化方法,十根手指掰得过来,而且从花书开始,已经有无数的书、无数的作者将这屈指可数的知识点给围剿了无数遍,Charu C.Aggarwal能写出什么新东西来吗?

还真可以。千万别忘了,魔鬼总藏在细节处。大家刚开始深度学习应该都会有一种感觉,大的知识点我都了解了,可是总有一些点与点之间的连接处感觉怎么也过不去。这就像看一部剧,剧情梗概开完了,但总觉得缺了点细节。虽然看起来只是细枝末节,但是一来让人不痛快,更重要的是没法构成完整的逻辑,就不太容易理解了。

说一个具体的地方,深度学习为什么要使用GPU?这几年高性能显卡和30年前的学习机一样,都是打着学习的旗号来玩游戏......啊不小心把心里话说出来了......总之,大家都知道搞深度学习要买显卡。

浅层理由也都清楚,用了GPU,模型的训练时间就能明显缩短,原来纯CPU要跑一天的训练,上了GPU可能两小时就跑完了。可是,为什么呢?不知道这种细节是过于浅显还是上不得台面,很多教材都会选择性地遗漏。

不过,《神经网络与深度学习》就单辟了一节来解释。好几千字的内容不好全抄,简单来说,GPU的长处就是用来快速进行大量矩阵运算,当然,以前的矩阵运算主要是用于几何图形渲染,GPU有多重要,玩过大型游戏的都知道。神经网络、深度学习恰好也需要大量矩阵运算,所以“寓教于乐”也就是自然而然的事情了。

看完书还有一点是我个人印象特别深的,就是《神经网络与深度学习》这本书的组织结构非常清晰。神经网络是一个很大的范畴,别忘了,神经网络已经发展了半个多世纪,除了深度学习这个当家花旦,还有很多其它路线分支。

不同路线都有自己的知识点,很多教材会选择将这些知识点“合并同类项”,结果就是不同路线的知识点全混杂在了一起。而《神经网络与深度学习》则选择了另一种做法,把路线首先划分出来,譬如专设一章叫《基于浅层神经网络的机器学习》。

我长期对神经网络有一个误解,感觉在深度学习出来以前,神经网络一直都在打酱油,是“天不生仲尼,万古如长夜”。读完“基于浅层神经网络”这一章以后,我非常感慨,虽然有算力等种种硬性制约,但前辈们还是在极其简陋的条件下想尽办法,一点一点地提升神经网络模型的性能。

另一个让我同样很感慨的是玻尔兹曼机,因篇幅有限没法展开了,读完以后了解到的,不仅仅只是充满了数学式子的知识,还有知识背后无数人披荆斩棘的坚持。

关于作者:莫凡 ,网名木羊同学。娱乐向机器学习解说选手,《机器学习算法的数学解析与Python实现》作者,前沿技术发展观潮者,擅长高冷技术的“白菜化”解说,微信公众号“睡前机器学习”,个人知乎号“木羊”。

延伸阅读👇

延伸阅读《神经网络与深度学习》

推荐语:IBM沃森研究院明星研究员、KDD知名学者撰写,Philip S. Yu、Huan Liu、孙茂松、王斌等多位专家联合推荐,经典深度学习教材翻译版。

干货直达👇

更多精彩👇

在公众号对话框输入以下关键词

查看更多优质内容!

读书 | 书单 | 干货 讲明白 | 神操作 | 手把手

大数据 | 云计算 | 数据库 | Python | 爬虫 | 可视化

AI | 人工智能 | 机器学习 | 深度学习 | NLP

5G | 中台 | 用户画像 数学 | 算法 数字孪生

据统计,99%的大咖都关注了这个公众号

👇

以上是关于终于有人把人工智能和深度学习讲明白了的主要内容,如果未能解决你的问题,请参考以下文章

终于有人把自然语言处理机器学习深度学习和AI讲明白了

终于有人把生成对抗网络(GAN)讲明白了

终于有人把卷积神经网络(CNN)讲明白了

终于有人把智能制造与工业4.0讲明白了

终于有人把大数据机器学习数据科学讲明白了

终于有人把云计算大数据和人工智能讲明白了!