<模型匯總-6>堆疊自動編碼器Stacked_AutoEncoder-SAE
堆疊自動編編碼器是深度學習領域常用的一個深度學習模型,由多個自動動編碼器串聯堆疊構成。堆疊多層自動編碼器的目的是為了逐層提取輸入數據的高階特徵,在此過程中逐層降低輸入數據的維度,將一個複雜的輸入數據轉化成了一個系列簡單的高階的特徵,然後再把這些高階特徵輸入一個分類器或者聚類器中進行分類或聚類。
1. 自動編碼器模型及分類
自動編碼器(Autoencoders,AE)是一種前饋無返回的神經網路,有一個輸入層,一個隱含層,一個輸出層,典型的自動編碼器結構如圖1所示,在輸入層輸入X,同時在輸出層得到相應的輸出Z,層與層之間都採用S型激活函數進行映射。
圖1 典型自動編碼器結構圖
輸入層到隱含層的映射關係可以看作是一個編碼過程,通過映射函數f把輸出向量x映射到隱含層輸出y。從隱含層到輸出層的過程相當於一個解碼過程,把隱含層輸出y映射通過映射函數g回去「重構」向量z。對於每一個輸入樣本x(i)而言,經過自動編碼器之後都會轉化為一個對應的輸出向量z(i)=g[f(x(i))]。當自動編碼器訓練完成之後,輸入X與輸出Z完全相同,則對應的隱含層的輸出可以看作是輸入X的一種抽象表達,因此它可以用於提取輸入數據的特徵。此外,因為它的隱含層節點數少於輸入節點數,因此自動編碼器也可以用於降維和數據壓縮。網路參數的訓練方面,自動編碼器採用反向傳播法來進行訓練,但自動編碼器需要大量的訓練樣本,隨著網路結構越變越複雜,網路計算量也隨之增大。
對自動編碼器結構進行改進得到其他類型的自動編碼器,比較典型的是稀疏自動編碼器、降噪自動編碼器。降噪自動編碼器(Denoising Autoencoder,DAE)是對輸入數據進行部分「摧毀」,然後通過訓練自動編碼器模型,重構出原始輸入數據,以提高自動編碼器的魯棒性。對輸入數據進行「摧毀」的過程其實類似於對數據加入雜訊。稀疏自動編碼器則是對自動編碼器加入一個正則化項,約束隱含層神經元節點大部分輸出0,少部分輸出非0。稀疏編碼器大大減小了需要訓練的參數的數目,降低了訓練的難度,同時克服了自動編碼器容易陷入局部及小值和存在過擬合的問題。降噪編碼器採用有雜訊的輸入數據來訓練網路參數,提高了自動編碼器的泛化能力。
2. SAD堆疊過程
堆疊自動編碼器方法與DBN相同,具體過程描述如下:(1)給定初始輸入,採用無監督方式訓練第一層自動編碼器,減小重構誤差達到設定值。(2)把第一個自動編碼器隱含層的輸出作為第二個自動編碼器的輸入,採用以上同樣的方法訓練自動編碼器。(3)重複第二步直到初始化完成所有自動編碼器。(4)把最後一個堆疊自動編碼器的隱含層的輸出作為分類器的輸入,然後採用有監督的方法訓練分類器的參數。圖2給出了含三層AD的堆疊自動編碼器的生成過程。
圖2 堆疊三層自動編碼器生成過程
參考文獻:
[1]X. X. Luo, L. Wan, A novel efficient method for training sparse auto-encoders[J]. Proc. of the 6th International Congress on Image and Signal Processing, 2013: 1019-1023.
[2]J. Deng, Z. X. Zhang, M. Erik. Sparse auto-encoder based feature transfer learning for speech emotion recognition[J]. Proc. of Humaine Association Conference on Affective Computing and Intelligent Interaction, 2013:511-516.
[3]J. Gehring, Y. J. Miao, F. Metze. Extracting deep bottleneck features using stacked auto-encoders[J]. Proc. of the 26th IEEE International Conference on Acoustics, Speech and Signal Processing, 2013: 3377-3381.
[4]Y. L. Ma, P. Zhang, Y. N. Gao, Parallel auto-encoder for efficient outlier detection[J]. Proceeding of IEEE International Conference on Big Data, 2013: 15-17.
[5]T. Amaral, L. M. Silva, L. A. Alexande. Using different cost functions to train stacked auto-encoders[J]. Proc. Of the 12th Mexican International Conference on Artificial Intelligence, 2013: 114-120.
推薦閱讀:
※[PS-1] Python入門練習之提醒事項
※RSA系列——實踐測試
※開篇 自製8位計算機介紹
※Compile過後的Mathematica程序大概比Python編的慢多少?
TAG:深度学习DeepLearning | sad | 计算机科学 |