前任的作用是什么p ( z )p(z)在 VAE 中?

人工智能 生成模型 变分自动编码器
2021-11-13 18:53:10

我知道编码器是变分后验的qϕ(zx).

我也知道解码器代表可能性: pθ(xz).

我的问题是关于先前的p(z).

我知道 ELBO 可以写成:

Eqϕ(zx)[log(pθ(xz))]DKL(qϕ(zx)p(z))log(pθ(x))

对于 VAE,变分后验是

qϕ(zx(i))=N(μ(i),σ2(i)I),

之前是

p(z)=N(0,I).

所以

DKL(qΦ(zx)pz(z))=12j=1J(1+log(σj2)σj2μj2)

这是我知道先验在帮助确定部分损失函数方面发挥作用的一种方式。

先前的 VAE 是否还有其他作用?

1个回答

先前的p(z)被假定为问题表述的一部分。一个典型的案例是z是 iid 正态随机变量的向量。ELBO 涉及一个正则化项,它鼓励q(z|x)有类似的分布p(z)(你写的方式,这是KL术语)。因此q(z|x)最终将具有相似的形状p(z). 例如,再次假设z是一个独立同分布法线向量,如果你绘制样本z取自q(z|x)你会发现它大致呈球形。如果您向下滚动到 [16] 代码块并查看该图,您就会明白我的意思。该图正在绘制样本z, 根据什么着色x是(MNIST 示例)。这只是我发现的一些随机数字,我不认可此代码,但该图像是您希望看到的。

我们最终得到分布的方式p(x,z)是通过使用先验。我们采样z根据p(z); 我们已经训练了解码器p(x|z),并且根据定义p(x,z)=p(x|z)p(z).