变分自编码器(VAE)的原理与重参数化技巧
字数 1737 2025-11-08 10:03:28
变分自编码器(VAE)的原理与重参数化技巧
描述
变分自编码器(VAE)是一种生成模型,结合了自编码器结构和概率图模型,通过学习数据的潜在分布来生成新样本。与普通自编码器不同,VAE的潜在空间是连续且结构化的,允许通过采样生成数据。其核心挑战在于如何通过随机采样进行梯度反向传播,这通过重参数化技巧解决。
知识点详解
- 基本框架与目标
- VAE由编码器和解码器组成。编码器将输入数据 \(x\) 映射到潜在变量 \(z\) 的后验分布 \(q_\phi(z|x)\)(通常假设为高斯分布),解码器从 \(z\) 重建数据 \(p_\theta(x|z)\)。
- 目标函数为证据下界(ELBO),最大化ELBO等价于最小化重建误差并规范潜在空间:
\[ \text{ELBO} = \mathbb{E}_{q_\phi(z|x)}[\log p_\theta(x|z)] - D_{\text{KL}}(q_\phi(z|x) \| p(z)) \]
其中第一项是重建损失,第二项是KL散度(约束潜在分布接近先验 $ p(z) $,通常为标准正态分布)。
-
重参数化技巧的必要性
- 直接从 \(q_\phi(z|x)\)(如高斯分布 \(\mathcal{N}(\mu, \sigma^2)\))采样 \(z\) 会导致采样操作不可导,无法通过梯度下降优化参数 \(\phi\)。
- 重参数化技巧将随机性分离:令 \(z = \mu + \sigma \odot \epsilon\),其中 \(\epsilon \sim \mathcal{N}(0,1)\)。此时 \(z\) 的随机性仅来自 \(\epsilon\),而 \(\mu\) 和 \(\sigma\) 由编码器输出,梯度可沿 \(\mu, \sigma\) 反向传播。
-
训练流程详解
- 步骤1:编码器输入 \(x\),输出潜在分布的参数 \(\mu\) 和 \(\log \sigma^2\)(使用 \(\log\) 方差确保数值稳定性)。
- 步骤2:采样 \(\epsilon \sim \mathcal{N}(0,1)\),计算 \(z = \mu + \sigma \odot \epsilon\)。
- 步骤3:解码器将 \(z\) 映射为重建数据 \(\hat{x}\)。
- 步骤4:计算损失函数:
- 重建损失:衡量 \(\hat{x}\) 与 \(x\) 的差异(如交叉熵或均方误差)。
- KL散度:闭合形式为 \(-\frac{1}{2} \sum(1 + \log \sigma^2 - \mu^2 - \sigma^2)\),推动 \(q_\phi(z|x)\) 接近标准正态分布。
- 步骤5:通过梯度下降联合优化编码器参数 \(\phi\) 和解码器参数 \(\theta\)。
-
重参数化的数学原理
- 原始采样 \(z \sim \mathcal{N}(\mu, \sigma^2)\) 的梯度被阻断,因为采样操作无导数。
- 重参数化后,梯度路径变为:
\[ \frac{\partial z}{\partial \mu} = 1, \quad \frac{\partial z}{\partial \sigma} = \epsilon, \]
使得 $ \nabla_\phi \mathbb{E}_{q_\phi}[\log p_\theta(x|z)] = \mathbb{E}_{\epsilon}[\nabla_\phi \log p_\theta(x|z=\mu+\sigma \epsilon)] $ 可计算。
- VAE与GAN的区别
- VAE显式学习数据分布,注重重建质量,但生成样本可能模糊;GAN通过对抗训练生成更清晰样本,但训练不稳定。
- VAE的潜在空间具有可解释性,支持插值等操作。
总结
VAE通过引入概率框架和重参数化技巧,解决了生成模型中潜在变量采样的梯度传播问题。其结构化的潜在空间为数据生成和表示学习提供了重要工具。