注:作者:哈工大scir 蔡碧波。
原文中將變分下界寫為“EOLB”雷厂,屬筆誤鸦概,這里已經(jīng)修正為ELBO。
0. 背景
機(jī)器學(xué)習(xí)模型可以主要分為判別模型與生成模型阎肝,近年來隨著圖像生成挤渔、對(duì)話回復(fù)生成等任務(wù)的火熱,深度生成模型越來越受到重視风题。變分自編碼器(VAE)作為一種深度隱空間生成模型判导,在數(shù)據(jù)生成任務(wù)上與生成對(duì)抗網(wǎng)絡(luò)(GAN)一并受到研究者的青睞。VAE(Kingma and Welling.2013)先將原始數(shù)據(jù)編碼到符合特定分布的隱變量中,再根據(jù)生成的隱變量概率分布沛硅,還原原始數(shù)據(jù)的近似概率分布眼刃。由于VAE是一種無監(jiān)督模型,只能生成與輸入類似的輸出數(shù)據(jù)摇肌,故研究者提出條件變分自編碼器CVAE(Sohn et al.,2015)擂红,將原始數(shù)據(jù)以及其對(duì)應(yīng)的類別共同作為編碼器的輸入,可以用于指定類別的數(shù)據(jù)的生成围小。利用CVAE就可以生成符合特定視覺特征的圖片(Yan et al.2016)昵骤。VAEs方法最初應(yīng)用于CV中树碱,在自然語言處理領(lǐng)域,(Bowman et al.,2015)首次利用VAE進(jìn)行文本生成变秦。(Zhao et al.,2017)將CVAE用于對(duì)話生成中成榜,增強(qiáng)了生成回復(fù)的多樣性。
1. 基本思想
目前有很多任務(wù)都有著one-to-many的性質(zhì)蹦玫。比如在圖像任務(wù)中赎婚,希望能夠根據(jù)給定的膚色生成不同的人臉圖片;在自然語言處理任務(wù)中钳垮,給定上文惑淳,希望能夠生成不同的回復(fù)等。由于這些任務(wù)中有多種變化的因素饺窿,故對(duì)相同的輸入歧焦,可以有不同卻均合理的結(jié)果。
上圖(Zhao et al.,2017)展示了一個(gè)在對(duì)話生成任務(wù)中有多種回復(fù)的例子肚医,A同學(xué)提問“你的愛好是什么绢馍?”,由于回復(fù)的人可能有著不同的愛好肠套,有不同的聊天習(xí)慣導(dǎo)致其有多種回復(fù)形式舰涌。CVAE模型作為一種深度條件生成模型,引入了隱變量來捕捉這種一對(duì)多問題中的變化的因素你稚。從概率圖模型的角度可以將生成過程描述如下(Kingma and Welling.2013):
其將給定的上下文/膚色看作生成的條件瓷耙,在生成過程中,其首先從一個(gè)條件先驗(yàn)分布
中采樣得到隱變量
刁赖,然后將隱變量
和條件
作為生成網(wǎng)絡(luò)的輸入來生成回復(fù)/圖片搁痛。由于重采樣可以得到不同的隱變量,故可以獲得不同的生成的結(jié)果宇弛。
2. 模型架構(gòu)與概率圖架構(gòu)
在具體介紹CVAE的數(shù)學(xué)原理前鸡典,我們先從整體的角度了解一下CVAE模型的整體架構(gòu),對(duì)其有大體的認(rèn)識(shí)。而模型的建模過程跟概率圖結(jié)構(gòu)是保持一致的枪芒。在對(duì)話生成任務(wù)中彻况,cvae模型在訓(xùn)練階段和測(cè)試階段的前饋網(wǎng)絡(luò)框架如圖所示(Zhao et al.,2017)。
cvae的核心在于用神經(jīng)網(wǎng)絡(luò)對(duì)分布進(jìn)行擬合舅踪。圖中黃色的部分表示將回復(fù)句編碼為y纽甘,紫色部分表示將輸入的上下文編碼為x,將隱變量和
的拼接起來作為decoder的輸入向量抽碌,生成回復(fù)的句子贷腕。隱變量
由prior/recognition net采樣而來。
- prior/recognition net實(shí)際上是MLP,其輸出的值為分布的具體參數(shù)泽裳。如此例中假設(shè)隱變量服從的是一個(gè)高維高斯分布且其方差為對(duì)角矩陣, 則MLP的輸出為
和
瞒斩。
- 所謂的采樣指的是從服從
的分布中采樣一個(gè)向量,由于直接采樣是斷微分的涮总,故如下文所述胸囱,這里往往采取所謂的reparameterion trick,即采樣由標(biāo)準(zhǔn)正態(tài)分布的變量變換而來瀑梗,即
且
烹笔。
實(shí)際的模型與概率圖模型是一致的,前向先驗(yàn)概率對(duì)應(yīng)圖中的prior network抛丽,后驗(yàn)概率p(z|y,x)對(duì)應(yīng)圖中的recognition network(Kingma and Welling.2013)谤职。
以KL散度為優(yōu)化目標(biāo)可以使先驗(yàn)概率和后驗(yàn)概率盡量逼近,那么先驗(yàn)即可以與后驗(yàn)生成較為相似的隱變量亿鲜。
decoder端對(duì)應(yīng)于概率p(y|x,z),將隱變量與對(duì)話上文拼接起來作為其輸入允蜈,對(duì)解碼的結(jié)果進(jìn)行極大似然優(yōu)化即可。
由于測(cè)試階段輸出不可見蒿柳,所以需從先驗(yàn)分布中對(duì)隱變量進(jìn)行采樣饶套。其余部分與訓(xùn)練階段的網(wǎng)絡(luò)結(jié)構(gòu)完全相同。
3. 數(shù)學(xué)原理
變分自編碼的方法核心其實(shí)是利用深度神經(jīng)網(wǎng)絡(luò)對(duì)概率分布進(jìn)行擬合垒探,優(yōu)化目標(biāo)為最大化變分下界妓蛮。由于CVAE由VAE變化而來,而ELBO是他們共同的優(yōu)化目標(biāo)圾叼,所以這里從ELBO出發(fā)蛤克,先介紹VAE,再過渡到CVAE夷蚊。
3.1 變分下界ELBO(evidence of lower bound)
在我們接觸機(jī)器學(xué)習(xí)時(shí)咖耘,最先接觸隱變量這個(gè)詞是在EM算法中。變分自編碼器與EM算法一脈相承撬码。我們考慮一個(gè)概率模型,其中所有觀測(cè)變量(可以理解為高維向量)聯(lián)合起來記為, 我們的目標(biāo)是對(duì)高維向量的分布進(jìn)行擬合版保,以最大化似然函數(shù)作為優(yōu)化目標(biāo)
呜笑。這里我們假設(shè)數(shù)據(jù)服從獨(dú)立同分布假設(shè),那么該似然函數(shù)就是每個(gè)數(shù)據(jù)點(diǎn)的邊際似然函數(shù)的和彻犁,即
叫胁。如果我們定義了隱變量
以及聯(lián)合分布
,且該分布的參數(shù)由
控制,那么每個(gè)數(shù)據(jù)點(diǎn)的邊際似然就可以寫為
汞幢。
所以什么是變分下界驼鹅?如果我們?yōu)?strong>每個(gè)數(shù)據(jù)點(diǎn)引入函數(shù)(可以為定義在
上的任意分布)。即可以將
分解為如下兩項(xiàng)之和(Bishop,2006)
其中
由于KL散度滿足,且當(dāng)且僅當(dāng)
時(shí)成立输钩,所以
是
的一個(gè)變分下界豺型,也叫做ELBO(evidence of lower bound)(Bishop,2006)。
另外也可以利用jensen不等式來構(gòu)造變分下界买乃,使用來構(gòu)造jensen的基本形式即可姻氨。
根據(jù)jenson不等式的取等條件有當(dāng)且僅當(dāng)時(shí)取等。
值得強(qiáng)調(diào)的是剪验,變分下界是和
的函數(shù)肴焊,而
的值僅由
決定。
所以EM算法就是根據(jù)變分下界來進(jìn)行兩階段的優(yōu)化功戚,如果后驗(yàn)分布可以被計(jì)算出來(如為混合高斯分布)娶眷,那么即可以使用EM算法進(jìn)行優(yōu)化求解。
- 在E步啸臀,取
届宠,此時(shí)KL散度為0。在
下變分下界
與
的值相等壳咕。
- 在M步以
為變量最大化變分下界
席揽,由于其是一個(gè)下界,此時(shí)
必然也增大谓厘。
通過E步和M步的不斷迭代幌羞,即可使得的值不斷增大,直到收斂竟稳。
3.2 不可計(jì)算問題與變分自編碼器
上述提到属桦,只有當(dāng)后驗(yàn)概率是可計(jì)算的時(shí)候方可使用EM算法進(jìn)行求解。但是對(duì)于實(shí)際應(yīng)用中的很多模型來說他爸,計(jì)算后驗(yàn)概率分布或者計(jì)算關(guān)于這個(gè)后驗(yàn)概率的期望是不可行的聂宾。 例如在連續(xù)變量的情形中,需要求解的積分可能沒有解析解诊笤,而空間維度和被積函數(shù)的復(fù)雜度較高導(dǎo)致數(shù)值積分不可行系谐。如(Kingma and Welling.2013)的appendix C中所給的例子,分布的參數(shù)由mlp導(dǎo)出讨跟;對(duì)于離散變量纪他,求邊緣概率涉及到對(duì)隱變量的所有取值進(jìn)行求和,但是實(shí)際應(yīng)用中往往隱變量的數(shù)量為指數(shù)級(jí)晾匠,計(jì)算代價(jià)過高茶袒。
所以此時(shí)往往考慮對(duì)進(jìn)行近似推斷。我們可以將
的范圍限制為某一個(gè)函數(shù)族凉馆,如限定
服從高斯分布薪寓。那么可以將與數(shù)據(jù)點(diǎn)
對(duì)應(yīng)的
記為
亡资。這里
表征了
對(duì)應(yīng)的高斯分布的參數(shù)
與
之間的映射關(guān)系。
那么上述的變分下界可以寫為:
對(duì)上式稍作變換向叉,可以寫為也:
以為參數(shù)對(duì)變分下界最大化即可達(dá)到對(duì)原
進(jìn)行近似優(yōu)化的目的。那么變分下界關(guān)于
的導(dǎo)數(shù)該如何進(jìn)行求導(dǎo)植康?如(Kingma and Welling.2013)appendix B所示旷太,KL部分往往是可以解析的進(jìn)行求導(dǎo)的,重點(diǎn)是重構(gòu)誤差
該如何求導(dǎo)销睁。
(Bishop,2006)中提出可以reparameterization trick來解決供璧。可以將該trick理解為一種變量代換的方法冻记,也就是將原先的一個(gè)固定分布經(jīng)過一個(gè)可導(dǎo)變換睡毒,變換為服從的分布。比如我們可以將標(biāo)準(zhǔn)正態(tài)分布轉(zhuǎn)換為任意正態(tài)分布冗栗,即對(duì)于
演顾,
,這里
隅居。注意钠至,如果我們直接從
中采樣,該結(jié)果對(duì)
是不可導(dǎo)的胎源,但是通過這種變量代換的方式棉钧,分布的參數(shù)
直出現(xiàn)在了計(jì)算式種,是可導(dǎo)的涕蚤。
此時(shí)就可以用蒙特卡洛方法對(duì)重構(gòu)誤差進(jìn)行估計(jì)宪卿,令為采樣的次數(shù),那么重構(gòu)誤差近似于:
在實(shí)際實(shí)驗(yàn)中万栅,數(shù)據(jù)以minibatch的方式送入模型進(jìn)行訓(xùn)練佑钾,(Kingma and Welling.2013)中提到,只要batch size足夠大(如100)烦粒,那么可以將采樣的次數(shù)設(shè)置為1休溶,如果是分類任務(wù),那么此時(shí)所估計(jì)的重構(gòu)誤差就與crossEntropyLoss無異了扰她。
下圖(Doersch,2016)展示了在使用reparameterization trick前后的整個(gè)變分下界的優(yōu)化過程兽掰。
在上圖中,先驗(yàn)分布實(shí)際上是沒有參數(shù)的义黎。
這里所謂的reparameterization trick即是從標(biāo)準(zhǔn)正態(tài)分布到任意正態(tài)分布的轉(zhuǎn)換公式,即對(duì)于豁跑,廉涕,這里泻云。
上圖即是VAE(變分自編碼器)的結(jié)構(gòu)圖。的輸出是的分布參數(shù)狐蜕,如回復(fù)生成中宠纯,對(duì)應(yīng)于詞表中每個(gè)詞的概率。
3.3 從變分自編碼器到條件變分自編碼器
條件變分自編碼器正是變分自編碼器的進(jìn)階版层释,但是其優(yōu)化思路一脈相承婆瓜。cvae的概率圖模型中,有三種變量贡羔,輸入變量,輸出變量
,隱變量
廉白。其生成過程為:對(duì)于給定的輸入x,先從先驗(yàn)分布
中采樣得到
乖寒,輸出
從分布
中生成猴蹂。
在cvae中,我們轉(zhuǎn)而對(duì)條件分布進(jìn)行建模楣嘁,優(yōu)化的目標(biāo)轉(zhuǎn)為最大化條件似然磅轻。
與vae相同,對(duì)于此目標(biāo)函數(shù)依然存在著后驗(yàn)概率不可計(jì)算問題逐虚,所以退而求其次聋溜,在一個(gè)受限的隱變量分布中使用變分方法對(duì)ELBO進(jìn)行優(yōu)化。下文中默認(rèn)該受限的分布為一個(gè)高維高斯分布叭爱。cvae的ELBO如下:
具體的推導(dǎo)請(qǐng)參考(Sohn et al.,2015)
使用蒙特卡洛的方法來計(jì)算期望撮躁,那么轉(zhuǎn)為:
這里
,
代表采樣的個(gè)數(shù)涤伐。
3.3.1 ELBO比較
VAE中的ELBO
CVAE中的ELBO
其差別主要是引入了條件x馒胆。統(tǒng)一來看,在ELBO中凝果,KL散度的兩項(xiàng)仍然分別是隱變量的先驗(yàn)和后驗(yàn)祝迂;期望部分對(duì)應(yīng)的是生成網(wǎng)絡(luò)的輸出的對(duì)數(shù)似然在隱變量的后驗(yàn)分布上的期望。
3.3.2 模型結(jié)構(gòu)圖
將ELBO中的每一項(xiàng)在結(jié)構(gòu)圖中找到對(duì)應(yīng)器净。對(duì)應(yīng)關(guān)系如下:
- 圖例中對(duì)
的先驗(yàn)分布
進(jìn)行了松弛型雳,將其設(shè)定為與x獨(dú)立,變?yōu)榱?img class="math-inline" src="https://math.jianshu.com/math?formula=p(z)%3DN(0%2C1)" alt="p(z)=N(0,1)" mathimg="1">故KL散度中的第二項(xiàng)為
山害。請(qǐng)注意纠俭,并不強(qiáng)制
假設(shè)x與z是相互獨(dú)立,如第2章中的圖示浪慌,我們可以使用一個(gè)神經(jīng)網(wǎng)絡(luò)對(duì)條件先驗(yàn)建模冤荆。
-
的后驗(yàn)分布
是一個(gè)多元高斯,其參數(shù)
由
經(jīng)過recognition net導(dǎo)出权纤。之后的reparameterization過程與VAE相同钓简。
- 生成過程
即docoder部分乌妒,以
作為輸入,輸出是
的分布參數(shù)外邓。比如回復(fù)生成任務(wù)中撤蚊,decoder在每個(gè)step生成一個(gè)單詞,即
符合multinomial分布损话,輸出即詞表中每個(gè)單詞的概率侦啸。此時(shí)蒙特卡洛一次采樣的結(jié)果與計(jì)算交叉熵?fù)p失的過程時(shí)一致的。
4 總結(jié)
cvae是一個(gè)將貝葉斯推斷方法與神經(jīng)網(wǎng)絡(luò)結(jié)合的很好的方法丧枪,有著優(yōu)美的數(shù)學(xué)推導(dǎo)戏仓。由于隱變量有著良好的靈活性腾供,便于對(duì)one-to-many的關(guān)系進(jìn)行建模,在一些生成任務(wù)中得到了廣泛的應(yīng)用。本文對(duì)CVAE的相關(guān)數(shù)學(xué)原理及網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了總結(jié)歸納臊诊,如有不妥當(dāng)之處匕积,還望各位老師同學(xué)多多批評(píng)指正芋绸。
參考文獻(xiàn)
[1] Tiancheng Zhao, Ran Zhao and Maxine Eskenazi. 2017. Learning Discourse-level Diversity for Neural Dialog Models using Conditional Variational Autoencoders. ACL.
[2] Diederik P Kingma, Max Welling. 2013. Auto-Encoding Variational Bayes. ICLR.
[3] Bishop, C. M. (2006). Pattern recognition and machine learning. Springer Science+ Business Media.
[4] Bowman, S. R., Vilnis, L., Vinyals, O., Dai, A. M., Jozefowicz, R., & Bengio, S. (2015). Generating sentences from a continuous space. arXiv preprint arXiv:1511.06349.
[5] Kihyuk Sohn, Honglak Lee, and Xinchen Yan. 2015. Learning structured output representation using deep conditional generative models. NeurIPS.
[6] Xinchen Yan, Jimei Yang, Kihyuk Sohn, Honglak Lee. 2016. Attribute2Image: Conditional Image Generation from Visual Attributes. ECCV.
[7] Sohn, K., Yan, X., & Lee, H. Supplementary Material: Learning Structured Output Representation using Deep Conditional Generative Models.
[8] Doersch, C. (2016). Tutorial on variational autoencoders. arXiv preprint arXiv:1606.05908.