《深度学习算法》由会员分享,可在线阅读,更多相关《深度学习算法(19页珍藏版)》请在金锄头文库上搜索。
1、浅谈深度学习DBN和CNN算法报告人:龚再文院系:自动化学院时间:2015.7.42006年,加拿大多伦多大学教授、机器学习领域的泰斗G.E.Hinton和他的学生R.R.Salakhutdinov在science上发表了一篇文章(用神经网络实现数据降维),开启了深度学习在学术界和工业界的浪潮。这篇文章有两个主要观点:l多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;l深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wisepre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的。深度学习的浪潮
2、u深度学习(DeepLearning)是机器学习研究中的一个新的领域,深度学习是当下最热门的方向之一。其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。u深度学习热潮爆发以来,诸多研究者都在不懈地努力着,希望能够把它应用于解决计算机视觉的各种任务上,从高层次(high-level)的识别(recognition),分类(classification)到低层次(low-level)的去噪(denoise)。让人不禁联想起当年的稀疏表达(sparserepresentation)的热潮,而深度学习如今的风靡程度看上去是有过之而无不及。深度学习也有横扫
3、high-level问题的趋势,high-level的很多方向都在被其不断刷新着数据。u作为强大的特征(feature)学习工具,在给定足够多的训练集的情况下,它可以帮助用户学习到这个任务下的具有很强分辨能力的特征。深度学习的浪潮u深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。多层的好处在于可以用较少的参数表示复杂的函数。u深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。区别于传统的浅
4、层学习,深度学习的不同在于:l强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;l明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。深度学习的实质u深度学习在近期赢得了很多关注,特别是百度也开始发力深度学习后(InstituteofDeepLearning),更是在国内引起了很多关注。在计算能力变得日益廉价的今天,深度学习试图建立大得多也复杂得多的神经网络。u很多深度学习的算法是无监督或半监督式学习算法,用来处理存在少量未
5、标识数据的大数据集。常见的深度学习算法包括:l受限波尔兹曼机(RestrictedBoltzmannMachine)l深度信念网络(DeepBeliefNetworks)l卷积神经网络(ConvolutionalNeuralNetworks)l堆栈式自动编码器(StackedAuto-encoders)深度学习算法深度学习算法ConvolutionalNeuralNetworks卷积神经网络DeepBeliefNetworks深度信念网络DBNs由多个限制玻尔兹曼机(RBM)层组成。RBM被“限制”为一个可视层和一个隐层,层间存在连接,但层内的单元间不存在连接。隐层单元被训练去捕捉在可视层表现
6、出来的高阶数据的相关性。Deep Belief Networks典型的神经网络类型深度信念网络的框架Deep Belief Networksl分别单独无监督地训练每一层RBM网络,确保特征向量映射到不同特征空间时,都尽可能多地保留特征信息;l在DBN的最后一层设置BP网络,接收RBM的输出特征向量作为它的输入特征向量,有监督地训练实体关系分类器。而且每一层RBM网络只能确保自身层内的权值对该层特征向量映射达到最优,并不是对整个DBN的特征向量映射达到最优,所以反向传播网络还将错误信息自顶向下传播至每一层RBM,微调整个DBN网络。RBM网络训练模型的过程可以看作对一个深层BP网络权值参数的初始
7、化,使DBN克服了BP网络因随机初始化权值参数而容易陷入局部最优和训练时间长的缺点。上述训练模型中第一步在深度学习的术语叫做预训练,第二步叫做微调。最上面有监督学习的那一层,根据具体的应用领域可以换成任何分类器模型,而不必是BP网络。DBN训练模型的过程Deep Belief NetworksCDPseudo,对比散度算法伪代码伪代码中涉及到的后验概率可以由能量模型和极大似然估计求出Deep Belief NetworksNotesOnCDPseudo,对比散度算法伪代码注释This is the RBM update procedure for binomial units. It can
8、easily adapted to other types of units.isasamplefromthetrainingdistributionfortheRBMisalearningrateforthestochasticgradientdescentinContrastiveDivergenceWistheRBMweightmatrix,ofdimension(numberofhiddenunits,numberofinputs)bistheRBMoffsetvectorforinputunitscistheRBMoffsetvectorforhiddenunitsNotation:
9、Q(h2=1|x2)isthevectorwithelementsQ(h2i=1|x2)Results权重矩阵可视化结果迭代1次迭代10次Results重构平均错误率l迭代1次:Averagereconstructionerroris:66.2661;Mini-batchmeansquarederrorontrainingsetis0.13954;Full-batchtrainerr=0.068880;l迭代10次:epoch10/10.Averagereconstructionerroris:42.2354;Mini-batchmeansquarederrorontrainingsetis0
10、.026504;Full-batchtrainerr=0.025100。随着迭代次数的增加,无论是特征的提取还是重构错误率都有很好的改善;当然,也不是迭代次数越多越好,迭代次数的增加会消耗大量的时间和储存空间,训练数据集较大时尤其明显。Convolutional Neural Networksu卷积神经网络是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点。它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。uconvo
11、lution和和pooling的优势为使网络结构中所需学习到的参数个的优势为使网络结构中所需学习到的参数个数变得更少,并且学习到的特征具有一些不变性,比如说平移,旋转数变得更少,并且学习到的特征具有一些不变性,比如说平移,旋转不变性。不变性。以2维图像提取为例,学习的参数个数变少是因为不需要用整张图片的像素来输入到网络,而只需学习其中一部分patch。而不变的特性则是由于采用了mean-pooling或者max-pooling等方法。uCNN是第一个真正成功训练多层网络结构的学习算法。它利用空间关系减少需要学习的参数数目以提高一般前向BP算法的训练性能。CNN作为一个深度学习架构提出是为了最小
12、化数据的预处理要求。在CNN中,图像的一小部分(局部感受区域)作为层级结构的最低层的输入,信息再依次传输到不同的层,每层通过一个数字滤波器去获得观测数据的最显著的特征。CNN简介Convolutional Neural NetworksCNN的网络结构输入图像通过和三个可训练的滤波器和可加偏置进行卷积,卷积后在C1层产生三个特征映射图,然后特征映射图中每组的四个像素再进行求和,加权值,加偏置,通过一个Sigmoid函数得到三个S2层的特征映射图。这些映射图再进过滤波得到C3层。这个层级结构再和S2一样产生S4。最终,这些像素值被光栅化,并连接成一个向量输入到传统的神经网络,得到输出。C:Con
13、volutionsS:SubsamplingConvolutional Neural Networks经典的例子(LeNet5结构图)可以看出对于这个网络,每输入一张32*32大小的图片,就输出一个84维的向量,这个向量即我们提取出的特征向量。Convolutional Neural NetworksCNN训练过程训练算法与传统的BP算法差不多。主要包括4步,这4步被分为两个阶段:第一阶段,向前传播阶段:第一阶段,向前传播阶段:a)从样本集中取一个样本(X,Yp),将X输入网络;b)计算相应的实际输出Op。在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行
14、时执行的过程。在此过程中,网络执行的是计算(实际上就是输入与每层的权值矩阵相点乘,得到最后的输出结果):Op=Fn(F2(F1(XpW(1)W(2)W(n)第二阶段,向后传播阶段第二阶段,向后传播阶段a)算实际输出Op与相应的理想输出Yp的差;b)按极小化误差的方法反向传播调整权矩阵。在开始训练前,所有的权值都应该用一些不同的小随机数进行初始化。“小随机数”用来保证网络不会因权值过大而进入饱和状态,从而导致训练失败;“不同”用来保证网络可以正常地学习。实际上,如果用相同的数去初始化权矩阵,则网络无能力学习。Results均方误差迭代1次迭代5次MeansquarederrorNumofpatc
15、h深度学习未来的工作uTheoreticalstudiesonDeepLearninguNewoptimizationandtrainingalgorithmsuParallelcomputingsystemstotrainverylargeandverydeepnetworkwithlargertrainingdatauLearn dynamic features for video analysisuImprovetheefficiencyforpixel-wiseclassification,segmentation,detectionandtrackingFutureWorks深度学习