來杰,王曉丹,向前,宋亞飛,權文
(1.空軍工程大學防空反導學院,陜西 西安 710051;2.空軍工程大學空管領航學院,陜西 西安 710051)
深度學習作為機器學習領域的研究熱點,自被Hinton 等[1]提出后,便深刻影響著機器學習的發展走向。深度學習通過構建多層神經網絡模型,逐層提取樣本的高級抽象特征,而后通過分類器或回歸算法完成抽象特征到期望輸出的映射。與淺層神經網絡相比,深度學習模型的多層網絡結構擁有更強的特征提取能力,避免了傳統機器學習算法需要人工選取特征的局限[2],同時采用貪婪預訓練方式,逐層初始化網絡參數,加快了網絡收斂速度[3]。深度學習模型的優異性能得益于其復雜的網絡結構,而復雜的網絡結構則需要大量樣本進行訓練。然而在有監督學習模式下,大量樣本標簽的人工標注是非常困難的,這促進了無監督深度學習模型的發展[4]。典型的深度無監督學習模型有自編碼器(AE,autoencoder)[5-6]、受限波爾茲曼機(RBM,restricted Boltzmann machine)[7-8]與生成對抗網絡(GAN,generative adversarial network)[9]。
自編碼器作為典型的無監督深度學習模型,旨在通過將網絡的期望輸出等同于輸入樣本,實現對輸入樣本的抽象特征學習。Rumelhart 等[5]最早提出了自編碼器的概念,Bourlard 等[6]對其進行了詳細的闡釋。隨著深度學習得到空前的關注,AE 也被廣泛研究與改進[10-13]。為獲得高維且稀疏的抽象特征表示,Ng[10]通過在隱含層輸出中引入稀疏性限制,迫使網絡使用較少神經節點提取有效特征,提出了稀疏自編碼器(SAE,sparse autoencoder)。Vincent 等[11]提出了去噪自編碼器(DAE,denoising autoencoder)。DAE 在AE 中引入退化過程,運用添加噪聲后的樣本重構無噪聲樣本,使提取的抽象特征不易受噪聲影響,具有更強的穩健性。為抑制輸入樣本中的微小擾動,Rifai 等[12]提出了收縮自編碼器(CAE,contractive autoencoder)。CAE通過在AE 損失函數中添加收縮正則化項,以達到局部空間收縮效果。Kingma 等[13]提出了變分自編碼器(VAE,variational autoencoder),并將其用于數據生成。憑借訓練過程簡單、多層堆棧容易、泛化性能優秀的特點,AE 及其改進算法被成功應用于目標識別[14-15]、入侵檢測[16-17]與故障診斷[18-19]等領域。
本文將著重介紹AE 網絡結構及其算法流程,梳理自編碼器改進算法的創新點與實現方式。同時,結合最新文獻,總結AE 在多個領域的研究進展。最后,通過分析當前AE 及其改進算法存在的問題,討論其進一步的研究方向。
作為在無監督學習中使用的神經網絡,自編碼器的輸入與期望輸出均為無標簽樣本,而隱含層輸出則是樣本的抽象特征表示。AE 首先接收輸入樣本,將其轉換成高效的抽象表示,而后再輸出原始樣本的重構。
自編碼器通常包括兩部分:編碼器和解碼器。編碼器將高維輸入樣本映射到低維抽象表示,實現樣本壓縮與降維;解碼器則將抽象表示轉換為期望輸出,實現輸入樣本的復現。自編碼器結構如圖1所示。
圖1 自編碼器結構
與全連接神經網絡相同,AE 節點連接方式也為全連接,但由于采用無監督學習范式,AE 的輸入輸出均為無標簽樣本,不需要標簽信息,旨在學習樣本的內在結構,提取抽象特征。傳統全連接網絡采用有監督學習范式,其輸出為樣本標簽,旨在完成特征到標簽的映射。
AE 的訓練過程包括編碼和解碼2 個階段。編碼過程,對輸入樣本進行編碼得到編碼層;解碼過程,對編碼層進行解碼,得到輸入樣本的重構,并通過調整網絡參數使重構誤差達到最小值,以獲得輸入特征的最優抽象表示。
假設給定輸入樣本X=Rd×n,編碼層與輸入層間的權值矩陣W,編碼層節點偏置bm,解碼層偏置bd,節點激活函數g(·),自編碼器首先通過線性映射和非線性激活函數完成對樣本的編碼
AE 的訓練旨在使損失函數達到最小值
在AE 中,損失函數通常可取平方誤差損失函數或交叉熵損失函數。對于輸入樣本與重構,平方誤差與交叉熵損失函數分別為
AE 通常利用梯度下降算法,反向傳播誤差以調整網絡參數,通過迭代微調逐步使重構誤差函數達到最小值,以學習樣本數據中的關鍵抽象特征。當采用梯度下降算法時,假設學習速率為η,AE的連接權值與偏置更新式分別為
研究者通常將多個AE 進行級聯,構建堆棧自編碼器,采用逐層貪婪訓練方式,將上一級AE 的隱含層輸出作為下一級AE 的輸入,進行層次化特征提取,使最終提出的特征更具代表性,且維數通常較低[20]。堆棧自編碼器通常具有對稱的多隱含層結構,對應于解碼與編碼過程,但被應用于分類或回歸問題時,一般將解碼部分舍去,將最終的編碼用于分類[21]或回歸[22]。
對于特定的輸入樣本,自編碼器通過特征的正向傳播與誤差的反向傳播,采用梯度下降算法更新網絡連接權值與節點偏置,使重構樣本逐步逼近輸入樣本,進而提取樣本的抽象特征。算法流程如算法1 所示。
算法1自編碼器算法
輸入訓練樣本,隱含層節點數m,激活函數g(·),學習速率η,最大迭代次數Nmax
輸出映射函數f:Rd→Rd
1) 初始化,迭代次數N=0,隨機賦值連接權值與節點偏置W,bm,bd;
2) whileN<Nmax
3) 更新迭代次數N=N+1;
4) 正向傳播,利用式(1)和式(2)計算隱含層輸出H和樣本重構;
5) 利用式(4)或式(5)計算網絡誤差J(W,b);
6) 反向傳播,利用式(6)和式(7)分別更新權值W和偏置bm、bd;
7) end while
8) 返回映射函數f(X)=g(WTg(WX+bm)+bd)
以上流程中,算法停止條件僅為最大迭代次數。在實際應用中,還可設定期望誤差等其他停止條件。
除AE 以外,基于神經網絡的無監督學習算法還包括 RBM、GAN 與自組織映射(SOM,self-organization mapping)[23]。表1 歸納了上述無監督學習算法的目的、實現方式與特點。
表1 基于神經網絡的無監督學習算法分析與比較
與主成分分析、獨立成分分析等常用無監督學習算法相比,AE 通過將特征進行加權融合,轉化為維數更低、更具代表性的高級抽象,能夠有效利用次要特征中的重要信息,而不是一味地舍棄次要特征,因此采用AE 進行特征提取或降維后的抽象特征,更有助于分類與回歸任務。與RBM 相比,AE 不需要對比散度算法中的采樣運算,訓練時間更短。與SOM 相比,AE 通過改變隱含層節點數,可以完成任意維度特征空間的映射。
傳統自編碼器僅通過最小化輸入樣本與重構樣本之間的誤差來獲取輸入樣本的抽象特征表示,這可能導致自編碼器學習到的特征僅僅是原始輸入的恒等表示,不能保證提取到樣本的本質特征。為避免上述問題,需要對傳統自編碼器添加約束或修改網絡結構,進而產生了SAE、DAE、CAE 與VAE 等改進算法。
稀疏自編碼器在自編碼器中添加稀疏性限制,以發現樣本中的特定結構,避免網絡對恒等函數的簡單學習。在SAE 中,稀疏性限制迫使隱含層節點大部分時間被抑制,即隱含層節點輸出接近于0(因激活函數不同而不同),使網絡僅依賴少量隱含層節點進行編碼和解碼,提取到的特征稀疏性更強。
稀疏性限制需要在損失函數上添加關于激活度的正則化項,對過大的激活度加以懲罰,以降低隱含層節點激活度。通常采用L1范數或KL 散度(Kullback-Leibler divergence)正則化項。
當采用L1范數正則化項時,給定aj(xi)表示隱含層節點j對輸入xi的激活值,λ表示控制懲罰程度的L1正則化系數,則SAE 的損失函數為
當采用KL 散度正則化項時,給定稀疏性參數ρ,隱含層節點j的平均激活度為,KL 正則化系數β,SAE 的損失函數為
KL 散度計算式為
稀疏性參數ρ通常為一個較小的值(如ρ=0.05),表示隱含層節點的理想平均激活度,為滿足這一條件,隱含層節點的激活度必須接近0。的計算式為
KL 散度隨著ρ與之間差的增加而單調遞增,這使SAE 的訓練會強迫隱含層節點的平均激活度接近ρ,更多的節點激活度接近0,以增強所提取特征的稀疏性。
與其他自編碼器相比,SAE 能夠有效學習重要特征,抑制次要特征,提取的抽象特征維度更低,更具稀疏性。但SAE 無法指定特定節點處于激活或抑制狀態,且稀疏性參數的設置缺乏指導,通常需要額外的參數影響實驗進行確定。
為避免傳統自編碼器學習到無編碼功能的恒等函數,去噪自編碼器在AE 的基礎上引入了退化過程。DAE 在退化過程中對輸入樣本添加噪聲,以改變輸入樣本的數據分布,而后通過訓練重構無噪聲的樣本,防止AE 簡單地將輸入復制到輸出,迫使AE 提取的抽象特征更加反映樣本本質、更具穩健性。DAE 網絡結構如圖2 所示。
圖2 DAE 網絡結構
DAE 中,退化過程是指對于每一個輸入樣本,按照一定比例v將其特征值置為0 或其他值,這個比例v被稱作退化率。退化過程如圖3 所示(對于灰度圖像,置0 意味著置黑)。
圖3 退化過程
DAE 加入退化過程的自然原理是人眼在看物體時,如果物體某一小部分被遮住了,人眼依然能將其識別出來。該現象說明人所帶有的“生物”自編碼器所提取的特征更具有代表性與穩健性,對于輸入中含有一定噪聲的樣本數據,它經過編碼、解碼后仍能得到純凈無噪的樣本。這要求自編碼器不僅要有編碼功能,還要有去噪作用[8]。然而,即使樣本中含有噪聲,AE 卻只能重構含有噪聲的輸入樣本。所以,對原始樣本進行適當的退化處理,再讓自編碼器重構原始樣本,這樣所提取的特征更本質、更抗干擾[11]。
與其他自編碼器相比,DAE 能夠在一定程度上克服輸入樣本中存在的噪聲干擾,提取的抽象特征更具有代表性與穩健性。但DAE 引入了額外的退化過程,增加了模型的訓練時間,且算法對退化率敏感,過小的退化率難以有效提升算法性能,而過大的退化率會使輸入樣本嚴重失真,降低算法性能。
收縮自編碼器在傳統自編碼器的基礎上,通過在損失函數上添加收縮正則化項,迫使編碼器學習到有更強收縮作用的特征提取函數,提升對輸入樣本小擾動的穩健性,防止對恒等函數的學習。
假設收縮正則化系數為λ,隱含層輸出關于輸入樣本的雅可比矩陣為Jf(x),CAE 的損失函數為
從損失函數看,CAE 通過重構誤差與收縮正則化項的平衡以提取樣本的抽象特征。收縮正則化項使CAE 學習到的函數對于輸入的梯度都較小,而重構誤差迫使CAE 保留完整的信息。在兩者共同作用下,特征提取函數關于輸入的梯度大都較小,只有少部分梯度較大。這樣在輸入具有小擾動時,較小的梯度會削弱這些擾動,從而提升CAE 對輸入小擾動的穩健性。
需要注意的是,CAE 與DAE 存在差別。DAE通過對輸入樣本添加噪聲,經過編碼與解碼獲得樣本的穩健性重構;CAE 通過對損失函數添加正則化項,提升特征提取函數穩健性。CAE 是通過內部因素提升特征提取穩健性,而DAE 則是通過外部因素提高特征提取穩健性。
與其他自編碼器相比,CAE 能夠抵抗輸入樣本存在的一定擾動,提取到的抽象特征具有更強的穩健性。但收縮正則化項在具有多個隱含層的自編碼器中難以計算,因此CAE 通常僅包含單一隱含層。
作為特殊的自編碼器,變分自編碼器并非判別式模型,而屬于生成模型。VAE 旨在通過對樣本分布的學習,采用估計分布近似逼近樣本真實分布,進而由估計分布生成原始樣本的類似樣本[24]。VAE結構如圖4 所示。
圖4 VAE 結構
圖4 中,Z為隱變量,μ與σ為隱變量Z的均值與標準差,與分別為編碼過程與解碼過程學習到的條件分布,對應識別與生成模型[25]。其中,為使VAE 具有樣本生成能力,而非確定的映射過程,隱變量Z需為隨機變量,且為簡化計算,通常假設隱變量Z服從多元正態分布,即為近似后驗分布,旨在逼近未知的真實先驗分布,通常假設為正態分布。而需被提前定義,針對二值與實值樣本,通常分別選擇伯努利分布與正態分布。
VAE 的訓練目標旨在最小化輸入樣本分布P(X)和重構樣本分布距離,通常采用KL 散度進行分布之間的距離衡量,即
但由于真實分布的未知性,KL 散度不可直接計算,因此VAE 引入近似后驗分布,并采用極大似然法優化目標函數,推導出其對數似然函數
由于KL 散度非負,因此L(X)稱為似然函數的變分下界,其計算式為
式(17)中等號右邊第一項為正則化項,第二項為VAE 期望重構誤差的負值。VAE 通過最小化損失函數,使估計分布接近P(Z),且期望重構誤差接近0。
需要注意的是,在VAE 訓練過程中,需要對隱變量Z進行隨機采樣,無法求導,導致無法采用反向傳播算法優化參數。為克服該問題,VAE 提出了重參數技巧,引入參數ε~N(0,I),通過抽取L個樣本εi,將隱變量Z的直接采樣變換為的線性運算,使其能夠采用梯度下降算法進行優化。
VAE 的訓練可以分為3 個階段:編碼、采樣和解碼。編碼階段,對于輸入樣本X,VAE 通過識別模型產生隱變量Z分布的均值μ與標準差σ;采樣階段,對于均值μ與標準差σ,VAE 通過重參數化技巧,生成隱變量Z的隨機采樣樣本;解碼階段,對于隱變量Z的采樣樣本,VAE 通過生成模型生成新樣本。
與其他自編碼器相比,VAE 屬于生成模型,能夠估計樣本的真實分布,進而生成類似樣本,但也因此不能直接應用于分類與回歸任務中。并且由于需要最小化重構誤差,與GAN 相比,生成的樣本更加自然,卻也更加模糊。
1) 卷積自編碼器
傳統自編碼器通常采用全連接層,這會造成圖像空間信息的損失,而卷積自編碼器(CoAE,convolutional autoencoder)[26]受卷積神經網絡啟發,采用卷積層與池化層取代全連接層,以更好地保留圖像的空間信息。在CoAE 中,編碼過程由卷積層和池化層(下采樣層)組成,解碼過程由上采樣層和卷積層組成,其中上采樣層為池化層的逆過程。
假設X表示輸入樣本,Wk與bk分別表示第k個卷積核的權值與偏置,*表示卷積運算,g(·)表示池化函數,hk表示第k個卷積核所提取的抽象特征,則CoAE 的編碼過程為
解碼器將各個卷積核提取的抽象特征進行解碼重構,并將其合并為最終的重構樣本。
CoAE 的損失函數為
式(20)中等號右邊第二項為權值L2范數正則化項,與傳統正則化自編碼器相同,用于控制權值的衰減程度,以降低噪聲影響,提升網絡的泛化性能,并改善過擬合現象。
與其他自編碼器相比,CoAE 能夠直接應用于圖像樣本的處理,提取到的特征能夠保留更多的圖像空間信息。但由于涉及卷積、池化及其逆操作,CoAE 的實現更復雜。
2) 極限學習機-自編碼器
傳統自編碼器需要誤差的反向傳播,通過迭代微調修改網絡參數,這使其易陷入局部最優,且需要較多的訓練時間。為克服局部最優問題并減少訓練時間,極限學習機-自編碼器(ELM-AE,extreme learning machine autoencoder)[27]將極限學習機(ELM,extreme learning machine)與AE 相結合,隨機賦值隱含層輸入權值與偏置,并通過求取隱含層輸出權值的最小二乘解,完成網絡訓練,使網絡參數不需要迭代微調,極大增加了網絡訓練速度,而且最小二乘解為全局最優解,保證了算法的泛化性能。
ELM-AE 網絡結構與AE 相同,但其隱含層輸出權值通常以β表示,并且為保證ELM-AE 的泛化性能,隱含層輸入權值與偏置需要進行正交化,即WTW=I,bTb=I。ELM-AE 隱含層輸出H與重構樣本的關系為
ELM-AE 隱含層輸出權值β的求解方法與網絡各層節點數有關。當輸入層節點數N與隱含層節點數L不同時,β計算式為
當輸入層節點數N與隱含層節點數L相同時,β計算式為
與其他自編碼器相比,ELM-AE 不需要采用梯度下降算法進行迭代微調,極大縮減了訓練時間。但由于隨機賦值的隱含層輸入權值與偏置無法通過迭代進行調整,導致ELM-AE 的算法性能通常具有較大程度的波動。
3) 自編碼器改進算法比較
除上述算法以外,研究者還提出了其他自編碼器改進算法[28-35],包括區分自編碼器[28]、L21范數自編碼器[29]、對抗自編碼器[30]等。表2 歸納總結了上述自編碼器改進算法的出發點與改進方式。
表2 自編碼器改進算法的分析與比較
這些改進算法主要通過3 種方式對自編碼器進行創新:1)對損失函數增加特定的正則化約束,改善所提取特征的特定性質;2)優化網絡結構,保留有效信息或增加數據生成能力;3)與其他算法相結合,改善訓練方法,減少訓練時間。
作為典型的深度學習模型,自編碼器憑借其優異的特征提取能力,已被應用于目標識別、入侵檢測、故障診斷、文本分類、圖像重建等諸多領域中。
目標識別作為機器學習技術的熱點應用領域,一直備受關注,而提升目標識別性能的關鍵是有效的特征提取與分類。隨著傳感器性能的增強,其能夠獲取的目標信息及其種類也在增加,這使傳統人工特征提取方式難以深入挖掘目標的潛在本質特征,進而影響目標識別性能[36]。而以自編碼器為代表的深度學習技術能夠實現目標特征的自動提取,擺脫人工提取的局限,有利于目標識別性能的提升。自編碼器在目標識別上的應用,根據數據源種類的不同,大致可分為基于自編碼器的高分辨距離像(HRRP,high resolution range profile)識別與合成孔徑雷達(SAR,synthetic aperture radar)圖像識別。
對于HRRP 識別,Mian 等[14]將稀疏自編碼器應用于小樣本識別中,通過堆棧稀疏自編碼器(SSAE,stacked SAE)逐層提取樣本抽象特征,softmax 分類器完成類別標簽的映射與網絡參數的迭代微調,實現了小訓練樣本條件下的目標HRRP識別,并驗證了自編碼器的特征提取性能優于PCA等傳統方法。Feng 等[15]為突破傳統淺層模型特征提取能力的局限,通過引入平均像正則化項,提出了矯正自編碼器及其深度模型。矯正自編碼器將HRRP 與其平均像之間的馬氏距離作為正則化項添加到AE 損失函數中,迫使特征提取過程考慮HRRP的結構相似性與振幅波動性,使提取的抽象特征能夠有效緩解斑紋效應與異常值影響。為保持SAE對HRRP 識別的泛化性能,提升訓練速度,Zhao等[37]將SAE 與ELM 相結合,提出了SAE-ELM 方法。該方法首先通過SAE 逐層提取抽象特征,而后使用ELM 完成分類,不需要參數的迭代微調,極大減少了訓練時間。為實現多角度HRRP 目標的角度特征提取與分析,Chen 等[38]首先采用SSAE 逐層提取低維抽象特征,然后通過流形學習,利用低維空間映射完成目標角度特征的提取與可視化,并分別在仿真與實測數據上驗證了該方法的有效性。
對于SAR 圖像識別,Kang 等[39]提出了基于堆棧自編碼器的SAR 目標識別特征融合算法,該方法首先提取SAR 圖像的基線特征與紋理特征,而后將通過零成分分析法降維后的特征代入堆棧自編碼器中進行抽象特征提取與融合,最后采用softmax 分類器完成抽象特征到類別標簽的映射。為提升AE 在小樣本條件下的特征提取能力,Deng等[40]將暗含樣本類別信息的歐氏距離約束添加到AE 中,迫使其提取的抽象特征具有更強的類間可區分性,并將Dropout 正則化技術應用到改進AE的深度模型中,防止出現過擬合現象。Dong 等[41]首先綜合分析了自編碼器及其改進算法,然后通過具體的SAR 圖像識別實驗,驗證了自編碼器進行提取特征的有效性,分析了不同參數對AE 泛化性能的影響,并比較了堆棧自編碼器與其他典型算法的分類性能。為提升SAR 圖像的特征提取性能,增強抽象特征的類內聚集性,Guo 等[42]通過對卷積自編碼器施加緊湊性約束,提出了緊湊卷積自編碼器。該方法將類內樣本距離正則化項添加到損失函數中,同時最小化重構誤差與類內樣本距離,以生成更具區分性的抽象特征,并通過在MSTAR 數據集上的實驗證實了方法的有效性。
入侵檢測旨在通過分析網絡數據分組中的協議類型、服務類型以及持續時間等特征,識別其中的惡意攻擊行為,為應對非法入侵提供預警,保障網絡安全[43]。然而,隨著大數據、云計算等技術的突飛猛進,網絡安全威脅日益復雜,問題復雜度不斷升高,數據維度不斷增加,這使傳統機器學習方法難以有效提取特征,存在學習效率低、誤報率高的現象,而自編碼器高效的特征提取能力,有利于發現潛在安全威脅,為解決復雜的入侵檢測問題提供可能。
Li 等[16]提出一種將AE 與深度置信網絡相結合的入侵檢測方法,該方法首先采用AE 進行特征降維,然后采用深度置信網絡對降維后的數據進行分類。相較于傳統深度置信網絡,該方法的檢測準確率得到一定提升。Javaid 等[17]與Al-qatf 等[44]將SAE應用于入侵檢測中,2 種方法首先采用獨熱編碼處理符號特征,然后通過SAE 進行層次化抽象特征提取,最后分別使用softmax 分類器與支持向量機(SVM,support vector machine)完成類別映射。2 種方法均在NSL-KDD 數據集上進行實驗,通過準確率、精準率、召回率與F 值等指標的變化,驗證算法有效性。為改進AE 與VAE 中的抽象特征表示,迫使抽象特征向原點聚集,Cao 等[45]通過增加AE損失函數中的抽象特征L2范數正則化項,重構VAE損失函數中的KL 散度項,提出了縮小自編碼器與狄拉克變分自編碼器,并將其應用于異常檢測中。Chouhan 等[46]將堆棧自編碼器與改進的卷積網絡相結合,提出了一種新的入侵檢測方法。該方法將多個堆棧自編碼器用于原始特征空間到抽象特征空間的轉換,得到多個不同的抽象特征空間,并采用信道增強方法將不同的抽象特征空間進行疊加,而后代入改進的卷積神經網絡中進行分類,完成異常行為的檢測。對于入侵檢測數據集中存在的類別不平衡問題,通過將類別標簽作為VAE 的額外輸入,Lopez-martin 等[47]提出了一種新的變分生成模型,并將其用于少數類的生成中,有效提升了檢測準確率。通過將統計分析方法與自編碼器相結合,Ieracitano 等[48]提出了一種新的入侵檢測方法。該方法先后采用異常值分析剔除異常值、最小最大歸一化統一數值范圍、獨熱編碼數值化符號特征,而后通過數值0 的比例進行特征剔除,接著將剩余特征分別通過AE 與softmax 分類器完成特征降維與分類。Tang 等[49]為進一步提升特征提取能力,通過在輸入層與隱含層間新增用于計算特征注意力向量的注意力機制層,將注意力機制引入AE 中,提出了注意力自編碼器(AAE,attention autoencoder),并將堆棧注意力自編碼器(SAAE,stacked AAE)與深度神經網絡(DNN,deep neural network)相結合應用于入侵檢測中。
機械故障診斷通過對獲取的機械運行狀態信息進行分析比較,旨在及時發現機器異常或故障,從而減少故障或事故的發生[50]。傳統故障診斷方法基于對振動信號的分析與處理,通過經驗知識進行特征提取與選擇,并選擇淺層分類器完成故障類別的判定。然而,隨著現代化機電設備發展,傳感器數量增多、采樣頻率升高、數據量加大,且振動信號的非線性、非高斯分布性等特性凸顯,傳統方法難以實現故障的快速準確判斷,這促使包括自編碼器在內的深度學習技術應用于故障診斷中。
Zhang 等[18]與Lu 等[19]分別將AE 與DAE 應用于滾動軸承故障診斷中,使用其深度結構實現振動信號的抽象特征提取,克服了傳統人工特征提取的局限,極大提升了故障診斷準確率。為實現特征的自動提取,克服訓練樣本與測試樣本間的差異性,Wen 等[51]將SAE 與遷移學習相結合,提出了基于深度遷移學習的故障診斷方法。該方法將訓練樣本與測試樣本均采用SAE 逐層提取樣本抽象,并在網絡損失函數中加入最大平均差異正則化項,最小化訓練和測試樣本抽象特征之間的差異,使提取的抽象特征能同時有效表征訓練與測試樣本。在常用故障診斷數據集上的實驗表明,該方法的預測準確率高于深度置信網絡、SVM 等算法。Li 等[52]將稀疏與鄰域原理應用于ELM-AE 中,通過在損失函數中增加稀疏與鄰域正則化項,更新隱含層輸出權值的最小二乘法,迫使抽象特征保留樣本的全局與局部流形結構,提升其可區分性,并與ELM 及其深度模型進行對比分析,驗證了所提方法在故障診斷上的有效性。為提取含噪聲振動信號的有效故障特征,Yu[53]提出了一種基于負相關學習的選擇性堆棧去噪自編碼器集成模型。該模型首先將bagging 算法應用于堆棧去噪自編碼器(SDAE,stacked DAE)中,通過bootstrap 采樣訓練樣本,使用不同的采樣樣本進行SDAE 抽象特征提取,然后利用負相關學習進行微調,構建分類器,最后采用粒子群算法對SDAE 進行選擇性集成,得到穩定性與泛化性能最優的模型。Zhao 等[54]為解決故障樣本少所導致的類不平衡問題,將VAE 引入故障診斷框架中,通過增擴少數類的振動信號樣本,構建出類別平衡的訓練樣本,并代入CNN 中進行分類。實驗結果表明,與真實信號相比,VAE 生成的振動信號具有相似的時頻特性,能夠促進診斷準確率的提升。Yu 等[55]為提升對一維振動信號的特征提取能力,將一維卷積自編碼器應用于齒輪故障診斷中,并引入殘差學習對其進行改進。Gao 等[56]提出了一種基于半監督堆棧自編碼器與集成極限學習機相結合的高壓開關故障診斷方法。該方法首先采用自適應噪聲完備經驗模態分解對針對信號進行處理,得到時頻能量矩陣,然后對能量矩陣采用半監督堆棧自編碼器進行自動特征提取,接著采用集成極限學習機建立兩級分類器,第一級用于正常或異常狀態識別,第二級用于異常狀態的具體故障類型識別。在驗證實驗中,該方法的分類準確率可達到99.5%。
1) 文本分類
文本分類旨在通過文檔的標題、關鍵詞、正文等特征信息,對其所屬類別進行判定,從而代替人工完成文本信息的分類管理。隨著深度學習技術的發展,AE、CNN 等算法已逐步應用于文本分類中[57-59]。
許卓斌等[57]為提升AE 在詞嵌入中的效果,通過在AE 隱含層中加入全局調整函數,實現特征的合并,增強特征向量的稀疏性,并在20 News Groups數據集上驗證了該改進方法的有效性。為提升高維度文本的特征提取能力,減少訓練時間,冀俊忠等[60]提出了基于ELM-AE 的文本分類方法。該方法首先利用ELM-AE 對高維度文本進行特征降維,而后通過堆棧ELM-AE 實現文本抽象特征的層次化提取,并計算輸出層權值的最小二乘解進行文本分類。Xu等[61]針對半監督文本分類問題,提出了一種半監督序列變分自編碼器。該方法通過將未標記樣本的類別標簽作為離散潛變量,最大化樣本的似然變分下界,從而隱式推導出未標記樣本的潛在類別分布,并通過解決序列解碼器的自回歸問題,使其能夠應用于文本分類。
2) 圖像重建
圖像重建技術旨在根據物體測量數據,通過數據處理重新建立物體圖像。但是常見的壓縮感知[62-63]、字典學習[64-65]等圖像重建方法具有重建時間過長與超參數選擇困難的問題[66]。而基于深度學習的圖像重建方法,能夠學習樣本的高級抽象特征,避免了傳統方法的人工特征提取,在重建精度與速度上實現了突破[67]。
Tan 等[68]將AE 應用于圖像重建與識別中,通過重建誤差指標,比較了堆棧自編碼器與主成分分析法、深度置信網絡的性能。Mehta 等[69]為提升DAE 對異常值的穩健性,實現實時醫學影像重建,將原有的歐氏范數(L2范數)損失函數替換為L1范數損失函數,降低了異常值影響,提升了網絡參數的稀疏性,同時采用少量的矩陣乘積運算,極大搞高了重建速度。為保留更多的圖像細節,Zhou等[70]通過在卷積自編碼器中引入結構相似度與多尺度結構相似度指標,構成結構增強損失項,添加到損失函數中,提出了結構增強卷積自編碼器,并將其作為生成器與對抗生成網絡相結合,用于高度欠采樣樣本的圖像重建。在不同欠采樣率與采樣類型下的對比實驗表明,該方法能夠以較少的模型參數重建更高質量的圖像。
盡管近年來研究者對自編碼器及其改進算法進行了深入研究,但現階段仍存在以下問題亟須解決。
1) 無監督學習模式對特征提取能力的限制
與有監督學習相比,無監督學習模式擺脫了對樣本標簽的依賴、避免了人工標注的困難,但也因此失去了樣本標簽的輔助,標簽信息難以有效應用于特征提取中,使自編碼器性能與有監督學習存在一定差距。因此,研究半監督[71]或有監督條件下的自編碼器[72],合理運用標簽信息提升自編碼器特征提取能力,是一個需要重點關注與解決的問題。
針對此問題,一方面可以通過在自編碼器輸入層或輸出層中直接添加樣本標簽,同時重構輸入樣本及其標簽,強迫自編碼器在編碼與解碼過程中考慮到標簽損失,使提取的特征更加符合不同樣本的類本質。另一方面,可以通過在損失函數上添加暗含標簽信息的類內離散度或類間離散度正則化項,在最小化損失函數的過程中,減少抽象特征的類內距離,增加類間距離,增強抽象特征的類可區分性,提升自編碼器的特征提取能力,使抽象特征更適用于分類任務。
2) 硬件要求高,訓練時間長
復雜的網絡結構依賴大量的訓練樣本,以自編碼器為代表的深度學習模型具有較高的時空復雜度,需要消耗巨大的計算與存儲資源,這對硬件設備提出了更高要求,往往導致訓練時間過長[73]。
針對此問題,一方面可以將模型壓縮技術應用于自編碼器中,采用剪枝算法剔除冗余節點或通道[74],實現網絡結構的精簡,或對權值進行稀疏化,抑制部分神經節點,完成對網絡參數的壓縮。另一方面可以研究輕量化自編碼器算法,借鑒ELM-AE 算法,對自編碼器的訓練方式進行改進[75],減少參數迭代微調次數,提升算法訓練效率。此外,還可以通過研究分布式優化算法來降低模型的計算復雜度[76],或研究并行計算方法以充分利用現有計算資源。這些方法有助于降低自編碼器的結構復雜度,降低軟硬件要求,減少訓練時間。
3) 缺乏有效超參數設置方法
以自編碼器為代表的深度學習模型具有隱含層層數、節點數等眾多的超參數,這些超參數對模型泛化性能有重大影響,因此如何合理設置超參數是一個重要問題。
目前,超參數的設置一般采用試錯法,通過比較超參數不同排列組合下的模型性能,選出最優的超參數設置,然而這并不適用于超參數數量較多的情形。針對此問題,一個可行的方法是將遺傳算法[77]、粒子群算法[78]、蝙蝠算法等算法應用于超參數優化中,將超參數取值作為搜索目標,自編碼器泛化性能作為評價標準,通過上述搜索算法,尋找能夠滿足最優泛化性能條件下的超參數取值,實現自編碼器超參數的自動學習與設置。
4) 隨機初始化引入額外噪聲
目前,絕大多數自編碼器及其改進算法對網絡參數均采用隨機初始化,這不可避免地引入了額外噪聲,影響算法的收斂速度與泛化性能。因此,如何有效地進行網絡初始化是一個值得深入研究的問題。
針對此問題,一方面可以通過在損失函數中添加L1或L2范數正則化項,以降低隨機初始化導致的噪聲影響,另一方面可以采用Glorot 初始化方法[79]、He 初始化方法[80]等其他改進初始化方法,在緩解噪聲影響的同時,使自編碼器的訓練過程更加穩定,避免出現梯度消失或爆炸現象。
5) 難以適應小樣本條件,易產生過擬合
自編碼器及其深度結構由于模型結構復雜,需要大量樣本進行訓練,在小樣本條件下訓練自編碼器極易產生過擬合,進而降低模型泛化性能。因此小樣本條件已成為制約自編碼器應用的關鍵因素。
針對此問題,可從樣本擴充與模型優化2 個方面加以解決。在樣本擴充方面,既可通過平移、旋轉、過采樣等傳統方法對有限樣本進行數據擴充,也可通過VAE 或GAN 等深度生成模型學習真實樣本的估計分布,生成有限樣本的類似樣本,解決小樣本條件下的樣本稀缺問題。在模型優化方面,可將遷移學習應用于自編碼器中,通過在相似充足數據集上的預訓練階段與在小樣本數據集上的迭代微調階段,完成對網絡參數的優化,解決小樣本條件下的訓練不足問題。
隨著在各領域的成功應用,深度學習受到了廣泛關注,而自編碼器作為典型的無監督深度學習模型,憑借訓練過程簡單、多層堆棧容易、泛化性能突出等優點,成為近年來的研究熱點。本文詳細介紹了自編碼器及其改進算法,闡述了其基本理論及算法流程,梳理與分析了自編碼器在多個具體應用領域的研究進展,最后總結了現有自編碼器算法在學習模式、訓練時間與超參數設置等方面所存在問題,給出了可行的解決方法,展望了自編碼器的研究方向。希望本文能為今后自編碼器相關研究提供一定的參考。