Autoencoders

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

  • February 25, 2019

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

ni=1σ2i+μ2ilog(σ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 散度項。

DKL[Q(z|X)||P(z|X)]=E[logQ(z|X)logP(z|X)]

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