从数学原理到落地实践
在扩散模型的应用中,“如何让模型生成符合特定条件的内容” 是核心问题之一 —— 无论是文本引导生成图像、图像修复中的区域约束,还是多模态信息融合,本质都是通过 “条件注入” 让模型输出贴合需求。本文将从数学定义、直观意义、实践对比三个维度,系统拆解分类器引导、无分类器引导(CFG)、简单手动引导三种主流条件注入方式,同时补充落地细节与避坑指南,帮你快速掌握 “选哪种、怎么用”。
一、基础符号约定
在展开前,先统一本文使用的核心符号(后续公式均基于此),避免理解混淆:
- 扩散模型前向过程(加噪):\(q(x_t \mid x_{t-1})\),表示从\(t-1\)步的样本\(x_{t-1}\)加噪到\(t\)步\(x_t\)的分布;
- 去噪模型核心:\(\epsilon_\theta(x_t, t)\)(预测\(t\)步样本的噪声)或\(p_\theta(x_{t-1} \mid x_t)\)(从\(x_t\)逆扩散到\(x_{t-1}\)的分布),\(\theta\)为模型参数;
- 条件变量:\(y\)(可扩展为多模态条件,如文本\(y_{\text{text}}\)、图像\(y_{\text{img}}\));
- 引导强度:\(s(t)\)或\(w\)(随时间步\(t\)变化的权重,控制条件影响程度)。
二、三种条件注入方式:数学原理 + 直观解读
1. 分类器引导(Classifier Guidance):强约束的 “双模型协作”
核心逻辑
通过 “扩散模型 + 独立分类器” 的双模型架构,用分类器的概率梯度修正逆扩散方向,实现强条件控制 —— 本质是 “让模型在自然去噪的同时,向符合条件\(y\)的方向偏移”。
数学表达
- 逆扩散梯度修正公式(核心):
\(\nabla_{x_t} \log p_\theta(x_{t-1} \mid x_t, y) = \nabla_{x_t} \log p_\theta(x_{t-1} \mid x_t) + s(t) \cdot \nabla_{x_t} \log p_\phi(y \mid x_t, t)\)
-
- 第一项\(\nabla_{x_t} \log p_\theta(\cdot)\):自然去噪方向,让\(x_t\)按无约束的逆扩散规律更新到\(x_{t-1}\);
-
- 第二项\(s(t) \cdot \nabla_{x_t} \log p_\phi(\cdot)\):条件约束方向,\(p_\phi(y \mid x_t, t)\)是分类器预测 “\(x_t\)符合条件\(y\)” 的概率,其梯度方向代表 “让\(x_t\)更贴近\(y\)” 的调整方向,\(s(t)\)控制该约束的强度;
-
- 叠加效果:自然去噪与条件约束的平衡,比如早期\(x_t\)噪声大时,\(s(t)\)取较大值(如 2)强制贴合条件,晚期\(x_t\)接近真实样本时,\(s(t)\)减小(如 0.5)保留多样性。
- 分类器训练目标:
分类器需单独训练,目标是最大化 “给定\(x_t\)和\(t\)时预测\(y\)的对数概率”:
\(\max_\phi \mathbb{E}_{t, x_t, y} \left[ \log p_\phi(y \mid x_t, t) \right]\)
关键特性(落地视角)
- 依赖:需独立分类器 + 高质量标注数据\((x_t, y, t)\)(分类器性能直接影响引导效果);