完整版文章请看知乎原文,link直接点击标题,本文章只记录个人的学习笔记
变分自编码器VAE:原来是这么一回事 | 附开源代码
作者丨苏剑林
单位丨广州火焰信息科技有限公司
研究方向丨NLP,神经网络
个人主页丨kexue.fm
VAE 跟 GAN 比较,它们的目标基本是一致的——希望构建一个从隐变量 Z 生成目标数据 X 的模型,但是实现上有所不同。
生成模型的难题就是判断生成分布与真实分布的相似度,因为我们只知道两者的采样结果,不知道它们的分布表达式,因此KL散度不适用。对于这个问题,GAN 的思路-把这个度量也用神经网络训练出来。就这样WGAN 就诞生了。而 VAE 则使用了一个精致迂回的技巧。
核心idea:通过Z生成获得X
VAE的传统理解
上图的这种理解是错误的,因为不能保证采样出来的zk经过生成器后生成的xk_hat仍然对应着xk。
注意:在整个 VAE 模型中,我们并没有去使用 p(Z)(先验分布)是正态分布的假设,我们用的是假设 p(Z|X)(后验分布)是正态分布。
VAE的真实示意图:VAE 为每个样本构造专属的正态分布,然后采样来重构。
这里,为了保证模型的生成能力,会让 P ( Z ∣ X ) P(Z|X) P(Z∣X)像标准正态分布看齐,就可以推导出先验假设“ P ( Z ) P(Z)