返回 多模态 思维导图
中文·English
👁️ 多模态ID: diffusion-training-loss

扩散训练目标 (ε/v-pred 与 Zero-SNR)

Diffusion Training Objectives (ε/v-pred, Zero-SNR)
🎯核心定义
扩散模型的训练目标有多种参数化, 本质是对同一后验均值的不同分解, 但在不同信噪比 (SNR) 区间的数值稳定性不同。三种主流形式:
📌核心概述
1. ε-pred (DDPM 原始): 直接预测所加噪声, L=E[ϵϵθ(xt,t)2]\mathcal{L} = \mathbb{E}\left[\Vert\epsilon - \epsilon_\theta(x_t, t)\Vert^2\right]。 2. x0-pred: 预测干净图像, 采样可一步得到估计但低 SNR 时目标弱。 3. v-pred (v-parameterization, SD2/Imagen 等): 定义速度场 vαtϵσtx0v \equiv \alpha_t\epsilon - \sigma_t x_0, 其中 αt=αˉt\alpha_t = \sqrt{\bar\alpha_t}σt=1αˉt\sigma_t = \sqrt{1-\bar\alpha_t}, 目标 L=vvθ(xt,t)2\mathcal{L} = \Vert v - v_\theta(x_t,t)\Vert^2; 由 xt=αtx0+σtϵx_t = \alpha_t x_0 + \sigma_t \epsilon 可互推 x0=αtxtσtvθ(xt,t)x_0 = \alpha_t x_t - \sigma_t v_\theta(x_t,t)ϵ=σtxt+αtvθ(xt,t)\epsilon = \sigma_t x_t + \alpha_t v_\theta(x_t,t), 采样时三者可互换。
📌核心概述
Zero-SNR 问题: 传统线性噪声调度下 αˉT0\bar\alpha_T \neq 0, 即末步 xTx_T 仍残留信号, 与“从纯高斯噪声采样”的推理边界不一致, 模型被迫在末步猜测信号。Zero-SNR 调度使 αˉT=0\bar\alpha_T = 0 (xTx_T 为纯噪声), 此时 ε-pred 与 x0-pred 的系数 1αˉt\sqrt{1-\bar\alpha_t}αˉt\sqrt{\bar\alpha_t} 在末步退化/发散, 必须改用 v-pred: 其两项系数 αt,σt\alpha_t, \sigma_t 随 SNR 平滑过渡、损失权重在各时间步天然均衡, 训练与采样边界一致, 显著改善末步去噪质量。
📌核心概述
CFG dropout: 训练时以 10–15% 概率把条件 cc 替换为空条件 \emptyset, 使同一网络具备无条件分支, 采样期才能做 Classifier-Free Guidance。
💡使用场景
面试高频追问 “SD2 为什么改用 v-pred? 什么是 Zero-SNR? CFG dropout 取多少?”; 训练扩散模型的工程选型。
解决的核心痛点
ε-pred 在高 SNR (小 tt) 时损失被噪声项主导、低 SNR (大 tt) 时信号项梯度消失, 各时间步损失不均衡; v-pred + Zero-SNR 使损失权重跨时间步均匀、末步边界成立, 提升训练稳定性与采样质量, 是 SD2/SDXL/Flux 等大模型的标准配置。
🎯5 个高频面试考点 (Exam Points)
1
ε-pred 与 v-pred 的区别? v = α_t·ε − σ_t·x_0 中 α_t、σ_t 的定义?
2
什么是 Zero-SNR? 为什么 Zero-SNR 调度下必须用 v-pred?
3
写出 v-pred 与 x_0、ε 的互换关系, 采样时如何从 v_θ 恢复 x_0?
4
CFG dropout 概率一般取多少? 没有它 CFG 还能用吗?
5
为什么 SD2/SDXL/Flux 用 v-pred 而不是 ε-pred? 各时间步损失权重如何变化?
📖 关联深度指南:📄 diffusion-models
更新于 2026-08-12
🎯
检验攻克程度:针对「扩散训练目标 (ε/v-pred 与 Zero-SNR)」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点扩散 vs GAN vs 自回归下一个知识点视频渐进训练

🔗 更多 多模态 知识点卡片

语音识别 ASR音频表示Classifier-Free Guidance (CFG)CLIP 应用