keras - 变分自动编码器 : Does encoder must have the same number of layers as the decoder?

标签 keras autoencoder

在变分自编码器中,编码器的层数是否必须与解码器的层数相同?我用编码器(密集)获得了更好的结果:54-10-5-3 和解码器(密集):3-5-10-25-35-45-54

最佳答案

你问了一个很好的问题,答案是否定的。

由于 Aldream 已经指出了一些使用非对称架构的作品,我想指出与您的问题相关的理论工作。

我认为最好的解释来自 ICLR 2017 session 论文:“Variational Lossy Autoencoder”,Xi Chen 等人。

第 2 部分是必读部分。作者将变分自动编码器与位回编码联系起来,并表明平均代码长度(相当于变分下界)总是有来自使用近似后验分布的额外代码长度。 当 VAE 的解码器(即对数数据似然 p(x|z))可以在不需要 q(z|x) 的情况下对数据进行建模时,VAE 将忽略潜在变量!

这意味着如果我们有一个非常强大的解码器(例如与编码器相同的层数),那么 VAE 可能会通过简单地设置 q(z|x) 来完全忽略学习 q(z|x) 的风险) 到先验 p(z),因此,将 KL 损失保持为 0。

有关详细信息,请阅读上面的论文。在我看来,VAE 与 bit-back 编码的联系很优雅。

关于keras - 变分自动编码器 : Does encoder must have the same number of layers as the decoder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50131402/

相关文章:

python - 使用 Python 中的 Keras 和 TensorFlow 无法重现结果

python-2.7 - ValueError : Tensor:(. ..) 不是该图的元素

python - 使用单图像 tensorflow keras 进行预测

python - 编译加载模型时 Keras ValueError

keras - Keras:将Tensorboard与train_on_batch()结合使用

python - 使用质数输入维度训练 CNN 的问题

python - keras 编码器和解码器上的分割自动编码器

python - 为什么我的完全卷积自动编码器不对称?

tensorflow - Tensorflow 中的高斯对数似然损失函数

tensorflow - 使用tensorflow实现自动编码器