計算機視覺課程的閱讀作業(yè)交胚,要求提交slides。
參考資料:
2?Tutorial - What is a variational autoencoder? – Jaan Altosaar
3?Variational Autoencoders Explained
4?變分自編碼器(一):原來是這么一回事 - 科學空間|Scientific Spaces
1 背景
1.1 應用場景
? ?VAE被廣泛用于多媒體生成杯活,包括圖像生成轩猩,音頻合成等荡澎。
1.2 要解決的問題
? ? 我們現(xiàn)在期望用一個網(wǎng)絡來生成貓的圖片彤委,我們可以使用如下圖所示的結(jié)構(gòu)或衡,該網(wǎng)絡由一些反卷積層(一種上采樣方法,其輸出比輸入的維數(shù)更高)構(gòu)成,輸入是全1的向量孩革,通過訓練,我們可以最小化網(wǎng)絡的輸出與目標圖片的均方誤差。這樣,當我們將全1向量輸入訓練好的網(wǎng)絡后蒲跨,就能得到這張貓的圖片或悲,也就是說隆箩,這張圖片的信息已被存儲在網(wǎng)絡的參數(shù)中羔杨。
? ? 但是我們不滿足于此兜材,我們還希望能生成更多的圖片曙寡,甚至是訓練集外的圖片举庶。為了完成這樣的任務,顯然輸入向量不能再是唯一的全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中店茶,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)分布撤奸。
由上述推導可知胧瓜,正則化項需要刻畫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)懂扼。
參數(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求偏導扫尖。
3 實驗
原論文在人臉和手寫數(shù)字集上進行了實驗换怖,下面的圖是在標準正態(tài)分布采樣得到z后沉颂,輸入decoder得到的結(jié)果铸屉,可見VAE能生成與原數(shù)據(jù)集類似的新圖片切端。
4 結(jié)論
提出了一種生成模型——變分自編碼器
從實驗結(jié)果看昌屉,該方法能較好地解決圖片生成問題茵瀑。