1. AutoEncoder介紹

1. AutoEncoder介紹

2. Applications of AutoEncoder in NLP

3. Recursive Autoencoder(遞歸自動編碼器)

4. Stacked AutoEncoder(堆棧自動編碼器)

1. 前言

AutoEncoder(後面用AE簡稱)是一個自動編碼器,它是經過重建輸入的神經網絡訓練過程,它的隱藏成層的向量具備降維的做用。它的特色是編碼器會建立一個隱藏層(或多個隱藏層)包含了輸入數據含義的低維向量。而後有一個解碼器,會經過隱藏層的低維向量重建輸入數據。經過神經網絡的訓練最後AE會在隱藏層中獲得一個表明輸入數據的低維向量。它能夠幫助數據分類、可視化、存儲。AE是一個自動編碼器是一個非監督的學習模式,只須要輸入數據,不須要label或者輸入輸出對的數據。html

image

雖然AE是一個非監督學習算法,若是它的解碼器是線性重建數據,能夠用MSE來表示它的損失函數:
\[ L(x,y)=\sum(x-h_{W,b}(x))^{2} y=h_{W,b}(x) \]
若是解碼器用Sigmoid的激活函數,那主要用交叉上損失函數:算法

\[ L(x,y)=-\sum_{i=1}^{d_{x}}x_{i}log(y_{i})+(1-x_{i})log(1-y_{i}) \]網絡

3. AE的歷史發展

AE的思想是在1986年被提出來的,在接下來的幾年,AE的思想席捲了個大研究論文。關於AE比較有表明性的模型有一下幾種:app

  • Denoising AutoEncoder
  • Sparse AutoEncoder
  • Contractive AutoEncoder
  • Variational AutoEncoder

4. Denoising AutoEncoder

DAE的主要作法是,輸入數據加入了噪聲,輸出的數據是完整的數據。DAE會強制隱藏層只去學習主要的特徵,輸出的數據就會是更好的魯棒性。函數

DAE的一種方式是隨機的刪除數據集中的某些數據,而後用完整的數據去評判,DAE會嘗試去預測恢復缺失的部分。學習

一個關於手寫數字集的DAE的展現圖以下:編碼

image

5. Sparse AutoEncoder

AE通常的方式是經過隱藏層中的少數的隱藏單元去發現有用的信息,可是AE也能夠經過大量的隱藏單元去發現有用信息。SAE的作法是把輸入數據轉化爲高緯度的中間層,而後引入一個稀疏限制的規則。稀疏限制是在大部分時間,大部分的神經元的平均輸出比較低。若是使用Sigmoid的激活函數,咱們會盡可能把輸出變爲0,若是是tanh的激活函數,咱們會盡可能把輸出變爲-1。spa

\[ p_{j}=\frac{1}{m}\sum_{i=1}^{m}(a_{j}x) \]
\(a_j\)是神經元的激活後的輸出,\(p_j\)是全部神經元輸出的平均值,咱們的目標是去最小化\(p_j\)code

K-Sparse AutoEncoder是SAE提高版本,KSAE是自己的隱藏神經元很是多,但只選擇k個神經元是激活的,其餘都是dropout狀態,經過選擇不一樣的激活函數和調整不一樣的k的閾值去訓練。下面是經過調整k值,生成不一樣的手寫數字的輸出值。htm

image

6. Contractive AutoEncoder

CAE的主要目標是使得隱藏層向量對輸入數據的微小的變更可以有更強的魯棒性。CAE的作法是在普通AE的基礎上加上一個懲罰項。公式以下:
\[ J_{CAE}(\theta)=\sum_{x\in{D_n}}(L(x,g(f(x)))+ \lambda{||J_{h}(x)||_{F}^{2}}) \]
\[ ||J_{h}(x)||_{F}^{2}=\sum_{ij}\left(\frac{\delta h_{j}(x)}{\delta x_{i}}\right) \]
CAE和DAE目標是類似的,DAE是經過加入噪聲,重構來提高模型的魯棒性,CAE是經過增長雅克比矩陣的懲罰項來提升模型魯棒性。

7. Variational AutoEncoder

VAE結構是一個經典的autocoder模型,網絡的組成也是編碼器、解碼器、loss。VAE的機構和普通的AE結構有所不一樣。

普通的AE結構以下,解碼器直接使用編碼器的輸出向量。
image

上面的模型已經能夠訓練任意圖片了。可是,咱們想建一個產生式模型,而不是一個只是儲存圖片的網絡。如今咱們還不能產生任何未知的東西,由於咱們不能隨意產生合理的潛在變量。由於合理的潛在變量都是編碼器從原始圖片中產生的。這裏有個簡單的解決辦法。咱們能夠對編碼器添加約束,就是強迫它產生服從單位高斯分佈的潛在變量。正是這種約束,把VAE和標準自編碼器給區分開來了。

不像標準自編碼器那樣產生實數值向量,VAE的編碼器會產生兩個向量:一個是均值向量,一個是標準差向量。
image

VAE除了能讓咱們可以本身產生隨機的潛在變量,這種約束也能提升網絡的產生圖片的能力。
另外,VAE的一個劣勢就是沒有使用對抗網絡,因此會更趨向於產生模糊的圖片

8. 總結

AE算法的壓縮數據的方式,能夠運用的地方是不少的,圖像和天然語言處理都是有很大的發揮空間。如今的VAE也能夠用來生成圖片。後面會再分別介紹AE再圖像和天然語言處理中的應用。

相關文章
相關標籤/搜索