122122DDPM的核心是** 两个对称的一阶马尔可夫链** :一个是** 固定的前向扩散链** (逐步将数据转化为纯噪声),另一个是** 可学习的反向去噪链** (逐步从纯噪声中恢复数据)。整个模型通过变分推断训练反向链,使其精确逆转前向扩散过程。
123123
124124### 1. DDPM中马尔可夫链的核心定义
125- DDPM是一个隐变量模型,其所有状态转移都满足** 一阶马尔可夫性** :任意时刻的状态$x_t$只依赖于前一时刻的状态$x_ {t-1}$,与更早的状态无关。
126- - 前向过程(扩散):$q(x_ {1: T }|x_0) = \prod_ {t=1}^T q(x_t|x_ {t-1})$,是** 固定无参数** 的马尔可夫链
127- - 反向过程(生成):$p_ \theta(x_ {0: T }) = p(x_T) \prod_ {t=1}^T p_ \theta(x_ {t-1}|x_t)$,是** 可学习参数** 的马尔可夫链
128- - 所有隐变量$x_1,...,x_T$与数据$x_0$具有相同维度
125+
126+ DDPM是一个隐变量模型,其所有状态转移都满足** 一阶马尔可夫性** :任意时刻的状态 $x_t$ 只依赖于前一时刻的状态 $x_ {t-1}$ ,与更早的状态无关。
127+
128+ - 前向过程(扩散): $q(x_ {1: T }|x_0) = \prod_ {t=1}^T q(x_t|x_ {t-1})$ ,是** 固定无参数** 的马尔可夫链
129+ - 反向过程(生成): $p_ \theta(x_ {0: T }) = p(x_T) \prod_ {t=1}^T p_ \theta(x_ {t-1}|x_t)$ ,是** 可学习参数** 的马尔可夫链
130+ - 所有隐变量 $x_1,...,x_T$ 与数据 $x_0$ 具有相同维度
129131
130132### 2. 前向扩散过程(数据→噪声)
131- 前向过程的目标是** 逐步向原始数据添加微小的高斯噪声** ,经过$T$步后将数据完全转化为标准高斯噪声。
133+
134+ 前向过程的目标是** 逐步向原始数据添加微小的高斯噪声** ,经过 $T$ 步后将数据完全转化为标准高斯噪声。
132135
133136#### 1. 转移分布定义
134137
@@ -211,15 +214,17 @@ L_{\text{simple}}(\theta) = \mathbb{E}_{t \sim U(1,T), x_0 \sim q(x_0), \epsilon
211214
212215训练完成后,生成样本的过程如下:
213216
214- 1 . 从标准高斯分布采样初始噪声: $x_T \sim \mathcal{N}(0,I)$
215- 2 . 从 $t=T$ 到 $t=1$ 逐步迭代:
217+ ** 步骤 1** :从标准高斯分布采样初始噪声 $x_T \sim \mathcal{N}(0,I)$ 。
218+
219+ ** 步骤 2** :从 $t=T$ 到 $t=1$ 逐步迭代:
216220
217- ``` math
218- x_{t-1} = \frac{1}{\sqrt{\alpha_t}}\left(x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(x_t,t)\right) + \sigma_t z
219- ```
221+ ``` math
222+ x_{t-1} = \frac{1}{\sqrt{\alpha_t}}\left(x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}}\epsilon_\theta(x_t,t)\right) + \sigma_t z
223+ ```
220224
221- 其中 $z \sim \mathcal{N}(0,I)$ (当 $t=1$ 时 $z=0$ ,最后一步不加噪声)
222- 3 . 最终输出 $x_0$ 即为生成的图像
225+ 其中 $z \sim \mathcal{N}(0,I)$ (当 $t=1$ 时 $z=0$ ,最后一步不加噪声)。
226+
227+ ** 步骤 3** :最终输出 $x_0$ 即为生成的图像。
223228
224229
225230<h2 id =" q-003 " >面试问题:介绍一下DDPM中的重参数技巧</h2 >
@@ -366,23 +371,25 @@ L_{\text{simple}}(\theta) = \mathbb{E}_{t \sim U(1,T), x_0 \sim q(x_0), \epsilon
366371
367372#### 2. 常见的混合策略
368373
369- 1 . ** 阶段式混合** :
370- - 训练前期(前70%-80%的迭代):使用 $L_ {\text{simple}}$ 快速学习图像的整体结构和语义
371- - 训练后期(后20%-30%的迭代):切换到 $L_ {\text{vlb}}$ 优化细节和对数似然
372- - 效果:FID分数与纯 $L_ {\text{simple}}$ 相当,同时NLL值大幅提升
374+ ** 1. 阶段式混合**
373375
374- 2 . ** 时间步混合** :
375- - 高噪声阶段( $t > t_0$ ):使用 $L_ {\text{simple}}$ 的均匀权重,保证整体结构质量
376- - 低噪声阶段( $t \leq t_0$ ):使用 $L_ {\text{vlb}}$ 的原始权重,优化细节重建
377- - 效果:在不损失整体质量的前提下,提升图像的细节清晰度
376+ - 训练前期(前70%-80%的迭代):使用 $L_ {\text{simple}}$ 快速学习图像的整体结构和语义
377+ - 训练后期(后20%-30%的迭代):切换到 $L_ {\text{vlb}}$ 优化细节和对数似然
378+ - 效果:FID分数与纯 $L_ {\text{simple}}$ 相当,同时NLL值大幅提升
378379
379- 3 . ** 加权混合 ** :
380+ ** 2. 时间步混合 **
380381
381- ``` math
382- L_{\text{mixed}} = \lambda L_{\text{simple}} + (1-\lambda) L_{\text{ vlb}}
383- ```
382+ - 高噪声阶段( $t > t_0$ ):使用 $L _ {\text{simple}}$ 的均匀权重,保证整体结构质量
383+ - 低噪声阶段( $t \leq t_0$ ):使用 $ L_ {\text{vlb}}$ 的原始权重,优化细节重建
384+ - 效果:在不损失整体质量的前提下,提升图像的细节清晰度
384385
385- 其中 $\lambda \in (0,1)$ 是平衡系数,通常取 $\lambda=0.9$ 左右。
386+ ** 3. 加权混合**
387+
388+ ``` math
389+ L_{\text{mixed}} = \lambda L_{\text{simple}} + (1-\lambda) L_{\text{vlb}}
390+ ```
391+
392+ 其中 $\lambda \in (0,1)$ 是平衡系数,通常取 $\lambda=0.9$ 左右。
386393
387394#### 3. 解决的核心问题
388395
@@ -789,17 +796,23 @@ x_{t-1} = \sqrt{\alpha_{t-1}} \cdot \hat{x}_0 + \sqrt{1-\alpha_{t-1}-\sigma_t^2}
789796
790797DDIM能实现确定性生成的根本原因,是它** 打破了扩散模型必须是马尔可夫随机过程的固有认知** :
791798
792- 1 . ** 训练目标的不变性** :DDPM的训练损失只依赖于所有噪声水平的边缘分布 $q(x_t|x_0)$ ,与前向过程的马尔可夫性完全无关。只要边缘分布不变,我们可以构造任意非马尔可夫前向过程。
799+ ** 1. 训练目标的不变性**
800+
801+ DDPM的训练损失只依赖于所有噪声水平的边缘分布 $q(x_t|x_0)$ ,与前向过程的马尔可夫性完全无关。只要边缘分布不变,我们可以构造任意非马尔可夫前向过程。
793802
794- 2 . ** 非马尔可夫前向过程的构造** :DDIM构造了一族前向过程,其中每一步 $x_ {t-1}$ 都直接依赖原始干净图像 $x_0$ ,而不仅仅是前一步的 $x_t$ :
803+ ** 2. 非马尔可夫前向过程的构造**
804+
805+ DDIM构造了一族前向过程,其中每一步 $x_ {t-1}$ 都直接依赖原始干净图像 $x_0$ ,而不仅仅是前一步的 $x_t$ :
806+
807+ ``` math
808+ q_\sigma(x_{t-1}|x_t,x_0) = \mathcal{N}\left(\sqrt{\alpha_{t-1}}x_0 + \sqrt{1-\alpha_{t-1}-\sigma_t^2}\cdot\frac{x_t-\sqrt{\alpha_t}x_0}{\sqrt{1-\alpha_t}}, \sigma_t^2 I\right)
809+ ```
795810
796- ``` math
797- q_\sigma(x_{t-1}|x_t,x_0) = \mathcal{N}\left(\sqrt{\alpha_{t-1}}x_0 + \sqrt{1-\alpha_{t-1}-\sigma_t^2}\cdot\frac{x_t-\sqrt{\alpha_t}x_0}{\sqrt{1-\alpha_t}}, \sigma_t^2 I\right)
798- ```
811+ 当 $\sigma_t=0$ 时,这个条件分布退化为一个点质量,即给定 $x_t$ 和 $x_0$ , $x_ {t-1}$ 是唯一确定的。
799812
800- 当 $\sigma_t=0$ 时,这个条件分布退化为一个点质量,即给定 $x_t$ 和 $x_0$ , $x _ {t-1}$ 是唯一确定的。
813+ ** 3. 反向过程的确定性推导 **
801814
802- 3 . ** 反向过程的确定性推导 ** : 对应的反向生成过程也因此变成确定性的——每一步的 $x_ {t-1}$ 完全由当前的 $x_t$ 和模型预测的 $\hat{x}_ 0$ 唯一确定,不需要注入任何随机噪声。
815+ 对应的反向生成过程也因此变成确定性的——每一步的 $x_ {t-1}$ 完全由当前的 $x_t$ 和模型预测的 $\hat{x}_ 0$ 唯一确定,不需要注入任何随机噪声。
803816
804817### 3. 确定性DDIM的理论本质
805818
@@ -933,18 +946,19 @@ dx = \left[ f(x, t) - g^2(t) \nabla_x \log p_t(x) \right] dt + g(t)d\bar{w}
933946
934947#### 3. 训练与采样
935948
936- - ** 训练目标** :训练一个时间依赖的Score网络 $s_ \theta(x, t)$ ,通过** 加权Fisher散度** (去噪Score匹配)近似真实Score函数:
949+ ** 训练目标** :训练一个时间依赖的Score网络 $s_ \theta(x, t)$ ,通过** 加权Fisher散度** (去噪Score匹配)近似真实Score函数:
950+
951+ ``` math
952+ \mathcal{L} = \mathbb{E}_{t \sim \mathcal{U}(0,T), x \sim p_t(x)} \left[ \lambda(t) \left\| s_\theta(x, t) - \nabla_x \log p_t(x) \right\|_2^2 \right]
953+ ```
937954
938- ``` math
939- \mathcal{L} = \mathbb{E}_{t \sim \mathcal{U}(0,T), x \sim p_t(x)} \left[ \lambda(t) \left\| s_\theta(x, t) - \nabla_x \log p_t(x) \right\|_2^2 \right]
940- ```
955+ 其中 $\lambda(t)$ 是时间权重函数,不同的权重对应不同的模型变体。
941956
942- 其中 $\lambda(t)$ 是时间权重函数,不同的权重对应不同的模型变体。
957+ ** 采样方法 ** :
943958
944- - ** 采样方法** :
945- - ** 随机采样** :用Euler-Maruyama等数值方法求解反向SDE,结果具有多样性
946- - ** 确定性采样** :求解对应的** 概率流ODE** ,结果可复现且支持精确似然计算
947- - ** 预测-校正采样** :结合SDE求解器(预测)和Langevin动力学(校正),在速度和质量之间取得最佳平衡
959+ - ** 随机采样** :用Euler-Maruyama等数值方法求解反向SDE,结果具有多样性
960+ - ** 确定性采样** :求解对应的** 概率流ODE** ,结果可复现且支持精确似然计算
961+ - ** 预测-校正采样** :结合SDE求解器(预测)和Langevin动力学(校正),在速度和质量之间取得最佳平衡
948962
949963### 2. SDE框架统一DDPM与Score-Based模型的本质原因
950964
@@ -959,21 +973,19 @@ dx = \left[ f(x, t) - g^2(t) \nabla_x \log p_t(x) \right] dt + g(t)d\bar{w}
959973
960974#### 2. 训练目标:都是加权Score匹配的特例
961975
962- - ** DDPM的噪声预测损失** :
963- DDPM训练目标是预测添加的噪声 $\epsilon$ ,可以数学等价于:
976+ ** DDPM的噪声预测损失** :DDPM训练目标是预测添加的噪声 $\epsilon$ ,可以数学等价于:
964977
965- ``` math
966- \mathcal{L}_{\text{DDPM}} = \mathbb{E}_{t, x_0, \epsilon} \left\| \epsilon - \epsilon_\theta(x_t, t) \right\|_2^2
967- ```
978+ ``` math
979+ \mathcal{L}_{\text{DDPM}} = \mathbb{E}_{t, x_0, \epsilon} \left\| \epsilon - \epsilon_\theta(x_t, t) \right\|_2^2
980+ ```
968981
969- 这对应SDE框架中权重 $\lambda(t) = g^2(t)$ 的加权Fisher散度,且Score函数与噪声预测满足关系:
982+ 这对应SDE框架中权重 $\lambda(t) = g^2(t)$ 的加权Fisher散度,且Score函数与噪声预测满足关系:
970983
971- ``` math
972- \nabla_x \log p_t(x) = -\frac{\epsilon}{\sigma_t}
973- ```
984+ ``` math
985+ \nabla_x \log p_t(x) = -\frac{\epsilon}{\sigma_t}
986+ ```
974987
975- - ** NCSN的多尺度Score匹配损失** :
976- NCSN训练目标是估计每个噪声尺度下的Score函数,对应SDE框架中权重 $\lambda(t) = \sigma_t^2$ 的加权Fisher散度。
988+ ** NCSN的多尺度Score匹配损失** :NCSN训练目标是估计每个噪声尺度下的Score函数,对应SDE框架中权重 $\lambda(t) = \sigma_t^2$ 的加权Fisher散度。
977989
978990** 结论** :DDPM和NCSN的训练目标只是SDE统一训练目标的不同权重选择,没有本质区别。
979991
@@ -1515,15 +1527,17 @@ CFG的核心公式是:
15151527
15161528### 2. 核心数学本质
15171529
1518- 1 . ** 基准替换** :将CFG的"生成基准"从** 所有训练数据的平均分布(空提示词)** 替换为** 不想要内容的分布(负提示词)** 。
1519- 2 . ** 差值放大 ** :放大"正条件噪声预测"与"负条件噪声预测"的差异,让生成过程同时 ** 趋近正提示词特征 ** 和 ** 远离负提示词特征 ** 。
1520- 3 . ** 隐式二分类梯度 ** :从score函数视角( $\nabla \log p(z) = -\epsilon/\sigma$ ),等价于沿着 ** 正/负条件的对数似然比梯度 ** 更新:
1530+ ** 1. 基准替换** :将CFG的"生成基准"从** 所有训练数据的平均分布(空提示词)** 替换为** 不想要内容的分布(负提示词)** 。
1531+
1532+ ** 2. 差值放大 ** :放大"正条件噪声预测"与"负条件噪声预测"的差异,让生成过程同时 ** 趋近正提示词特征 ** 和 ** 远离负提示词特征 ** 。
15211533
1522- ``` math
1523- \nabla \log \frac{p(z|c^+)}{p(z|c^-)} = \nabla \log p(z|c^+) - \nabla \log p(z|c^-)
1524- ```
1534+ ** 3. 隐式二分类梯度** :从score函数视角( $\nabla \log p(z) = -\epsilon/\sigma$ ),等价于沿着** 正/负条件的对数似然比梯度** 更新:
15251535
1526- 引导强度 $s$ 控制该梯度的放大倍数,越大则正/负区分越严格。
1536+ ``` math
1537+ \nabla \log \frac{p(z|c^+)}{p(z|c^-)} = \nabla \log p(z|c^+) - \nabla \log p(z|c^-)
1538+ ```
1539+
1540+ 引导强度 $s$ 控制该梯度的放大倍数,越大则正/负区分越严格。
15271541
15281542#### 3. 关键结论
15291543
@@ -3311,23 +3325,23 @@ Stable Diffusion的模型融合主要通过 **Merge Block Weight(块权重融
33113325
33123326模型融合的目标是合并多个训练好的Stable Diffusion模型(如风格模型+主体模型),生成兼具各方优势的新模型。Merge Block Weight的核心创新在于** 分块处理U-Net/Transformer结构** ,而非整体融合:
33133327
3314- 1 . ** U-Net结构解构**
3328+ ** 1. U-Net结构解构**
33153329
3316- Stable Diffusion的U-Net包含多个功能模块:
3330+ Stable Diffusion的U-Net包含多个功能模块:
33173331
3318- - ** ResBlock** :负责基础特征提取与残差连接
3319- - ** Spatial Transformer(Cross-Attention)** :融合文本与图像语义
3320- - ** DownSample/UpSample** :控制特征图分辨率变换
3332+ - ** ResBlock** :负责基础特征提取与残差连接
3333+ - ** Spatial Transformer(Cross-Attention)** :融合文本与图像语义
3334+ - ** DownSample/UpSample** :控制特征图分辨率变换
33213335
3322- 2 . ** 分块独立融合**
3336+ ** 2. 分块独立融合**
33233337
3324- 对每个模块的权重独立计算插值,公式为:
3338+ 对每个模块的权重独立计算插值,公式为:
33253339
3326- ``` math
3327- W_{\text{merged}}^{(i)} = \alpha \cdot W_A^{(i)} + (1 - \alpha) \cdot W_B^{(i)}
3328- ```
3340+ ``` math
3341+ W_{\text{merged}}^{(i)} = \alpha \cdot W_A^{(i)} + (1 - \alpha) \cdot W_B^{(i)}
3342+ ```
33293343
3330- 其中 $W_A^{(i)}$ 和 $W_B^{(i)}$ 是待融合模型在模块 $i$ 的权重, $\alpha$ 为该模块的融合系数(0~1)。
3344+ 其中 $W_A^{(i)}$ 和 $W_B^{(i)}$ 是待融合模型在模块 $i$ 的权重, $\alpha$ 为该模块的融合系数(0~ 1)。
33313345
33323346#### 二、技术实现流程
33333347
0 commit comments