變分自編碼器(variational autoencoder灼狰,VAE)理解

計算機視覺課程的閱讀作業(yè)交胚,要求提交slides。

參考資料:

1? 從零上手變分自編碼器(VAE)

2?Tutorial - What is a variational autoencoder? – Jaan Altosaar

3?Variational Autoencoders Explained

4?變分自編碼器(一):原來是這么一回事 - 科學空間|Scientific Spaces

1 背景

1.1 應用場景

? ?VAE被廣泛用于多媒體生成杯活,包括圖像生成轩猩,音頻合成等荡澎。

VAE生成的人臉

1.2 要解決的問題

? ? 我們現(xiàn)在期望用一個網(wǎng)絡來生成貓的圖片彤委,我們可以使用如下圖所示的結(jié)構(gòu)或衡,該網(wǎng)絡由一些反卷積層(一種上采樣方法,其輸出比輸入的維數(shù)更高)構(gòu)成,輸入是全1的向量孩革,通過訓練,我們可以最小化網(wǎng)絡的輸出與目標圖片的均方誤差。這樣,當我們將全1向量輸入訓練好的網(wǎng)絡后蒲跨,就能得到這張貓的圖片或悲,也就是說隆箩,這張圖片的信息已被存儲在網(wǎng)絡的參數(shù)中羔杨。

用網(wǎng)絡生成特定的圖片

? ? 但是我們不滿足于此兜材,我們還希望能生成更多的圖片曙寡,甚至是訓練集外的圖片举庶。為了完成這樣的任務,顯然輸入向量不能再是唯一的全1向量了镀琉,我們需要更多的輸入向量屋摔。一個簡單的解決方法是钓试,輸入隨機選擇的實向量,對應不同的訓練集圖片恋谭,比如挽鞠,用[3.3, 4.5, 2.1, 9.8] 表示貓的圖片滞谢,用[3.4, 2.1, 6.7, 4.2] 表示狗的圖片狮杨。這種隨機選擇輸入向量的方式顯然是不夠好的。因為輸入向量和目標圖片沒有任何因果關系清寇,除了已經(jīng)儲存過的圖片华烟,我們不知道如何選擇輸入向量盔夜,去產(chǎn)生新的圖片堤魁。

? ? 標準自編碼器給出了一種產(chǎn)生輸入向量的方法:既然人工選擇輸入向量很困難喂链,我們讓神經(jīng)網(wǎng)絡幫我們做這件事。如下圖所示妥泉,在標準自編碼器中椭微,先由encoder將原始圖片變換為低維的隱變量,再由decoder將隱變量還原為原始圖片盲链。這里的隱變量也就是剛才提到的輸入向量蝇率。此時,隱變量是由原始圖片經(jīng)過編碼生成的刽沾,一定程度上具備了因果關系本慕,但是我們?nèi)匀缓茈y根據(jù)訓練得到的隱變量去生成新的圖片悠轩,因為我們沒有對隱變量進行任何約束间狂,圖片對應的隱變量分布可能是任意的。

標準自編碼器

2 VAE方法

2.1 主要思路

? ? 為了解決生成新圖片的問題火架,我們需要對自編碼器進行改進鉴象。

????1文指出忙菠,VAE的主要目的是為數(shù)據(jù)的隱變量加上先驗;3文指出纺弊,VAE區(qū)別傳統(tǒng)自編碼器的一個重要特征是牛欢,它將隱變量限制為一個標準正態(tài)分布。以上兩種說法是吻合的淆游。

? ? 當然傍睹,4文指出,VAE的核心假設是p(Z|X)(后驗分布)是正態(tài)分布犹菱,這一點確實有道理拾稳,但是通過計算可以發(fā)現(xiàn),此時腊脱,隱變量的分布確實也是標準正態(tài)分布访得。因此,本文不深究VAE的初衷到底是哪一種陕凹。

? ? 至此悍抑,我們可以說,VAE對于上述問題的解決方案就是杜耙,限制encoder生成的隱變量都服從正態(tài)分布搜骡,且盡可能逼近標準正態(tài)分布。此時佑女,生成一幅新圖片將變得很簡單记靡,只需要從標準正態(tài)分布中采樣出一個隱變量,再將隱變量輸入decoder即可珊豹。

? ? VAE的結(jié)構(gòu)如下圖所示:

為了使模型具有生成能力簸呈,VAE要求每個p(Z|X)都向正態(tài)分布看齊??

我們可以看到榕订, 在VAE中店茶,encoder不再直接生成隱變量Z,轉(zhuǎn)而生成一個分布qphi(Z|Xi)劫恒,隱變量由qphi(Z|Xi)采樣得到贩幻。3文指出,這種做法除了能使我們生成隨機的隱變量两嘴,而且提高了網(wǎng)絡的泛化能力丛楚。

為了提高網(wǎng)絡的泛化能力,即要求網(wǎng)絡能很好地生成訓練集之外的圖片憔辫,要得到訓練集外的圖片趣些,就要求decoder輸入的隱變量與訓練中所得到的不同,此時贰您,可以看做是隱變量產(chǎn)生了噪聲坏平。即我們希望decoder對輸入的噪聲具有魯棒性拢操,如果encoder輸出的只有均值那一項,則VAE退化為標準自編碼器舶替,decoder對輸入噪聲沒有魯棒性令境;但是encoder能同時輸出均值mu和方差sigma^2時,相當于在訓練過程中為decoder的輸入加上了方差為sigma^2的噪聲(且由于qphi(Z|Xi)要盡量靠近標準正態(tài)分布(方差為1)顾瞪,這就克服了自編碼器天然的“惰性”舔庶,即網(wǎng)絡很容易將方差學習為0)。

因此陈醒,在訓練階段惕橙,decoder為了減小訓練誤差,就必須學會克服噪聲的干擾钉跷。從而使訓練好的decoder具有良好的魯棒性吕漂。

但是上述泛化能力與減小網(wǎng)絡的訓練誤差是相互矛盾的,因為假如沒有“qphi(Z|Xi)要盡量靠近標準正態(tài)分布(方差為1)”這一約束尘应,網(wǎng)絡會趨向于將方差學習為0惶凝,因為噪聲的存在會增加網(wǎng)絡擬合的難度。因此犬钢,在實際應用中苍鲜,我們需要權(quán)衡網(wǎng)絡能達到的訓練精度以及隱變量逼近正態(tài)分布的程度。這種權(quán)衡玷犹,也正是機器學習算法經(jīng)常遇到的訓練誤差和泛化能力的權(quán)衡混滔。對應損失函數(shù)中的重建誤差和正則化項。我們將通過x得到分布qphi(z|x)再得到z的這一過程看做是編碼器歹颓,而通過z還原x的這一過程坯屿,也就是從分布ptheta(x|z)中得出x的過程,看做是解碼器巍扛。ptheta(z) 表示z的先驗分布领跛,在VAE中,ptheta(z) 被設置為標準正態(tài)分布撤奸。

上式中的L稱為變分下限吠昭,優(yōu)化目標是使變分下限最大

由上述推導可知胧瓜,正則化項需要刻畫qphi(Z|Xi)與標準正態(tài)分布(先驗分布ptheta(z))的相似度,VAE使用了KL散度來度量府喳,即上式中的第一項,簡單說,KL散度可以用來度量兩個分布的逼近程度强胰,且KL散度越小,兩個分布越接近妹沙。上式中的第二項是decoder的輸出是原數(shù)據(jù)點的對數(shù)似然偶洋,再求期望,這就對應重建誤差(該似然越大距糖,說明decoder產(chǎn)生原始數(shù)據(jù)的可能性越大玄窝,即重建誤差越小)悍引,即最大化decoder輸出原數(shù)據(jù)點的可能性恩脂,相當于最小化重建誤差。需要注意的是趣斤,我們的優(yōu)化目標為最大化上述L俩块。

2.2 概率視角

?接下來我們用更數(shù)學化的語言描述VAE。

生成模型的目的是要求解數(shù)據(jù)與隱變量間的聯(lián)合密度浓领,即p(x,z)玉凯,有p(x,z)=p(x∣z)p(z),此時联贩,生成過程變?yōu)椋?/p>

先產(chǎn)生zi~p(z)漫仆,再產(chǎn)生xi~p(x|z),這就需要估計隱變量的分布p(z)泪幌,而p(z)=p(z∣x)p(x)盲厌,但p(z|x)通常難以計算,因此祸泪,VAE引入另外一個參數(shù)phi和對應的分布qphi(z|x)吗浩,以估計p(z|x),記p(z|x)的參數(shù)為theta没隘,則p(z|x)可寫為ptheta(z|x)懂扼。

VAE的概率圖模型

參數(shù)phi和theta就是深度網(wǎng)絡模型中各個神經(jīng)網(wǎng)絡單元的參數(shù),也就是我們要優(yōu)化的參數(shù)升略。優(yōu)化模型中參數(shù)phi和theta的過程如下微王,注意這里引入了變分下限:


這里應用了變分推斷的技巧,等式左側(cè)是數(shù)據(jù)集內(nèi)某一條數(shù)據(jù)出現(xiàn)的概率的對數(shù)品嚣,是一個無法被計算的常數(shù),等式右側(cè)第一項KL散度表示qphi(z|x)對ptheta(z|x)的逼近程度钧大,是我們想要優(yōu)化(最小化)的對象翰撑,第二項往往被稱作evidence lower bound (ELBO,變分下限)。優(yōu)化的目標是使變分下限最大眶诈,這樣在等式左側(cè)不變的情況下涨醋,KL散度就能取到最小。

經(jīng)過推導逝撬,變分下限又可寫為如下形式,與之前得到的式子相同宪潮。

2.3 關于Reparameterization trick

????1文中將Reparameterization trick(下稱RT)的目的描述為:從分布中采樣這個操作是無法求偏導的梯轻,利用BP算法優(yōu)化模型的時候尽棕,梯度將無法計算。 即:RT是我們在實現(xiàn)模型時使用的技巧伊诵。

????即下圖中的一般采樣無法求導日戈,而RT采樣可以對mu和sigma求導浙炼,在筆者看來唯袄,encoder為了得到一個正態(tài)分布,必然是通過生成其均值和標準差(即正態(tài)分布的兩個參數(shù))來實現(xiàn)的资厉。不同之處在于宴偿,在一般采樣中窄刘,得到均值和標準差后舷胜,很自然的,從均值和標準差這兩個參數(shù)確定的正態(tài)分布中采樣得到z即可材泄,但由于采樣過程的存在吨岭,計算梯度時將無法求偏導;因此旦事,在RT采樣中族檬,將正態(tài)分布N(mu,sigma^2)重新參數(shù)化為mu和sigma(也是Reparameterization trick 名字的由來)化戳,encoder產(chǎn)生到mu和sigma即可,此時z可對mu和sigma求偏導扫尖。


一般采樣
Reparameterization trick采樣

3 實驗

原論文在人臉和手寫數(shù)字集上進行了實驗换怖,下面的圖是在標準正態(tài)分布采樣得到z后沉颂,輸入decoder得到的結(jié)果铸屉,可見VAE能生成與原數(shù)據(jù)集類似的新圖片切端。


4 結(jié)論

提出了一種生成模型——變分自編碼器

從實驗結(jié)果看昌屉,該方法能較好地解決圖片生成問題茵瀑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瘾婿,一起剝皮案震驚了整個濱河市偏陪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌笛谦,老刑警劉巖饥脑,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灶轰,死亡現(xiàn)場離奇詭異,居然都是意外死亡乳附,警方通過查閱死者的電腦和手機伴澄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門举农,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颁糟,“玉大人喉悴,你說我怎么就攤上這事〖耄” “怎么了起惕?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵咏删,是天一觀的道長督函。 經(jīng)常有香客問我激挪,道長垄分,這世上最難降的妖魔是什么娃磺? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任偷卧,我火速辦了婚禮,結(jié)果婚禮上坐求,老公的妹妹穿的比我還像新娘桥嗤。我一直安慰自己派任,他們只是感情好,可當我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著篓像,像睡著了一般皿伺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奠滑,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天,我揣著相機與錄音讼油,去河邊找鬼。 笑死乏屯,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蛤迎。 我是一名探鬼主播忘苛,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼召川!你這毒婦竟也來了荧呐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤概疆,失蹤者是張志新(化名)和其女友劉穎岔冀,沒想到半個月后概耻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡侦高,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瞧壮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呐萌。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡罗晕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出法褥,到底是詐尸還是另有隱情,我是刑警寧澤半等,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站切距,受9級特大地震影響谜悟,放射性物質(zhì)發(fā)生泄漏葡幸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一贺氓、第九天 我趴在偏房一處隱蔽的房頂上張望蔚叨。 院中可真熱鬧,春花似錦掠归、人聲如沸缅叠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肤粱。三九已至,卻和暖如春厨相,著一層夾襖步出監(jiān)牢的瞬間领曼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工蛮穿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留庶骄,地道東北人践磅。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓肺樟,卻偏偏與公主長得像卡儒,于是被迫代替她去往敵國和親硬爆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內(nèi)容