深度学习之自编码器(4)变分自编码器
深度學(xué)習(xí)之自編碼器(4)變分自編碼器
- 1. VAE原理
?基本的自編碼器本質(zhì)上是學(xué)習(xí)輸入 x\boldsymbol xx和隱藏變量 z\boldsymbol zz之間映射關(guān)系,它是一個 判別模型(Discriminative model), 并不是生成模型(Generative model)。那么能不能將自編碼器調(diào)整為生成模型,方便地生成樣本呢?
?給定隱藏變量的分布 P(z)\text{P}(\boldsymbol z)P(z),如果可以學(xué)習(xí)到條件概率分布 P(x∣z)\text{P}(\boldsymbol x|\boldsymbol z)P(x∣z),則通過對聯(lián)合概率分布 P(x,z)=P(x∣z)P(z)\text{P}(\boldsymbol x,\boldsymbol z)=\text{P}(\boldsymbol x|\boldsymbol z)\text{P}(\boldsymbol z)P(x,z)=P(x∣z)P(z)進(jìn)行采樣,生成不同的樣本。 變分自編碼器(Variational Auto-Encoders,簡稱VAE)就可以實現(xiàn)此目的,如下圖所示:
VAE模型結(jié)構(gòu)
?如果從神經(jīng)網(wǎng)絡(luò)的角度來理解的話,VAE和前面的自編碼器一樣,非常直觀好理解;但是VAE的理論推導(dǎo)稍復(fù)雜,接下來我們先從神經(jīng)網(wǎng)絡(luò)的角度取闡述VAE,再從概率角度去推導(dǎo)VAE。
?從神經(jīng)網(wǎng)絡(luò)的角度來看,VAE相對于自編碼器模型,同樣具有編碼器和解碼器兩個子網(wǎng)絡(luò)。解碼器接受輸入x\boldsymbol xx,輸出為隱變量z\boldsymbol zz;解碼器負(fù)責(zé)將隱變量z解碼為重建的xˉ\bar\boldsymbol xxˉ。不同的是,VAE模型對隱變量z\boldsymbol zz的分布有顯式地約束,希望隱變量z\boldsymbol zz符合預(yù)設(shè)的先驗分布P(z)\text{P}(\boldsymbol z)P(z)。因此,在損失函數(shù)的設(shè)計上,除了原有的重建誤差項,還添加了隱變量z\boldsymbol zz分布的約束項。
1. VAE原理
?從概率的角度,我們假設(shè)任何數(shù)據(jù)集都采樣自某個分布p(x∣z)p(\boldsymbol x|\boldsymbol z)p(x∣z),z\boldsymbol zz是隱藏變量,代表了某種內(nèi)部特征,比如手寫數(shù)字的圖片x\boldsymbol xx,z\boldsymbol zz可以表示字體的大小、書寫風(fēng)格、加粗、斜體等設(shè)定,它符合某個先驗分布p(z)p(\boldsymbol z)p(z),在給定具體隱藏變量z\boldsymbol zz的情況下,我們可以從學(xué)到了分布p(x∣z)p(\boldsymbol x|\boldsymbol z)p(x∣z)中采樣一些列的生成樣本,這些樣本都具有z\boldsymbol zz所表示的共性。
總結(jié)
以上是生活随笔為你收集整理的深度学习之自编码器(4)变分自编码器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习之自编码器(3)自编码器变种
- 下一篇: 深度学习之生成对抗网络(1)博弈学习实例