变分自编码器(Variational Autoencoder, VAE)中的解码器(Decoder)详解

VAE中的解码器(Decoder)详解

变分自编码器(Variational Autoencoder, VAE)是一种广泛使用的生成模型,其解码器(Decoder)是模型的重要组成部分,负责从潜变量 ( z z z ) 重构数据(如图像)。在本篇博客中,我们将结合数学推导和图示(图 1.6,来源:https://arxiv.org/pdf/2403.18103),详细介绍 VAE 解码器的结构、工作原理以及其在 ELBO 优化中的作用,面向对深度学习和概率模型感兴趣的读者。


解码器的基本结构

VAE 的解码器通过一个神经网络实现,记为 ( DecoderNetwork θ ( ⋅ ) \text{DecoderNetwork}_θ(\cdot) DecoderNetworkθ(⋅) ),其中 ( θ θ θ ) 表示网络的参数。解码器的核心任务是接受潜变量 ( z z z ) 作为输入,并生成一个重构数据 ( f θ ( z ) f_θ(z) fθ(z) ):

f θ ( z ) = DecoderNetwork θ ( z ) f_θ(z) = \text{DecoderNetwork}_θ(z) fθ(z)=DecoderNetworkθ(z)

这里 ( f θ ( z ) f_θ(z) fθ(z) ) 可以看作是重构的图像或数据,依赖于 ( θ θ θ ) 参数化的神经网络。解码器定义了一个条件分布 ( p θ ( x ∣ z ) p_θ(x|z) pθ(x∣z) ),表示给定潜变量 ( z z z ) 后,数据 ( x x x ) 的生成分布。我们通常假设 ( p θ ( x ∣ z ) p_θ(x|z) pθ(x∣z) ) 为高斯分布,形式为:

p θ ( x ∣ z ) = N ( x ∣ f θ ( z ) , σ dec 2 I ) p_θ(x|z) = \mathcal{N}(x | f_θ(z), σ^2_{\text{dec}} I) pθ(x∣z)=N(x∣fθ(z),σdec2I)

其中:

  • ( f θ ( z ) f_θ(z) fθ(z) ) 是分布的均值,即神经网络预测的重构结果。
  • ( σ dec 2 I σ^2_{\text{dec}} I σdec2I ) 是协方差矩阵,( σ dec σ_{\text{dec}} σdec ) 是一个超参数,表示方差,( I I I ) 是单位矩阵,假设各维度独立。

重参数化采样

从 ( p θ ( x ∣ z ) p_θ(x|z) pθ(x∣z) ) 中采样生成图像 ( x ^ \hat{x} x^ ) 时,我们可以使用重参数化技巧:

x ^ = f θ ( z ) + σ dec ϵ , ϵ ∼ N ( 0 , I ) \hat{x} = f_θ(z) + σ_{\text{dec}} ϵ, \quad ϵ \sim \mathcal{N}(0, I) x^=fθ(z)+σdecϵ,ϵ∼N(0,I)

这个表达式将随机性引入 ( ϵ ϵ ϵ ),而 ( f θ ( z ) f_θ(z) fθ(z) ) 提供了确定性部分,使得梯度可以传播到 ( θ θ θ )。

(具体可以参考笔者的博客:VAE中的重参数化技巧(Reparameterization Trick)详解VAE中的编码器(Encoder)详解


对数似然度的推导

为了优化 VAE,我们需要计算 ELBO(证据下界),其中包括对 ( log ⁡ p θ ( x ∣ z ) \log p_θ(x|z) logpθ(x∣z) ) 的期望。让我们推导 ( log ⁡ p θ ( x ∣ z ) \log p_θ(x|z) logpθ(x∣z)):

p θ ( x ∣ z ) = N ( x ∣ f θ ( z ) , σ dec 2 I ) p_θ(x|z) = \mathcal{N}(x | f_θ(z), σ^2_{\text{dec}} I) pθ(x∣z)=N(x∣fθ(z),σdec2I)

高斯分布的概率密度函数为:

N ( x ∣ μ , σ 2 I ) = 1 ( 2 π σ 2 ) d / 2 exp ⁡ ( − ∥ x − μ ∥ 2 2 σ 2 ) \mathcal{N}(x | μ, σ^2 I) = \frac{1}{(2\pi σ^2)^{d/2}} \exp \left( -\frac{\|x - μ\|^2}{2 σ^2} \right) N(x∣μ,σ2I)=(2πσ2)d/21exp(−2σ2∥x−μ∥2)

代入 ( μ = f θ ( z ) μ = f_θ(z) μ=fθ(z) ),( σ 2 = σ dec 2 σ^2 = σ^2_{\text{dec}} σ2=σdec2 ):

log ⁡ p θ ( x ∣ z ) = log ⁡ [ 1 ( 2 π σ dec 2 ) d / 2 exp ⁡ ( − ∥ x − f θ ( z ) ∥ 2 2 σ dec 2 ) ] \log p_θ(x|z) = \log \left[ \frac{1}{(2\pi σ^2_{\text{dec}})^{d/2}} \exp \left( -\frac{\|x - f_θ(z)\|^2}{2 σ^2_{\text{dec}}} \right) \right] logpθ(x∣z)=log[(2πσdec2)d/21exp(−2σdec2∥x−fθ(z)∥2)]

利用对数性质:

= log ⁡ ( 1 ( 2 π σ dec 2 ) d / 2 ) + log ⁡ ( exp ⁡ ( − ∥ x − f θ ( z ) ∥ 2 2 σ dec 2 ) ) = \log \left( \frac{1}{(2\pi σ^2_{\text{dec}})^{d/2}} \right) + \log \left( \exp \left( -\frac{\|x - f_θ(z)\|^2}{2 σ^2_{\text{dec}}} \right) \right) =log((2πσdec2)d/21)+log(exp(−2σdec2∥x−fθ(z)∥2))

= − d 2 log ⁡ ( 2 π σ dec 2 ) − ∥ x − f θ ( z ) ∥ 2 2 σ dec 2 = -\frac{d}{2} \log (2\pi σ^2_{\text{dec}}) - \frac{\|x - f_θ(z)\|^2}{2 σ^2_{\text{dec}}} =−2dlog(2πσdec2)−2σdec2∥x−fθ(z)∥2

其中,( − d 2 log ⁡ ( 2 π σ dec 2 ) -\frac{d}{2} \log (2\pi σ^2_{\text{dec}}) −2dlog(2πσdec2) ) 是与 ( θ θ θ ) 无关的常数项,在优化时可以忽略。因此,简化后:

log ⁡ p θ ( x ∣ z ) ≈ − ∥ x − f θ ( z ) ∥ 2 2 σ dec 2 \log p_θ(x|z) \approx -\frac{\|x - f_θ(z)\|^2}{2 σ^2_{\text{dec}}} logpθ(x∣z)≈−2σdec2∥x−fθ(z)∥2

如图 1.6 所示,这一形式表明对数似然度与重构误差 ( ∥ x − f θ ( z ) ∥ 2 \|x - f_θ(z)\|^2 ∥x−fθ(z)∥2 ) 成二次关系,类似于 ( ℓ 2 \ell_2 ℓ2 ) 范数损失。


ELBO中的重构项

ELBO 的重构项是 ( E q φ ( z ∣ x ) [ log ⁡ p θ ( x ∣ z ) ] \mathbb{E}_{q_φ(z|x)} [\log p_θ(x|z)] Eqφ(z∣x)[logpθ(x∣z)] ),其形式为:

E q φ ( z ∣ x ) [ log ⁡ p θ ( x ∣ z ) ] = ∫ log ⁡ p θ ( x ∣ z ) ⋅ q φ ( z ∣ x )   d z \mathbb{E}_{q_φ(z|x)} [\log p_θ(x|z)] = \int \log p_θ(x|z) \cdot q_φ(z|x) \, dz Eqφ(z∣x)[logpθ(x∣z)]=∫logpθ(x∣z)⋅qφ(z∣x)dz

代入 ( log ⁡ p θ ( x ∣ z ) ≈ − ∥ x − f θ ( z ) ∥ 2 2 σ dec 2 \log p_θ(x|z) \approx -\frac{\|x - f_θ(z)\|^2}{2 σ^2_{\text{dec}}} logpθ(x∣z)≈−2σdec2∥x−fθ(z)∥2 ):

= − ∫ ∥ x − f θ ( z ) ∥ 2 2 σ dec 2 ⋅ q φ ( z ∣ x )   d z + C = -\int \frac{\|x - f_θ(z)\|^2}{2 σ^2_{\text{dec}}} \cdot q_φ(z|x) \, dz + C =−∫2σdec2∥x−fθ(z)∥2⋅qφ(z∣x)dz+C

其中 ( C C C ) 是常数,可以忽略。直接计算该积分通常不可行,因此我们使用重参数化技巧,将 ( z z z ) 表示为:

z = μ φ ( x ) + σ φ ( x ) ϵ , ϵ ∼ N ( 0 , I ) z = μ_φ(x) + σ_φ(x) ϵ, \quad ϵ \sim \mathcal{N}(0, I) z=μφ(x)+σφ(x)ϵ,ϵ∼N(0,I)

代入后,期望变为:

E q φ ( z ∣ x ) [ log ⁡ p θ ( x ∣ z ) ] ≈ − 1 M ∑ m = 1 M ∥ x − f θ ( z ( m ) ) ∥ 2 2 σ dec 2 \mathbb{E}{q_φ(z|x)} [\log p_θ(x|z)] \approx -\frac{1}{M} \sum{m=1}^M \frac{\|x - f_θ(z^{(m)})\|^2}{2 σ^2_{\text{dec}}} Eqφ(z∣x)[logpθ(x∣z)]≈−M1m=1∑M2σdec2∥x−fθ(z(m))∥2

其中 ( z ( m ) = μ φ ( x ) + σ φ ( x ) ϵ ( m ) z^{(m)} = μ_φ(x) + σ_φ(x) ϵ^{(m)} z(m)=μφ(x)+σφ(x)ϵ(m) ),( ϵ ( m ) ϵ^{(m)} ϵ(m) ) 是 ( M M M ) 次蒙特卡洛采样的结果。( M M M ) 是采样的次数,越大越接近真实期望值。

损失函数的解读

( − 1 M ∑ m = 1 M ∥ x − f θ ( z ( m ) ) ∥ 2 2 σ dec 2 -\frac{1}{M} \sum_{m=1}^M \frac{\|x - f_θ(z^{(m)})\|^2}{2 σ^2_{\text{dec}}} −M1∑m=1M2σdec2∥x−fθ(z(m))∥2 ) 实际上是重构图像 ( f θ ( z ) f_θ(z) fθ(z) ) 与真实图像 ( x x x ) 之间的 ( ℓ 2 \ell_2 ℓ2 ) 范数损失的平均。这种形式与图 1.6 中展示的直观一致:解码器生成 ( f θ ( z ) f_θ(z) fθ(z) ) 后,直接通过 ( ℓ 2 \ell_2 ℓ2 ) 损失与 ( x x x ) 比较。


梯度计算

  • 关于 ( θ θ θ ) 的梯度 :由于 ( f θ ( z ) f_θ(z) fθ(z) ) 依赖 ( θ θ θ ),梯度可以通过自动微分计算,适合反向传播。
  • 关于 ( φ φ φ ) 的梯度 :通过链式法则,梯度涉及 ( μ φ ( x ) μ_φ(x) μφ(x) ) 和 ( σ φ ( x ) σ_φ(x) σφ(x) ),计算稍复杂但仍可行。

优化目标是最大化 ( E q φ ( z ∣ x ) [ log ⁡ p θ ( x ∣ z ) ] \mathbb{E}_{q_φ(z|x)} [\log p_θ(x|z)] Eqφ(z∣x)[logpθ(x∣z)] ),等价于最小化负 ( ℓ 2 \ell_2 ℓ2 ) 损失。


总结

VAE 解码器通过神经网络 ( DecoderNetwork θ \text{DecoderNetwork}_θ DecoderNetworkθ ) 从潜变量 ( z z z ) 生成重构数据 ( f θ ( z ) f_θ(z) fθ(z) ),并假设 ( p θ ( x ∣ z ) p_θ(x|z) pθ(x∣z) ) 为高斯分布。其对数似然度简化为 ( ℓ 2 \ell_2 ℓ2 ) 范数形式,在 ELBO 中通过蒙特卡洛近似计算重构项。解码器的设计不仅体现了生成过程的概率特性,还与传统图像重建损失自然衔接,是 VAE 训练的关键部分。

希望这篇博客能帮助你深入理解 VAE 解码器!

后记

2025年3月3日20点41分于上海,在grok 3大模型辅助下完成。

相关推荐
乱世刀疤15 分钟前
AI绘画软件Stable Diffusion详解教程(6):文生图、提示词细说与绘图案例
人工智能·ai作画·stable diffusion
AAA小肥杨24 分钟前
深度解析 | 2025 AI新突破,物理信息神经网络(PINN):Nature级顶刊的「科研加速器」,70份源码论文速取!
人工智能·深度学习·神经网络·pinn
21号 126 分钟前
*算法中的数据结构(3)
数据结构·算法·散列表
Data-Miner28 分钟前
112页精品PPT | DeepSeek行业应用实践报告
人工智能·ai·数字化
dundunmm43 分钟前
【数据挖掘]Ndarray数组的创建
python·机器学习·数据挖掘·numpy
孑么1 小时前
力扣 最长回文子串
java·数据结构·算法·leetcode·职场和发展·动态规划
Loving_enjoy1 小时前
DeepSeek、Grok与ChatGPT:AI三巨头的技术博弈与场景革命
人工智能
windwant1 小时前
神经网络:AI的网络神经
网络·人工智能·神经网络
代码两三事1 小时前
快速搞定基础排序算法 —— 归并排序
数据结构·算法·排序算法