VAE是Variational Autoencoder的缩写,是一种生成模型。
它通过encoder网络将输入编码为低维的latent variable,然后通过decoder网络再将latent variable解码为原始输入空间,实现自动学习输入的潜在特征表示。
相比于标准的Autoencoder,VAE有以下特点:
1. VAE假设latent variable遵循某种先验分布(通常为正态分布),并最大化posterior分布与先验分布的相似度,使得latent variable SPACE连续可导。这使得VAE可以用于生成新样本。
2. VAE使用重参数化技巧,使得latent variable 与输入独立,利于后续生成新样本。而标准Autoencoder的latent variable 直接依赖于输入,不利于生成。
3. VAE的训练目标在于最大化evidence lower bound, 同时最小化重构误差与posterior 与先验分布的KL散度。这使得VAE既要学习好的输入表示,也要将posterior集中在先验分布上。
VAE一般由以下几个组成部分:
1. Encoder:将输入编码为mean和log var两部分,用以描述posterior分布。
2. Sampling:根据mean和log var使用重参数化技巧采样得到latent variable。
3. Decoder:将latent variable解码为原始输入空间,用于计算重构误差。
4. KL散度:计算latent variable的posterior分布与先验分布的KL散度,用于正则化。
5. Evidence lower bound:VAE的训练目标,同时考虑重构误差与KL散度,使posterior接近先验且数据建模准确。
VAE通过正则化的方法实现了较好的生成能力,已广泛应用于图像生成、对话生成、anomaly detection与机器翻译等领域。但要达到生成高度真实且多样的数据,仍需要更强大的模型与训练技巧。让我们共同探索,发展更加强大与稳健的生成学习技术。