自動編碼器是一種有三層的神經網絡:輸入層、隱藏層(編碼層)和解碼層。該網絡的目的是重構其輸入,使其隱藏層學習到該輸入的良好表征。
自動編碼器神經網絡是一種無監督機器學習算法,其應用了反向傳播,可將目標值設置成與輸入值相等。自動編碼器的訓練目標是將輸入復制到輸出。在內部,它有一個描述用於表征其輸入的代碼的隱藏層。
自動編碼器的目標是學習函數 h(x)≈x。換句話說,它要學習一個近似的恆等函數,使得輸出 x^ 近似等於輸入 x。自動編碼器屬於神經網絡家族,但它們也和 PCA(主成分分析)緊密相關。
關於自動編碼器的一些關鍵事實:
- 它是一種類似於 PCA 的無監督機器學習算法
- 它要最小化和 PCA 一樣的目標函數
- 它是一種神經網絡
- 這種神經網絡的目標輸出就是其輸入
盡管自動編碼器與 PCA 很相似,但自動編碼器比 PCA 靈活得多。在編碼過程中,自動編碼器既能表征線性變換,也能表征非線性變換;而 PCA 只能執行線性變換。因為自動編碼器的網絡表征形式,所以可將其作為層用於構建深度學習網絡。
自動編碼器的類型:
1. 去噪自動編碼器
2. 稀疏自動編碼器
3. 變分自動編碼器(VAE)
4. 收縮自動編碼器(CAE/contractive autoencoder)
A. 去噪自動編碼器
這是最基本的一種自動編碼器,它會隨機地部分采用受損的輸入來解決恆等函數風險,使得自動編碼器必須進行恢復或去噪。