【原理】變分自編碼器

VAE是一種隱變量模型

隱變量模型

 廣義上的隱變量主要就是指“不能被直接觀察到,但是對系統的狀態和能觀察到的輸出存在影響的一種東西”。
 隱變量(latent variable)代表了隱因子(latent factor)的組合關係。

已知: 數據集DXD_X,其中每個點都屬於空間XSX_S。隱變量ZZSZ∈Z_S
假設: 有兩個變量,zZSz∈Z_SxXSx∈X_S。存在一個確定性函數族f(z;θ)f(z;θ),族中的每個函數由θΘ\theta\in\Theta唯一確定,f:ZS×ΘXSf:Z_S×Θ→X_S。當θθ固定、zz是一個概率密度函數爲Pz(z)P_z(z)的隨機變量時,f(z;θ)f(z;θ)就是定義在XSX_S上的隨機變量xx,對應的概率密度函數可以寫成g(x)g(x)
目標: 優化θθ,從而尋找到一個ff,它是隨機變量xx的採樣、和XX非常的像。
注意:
(1) xx是一個變量,DXD_X是已知的數據集,xDXx\notin D_X
(2) ff把隱變量zz映射成xx變量,而xx變量就是與數據集DXD_X具有直接關係的隨機變量,這個直接關係可以表示成Px(DXx)P_x(D_X|x)。則數據集爲DXD_X存在的概率Pt(DX)=Px(DXx)g(x)dxP_t(D_X)=∫P_x(D_X|x)g(x)dx

根據貝葉斯公式:
(1) Pt(DX)=Pxz(DXz;θ)Pz(z)dz(1)~P_t(D_X)=∫P_{xz}(D_X|z;θ)P_z(z)dz
其中,Pxz(DXz;θ)P_{xz}(D_X|z;θ)是新定義的概率密度函數,替換Pt(DX)P_t(D_X)中的Px(DXx)g(x)P_x(D_X|x)g(x),從而表示 zzDXD_X的關係
假定PxzP_{xz}是服從高斯分佈的概率密度函數,即Pxz(DXz;θ)=N(DXf(x;θ),σ2I)P_{xz}(D_X|z;θ)=N(D_X|f(x;θ),σ^2I)
注意,zz的分佈是未知的。

由於隱變量ZZ的分佈是未知的,因此VAE首先假設其服從高斯分佈,然後使用多層神經網絡來進行逼近ZZ(即f(z;θ)f(z;θ)是一個多層神經網絡)。因此,多層的神經網絡前些層是逼近ZZ,後些層是ZXZ→X映射

上述內容整理自ran337287的博客,可點擊進入文章

高斯混合模型(GMM)

 GMM是傳統的隱變量模型,爲多個高斯分佈的混合,其密度函數爲多個高斯密度函數的加權組合,用EM算法求解。
 隱變量Z表示樣本屬於哪個高斯分佈,Z爲離散的隨機變量ZCategorical distributionZ\sim Categorical~distribution

求解GMM的EM算法過程:
logP(x)=ELBO+KL(qϕ(ZX)Pθ(ZX))logP(x)=ELBO+KL(q_\phi(Z|X)||P_\theta(Z|X))
E-step:
 當q=Pθ(ZX)KL=0q=P_\theta(Z|X)時,KL=0
 則argmaxθP(x)=argmaxELBOarg\underset{\theta}{max}P(x)=argmaxELBO
 ∴Expectation是ELBO
M-step:
θ=argmaxθELBO      =argmaxθEPθ(ZX)[logθP(X,Z)]\theta=arg\underset{\theta}{max}ELBO\\~~~~~~=arg\underset{\theta}{max}E_{P_\theta(Z|X)}[log_\theta P(X,Z)]

這一步留坑,下次完善

VAE概述

VAE是無限個高斯分佈的混合。

示意圖

在這裏插入圖片描述

模型描述

假設Z是連續、高維的屬於高斯分佈的隨機變量,則:
2{ZN(0,I)  XZN(μθ(Z),Σθ(Z))(2)\begin{cases}Z\sim N(0,I)~~ \\X|Z\sim N(\mu_\theta(Z), \Sigma_\theta(Z)) \end{cases}

 上式假設ZZ服從標準的高斯分佈。類似先驗。但是我們更關注的是後驗Pθ(ZX)P_\theta(Z|X)以輔助建模。
 上式假設XZX|Z爲連續變量,將要用多層神經網絡去逼近得到。如果假設爲離散變量,則XZCategorical distributionX|Z\sim Categorical~distribution

模型:
3Pθ(X)=ZPθ(X,Z)dZ                      =ZPθ(Z)Pθ(XZ)dZ(3)P_\theta(X)=\int_ZP_\theta(X,Z)dZ\\~~~~~~~~~~~~~~~~~~~~~~=\int_ZP_\theta(Z)P_\theta(X|Z)dZ
ZZ是高維的
∴無法通過積分得到結果
P(X)P(X)是intractable
∴後驗概率Pθ(ZX)=Pθ(Z)Pθ(XZ)Pθ(X)P_\theta(Z|X)=\frac{P_\theta(Z)P_\theta(X|Z)}{P_\theta(X)}是intractable
∴求θ\theta要先解決後驗概率Pθ(ZX)P_\theta(Z|X)

模型求解

假設{P(Z)=N(0,I)Pθ(XZ)=N(μθZ,Σθ(Z))Pθ(ZX) is intractableqΦ(ZX)Pθ(ZX)\begin{cases}P(Z)=N(0,I)\\P_\theta(X|Z)=N(\mu_\theta|Z,\Sigma_\theta(Z))\end{cases}\\∵P_\theta(Z|X)~is~intractable\\∴q_\Phi(Z|X)\xRightarrow{逼近}P_\theta(Z|X)

Pθ(ZX)P_\theta(Z|X) is intractable,因此不能用EM算法求解。因爲EM算法的先決條件是q=Pθ(ZX)q=P_\theta(Z|X)

假設θ\theta已經求出來了,即Model已經訓練好了。生成樣本過程:
ZP(Z)Z(i)X(i)Z\sim P(Z)\rarr Z^{(i)}\rarr X^{(i)}\simPθ(XZ(i))P_\theta(X|Z^{(i)})NN\xLeftarrow[NN]{逼近}
目標:
<θ^,ϕ^>=argminKL(qϕ(ZX)Pθ(ZX))=argmaxELBO=argmaxEqϕ(ZX)[logPθ(X,Z)]+H[qϕ(ZX)]=argmaxEqϕ(ZX)[logPθ(XZ)+logP(Z)]+H[qϕ(ZX)]=argmaxEqϕ(ZX)[logPθ(XZ)]KL(qϕ(ZX)P(Z))<\hat\theta,\hat\phi>=argminKL(q_\phi(Z|X)||P_\theta(Z|X))\\=argmaxELBO\\=argmaxE_{q_\phi(Z|X)}[logP_\theta(X,Z)]+H[q_\phi(Z|X)]\\=argmaxE_{q_\phi(Z|X)}[logP_\theta(X|Z)+logP(Z)]+H[q_\phi(Z|X)]\\=argmaxE_{q_\phi(Z|X)}[logP_\theta(X|Z)]-KL(q_\phi(Z|X)||P(Z))

上式的最後一行,
(1)argmaxargmax項即爲損失函數
(2)KL項即爲正則化項,意在使得qϕq_\phi更接近P(Z)P(Z),使得qϕq_\phi更接近高斯分佈,防止其坍縮到一個點。

 使用梯度下降法θ^\hat\thetaϕ^\hat\phi。採用重參數化技巧+神經網絡(如SGVI, SGVB, SVI, Amortized Inference等)來解決該優化問題,即求近似後驗

SGVI爲例:假設q(ZX)q(Z|X)
在這裏插入圖片描述
在這裏插入圖片描述

注意: 初始是從P(Z)P(Z)中採樣Z(i)Z^{(i)},訓練時是從qϕ(ZX)q_\phi(Z|X)中採樣Z(i)Z^{(i)}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章