我应该如何直观地理解变分自编码器中的 KL 散度损失?

机器算法验证 自动编码器 kullback-leibler 变分贝叶斯
2022-03-12 05:23:04

我正在研究 VAE,遇到了由 KL 散度组成的损失函数。

i=1nσi2+μi2log(σi)1

我想直观地理解损失函数的 KL 散度部分。如果有人可以帮助我,那就太好了

1个回答

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)]