首页 卷积神经网络研究综述

卷积神经网络研究综述

举报
开通vip

卷积神经网络研究综述第40卷计算机学报Vol.402017年论文在线出版号No.7月CHINESEJOURNALOFCOMPUTERSOnlinePublishingNo.7———————————————周飞燕,女,1986年生,博士研究生,主要研究领域为计算机辅助心血管疾病诊断.E-mail:fyzhou2013@sinano.ac.cn.金林鹏,男,19...

卷积神经网络研究综述
第40卷计算机学报Vol.402017年论文在线出版号No.7月CHINESEJOURNALOFCOMPUTERSOnlinePublishingNo.7———————————————周飞燕,女,1986年生,博士研究生,主要研究领域为计算机辅助心血管疾病诊断.E-mail:fyzhou2013@sinano.ac.cn.金林鹏,男,1984年生,博士,主要研究领域为机器学习.董军(通讯作者),男,1964年生,博士,研究员,博士生导师,主要研究领域为人工智能.卷积神经网络研究综述周飞燕1),2)金林鹏1),2)董军1)1)(中国科学院苏州纳米技术与纳米仿生研究所,苏州市216123)2)(中国科学院大学,北京市100049)摘要作为一个十余年来快速发展的崭新领域,深度学习受到了越来越多研究者的关注,它在特征提取和模型拟合上都有着相较于浅层模型显然的优势。深度学习善于从原始输入数据中挖掘越来越抽象的分布式特征 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示,而这些表示具有良好的泛化能力。它解决了过去人工智能中被认为难以解决的一些问题。且随着训练数据集数量的显著增长以及芯片处理能力的剧增,它在目标检测和计算机视觉、自然语言处理、语音识别和语义 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 等领域成效卓然,因此也促进了人工智能的发展。深度学习是包含多级非线性变换的层级机器学习 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,深层神经网络是目前的主要形式,其神经元间的连接模式受启发于动物视觉皮层组织,而卷积神经网络则是其中一种经典而广泛应用的网络结构。卷积神经网络的局部连接、权值共享及池化操作等特性使之可以有效地降低网络的复杂度,减少训练参数的数目,使模型对平移、扭曲、缩放具有一定程度的不变性,并具有强鲁棒性和容错能力,且也易于训练和优化网络结构。基于这些优越的特性,它在各种信号和信息处理任务中的性能优于标准的全连接神经网络。本文首先概述了卷积神经网络的发展历史,然后分别描述了神经元模型、多层感知器的结构。接着,详细分析了卷积神经网络的结构,包括卷积层、取样层、全连接层,它们发挥着不同的作用。然后,讨论了网中网结构、空间变换网络等改进的卷积神经网络。同时,还分别介绍了卷积神经网络的监督学习、无监督学习训练方法以及一些常用的开源工具。此外,本文以图像分类、人脸识别、音频检索、心电图分类及目标检测等为例,对卷积神经网络的应用作了归纳。卷积神经网络与递归神经网络的集成是一个途径。为了给读者以尽可能多的借鉴,本文还 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 并试验了不同参数及不同深度的卷积神经网络以图把握各参数间的相互关系及不同参数设置对结果的影响。最后,给出了卷积神经网络及其应用中待解决的若干问题。关键词卷积神经网络;深度学习;网络结构;训练方法;领域数据中图法分类号TP81论文引用格式:周飞燕,金林鹏,董军,卷积神经网络研究综述,2017,Vol.40,在线出版号No.7ZHOUFei-Yan,JINLin-Peng,DONGJun,ReviewofConvolutionalNeuralNetwork,2017,Vol.40,OnlinePublishingNo.7ReviewofConvolutionalNeuralNetworkZHOUFei-Yan1)2)JINLin-Peng1)2)DONGJun1)1)(SuzhouInstituteofNano-techandNano-bionics,ChineseAcademyofSciences,Suzhou215123)2)(UniversityofChineseAcademyofSciences,Beijing100049)AbstractAsanewandrapidlygrowingfieldformorethantenyears,deeplearninghasgainedmoreandmoreattentionsfromdifferentresearchers.Comparedwithshallowarchitectures,ithasgreatadvantageinbothfeatureextractingandmodelfitting.Anditisverygoodatdiscoveringincreasinglyabstractdistributedfeaturerepresentationswhosegeneralizationabilityisstrongfromtherawinputdata.Italsohassuccessfullysolvedsomeproblemswhichwereconsidereddifficulttosolveinartificialintelligenceinthepast.Furthermore,with网络出版时间:2017-01-2210:35:12网络出版地址:http://www.cnki.net/kcms/detail/11.1826.TP.20170122.1035.002.html2计算机学报2017年theoutstandinglyincreasedsizeofdatausedfortrainingandthedrasticincreasesinchipprocessingcapabilities,thismethodtodayhasresultedinsignificantprogressandbeenusedinabroadareaofapplicationssuchasobjectdetection,computervision,naturallanguageprocessing,speechrecognitionandsemanticparsingandsoon,thusalsopromotingtheadvancementofartificialintelligence.Deeplearningwhichconsistsofmultiplelevelsofnon-lineartransformationsisahierarchicalmachinelearningmethod.Anddeepneuralnetworkisthemainformofthepresentdeeplearningmethodinwhichtheconnectivitypatternbetweenitsneuronsisinspiredbytheorganizationoftheanimalvisualcortex.Convolutionalneuralnetworkthathasbeenwidelyusedisaclassickindofdeepneuralnetwork.Thereareseveralcharacteristicssuchaslocalconnections,sharedweights,poolingetc.Thesefeaturescanreducethecomplexityofthenetworkmodelandthenumberoftrainingparameters,andtheyalsocanmakethemodelcreatingsomedegreeofinvariancetoshift,distortionandscaleandhavingstrongrobustnessandfaulttolerance.Soitiseasytotrainandoptimizeitsnetworkstructure.Basedonthesepredominantcharacteristics,ithasbeenshowntooutperformthestandardfullyconnectedneuralnetworksinavarietyofsignalandinformationprocessingtasks.Inthispaper,firstofall,thehistoricaldevelopmentofconvolutionalneuralnetworkissummarized.Afterthat,thestructuresofaneuronmodelandmultilayerperceptronareshown.Lateron,adetailedanalysisoftheconvolutionalneuralnetworkarchitecturewhichiscomprisedofanumberofconvolutionallayersandpoolinglayersfollowedbyfullyconnectedlayersisgiven.Differentkindsoflayersinconvolutionalneuralnetworkarchitectureplaydifferentroles.Then,afewimprovedalgorithmssuchasnetworkinnetworkandspatialtransformernetworksofconvolutionalneuralnetworkaredescribed.Meanwhile,thesupervisedlearningandunsupervisedlearningmethodofconvolutionalneuralnetworkandsomewidelyusedopensourcetoolsareintroduced,respectively.Inaddition,theapplicationofconvolutionalneuralnetworkonimageclassification,facerecognition,audioretrieve,electrocardiogramclassification,objectdetection,andsoonisanalyzed.Integratingofconvolutionalneuralnetworkandrecurrentneuralnetworktotraininputteddatacouldbeanalternativemachinelearningapproach.Finally,differentconvolutionneuralnetworkstructureswithdifferentparametersanddifferentdepthsaredesigned.Throughaseriesofexperiments,therelationsbetweentheseparametersinthesemodelsandtheinfluenceofdifferentparametersettingsareready.Someadvantagesandremainedissuesofconvolutionalneuralnetworkanditsapplicationsareconcluded.Keywordsconvolutionalneuralnetwork;deeplearning;networkstructure;trainingmethod;domaindata1引言人工神经元网络(ArtificialNeuralNetwork,ANN)是对生物神经网络的一种模拟和近似,是由大量神经元通过相互连接而构成的自适应非线性动态网络系统。1943年,心理学家McCulloch和数理逻辑学家Pitts提出了神经元的第一个数学模型—MP模型[1]。MP模型具有开创意义,为后来的研究工作提供了依据。到了上世纪50年代末、60年代初,Rosenblatt在MP模型的基础之上增加学习功能,提出了单层感知器模型,第一次把神经网络的研究付诸实践[2-3]。但是单层感知器网络模型不能够处理线性不可分问题。直至1986年,Rumelhart和Hinton等提出了一种按误差逆传播算法训练的多层前馈网络—反向传播网络(BackPropagationNetwork,简称BP网络),解决了原来一些单层感知器所不能解决的问题[4]。由于在90年代,各种浅层机器学习模型相继被提出,较经典的如支持向量机[5]。而且当增加神经网络的层数时传统的BP网络会遇到局部最优、过拟合及梯度扩散等问题,这些使得深度模型的研究被搁置。2006年,Hinton等人[6]在《Science》上发文,其主要观点有:1)多隐层的人工神经网络具有优异的特征学习能力;2)可通过“逐层预训练”(layer-wisepre-training)来有效克服深层神经网络在训练上的困难,从此引出了深度学习(DeepLearning)的研究,同时也掀起了人工神经网络的又一热潮[7]。在深度学习的逐层预训练算法中首先将无监督学习应用于网络每一层的预训练,每次只无监督训练一层,并将该层的训练结果作为其下一论文在线出版号No.7周飞燕等:卷积神经网络研究综述3层的输入,然后再用有监督学习(BP算法)微调预训练好的网络[8-10]。这种深度学习预训练方法在手写体数字识别或者行人检测中,特别是当标注样本数量有限时能使识别效果或者检测效果得到显著提升[11]。Bengio[12]系统地介绍了深度学习所包含的网络结构和学习方法。目前,常用的深度学习模型有深度置信网络(DeepBeliefNetwork,DBN)[13-16]、层叠自动去噪编码机(StackedDeoisingAutoencoders,SDA)[17-18]、卷积神经网络(ConvolutionalNeuralNetwork,CNN)[19-20]等。2016年1月28日,英国《Nature》杂志以封面文章形式报道:谷歌旗下人工智能公司深灵(DeepMind)开发的AlphaGo以5比0战胜了卫冕欧洲冠军—本以为大概十年后人工智能才能做到[21]。AlphaGo主要采用价值网络(valuenetworks)来评估棋盘的位置,用策略网络(policynetworks)来选择下棋步法,这两种网络都是深层神经网络模型,AlphaGo所取得的成果是深度学习带来的人工智能的又一次突破,这也说明了深度学习具有强大的潜力。事实上,早在2006年以前就已有人提出一种学习效率很高的深度学习模型—卷积神经网络。在上世纪80、90年代,一些研究者发表了CNN的相关研究工作,且在几个模式识别领域尤其是手写数字识别中取得了良好的识别效果[22-23]。然而此时的CNN只适合做小图片的识别,对于大规模数据,识别效果不佳[7]。直至2012年,Krizhevsky等使用扩展了深度的CNN在ImageNet大规模视觉识别挑战竞赛(ImageNetLargeScaleVisualRecognitionChallenge,LSVRC)中取得了当时最佳的分类效果,使得CNN越来越受到研究者们的重视[24]。2卷积神经网络概述2.1神经元神经元是人工神经网络的基本处理单元,一般是多输入单输出的单元,其结构模型如下图1所示:图1神经元模型其中,ix表示输入信号,n个输入信号同时输入神经元j。ijw表示输入信号ix与神经元j连接的权重值,jb表示神经元的内部状态即偏置值,jy为神经元的输出。输入与输出之间的对应关系可用下式表示:1((*))njjiijiyfbxw(1)()f为激励函数,其选择可以有很多种,可以是线性纠正函数(rectifiedlinearunit,ReLU)[25],sigmoid函数、tanh(x)函数、径向基函数等[26]。2.2多层感知器多层感知器(MultilayerPerceptron,MLP)是由输入层、隐含层(一层或者多层)及输出层构成的神经网络模型,它可以解决单层感知器不能解决的线性不可分问题。图2是含有2个隐含层的多层感知器网络拓扑结构图。图2多层感知器结构图输入层神经元接收输入信号,隐含层和输出层的每一个神经元与之相邻层的所有神经元连接,即全连接,同一层的神经元间不相连。图2中,有箭头的线段表示神经元间的连接和信号传输的方向,且每个连接都有一个连接权值。隐含层和输出层中每一个神经元的输入为前一层所有神经元输出值的加权和。假设lmx是MLP中第l层第m个神经元的输入值,lmy和lmb分别为该神经元输出值和偏置值,1limw为该神经元与第1l层第i个神经元的连接权值,则有:111*kllllmmimiixbwy(2)()llmmyfx(3)当多层感知器用于分类时,其输入神经元个数为输入信号的维数,输出神经元个数为类别数,隐含层个数及隐层神经元个数视具体情况而定。但在实际应用中,由于受到参数学习效率影响,一般使用不超过3层的浅层模型。BP算法可分为两个阶4计算机学报2017年段:前向传播和后向传播,其后向传播始于MLP的输出层。以图2为例,则损失函数为[27]:21(,......,)()hlllhjjjEEyyyt(4)其中第l层为输出层,jt为输出层第j个神经元的期望输出,对损失函数求一阶偏导,则网络权值更新公式为:111*llimimlimEwww(5)其中,为学习率。2.3卷积神经网络1962年,生物学家Hubel和Wiesel通过对猫脑视觉皮层的研究,发现在视觉皮层中存在一系列复杂构造的细胞,这些细胞对视觉输入空间的局部区域很敏感,它们被称为“感受野”[28]。感受野以某种方式覆盖整个视觉域,它在输入空间中起局部作用,因而能够更好地挖掘出存在于自然图像中强烈的局部空间相关性。文献[28]将被称为感受野的这些细胞分为简单细胞和复杂细胞两种类型。根据Hubel-Wiesel的层级模型,在视觉皮层中的神经网络有一个层级结构:LGB(外侧膝状体)→简单细胞→复杂细胞→低阶超复杂细胞→高阶超复杂细胞[29]。低阶超复杂细胞与高阶超复杂细胞之间的神经网络结构类似于简单细胞和复杂细胞间的神经网络结构。在该层级结构中,处于较高阶段的细胞通常会有这样一个倾向:对刺激模式更复杂的特征进行选择性响应;同时也具有一个更大的感受野,对刺激模式位置的移动也更不敏感。1980年,Fukushima根据Huble和Wiesel的层级模型提出了结构与之类似的神经认知机(Neocognitron)[29]。神经认知机采用简单细胞层(S-layer,S层)和复杂细胞层(C-layer,C层)交替组成,其中S层与Huble-Wiesel层级模型中的简单细胞层或者低阶超复杂细胞层相对应,C层对应于复杂细胞层或者高阶超复杂细胞层。S层能够最大程度地响应感受野内的特定边缘刺激,提取其输入层的局部特征,C层对来自确切位置的刺激具有局部不敏感性。尽管在神经认知机中没有像BP算法那样的全局监督学习过程可利用,但它仍可认为是CNN的第一个工程实现网络,卷积和下采样分别受启发于Hubel-Wiesel概念的简单细胞和复杂细胞,它能够准确识别具有位移和轻微形变的输入模式[29-30]。随后,LeCun等基于Fukushima的研究工作使用误差梯度回传方法设计并训练了CNN(该模型称为LeNet-5),LeNet-5是经典的CNN结构,后续有许多工作基于此进行改进,它在一些模式识别领域中取得了良好的分类效果[19]。CNN的基本结构由输入层、卷积层、取样层、全连接层及输出层构成。卷积层和取样层一般会取若干个,采用卷积层和取样层交替设置,即一个卷积层连接一个取样层,取样层后再连接一个卷积层,依此类推。由于卷积层中输出特征面的每个神经元与其输入进行局部连接,并通过对应的连接权值与局部输入进行加权求和再加上偏置值,得到该神经元输入值,该过程等同于卷积过程,卷积神经网络也由此而得名[19]。2.3.1卷积层卷积层(convolutionallayer)由多个特征面(FeatureMap)组成,每个特征面由多个神经元组成,它的每一个神经元通过卷积核与上一层特征面的局部区域相连。卷积核是一个权值矩阵(如对于二维而言可为3*3或5*5矩阵)[19,31]。CNN的卷积层通过卷积操作提取输入的不同特征,第一层卷积层提取低级特征如边缘、线条、角落,更高层的卷积层提取更高级的特征①。为了能够更好的理解CNN,下面以一维CNN(1DCNN)为例,2D和3DCNN可依此进行拓展。图3所示为1DCNN的卷积层和取样层结构示意图,最顶层为取样层,中间层为卷积层,最底层为卷积层的输入层。图3.卷积层与取样层结构示意图由图3可看出卷积层的神经元被组织到各个特征面中,每个神经元通过一组权值被连接到上一层特征面的局部区域,即卷积层中的神经元与其输入层中的特征面进行局部连接[11]。然后将该局部加权和传递给一个非线性函数如ReLU函数即可获得①SamerHijazi,RishiKumar,ChrisRowen,etal.Usingconvolutionalneuralnetworksforimagerecognition.http://ip.cadence.com/uploads/901/cnn_wp-pdf2016,9,22论文在线出版号No.7周飞燕等:卷积神经网络研究综述5卷积层中每个神经元的输出值。在同一个输入特征面和同一个输出特征面中,CNN的权值共享,如图3所示,权值共享发生在同一种颜色当中,不同颜色权值不共享。通过权值共享可以减小模型复杂度,使得网络更易于训练。以图3中卷积层的输出特征面1和其输入层的输入特征面1为例,1(1)1(1)1(2)1(2)1(3)1(3)1(4)1(4)wwww,而1(1)1(1)1(2)1(1)1(3)1(1)www,其中()()minjw表示输入特征面m第i个神经元与输出特征面n第j个神经元的连接权值。此外卷积核的滑动步长即卷积核每一次平移的距离也是卷积层中一个重要的参数。在图3中,设置卷积核在上一层的滑动步长为1,卷积核大小为1*3。CNN中每一个卷积层的每个输出特征面的大小(即神经元的个数)oMapN满足如下关系[32]:()1iMapNCWindowoMapNCInterval(6)其中,iMapN表示每一个输入特征面的大小,CWindow为卷积核的大小,CInterval表示卷积核在其上一层的滑动步长。通常情况下,要保证(6)式能够整除,否则需对CNN网络结构作额外处理。每个卷积层可训练参数数目CParams满足下式[32]:(*1)*CParamsiMapCWindowoMap(7)oMap为每个卷积层输出特征面的个数,iMap为输入特征面个数。1表示偏置,在同一个输出特征面中偏置也共享。假设卷积层中输出特征面n第k个神经元的输出值为outnkx,而inmhx表示其输入特征面m第h个神经元的输出值,以图3为例,则[32]:11()()1(1)1(1)()1(2)1(2)()cov(***...)outinininnkhhnkhhnkhhnknxxwxwxwbf(8)上式中,nb为输出特征面n的偏置值。cov()f为非线性激励函数。在传统的CNN中,激励函数一般使用饱和非线性函数(saturatingnonlinearity)如sigmoid函数,tanh函数等。相比较于饱和非线性函数,不饱和非线性函数(non-saturatingnonlinearity)能够解决梯度爆炸/梯度消失问题,同时其也能够加快收敛速度[33]。Jarrett等[34]探讨了卷积网络中不同的纠正非线性函数(rectifiednonlinearity,包括max(0,x)非线性函数),通过实验发现它们能够显著提升卷积网络的性能,文献[25]也验证了这一结论[25]。因此在目前的CNN结构中常用不饱和非线性函数作为卷积层的激励函数如ReLU函数。ReLU函数的计算公式如下所示[24-25]:cov()max(0,)fxx(9)图4中红色的为ReLU曲线,蓝色为tanh曲线。对于ReLU而言,如果输入大于0,则输出与输入相等,否则输出为0。从图4可以看出,使用ReLU函数,输出不会随着输入的逐渐增加而趋于饱和-2-1.5-1-0.500.511.52-1-0.500.511.52xf(x)ReLU函数tanh函数图4ReLU与tanh函数曲线图Chen在其报告中分析了影响CNN性能的3个因素:层数、特征面的数目及网络组织①。该报告使用9种结构的CNN进行中文手写体识别实验,通过统计测试结果得到具有较小卷积核的CNN结构的一些结论:1)增加网络的深度能够提升准确率;2)增加特征面的数目也可以提升准确率;3)增加一个卷积层比增加一个全连接层能获得一个更高的准确率。文献[35]指出深度网络结构具有两个优点:1)可以促进特征的重复利用;2)能够获取高层表达中更抽象的特征,由于更抽象的概念可根据抽象性更弱的概念来构造,因此深度结构能够获取更抽象的表达,例如在CNN中通过池化操作来建立这种抽象,更抽象的概念通常对输入的大部分局部变化具有不变性。He等人[36]探讨了在限定计算复杂度和时间上如何平衡CNN网络结构中深度、特征面数目、卷积核大小等因素的问题。文献[36]首先研究了深度(Depth)与卷积核大小间的关系,采用较小的卷积核替代较大的卷积核,同时增加网络深度来增加复杂度,通过实验结果表明网络深度比卷积核大小更重要;当时间复杂度大致相同时,具有更小卷积核且深度更深的CNN结构比具有更大卷积核同时深度更浅的CNN结构能够获得更好的实验结果。其次,该文献也研究了网络深度和特征面数目间的关系,CNN网络结构设置为:在增加网络深度时适当减少特征面的数目,同时卷积核的大小保持不变,实验结果表明,深度越深,网络的性能越好;然而随着深度的增加,网络性能也达到饱和。此外,该文献还通过固定网络深度研究了特征面数目和卷积核大小间的关系,通过实验对比,发现特征面数目和卷积核大小的优先级差不多,其发挥的作用均没有网络深度大。由于过度①ChenXu.ConvolutionneuralnetworksforChinesehandwritingrecognition,http://cs231n.stanford.edu/reports2016/428_Report.pdf2016,9,226计算机学报2017年地减小特征面的数目或者卷积核大小会损害网络的准确性,同时过度地增加网络深度也会降低网络准确性,因此如果网络深度很深,那么准确性会达到饱和甚至下降。在CNN结构中,深度越深、特征面数目越多,则网络能够表示的特征空间也就越大、网络学习能力也越强,然而也会使网络的计算更复杂,极易出现过拟合的现象。因而,在实际应用中应当适当选取网络深度、特征面数目、卷积核的大小及卷积时滑动的步长,以使训练能够获得一个好的模型同时还能减少训练时间。2.3.2取样层取样层(poolinglayer,也称为池化层)紧跟在卷积层之后,同样由多个特征面组成,它的每一个特征面唯一对应于其上一层的一个特征面,不会改变特征面的个数。如图3,卷积层是取样层的输入层,卷积层的一个特征面与取样层中的一个特征面唯一对应,且取样层的神经元也与其输入层的局部接受域相连,不同神经元局部接受域不重叠。取样层旨在通过降低特征面的分辨率来获得具有空间不变性的特征[37]。取样层起到二次提取特征的作用,它的每个神经元对局部接受域进行池化操作。常用的池化方法有最大池化(max-pooling)即取局部接受域中值最大的点、均值池化(meanpooling)即对局部接受域中的所有值求均值、随机池化(stachasticpooling)[38-39]。文献[40]给出了关于最大池化和均值池化详细的理论分析,通过分析得出以下一些预测:1)最大池化特别适用于分离非常稀疏的特征;2)使用局部区域内所有的采样点去执行池化操作也许不是最优的,例如均值池化就利用了局部接受域内的所有采样点。文献[41]比较了最大池化和均值池化两种方法,通过实验发现:当分类层采用线性分类器如线性SVM时,最大池化方法比均值池化能够获得一个更好的分类性能。随机池化方法是对局部接受域采样点按照其值大小赋予概率值,再根据概率值大小随机选择,该池化方法确保了特征面中不是最大激励的神经元也能够被利用到[37]。随机池化具有最大池化的优点,同时由于随机性它能够避免过拟合。此外,还有混合池化(mixedpooling)、空间金字塔池化(spatialpyramidpooling)、频谱池化(spectralpooling)等池化方法[37]。在通常所采用的池化方法中,取样层的同一个特征面不同神经元与上一层的局部接受域不重叠,然而也可以采用重叠池化(overlappingpooling)的方法。所谓重叠池化方法就是相邻的池化窗口间有重叠区域。文献[24]采用重叠池化框架使top-1和top-5的错误率分别降低了0.4%和0.3%,与无重叠池化框架相比,其泛化能力更强,更不易产生过拟合。设取样层中第n个输出特征面第l个神经元的输出值为outnlt,同样以图3为例,则有[32]:(1)(,)outininnlnqnqsubtttf(10)innqt表示取样层的第n个输入特征面第q个神经元的输出值,()subf可为取最大值函数、取均值函数等。取样层在上一层滑动的窗口也称为取样核。事实上,CNN中的卷积核与取样核相当于Hubel-Wiesel模型[28]中感受野在工程上的实现,卷积层用来模拟Hubel-Wiesel理论的简单细胞,取样层模拟该理论的复杂细胞。CNN中每个取样层的每一个输出特征面的大小(神经元个数)DoMapN为[33]:oMapNDoMapNDWindow(11)其中,取样核的大小为DWindow,在图3中DWindow=2。取样层通过减少卷积层间的连接数量,即通过池化操作神经元数量减少,降低了网络模型的计算量。2.3.3全连接层在CNN结构中,经多个卷积层和取样层后,连接着1个或1个以上的全连接层。与MLP类似,全连接层中的每个神经元与其前一层的所有神经元进行全连接。全连接层可以整合卷积层或者取样层中具有类别区分性的局部信息[42]。为了提升CNN网络性能,全连接层每个神经元的激励函数一般采用ReLU函数[43]。最后一层全连接层的输出值被传递给一个输出层,可以采用softmax逻辑回归(softmaxregression)进行分类,该层也可称为softmax层(softmaxlayer)。对于一个具体的分类任务,选择一个合适的损失函数是十分重要的,文献[37]介绍了CNN几种常用的损失函数并分析了它们各自的特点。通常,CNN的全连接层与MLP结构一样,CNN的训练算法也多采用BP算法。当一个大的前馈神经网络训练一个小的数据集时,由于它的高容量,它在留存测试数据(held-outtestdata,也可称为校验集)上通常表现不佳[30]。为论文在线出版号No.7周飞燕等:卷积神经网络研究综述7了避免训练过拟合,常在全连接层中采用正则化方法—dropout技术即使隐层神经元的输出值以0.5的概率变为0,通过该技术部分隐层节点失效,这些节点不参加CNN的前向传播过程,也不会参加后向传播过程[24,30]。对于每次输入到网络中的样本,由于dropout技术的随机性,它对应的网络结构不相同,但是所有的这些结构共享权值[24]。由于一个神经元不能依赖于其它特定神经元而存在,所以这种技术降低了神经元间相互适应的复杂性,使神经元学习得到更鲁棒的特征[24]。目前,关于CNN的研究大都采用ReLU+dropout技术,并取得了很好的分类性能[24,44-45]。2.3.4特征面特征面数目作为CNN的一个重要参数,它通常是根据实际应用进行设置的,如果特征面个数过少,可能会使一些有利于网络学习的特征被忽略掉,从而不利于网络的学习;但是如果特征面个数过多,可训练参数个数及网络训练时间也会增加,这同样不利于学习网络模型。文献[46]提出了一种理论方法用于确定最佳的特征面数目,然而该方法仅对极小的接受域有效,它不能够推广到任意大小的接受域。该文献通过实验发现:与每层特征面数目均相同的CNN结构相比,金字塔架构(该网络结构的特征面数目按倍数增加)更能有效利用计算资源。目前,对于CNN网络特征面数目的设定通常采用的是人工设置方法,然后进行实验并观察所得训练模型的分类性能,最终根据网络训练时间和分类性能来选取特征面数目。2.3.5CNN结构的进一步说明CNN的实现过程实际上已经包含了特征提取过程,以图5、图6为例直观地显示CNN提取的特征。文献[47]采用CNN进行指纹方向场评估,图5为其模型结构。图5共有3个卷积层(C1,C3,C5)、2个取样层(M2,M4)、1个全连接层(F6)和1个输出层(O7)。卷积层通过卷积操作提取其前一层的各种不同的局部特征,由图5可看出,C1层提取输入图像的边缘、轮廓特征,可看成是边缘检测器。取样层的作用是在语义上把相似的特征合并起来,取样层通过池化操作使得特征对噪声和变形具有鲁棒性[11]。从图上可看出,各层所提取的特征以增强的方式从不同角度表现原始图像,并且随着层数的增加,其表现形式越来越抽象[48]。全连接层F6中的每个神经元与其前一层进行全连接,该层将前期所提取的各种局部特征综合起来,最后通过输出层得到每个类别的后验概率。从模式分类角度来说,满足Fisher判别准则的特征最有利于分类,通过正则化方法(dropout方法),网络参数得到有效调整,从而使全连接层提取的特征尽量满足Fisher判别准则,最终有利于分类[48]。图6给出了CNN提取心电图(electrocardiogram,ECG)特征的过程,首先通过卷积单元A1、B1、C1(其中每个卷积单元包括一个卷积层和一个取样层)提取特征,最后由全连接层汇总所有局部特征。由图中也可以看出,层数越高,特征的表现形式也越抽象,显然,这些特征并没有临床诊断的物理意义,仅仅是数理值[48]。图5指纹经过CNN的中间层输出特征[47]图6ECG经过CNN的中间层输出特征[48]2.3.6与传统的模式识别算法相比卷积神经网络的本质就是每一个卷积层包含一定数量的特征面或者卷积核[46]。与传统MLP相比,CNN中卷积层的权值共享使网络中可训练的参数变少,降低了网络模型复杂度,减少过拟合,从而获得了一个更好的泛化能力[49]。同时,在CNN结构中使用池化操作使模型中的神经元个数大大减少,对输入空间的平移不变性也更具有鲁棒性,[49]。而且CNN结构的可拓展性很强,它可以采用很深的层数。深度模型具有更强的表达能力,它能够处理更复杂的分类问题。总的来说,CNN的局部连接、权值共享和池化操作使其比传统MLP具有更少的连接和参数,从而更易于训练。3CNN的一些改进算法3.1NIN结构CNN中的卷积滤波器是一种广义线性模型(GeneralizedLinearModel,GLM),GLM的抽象水平比较低,但通过抽象却可以得到对同一概念的不同变体保持不变的特征[50]。Lin等人[50]提出了一8计算机学报2017年种NetworkInNetwork(NIN)网络模型,该模型使用微型神经网络(microneuralnetwork)代替传统CNN的卷积过程,同时还采用全局平均取样层来替换传统CNN的全连接层,它可以增强神经网络的表示能力。微神经网络主要是采用MLP模型,如下图7所示。图7中,(a)图是传统CNN的线性卷积层,(b)图是NIN结构的非线性卷积层,是用MLP来取代原来的GLM。NIN通过在输入中滑动微型神经网络得到卷积层的特征面。与卷积的权值共享类似,MLP对同一个特征面的所有局部感受野也共享,即对于同一个特征面MLP相同。文献[50]之所以选择MLP,是考虑到MLP采用BP算法进行训练,能与CNN结构融合,同时MLP也是一种深度模型,具有特征重用的思想。MLP卷积层能够处理更复杂的非线性问题,提取更加抽象的特征。在传统的CNN结构中全连接层的参数过多,易于过拟合,因此它严重依赖于dropout正则化技术。NIN结构采用全局平均池化代替原来的全连接层,使模型的参数大大减少。它通过全局平均池化方法对最后一个MLP卷积层的每个特征面求取均值,再将这些数值连接成向量,最后输入到softmax分类层中。全局平均池化可看成是一个结构性的正则化算子(structuralregularizer),它可以增强特征面与类别的一致性。在全局平均取样层中没有需要优化的参数,因此能够避免过拟合。此外,全局平均取样层对空间信息进行求和,因此对输入的空间变化具有更强的鲁棒性。Lin等人[50]将该算法应用于MNIST及SVHN等数据集中,验证了该算法的有效性。Xu等人[51]结合NIN结构提出了ML-DNN模型,使用与文献[50]相同的数据库,与稀疏编码等方法比较,表明了该模型的优越性。3.2空间变换网络尽管CNN已经是一个能力强大的分类模型,但是它仍然会受到数据在空间上多样性的影响。Jaderberg等人[52]采用一种新的可学习模块—空间变换网络(SpatialTransformerNetworks,STNs)来解决此问题,该模块由三个部分组成:本地化网络(localisationnetwork)、网格生成器(gridgenerator)及采样器(sampler)。STNs可用于输入层,也可插入到卷积层或者其它层的后面,不需要改变原CNN模型的内部结构。STNs能够自适应地对数据进行空间变换和对齐,使得CNN模型对平移、缩放、旋转或者其它变换等保持不变性。此外,STNs的计算速度很快,几乎不会影响原有CNN模型的训练速度。3.3反卷积由Zeiler[53]等人提出的反卷积网络(DeconvolutionalNetworks)模型与CNN的思想类似,只是在运算上有所不同。CNN是一种自底而上的方法,其输入信号经过多层的卷积、非线性变换和下采样处理。而反卷积网络中的每层信息是自顶而下的,它对由已学习的滤波器组与特征面进行卷积后得到的特征求和就能重构输入信号。随后,Zeiler采用反卷积网络可视化CNN中各网络层学习得到的特征,以利于分析并改进CNN网络结构[54]。反卷积网络也可看成是一个卷积模型,它同样需要进行卷积和池化过程,不同之处在于与CNN是一个逆过程。文献[54]模型中的每一个卷积层都加上一个反卷积层。在卷积、非线性函数(ReLU)、池化(max-pooling)后,不仅将输出的特征作为下一层的输入,也将它送给对应的反卷积层。反卷积层需要依次进行unpooling(采用一种近似的方法求max-pooling的逆过程)、矫正(使用非线性函数来保证所有输出均为非负数)及反卷积操作(利用卷积过程中卷积核的转置作为核,与矫正后的特征作卷积运算),然后形成重构特征。通过反卷积技术可视化CNN各网络层学习到的特征,Zeiler还得出以下结论:CNN学习到的特征对于平移和缩放具有不变性,但是对于旋转操作一般不具有该特性,除非被识别对象具有很强的对称性[54]。Zhao[55]等人提出了一个新的称为SWWAE的结构,SWWAE模型由卷积结构及反卷积结构组成,采用卷积结构对输入进行编码,而反卷积结构用来进行重构。SWWAE的每一个阶段是一个“内容—位置”(what-where)自动编码机,编码机由一个卷积层及紧随其后的一个max-pooling层组成,通过max-pooling层产生两个变量集:max-pooling的输出记为what变量,它作为下一层的输入;将max-pooling的位置信息记为where变量,where变量要横向传递到反卷积结构中。SWWAE的损失函数包含三个部分(判别损失,重构损失及中间重构损失)。SWWAE在各种半监督和有监督任务中取得了很高的准确率,它特别(a)线性卷积层(b)MLP卷积层图7线性卷积层与MLP卷积层对比[50]论文在线出版号No.7周飞燕等:卷积神经网络研究综述9适用于具有大量无标注类别而有标注类别相对少的数据集的情况,该模型也可能适用于与视频相关的任务[55]。4训练方法及开源工具4.1训练方法虽然通常都认为如果没有无监督预训练,对深度神经网络进行有监督训练是非常困难的,但CNN却是一个特例,它可直接执行有监督学习训练[12]。CNN通过BP算法进行有监督训练,也需经过前向传播和后向传播两个阶段[19]。CNN开始训练之前,需要采用一些不同的小随机数对网络中所有的权值和偏置值进行随机初始化。使用“小随机数”以保证网络不会因为权过大而进入饱和状态,从而导致训练失败;“不同”用来保证网络可正常地学习训练,如果使用相同的数值初始化权矩阵,那么网络将无能力学习[56]。随机初始化的权值和偏置值的范围可为[-0.5,0.5]或者[-1,1](或者是其它合适的区间)[57]。在实际应用中,无标注的数据远多于有标注的数据,同时对数据进行人工标注也需要耗费较大的人力。但是为了使有监督CNN得到充分的训练并获得较好的泛化能力,又需要大量有标注的训练样本,这一定程度上制约了CNN在实际中的应用。这也是有监督学习的一个缺欠。事实上,CNN也可以进行无监督训练。现存的一些无监督学习算法一般都需要调整很多超参数(hyperparameter),这使得它们难以被利用,对此Ngiam[58]等人提出了一种只需调整一个超参数的无监督学习算法—稀疏滤波(sparsefiltering)。稀疏滤波只优化一个简单的代价函数—L2范数稀疏约束特征,从而得到好的特征表示。在稀疏滤波中,其特征分布矩阵具有如下特点:样本分布稀疏性(populationsparsity)、高分散性(highdispersal)、存在稀疏(lifetimesparsity)。文中指出可将稀疏滤波用于深度网络模型中,先用稀疏滤波训练得到一个单层的归一化特征,然后将它们作为第二层的输入来训练第二层,依此类推。通过实验,发现使用稀疏滤波贪心算法逐层训练,可学习到一些很有意义的特征表示。Dong[59]等人将稀疏滤波应用于CNN的无监督学习,同时使用该CNN模型识别交通工具类型。在文献[59]中,采用稀疏滤波作为预训练,并将CNN学习到的高级全局特征和低级局部特征输入到Softmax层中进行分类。随后,Dong[60]等人又采用一种半监督学习CNN用于交通工具类型识别中。文中采用大量无标注的数据无监督训练卷积层的卷积核,该无监督算法为稀疏拉普拉斯滤波器,再用一定量的有标注数据有监督训练CNN输出层的参数,最后通过BIT-Vehicle数据库验证该CNN模型的可行性。如果数据集中只有少量的标注数据,同时还需要训练一个大的CNN网络,传统的做法是首先进行无监督预训练,然后再采用有监督学习(如BP算法)进行微调(fine-tuning)。显性训练是传统的神经网络训练方法,其最大特点是训练过程中有一部分样本不参与CNN的误差反向传播过程,将该部分样本称为校验集。在显性训练过程中,为了防止发生过拟合现象,每隔一定时间就用当前分类模型测试校验样本,这也表明了校验集中样本选取的好坏会影响最终分类模型的性能。在CNN分类模型中,为了增加训练样本数,可采用“平移起始点”和“加躁”这两种技术[61]。不妨以一个采样点数为1*1900的一维信号为例,设置起始点的范围为[1,200],训练过程中,每个样本随机选定一个起始点,截取其后连续的1700个点作为网络的输入参与BP训练过程,则CNN的输入维数为1*1700,显然起始点不同,截取所得的子段也不同。在文献[48]的校验集中,每幅ECG的起始点均为1,实际上起始点也可以不一样,但是在CNN的整个训练过程中,必须保持该校验集不变,同时校验集和训练集完全没有交集,其样本为来自不同病人的不同记录。此外,只要对类别的最终判断没有影响,也可通过加躁处理或者对原始数据做某种扭曲变换从而达到增加训练样本的目的。在某些应用领域如计算机辅助ECG分析,不同的ECG记录或者一维信号也可能存在一些表现相似的ECG记录或者一维信号。如果校验样本不典型,即该校验集没有包含全部有差异的个体,则训练所得的分类模型就会存在偏差。由于受到一些现实条件的影响,人工挑选校验样本也并非是件易事。因此在CNN的分类过程中,还可以采用隐性训练方法。与显性训练相比,隐性训练方法与它主要的区别是怎样检验当前的分类模型。隐性训练方法从整个训练集中取出一小部分样本用于校验:用于校验的这部分样本不做加躁处理,并且对于每一个样本都截取起始点固定的子段。在实际应用中,这两种训练方法各有优势。通过实验表明,这种平移起始点和加躁技术对分类性能的提升有很大的10计算机学报2017年帮助,尤其是对于数据不平衡的分类问题[61]。4.2开源工具深度学习能够广泛应用于众多研究领域,离不开许多优秀的开源深度学习仿真工具。目前常用的深度学习仿真工具有Caffe[62]①、Torch②③及Theano[63]④等。Caffe是一个基于c++语言、且关于CNN相关算法的架构,它具有出色的CNN实现。Caffe可以在CPU及GPU上运行,它支持MATLAB和Python接口。Caffe提供了一个完整的工具包,用于训练、测试、微调及部署模型。Caffe允许用户对新数据格式、网络层和损失函数进行拓展;它的运行速度也很快,在单个K40或者TitanGPU上一天可以训练超过4千万张图像;用户还可以通过Caffe社区参与开发与讨论。尽管Caffe可进行许多拓展,但是由于一些遗留的架构问题,它不善于处理递归神经网络(RecurrentNeuralNetwork,RNN)模型,且Caffe的灵活性较差。Torch是一个支持机器学习算法的科学计算框架。它是采用Lua脚本语言和C语言编写的。Torch为设计和训练机器学习模型提供了一个灵活的环境,它还可支持iOS、Android等嵌入式平台。最新版本Torch7使CNN的训练速度得到大幅度提升。对于Torch的时域卷积,其输入长度可变,这非常有助于自然语言任务。但Torch没有Python接口。Theano是一个允许用户定义、优化并评价数学表达式的python库。Theano提供了NumPy的大部分功能,可在GPU上运行。此外,Theano能够自动求微分,它尤其适用于基于梯度的方法。Theano能够很容易且高效地实现RNN模型。然而Theano的编译过程很慢,导入Theano也需要消耗时间。Bahrampour[64]等从可拓展性、硬件利用率及速度方面对Caffe、Torch、Theano、Neon⑤及TensorFlow⑥等5个深度学习软件架构作了比较。其中Caffe、Torch及Theano是最广泛使用的软件架构。这五个软件架构均可在CPU或者GPU上运行,但是Neon不能使用多线程CPU,Caffe需要在安装的时候确定好CUP的线程数,TensorFlow、Torch及Theano则可以灵活地选择CPU线程数[64]。文献[64]通过实验发现:Torch与Theano是两个最具有拓展性的架构,不仅支持各种深度结构,还支持各种库;在CPU上,对于任一深度网络结构的训练和部署,Torch表现最优,其次是Theano,Neon的性能最差;在GPU上训练卷积和全连接网络,对于小网络模型Theano的训练速度最快,对于较大的网络模型则是Torch最快,而对于大的卷积网络Neon也非常有竞争力;在GPU上训练和部署RNN模型,Theano的性能最好;Caffe最易于评价标准深度结构的性能;与Theano类似,TensorFlow也是非常灵活的架构,但是它在单个GPU上的性能不如其它几个架构。表1总结了Caffe、Torch及Theano所具有的一些特点⑦。Theano没有预训练的CNN模型,所以在T
本文档为【卷积神经网络研究综述】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
肥猫叫noah
暂无简介~
格式:pdf
大小:881KB
软件:PDF阅读器
页数:0
分类:高中语文
上传时间:2020-04-25
浏览量:11