如何使用 VAE 从初始图像而不是从随机向量开始重建图像?

人工智能 神经网络 深度学习 计算机视觉 变分自动编码器 约束优化
2021-10-18 23:18:51

是否可以使用 VAE 从初始图像开始重建图像,而不是使用,如本示例K.random_normal的“采样”功能所示

我使用带有 VAE 编码器的示例图像来获取z_meanz_logvar.

我在一个空白图像中获得了 1000 像素(其中没有任何内容)。

现在,我想使用具有给定约束的解码器重建样本图像,否则空白图像中的 1000 个像素保持不变。可以重建剩余的像素,使它们尽可能接近初始样本图像。换句话说,我的解码器起点是一个空白图像,其中一些像素不会改变。

如何修改解码器以根据此约束生成图像?是否可以?是否有可能使这成为可能的 VAE 变体?那么我们可以从一个初始点开始预测潜在变量吗?

2个回答

问题是,解码器从潜在的 mu 和 sigma 中采样,因此您不能直接从原始图像中采样。但是,如果您尝试将随机图像放入经过训练的 VAE 的编码器中以将其与某个样本图像匹配(通过重建损失),那么您的随机输入图像将收敛到目标样本。

当满足以下 VAE 架构约束时,这将起作用:

  1. 目标样本包含在先前使用的训练分布中。

  2. VAE 的参数在训练后被冻结。

  3. 输入图像值是“可反向传播的”。(将输入图像解释为可优化参数。)

您可以使用之前回答的 VAE,尽管它在实践中效果不佳。
我认为去噪自动编码器适合您的问题,因为在训练期间,输入是随机损坏的,因此它必须学会猜测丢失信息的分布(重建干净的原始输入)
我们可以说 VAE 在建模 p(x) 因为在潜在空间层引入了随机性,而类似 DAE 的算法不断从输入层开始放置噪声。
假设您的数据集中在这个一维弯曲流形上,VAE 可以做的只是选择一些随机值并输出 p(X|Z),顺便说一下,它是高斯的,而 DAE 将学习映射损坏的数据点 x~回到原始数据点 x。

在此处输入图像描述