DDPM-KL 散度与 L2 损失

KL 散度与 L2 损失的等价性

您指的两个等价式子是 Lvb\mathcal{L}_{\text{vb}}Lvb 展开后的 Lt\mathcal{L}_tLt 项:

  1. KL 散度形式 (理论基础)
    Lt=Ex0,xtDKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))\mathcal{L}t = \mathbb{E}{x_0, x_t} \left \\mathcal{D}_{\\text{KL}} (q(x_{t-1}\|x_t, x_0) \\\| p_\\theta(x_{t-1}\|x_t)) \\right \quadLt=Ex0,xtDKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))

  2. L2 损失形式 (实际应用)
    Lt=Ex0,t,ϵ∥ϵ−ϵθ(αˉtx0+1−αˉtϵ,t)∥2\mathcal{L}t = \mathbb{E}{x_0, t, \epsilon} \left \\left\\\| \\epsilon - \\epsilon_\\theta (\\sqrt{\\bar{\\alpha}_t} x_0 + \\sqrt{1-\\bar{\\alpha}_t} \\epsilon, t) \\right\\\|\^2 \\right \quadLt=Ex0,t,ϵ ϵ−ϵθ(αˉt x0+1−αˉt ϵ,t) 2

这两个公式是等价的,具体证明过程是 DDPM 理论的核心贡献之一。


详细等价性分析

1. KL 散度的解析解

由于 q(xt−1∣xt,x0)q(x_{t-1}|x_t, x_0)q(xt−1∣xt,x0) 和 pθ(xt−1∣xt)p_\theta(x_{t-1}|x_t)pθ(xt−1∣xt) 都是高斯分布 ,它们之间的 KL 散度 DKL(P∥Q)\mathcal{D}_{\text{KL}}(P \| Q)DKL(P∥Q) 有一个解析解,其形式取决于它们的均值和方差:

DKL(P∥Q)∝log⁡(∣ΣQ∣∣ΣP∣)+Tr(ΣQ−1ΣP)+(μP−μQ)TΣQ−1(μP−μQ)\mathcal{D}_{\text{KL}}(P \| Q) \propto \log \left( \frac{|\Sigma_Q|}{|\Sigma_P|} \right) + \text{Tr}(\Sigma_Q^{-1} \Sigma_P) + (\mu_P - \mu_Q)^\mathrm{T} \Sigma_Q^{-1} (\mu_P - \mu_Q)DKL(P∥Q)∝log(∣ΣP∣∣ΣQ∣)+Tr(ΣQ−1ΣP)+(μP−μQ)TΣQ−1(μP−μQ)

将 DDPM 的参数代入:

  • PPP 是真实的逆向分布 q(xt−1∣xt,x0)q(x_{t-1}|x_t, x_0)q(xt−1∣xt,x0),其均值为 μ~t\tilde{\mu}_tμ~t,方差为 β~tI\tilde{\beta}_t \mathbf{I}β~tI。
  • QQQ 是参数化模型 pθ(xt−1∣xt)p_\theta(x_{t-1}|x_t)pθ(xt−1∣xt),其均值为 μθ\mu_\thetaμθ,方差为 ΣθI\Sigma_\theta \mathbf{I}ΣθI。

如果我们将 参数化模型的方差 Σθ\Sigma_\thetaΣθ 固定真实方差 β~tI\tilde{\beta}_t \mathbf{I}β~tI,那么 KL 散度的许多项会变成常数,只剩下均值项:

Lt∝E∥μ\~t(xt,x0)−μθ(xt,t)∥2\mathcal{L}_t \propto \mathbb{E} \left \\left\\\| \\tilde{\\mu}_t(x_t, x_0) - \\mu_\\theta(x_t, t) \\right\\\|\^2 \\rightLt∝E∥μ\~t(xt,x0)−μθ(xt,t)∥2

2. 均值 L2 损失到噪声 L2 损失的转化

DDPM 的核心思想是:预测噪声比直接预测均值更简单

研究者证明,真实的均值 μ~t(xt,x0)\tilde{\mu}t(x_t, x_0)μ~t(xt,x0) 可以用真实噪声 ϵ\epsilonϵ 表示。同时,我们将参数化均值 μθ(xt,t)\mu\theta(x_t, t)μθ(xt,t) 参数化为预测噪声 ϵθ(xt,t)\epsilon_\theta(x_t, t)ϵθ(xt,t) 的函数。

  • 真实均值 (由 ϵ\epsilonϵ 表达):
    μ~t(xt,x0)∝1αt(xt−βt1−αˉtϵ)\tilde{\mu}_t(x_t, x_0) \propto \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}} \epsilon \right)μ~t(xt,x0)∝αt 1(xt−1−αˉt βtϵ)
  • 参数化均值 (由 ϵθ\epsilon_\thetaϵθ 表达):
    μθ(xt,t)=1αt(xt−βt1−αˉtϵθ(xt,t))\mu_\theta(x_t, t) = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}t}} \epsilon\theta(x_t, t) \right)μθ(xt,t)=αt 1(xt−1−αˉt βtϵθ(xt,t))

将这两个表达式代入 Lt∝E∥μ\~t−μθ∥2\mathcal{L}_t \propto \mathbb{E} \left \\left\\\| \\tilde{\\mu}_t - \\mu_\\theta \\right\\\|\^2 \\rightLt∝E∥μ\~t−μθ∥2 中:

Lt∝E∥(1αt(xt−βt1−αˉtϵ))−(1αt(xt−βt1−αˉtϵθ))∥2\mathcal{L}_t \propto \mathbb{E} \left \\left\\\| \\left( \\frac{1}{\\sqrt{\\alpha_t}} \\left( x_t - \\frac{\\beta_t}{\\sqrt{1-\\bar{\\alpha}_t}} \\epsilon \\right) \\right) - \\left( \\frac{1}{\\sqrt{\\alpha_t}} \\left( x_t - \\frac{\\beta_t}{\\sqrt{1-\\bar{\\alpha}_t}} \\epsilon_\\theta \\right) \\right) \\right\\\|\^2 \\rightLt∝E (αt 1(xt−1−αˉt βtϵ))−(αt 1(xt−1−αˉt βtϵθ)) 2

提取公因式 1αt\frac{1}{\sqrt{\alpha_t}}αt 1 和 xtx_txt,可以看到 xtx_txt 项被完全抵消:

Lt∝E∥1αtβt1−αˉt(ϵθ−ϵ)∥2\mathcal{L}_t \propto \mathbb{E} \left \\left\\\| \\frac{1}{\\sqrt{\\alpha_t}} \\frac{\\beta_t}{\\sqrt{1-\\bar{\\alpha}_t}} (\\epsilon_\\theta - \\epsilon) \\right\\\|\^2 \\rightLt∝E αt 11−αˉt βt(ϵθ−ϵ) 2

忽略前面那些只依赖于 ttt 而不依赖于 θ\thetaθ 的系数(它们在优化过程中是常数),最终损失简化为:

Lt∝E∥ϵ−ϵθ(xt,t)∥2\mathcal{L}_t \propto \mathbb{E} \left \\left\\\| \\epsilon - \\epsilon_\\theta(x_t, t) \\right\\\|\^2 \\rightLt∝E∥ϵ−ϵθ(xt,t)∥2

因此,最小化 KL 散度(Lt\mathcal{L}_tLt 的理论形式 )等价于最小化噪声的 L2 距离(Lt\mathcal{L}_tLt 的实用形式)。这是 DDPM 训练成功的关键。

相关推荐
程序员cxuan1 分钟前
一句话,让你用上 GPT-5.6
人工智能·后端·程序员
机器之心3 分钟前
AI圈刚开始谈Loop Engineering,两位95后博士已经盯上了人类闭环数据
人工智能·openai
澄旭5 分钟前
一文讲清 MCP:AI 应用连接外部世界的标准协议
人工智能
机器之心13 分钟前
不只DeepSeek,阶跃等开源JetSpec:大模型解码提速近10倍
人工智能·openai
moMo39 分钟前
当LLM学会"递纸条",AI是如何调用工具的
人工智能
拾年27541 分钟前
大模型的"聪明"从哪来?聊聊 AI 数据集的那些事儿
人工智能·深度学习·机器学习
拾年2751 小时前
从 Prompt 到 Context 再到 Harness:AI 工程化的三年三级跳
人工智能
用户3090463613941 小时前
Claude 不会直接执行你的函数,它只会生成一段结构化的工具调用请求。真正执行函数、访问数据库、请求外部 API 的动作,必须由你的后端完成。
人工智能
不加辣椒1 小时前
第14章 Prompt 编排与优化技术
人工智能