目前自編碼器的應用主要有兩種:壹是特征提取;另壹種是非線性降維,用於高維數據的可視化。自編碼器的核心設計是隱藏層,隱藏層有兩種設計方法:
(1)當隱層神經元數小於輸入層神經元數時,稱為欠完備。隱層設計使得從輸入層到隱層的變換本質上是壹種降維操作,網絡試圖在盡可能不丟失數據信息的情況下,在更小的維度上描述原始數據,從而獲得輸入層的壓縮表示。當隱含層的激活函數采用線性函數時,自編碼器也稱為線性自編碼器,其效果相當於主成分分析(PCA)。
(2)當隱層神經元數大於輸入層神經元數時,稱為過完備。這種隱層設計壹般用在稀疏編碼器中,可以獲得稀疏特征表示,即隱層中有大量神經元,其值為0。
降噪自編碼器
降噪自編碼器(DAE)旨在增強自編碼器的魯棒性。自編碼器的目標是期望重構的輸出X與輸入數據X相同,即可以學習輸入層的正確數據分布。然而,當輸入層數據受到噪聲影響時,獲得的輸入數據本身可能不服從原始分布。在這種情況下,通過使用自編碼器獲得的結果也將是不正確的。為了解決噪聲引起的數據偏差問題,DAE在輸入層和隱藏層之間增加噪聲處理,得到壹個新的噪聲層數據Y,然後根據這個新的噪聲數據Y進行常規的自編碼器轉換操作。
堆疊自編碼器
堆疊式自編碼器(SAE),又稱堆疊式自編碼器,Stacked self-encoder。就是疊加多個自編碼器,用上壹層的隱層表示作為下壹層的輸入,得到更抽象的表示。SAE的壹個很重要的應用就是通過逐層預訓練來初始化網絡權值參數,從而提高深度網絡的收斂速度,減緩梯度消失的影響。對於常見的監督學習,SAE通過以下兩個卵作用於全網。
1.循序漸進的前期訓練
每層的參數由自編碼器訓練,作為神經網絡的初始化參數。采用逐層預訓練的方法,首先構造若幹個自編碼器,每個自編碼器對應壹個隱層。
微調
經過第壹步的逐層預訓練,得到更合理的網絡權參數初始估計,通過輸出層的損失函數,可以使用梯度下降等方法叠代求解最優參數,就像訓練普通的深度網絡壹樣。
稀疏編碼器
稀疏編碼器的網絡結構和自編碼器壹樣,也是壹個三層前饋神經網絡。在稀疏編碼中,期望模型對於任何輸入數據都能得到隱層和輸出層,輸入數據、隱層和輸出層具有以下兩個性質。
(1)如果隱藏層向量是稀疏的,則該向量具有盡可能多的零元素。
(2)輸出圖層數據能盡可能還原輸入圖層數據。