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