PyTorch深度学习实战(29)——变分自编码器
0. 前言
变分自编码器 (Variational Autoencoder
, VAE
) 是一种生成模型,结合了自编码器和概率模型的思想,通过学习输入数据的潜分布,能够生成新的样本。与传统的自编码器不同,变分自编码器引入了概率建模的思想,并通过编码器和解码器之间的随机性来实现生成过程。编码器将输入数据映射到潜空间中的概率分布,假设潜变量是从多元正态分布中采样得到的,解码器则将从潜空间采样得到的潜在变量映射回原始数据空间,并生成新的样本。本节中,将介绍变分自编码器的基本概念,并使用 PyTorch
实现变分自编码器生成新图像。
1. 变分自编码器
变分自编码器 (Variational Auto-Encoders
, VAE
) 是一种基于变分贝叶斯 (Variational Bayes
, VB
) 推断的生成式网络架构,与自编码器通过数值的方式描述潜空间不同,VAE
以概率分布的形式描述潜空间,使数据生成成为可能。
1.1 自编码器的局限性
相似的图像会被分组到同一集群中,使用自编码器可以重建(解码)属于给定集群的潜变量。但是,如果潜变量位于两个集群之间时,使用自编码器无法保证会生成逼真图像,在这种情况下,就需要使用变分自编码器。
在构建变分自编码器之前,首先通过采样潜变量生成图像,观察自编码器在重