VAE 中后验坍塌问题
目錄
后驗坍塌
ELBO?
!別怪ELBO,另有起因?
后驗坍塌
在貝葉斯模型世界(如VAE,pPCA),所擔心的不是神經網絡的“梯度消失”或“梯度爆炸”,而是“后驗失效”(posterior collapse)現象。本質上,任何模型(傳統或非傳統)都要從每個新樣本“汲取信息”,更新自身。當信息無法汲取并用來更新模型,就會出現上述問題。相對比較晦澀,簡單來說就是 z的生成已經擺脫了前邊encoder的影響,然后z直接輸出一個或多個從大部分樣本總結出來的幾種模式。該模型最終只依賴于解碼器的自回歸特性,而忽略了潛在變量,這變得無信息。
一般認為是因為解碼器q(x|z)太強了,訓練時重參數操作會引入噪聲,噪聲一大,z的利用會變得很困難,所以可能模型干脆不用z了,獨立于z去進行重建,這種情況下的VAE模型并沒有什么價值:KL散度為0說明編碼器輸出的是常數向量。而我們使用VAE通常來說是看中了它無監督構建編碼向量的能力,所以要應用VAE的話還是得解決KL散度消失問題。
“后驗失效”(posterior collapse)現象?? (With the help of better explanations provided in Z-Forcing: Training Stochastic Recurrent Networks:)
當后驗不坍塌時:?? (潛在變量的第d維)是從采樣得到的,其中是用神經網絡從輸入x的擬合的函數。
換句話說encoder部分,從x中提取有效的信息到中。
當后驗發生坍塌:?? 當輸入x的后驗參數的信號太弱或者噪聲太大,decoder就開始忽略從近似后驗中采樣的z。
- 噪聲過大意味著μd和σd是不穩定的,因此采樣的z值也是不穩定的,利用z太難,這迫使解碼器忽略它們,拋棄z,直接自行重構。我所說的“忽略”是指:解碼器x^的輸出幾乎與z無關,實際上可以認為產生一些通用的輸出x^,即所有所見x的粗略代表。
- 信號太弱: ? ,也就是說,后驗的μ和σ變得幾乎和輸入x沒有什么聯系,換句話說,μ和σ崩潰為常數值a,b。從而導致了是將一個與x不同的輸入的(常數)信號輸送給解碼器。最終這個z就沒有價值,解碼器試圖通過忽略從N(a,b)采樣的無用的z來重構x。
Z-Forcing: Training Stochastic Recurrent Networks:中描述,由于隨機梯度近似讓方差下降(variance induced by the stochastic gradient approximation),會導致后驗提供的信號太弱或噪聲太強。因此,解碼器可能學會忽略z,而僅僅依賴x的自回歸特性,使x和z相互獨立,即式2中的KL項消失。在不同的領域,如文本和圖像,經驗觀察到,當與強自回歸解碼器結合時,很難利用潛在變量。
Don’t Blame the ELBO!A Linear VAE Perspective on Posterior Collapse:中描述, VAE優化的一個主要問題是后塌陷,其中學習的變分分布接近于先驗。這降低了生成模型(encoder? ->? q(z|x))的容量,使得解碼器網絡無法利用所有潛在維度的信息內容。
?
ELBO?
?
VAE的變分推斷中,直接計算數據x的相似度邊際分布log p(x) 非常困難,但是可以用變分分布q(z|x)去估計后驗(實際上變分分布就是VAE的編碼器encoder),這就引出了VAE的目標函數,ELBO
log p(x)一定是大于ELBO的,那么讓ELBO最大就是VAE的最終解了:
通常認為ELBO的使用是使得后驗坍塌的原因
一般認為這個問題的根源看似就是ELBO目標函數。
分析ELBO的兩個部分似乎有些道理:?
這兩個部分在擬合后驗和保持自身分布之間尋找平衡。于是,如果產生“后驗失效”問題,許多人會把原因歸結為DKL這部分上(模型太注重保持原有z分布,而對新來數據也不予理睬,阻止模型的參數更新)。也就是說,如果(x|z)這個生成網絡太強了,拋棄利用encoder的近似后驗的q(z|x)而直接用模型的z,在表達式上,就是直接使后面的KL term就會被壓成0,也就是先驗和近似后驗相等了,這會使得VAE模型得到一個沒有意義的近似后驗分布,從而得到一個poor latent representation z,這導致了所謂的后驗坍塌現象。
本來理論上優化ELBO是可行的,但是在實際訓練中,會發現陷入ELBO目標的局部最優的情況,也就是會得到一個退化的solution:。這個后驗不再取決于數據x得到,不再通過encoder的近似后驗q(z|x)采樣得到。坍塌時,z和x本質上independent,因此對潛在變量的后驗估計不能代表對其數據的忠實總結faithful summaries——VAE沒有學習到良好的representations。當似然p(x|z)容量非常高的時候,也就是自回歸生成器非常強的時候,這個問題尤其突出。
?
ELBO表達式中,KL散度迫使變分分布趨向于模型先驗p(z),因此,這是許多文章試圖緩解后塌陷的合理焦點。下面的這篇2019的文章假設對數邊際可能性本身經常會導致后塌陷。
?
?
!別怪ELBO,另有起因?
?
而google今年NeurIPS 2019上的一篇文章批評了上述誤解,認為“后驗失效”不是任何ELBO項造成的,而是一開始用相似度邊際分布log p(x)就造成了“后驗失效”:
所以,如果一開始找錯目標,再尋求最好的平衡也無濟于事。一廂情愿地假設單個隱變量z,再用z求邊際分布來擬合真實分布,這種做法可能是導致“后驗失效”的真正原因。
因此,一個明顯的解決方法就是增加z分布的復雜度,而不是用單一高斯分布(可以是多態先驗等等~論文討論中提到)。
?
?
?
總結
以上是生活随笔為你收集整理的VAE 中后验坍塌问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 把默认桌面路径为C盘更换为别的盘,以便重
- 下一篇: 引申5“生命起源VS电影机械公敌VS大数