介绍
- 变分自编码器(Variational AutoEncoder, VAE)是生成式模型(Generative Model)的一种,另一种常见的生成式模型是生成对抗网络(Generative Adversial Network, GAN)
- VAE和AE的区别:
- AE中隐层表示的分布未知,而VAE中隐变量服从高斯分布
- AE中学习的是encoder和decoder,VAE中还学习了隐变量的分布,包含高斯分布的均值和方差。
- AE只能从一个x,得到对应的重构x
- VAE可以产生新的z,从而得到新的x,即生成新的样本
- 损失函数:
除了重构误差,由于在VAE中我们假设隐变量z服从高斯分布,因此encoder对应的条件概率分布应该和高斯分布尽可能相似,可以用相对熵,又称“KL散度”(Kullback-Leibler Divergence),来衡量两个分布的差异,或者说距离。但相对熵是非对称的:
D ( f ∣ ∣ g ) = ∫ f ( x ) ⋅ l o g f ( x ) g ( x ) d x D(f||g)=\int f(x)·log {f(x)\over g(x)} d_x D(f∣∣g)=∫f(x)⋅logg(x)f(x)dx - 具体概念可以参考: