变分自编码器 (VAE) 是一种生成模型,它使用神经网络将输入数据编码到潜在空间中,然后将其解码以重建原始数据。VAE 结合了深度学习和概率图模型的原理,从而能够对复杂数据分布进行无监督学习。
VAE 由三个主要组件组成:
编码器
- 将输入数据 x 转换为潜在表示 z。
- 输出近似后验分布 qϕ(z∣x) 的参数,通常是均值 μ 和对数方差 logσ2。
- 实现为一个由 ϕ 参数化的神经网络。
潜在空间
- 一个低维空间,表示输入数据的编码特征。
- 施加一个先验分布 p(z),通常是标准正态分布 N(0,I)。
- 支持对新数据实例的采样和生成。
解码器
- 从潜在表示 z 重建输入数据。
- 定义了给定潜在变量的数据的似然 pθ(x∣z)。
- 实现为一个由 θ 参数化的神经网络。
数学公式
VAE 优化边际似然的证据下界 (ELBO):
L(ϕ,θ;x)=Eqϕ(z∣x)[logpθ(x∣z)]−KL(qϕ(z∣x)∥p(z))
其中:
- qϕ(z∣x): 近似后验分布。
- pθ(x∣z): 给定潜在变量的数据似然。
- KL(⋅∥⋅): 两个分布之间的 Kullback-Leibler 散度。
损失函数
损失函数结合了两个项:
-
重建损失 (Lrec):
衡量解码器重建输入数据的效果。
-
正则化项 (Lreg):
鼓励潜在分布 qϕ(z∣x) 接近先验 p(z)。
重参数化技巧
为了实现通过随机变量的反向传播,使用了重参数化技巧:
z=μ+σ⊙ϵ,ϵ∼N(0,I)
- 允许梯度在训练期间流经 μ 和 σ。
- ⊙ 表示逐元素乘法。
训练过程
-
编码:
- 输入数据 x 通过编码器。
- 输出均值 μ 和对数方差 logσ2。
-
采样:
-
解码:
- 采样到的 z 通过解码器重建 x^。
-
损失计算:
-
优化:
- 使用梯度下降更新网络参数 ϕ 和 θ。
关键概念
变分推断
- 一种近似复杂概率分布的技术。
- 将推断问题转化为优化问题。
Kullback-Leibler 散度