1. 生成模型的共同思想
变分自编码器(VAE)、生成对抗网络(GAN)和去噪扩散概率模型(DDPM)都是生成模型,其目标是学习真实数据分布 pdata(x)p_{\text{data}}(x)pdata(x) 并生成新样本。它们的共同思想包括:
-
学习数据分布:
- 目标是使生成分布 pG(x)p_G(x)pG(x) 逼近 pdata(x)p_{\text{data}}(x)pdata(x)。
- VAE通过显式似然建模,GAN通过隐式对抗,DDPM通过扩散过程实现。
-
潜在空间表示:
- 使用低维潜在空间捕捉数据的核心特征。
- VAE显式定义分布(如高斯分布),GAN隐式生成,DDPM通过去噪过程恢复。
-
生成逼真样本:
- 都追求生成高质量、多样的样本,适用于图像、文本等领域。
-
概率与优化:
- 涉及概率建模(VAE和DDPM更显式)和深度学习优化。
- 通过神经网络和梯度下降优化目标函数。
-
权衡:
- 需平衡生成质量、样本多样性、训练稳定性和计算效率。
2. 变分自编码器(VAE)
2.1 什么是VAE?
VAE结合深度学习和贝叶斯推断,通过编码-解码结构学习数据的潜在分布。它假设数据由潜在变量 zzz 生成,并使用变分推断近似后验分布。
2.2 结构
- 编码器:输入 xxx,输出潜在分布参数(均值 μ\muμ,对数方差 logσ2\log \sigma^2logσ2)。
- 解码器:从 z∼N(μ,σ)z \sim \mathcal{N}(\mu, \sigma)z∼N(μ,σ) 采样,生成重构数据 x^\hat{x}x^。
2.3 数学原理
VAE的目标是最大化数据边际似然 p(x)=∫p(x∣z)p(z)dzp(x) = \int p(x|z)p(z)dzp(x)=∫p(x∣z)p(z)dz。由于积分不可解,VAE引入变分分布 q(z∣x)q(z|x)q(z∣x) 近似后验 p(z∣x)p(z|x)p(z∣x),优化证据下界(ELBO):
logp(x)≥Eq(z∣x)[logp(x∣z)]−DKL(q(z∣x)∣∣p(z))=LELBO\log p(x) \geq \mathbb{E}_{q(z|x)}[\log p(x|z)] - D_{\text{KL}}(q(z|x) || p(z)) = L_{\text{ELBO}}logp(x)≥Eq(z∣x)[logp(x∣z)]−DKL(q(z∣x)∣∣p(z))=LELBO。
-
重构损失:
Eq(z∣x)[logp(x∣z)]\mathbb{E}_{q(z|x)}[\log p(x|z)]Eq(z∣x)[logp(x∣z)] 表示重构数据 x^\hat{x}x^ 与 xxx 的相似性。若 p(x∣z)p(x|z)p(x∣z) 为高斯分布,假设 x^∼N(f(z),I)\hat{x} \sim \mathcal{N}(f(z), I)x^∼N(f(z),I),则:
logp(x∣z)∝−∥x−x^∥2\log p(x|z) \propto -\| x - \hat{x} \|^2logp(x∣z)∝−∥x−x^∥2,因此重构损失等价于均方误差(MSE)。 -
KL散度:
DKL(q(z∣x)∣∣p(z))D_{\text{KL}}(q(z|x) || p(z))DKL(q(z∣x)∣∣p(z)) 衡量 q(z∣x)=N(μ,σ2)q(z|x) = \mathcal{N}(\mu, \sigma^2)q(z∣x)=N(μ,σ2) 与先验 p(z)=N(0,I)p(z) = \mathcal{N}(0, I)p(z)=N(0,I) 的差异。对于高斯分布,KL散度有闭式解:
DKL=12∑i=1d(μi2+σi2−logσi2−1)D_{\text{KL}} = \frac{1}{2} \sum_{i=1}^d \left( \mu_i^2 + \sigma_i^2 - \log \sigma_i^2 - 1 \right)DKL=21∑i=1d(μi2+σi2−logσi2−1),其中 ddd 是潜在空间维度。 -
重参数化技巧:
直接采样 z∼N(μ,σ)z \sim \mathcal{N}(\mu, \sigma)z∼N(μ,σ) 不可导,因此设:
z=μ+σ⋅ϵ,ϵ∼N(0,I)z = \mu + \sigma \cdot \epsilon, \quad \epsilon \sim \mathcal{N}(0, I)z=μ+σ⋅ϵ,ϵ∼N(0,I),使梯度可通过 μ,σ\mu, \sigmaμ,σ 传播。
总损失为:
L=∥x−x^∥2+DKL(q(z∣x)∣∣p(z))L = \| x - \hat{x} \|^2 + D_{\text{KL}}(q(z|x) || p(z))L=∥x

最低0.47元/天 解锁文章
1070

被折叠的 条评论
为什么被折叠?



