简介
变分自编码器(Variational Autoencoder,VAE)是生成式模型(Generative Model)的一种,另一种常见的生成式模型是生成式对抗网络(Generative Adversarial Network,GAN)
这里我们介绍下VAE的原理,并用Keras实现
原理
我们经常会有这样的需求:根据很多个样本,学会生成新的样本
以MNIST为例,在看过几千张手写数字图片之后,我们能进行模仿,并生成一些类似的图片,这些图片在原始数据中并不存在,有一些变化但是看起来相似
换言之,需要学会数据x的分布,这样,根据数据的分布就能轻松地产生新样本
P ( X ) P(X) P(X)
但数据分布的估计不是件容易的事情,尤其是当数据量不足的时候
可以使用一个隐变量z,由z经过一个复杂的映射得到x,并且假设z服从高斯分布
x = f ( z ; θ ) x=f(z;\theta) x=f(z;θ)
因此只需要学习隐变量所服从高斯分布的参数,以及映射函数,即可得到原始数据的分布
为了学习隐变量所服从高斯分布的参数,需要得到z足够多的样本
然而z的样本并不能直接获得,因此还需要一个映射函数(条件概率分布),从已有的x样本中得到对应的z样本
z = Q ( z ∣ x ) z=Q(z|x) z=