删减版深度学习

上传人:wm****3 文档编号:54249119 上传时间:2018-09-10 格式:PPT 页数:40 大小:2.71MB
返回 下载 相关 举报
删减版深度学习_第1页
第1页 / 共40页
删减版深度学习_第2页
第2页 / 共40页
删减版深度学习_第3页
第3页 / 共40页
删减版深度学习_第4页
第4页 / 共40页
删减版深度学习_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《删减版深度学习》由会员分享,可在线阅读,更多相关《删减版深度学习(40页珍藏版)》请在金锄头文库上搜索。

1、人脑视觉机理,1981 年的诺贝尔医学奖,颁发给了 David Hubel(出生于加拿大的美国神经生物学家) 和TorstenWiesel,以及 Roger Sperry。前两位的主要贡献,是“发现了视觉系统的信息处理”:可视皮层是分级的:,人脑视觉机理,这个发现激发了人们对于神经系统的进一步思考。神经-中枢-大脑的工作过程,或许是一个不断迭代、不断抽象的过程。 这里的关键词有两个,一个是抽象,一个是迭代。从原始信号,做低级抽象,逐渐向高级抽象迭代。人类的逻辑思维,经常使用高度抽象的概念。,人脑视觉机理,例如,从原始信号摄入开始(瞳孔摄入像素 Pixels),接着做初步处理(大脑皮层某些细胞发

2、现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。,人脑视觉机理,这个生理学的发现,促成了计算机人工智能,在四十年后的突破性发展。 总的来说,人的视觉系统的信息处理是分级的。从低级的V1区提取边缘特征,再到V2区的形状或者目标的部分等,再到更高层,整个目标、目标的行为等。也就是说高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越来越能表现语义或者意图。而抽象层面越高,存在的可能猜测就越少,就越利于分类。,关于特征,特征是机器学习系统的原材料,对最终模型的影响是毋庸置疑的。如果数据被很好的表达成了特征,通常线性模型就能

3、达到满意的精度。那对于特征,我们需要考虑什么呢?,1、特征表示的粒度,学习算法在一个什么粒度上的特征表示,才有能发挥作用?就一个图片来说,像素级的特征根本没有价值。例如下面的摩托车,从像素级别,根本得不到任何信息,其无法进行摩托车和非摩托车的区分。而如果特征是一个具有结构性的时候,比如是否具有车把手(handle),是否具有车轮(wheel),就很容易把摩托车和非摩托车区分,学习算法才能发挥作用。,2、初级(浅层)特征表示,为解决这个问题,David Field 发明了一个算法,稀疏编码(Sparse Coding)。 稀疏编码是一个重复迭代的过程,每次迭代分两步: 1)选择一组 Sk,然后调

4、整 ak,使得Sum_k (ak * Sk) 最接近 T。 2)固定住 ak,在 400 个碎片中,选择其它更合适的碎片Sk,替代原先的 Sk,使得Sum_k (ak * Sk) 最接近 T。 经过几次迭代后,最佳的 Sk 组合,被遴选出来了。令人惊奇的是,被选中的 Sk,基本上都是照片上不同物体的边缘线,这些线段形状相似,区别在于方向。 David Field 的算法结果,与 杀猫者David Hubel 的生理发现,不谋而合!,2、初级(浅层)特征表示,也就是说,复杂图形,往往由一些基本结构组成。比如下图:一个图可以通过用64种正交的edges(可以理解成正交的基本结构)来线性表示。比如样

5、例的x可以用1-64个edges中的三个按照0.8,0.3,0.5的权重调和而成。而其他基本edge没有贡献,因此均为0,3、结构性特征表示,小块的图形可以由基本edge构成,更结构化,更复杂的,具有概念性的图形如何表示呢? 这就需要更高层次的特征表示,比如V2,V4。因此V1看像素级是像素级。V2看V1是像素级,这个是层次递进的,高层表达由底层表达的组合而成。专业点说就是基basis。V1取提出的basis是边缘,然后V2层是V1层这些basis的组合,这时候V2区得到的又是高一层的basis。即上一层的basis组合的结果,上上层又是上一层的组合basis(HHT有类似之处),3、结构性特

6、征表示,直观上说,就是找到make sense的小patch再将其进行combine,就得到了上一层的feature,递归地向上learning feature。,3、结构性特征表示,在不同object上做training时,所得的edge basis 是非常相似的,但object parts和models 就会completely different了(那咱们分辨car或者face是不是容易多了):,4、需要有多少个特征?,我们知道需要层次的特征构建,由浅入深,但每一层该有多少个特征呢? 任何一种方法,特征越多,给出的参考信息就越多,准确性会得到提升。但特征多意味着计算复杂,探索的空间大,可

7、以用来训练的数据在每个特征上就会稀疏,都会带来各种问题,并不一定特征越多越好,好了,到了这一步,终于可以聊到Deep learning了。上面我们聊到为什么会有Deep learning(让机器自动学习良好的特征,而免去人工选取过程。还有参考人的分层视觉处理系统),我们得到一个结论就是Deep learning需要多层来获得更抽象的特征表达。那么多少层才合适呢?用什么架构来建模呢?怎么进行非监督训练呢?,Deep Learning 基本思想,假设我们有一个系统S,它有n层(S1,Sn),它的输入是I,输出是O,形象地表示为: I =S1=S2=Sn = O,如果输出O等于输入I,即输入I经过这

8、个系统变化之后没有任何的信息损失(呵呵,大牛说,这是不可能的。信息论中有个“信息逐层丢失”的说法(信息处理不等式),,Deep Learning 基本思想,设处理a信息得到b,再对b处理得到c,那么可以证明:a和c的互信息不会超过a和b的互信息。这表明信息处理不会增加信息,大部分处理会丢失信息。当然了,如果丢掉的是没用的信息那多好啊),保持了不变,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。 现在回到我们的主题Deep Learning,我们需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设我们设计了一个系统S

9、(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,, Sn。,Deep Learning 基本思想,对于深度学习来说,其思想就是对堆叠多个层,也就是说这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达了。 另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即可,这个放松会导致另外一类不同的Deep Learning方法。上述就是Deep Learning的基本思想,浅层学习(Shallow Learning)和深度学习(Dee

10、p Learning),深度学习是机器学习的第二次浪潮。 当前多数分类、回归等学习方法为浅层结构算法,其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。(多层的好处是可以用较少的参数表示复杂的函数),浅层学习(Shallow Learning)和深度学习(Deep Learning),深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因

11、此,“深度模型”是手段,“特征学习”是目的。区别于传统的浅层学习,深度学习的不同在于: 1)强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点; 2)明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。 与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。,Deep learning与Neural Network,深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习是无监督学习的一种。

12、 深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。,Deep learning与Neural Network,Deep learning本身算是machine learning的一个分支,简单可以理解为neural network的发展。大约二三十年前,neural network曾经是ML领域特别火热的一个方向,但是后来确慢慢淡出了,原因包括以下几个方面: 1)比较容易过拟合,参数比较难tune,而且需要不少trick; 2)训练速度比较慢,在层次比较少(小于等于3)的情

13、况下效果并不比其它方法更优; 所以中间有大约20多年的时间,神经网络被关注很少,这段时间基本上是SVM和boosting算法的天下。但是,一个痴心的老先生Hinton,他坚持了下来,并最终(和其它人一起Bengio、Yann.lecun等)提成了一个实际可行的deep learning框架。,Deep learning与Neural Network,Deep learning与传统的神经网络之间有相同的地方也有很多不同。 二者的相同在于deep learning采用了神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相

14、互无连接;这种分层结构,是比较接近人类大脑的结构的。,Deep learning与Neural Network,为了克服神经网络训练中的问题,DL采用了与神经网络很不同的训练机制。传统神经网络中,采用的是back propagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛(整体是一个梯度下降法)。 deep learning整体上是一个layer-wise(分层计算)的训练机制。这样做的原因是因为,如果采用back propagation的机制,对于一个deep network

15、(7层以上),残差传播到最前面的层已经变得太小,出现所谓的gradient diffusion(梯度扩散)。这个问题我们接下来讨论。,Deep learning训练过程,如果对所有层同时训练,时间复杂度会太高;如果每次训练一层,偏差就会逐层传递。这会面临跟上面监督学习中相反的问题,会严重欠拟合(因为深度网络的神经元和参数太多了)。 2006年,hinton提出了在非监督数据上建立多层神经网络的一个有效方法,简单的说,分为两步,一是每次训练一层网络,二是调优,Deep learning训练过程,deep learning训练过程具体如下: 1)使用自下上升非监督学习(就是从底层开始,一层一层的往

16、顶层训练): 采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是feature learning过程): 具体的,先用无标定数据训练第一层,训练时先学习第一层的参数(这一层可以看作是得到一个使得输出和输入差别最小的三层神经网络的隐层),由于模型capacity的限制以及稀疏性约束,使得得到的模型能够学习到数据本身的结构,从而得到比输入更具有表示能力的特征;在学习得到第n-1层后,将n-1层的输出作为第n层的输入,训练第n层,由此分别得到各层的参数;,Deep learning训练过程,deep learning训练过程具体如下: 2)自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调): 基于第一步得到的各层参数进一步fine-tune整个多层模型的参数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果;所以deep learning效果好很大程度上归功于第一步的feature learning过程。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号