深度学习及其应用:机器学习学术报告.ppt

上传人:牧羊曲112 文档编号:4886074 上传时间:2023-05-21 格式:PPT 页数:83 大小:4.64MB
返回 下载 相关 举报
深度学习及其应用:机器学习学术报告.ppt_第1页
第1页 / 共83页
深度学习及其应用:机器学习学术报告.ppt_第2页
第2页 / 共83页
深度学习及其应用:机器学习学术报告.ppt_第3页
第3页 / 共83页
深度学习及其应用:机器学习学术报告.ppt_第4页
第4页 / 共83页
深度学习及其应用:机器学习学术报告.ppt_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《深度学习及其应用:机器学习学术报告.ppt》由会员分享,可在线阅读,更多相关《深度学习及其应用:机器学习学术报告.ppt(83页珍藏版)》请在三一办公上搜索。

1、深度学习及其应用,目录,1.机器学习概述,2.深度学习,概述,什么是机器学习计算机程序如何随着经验积累自动提高性能系统自我改进的过程成功应用学习识别人类讲话学习驾驶车辆学习分类新的天文结构学习对弈西洋双陆棋涉及的相关学科人工智能计算复杂性理论控制论信息论统计学,4,学习问题的标准描述,定义如果一个计算机针对某类任务T的用P衡量的性能根据经验E来自我完善,那么我们称这个计算机程序在从经验E中学习,针对某类任务T,它的性能用P来衡量。西洋跳棋学习问题的解释T,参与比赛E,和自己下棋P,比赛成绩(或赢棋能力,击败对手的百分比),具体学习方法,基于符号和逻辑表示的概念学习决策树人工神经网络统计和估计理

2、论的基础概念贝叶斯理论计算学习基于实例的学习遗传算法规则学习基于解释的学习近似知识与现有数据的结合增强学习支持向量机,深度学习,1.概述、背景,2.人脑视觉机理、关于特征,3.Deep Learning 基本思想、浅层学习,4.深度学习与神经网络(Neural Network),5.DP的常用模型与方法,6.Dp的总结,7.Dp的未来,8.DP的问题,概述,Artificial Intelligence(人工智能)是人类最美好的梦想之一。图灵(计算机和人工智能的鼻祖)在 1950 年的论文里,提出图灵试验的设想,即,隔墙对话,你将不知道与你谈话的,是人还是电脑。这无疑给计算机,尤其是人工智能,

3、预设了一个很高的期望值。半个世纪过去了,人工智能的进展,远远没有达到图灵试验的标准。这不仅让多年翘首以待的人们,心灰意冷,认为人工智能是忽悠,相关领域是“伪科学”。自 2006 年以来,机器学习领域,取得了突破性的进展。图灵试验,至少不是那么可望而不可及了。至于技术手段,不仅仅依赖于云计算对大数据的并行处理能力,而且依赖于算法。这个算法就是,Deep Learning。借助于 Deep Learning 算法,人类终于找到了如何处理“抽象概念”这个亘古难题的方法。,概述,2006年的3篇关于深度学习的突破性论文:Hinton,G.E.,Osindero,S.and Teh,Y.,A fast

4、learning algorithm for deep belief nets.Neural Computation 18:1527-1554,2006Yoshua Bengio,Pascal Lamblin,Dan Popovici and Hugo Larochelle,Greedy LayerWise Training of Deep Networks,in J.Platt et al.(Eds),Advances in Neural Information Processing Systems 19(NIPS 2006),pp.153-160,MIT Press,2007MarcAur

5、elio Ranzato,Christopher Poultney,Sumit Chopra and Yann LeCun Efficient Learning of Sparse Representations with an Energy-Based Model,in J.Platt et al.(Eds),Advances in Neural Information Processing Systems(NIPS 2006),MIT Press,2007,概述,2012年6月,纽约时报披露了Google Brain项目,吸引了公众的广泛关注。这个项目是由著名的斯坦福大学的机器学习教授An

6、drew Ng和在大规模计算机系统方面的世界顶尖专家JeffDean共同主导,用16000个CPU Core的并行计算平台训练一种称为“深度神经网络”(DNN,Deep Neural Networks)的机器学习模型(内部共有10亿个节点。这一网络自然是不能跟人类的神经网络相提并论的。要知道,人脑中可是有150多亿个神经元,互相连接的节点也就是突触数更是如银河沙数。曾经有人估算过,如果将一个人的大脑中所有神经细胞的轴突和树突依次连接起来,并拉成一根直线,可从地球连到月亮,再从月亮返回地球),在语音识别和图像识别等领域获得了巨大的成功。,概述,2012年11月,微软在中国天津的一次活动上公开演示

7、了一个全自动的同声传译系统,讲演者用英文演讲,后台的计算机一气呵成自动完成语音识别、英中机器翻译和中文语音合成,效果非常流畅。据报道,后面支撑的关键技术也是深度学习。2013年1月,在百度年会上,创始人兼CEO李彦宏高调宣布要成立百度研究院,其中第一个成立的就是“深度学习研究所”。2013年3月谷歌收购了加拿大神经网络方面的创业公司DNNresearch,DNNresearch公司是由多伦多大学教授Geoffrey Hinton与他的两个研究生Alex Krizhevsky和Ilya Sutskever于去年成立,由于谷歌在本次收购中没有获得任何实际的产品或服务,所以本次收购实质上属于人才性收

8、购,收购的主体实为了这三人团队。,概述,为什么拥有大数据的互联网公司争相投入大量资源研发深度学习技术。听起来感觉deep learning很牛那样。那什么是deep learning?为什么有deep learning?它是怎么来的?又能干什么呢?目前存在哪些困难呢?这些问题的简答都需要慢慢来。咱们先来了解下机器学习(人工智能的核心)的背景。,背景,机器学习(Machine Learning)是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的学科。机器能否像人类一样能具有学习能力呢?1959年美国的塞缪尔(Samuel)设计了

9、一个下棋程序,这个程序具有学习能力,它可以在不断的对弈中改善自己的棋艺。4年后,这个程序战胜了设计者本人。又过了3年,这个程序战胜了美国一个保持8年之久的常胜不败的冠军。这个程序向人们展示了机器学习的能力,提出了许多令人深思的社会问题与哲学问题,背景,在图像识别、语音识别、天气预测、基因表达等方面。目前我们通过机器学习去解决这些问题的思路都是这样的:,从开始的通过传感器来获得数据。然后经过预处理、特征提取、特征选择,再到推理、预测或者识别。最后一个部分,也就是机器学习的部分,绝大部分的工作是在这方面做的。中间的三部分,概括起来就是特征表达。良好的特征表达,对最终算法的准确性起了非常关键的作用,

10、而且系统主要的计算和测试工作都耗在这一大部分。但这块实际中一般都是人工完成的。,背景,截止现在,也出现了不少NB的特征(好的特征应具有不变性(大小、尺度和旋转等)和可区分性):例如Sift的出现,是局部图像特征描述子研究领域一项里程碑式的工作。由于SIFT对尺度、旋转以及一定视角和光照变化等图像变化都具有不变性,并且SIFT具有很强的可区分性。但它也不是万能的。,背景,手工地选取特征是一件非常费力、启发式(需要专业知识)的方法,而且它的调节需要大量的时间。既然手工选取特征不太好,那么能不能自动地学习一些特征呢?答案是能!Deep Learning就是用来干这个事情的,看它的一个别名Unsupe

11、rvised Feature Learning,就可以顾名思义了,Unsupervised的意思就是不要人参与特征的选取过程。那它是怎么学习的呢?怎么知道哪些特征好哪些不好呢?我们说机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为的学科。好,那我们人的视觉系统是怎么工作的呢?,人脑视觉机理,1981 年的诺贝尔医学奖,颁发给了 David Hubel(出生于加拿大的美国神经生物学家)和TorstenWiesel,以及 Roger Sperry。前两位的主要贡献,是“发现了视觉系统的信息处理”:可视皮层是分级的:,人脑视觉机理,1958 年,David Hubel 等,研究瞳孔区域与大脑

12、皮层神经元的对应关系。他们在猫的后脑头骨上,开了一个3 毫米的小洞,向洞里插入电极,测量神经元的活跃程度。他们在小猫的眼前,展现各种形状、各种亮度的物体。并且,在展现每一件物体时,还改变物体放置的位置和角度。他们期望通过这个办法,让小猫瞳孔感受不同类型、不同强弱的刺激。目的是去证明一个猜测。位于后脑皮层的不同视觉神经元,与瞳孔所受刺激之间,存在某种对应关系。一旦瞳孔受到某一种刺激,后脑皮层的某一部分神经元就会活跃。经历了很多天反复的枯燥的试验,同时牺牲了若干只可怜的小猫,David Hubel 发现了一种被称为“方向选择性细胞”的神经元细胞。当瞳孔发现了眼前的物体的边缘,而且这个边缘指向某个方

13、向时,这种神经元细胞就会活跃。,人脑视觉机理,这个发现激发了人们对于神经系统的进一步思考。神经-中枢-大脑的工作过程,或许是一个不断迭代、不断抽象的过程。这里的关键词有两个,一个是抽象,一个是迭代。从原始信号,做低级抽象,逐渐向高级抽象迭代。人类的逻辑思维,经常使用高度抽象的概念。,人脑视觉机理,例如,从原始信号摄入开始(瞳孔摄入像素 Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。,人脑视觉机理,这个生理学的发现,促成了计算机人工智能,在四十年后的突破性发展。总的来说,人的视觉

14、系统的信息处理是分级的。从低级的V1区提取边缘特征,再到V2区的形状或者目标的部分等,再到更高层,整个目标、目标的行为等。也就是说高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越来越能表现语义或者意图。而抽象层面越高,存在的可能猜测就越少,就越利于分类。,人脑视觉机理,提到了关键词:分层。而Deep learning的deep是不是就表示我存在多少层,也就是多深呢?没错。那Deep learning是如何借鉴这个过程的呢?毕竟是归于计算机来处理,面对的一个问题就是怎么对这个过程建模?因为我们要学习的是特征的表达,那么关于特征,或者说关于这个层级特征,我们需要了解地更深入点。所以

15、在说Deep Learning之前,我们有必要再啰嗦下特征,关于特征,特征是机器学习系统的原材料,对最终模型的影响是毋庸置疑的。如果数据被很好的表达成了特征,通常线性模型就能达到满意的精度。那对于特征,我们需要考虑什么呢?,1、特征表示的粒度,学习算法在一个什么粒度上的特征表示,才有能发挥作用?就一个图片来说,像素级的特征根本没有价值。例如下面的摩托车,从像素级别,根本得不到任何信息,其无法进行摩托车和非摩托车的区分。而如果特征是一个具有结构性的时候,比如是否具有车把手(handle),是否具有车轮(wheel),就很容易把摩托车和非摩托车区分,学习算法才能发挥作用。,2、初级(浅层)特征表示

16、,既然像素级的特征表示方法没有作用,那怎样的表示才有用呢?1995 年前后,David Field 试图同时用生理学和计算机的手段,双管齐下,研究视觉问题。他们收集了很多黑白风景照片,从这些照片中,提取出400个小碎片,每个照片碎片的尺寸均为 16x16 像素,不妨把这400个碎片标记为 Si,i=0,.399。接下来,再从这些黑白风景照片中,随机提取另一个碎片,尺寸也是 16x16 像素,不妨把这个碎片标记为 T。他们提出的问题是,如何从这400个碎片中,选取一组碎片,Sk,通过叠加的办法,合成出一个新的碎片,而这个新的碎片,应当与随机选择的目标碎片 T,尽可能相似,同时,Sk 的数量尽可能

17、少。用数学的语言来描述,就是:Sum_k(ak*Sk)-T,其中 ak 是在叠加碎片 Sk 时的权重系数。,2、初级(浅层)特征表示,为解决这个问题,David Field 发明了一个算法,稀疏编码(Sparse Coding)。稀疏编码是一个重复迭代的过程,每次迭代分两步:1)选择一组 Sk,然后调整 ak,使得Sum_k(ak*Sk)最接近 T。2)固定住 ak,在 400 个碎片中,选择其它更合适的碎片Sk,替代原先的 Sk,使得Sum_k(ak*Sk)最接近 T。经过几次迭代后,最佳的 Sk 组合,被遴选出来了。令人惊奇的是,被选中的 Sk,基本上都是照片上不同物体的边缘线,这些线段形

18、状相似,区别在于方向。David Field 的算法结果,与 杀猫者David Hubel 的生理发现,不谋而合!,2、初级(浅层)特征表示,也就是说,复杂图形,往往由一些基本结构组成。比如下图:一个图可以通过用64种正交的edges(可以理解成正交的基本结构)来线性表示。比如样例的x可以用1-64个edges中的三个按照0.8,0.3,0.5的权重调和而成。而其他基本edge没有贡献,因此均为0,2、初级(浅层)特征表示,另外,大牛们还发现,不仅图像存在这个规律,声音也存在。他们从未标注的声音中发现了20种基本的声音结构,其余的声音可以由这20种基本结构合成。(同声传译的秘诀之一),3、结构

19、性特征表示,小块的图形可以由基本edge构成,更结构化,更复杂的,具有概念性的图形如何表示呢?这就需要更高层次的特征表示,比如V2,V4。因此V1看像素级是像素级。V2看V1是像素级,这个是层次递进的,高层表达由底层表达的组合而成。专业点说就是基basis。V1取提出的basis是边缘,然后V2层是V1层这些basis的组合,这时候V2区得到的又是高一层的basis。即上一层的basis组合的结果,上上层又是上一层的组合basis(HHT有类似之处),3、结构性特征表示,直观上说,就是找到make sense的小patch再将其进行combine,就得到了上一层的feature,递归地向上le

20、arning feature。,3、结构性特征表示,在不同object上做training时,所得的edge basis 是非常相似的,但object parts和models 就会completely different了(那咱们分辨car或者face是不是容易多了):,3、结构性特征表示,一个人在看一个doc的时候,眼睛看到的是word,由这些word在大脑里自动切词形成term,在按照概念组织的方式,先验的学习,得到topic,然后再进行高层次的learning。,研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的天惊大秘密。,下面用5秒种看一段文字。,4、需要有

21、多少个特征?,我们知道需要层次的特征构建,由浅入深,但每一层该有多少个特征呢?任何一种方法,特征越多,给出的参考信息就越多,准确性会得到提升。但特征多意味着计算复杂,探索的空间大,可以用来训练的数据在每个特征上就会稀疏,都会带来各种问题,并不一定特征越多越好,好了,到了这一步,终于可以聊到Deep learning了。上面我们聊到为什么会有Deep learning(让机器自动学习良好的特征,而免去人工选取过程。还有参考人的分层视觉处理系统),我们得到一个结论就是Deep learning需要多层来获得更抽象的特征表达。那么多少层才合适呢?用什么架构来建模呢?怎么进行非监督训练呢?,Deep

22、Learning 基本思想,假设我们有一个系统S,它有n层(S1,Sn),它的输入是I,输出是O,形象地表示为:I=S1=S2=.=Sn=O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失(呵呵,大牛说,这是不可能的。信息论中有个“信息逐层丢失”的说法(信息处理不等式),,Deep Learning 基本思想,设处理a信息得到b,再对b处理得到c,那么可以证明:a和c的互信息不会超过a和b的互信息。这表明信息处理不会增加信息,大部分处理会丢失信息。当然了,如果丢掉的是没用的信息那多好啊),保持了不变,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都

23、是原有信息(即输入I)的另外一种表示。现在回到我们的主题Deep Learning,我们需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设我们设计了一个系统S(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,,Sn。,Deep Learning 基本思想,对于深度学习来说,其思想就是对堆叠多个层,也就是说这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达了。另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即

24、可,这个放松会导致另外一类不同的Deep Learning方法。上述就是Deep Learning的基本思想,浅层学习(Shallow Learning)和深度学习(Deep Learning),浅层学习是机器学习的第一次浪潮。20世纪80年代末期,用于人工神经网络的反向传播算法(也叫Back Propagation算法或者BP算法)的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。这个热潮一直持续到今天。人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习统计规律,从而对未知事件做预测。这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显出优越性。

25、这个时候的人工神经网络,虽也被称作多层感知机(Multi-layer Perceptron),但实际是种只含有一层隐层节点的浅层模型。,浅层学习(Shallow Learning)和深度学习(Deep Learning),浅层学习是机器学习的第一次浪潮。20世纪90年代,各种各样的浅层机器学习模型相继被提出,例如支撑向量机(SVM,Support Vector Machines)、Boosting、最大熵方法(如LR,Logistic Regression)等。这些模型的结构基本上可以看成带有一层隐层节点(如SVM、Boosting),或没有隐层节点(如LR)。这些模型无论是在理论分析还是应用

26、中都获得了巨大的成功。相比之下,由于理论分析的难度大,训练方法又需要很多经验和技巧,这个时期浅层人工神经网络反而相对沉寂。,浅层学习(Shallow Learning)和深度学习(Deep Learning),深度学习是机器学习的第二次浪潮。2006年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton和他的学生RuslanSalakhutdinov在科学上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。这篇文章有两个主要观点:1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可

27、以通过“逐层初始化”(layer-wise pre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的。,浅层学习(Shallow Learning)和深度学习(Deep Learning),深度学习是机器学习的第二次浪潮。当前多数分类、回归等学习方法为浅层结构算法,其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。(多层的好处是可以用较少的参数表示复杂的函数),浅层学习(Shal

28、low Learning)和深度学习(Deep Learning),深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。区别于传统的浅层学习,深度学习的不同在于:1)强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;2)明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。,Deep learning与Neura

29、l Network,深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习是无监督学习的一种。深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。,Deep learning与Neural Network,Deep learning本身算是machine learning的一个分支,简单可以理解为neural network的发展。大约二三十年前,neural network曾经是ML领

30、域特别火热的一个方向,但是后来确慢慢淡出了,原因包括以下几个方面:1)比较容易过拟合,参数比较难tune,而且需要不少trick;2)训练速度比较慢,在层次比较少(小于等于3)的情况下效果并不比其它方法更优;所以中间有大约20多年的时间,神经网络被关注很少,这段时间基本上是SVM和boosting算法的天下。但是,一个痴心的老先生Hinton,他坚持了下来,并最终(和其它人一起Bengio、Yann.lecun等)提成了一个实际可行的deep learning框架。,Deep learning与Neural Network,Deep learning与传统的神经网络之间有相同的地方也有很多不同

31、。二者的相同在于deep learning采用了神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接;这种分层结构,是比较接近人类大脑的结构的。,Deep learning与Neural Network,为了克服神经网络训练中的问题,DL采用了与神经网络很不同的训练机制。传统神经网络中,采用的是back propagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛(整体是一个梯度下降法)。deep

32、 learning整体上是一个layer-wise(分层计算)的训练机制。这样做的原因是因为,如果采用back propagation的机制,对于一个deep network(7层以上),残差传播到最前面的层已经变得太小,出现所谓的gradient diffusion(梯度扩散)。这个问题我们接下来讨论。,Deep learning训练过程,如果对所有层同时训练,时间复杂度会太高;如果每次训练一层,偏差就会逐层传递。这会面临跟上面监督学习中相反的问题,会严重欠拟合(因为深度网络的神经元和参数太多了)。2006年,hinton提出了在非监督数据上建立多层神经网络的一个有效方法,简单的说,分为两步

33、,一是每次训练一层网络,二是调优,Deep learning训练过程,deep learning训练过程具体如下:1)使用自下上升非监督学习(就是从底层开始,一层一层的往顶层训练):采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是feature learning过程):具体的,先用无标定数据训练第一层,训练时先学习第一层的参数(这一层可以看作是得到一个使得输出和输入差别最小的三层神经网络的隐层),由于模型capacity的限制以及稀疏性约束,使得得到的模型能够学习到数据本身的结构,从而得到比输入更具有表示能

34、力的特征;在学习得到第n-1层后,将n-1层的输出作为第n层的输入,训练第n层,由此分别得到各层的参数;,Deep learning训练过程,deep learning训练过程具体如下:2)自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调):基于第一步得到的各层参数进一步fine-tune整个多层模型的参数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果;所以deep learning效果好很大程度上归功于第一步的featur

35、e learning过程。,Deep Learning的常用模型,AutoEncoder自动编码器Deep Learning最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重。自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征。自动编码器就是一种尽可能复现输入信号的神经网络。为了实现这种复现,自动编码器就必须捕捉可以代表输入数据的最重要的因素,就像PCA那样,找到可以代表原信息的主要成分。,AutoEncoder自动编码器,具体过程简

36、单的说明如下:1)给定无标签数据,用非监督学习学习特征:,在我们之前的神经网络中,如第一个图,我们输入的样本是有标签的,即(input,target),这样我们根据当前输出和target(label)之间的差去改变前面各层的参数,直到收敛。但现在我们只有无标签数据,也就是右边的图。那么这个误差怎么得到呢?,AutoEncoder自动编码器,我们将input输入一个encoder编码器,就会得到一个code,这个code也就是输入的一个表示,那么我们怎么知道这个code表示的就是input呢?我们加一个decoder解码器,这时候decoder就会输出一个信息,那么如果输出的这个信息和一开始的输

37、入信号input是很像的(理想情况下就是一样的),那很明显,我们就有理由相信这个code是靠谱的。所以,我们就通过调整encoder和decoder的参数,使得重构误差最小,这时候我们就得到了输入input信号的第一个表示了,也就是编码code了。因为是无标签数据,所以误差的来源就是直接重构后与原输入相比得到。,AutoEncoder自动编码器,2)通过编码器产生特征,然后训练下一层。这样逐层训练:那上面我们就得到第一层的code,我们的重构误差最小让我们相信这个code就是原输入信号的良好表达了,或者牵强点说,它和原信号是一模一样的(表达不一样,反映的是一个东西)。那第二层和第一层的训练方式

38、就没有差别了,我们将第一层输出的code当成第二层的输入信号,同样最小化重构误差,就会得到第二层的参数,并且得到第二层输入的code,也就是原输入信息的第二个表达了。其他层就同样的方法炮制就行了。,AutoEncoder自动编码器,3)有监督微调:经过上面的方法,我们就可以得到很多层了。至于需要多少层需要自己试验调了。每一层都会得到原始输入的不同的表达。当然了,我们觉得它是越抽象越好了,就像人的视觉系统一样。到这里,这个AutoEncoder还不能用来分类数据,因为它还没有学习如何去连结一个输入和一个类。它只是学会了如何去重构或者复现它的输入而已。或者说,它只是学习获得了一个可以良好代表输入的

39、特征,这个特征可以最大程度上代表原输入信号。那么,为了实现分类,我们就可以在AutoEncoder的最顶的编码层添加一个分类器(例如罗杰斯特回归、SVM等),然后通过标准的多层神经网络的监督训练方法(梯度下降法)去训练。,AutoEncoder自动编码器,我们需要将最后层的特征code输入到最后的分类器,通过有标签样本,通过监督学习进行微调,这也分两种,一个是只调整分类器(黑色部分):,AutoEncoder自动编码器,另一种:通过有标签样本,微调整个系统:(如果有足够多的数据,这个是最好的。end-to-end learning端对端学习),在研究中可以发现,如果在原有的特征中加入这些自动学

40、习得到的特征可以大大提高精确度,甚至在分类问题中比目前最好的分类算法效果还要好!,AutoEncoder存在一些变体,Sparse AutoEncoder稀疏自动编码器:继续加上一些约束条件得到新的Deep Learning方法,如:如果在AutoEncoder的基础上加上L1的Regularity限制(L1主要是约束每一层中的节点中大部分都要为0,只有少数不为0,这就是Sparse名字的来源),我们就可以得到Sparse AutoEncoder法。,人脑好像也是这样的,某个输入只是刺激某些神经元,其他的大部分的神经元是受到抑制的,AutoEncoder存在一些变体,Denoising Aut

41、oEncoders降噪自动编码器降噪自动编码器DA是在自动编码器的基础上,训练数据加入噪声,所以自动编码器必须学习去去除这种噪声而获得真正的没有被噪声污染过的输入。因此,这就迫使编码器去学习输入信号的更加鲁棒的表达。DA可以通过梯度下降算法去训练。,Convolutional Neural Networks卷积神经网络,卷积神经网络是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点。它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和

42、数据重建过程。卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。,CNN,卷积神经网络的网络结构卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。,输入图像通过和三个可训练的滤波器和可加偏置进行卷积,卷积后在C1层产生三个特征映射图,然后特征映射图中每组的四个像素再进行求和,加权值,加偏置,得到三个S2层的特征映射图。这些映射图再进过滤波得到C3层。这个层级结构再和S2一样产生S4。最终,这些像素值被光栅化,并连接成一个向量输入到传统的神经网络,得到输出。,CNN,C层为特征提取层,每

43、个神经元的输入与前一层的局部感受野相连,并提取该局部的特征;S层是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射为一个平面,平面上所有神经元的权值相等。卷积神经网络中的每一个特征提取层(C-层)都紧跟着一个用来求局部平均与二次提取的计算层(S-层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。,关于参数减少与权值共享,CNN一个优势在于通过感受野和权值共享减少了神经网络需要训练的参数的个数。那究竟是啥的呢?如果我们有1000 x1000像素的图像,有1百万个隐层神经元,那么他们全连接的话(每个隐层神经元都连接图像的每一个像素点),就有1000 x100

44、0 x1000000=1012个连接,也就是1012个权值参数。,关于参数减少与权值共享,图像的空间联系是局部的,就像人是通过一个局部的感受野去感受外界图像一样,每一个神经元都不需要对全局图像做感受,每个神经元只感受局部的图像区域,然后在更高层,将这些感受不同局部的神经元综合起来就可以得到全局的信息了。这样,我们就可以减少连接的数目,也就是减少神经网络需要训练的权值参数的个数了。如下图右:假如局部感受野是10 x10,隐层每个感受野只需要和这10 x10的局部图像相连接,所以1百万个隐层神经元就只有一亿个连接,即108个参数。比原来减少了四个0(数量级),这样训练起来就没那么费力了,但还是感觉

45、很多的啊,那还有啥办法没?,关于参数减少与权值共享,我们知道,隐含层的每一个神经元都连接10 x10个图像区域,也就是说每一个神经元存在10 x10=100个连接权值参数。那如果我们每个神经元这100个参数是相同的呢?也就是说每个神经元用的是同一个卷积核去卷积图像。这样我们就只有100个参数啊!不管你隐层的神经元个数有多少,两层间的连接我只有100个参数啊!这就是权值共享啊!这就是卷积神经网络的主打优点啊!也许你会问这样做靠谱吗?为什么可行呢?这个往下看,关于参数减少与权值共享,假如一种滤波器,也就是一种卷积核就是提出图像的一种特征,例如某个方向的边缘。那么我们需要提取不同的特征,怎么办,加多

46、几种滤波器不就行了吗?对了。所以假设我们加到100种滤波器,每种滤波器的参数不一样,表示它提出输入图像的不同特征,例如不同的边缘。这样每种滤波器去卷积图像就得到对图像的不同特征的放映,我们称之为Feature Map。所以100种卷积核就有100个Feature Map。,关于参数减少与权值共享,这100个Feature Map就组成了一层神经元。到这个时候明了了吧。我们这一层有多少个参数了?100种卷积核x每种卷积核共享100个参数=100 x100=10K,也就是1万个参数。见下图右:不同的颜色表达不同的滤波器。,关于参数减少与权值共享,神经元个数如何确定刚才说隐层的参数个数和隐层的神经元

47、个数无关,只和滤波器的大小和滤波器种类的多少有关。那么隐层的神经元个数怎么确定呢?它和原图像,也就是输入的大小(神经元个数)、滤波器的大小和滤波器在图像中的滑动步长都有关!,关于参数减少与权值共享,例如,我的图像是1000 x1000像素,而滤波器大小是10 x10,假设滤波器没有重叠,也就是步长为10,这样隐层的神经元个数就是(1000 x1000)/(10 x10)=100 x100个神经元了,这只是一种滤波器,也就是一个Feature Map的神经元个数哦,如果100个Feature Map就是100倍了。由此可见,图像越大,神经元个数和需要训练的权值参数个数的贫富差距就越大。,关于参数

48、减少与权值共享,上面的讨论都没有考虑每个神经元的偏置部分。所以权值个数需要加1。这个也是同一种滤波器共享的。卷积网络的核心思想是将:局部感受野、权值共享(或者权值复制)以及时间或空间亚采样这三种结构思想结合起来获得了某种程度的位移、尺度、形变不变性。,一个典型的例子说明,一种典型的用来识别数字的卷积网络是LeNet-5。当年美国大多数银行就是用它来识别支票上面的手写数字的。能够达到这种商用的地步,它的准确性可想而知。,一个典型的例子说明,LeNet-5共有7层,不包含输入,每层都包含可训练参数(连接权重)。输入图像为32*32大小。这样做的原因是希望潜在的明显特征如笔画断电或角点能够出现在最高

49、层特征监测子感受野的中心。,一个典型的例子说明,C1层是一个卷积层(通过卷积运算,可以使原信号特征增强,并且降低噪音),由6个特征图Feature Map构成。特征图中每个神经元与输入中5*5的邻域相连。特征图的大小为28*28,这样能防止输入的连接掉到边界之外。C1有156个可训练参数(每个滤波器5*5=25个unit参数和一个bias参数,一共6个滤波器,共(5*5+1)*6=156个参数),共156*(28*28)=122,304个连接。,一个典型的例子说明,S2层是一个下采样层(对图像进行子抽样,可以减少数据处理量同时保留有用信息),有6个14*14的特征图。特征图中的每个单元与C1中

50、相对应特征图的2*2邻域相连接。S2层每个单元的4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。每个单元的2*2感受野并不重叠,因此S2中每个特征图的大小是C1中特征图大小的1/4(行和列各1/2)。S2层有(6*(1+1)12个可训练参数和5880个连接。,一个典型的例子说明,C3层也是一个卷积层,它同样通过5x5的卷积核去卷积层S2,然后得到的特征map就只有10 x10个神经元,但是它有16种不同的卷积核,所以就存在16个特征map了。这里需要注意的一点是:C3中的每个特征map是连接到S2中的所有6个或者几个特征map的,表示本层的特征map是上一层提取到的特征map的不同组合

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号