tensorflow - ELBO 是否包含变分自动编码器中的重建损失信息

标签 tensorflow machine-learning autoencoder

这是一个与此相关的问题 - Variational autoencoder and reconstruction Log Probability vs Reconstruction error

我试图了解变分自动编码器是如何优化的。我已经阅读了其背后的数学原理,并且我想我理解了变分推理的一般概念以及用于潜在空间的重新参数化技巧。

我见过一些examples其中使用交叉熵对输入和输出进行比较,并且 KL 散度位于潜在变量上。然后这种损失就会最小化。

另一方面,有 other examples它使用对数概率和 KL 散度来生成证据下界 (ELBO)。然后 ELBO 值的负值被最小化。

在这两种情况下,潜在空间都是根据输入的模式(例如 MNIST 中的数字)进行分区的。所以我想知道ELBO是否是或者包含类似于重建损失的信息。

最佳答案

简短的回答是肯定的。 ELBO 实际上是一个平滑的目标函数,它是对数似然的下界。

我们不是最大化 log p(x)(其中 x 是观察到的图像),而是选择最大化 log p(xlz) + KL(q(zlx) ll p(z)),其中 z 是来自编码器 q(zlx) 的样本)。我们这样做是因为优化 ELBO 比 log p(x) 更容易。

那么项 p(xlz) 是负重构误差 - 我们希望在给定潜在变量 z 的情况下最大化 x 的似然性。 对于第一个示例:p(xlz) 是方差为 1 的高斯分布。

第二个例子:p(xlz) 是伯努利分布,因为 Mnist 数字是黑白的。我们可以将每个像素建模为它的亮度。

希望这有帮助!

关于tensorflow - ELBO 是否包含变分自动编码器中的重建损失信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50066752/

相关文章:

machine-learning - 在 SVM 中使用内核是否会增加过度拟合的可能性?

python - Tensorflow 2.0 中的 tf.function 和 tf.while 循环

Tensorflow 停止训练并随机卡在 GPU 上

R:训练集和测试集对分类解释变量采用不同的值:逻辑回归

matlab - 避免逻辑挤压函数中的无穷大

neural-network - Keras 中 add_loss 函数的目的是什么?

python - 在构建编码器/解码器模型之前训练自动编码器是否有效?

machine-learning - mlpack稀疏编码解决方案未找到

tensorflow - 通过 Tensorflow Object Detection API 进行的数据扩充是否会导致比原始样本更多的样本?

tensorflow - AWS Sagemaker 是否支持 gRPC 预测请求?