VAE的理解
轉(zhuǎn)述記錄
參考文章
https://arxiv.org/pdf/1312.6114.pdf
https://dfdazac.github.io/01-vae.html
https://spaces.ac.cn/tag/vae/
https://cloud.tencent.com/developer/article/1096650
自編碼模型,輸入是數(shù)據(jù)X,經(jīng)過(guò)網(wǎng)絡(luò)生成中間變量,然后通過(guò)中間表示,再去生成數(shù)據(jù)X’,最終是使用重構(gòu)Loss,讓輸入數(shù)據(jù)X與生成數(shù)據(jù)X’之間差距變小。
VAE將自編碼模型做了改進(jìn),輸入數(shù)據(jù)是X,然后求X下的一個(gè)高斯分布,如何求呢,使用了兩個(gè)神經(jīng)網(wǎng)絡(luò),分別預(yù)測(cè)了X下均值μ和方差σ,這樣就形成了均值μ,方差σ一個(gè)高斯分布,然后正常想法是,將這個(gè)高斯分布進(jìn)行隨機(jī)取樣作為中間表示(隱向量),【相比于自編碼器,在高斯分布中隨機(jī)取值呢能夠使得輸入相同數(shù)據(jù),得到的中間表示形式是在一個(gè)高斯范圍內(nèi)的,這使得可以操縱中間表示(隱向量),通過(guò)改變一個(gè)樣本的編碼而產(chǎn)生一定程度的局部變化,導(dǎo)致在局部尺度上潛在空間的平滑,即產(chǎn)生相似的樣本?!咳缓笤偃ド蓴?shù)據(jù)X’,但是隨機(jī)取樣這個(gè)行為,在網(wǎng)絡(luò)里是不可導(dǎo)的,所以采用了重采樣技術(shù),通過(guò)添加服從0~1分布的高斯噪聲ε,利用μ+σε來(lái)代替隨機(jī)采樣的行為,也就是,相當(dāng)于ε是隨機(jī)參數(shù),這樣網(wǎng)絡(luò)就可以優(yōu)化μ和σ這兩個(gè)參數(shù),μ+σε成為一種中間表示,(sampling from Z~N(μ, σ^2) is the same as sampling from μ + σX, X~(0,1))再去生成對(duì)應(yīng)于該分布下的輸出數(shù)據(jù)X’。整個(gè)網(wǎng)絡(luò)的損失,一部分是跟自編碼器一樣的重構(gòu)損失,目的是為了保證X和X’的一致性。另一方面是希望預(yù)測(cè)的高斯分布與標(biāo)準(zhǔn)正太分布趨近,所以求其KL損失。

原始的自編碼模型,會(huì)使得兩個(gè)類別之間的推理表示不能生成合理結(jié)果,也可以說(shuō)沒(méi)有泛化性,例如:已有0和8這兩個(gè)數(shù)字的編碼,我們對(duì)這兩個(gè)編碼進(jìn)行加權(quán)求值得到一個(gè)中間表示,放到解碼器中,自編碼模型沒(méi)有辦法預(yù)測(cè)合理結(jié)果。這是因?yàn)樵谠甲跃幋a器中,不同數(shù)字的中間表示(隱向量)之間完全沒(méi)有重疊,因此無(wú)法生成中間結(jié)果 。如下如的1和7的編碼聚類結(jié)果之間沒(méi)有重疊。

VAE模型通過(guò)使用讓中間表示從X預(yù)測(cè)的高斯分布分布中采樣,從而來(lái)增加中間表示的噪聲(采樣過(guò)程中獲得的噪聲),同時(shí)這增加了不同類別之間的重疊度,使得網(wǎng)絡(luò)能夠?qū)W習(xí)到幾個(gè)不同類別之間生成圖像的變化。
可以自己思考下下面問(wèn)題
為什么要求高斯分布?
為什么要求分布要趨近正態(tài)分布?