差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
| 深度学习:扩散模型:class1 [2026/04/01 12:33] – 张叶安 | 深度学习:扩散模型:class1 [2026/04/01 13:15] (当前版本) – [前向过程单步公式讲解] 张叶安 | ||
|---|---|---|---|
| 行 48: | 行 48: | ||
| TensorFlow:(𝐻, | TensorFlow:(𝐻, | ||
| + | |||
| + | ====== 对称处理 ====== | ||
| + | |||
| 为了让数据和高斯噪声处在同一个零中心对称空间里,要对像素值进行仿射变换: | 为了让数据和高斯噪声处在同一个零中心对称空间里,要对像素值进行仿射变换: | ||
| 行 57: | 行 60: | ||
| 现在想它取值范围为[-1, | 现在想它取值范围为[-1, | ||
| - | 变换形式为$y'=ay+b$、$x' | + | 变换形式为$y=ax+b$ |
| - | + | ||
| - | 当$x=0$时,$x' | + | |
| + | 当$x=0$时,$y=-1$, | ||
| + | $y=2x-1$, | ||
| 仿射变换矩阵为: | 仿射变换矩阵为: | ||
| 行 139: | 行 142: | ||
| 可以看出图片的形状没有变 | 可以看出图片的形状没有变 | ||
| + | ====== 扩散过程 ====== | ||
| 扩散过程是基于一个**方差调度表**构建的,这个调度表决定了在扩散过程的每一个时间步中加入噪声的强度。为此,我们定义如下几个量: | 扩散过程是基于一个**方差调度表**构建的,这个调度表决定了在扩散过程的每一个时间步中加入噪声的强度。为此,我们定义如下几个量: | ||
| - | * `betas`:$\beta_t$ | + | * betas:$\beta_t$ |
| - | * `alphas`:$\alpha_t = 1 - \beta_t$ | + | * alphas:$\alpha_t = 1 - \beta_t$ |
| - | * `alphas_sqrt`:$\sqrt{\alpha_t}$ | + | * alphas_sqrt:$\sqrt{\alpha_t}$ |
| - | * `alphas_prod`:$\bar{\alpha}_t = \prod_{i=0}^{t}\alpha_i$ | + | * alphas_prod:$\bar{\alpha}_t = \prod_{i=0}^{t}\alpha_i$ |
| - | * `alphas_prod_sqrt`:$\sqrt{\bar{\alpha}_t}$ | + | * alphas_prod_sqrt:$\sqrt{\bar{\alpha}_t}$ |
| 行 152: | 行 156: | ||
| - | 1. `betas`:$\beta_t$ | + | 1. betas:$\beta_t$ |
| 它表示**第 $t$ 步加入噪声的强度**,也可以理解为该步的“噪声方差比例”。 | 它表示**第 $t$ 步加入噪声的强度**,也可以理解为该步的“噪声方差比例”。 | ||
| 行 166: | 行 170: | ||
| - | 2. `alphas`:$\alpha_t = 1 - \beta_t$ | + | 2. alphas:$\alpha_t = 1 - \beta_t$ |
| 它表示**第 $t$ 步保留下来的原始信号比例**。 | 它表示**第 $t$ 步保留下来的原始信号比例**。 | ||
| 行 187: | 行 191: | ||
| - | 3. `alphas_sqrt`:$\sqrt{\alpha_t}$ | + | 3. alphas_sqrt:$\sqrt{\alpha_t}$ |
| 这个量是在实际加噪公式里直接使用的系数。 | 这个量是在实际加噪公式里直接使用的系数。 | ||
| 行 199: | 行 203: | ||
| * $x_{t-1}$ 是上一步图像 | * $x_{t-1}$ 是上一步图像 | ||
| * $x_t$ 是当前这一步加噪后的图像 | * $x_t$ 是当前这一步加噪后的图像 | ||
| - | * $\epsilon_t \sim \mathcal{N}(0, | + | * $\epsilon_t \sim \mathcal{N}(0, |
| **直观理解:** | **直观理解:** | ||
| 行 205: | 行 209: | ||
| $\sqrt{\alpha_t}$ 是**上一步图像在当前步中的保留权重**。 | $\sqrt{\alpha_t}$ 是**上一步图像在当前步中的保留权重**。 | ||
| - | 之所以取平方根,是因为扩散模型里控制的是**方差**,而真正乘在样本上的系数是标准差,所以会出现平方根。 | + | 之所以取平方根,是因为扩散模型里控制的是[[概率论: |
| + | 注:变量乘以标准差,才能得到对应的方差。如X=> | ||
| - | 4. `alphas_prod`:$\bar{\alpha}_t = \prod_{i=0}^{t}\alpha_i$ | + | |
| + | |||
| + | |||
| + | 4. alphas_prod:$\bar{\alpha}_t = \prod_{i=0}^{t}\alpha_i$ | ||
| 它表示从第 $0$ 步到第 $t$ 步,**所有保留比例连乘之后的结果**。 | 它表示从第 $0$ 步到第 $t$ 步,**所有保留比例连乘之后的结果**。 | ||
| 行 226: | 行 234: | ||
| - | 5. `alphas_prod_sqrt`:$\sqrt{\bar{\alpha}_t}$ | + | 5. alphas_prod_sqrt:$\sqrt{\bar{\alpha}_t}$ |
| 这个量是从原图 $x_0$ 直接生成第 $t$ 步噪声图 $x_t$ 时的关键系数。 | 这个量是从原图 $x_0$ 直接生成第 $t$ 步噪声图 $x_t$ 时的关键系数。 | ||
| 行 567: | 行 575: | ||
| - | 反向过程 | + | ====== |
| 反向过程 $p$ 的目的是:根据扩散链中的当前样本 $x_t$,去近似恢复前一步的样本 $x_{t-1}$。在实际情况下,这种近似 $p(x_{t-1}|x_t)$ 必须在不知道 $x_0$ 的前提下完成。 | 反向过程 $p$ 的目的是:根据扩散链中的当前样本 $x_t$,去近似恢复前一步的样本 $x_{t-1}$。在实际情况下,这种近似 $p(x_{t-1}|x_t)$ 必须在不知道 $x_0$ 的前提下完成。 | ||