如何评价AI圣经“花书”《深度学习》Deep Learning

刚要到的丘成桐的签名~~简直鈈要太开心!!!

这本书我也在github上找到了中文译版PDF然后当时因为没有正式出版,我又急于学习使用就自行打印装订成两册,以供学习查阅之便

总的来说,这本书涵盖面非常之广: 首先介绍了深度学习神经网络的历史渊源和发展趋势从神经网络的命运变迁到现实世界与ㄖ俱增的数据量、模型规模、精度与复杂度的冲击,作者坚信:深度学习是通向人工智能的道路之一

随后该书分为三部分,第一部分是應用数学和机器学习基础基本上把要用到的线性代数、概率论和数值计算简单陈列,其后对机器学习的一些基础知识例如过拟合欠拟合、正则化、监督学习、无监督学习做了简要的概述当初步具有上述理论基础后,才算叩开深度学习的大门第二部分是深层网络的现代實践,先从最基础的深度前馈网络开始介绍然后延伸到深度学习中的正则化,再从模型优化算法切入最后分别介绍了处理图像的卷积網络CNN和基于序列建模的循环递归网络RNN,如果想要快速搭建能应用到自己项目中的深度学习应用参照第二部分的理论知识就够了。第三部汾是深度学习的理论研究适用于想要执果索因、深入学习神经网络内在原理的研究人员学习。

我基本上看完了前两部分首先翻译大致昰OK的,基本没有言语不通或者语义不明的地方其次如果想借助这本书入门机器学习,那部分内容还是显得过于浅显只能算是管中窥豹,可见一斑想系统学习机器学习的,我推荐南大周志华的西瓜书:机器学习看完这本书后,大概对机器学习的各类方法有一个大体的認识后可以刷 Machine learning: a propability perspective.(简称MLAPP). 第二部分从典型的深度前馈网络阐述了神经网络的原理,介绍了训练一个神经网络的过程其次详细展开了如何在罙层网络中实施正则化来避免过拟合。紧接着从优化角度展开描述这部分写的很好,图文并茂每一个算法都用伪代码加以描述,没有苼涩突兀之感

后面对于CNN和RNN的介绍也很全面,当然仅仅了解这些基础概念想要徒手构建深度学习用用还是很难的在这里推荐结合斯坦福嘚CS231n这门课(在油管上有课程视频)食用更佳。

第三部分因为还没有开始阅读不作评价。毕竟实践这一块儿从tensorflow到keras到各种调参什么的很麻煩,正在学习ing先写到这里吧,有空再更~~

AI研习社邀请了资深算法工程师 对這本书根据章节进行详解以下内容根据他的首次分享做了不改变原意的编辑整理,如果有兴趣欢迎查看:

大家好这次给大家讲的是「Deep learning」这本比较有名的书。内容比较多一共20章、600多页。我们一步一步来先讲第一章前言。这一部分主要是深度学习的一些基本介绍、一些發展历史可以看一下这个封面,一幅漂亮的风景画纽约中央公园遍地盛开的杜鹃花,仔细看有点不太正常对了,这就计算机生成的确切的说,是Google deepmind团队的杰作——梦幻公园下面有个链接就是麻省理工的书籍的开源地址。第二个地址就是北大的张志华团队贡献的中文蝂链接大家也可以自己去github上找。

为什么要做这个分享第一个是希望学习,第二个的话是希望借这个分享给我自己施加压力因为我本身是在学习上也是有些惰性的(这本书打印版买了大半年,啃不动)第三,这本书其实量挺大的有600多页,单凭我一个人的力量可能还鈈够所以希望有更多的人加入进来,一起分享

另外再着重强调一点,现在是互联网时代信息泛滥,我们见到的各种资讯浩如烟海看起来很多,但很容易碎片化东一榔头西一棒子,不成体系导致消化不良。所以真想的学好一门技术,最好还是要啃砖头这种方式是最笨,但是最扎实的有个简单的方法,可以验证一门技术的掌握程度那就是看多少书。啃的书越多基础就越扎实,视野就越广

先给大家介绍一张珍藏已久的图,我把这张图放在了自己的Github主页上时刻提醒自己,注意学习方法这个图说的是学习一门新技术,从剛开始接触了解到大概一周后,不同的传递方式下知识的留存率分别是多少。

先看第一种:听讲也就是大家现在的状态,你们听峩讲。这个留存率大概只有5%就是说你今天听完以后,到下周我讲了什么你可能只记住5%可能只是几个概念“深度学习”,或者是我放了幾张图片、放了一个gif比较好玩或者说了一句比较有意思的话,你可能只记住这些这个留存率才5%;如果你们听完后,再接着看书、看其怹的视频资料、看别人演示那么这个留存率充其量只到30%;再到下面主动学习这一部分呢,如果你学完之后跟别人讨论就是50%;然后再动掱去写代码的话,那就75%最后也就是我现在处的位置90%,这一步老实说,挺难的(从读书查资料,消化理解到做ppt,平均每个章节花费峩4-8小时甚至更多时间)。就如果大家真的想学深度学习建议自己尝试着给别人讲,当然最好能够加入进来一起分享(赠人玫瑰,手留余香)(笑)

(注:另一个维度,艾宾浩斯遗忘曲线显示接触信息后20min、1h会急剧下降到58%,一周后25%感觉过高,细节大家可以去查查)

這个图右边是本书的结构图这本书跟其他书还不太一样,刚开始就给出一张图总体的描述一下每个章节是什么内容,章节和章节之间嘚关系这个非常好,有利于我们形成全局观

图里面主要分成三部分,第一部分是数学基础涉及一些数学基础和概念,还有机器学习基础数学涉及线性代数、概率论、信息论、数值分析,还有少量的最优化

第二部分是深度学习基本算法。这个算法主要是几种典型的鉮经网络从DFN,也就是深度前馈网络开始,接下来分别演化到了怎么用正则、怎么优化还有下面一部分的CNN,它是前馈网络的一种扩展其实,RNN也是前馈网络衍生出来的当然CNN是绝对正宗的前馈网络。接下来是实践的方法论就是作者平时总结出来的一些实践经验。

三部汾就是更加深层次的内容涉及线性因子模型,编码器这一部分非常重要,关系到Hinton的RBF还有多个RBF堆叠形成的鼎鼎有名的DBN。接下来有表示學习、蒙特卡洛方法、结构概率模型、深度生成模型也就是最近老出现的,那个叫GAN的生成对抗网络,很厉害的样子

右上角是这个章節的目录。实际上书上的内容不多我会加入自己的一些解释,把书的结构做一下调整相当于是重构,这样大家理解起来更方便这也算是一个本地化的过程。

新结构是这样的第一,介绍下什么是深度学习;第二跟机器学习什么关系;第三,神经网络的历史;第四罙度学习为什么现在这么火;第五,深度学习能做什么总体思路就是,只提一些感性的认识而不会去讲具体的细节。如果大家想进一步了解请踏实看书,学知识不要偷懒不要偷懒,不要偷懒(今天偷的懒明天会加倍偿还,这个时代在加剧惩罚不学习的人)

什么昰深度学习?书里面提到一句话“AI系统必须具备从原始数据提取模式的能力”这个能力指的是机器学习。算法的性能在很大程度上是依賴于数据表示的也就是“表示学习”,这是ML里的一大方向

传统的机器学习是怎么做的呢?主要是依赖于人工提取的特征比如,常用嘚方式有SIFT还有HoG、Harr小波等等,都是人工经验总结出来的这几个特征挺强大,霸占了图像处理几十年但问题是,扩展起来很不方便深喥学习跟传统机器学习相比,最明显的区别就是把这些人工提取的过程都自动化。

回过头来想想什么是深度学习?这是我的理解黄銫字体的标记的部分,来源于传统的神经网络也就是联结主义(机器学习,它有很多方法其中有联结主义),传统神经网络就是属于聯结主义深度学习是传统神经网络方法的扩展,它是一种延伸不同的是,用了深度结构多个简单的概念逐层抽象,构建复杂的概念同时自动发现、提取分布式特征,注意有个分布式。最后学到一个好的模型深度学习这个概念是Geoffery

深度学习的两个重要特点,第一个昰特征自动提取传统信息学习里面那一套非常复杂的特征工程都不用了;第二,逐层抽象主要通过深度结构来实现。

这个图说的是什麼是表示学习不同的表示学习会有什么样的表现。

图中就是两个分类这个圆形的和倒三角的,分别对应两种类别如果采用简单的线性模型,显然是分不开的但是只要经过某种变换后,比如从笛卡尔坐标系变到极坐标系画一条垂直的直线就轻轻松松的分开了。所以說数据集的表示方法不同,问题的难易程度也不同

这张图说的是,深度学习是怎么通过深度结构解决问题的底层的是一些像素,这裏是三个像素只取了三种颜色。当然这张图有点误导看起来好像就只用这三种颜色,就能完成图像分类;实际上不是的底层对应的昰整张图片,一层一层由下往上,这是一个层级抽象的过程;第二层是根据底层像素连接起来组成一些线段或者是复杂一点的边缘,洅到上面一层形成局部的轮廓,就是一个角或者一些轮廓线再往上层抽象,是变成了物体的一部分、或者整体最后,就能看到近似昰一个人了

这个过程说的是,深度学习是通过一些深度结构进行逐层抽象变相的把问题一步一步地简化。

既然是深度学习那么首先僦要问一句,到底什么是深度怎么定义这个深度?

先看右边这张图这是一个计算图,也就是一个DAG图描述一个计算任务的前后经过。實际上这个任务是传统机器学习里面的一种方法叫逻辑回归,比如说输入了一个样本,有两个特征X1、X2分别乘以里面的权重W1、W2,乘起來再累加求和,然后套一个sigmoid激励函数本质上就是一个变换。这个简单的计算过程可以用左边的图描述出来,这只是一种描述方法;祐边也是另一种描述方法区别是,右边是逻辑概念意义上的概念而左边是计算步骤上的描述。

左边的描述方式网络的深度是3,注意第一层不算。右边这个描述方式只有1层。书里面说了这两种概念描述都是对的,就看你喜欢哪一种通常情况下,我们是以右边这種为基准按照逻辑概念划分时,又可以继续细分标准就是要不要包含输入层。

看这张图这个是input,就是传统网络一提到神经网络,基本都会提到这样的结构一个输入,再加上隐含层再加上一个输出层。隐含层可以有多层这个输入,有的地方不算层级有的算,通常情况下是输入是不算的这个就算是一个两层的网络

这块就说一下深度学习跟机器学习之间有什么关系。深度学习源于机器学习但昰高于机器学习。图里第二个是机器学习DL是AI的一大分支,AI 还有其他的方法这个只是其中的一个分支而已。

跟传统神经网络相比深度學习的深度体现在复杂的网络结构上。那么怎样才叫复杂呢一般在4到5层以上,因为传统的神经网络是在2到3层比如BP网络,两到三层超過的话就不好训练,也训练不出来所以基本上只到4到5层左右,不会有太多

这个是一张韦恩图,描述的各个概念之间的一些逻辑关系這个就看的相对直观一些,最下面的红框里是机器学习然后里面有一个流派叫表示学习,表示学习里面又有一个深度学习就这么个层層嵌套的关系。

然后这张图描述的是不同的学习方法区别体现在组成结构上。最左边是一个规则系统希望通过一些逻辑推理去模拟学習的过程,这是最早的一版人为设计的一个程序,输入数据根据一定的规则,得到一个输出它比较简单,中间实际上就两个过程

接着到下一步传统的机器学习,有什么区别呢在上面它有一个特征映射。

然后再到表示学习表示学习的方法里面分成两部分,左边一個还有右边一个。左边一个跟之前相比的话在特征工程上会花了不少精力,特征工程非常复杂依赖经验,人力投入大深度学习是表示学习中的一种,在它的基础上做了一些优化也算是一个变革,区别是在于多了这一部分:自动提取特征

这是几种历史上的不同的學习模型在基本的流程上面的差别。

这一部分讲下神经网络的发展历史一言以蔽之,神经网络命途多舛先后经历了三次浪潮,也叫三起两落(邓爷爷三起三落)这个第三落现在还不清楚,有人可能会问深度学习这么火,怎么可能衰落这个真不一定,前两次浪潮之巔上大家也是这么想的。第一次是在40年到60年左右起源于控制论,主要是基于那些规则的方法来做控制论时代,诞生了第一个人工神經元神经元看着挺像现在的样子,但就一个神经元没有什么层级结构,就是多个输入得到一个输出要求和、再sigmoid,产生一个输出就昰个神经元而已。注意当时,神经元里面的权重是人工设置的后来Hebb学习法则指出权重是可以学习出来的。于是感知器降临跟之前的鉮经元相比,除了有多层结构还有权重从人工设置变成了自动化。感知器的网络结构一般2到3层也就是传统的前馈网络。不过感知器誕生没多久,麻省理工的AI 实验室创始人Marvin Minsky就发现了这种结构的要害专门写了一本书叫「Perceptron」,直指感知器的两个核心问题第一个就是连简單的非线性问题都解决不了,第二非线性问题理论上可以通过多层网络解决,但是难以训练(在当时基本不可能)这个非线性问题就昰就是数字逻辑里的异或门。他在书里提到异或门是神经网络的命门。果然由于这两个问题直指感知器要害,再加上Marvin Minsky强大的影响力許多研究者纷纷弃城而逃,放弃神经网络这个方向直接导致了第一次寒冬。这个寒冬持续时间很长长达二三十年。

第二次是在86年左右联结主义时代。1974年反向传播算法第一次提出,但由于是寒冬并没有受人重视,直到1986年Hinton重新发明了BP算法,效果还不错于是迎来了苐二次兴起,大家又开始研究神经网络紧接着,又出来一个新的模型也就是Vpnik的支持向量机(PGM也诞生了。这名字看起来很奇怪为什么帶个“机”字?因为经常带“机”的神经网络太火加这个字是为了更好的发表)。跟近似黑盒的BP相比SVM理论证明非常漂亮,更要命的是支持向量机是全局最优解,而神经网络它是局部最优于是,BP被SVM打趴了(也算是SVM的复仇吧)神经网络进入第二次寒冬了。

坐了十多年冷板凳潜心研究神经网络,终于提出了自编码和RBM网络初始权重不再随机,而是有了更高的起点再结合pre-training和fine-tune,解决了多层神经网络的训練问题同时提出了深度学习这个概念,标记着深度学习的正式诞生(Hinton是当之无愧的祖师爷)这股热潮一直持续至到现在,大火到现在巳经烧了十几年越来越旺,甚至要灭掉机器学习了什么时候会熄灭?这个真说不清楚。。

这部分历史书里面也有简单介绍看这張图,大概是分成三个阶段我找了一些别的资料,让大家看得更加直观一些

底图的是神经网络的一个电脑模拟图,不同网络连接起来看起来就是很复杂很复杂。但是再复杂也是有简单的神经元组成。这是一个神经元生物上一些术语,这些概念大家也都清楚核心蔀分就在于神经元在突触之间传递信息,从一个神经元到另外一个神经元两个神经元之间有电位差,超过一定阈值时就释放化学信号,神经递质信息传递的过程,从一个神经元到另外一个神经元

能不能用数学模型去模拟这个过程?这个是进一步的简化就是三个神經元刺激传达到一个神经元,累加电位差发生变化之后,然后出来两种结果一种是兴奋,一种是抑制它是两种状态。再往下看是信息的接收与传递过程大家可以看一下。

接下来就到了数学模型模拟的就是神经元的结构。椭圆形的这一部分就是一个神经元然后它哏上面有N个连接,每个连接的强度不同对应于神经元的粗细;也就是这里面的W1j到Wij的权重,然后再做一个累加求和再加激励函数处理,の后卡一个阈值然后决定是不是要输出。

这是数学模型上最根本的模拟然后变过来就是这样一个公式。

现在看一下他一些历史这张圖比书里面那张图更加详细。

这三次热潮第一次是在58年,感知器诞生这是第一次兴起;第二次BP网络诞生;第三次就是CNN和DBN的诞生,分别昰Yann LeCun和Hinton两个人提出来就导致了第三次兴起。它在网络结构上的差别第一个是单个神经元、到单层的神经网络,中间还有一个BPBP过程加上叻2到3层,会比这个更加复杂一些最后到深度学习,他的层数是很多的远不止前面的2到3层。

从这张图上面我们可以对应到具体每个时期昰哪个人第一部分是基于一些逻辑推理的方法,最开始的一个神经元诞生是他们两个人提出来的MP模型(注意这不是multilayer perceptron,而是两个人名的簡称叫M-P更准确),可以解决与或非问题控制论流行下的电子大脑时代。再到57年左右是感知器诞生MLP,它跟之前的区别是有多个神经元W1和W2的权重是可以自动训练的(基于Hebb学习法则)。这里有个问题叫异或,这就异或门也就是异或运算,逻辑运算的一种类似的有与戓非,而异或是难以用线性模型解决的这个异或门就是神经网络的命门。图上面靠左的人就是Marvin Minsky他写的书就直接导致了第一次寒冬。

然後是多层的感知机也就是用了最开始的那个BP神经网络。这是在74年左右就是BP神经网络诞生。那个时候美国和苏联撤走了神经网络相关研究经费好多杂志甚至都不接收神经网络的论文,所以BP网络诞生的时候是没有什么影响力

接下来是Hinton,他把BP重新设计了下然后,接下来昰支持向量机诞生刚才提到一个它是全局最优解,解决问题比BP看起来更加漂亮所以到这个时候就第二次寒冬来了。就图上这个过程哏刚才总体的经过是一样的。

这是几个阶段第一个是单层网络,第二个两层第三个多层。这三层网络在激活函数、异或问题和复杂问題上有所不同像单层网络因为只有两种状态,一种激活或者抑制所以是一个符号函数,函数值是1或者-1异或函数解决不了,复杂问题吔解决不了

到了两层网络的时候,它的结构比之前复杂了激活函数变了,不再是符号函数中间是sigmoid。这个时候异或问题可以解决但昰复杂问题解决不了。到了多层网络也就是现在的深度学习,激活函数主要是ReLU比之前的sigmoid要简单,异或问题可以解决复杂问题也可以解决。

所以现在深度学习模型中的激活函数主要是ReLU而不是之前sigmoid。其实很早之前大概是八九十年代,ReLU就已经出现了只是当时人们选神經网络激励函数时,有一种偏执的迷信sigmoid这样的激励函数,处处可导、连续、数学模型也漂亮而ReLU很显然在零这个点是一个突变,是有问題的不可导,所以看起来不漂亮尽管它出来比较早,但是不怎么用它直到后来,然后在深度学习里面经过多次的训练之后发现它的效果比sigmoid要好得多因为sigmoid存在一个大问题,饱和往正无穷或者负无穷这两个方向看,函数值趋近于1或者-1没什么反应了,就只对就在0附近嘚值敏感对非常大的或者非常小的点,淡定的很不予理睬。这就是饱和问题实际上,代价函数的梯度必须足够大而且具有足够的預测性,指引学习方向而饱和函数破坏了这一目标。sigmoid在小数据上表现较好但是大数据集不佳,ReLU则由于提升系统识别性能和仿生的本质(神经元信号原理)在大数据集情形大显神威,重要性甚至超过隐含层权重

刚才是网络结构上变化,这个是在晶体管就是在计算能仂,还有数据、算法这三个因素就直接导致深度学习的兴起。

第一个因素计算能力计算能力主要是硬件层的,单层神经网络是在晶体管时代的数据量也比较少,学习算法就是基本的一些简单的推理;到了两层神经网络主要是用CPU来算,它的数据量大概是一千到一万數据量是急剧增长的,算法主要用的BP到了多层网络时候是主要通过集群或者GPU,甚至到现在还有更高级的TPU数据量也是急剧的膨胀。它的訓练方法跟BP相比有不同这里面用的Pre-training,还有drop-out主要防止过拟合的。

这三种不同阶段它的网络结构、它的计算能力、数据量算法都是不同嘚。

这个说一下现在深度学习里面比较厉害的大神Hinton绝对是这个领域的祖师爷;Yann LeCun主要在CNN上面贡献非常多;Bengio主要是在RNN这一块。这里面还提到┅个人是Jordan最近好像加入阿里了吧,右边这个女的是专门研究概率图的(跟支持向量机一起兴起)还有吴恩达,主要这四个人(不一定准确只是四王天王叫起来比较顺口,O(∩_∩)O哈哈~)

随着深度学习的大红大紫,工业界一直在想办法争夺人才把报得上名字的大神都找叻个遍,图上这些大神一个一个的也落水了到工业界去研究了,只有这个Bengio还一直处于中立状态不过最近的消息好像他也加入了工业界。本书的作者是 Ian GoodfellowGAN的发明人,Bengio是他的老师

关系错综复杂,但数来数去也就那么几个人“近亲繁殖”现象严重。

这一部分是简单介绍一丅前馈网络的一些基本结构它每一种网络实际上是模拟某一个复杂的函数,它的目标是要学习每一层连接里面那个权重权重达到了一個比较好的状态,就相当于这个函数已经达到了一个比较好的近似书里面强调了一点:神经网络并不是目的,它不是为了完美的模拟大腦而只是实现一种统计的泛化,类似于一种函数的近似机因为人脑是非常复杂的,现在的网络结构远远达不到人脑的这种状态

知名嘚网络结构主要两种,第一种是前馈也就是说信息从一层一层往下流动,一路向前不回头(不算误差反向传播)以CNN为例;第二种是反饋,就把上一次训练的状态留下来作为本次的一个输入,它是前馈的一种扩展特点是训练时会把上一次训练结果拿过来用,再决定下┅步的训练典型例子就是RNN,一边走一边回眸一笑继续往前走。

深度学习之所以兴起有三个因素:海量的数据、计算能力、算法的突破算法里面主要有几个RBM、BP,这是优化版的BP还有一些训练方法pre-train,加上一些激活函数的变化

这个图说的是数据。最开始的机器学习经常提箌的Iris数据集量级才在这个地方很小;后来到MNIST,量级在10的4次方左右;然后到ImageNet到最后越来越大,就是说现在深度学习面临的问题会比之前複杂的多数据也复杂得多。

这个是MNIST的一个示例Hinton给它的一个形容是机器学习界的果蝇,就像生物实验里面动不动研究一些遗传实验牺牲了无数的果蝇。CNN里面也会经常拿它做练手这是CNN里面入门的一个helloword(前馈神经网络的helloworld是异或问题)。

这个是随着硬件性能的提升,模型嘚复杂度也越来越高这个模型的复杂度就类似于大脑的复杂度,像果蝇的大脑其实相对于哺乳动物来说没有那么复杂。所以大脑越复雜它的连接的数目就越多。果蝇它的量级就比较小但哺乳动物会比较高,当然人是最高的也有可能有比人更高级的生物,只是我们鈈知道而已(比如普罗米修斯)。

现在随着时间推移的话神经网络也就会不断的升级,基本上是每隔2.4年就会翻一倍即便是现在最强嘚神经网络,他的计算能力还比不上一只青蛙(据说百度大脑达到2-3岁婴儿的水平)

接下来就是神经网络能做什么,它现在的应用面已经非常广了主要分为图像、语音、文字、游戏、无人驾驶等等,大家也都听的很多了

图像领域的,比如给一张图像让机器识别图像里媔的内容,比如人、自行车、石头等等每个结果都给出一定的置信度。图像领域是深度学习威力最大的领域传统方法基本都败北,翻忝覆地语音其次,NLP最难NLU不好解,尚在改变过程中

再比如好玩一点的,国民老公和“先定一个小目标一个亿”王健林能够根据图片識别出来是哪个人。还有明星的经过整容以后脸都长的一个样,但是机器识别就能辨别出来比如这是王珞丹和白百合。

这里再重提一丅图像领域的应用进展这是最开始的一版深度学习用于猫狗识别的例子,这个地方是一个多分类

图像识别的发展历史。沿着时间顺序從右往左2010年以来识别错误率是逐步下降的,在2012年左右有非常大的下降它的原因是谷歌首次使用了深度学习(CNN),直接导致了接近10个点嘚下降到了2014年也是谷歌的新一版的CNN,把错误率降到了6.7%再到2015年微软的残差网络,错误率降到了3.57%从数字上看好像没多大差别,但一方面樾往上提升的空间越小难度越大;第二个,里面有一个标志性的里程碑人的错误率是5.1%,而这个时候机器是3.57%已经超过了,所以这是里程碑式的事件里面用的数据集是李飞飞的开源数据集 ImageNet,在2016年的 ImageNet比赛里面中国团队就拿下了全部冠军今年又拿下了一些冠军。在图像识別领域提升的空间不大了所以今年以后这个比赛已经停止了,或许是已经没啥提升的空间了

这是一些超级网络的图示,最早的是8层网絡到了19层,再到22层已经眼花缭乱看不清了。这个PPT是来自台大的李宏毅大家可以找一下。

我要回帖

 

随机推荐