DL之AE:自編碼器AutoEncoder的簡介、應用、經典案例之詳細攻略
目錄
自編碼器AutoEncoder的簡介 1、AutoEncoder發展史 1.1、RBM 1.2、稀疏AutoEncoder、噪音容忍AutoEncoder、卷積AutoEncoder、變分AutoEncoder→對抗AutoEncoder 自編碼器AutoEncoder的經典案例 1、基礎案例自編碼器(autoencoder, AE)是一類在半監督學習和非監督學習中使用的人工神經網絡ANN,其功能是通過将輸入資訊作為學習目标,對輸入資訊進行表征學習(representation learning) 。
自編碼器包含編碼器(encoder)和解碼器(decoder)兩部分。按學習範式,自編碼器可以被分為收縮自編碼器(undercomplete autoencoder)、正則自編碼器(regularized autoencoder)和變分自編碼器(Variational AutoEncoder, VAE),其中前兩者是判别模型、後者是生成模型。按構築類型,自編碼器可以是前饋結構或遞歸結構的神經網絡。
自編碼器具有一般意義上表征學習算法的功能,被應用于降維(dimensionality reduction)和異常值檢測(anomaly detection)。包含卷積層構築的自編碼器可被應用于計算機視覺問題,包括圖像降噪(image denoising)、神經風格遷移(neural style transfer)等。

1.1、1986年RBM
AutoEncoder的基本思想是利用神經網絡來做無監督學習,就是把樣本的輸入同時作為神經網絡的輸入和輸出。本質上是希望學習到輸入樣本的表示(encoding)。早期AutoEncoder的研究主要是資料過于稀疏、資料高維導緻計算複雜度高。比較早用神經網絡做AutoEncoder的可以追溯到80年代的BPNN和MLP以及當時Hinton推崇的RBM。後來到了2000年以後還堅持在做的隻剩下Hinton的RBM了。
從2000年以後,随着神經網絡的快速興起,AutoEncoder也得到快速發展,基本上有幾條線:稀疏AutoEncoder、噪音容忍AutoEncoder、卷積AutoEncoder、變分AutoEncoder。最新的進展是結合對抗思想的對抗AutoEncoder。
- 稀疏AutoEncoder,在學習輸入樣本表示的時候可以學習到相對比較稀疏的表示結果,這在Overcomplete AutoEncoder(就是學習得到高維表示)方法中尤為重要。代表性人物包括斯坦福大學的Andrew Ng和蒙特利爾的Yoshua Bengio教授。具體方法就是在原來的損失函數中加一個控制稀疏化的正則化項,通過控制優化過程來實作。
- Denoising AutoEncoder的核心思想就是提高Encoder的魯棒性,本質上就是避免可能的overfitting。一個辦法是在輸入中加入随機噪音(比如随機置0一些輸入,或者随機把部分輸入變為marked),這些思想後來在BERT等模型中也有廣泛使用;另一個辦法就是結合正則化的思想,比如在目标函數中加上eEncoder的Jacobian範數。Jacobian範數可以讓學習到的特征表示更具有差異性。
- 著名研究者Jurgen Schmidhuber提出了基于卷積網絡的AutoEncoder以及後來的LSTM AutoEncoder。Max Welling基于變分思想提出變分AutoEncoder方法VAE,這也是一個裡程碑式的研究成果。後面很多研究者在這個工作上進行了擴充,包括info-VAE、beta-VAE和factorVAE等。
最近還有人借鑒Ian Goodfellow等人提出的對抗模組化思想提出Adversarial AutoEncoder,也取得了很好的效果。這和之前的噪音容忍的AE學習也有一定呼應。除了上面的思想,就是可以把上面的各種方法stacking起來。