深度学习之自编码器(3)自编码器变种
深度學習之自編碼器(3)自編碼器變種
- 1. Denoising Auto-Encoder
- 2. Dropout Auto-Encoder
- 3. Adversarial Auto-Encoder
?一般而言,自編碼器網絡訓練較為穩定,但是由于損失函數是直接度量重建樣本與真實樣本的底層特征之間的距離,而不是評價重建樣本的逼真度和多樣性等抽象指標,因此在某些任務上效果一般,如圖片重建,容易出現重建圖片邊緣模糊,逼真度相對真實圖片仍有不小差距。為了嘗試讓自編碼器學習到數據的真是分布,產生了一系列的自編碼器變種網絡。下面將介紹集中典型的自編碼器變種模型。
1. Denoising Auto-Encoder
?為了防止神經網絡記憶住輸入數據的底層特征,Denoising Auto-Encoder給輸入數據添加隨機的噪聲擾動,如給輸入x\boldsymbol xx添加采樣自高斯分布的噪聲ε\varepsilonε:
x~=x+ε,ε~N(0,var)\tilde\boldsymbol x=\boldsymbol x+ε,ε\sim\mathcal N(0,\text{var})x~=x+ε,ε~N(0,var)
添加噪聲后,網絡需要從x~\tilde\boldsymbol xx~學習到數據的真實隱藏變量z\boldsymbol zz,并還原出原始的輸入x\boldsymbol xx,如下圖所示:
?模型的優化目標為:
θ?=argmin?θdist(hθ2(gθ1(x~)),x)θ^*=\underbrace{\text{argmin}}_θ \ \text{dist}(h_{θ_2} (g_{θ_1} (\tilde\boldsymbol x)),\boldsymbol x)θ?=θargmin???dist(hθ2??(gθ1??(x~)),x)
2. Dropout Auto-Encoder
?自編碼器網絡同樣面臨過擬合的風險,Dropout Auto-Encoder通過隨機斷開網絡的連接來減少網絡的表達能力,防止過擬合。Dropout Auto-Encoder實現非常簡單,通過在網絡層中插入Dropout層即可實現網絡連接的隨機斷開。
3. Adversarial Auto-Encoder
?為了能夠方便地從某個一致某個已知的先驗分布中p(z)p(\boldsymbol z)p(z)采樣隱藏變量z,方便利用p(z)p(\boldsymbol z)p(z)來重建輸入,對抗自編碼器(Adversarial Auto-Encoder)利用額外的判別器網絡(Discriminator,簡稱D網絡)來判定降維的隱藏變量z\boldsymbol zz是否采樣自先驗分布p(z)p(\boldsymbol z)p(z),如下圖所示。判別器網絡的輸入為一個屬于[0,1][0,1][0,1]區間的變量,表征隱藏向量是否采樣自先驗分布p(z)p(\boldsymbol z)p(z):所有采樣自先驗分布p(z)p(\boldsymbol z)p(z)的z\boldsymbol zz標注為真,采樣自編碼器的條件概率q(z∣x)q(\boldsymbol z|\boldsymbol x)q(z∣x)的標注z\boldsymbol zz為假。通過這種方式訓練,處理可以重建樣本,還可以約束條件概率分布q(z∣x)q(\boldsymbol z|\boldsymbol x)q(z∣x)逼近先驗分布p(z)p(\boldsymbol z)p(z)。
對抗自編碼器是從下一章要介紹的生成對抗網絡算法衍生而來,在學習完對抗生成網絡后可以加深對對抗自編碼器的理解。
總結
以上是生活随笔為你收集整理的深度学习之自编码器(3)自编码器变种的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么掌握python字符串
- 下一篇: 深度学习之自编码器(4)变分自编码器