VAE:变分自编码器
背景和动机
VAE和AE最大的不同就是:AE的过完的Encoder是一个确定的向量,而VAE过完Encoder后是一个分布(均值、方差)。AE的Decoder是直接进行解码,VAE的Docoder是通过这个分布进行采样后解码。AE的学习目标是重建损失最小化、VAE是重建损失 + KL散度(正则化)
-
生成模型的需求: 在很多机器学习应用中,我们不仅需要识别和分类数据,还希望能够生成新的数据实例。生成模型尤其在无监督学习中很重要,它可以帮助我们理解数据的内在结构和分布。
-
限制的模型能力: 传统的自编码器通过最小化输入和输出之间的差异来学习数据的有效表示,但它们通常不考虑潜在空间的连续性和结构,使得生成的新样本质量不高。
-
概率模型的引入: 概率生成模型,如高斯混合模型,可以提供理论上的解释和生成能力,但在处理高维数据和复杂分布时往往效果不佳。VAE提供了一种强大的框架,通过结合深度学习和贝叶斯推断,有效地学习数据的潜在结构。
模型结构
和AutoEncoder类似,是由Encoder和Decoder结构组成。
- Encoder:将输入数据 x 映射到一个潜在的分布参数(通常是高斯分布的均值和方差),即 q Φ ( z ∣ x ) q_\varPhi(z | x) qΦ(z∣x)
- Decoder:从潜在空间中采样的点 z 生成数据 x 的分布,即 p θ ( x ∣ z ) p_\theta(x | z) pθ(x∣z)
理论推导
变分自编码器(VAE)是一个深度学习模型,结合了自编码器的架构和概率生成模型的原理。它主要用于学习输入数据的复杂概率分布,并能够生成新的、与输入数据类似的样本。从头开始,我们将一步步探讨VAE的动机、原理和数学推导。
一些符号定义如下:
- 先验分布 p ( z ) p(z) p(z) :通常假设为标准正态分布,这简化了模型的复杂性并与高斯分布的其他属性兼容。
- 后验分布 p ( z ∣ x ) p(z|x) p(z∣x):给定数据后潜在变量的真实分布,通常难以直接计算。
- 变分近似 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x):一个易于处理的分布,用于近似复杂的后验分布。
3. ELBO(证据下界)
为了训练VAE,我们需要最大化数据的对数似然 ( \log p(x) ),但直接优化是不可行的。通过引入变分分布 ( q_{\phi}(z|x) ) 和应用Jensen不等式,我们定义了ELBO:
[
\text{ELBO}(\phi, \theta) = \mathbb{E}{q{\phi}(z|x)}[\log p_{\theta}(x|z)] - \text{KL}[q_{\phi}(z|x) \parallel p(z)]
]
- 第一项是重构误差,鼓励解码器准确重构输入。
- 第二项是正则项,确保编码的潜在变量不偏离太远的先验分布。
数学推导
1. KL散度计算
使用KL散度度量 ( q_{\phi}(z|x) ) 和 ( p(z) ) 之间的相似性,其中 ( q_{\phi}(z|x) ) 通常设为高斯分布,( p(z) ) 为标准正态分布。
2. 优化过程
利用随机梯度下降方法优化ELBO,通常涉及到重参数化技巧,以确保梯度的正确流动和有效的优化。
结论
VAE通过其独特的结合生成模型和深度学习的方式,不仅提供了一种有效学习数据潜在分布的方法,还能生成新的、多样的数据样本。这种模型的强大之处在于其灵活性和在各种数据类型上的适用性,包括图像、文本和音频。