帮助理解变分自动编码器中的重建损失

机器算法验证 神经网络 自动编码器
2022-03-09 21:40:59

VAE 的重建损失(例如,参见The Deep Learning Book中的方程 20.77 )通常写为

Ezq(z|x)log(pmodel(x|z)),

在哪里z表示潜在变量,x表示图像,并且q是一个近似编码器。如果我们假设

x|zN(μx|z,Σx|z),

然后我明白了如何最小化重建损失只是一个典型的最大似然问题。

但是当我看到在实践中实现 VAE 时,人们似乎经常将重建损失表示为每个之间的 L2 损失x(训练图像)和x^(解码图像)。

谁能解释如何将上面第一个表达式中的重建损失转换为之间的 L2 损失xx^?

1个回答

通常在 VAE 实现中,解码器的输出实际上是平均值μx|z我会打电话给μ, 人们假设一个单一的协方差。所以在这种情况下,我们有: logP(x|z)=12[log(|Σ|)+klog(2π)+(xμ)T(xμ)]

这来自获取多元高斯分布的 pdf 的对数。现在您可以看到,由于前两项相对于μ,优化问题等价于最大化这是之间的 L2 损失最后,期望只是通过平均来近似。12(xμ)T(xμ)xμ