變分推論是一種用於近似計算複雜機率模型後驗分佈的機率推論方法。它透過將原問題轉化為一個最佳化問題,降低計算複雜度。變分推論在機器學習、統計學、資訊理論等領域廣泛應用。
為什麼叫變分?
"變分"這個字源自於函數論中的變分法,它是一種求解泛函極值的方法。在變分推論中,我們透過最小化一個距離測量來找到一個近似後驗分佈,該測量被稱為變分距離,因此這種推斷方法被稱為變分推斷。
變分推斷的基本想法是透過找到一個近似分佈來盡可能逼近真實後驗分佈。為此,我們引入了一個參數化的分佈族q(z;\lambda),其中z是隱變量,\lambda是待求參數。我們的目標是找出一個分佈q(z;\lambda),使得它與真實後驗分佈p(z|x)的差異最小。 為了測量分佈q(z;\lambda)和p(z|x)之間的距離,我們使用變異距離,通常使用KL散度來測量。 KL散度是一種衡量兩個機率分佈之間差異的測量方式。具體地,KL散度可以透過以下公式來計算: KL(q(z;\lambda) || p(z|x)) = \int q(z;\lambda) \log \frac{q(z;\lambda)}{p(z|x)} dz 透過最小化KL散度,我們可以找到使得分佈q(z;\lambda)與真實後驗分佈p(z|x)的差異最小化的參數\lambda。這樣,我們可以得到一個近似後驗分佈,從而進行後續的推論和預測任務。 總之,變異推論的基本想法是透過找到一個參數化的分佈族來逼近真實後驗分佈,並使用KL散度來度量兩個分佈之間的差異。透過最小化KL散度,我們可以得到一個近似後驗分佈,從而進行後續的推論任務。
D_{KL}(q(z;\lambda)||p(z|x))=\int q(z;\lambda)\log\frac{q( z;\lambda)}{p(z|x)}dz
注意到KL散度是非負的,當且僅當q(z;\lambda)等於p( z|x)時,KL散度取到最小值0。因此,我們的目標可以轉換成最小化KL散度,即:
\lambda^*=\arg\min_{\lambda}D_{KL}(q(z; \lambda)||p(z|x))
但是,由於KL散度是一個難以處理的複雜函數,我們無法直接最小化它。因此,我們需要採用一些近似方法來求解這個問題。
在變分推論中,我們採用一種稱為變分下界的技巧來近似KL散度。具體地,我們先將KL散度分解為:
D_{KL}(q(z;\lambda)||p(z|x))=E_{q( z;\lambda)}[\log q(z;\lambda)-\log p(z,x)]
然後,我們透過引入一個新的分佈q(z |x),並利用Jensen不等式,得到了一個下界:
\log p(x)\ge E_{q(z|x)}[\log p(x, z)-\log q(z|x)]
#其中,\log p(x)是資料的邊緣機率,p(x,z)是聯合機率分佈,q (z|x)是近似後驗分佈。
這個下界稱為變分下界或ELBO(Evidence Lower Bound),可以透過最大化ELBO來優化近似後驗分佈的參數\lambda:
#\lambda^*=\arg\max_{\lambda}E_{q(z|x;\lambda)}[\log p(x,z)-\log q(z|x;\ lambda)]
注意到,這個最佳化問題可以透過梯度下降等最佳化演算法來求解。最終,我們得到的近似後驗分佈q(z|x)可以用來計算各種期望,例如預測、模型選擇等。
總之,變分推論是一種基於最小化KL散度的機率推斷方法,透過引入變分下界的技巧,利用最佳化演算法來近似計算複雜機率模型的後驗分佈。
以上是可變因子推斷的詳細內容。更多資訊請關注PHP中文網其他相關文章!