从数学原理到落地实践
在扩散模型的应用中,“如何让模型生成符合特定条件的内容”是核心问题之一——无论是文本引导生成图像、图像修复中的区域约束,还是多模态信息融合,本质都是通过“条件注入”让模型输出贴合需求。本文将从数学定义、直观意义、实践对比三个维度,系统拆解分类器引导、无分类器引导(CFG)、简单手动引导三种主流条件注入方式,同时补充落地细节与避坑指南,帮你快速掌握“选哪种、怎么用”。
一、基础符号约定
在展开前,先统一本文使用的核心符号(后续公式均基于此),避免理解混淆:
- 扩散模型前向过程(加噪):q(xt∣xt−1)q(x_t \mid x_{t-1})q(xt∣xt−1),表示从t−1t-1t−1步的样本xt−1x_{t-1}xt−1加噪到ttt步xtx_txt的分布;
- 去噪模型核心:ϵθ(xt,t)\epsilon_\theta(x_t, t)ϵθ(xt,t)(预测ttt步样本的噪声)或pθ(xt−1∣xt)p_\theta(x_{t-1} \mid x_t)pθ(xt−1∣xt)(从xtx_txt逆扩散到xt−1x_{t-1}xt−1的分布),θ\thetaθ为模型参数;
- 条件变量:yyy(可扩展为多模态条件,如文本ytexty_{\text{text}}ytext、图像yimgy_{\text{img}}yimg);
- 引导强度:s(t)s(t)s(t)或www(随时间步ttt变化的权重,控制条件影响程度)。
二、三种条件注入方式:数学原理+直观解读
1. 分类器引导(Classifier Guidance):强约束的“双模型协作”
核心逻辑
通过“扩散模型+独立分类器”的双模型架构,用分类器的概率梯度修正逆扩散方向,实现强条件控制——本质是“让模型在自然去噪的同时,向符合条件yyy的方向偏移”。
数学表达
-
逆扩散梯度修正公式(核心):
∇xtlogpθ(xt−1∣xt,y)=∇xtlogpθ(xt−1∣xt)+s(t)⋅∇xtlogpϕ(y∣xt,t)\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)∇xtlogpθ(xt−1∣xt,y)=∇xtlogpθ(xt−1∣xt)+s(t)⋅∇xtlogpϕ(y∣xt,t)- 第一项∇xtlogpθ(⋅)\nabla_{x_t} \log p_\theta(\cdot)∇xtlogpθ(⋅):自然去噪方向,让xtx_t

最低0.47元/天 解锁文章
1079

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



