Autoencoders

我應該如何直觀地理解變分自編碼器中的 KL 散度損失?[複製]

  • February 25, 2019

我正在研究 VAE,遇到了由 KL 散度組成的損失函數。

$$ \sum_{i=1}^n \sigma^2_i + \mu_i^2 - \log(\sigma_i) - 1 $$

我想直觀地理解損失函數的 KL 散度部分。如果有人可以幫助我,那就太好了

KL散度告訴我們概率分佈Q通過計算交叉熵減去熵來逼近概率分佈P的程度。直觀地說,您可以將其視為一種分佈與另一種分佈差異的統計度量。

在 VAE 中,讓 $ X $ 成為我們要建模的數據, $ z $ 是潛變量, $ P(X) $ 是數據的概率分佈, $ P(z) $ 是潛在變量的概率分佈和 $ P(X|z) $ 是給定潛在變量的生成數據的分佈

在變分自動編碼器的情況下,我們的目標是推斷 $ P(z) $ 從 $ P(z|X) $ . $ P(z|X) $ 是將我們的數據投影到潛在空間的概率分佈。但是由於我們沒有分佈 $ P(z|X) $ ,我們使用其更簡單的估計來估計它 $ Q $ .

現在在訓練我們的 VAE 時,編碼器應該嘗試學習更簡單的分佈 $ Q(z|X) $ 使其盡可能接近實際分佈 $ P(z|X) $ . 這就是我們使用 KL 散度來衡量兩個概率分佈之間差異的地方。因此,VAE 目標函數包括需要最小化的 KL 散度項。

$$ D_{KL}[Q(z|X)||P(z|X)] = E[\log {Q(z|X)} − \log {P(z|X)}] $$

引用自:https://stats.stackexchange.com/questions/394296

comments powered by Disqus