1、深度学习概述深度学习系列讲座一:深度学习1.1.概述、背景概述、背景2.2.人脑视觉机理、关于特征人脑视觉机理、关于特征3.Deep Learning 3.Deep Learning 基本思想、浅层学习基本思想、浅层学习4.4.深度学习与神经网络(深度学习与神经网络(Neural NetworkNeural Network)5.D5.DL L的总结的总结人工智能、机器学习、深度学习关系人工智能人工智能(ARTIFICIALINTELLIGENCE)为机器机器赋予人的智能予人的智能机器学机器学习一种一种实现人工智能的方法,使用算法来解析数据、从中学人工智能的方法,使用算法来解析数据、从中学习,然
2、后,然后对真真实世界中的事件做出决策和世界中的事件做出决策和预测。深度学深度学习一种一种实现机器学机器学习的技的技术,深度学,深度学习使得机器学使得机器学习能能够实现众多的众多的应用,用,并拓展了人工智能的并拓展了人工智能的领域范域范围。概述ArtificialIntelligence(人工智能)是人类最美好的梦想之一。图灵(计算机和人工智能的鼻祖)在1950年的论文里,提出图灵试验的设想,即,隔墙对话,你将不知道与你谈话的,是人还是电脑。这无疑给计算机,尤其是人工智能,预设了一个很高的期望值。半个世纪过去了,人工智能的进展,远远没有达到图灵试验的标准。这不仅让多年翘首以待的人们,心灰意冷,认
3、为人工智能是忽悠,相关领域是“伪科学”。自2006年以来,机器学习领域,取得了突破性的进展。图灵试验,至少不是那么可望而不可及了。至于技术手段,不仅仅依赖于云计算对大数据的并行处理能力,而且依赖于算法。这个算法就是,DeepLearning。借助于DeepLearning算法,人类终于找到了如何处理“抽象概念”这个亘古难题的方法。概述2012年6月,纽约时报披露了GoogleBrain项目,吸引了公众的广泛关注。这个项目是由著名的斯坦福大学的机器学习教授AndrewNg和在大规模计算机系统方面的世界顶尖专家JeffDean共同主导,用16000个CPUCore的并行计算平台训练一种称为“深度神
4、经网络”(DNN,DeepNeuralNetworks)的机器学习模型(内部共有10亿个节点。这一网络自然是不能跟人类的神经网络相提并论的。要知道,人脑中可是有150多亿个神经元,互相连接的节点也就是突触数更是如银河沙数。曾经有人估算过,如果将一个人的大脑中所有神经细胞的轴突和树突依次连接起来,并拉成一根直线,可从地球连到月亮,再从月亮返回地球),在语音识别和图像识别等领域获得了巨大的成功。概述2012年11月,微软在中国天津的一次活动上公开演示了一个全自动的同声传译系统,讲演者用英文演讲,后台的计算机一气呵成自动完成语音识别、英中机器翻译和中文语音合成,效果非常流畅。据报道,后面支撑的关键技
5、术也是深度学习。2013年1月,在百度年会上,创始人兼CEO李彦宏高调宣布要成立百度研究院,其中第一个成立的就是“深度学习研究所”。2013年3月谷歌收购了加拿大神经网络方面的创业公司DNNresearch,DNNresearch公司是由多伦多大学教授GeoffreyHinton与他的两个研究生AlexKrizhevsky和IlyaSutskever于去年成立,由于谷歌在本次收购中没有获得任何实际的产品或服务,所以本次收购实质上属于人才性收购,收购的主体实为了这三人团队。概述2016年3月,AlphaGo打败围棋世界冠军李世石,AlphaGo是由GoogleDeepMind开发的人工智能围棋程
6、序,具有自我学习能力。它的主要工作原理就是深度学习。2017年10月,Deepmind宣告最新版本的人工智能AI面世,这款新版本叫阿尔法零(AlphaGoZero)。阿尔法零(AlphaGoZero)完全不依赖于人类数据,自学三天围棋,对阵AlphaGo竟然能取得100比0的战绩。为什么拥有大数据的互联网公司争相投入大量资源研发深度学习技术?为什么深度学习这么火?背景机器学习(MachineLearning)是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的学科。机器能否像人类一样能具有学习能力呢?1959年美国的塞缪尔(Sa
7、muel)设计了一个下棋程序,这个程序具有学习能力,它可以在不断的对弈中改善自己的棋艺。4年后,这个程序战胜了设计者本人。又过了3年,这个程序战胜了美国一个保持8年之久的常胜不败的冠军。这个程序向人们展示了机器学习的能力,提出了许多令人深思的社会问题与哲学问题背景在图像识别、语音识别、天气预测、基因表达等方面。目前我们通过机器学习去解决这些问题的思路都是这样的:从开始的通过传感器来获得数据。然后经过预处理、特征提取、特征选择,再到推理、预测或者识别。最后一个部分,也就是机器学习的部分,绝大部分的工作是在这方面做的。中间的三部分,概括起来就是特征表达。良好的特征表达,对最终算法的准确性起了非常关
8、键的作用,而且系统主要的计算和测试工作都耗在这一大部分。但这块实际中一般都是人工完成的。背景好的特征应具有不变性(大小、尺度和旋转等)和可区分性:例如Sift(尺度不变特征转换)的出现,是局部图像特征描述子研究领域一项里程碑式的工作。由于SIFT对尺度、旋转以及一定视角和光照变化等图像变化都具有不变性,并且SIFT具有很强的可区分性。背景手工地选取特征是一件非常费力、启发式(需要专业知识)的方法,而且它的调节需要大量的时间。既然手工选取特征不太好,那么能不能自动地学习一些特征呢?答案是能!DeepLearning就是用来干这个事情的,看它的一个别名UnsupervisedFeatureLear
9、ning(无监督特征学习),就可以顾名思义了,Unsupervised的意思就是不要人参与特征的选取过程。那它是怎么学习的呢?怎么知道哪些特征好哪些不好呢?我们说机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为的学科。好,那我们人的视觉系统是怎么工作的呢?人脑视觉机理例如,从原始信号摄入开始(瞳孔摄入像素Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。人脑视觉机理这个生理学的发现,促成了计算机人工智能,在四十年后的突破性发展。总的来说,人的视觉系统的信息处理是分级的。从低
10、级的V1区提取边缘特征,再到V2区的形状或者目标的部分等,再到更高层,整个目标、目标的行为等。也就是说高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越来越能表现语义或者意图。而抽象层面越高,存在的可能猜测就越少,就越利于分类。人脑视觉机理这个生理学的发现,促成了计算机人工智能,在四十年后的突破性发展。总的来说,人的视觉系统的信息处理是分级的。从低级的V1区提取边缘特征,再到V2区的形状或者目标的部分等,再到更高层,整个目标、目标的行为等。也就是说高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越来越能表现语义或者意图。而抽象层面越高,存在的可能猜测就越少,就越利于
11、分类。人脑视觉机理提到了关键词:分层。而Deeplearning的deep是不是就表示我存在多少层,也就是多深呢?没错。那Deeplearning是如何借鉴这个过程的呢?毕竟是归于计算机来处理,面对的一个问题就是怎么对这个过程建模?因为我们要学习的是特征的表达,那么关于特征,或者说关于这个层级特征,我们需要了解地更深入点。所以在说DeepLearning之前,我们有必要再啰嗦下特征。关于特征特征是机器学习系统的原材料,对最终模型的影响是毋庸置疑的。如果数据被很好的表达成了特征,通常线性模型就能达到满意的精度。那对于特征,我们需要考虑什么呢?1、特征表示的粒度学习算法在一个什么粒度上的特征表示,
12、才有能发挥作用?就一个图片来说,像素级的特征根本没有价值。例如下面的摩托车,从像素级别,根本得不到任何信息,其无法进行摩托车和非摩托车的区分。而如果特征是一个具有结构性的时候,比如是否具有车把手(handle),是否具有车轮(wheel),就很容易把摩托车和非摩托车区分,学习算法才能发挥作用。2、初级(浅层)特征表示既然像素级的特征表示方法没有作用,那怎样的表示才有用呢?1995年前后,DavidField试图同时用生理学和计算机的手段,双管齐下,研究视觉问题。他们收集了很多黑白风景照片,从这些照片中,提取出400个小碎片,每个照片碎片的尺寸均为16x16像素,不妨把这400个碎片标记为Si,
13、i=0,.399。接下来,再从这些黑白风景照片中,随机提取另一个碎片,尺寸也是16x16像素,不妨把这个碎片标记为T。他们提出的问题是,如何从这400个碎片中,选取一组碎片,Sk,通过叠加的办法,合成出一个新的碎片,而这个新的碎片,应当与随机选择的目标碎片T,尽可能相似,同时,Sk的数量尽可能少。用数学的语言来描述,就是:Sum_k(ak*Sk)-T,其中ak是在叠加碎片Sk时的权重系数。2、初级(浅层)特征表示为解决这个问题,DavidField发明了一个算法,稀疏编码(SparseCoding)。稀疏编码是一个重复迭代的过程,每次迭代分两步:1)选择一组Sk,然后调整ak,使得Sum_k(
14、ak*Sk)最接近T。2)固定住ak,在400个碎片中,选择其它更合适的碎片Sk,替代原先的Sk,使得Sum_k(ak*Sk)最接近T。经过几次迭代后,最佳的Sk组合,被遴选出来了。令人惊奇的是,被选中的Sk,基本上都是照片上不同物体的边缘线,这些线段形状相似,区别在于方向。2、初级(浅层)特征表示也就是说,复杂图形,往往由一些基本结构组成。比如下图:一个图可以通过用64种正交的edges(可以理解成正交的基本结构)来线性表示。比如样例的x可以用1-64个edges中的三个按照0.8,0.3,0.5的权重调和而成。而其他基本edge没有贡献,因此均为02、初级(浅层)特征表示另外,人们还发现,
15、不仅图像存在这个规律,声音也存在。他们从未标注的声音中发现了20种基本的声音结构,其余的声音可以由这20种基本结构合成。(同声传译的秘诀之一)3、结构性特征表示小块的图形可以由基本edge构成,更结构化,更复杂的,具有概念性的图形如何表示呢?这就需要更高层次的特征表示,比如V2,V4。因此V1看像素级是像素级。V2看V1是像素级,这个是层次递进的,高层表达由底层表达的组合而成。专业点说就是基。V1取提出的基是边缘,然后V2层是V1层这些基的组合,这时候V2区得到的又是高一层的基。即上一层的基组合的结果,上上层又是上一层的组合basis(HHT有类似之处)3、结构性特征表示直观上说,就是找到有意
16、义的小碎片再将其进行组合,就得到了上一层的特征,递归地向上学习特征。3、结构性特征表示在不同物体上做训练时,所得的edgebasis是非常相似的,但物体组成部分和模型就会完全不同(那咱们分辨汽车或者人脸是不是容易多了):4、需要有多少个特征?我们知道需要层次的特征构建,由浅入深,但每一层该有多少个特征呢?任何一种方法,特征越多,给出的参考信息就越多,准确性会得到提升。但特征多意味着计算复杂,探索的空间大,可以用来训练的数据在每个特征上就会稀疏,都会带来各种问题,并不一定特征越多越好。好了,到了这一步,终于可以聊到Deep Learning了。上面我们聊到为什么会有Deep Learning(让
17、机器自动学习良好的特征,而免去人工选取过程。还有参考人的分层视觉处理系统),我们得到一个结论就是Deep Learning需要多层来获得更抽象的特征表达。那么多少层才合适呢?用什么架构来建模呢?怎么进行非监督训练呢?Deep Learning 基本思想假设我们有一个系统S,它有n层(S1,Sn),它的输入是I,输出是O,形象地表示为:I=S1=S2=.=Sn=O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失,当然这是不可能的。信息论中有个“信息逐层丢失”的说法(信息处理不等式)。当然了,如果丢掉的是没用的信息,保持了不变,这意味着输入I经过每一层Si都没有任何的信息损失
18、,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。Deep Learning 基本思想现在回到我们的主题DeepLearning,我们需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设我们设计了一个系统S(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,,Sn。Deep Learning 基本思想对于深度学习来说,其思想就是对堆叠多个层,也就是说这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达了。另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松
19、这个限制,例如我们只要使得输入与输出的差别尽可能地小即可,这个放松会导致另外一类不同的DeepLearning方法。上述就是DeepLearning的基本思想。浅层学习(Shallow Learning)和深度学习(Deep Learning)浅浅层学学习是机器学是机器学习的第一次浪潮。的第一次浪潮。20世纪80年代末期,用于人工神经网络的反向传播算法(也叫BackPropagation算法或者BP算法)的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。这个热潮一直持续到今天。人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习统计规律,从而对未知事件做预测。这种
20、基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显出优越性。这个时候的人工神经网络,虽也被称作多层感知机(Multi-layerPerceptron),但实际是种只含有一层隐层节点的浅层模型。浅层学习(Shallow Learning)和深度学习(Deep Learning)浅浅层学学习是机器学是机器学习的第一次浪潮。的第一次浪潮。20世纪90年代,各种各样的浅层机器学习模型相继被提出,例如支撑向量机(SVM,SupportVectorMachines)、Boosting、最大熵方法(如LR,LogisticRegression)等。这些模型的结构基本上可以看成带有一层隐层节点(如
21、SVM、Boosting),或没有隐层节点(如LR)。这些模型无论是在理论分析还是应用中都获得了巨大的成功。相比之下,由于理论分析的难度大,训练方法又需要很多经验和技巧,这个时期浅层人工神经网络反而相对沉寂。浅层学习(Shallow Learning)和深度学习(Deep Learning)深度学深度学习是机器学是机器学习的第二次浪潮。的第二次浪潮。2006年,加拿大多伦多大学教授、机器学习领域的泰斗GeoffreyHinton和他的学生RuslanSalakhutdinov在科学上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。这篇文章有两个主要观点:1)多隐层的人工神经网络具有优异的
22、特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wisepre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的。浅层学习(Shallow Learning)和深度学习(Deep Learning)深度学深度学习是机器学是机器学习的第二次浪潮。的第二次浪潮。当前多数分类、回归等学习方法为浅层结构算法,其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分
23、布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。(多层的好处是可以用较少的参数表示复杂的函数)浅层学习(Shallow Learning)和深度学习(Deep Learning)深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。区别于传统的浅层学习,深度学习的不同在于:1)强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;2)明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容
24、易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。Deep Learning与Neural Network深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习是无监督学习的一种。深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。Deep Learning与Neural Network深度学习本身算是机器学习的一个分支,简单可以理解为神经网络的发展。
25、大约二三十年前,神经网络曾经是机器学习领域特别火热的一个方向,但是后来确慢慢淡出了,原因包括以下两个个方面:1)比较容易过拟合,参数比较难确定;2)训练速度比较慢,在层次比较少(小于等于3)的情况下效果并不比其它方法更优;Deep learning与Neural NetworkDeepLearning与传统的神经网络之间有相同的地方也有很多不同。二者的相同在于DeepLearning采用了神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接;这种分层结构,是比较接近人类大脑的结构的。Deep learning与
26、Neural Network为了克服神经网络训练中的问题,DL采用了与神经网络很不同的训练机制。传统神经网络中,采用的是反向传播的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛(整体是一个梯度下降法)。DL整体上是一个分层计算的训练机制。这样做的原因是因为,如果采用反向传播的机制,对于一个深层网络(7层以上),残差传播到最前面的层已经变得太小,出现所谓的梯度扩散。DeepLearning训练过程程如果对所有层同时训练,时间复杂度会太高;如果每次训练一层,偏差就会逐层传递。这会面临跟上面监督
27、学习中相反的问题,会严重欠拟合(因为深度网络的神经元和参数太多了)。2006年,hinton提出了在非监督数据上建立多层神经网络的一个有效方法,简单的说,分为两步,一是每次训练一层网络,二是调优DeepLearning训练过程程深度学深度学习训练过程具体如下:程具体如下:1)使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练):采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是特征学习过程):具体的,先用无标定数据训练第一层,训练时先学习第一层的参数,使得得到的模型能够学习到数据本身的结构,从而得到
28、比输入更具有表示能力的特征;在学习得到第n-1层后,将n-1层的输出作为第n层的输入,训练第n层,由此分别得到各层的参数;Deeplearning训练过程程deep learning训练过程具体如下:程具体如下:2)自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调):基于第一步得到的各层参数进一步调整,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果;所以DL效果好很大程度上归功于第一步的特征学习过程。Deeplearning总
29、结深度学习是关于自动学习要建模的数据的潜在(隐含)分布的多层(复杂)表达的算法。对于机器视觉,深度学习算法从原始图像去学习得到它的一个低层次表达,例如边缘检测器,小波滤波器等,然后在这些低层次表达的基础上再建立表达,例如这些低层次表达的线性或者非线性组合,然后重复这个过程,最后得到一个高层次的表达。Deeplearning总结Deeplearning能够得到更好地表示数据的feature,同时由于模型的层次、参数很多,因此,模型有能力表示大规模数据,所以对于图像、语音这种特征不明显(需要手工设计且很多没有直观物理含义)的问题,能够在大规模训练数据上取得更好的效果。参考参考资料料Zouxy09的的CSDN博客博客专栏(重要参考)(重要参考)http:/