深度学习:扩散模型:class1

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
深度学习:扩散模型:class1 [2026/03/13 13:59] 张叶安深度学习:扩散模型:class1 [2026/04/01 13:15] (当前版本) – [前向过程单步公式讲解] 张叶安
行 1: 行 1:
 +====== 显示图片 ======
 +
 <code> <code>
 import torch                              # 导入 PyTorch 库,用于张量操作 import torch                              # 导入 PyTorch 库,用于张量操作
行 46: 行 48:
  
 TensorFlow:(𝐻,𝑊,3) TensorFlow:(𝐻,𝑊,3)
 +
 +====== 对称处理 ======
 +
  
 为了让数据和高斯噪声处在同一个零中心对称空间里,要对像素值进行仿射变换: 为了让数据和高斯噪声处在同一个零中心对称空间里,要对像素值进行仿射变换:
行 54: 行 59:
  
 现在想它取值范围为[-1,1] 现在想它取值范围为[-1,1]
 +
 +变换形式为$y=ax+b$
 +
 +当$x=0$时,$y=-1$,当$x=1$时,$y=1$
 +
 +$y=2x-1$,$x=\frac{1}{2}y+\frac{1}{2}$
  
 仿射变换矩阵为: 仿射变换矩阵为:
行 131: 行 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}$
  
  
行 144: 行 156:
  
  
-1. `betas`:$\beta_t$+1. betas:$\beta_t$
  
 它表示**第 $t$ 步加入噪声的强度**,也可以理解为该步的“噪声方差比例”。 它表示**第 $t$ 步加入噪声的强度**,也可以理解为该步的“噪声方差比例”。
行 158: 行 170:
  
  
-2. `alphas`:$\alpha_t = 1 - \beta_t$ +2. alphas:$\alpha_t = 1 - \beta_t$ 
  
 它表示**第 $t$ 步保留下来的原始信号比例**。 它表示**第 $t$ 步保留下来的原始信号比例**。
行 179: 行 191:
  
  
-3. `alphas_sqrt`:$\sqrt{\alpha_t}$+3. alphas_sqrt:$\sqrt{\alpha_t}$
  
 这个量是在实际加噪公式里直接使用的系数。 这个量是在实际加噪公式里直接使用的系数。
行 191: 行 203:
   * $x_{t-1}$ 是上一步图像   * $x_{t-1}$ 是上一步图像
   * $x_t$ 是当前这一步加噪后的图像   * $x_t$ 是当前这一步加噪后的图像
-  * $\epsilon_t \sim \mathcal{N}(0, I)$ 是高斯噪声+  * $\epsilon_t \sim \mathcal{N}(0, I)$ 是高斯噪声(符合[[概率论:随机变量及其分布#2.4.3 常见连续型分布|高斯分布]]的噪声)
  
 **直观理解:** **直观理解:**
行 197: 行 209:
 $\sqrt{\alpha_t}$ 是**上一步图像在当前步中的保留权重**。 $\sqrt{\alpha_t}$ 是**上一步图像在当前步中的保留权重**。
  
-之所以取平方根,是因为扩散模型里控制的是**方差**,而真正乘在样本上的系数是标准差,所以会出现平方根。+之所以取平方根,是因为扩散模型里控制的是[[概率论:数字特征#4.2 方差|方差]],而真正乘在样本上的系数是标准差,所以会出现平方根。
  
 +注:变量乘以标准差,才能得到对应的方差。如X=>3X,方差是原来的9倍。
  
  
-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$ 步,**所有保留比例连乘之后的结果**。
行 218: 行 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$ 时的关键系数。
行 559: 行 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$ 的前提下完成。

该主题尚不存在

您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。

  • 深度学习/扩散模型/class1.1773381558.txt.gz
  • 最后更改: 2026/03/13 13:59
  • 张叶安