描述
变分自编码器(VAE)建立在传统自编码器的基础上,传统自编码器学习输入数据的压缩潜在表示。虽然标准自编码器为每个潜在维度输出单个值,但 VAE 采用概率方法。它们构建一个编码器,为每个潜在属性输出定义概率分布的参数,而不是单个值。
这种概率编码允许更细致的数据表示。例如,在编码人脸图像时,VAE 可以将“微笑”等属性表示为分布,而不是单个值,从而更有效地处理像蒙娜丽莎这样的模糊情况。然后,解码器从这些分布中采样以重构输入。编码器通常称为识别模型,解码器称为生成模型。
VAE 背后的核心统计动机在于使用可处理的变分分布 q(z|x) 来近似难以处理的后验分布,特别是 p(z|x)。通过最小化这些分布之间的 Kullback-Leibler (KL) 散度,VAE 旨在使 q(z|x) 尽可能接近 p(z|x)。这个优化过程导致一个包含两个项的损失函数:一个重构似然项和一个 KL 散度项,后者鼓励学习到的分布类似于先验分布,通常是单位高斯分布。
在实践中,编码器输出每个潜在维度的均值和方差,为简化起见,假设对角协方差矩阵。采用“重参数化技巧”来使反向传播能够通过采样过程:从单位高斯分布中抽取一个随机样本 ε,然后通过学习到的均值 (μ) 和方差 (σ) 进行变换,得到 z = μ + σε。这使得在保持随机性的同时优化分布的参数成为可能。
VAE 的潜在空间以其连续性和平滑性为特征,这与标准自编码器相比是一个显著的优势。这种平滑的潜在空间有利于生成任务。通过从先验分布中采样,解码器可以生成类似于训练数据的新数据实例。例如,在 MNIST 数字上训练的 VAE 可以生成新的、逼真的手写数字,不同的数字占据潜在空间的不同区域,并允许它们之间进行平滑过渡。
VAE 在需要鲁棒数据表示、异常检测和生成建模的任务中很有价值。它们生成数据点之间平滑插值图的能力也使其适用于生成动画中的中间帧或在音频样本之间进行插值等应用。通过调整重构和 KL 散度项的权重,可以灵活地平衡重构准确性和潜在空间规则性,从而产生诸如解耦 VAE 等模型。
变分自编码器亮点
概率潜在空间编码
生成建模能力
平滑潜在空间表示
输入数据重构
编码器-解码器架构
用于训练的重参数化技巧
用于分布匹配的 KL 散度
单位高斯先验假设
学习潜在分布的均值和方差
解耦的潜在表示(通过参数调整)
潜在空间中的数据点插值
变分自编码器入门
定义编码器网络:将输入数据映射到潜在分布的参数(均值、方差)。
定义解码器网络:将采样的潜在变量映射回以重构输入数据。
实现损失函数:结合重构误差和学习到的分布与先验分布之间的 KL 散度。
应用重参数化技巧:在训练期间通过采样过程实现梯度流动。
训练模型:使用反向传播优化网络参数。
生成新数据:从先验分布中采样并通过解码器传递。
变分自编码器的使用案例
- 生成建模
- 数据插值
- 异常检测
- 表示学习
- 图像生成
- 特征提取
- 数据去噪







