【《基于堆叠边缘降噪自编码器的特征学习算法分析案例》6100字】_第1页
【《基于堆叠边缘降噪自编码器的特征学习算法分析案例》6100字】_第2页
【《基于堆叠边缘降噪自编码器的特征学习算法分析案例》6100字】_第3页
【《基于堆叠边缘降噪自编码器的特征学习算法分析案例》6100字】_第4页
【《基于堆叠边缘降噪自编码器的特征学习算法分析案例》6100字】_第5页
已阅读5页,还剩8页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于堆叠边缘降噪自编码器的特征学习算法分析案例目录TOC\o"1-3"\h\u32015基于堆叠边缘降噪自编码器的特征学习算法分析案例 1185401.1相关技术 1102461.1.1自编码器 2271581.1.2降噪自编码器 3203501.2算法描述 4291691.2.1边缘降噪自编码器设计 4210601.2.2改进的激活函数 6233511.2.3数据加噪 7327101.2.4目标函数分析 8236341.2.5堆叠边缘降噪自编码器深度神经网络设计 937621.3实验结果与分析 10275141.3.1收敛速度 10219101.3.2降噪效果 12医疗数据分类任务中的一个关键难点在于特征数据的获取。传统的操作是对采集到的数据进行手动的特征提取,然后输入到分类器。而深度学习算法能够自动学习原始信号的表征(Representation),这等价于传统的特征提取环节,却大大减少了人为的干预。如前文所述,医疗数据具有专业性强、特征繁杂、模糊不完整等特性。针对此类数据,降噪自编码深度神经网络可以很好地从中学习到有效的特征表示,但是随着训练数据集的增大,耗时过长的问题也变得更加严峻,导致模型不能很好地兼顾表征学习的质量和训练耗时。为了克服这个不足,本章对降噪自编码器进行了改进,设计了面向医疗数据表征学习的深度网络模型。本章首先对自编码器和降噪自编码器等相关技术进行说明,然后针对降噪自编码器训练耗时过长的问题,在降噪自编码器的基础上对其进行改进,设计了边缘降噪自编码器,并以堆叠的形式构筑成深度神经网络模型,最后与基础网络模型进行对比,验证了堆叠边缘降噪自编码深度网络模型的优越性。1.1相关技术自编码器(Autoencoder,AE)实际上是一个由三层网络组成的一个简单模型,其设计的初衷是用于对高维数据进行降维,但是随着对深度学习研究的不断深入,自编码器被赋予了特征学习的能力ADDINEN.CITE<EndNote><Cite><Author>Betechuoh</Author><Year>2006</Year><RecNum>320</RecNum><DisplayText>[47]</DisplayText><record><rec-number>320</rec-number><foreign-keys><keyapp="EN"db-id="x0r9955slp0fvnev95spxd0qwrsa9xz2rt2z">320</key></foreign-keys><ref-typename="JournalArticle">17</ref-type><contributors><authors><author>Betechuoh,BrainLeke</author><author>Marwala,Tshilidzi</author><author>Tettey,Thando</author></authors></contributors><titles><title>AutoencodernetworksforHIVclassification</title><secondary-title>CurrentScience</secondary-title></titles><periodical><full-title>CurrentScience</full-title></periodical><pages>1467-1473</pages><volume>91</volume><number>11</number><dates><year>2006</year></dates><urls></urls></record></Cite></EndNote>[\o"Betechuoh,2006#320"47]。本节主要介绍自编码器和其衍生的降噪自编码器的设计原理。1.1.1自编码器自编码器是利用无监督的学习方法(无需类标)对网络参数进行训练的,旨在学习到原始数据的另类表示。在自编码器中原始输入和解码输出的数据维度是保持一致的,通过不断缩小重构误差的方式,使得解码输出尽可能得去贴近原始输入,这样就可以将自编码器中隐藏层的编码向量视作为原始输入的特征表示。图1.1所展示的是自编码器具体的网络结构。图1.1AE网络结构图此处以单个自编码器作为示例对其进行说明,取一个训练集,将训练集中各样本的类别标签去掉之后得到,其中。将其作为自编码器的输入,输入数据经由编码器进行编码,然后,解码器再对编码特征进行解码得到输出,接着利用与来计算损失函数,最后根据损失函数对网络参数进行学习。AE具体的模型结构图如图1.2所示。图1.2自编码器的模型图以来表示自编码器中激活函数,则图1.2中的、以及的数学表达式分别如式(1.1)到(1.3)所示。 (1.1) (1.2) (1.3)从自编码器网络的目标函数可知,其训练目标是让输出尽可能地还原输入信息。网络训练完成之后,数据的映射过程即为,对于我们而言,输出向量只是起到一个约束作用,并不具备实际意义,而隐藏层向量才是我们需要重点关注的对象,因为是在最大程度保留原始信息的前提下学习而来的,它是输入向量的特殊表示。1.1.2降噪自编码器现实生活中的医疗诊断数据大多都是残缺的,传统的自编码器在应对此类数据时,其效果并不理想,因为其无法恢复含噪输入的原始面貌。如果对原始输入进行加噪后,自编码器的解码输出依旧可以还原原始输入信息,那么自编码器的隐藏层就能够学习到更具鲁棒性的特征ADDINEN.CITE<EndNote><Cite><Author>Lu</Author><Year>2017</Year><RecNum>327</RecNum><DisplayText>[48]</DisplayText><record><rec-number>327</rec-number><foreign-keys><keyapp="EN"db-id="x0r9955slp0fvnev95spxd0qwrsa9xz2rt2z">327</key></foreign-keys><ref-typename="JournalArticle">17</ref-type><contributors><authors><author>Lu,Chen</author><author>Wang,ZhenYa</author><author>Qin,WeiLi</author><author>Ma,Jian</author></authors></contributors><titles><title>Faultdiagnosisofrotarymachinerycomponentsusingastackeddenoisingautoencoder-basedhealthstateidentification</title><secondary-title>SignalProcessing</secondary-title></titles><periodical><full-title>SignalProcessing</full-title></periodical><pages>377-388</pages><volume>130</volume><number>jan.</number><dates><year>2017</year></dates><urls></urls></record></Cite></EndNote>[\o"Lu,2017#327"48]。于是乎研究学者们在自编码器的基础上进行改进提出了一种降噪自编码器(DenoisingAutoencoder,DAE),通过向原始输入数据中添加噪声,并以腐化后的原始数据作为DAE的输入,然后DAE再对遭到破坏或者污染的输入进行编码与解码,对原始数据进行恢复,进而达到降噪的目的。图1.3DAE结构图DAE的具体结构如图1.3所示,首先利用无偏掩码噪声ADDINEN.CITE<EndNote><Cite><Author>Yan</Author><Year>2016</Year><RecNum>328</RecNum><DisplayText>[49]</DisplayText><record><rec-number>328</rec-number><foreign-keys><keyapp="EN"db-id="x0r9955slp0fvnev95spxd0qwrsa9xz2rt2z">328</key></foreign-keys><ref-typename="ConferenceProceedings">10</ref-type><contributors><authors><author>Yan,Huaqing</author><author>Zhang,Zenghui</author><author>Gang,Xiong</author><author>Yu,Wenxian</author></authors></contributors><titles><title>RadarHRRPrecognitionbasedonsparsedenoisingautoencoderandmulti-layerperceptrondeepmodel</title><secondary-title>2016FourthInternationalConferenceonUbiquitousPositioning,IndoorNavigationandLocationBasedServices(UPINLBS)</secondary-title></titles><dates><year>2016</year></dates><urls></urls></record></Cite></EndNote>[\o"Yan,2016#328"49]或者高斯白噪声对原始输入数据进行加噪,从而得到腐化后的数据,接着再对进行编码与解码,然后让解码输出(即重构数据)去尽可能地逼近,与传统自编码器的损失函数不同,DAE中的损失函数为。虽然DAE能够有效地降低噪声的干扰,但其在引入噪声对原始数据进行加噪之后,模型训练的计算代价也会随着数据集的增大而不断增大。1.2算法描述本节首先针对降噪自编码器在学习医疗数据特征表示时计算成本较高的问题,对降噪自编码器进行了改进,通过边缘化噪声干扰来简化计算过程,得到边缘降噪自编码器(MarginalizedDenoisingAutoencoder,mDAE),并对其激活函数,加噪方式以及目标函数进行了系统地分析。然后考虑到医疗数据特征维度较高,单个编码器的学习能力有限,本节将边缘降噪自编码器以堆叠的方式构筑成一个深度神经网络,用以学习医疗数据的深度特征。最后对堆叠边缘降噪自编码深度网络的训练方法进行了说明。1.2.1边缘降噪自编码器设计为了解决DAE计算开销大,训练时间长的问题,本节对DAE中的噪声干扰进行边缘化处理,从而得到mDAE。首先对DAE中的损失函数进行泰勒展开,并取其二阶展开式式的平均值作为DAE的期望损失函数的近似表示。令,,其中是对原始输入数据进行加噪后得到的干扰项,且其符合条件分布,则是的数学期望(即均值)。那么DAE的损失函数可表示为 (1.4)式(1.4)关于的泰勒二阶展开式如式(1.5)所示 (1.5)其中和分别对应于在处的一阶偏导(即梯度)和二阶偏导(即Hessian矩阵)。对取平均值可得 (1.6)令,则 (1.7)式(1.7)即为DAE的期望损失函数的近似表达,由于其仅需要对关于的第一阶于第二阶泰勒展开式进行计算,所以可以在一定程度上减小训练过程中的计算开销。虽然上面所述的近似处理可以节省一定的计算成本,但是其仍不足以完全克服训练集增大而产生的计算开销过大的缺陷。此时,假定作用于输入数据各个维度上的噪声都是相互独立的,则式(1.7)中的就可以简单地表示为一个对角矩阵,所以只需要对Hessian矩阵中的对角项进行计算,进而可以达到降低计算成本的目的,而且这种简化在应对高维数据时效果更甚。Hessian矩阵的变换取决于数据的维度,但是由于其是一个对角矩阵,所以可以进行线性缩放,因此可以表示为 (1.8)其中表示原始输入数据的维度,则是隐藏层的特征。利用链式法则对式(1.8)求取偏导,然后通过的表达式反向传播。参照LeCunetal所提出的理论ADDINEN.CITE<EndNote><Cite><Author>Lecun</Author><Year>1998</Year><RecNum>317</RecNum><DisplayText>[50]</DisplayText><record><rec-number>317</rec-number><foreign-keys><keyapp="EN"db-id="x0r9955slp0fvnev95spxd0qwrsa9xz2rt2z">317</key></foreign-keys><ref-typename="Book">6</ref-type><contributors><authors><author>Lecun,Yann</author><author>Bottou,Leon</author><author>Orr,GenevieveB.</author><author>Klaus-RobertMüller</author></authors></contributors><titles><title>EfficientBackProp</title></titles><dates><year>1998</year></dates><publisher>SpringerBerlinHeidelberg</publisher><urls></urls></record></Cite></EndNote>[\o"Lecun,1998#317"50],式(1.8)中的可以被忽略掉,此时就只剩下式(1.9)这个二次项。 (1.9)经分析,式(1.9)不仅是一个Hessian矩阵,而且它还是一个正定矩阵。因此可以根据正定性质对其进行简化,将其转化为对角阵,则式(1.8)最终可以近似表示为式(1.10)。 (1.10)其中代表隐藏层所对应的节点数(即的维度)。在隐藏层的神经元节点数量比较多的情况下,上述的简化操作能够极大地降低计算成本。如果省去简化过程直接进行计算,Hessian矩阵所需存储空间就会变得很大且其计算成本也会增加。综上所述,mDAE的损失函数如式(1.11)所示 (1.11)其中表示原始输入数据的第维特征上加载的噪声项的方差,即为矩阵对应的对角阵中的第位元素。1.2.2改进的激活函数为了增加非线性拟合能力进而对复杂的对象进行学习,自编码器的隐藏层通常都是采用非线性的激活函数,其中使用较为广泛的主要有Sigmoid、Tanh以及ReLU这三种激活函数。(1)Sigmoid函数ADDINEN.CITE<EndNote><Cite><Author>Narayan</Author><Year>1997</Year><RecNum>321</RecNum><DisplayText>[51]</DisplayText><record><rec-number>321</rec-number><foreign-keys><keyapp="EN"db-id="x0r9955slp0fvnev95spxd0qwrsa9xz2rt2z">321</key></foreign-keys><ref-typename="JournalArticle">17</ref-type><contributors><authors><author>Narayan,Sridhar</author></authors></contributors><titles><title>Thegeneralizedsigmoidactivationfunction</title><secondary-title>InformationSciencesinformatics&ComputerScienceIntelligentSystemsApplicationsAnInternationalJournal</secondary-title></titles><periodical><full-title>InformationSciencesinformatics&ComputerScienceIntelligentSystemsApplicationsAnInternationalJournal</full-title></periodical><dates><year>1997</year></dates><urls></urls></record></Cite></EndNote>[\o"Narayan,1997#321"51]:式(1.12)是Sigmoid的函数表达式,其取值范围为,是一种连续的非线性函数,有利于网络的前向传输。但其也存在着一些不可避免的缺陷,在趋向于无穷的地方,函数值变化很小,容易发生梯度消失,不利于深层神经网络的反馈传输。 (1.12)(2)Tanh函数ADDINEN.CITE<EndNote><Cite><Author>Manessi</Author><Year>2018</Year><RecNum>322</RecNum><DisplayText>[52]</DisplayText><record><rec-number>322</rec-number><foreign-keys><keyapp="EN"db-id="x0r9955slp0fvnev95spxd0qwrsa9xz2rt2z">322</key></foreign-keys><ref-typename="ConferenceProceedings">10</ref-type><contributors><authors><author>Manessi,Franco</author><author>Rozza,Alessandro</author></authors></contributors><titles><title>LearningCombinationsofActivationFunctions</title><secondary-title>201824thInternationalConferenceonPatternRecognition(ICPR)</secondary-title></titles><dates><year>2018</year></dates><urls></urls></record></Cite></EndNote>[\o"Manessi,2018#322"52]:式(1.13)是Tanh的函数表达式,其取值范围为,相较于Sigmoid而言,Tanh的收敛速度更快,且均值为0,故其在实际应用中表现更好。但是Tanh同样也存在梯度消失的问题。 (1.13)(3)ReLU函数ADDINEN.CITE<EndNote><Cite><Author>Lin</Author><Year>2018</Year><RecNum>323</RecNum><DisplayText>[53]</DisplayText><record><rec-number>323</rec-number><foreign-keys><keyapp="EN"db-id="x0r9955slp0fvnev95spxd0qwrsa9xz2rt2z">323</key></foreign-keys><ref-typename="JournalArticle">17</ref-type><contributors><authors><author>Lin,Guifang</author><author>Shen,Wei</author></authors></contributors><titles><title>ResearchonconvolutionalneuralnetworkbasedonimprovedRelupiecewiseactivationfunction</title><secondary-title>ProcediaComputerScience</secondary-title></titles><periodical><full-title>ProcediaComputerScience</full-title></periodical><pages>977-984</pages><volume>131</volume><dates><year>2018</year></dates><urls></urls></record></Cite></EndNote>[\o"Lin,2018#323"53]:式(1.14)展示的是ReLU的函数表达式。显然,它是一个分段函数且每段函数均为线性,当时,输出与输入相等,而当时,输出为0。故ReLU更容易进行优化,此外,ReLU还能够抑制部分神经元,使网络更加稀疏,进而减少参数之间的依存关系,有效地缓解过拟合现象。然而它也面临梯度消失的难题。 (1.14)针对ReLU函数梯度消失的问题,学者们在其基础上对其进行了改进,设计了一种PReLU函数,具体的数学表达书如式(1.15)所示,其中通常很小。 (1.15)相较于Sigmoid与Tanh等双曲函数,基于ReLU改进得到的PReLU函数有着以下两个方面的优势:(1)成功解决了梯度消失与梯度爆炸的问题,能够高效地进行梯度更新与反向传播。(2)函数更加简单,求导更加方便,显著地节省了网络的计算开销。综上所述,本文选取PReLU作为本文中所用到的自编码器的激活函数。1.2.3数据加噪降噪自编码器中加入的噪声通常为高斯噪声或者是无偏掩码噪声,这两种噪声所对应的数学统计表达式如表1.1所示。表1.1噪声干扰的分布均值和方差噪声干扰类型高斯噪声无偏掩码噪声当向原始输入数据中添加高斯噪声时,腐化后的数据与原始数据之间服从,为协方差矩阵,且与相互独立。当向原始输入数据中添加无偏掩码噪声之时,原始输入数据中的特征会以概率进行抹除(即将其设置为0),即,与此同时,那些没有被置0的特征则会被映射成,即 (1.16)以此来避免出现数据偏倚的现象。原始数据经上述方式加噪后变为,此时,输入层到隐藏层之间的映射关系的数学表达式为:,其中为对应的激活函数,与则为待优化的网络参数。通常情况下,在应对二值数据时,我们依据交叉熵损失(CrossEntropyLoss,CELoss)来计算误差函数;而在应对具体数值之时,则是借助平方损失函数来计算误差函数。表1.2总结了两种损失函数的重构损失以及式中对应的偏导数形式。表1.2重构损失以及对应的偏导式名称交叉熵损失平方损失综上所述,鉴于实际医疗诊断场景中待诊病例的空缺值较多,且数据以具体数值为主,因此本文在编码器中所添加的噪声为无偏掩码噪声,随机地对历史病例的部分特征进行抹除,至于编码器的损失函数则选用平方损失函数。1.2.4目标函数分析mDAE的目标函数在1.1.1小节中已经给出,如式(1.17)所示 (1.17)令,当向原始输入数据中添加无偏掩码噪声之后,就可以表示为式(1.18) (1.18)观察公式(1.18),可以发现,首先,mDAE在训练时会保留那些值为1的隐藏层神经元,而惩罚那些值为0的隐藏层神经元。其次,对于输入数据和其所对应的重构数据而言,能够调整计算所涉及到的全部的网络参数和。这表明所产生的影响与文献ADDINEN.CITE<EndNote><Cite><Author>Wager</Author><Year>2013</Year><RecNum>319</RecNum><DisplayText>[54]</DisplayText><record><rec-number>319</rec-number><foreign-keys><keyapp="EN"db-id="x0r9955slp0fvnev95spxd0qwrsa9xz2rt2z">319</key></foreign-keys><ref-typename="JournalArticle">17</ref-type><contributors><authors><author>Wager,Stefan</author><author>Wang,Sida</author><author>Liang,Percy</author></authors></contributors><titles><title>DropoutTrainingasAdaptiveRegularization</title><secondary-title>Advancesinneuralinformationprocessingsystems</secondary-title></titles><periodical><full-title>Advancesinneuralinformationprocessingsystems</full-title></periodical><dates><year>2013</year></dates><urls></urls></record></Cite></EndNote>[\o"Wager,2013#319"54]中所阐述的自适应正则化效应相吻合,因此作为mDAE的正则项是可行的。最后,相较于传统的正则化项而言,能够发现模型训练中更深层次的交互作用。举个例子进行说明,当时,则中的就可以转换为。故对同一隐藏神经元而言,起到了相互竞争和抑制的效果。因此,mDAE所学习到的参数是更趋向于的,即权重矩阵更稀疏。1.2.5堆叠边缘降噪自编码器深度神经网络设计mDAE通过对目标函数进行学习,尽可能地减小重构损失,进而将高维输入数据映射成低纬特征表示。由于单个mDAE的特征提取能力十分有限,因此本文将mDAE作为一种基本的构建模块,通过多层堆叠的形式构建堆叠式边缘降噪自编码器深度神经网络(StackedMarginalizedDenoisingAutoencoder,SmDAE),其模型如图1.4所示。图1.4SmDAE模型图单个mDAE是一个三层网络模型,而只有输入层到中间编码层(即隐藏层)之间的特征映射过程才是值得我们关注的,因此,在完成单个mDAE的训练之后,就可以忽略掉输出层。在连接每一个mDAE时,将前一个mDAE的隐藏层的输出作为后面一个mDAE的输入层的输入,以此类推,逐个地连接所有的mDAE,最终组合为一个SmDAE网络,其特征映射过程可以表示为,其中,为加入噪声干扰之后的原始输入数据,则表示第个mDAE中隐藏层的输出。SmDAE的训练过程主要由两个阶段组成:首先是预训练阶段,此阶段主要是利用无监督学习方法逐个地对每个mDAE进行训练,对网络的参数进行初始化;第二个阶段则是利用有监督学习方法对网络参数进行微调。本文采用的是逐层贪婪的预训练方法ADDINEN.CITE<EndNote><Cite><Author>Bengio</Author><Year>2007</Year><RecNum>330</RecNum><DisplayText>[55]</DisplayText><record><rec-number>330</rec-number><foreign-keys><keyapp="EN"db-id="x0r9955slp0fvnev95spxd0qwrsa9xz2rt2z">330</key></foreign-keys><ref-typename="ConferenceProceedings">10</ref-type><contributors><authors><author>Bengio,Y.</author><author>Lamblin,P.</author><author>Popovici,D.</author><author>Larochelle,H.</author></authors></contributors><titles><title>Greedylayer-wisetrainingofdeepnetworks</title><secondary-title>AdvancesinNeuralInformationProcessingSystems19,ProceedingsoftheTwentiethAnnualConferenceonNeuralInformationProcessingSystems,Vancouver,BritishColumbia,Canada,December4-7,2006</secondary-title></titles><dates><year>2007</year></dates><urls></urls></record></Cite></EndNote>[\o"Bengio,2007#330"55]对SmDAE网络进行从前到后的逐层训练,对原始数据进行加噪处理得到腐化数据,再将腐化数据输入到最外层mDAE进行编码,然后编码特征再由最外层mDAE的解码器进行解码,接着以式(1.11)作为目标函数对此mDAE进行训练,使解码输出尽可能还原数据中的信息。当目标函数已经收敛或者训练达到指定的迭代次数之时,则视作该层mDAE预训练完成。再仿照以上方式对内层mDAE进行预训练,直至所有mDAE都训练完成。最后再借助样本标签,利用反向传播算法微调网络的参数。整个训练的流程如算法1.1所示。算法1.1SmDAE深度神经网络训练输入:train_set:训练集,用以训练SmDAE;noise_level:噪声水平,对数据加噪等级的控制参数;pretrain_epochs:预训练迭代次数;pretrain_lr:预训练学习速率;finetune_epochs:微调阶段迭代次数;finetune_lr:微调阶段的学习速率输出:输出整个SmDAE模型的网络参数1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:构造n层堆叠的SmDAE网络模型Netfordo对第层mDAE的输入进行加噪forpretrain_epochsdo编码;解码;调用式(1.11)计算重构损失使用backpropagation算法来调整第层mDAE的参数endendforfinetune_epochsdoendreturn1.3实验结果与分析为了检验改进方法对于网络性能的提升,本节选取了一个公共医疗数据集Diabetic以及一个从同济医院采集而来的数据集Hcc来进行实验验证,这两个数据集及其预处理方法的详细描述见本文3.3.1部分。本节主要设计了两组实验来验证改进方法对模型性能的影响,各组实验中网络的层数,训练的迭代次数以及训练的方法均保持一致。1.3.1收敛速度为了验证SmDAE网络的计算性能,本节分别采用SmDAE和堆叠降噪自编码器(StackedDenoisingAutoencoder,SDAE)实现对病例数据集的特征提取,在Diabetic和Hcc这两个数据集上的实验结果分别见图1.5和图1.6。(a)第一层(b)第二层(c)第三层图1.5Diabet

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论