首先假設壹個隱變量Z的分布,構建壹個從Z到目標數據X的模型,即構造,使學習到的目標數據的概率分布接近真實數據的概率分布。
VAE的結構圖如下:
VAE匹配高斯分布到每個樣本,隱藏變量從高斯分布中采樣。對於每個樣本,假設每個樣本的高斯分布為,問題是如何擬合這些分布。VAE構建了兩個神經網絡來擬合均值和方差。即擬合的原因是不需要添加激活功能。
此外,VAE使每個高斯分布盡可能接近標準高斯分布。擬合過程中的誤差損失通過KL散度來計算,具體推導如下:
VAE也非常類似於GMM(高斯混合模型),也是壹代模型。事實上,VAE可以被視為GMM的分布式代表版本。GMM是高斯分布的有限個隱變量的混合,而VAE可以看作是無限個隱變量的混合,隱變量可以是高斯的,也可以是非高斯的。
原始樣本數據的概率分布:
假設服從標準高斯分布,則先驗分布為高斯,即。是兩個函數,它們是相應高斯分布的均值和方差,是積分域內所有高斯分布的累加:
因為已知和未知,解題其實就是求這兩個函數。最初的目標是求解,希望越大越好,相當於求解最大對數似然:
但是可以轉化為:
這裏我們發現第二項實際上是sum的KL散度,也就是因為KL散度大於等於0,所以上面的公式可以進壹步寫成:
這樣,找到了壹個下限,這是公式的正確項,即:
原始公式也可以表示為:
為了讓它變大,目的是最大化它的下界。
回顧:
顯然,最大化等同於最小化和最大化。
第壹項,最小化KL散度:已經假設它服從標準高斯分布,服從高斯分布,所以可以通過代入計算得到:
進壹步求解上式中的積分其實是概率密度,概率密度函數的積分是1,那麽積分的第壹項等於;因為高斯分布的二階矩恰好對應於第二項積分。根據方差的定義,積分的第三項是-1。
最終的簡化結果如下:
第二,最大化預期。也就是說,在給定(編碼器輸出)的情況下,(解碼器輸出)的值盡可能高。
重參數技術;
最後,在模型實現的時候,有壹個多參數的竅門,就是當妳想從高斯分布抽樣的時候,實際上相當於從中間抽樣壹個,然後再計算。之所以這樣,是因為采樣的操作是不可導的,但是采樣的結果是可導的。通過進行參數變換,這可以參與梯度下降,並且可以訓練模型。
在條件變分自編碼器(CVAE)中,模型的輸出不是,而是對應於輸入的任務相關數據,但套路和VAE是壹樣的,最大似然估計變成:
那麽elbo(智力下界)就更進壹步:
網絡結構由三部分組成: