?我们来说明一下这个架构。首先输入一张真实图像X𝑖𝑛,通过一个 encoder 变成一个 normal 的分布 z,然后 z 再输入到 decoder 中产生生成图像X𝑜𝑢𝑡,这时 VAE 希望X𝑜𝑢𝑡与X𝑖𝑛 之间的 loss 越小越好,但是 loss 小不见得图片就清晰,于是X𝑜𝑢𝑡又会被放入一个判别器中, 去让判别器判断输入的图片属于P𝑑𝑎𝑡𝑎还是P𝐺,这样最终X𝑜𝑢𝑡就会与X𝑖𝑛不仅相似还清晰。
?这两者的差别在于,把 X?encode 成 z 的过程是放在生成器的前面还是后面,如果放在前面,就是 VAEGAN;如果放在后面,就是 CycleGAN。
VAEGAN的变种
上一节的 VAEGAN 存在一个问题,就是 Encoder 编码出的 z 不一定完全符合我们期望的 normal z 的样式,也就是编码出的 z 和我们输入的 z 可以存在细微的不同,但是通过生成器的处理,它们产生的输出都能够骗过判别器。 为了解决这一问题 VAEGAN 提出了一个变种,它改变了判别器,使得判别器能更精细的鉴别输入图像的种类,共包括三个种类:真实图片,重构图片,与生成图片。