总的结构
变分推断的理解可以看 博客
采样生成过程
- Encoder: 生成均值和方差,
- decoder: 在高斯隐空间中采样出的样本进行还原
- 对抗:方差为1的约束 与 重构损失 ∣ ∣ X − X ^ ∣ ∣ || X-\hat{X}|| ∣∣X−X^∣∣为0的约束的对抗。
两个方面,一个是让latent variable 服从
对抗: 重构的过程是希望没噪声的,而 KL loss 则希望有高斯噪声的,两者是对立的。所以,VAE 跟 GAN 一样,内部其实是包含了一个对抗的过程,只不过它们两者是混合起来,共同进化的。
代码: https://github.com/bojone/vae
变分推断与VAE关系: https://cloud.tencent.com/developer/article/1586621
参考: https://zhuanlan.zhihu.com/p/34998569