变分自编码器
变分自编码器(Variational Autoencoder, VAE)是一种基于变分推断的深度生成模型,由Kingma和Welling于2013年提出。VAE结合了自编码器的结构和概率图模型的框架,能够学习数据的潜在分布并生成新的样本。
基本思想
VAE的目标是学习一个生成模型,使得从潜在变量 到数据 的映射能够产生与真实数据分布相似的输出。与标准自编码器不同,VAE并不直接学习确定的编码向量,而是学习潜在变量的概率分布。
模型结构
编码器(Encoder)
编码器将输入 映射到潜在空间上的概率分布 。通常假设该分布为对角高斯分布:
编码器输出均值 和对数方差 ,而不是直接输出 。
解码器(Decoder)
解码器从潜在变量 重建数据,建模条件概率 :
损失函数
VAE的损失函数包含两部分:重建损失和KL散度正则项。
证据下界(ELBO)
VAE通过最大化证据下界(Evidence Lower Bound, ELBO)来优化:
- 第一项 重建损失:鼓励解码器准确重建输入数据
- 第二项 KL散度:鼓励编码器输出的后验分布 接近先验分布 (通常为标准正态分布 )
重参数化技巧
为了使梯度能够通过采样过程反向传播,VAE引入了重参数化技巧。将采样过程分解为:
这样随机性来自于外部的噪声 ,而 和 可以正常接受梯度更新。
特点与应用
特点:
- 生成能力:训练完成后,可以直接从先验分布 采样,通过解码器生成新样本
- 潜在空间连续性:潜在空间具有良好结构化特性,可以进行插值和算术操作
- 概率框架:提供了对生成过程的不确定性估计
应用:
- 图像生成和编辑
- 异常检测(重建概率低的样本视为异常)
- 数据降维与可视化
- 分子生成与药物设计
链接到
- 上一个知识点:无(本章第一个知识点)
- 下一个知识点:10.2 生成对抗网络
- 相关知识点:5.5 深度自编码器、7.1 序列到序列模型