DDPM原理推导
复现的源码:denoising-diffusion-pytorch | https://github.com/FMsunyh/denoising-diffusion-pytorch
自己的学习心得和部分笔记,希望对您有所帮助。
更新记录
- 2023-11-15 Training Process推导
- 2023-11-19 Sampling Process推导
前提知识
1.Markov:当前位置的概率只会受前一时刻概率影响
马尔可夫链的定义,在任何一本随机过程书籍中都可以查到的内容。
p ( x t + 1 ∣ x t , x t − 1 , . . . , x 1 ) = p ( x t + 1 ∣ x t ) (1) p(x_{t+1}|x_{t},x_{t-1},...,x_{1})=p(x_{t+1}|x_{t}) \tag{1} p(xt+1∣xt,xt−1,...,x1)=p(xt+1∣xt)(1)
这个定义以及它的性质,在后面的证明中会使用到。
解释性例子
无记忆性,当天的股票表现仅仅是和前一天有关,与历史其他状态无关。
2.正态分布(高斯分布)叠加性
当有两个独立的正态分布变量 X X X和 Y Y Y时,它们的均值与方差分别为 μ x μ_x μx, μ y μ_y μy 和 σ x 2 σ^2_x σx2, σ y 2 σ^2_y σy2。我们要使用到的2条性质如下:
相加性 U = X + Y U=X+Y U=X+Y:
均值:
E
(
U
)
=
E
(
X
+
Y
)
=
μ
x
+
μ
y
E(U) = E(X + Y) = \mu_x + \mu_y
E(U)=E(X+Y)=μx+μy
方差:
V
a
r
(
U
)
=
V
a
r
(
X
+
Y
)
=
σ
x
2
+
σ
y
2
Var(U) = Var(X + Y) = \sigma^2_x + \sigma^2_y
Var(U)=Var(X+Y)=σx2+σy2
即,它们的和也满足正态分布 U = X + Y U=X+Y U=X+Y ~ N ( μ x + μ y , σ x 2 + σ y 2 ) N(\mu_x+\mu_y, \sigma^2_x + \sigma^2_y) N(μx+μy,σx2+σy2)
相减性 V = X − Y V=X-Y V=X−Y:
均值:
E
(
V
)
=
E
(
X
−
Y
)
=
μ
x
−
μ
y
E(V) = E(X - Y) = \mu_x - \mu_y
E(V)=E(X−Y)=μx−μy
方差:
V
a
r
(
V
)
=
V
a
r
(
X
−
Y
)
=
σ
x
2
+
σ
y
2
Var(V) = Var(X - Y) = \sigma^2_x + \sigma^2_y
Var(V)=Var(X−Y)=σx2+σy2
即,它们的差也满足正态分布 U = X − Y U=X-Y U=X−Y ~ N ( μ x − μ y , σ x 2 + σ y 2 ) N(\mu_x-\mu_y, \sigma^2_x + \sigma^2_y) N(μx−μy,σx2+σy2)
3.贝叶斯:
P ( B ∣ A ) = P ( A ∣ B ) ⋅ P ( B ) P ( A ) P(B | A) = \frac{{P(A | B) \cdot P(B)}}{{P(A)}} P(B∣A)=P(A)P(A∣B)⋅P(B)
P ( A ) P(A) P(A)是常数,已知的, P ( B ) P(B) P(B)是先验概率, P ( A ∣ B ) P(A | B) P(A∣B)是似然, P ( B ∣ A ) P(B | A) P(B∣A)是后验概率。
A是数据,可以理解为我们的训练数据,B就是你当前的认知,而 P ( B ∣ A ) P(B | A) P(B∣A)就是我们学习了新的数据后,得到的新认知。
4.在给定条件C下的贝叶斯:
P ( B ∣ A , C ) = P ( A ∣ B , C ) ⋅ P ( B ∣ C ) P ( A ∣ C ) P(B | A, C) = \frac{{P(A | B, C) \cdot P(B | C)}}{{P(A | C)}} P(B∣A,C)=P(A∣C)P(A∣B,C)⋅P(B∣C)
END
Forward Process
前向过程,也就是给原图加噪过程,从 x 0 x_0 x0到 x t x_t xt的过程,该过程可以视为马尔科夫链过程,满足::
p ( x t ∣ x t − 1 ) = N ( x t ; α t x t − 1 , β t I ) p(x_t|x_{t-1})=\mathcal{N}(x_t;\sqrt{\alpha_t}x_{t-1}, \beta_t I) p(xt∣xt−1)=N(xt;αtxt−1,βtI)
x t = α t x t − 1 + β t ϵ t ϵ t ∼ N ( 0 , I ) x_t = \sqrt{\alpha_t} x_{t-1} + \sqrt{\beta_t} \epsilon_t \; \; \epsilon_t \sim \mathcal{N}(0,I) xt=αtxt−1+βtϵtϵt∼N(0,I)
α t = 1 − β t \alpha_t=1-\beta_t αt=1−βt
其中 β t ∈ ( 0 , 1 ) \beta_t \in(0,1) βt∈(0,1)为高斯分布的方差超差,并满足 β 1 < β 2 < . . . < β T \beta_1<\beta_2<...<\beta_T β1<β2<...<βT。
前两行公式是一个意思,表示 x t − 1 x_{t-1} xt−1加上一个高斯噪声得到 x t x_{t} xt, α t = 1 − β t \alpha_t=1-\beta_t αt=1−βt是一个超参数,已知值。
推导 x t x_{t} xt和 x 0 x_{0} x0的关系,对公式$x_t = \sqrt{\alpha_t} x_{t-1} + \sqrt{\beta_t} \epsilon_t ; ; \epsilon_t \sim \mathcal{N}(0,I) $进行展开:
x t = α t x t − 1 + β t ϵ t ϵ t ∼ N ( 0 , I ) x t − 1 = α t − 1 x t − 2 + β t − 1 ϵ t − 1 ϵ t − 1 ∼ N ( 0 , I ) . . . x 1 = α 1 x 0 + β 1 ϵ 1 ϵ 1 ∼ N ( 0 , I ) \begin{aligned} x_t &= \sqrt{\alpha_t} x_{t-1} + \sqrt{\beta_t} \epsilon_t \; \; \epsilon_t \sim \mathcal{N}(0,I) \\ x_{t-1} &= \sqrt{\alpha_{t-1}} x_{t-2} + \sqrt{\beta_{t-1}} \epsilon_{t-1} \; \; \epsilon_{t-1} \sim \mathcal{N}(0,I) \\ ... \\ x_1 &= \sqrt{\alpha_{1}} x_0 + \sqrt{\beta_1} \epsilon_1 \; \; \epsilon_1 \sim \mathcal{N}(0,I) \\ \end{aligned} xtxt−1...x1=αtxt−1+βtϵtϵt∼N(0,I)=αt−1xt−2+βt−1ϵt−1ϵt−1∼N(0,I)=α1x0+β1ϵ1ϵ1∼N(0,I)
把
x
t
−
1
x_{t-1}
xt−1 和
β
t
=
1
−
α
t
\beta_t=1-\alpha_t
βt=1−αt 代入
x
t
x_{t}
xt,得到:
x
t
=
α
t
x
t
−
1
+
β
t
ϵ
t
=
α
t
(
α
t
−
1
x
t
−
2
+
1
−
α
t
−
1
ϵ
t
−
1
)
+
1
−
α
t
ϵ
t
=
α
t
α
t
−
1
x
t
−
2
+
α
t
1
−
α
t
−
1
ϵ
t
−
1
+
1
−
α
t
ϵ
t
=
α
t
α
t
−
1
x
t
−
2
+
α
t
−
α
t
α
t
−
1
ϵ
t
−
1
+
1
−
α
t
ϵ
t
=
α
t
α
t
−
1
x
t
−
2
+
α
t
−
α
t
α
t
−
1
2
+
1
−
α
t
2
ϵ
t
−
2
=
α
t
α
t
−
1
x
t
−
2
+
1
−
α
t
α
t
−
1
ϵ
t
−
2
=
…
=
∏
i
=
1
t
α
i
x
0
+
1
−
∏
i
=
1
t
α
i
ϵ
0
=
α
t
ˉ
x
0
+
1
−
α
t
ˉ
ϵ
0
;设:
α
ˉ
t
=
α
1
.
.
.
α
t
∼
N
(
x
t
,
α
t
ˉ
x
0
,
(
1
−
α
t
ˉ
)
I
)
\begin{aligned} x_t &= \sqrt{\alpha_t} x_{t-1} + \sqrt{\beta_t} \epsilon_t \\ &=\sqrt{\alpha_t} (\sqrt{\alpha_{t-1}} x_{t-2} + \sqrt{1-\alpha_{t-1}} \epsilon_{t-1}) + \sqrt{1-\alpha_t} \epsilon_t \\ &=\sqrt{\alpha_t} \sqrt{\alpha_{t-1}} x_{t-2} + \sqrt{\alpha_t} \sqrt{1-\alpha_{t-1}} \epsilon_{t-1} + \sqrt{1-\alpha_t} \epsilon_t \\ &=\sqrt{\alpha_t\alpha_{t-1}} x_{t-2} + \sqrt{\alpha_t-\alpha_t\alpha_{t-1}} \epsilon_{t-1} + \sqrt{1-\alpha_t} \epsilon_t \\ &=\sqrt{\alpha_t\alpha_{t-1}} x_{t-2} + \sqrt{\sqrt{\alpha_t-\alpha_t\alpha_{t-1}}^2 + \sqrt{1-\alpha_t}^2} \epsilon_{t-2} \\ &=\sqrt{\alpha_t\alpha_{t-1}} x_{t-2} + \sqrt{1-\alpha_t\alpha_{t-1}} \epsilon_{t-2} \\ &=\dots \\ &=\sqrt{\prod_{i=1}^t{\alpha_i}}x_0 + \sqrt{1-\prod_{i=1}^t{\alpha_i}}\epsilon_0 \\ &=\sqrt{\bar{\alpha_t}}x_0 + \sqrt{1-\bar{\alpha_t}}\epsilon_0;设:\bar{\alpha}_t= \alpha_1...\alpha_t \\ &\sim \mathcal{N}(x_t, \sqrt{\bar{\alpha_t}}x_0, (1-\bar{\alpha_t})I) \end{aligned}
xt=αtxt−1+βtϵt=αt(αt−1xt−2+1−αt−1ϵt−1)+1−αtϵt=αtαt−1xt−2+αt1−αt−1ϵt−1+1−αtϵt=αtαt−1xt−2+αt−αtαt−1ϵt−1+1−αtϵt=αtαt−1xt−2+αt−αtαt−12+1−αt2ϵt−2=αtαt−1xt−2+1−αtαt−1ϵt−2=…=i=1∏tαix0+1−i=1∏tαiϵ0=αtˉx0+1−αtˉϵ0;设:αˉt=α1...αt∼N(xt,αtˉx0,(1−αtˉ)I)
其中,
公式$\sqrt{\sqrt{\alpha_t-\alpha_t\alpha_{t-1}}^2 + \sqrt{1-\alpha_t}^2} \epsilon_{t-2} $ ,用到了2个高斯分布相加的性质;
公式
α
t
ˉ
x
0
+
1
−
α
t
ˉ
ϵ
0
\sqrt{\bar{\alpha_t}}x_0 + \sqrt{1-\bar{\alpha_t}}\epsilon_0
αtˉx0+1−αtˉϵ0, 用到了参数重整技巧
最后得到
x
t
和
x
0
x_{t}和x_0
xt和x0的关系,
p
(
x
t
∣
x
0
)
p(x_{t}|x_0)
p(xt∣x0):
p
(
x
t
∣
x
0
)
=
α
ˉ
t
x
0
+
1
−
α
ˉ
t
ϵ
ϵ
∼
N
(
0
,
I
)
p(x_{t}|x_0) = \sqrt{\bar{\alpha}_{t}}x_0 + \sqrt{1-\bar{\alpha}_{t}}\epsilon \; \; \epsilon \sim \mathcal{N}(0, I)
p(xt∣x0)=αˉtx0+1−αˉtϵϵ∼N(0,I)
到这里,我们就可以知道,已知 x 0 x_0 x0, α ˉ t \bar{\alpha}_{t} αˉt和 ϵ \epsilon ϵ高斯采样,直接得到 x t x_{t} xt。
回到论文中的公式
- Step1 随机挑选一张训练图 x 0 x_0 x0
- Step2 选择time step t t t生成高斯noisy,称之为GT noisy。
- Step3 红色框表达的就是(clean image+noisy), x 0 x_0 x0+noisy,得到一张noisy image,再结合time step t t t,输入到模型,模型输出是一个predict noisy。
- Step4 GT noisy和predict noisy做差,求目标函数。
- 重复Step1~4。
两个高斯分布求距离,论文中用了KL散度去计算距离。
END
Sampling Process
贝叶斯公式
p
(
x
t
−
1
∣
x
t
)
=
p
(
x
t
∣
x
t
−
1
)
⋅
p
(
x
t
−
1
)
p
(
x
t
)
p(x_{t-1}|x_t) = \frac{{p(x_t | x_{t-1}) \cdot p(x_{t-1})}}{{p(x_t)}}
p(xt−1∣xt)=p(xt)p(xt∣xt−1)⋅p(xt−1)
问题是:
p
(
x
t
−
1
)
,
p
(
x
t
)
p(x_{t-1}) \; , p(x_t)
p(xt−1),p(xt)未知,因为无法直接从
x
t
x_t
xt推导
x
t
−
1
x_{t-1}
xt−1
但是可以在
x
0
x_0
x0的条件下进行推导,引入条件贝叶斯公式:
p ( x t − 1 ∣ x t , x 0 ) = p ( x t ∣ x t − 1 , x 0 ) ⋅ p ( x t − 1 ∣ x 0 ) p ( x t ∣ x 0 ) = p ( x t ∣ x t − 1 ) ⋅ p ( x t − 1 ∣ x 0 ) p ( x t ∣ x 0 ) (3) p(x_{t-1}|x_t, x_0) = \frac{{p(x_t | x_{t-1}, x_0) \cdot p(x_{t-1}|x_0)}}{{p(x_t|x_0)}} = \frac{{p(x_t | x_{t-1}) \cdot p(x_{t-1}|x_0)}}{{p(x_t|x_0)}} \tag{3} p(xt−1∣xt,x0)=p(xt∣x0)p(xt∣xt−1,x0)⋅p(xt−1∣x0)=p(xt∣x0)p(xt∣xt−1)⋅p(xt−1∣x0)(3)
由前向过程,可以得到以下3式,将以下3式代入,化简一下:
p ( x t − 1 ∣ x 0 ) = α ˉ t − 1 x 0 + 1 − α ˉ t − 1 ϵ ∼ N ( α ˉ t − 1 x 0 , 1 − α ˉ t − 1 ) p ( x t ∣ x 0 ) = α ˉ t x 0 + 1 − α ˉ t ϵ ∼ N ( α ˉ t x 0 , 1 − α ˉ t ) p ( x t ∣ x t − 1 ) = α t x t − 1 + 1 − α ˉ t ϵ ∼ N ( α t x t − 1 , 1 − α ˉ t ) \begin{aligned} p(x_{t-1}|x_0) &= \sqrt{\bar{\alpha}_{t-1}}x_0 + \sqrt{1-\bar{\alpha}_{t-1}}\epsilon \sim \mathcal{N}(\sqrt{\bar{\alpha}_{t-1}}x_0, 1-\bar{\alpha}_{t-1}) \\ p(x_{t}|x_0) &= \sqrt{\bar{\alpha}_{t}}x_0 + \sqrt{1-\bar{\alpha}_{t}}\epsilon \sim \mathcal{N}(\sqrt{\bar{\alpha}_{t}}x_0, 1-\bar{\alpha}_{t}) \\ p(x_{t}|x_{t-1}) &= \sqrt{\alpha_{t}}x_{t-1} + \sqrt{1-\bar{\alpha}_{t}}\epsilon \sim \mathcal{N}(\sqrt{\alpha_{t}}x_{t-1}, 1-\bar{\alpha}_{t}) \end{aligned} p(xt−1∣x0)p(xt∣x0)p(xt∣xt−1)=αˉt−1x0+1−αˉt−1ϵ∼N(αˉt−1x0,1−αˉt−1)=αˉtx0+1−αˉtϵ∼N(αˉtx0,1−αˉt)=αtxt−1+1−αˉtϵ∼N(αtxt−1,1−αˉt)
开始化简:
p ( x t − 1 ∣ x t , x 0 ) = p ( x t ∣ x t − 1 , x 0 ) ⋅ p ( x t − 1 ∣ x 0 ) p ( x t ∣ x 0 ) = p ( x t ∣ x t − 1 ) ⋅ p ( x t − 1 ∣ x 0 ) p ( x t ∣ x 0 ) = N ( α t x t − 1 , 1 − α ˉ t ) ⋅ N ( α ˉ t − 1 x 0 , 1 − α ˉ t − 1 ) N ( α ˉ t x 0 , 1 − α ˉ t ) \begin{aligned} p(x_{t-1}|x_t, x_0) &= \frac{{p(x_t | x_{t-1}, x_0) \cdot p(x_{t-1}|x_0)}}{{p(x_t|x_0)}} \\ &= \frac{{p(x_t | x_{t-1}) \cdot p(x_{t-1}|x_0)}}{{p(x_t|x_0)}} \\ &=\frac{\mathcal{N}(\sqrt{\alpha_{t}}x_{t-1}, 1-\bar{\alpha}_{t}) \cdot \mathcal{N}(\sqrt{\bar{\alpha}_{t-1}}x_0, 1-\bar{\alpha}_{t-1})} {\mathcal{N}(\sqrt{\bar{\alpha}_{t}}x_0, 1-\bar{\alpha}_{t})} \end{aligned} p(xt−1∣xt,x0)=p(xt∣x0)p(xt∣xt−1,x0)⋅p(xt−1∣x0)=p(xt∣x0)p(xt∣xt−1)⋅p(xt−1∣x0)=N(αˉtx0,1−αˉt)N(αtxt−1,1−αˉt)⋅N(αˉt−1x0,1−αˉt−1)
p ( x t − 1 ∣ x t , x 0 ) ∝ e x p ( − 1 2 ( ( x t − α t x t − 1 ) 2 β t ) + ( x t − 1 − α ˉ t − 1 x 0 ) 2 1 − α ˉ t − 1 − ( x t − α ˉ t x 0 ) 2 1 − α ˉ t ) p(x_{t-1}|x_t, x_0) \propto exp(-\frac{1}{2}(\frac{(x_t-\sqrt{\alpha_t}x_{t-1})^2}{\beta_t})+\frac{(x_{t-1}-\sqrt{\bar{\alpha}}_{t-1}x_0)^2}{1-\bar{\alpha}_{t-1}}-\frac{(x_t-\sqrt{\bar{\alpha}_t}x_0)^2}{1-\bar{\alpha}_t}) p(xt−1∣xt,x0)∝exp(−21(βt(xt−αtxt−1)2)+1−αˉt−1(xt−1−αˉt−1x0)2−1−αˉt(xt−αˉtx0)2)
T i p s N o r m a l d i s t r i b u t i o n : e x p ( − ( x − μ ) 2 2 σ 2 ) = e x p ( − 1 2 ( 1 σ 2 x 2 − 2 μ σ 2 x + μ 2 σ 2 ) ) Tips\ Normal\ distribution:exp(-\frac{(x-\mu)^2}{2\sigma^2})=exp(-\frac{1}{2}(\frac{1}{\sigma^2}x^2-\frac{2\mu}{\sigma^2}x+\frac{\mu^2}{\sigma^2})) Tips Normal distribution:exp(−2σ2(x−μ)2)=exp(−21(σ21x2−σ22μx+σ2μ2))
利用指数幂的相关运算,进行整理
参考论文 Understanding Diffusion Models: A Unified Perspective
从上式,我们可以知道, x t − 1 x_{t-1} xt−1是满足均值为 μ \mu μ,方差为 σ \sigma σ,它们的取值分别为:
σ 2 = β t ( 1 − α ˉ t − 1 ) α t ( 1 − α ˉ t − 1 ) + β t \sigma^2 = \frac{\beta_t(1-\bar{\alpha}_{t-1})}{\alpha_t(1-\bar{\alpha}_{t-1})+\beta_t} σ2=αt(1−αˉt−1)+βtβt(1−αˉt−1)
μ = α t ( 1 − α ˉ t − 1 ) 1 − α t ˉ x t + α ˉ t − 1 β t 1 − α ˉ t x 0 \mu = \frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha_t}}x_t+\frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1-\bar{\alpha}_t}x_0 μ=1−αtˉαt(1−αˉt−1)xt+1−αˉtαˉt−1βtx0
x 0 是未知的 , 我们可以选择一个未知的函数使得 x 0 = f ( x t ) ,但是观察之前的公式可以得知,从 x 0 推导 x t 的公式取逆就是一条满足的公式【没理解?】 x_0是未知的,我们可以选择一个未知的函数使得x_0=f(x_t),但是观察之前的公式可以得知,从x_0推导x_t的公式取逆就是一条满足的公式【没理解?】 x0是未知的,我们可以选择一个未知的函数使得x0=f(xt),但是观察之前的公式可以得知,从x0推导xt的公式取逆就是一条满足的公式【没理解?】
x 0 = 1 α ˉ t ( x t − 1 − α ˉ t ϵ t ) x_0 = \frac{1}{\sqrt{\bar{\alpha}}_t}(x_t-\sqrt{1-\bar{\alpha}_t}\epsilon_t) x0=αˉt1(xt−1−αˉtϵt)
只是其中一个公式,
代入
μ = 1 α t ( x t − β t 1 − α ˉ t ϵ t ) \mu=\frac{1}{\sqrt{\alpha_t}}(x_t-\frac{\beta_t}{\sqrt{1-\bar\alpha}_t}\epsilon_t) μ=αt1(xt−1−αˉtβtϵt)
因为
ϵ
t
\epsilon_t
ϵt是高斯噪音,用神经网络去拟合,也就是我们训练大模型的网络Unet,表示为:
ϵ
θ
(
x
t
,
t
)
\epsilon_\theta(x_t,t)
ϵθ(xt,t)
从而也可以得到要优化的目标,就是拟合出每一步的噪音,
∣
∣
ϵ
t
−
ϵ
θ
(
x
t
,
t
)
∣
∣
2
||\epsilon_t-\epsilon_\theta(x_t,t)||^2
∣∣ϵt−ϵθ(xt,t)∣∣2
最后的采样公式,利用重参数技巧:
x t − 1 = 1 α t ( x t − β t 1 − α ˉ t ϵ θ ( x t , t ) ) + σ t ϵ ϵ ∼ N ( 0 , I ) x_{t-1}=\frac{1}{\sqrt{\alpha_t}}(x_t-\frac{\beta_t}{\sqrt{1-\bar\alpha}_t}\epsilon_\theta(x_t,t))+\sigma_t\epsilon \;\; \epsilon \sim \mathcal{N}(0 , I) xt−1=αt1(xt−1−αˉtβtϵθ(xt,t))+σtϵϵ∼N(0,I)
END
资源汇总
-
Stable Diffusion: https://github.com/CompVis/stable-diffusion
-
DDPM 相关资料
- 论文:Denoising Diffusion Probabilistic Models | https://arxiv.org/abs/2006.11239
- 代码:tf version: https://github.com/hojonathanho/diffusion | pytorch version: https://github.com/lucidrains/denoising-diffusion-pytorch
-
DDIM 相关资料
- 论文:Denoising Diffusion Implicit Models | https://arxiv.org/abs/2010.02502
- 代码: https://github.com/ermongroup/ddim
-
PNDM/PLMS 相关资料
- 论文:Pseudo Numerical Methods for Diffusion Models on Manifolds | https://openreview.net/forum?id=PlKWVd2yBkY
- 代码: https://github.com/luping-liu/PNDM
-
VAE 相关资料
- Variational inference & deep learning | https://pure.uva.nl/ws/files/17891313/Thesis.pdf
-
相关论文
- U-Net: Convolutional Networks for Biomedical Image Segmentation | https://arxiv.org/abs/1505.04597
- Attention Is All You Need | https://arxiv.org/abs/1706.03762
-
重参数技巧
- 重参数技巧 详解 | https://juejin.cn/post/7213239578664157221
-
博文
-
入门基础
- How does Stable Diffusion work? | https://stable-diffusion-art.com/how-stable-diffusion-work/
- Stable Diffusion 硬核生存指南:WebUI 中的 VAE | https://soulteary.com/2023/07/30/stable-diffusion-hardcore-survival-guide-vae-in-webui.html
-
原理进阶
- 珍妮的选择 | https://blog.51cto.com/u_15661962
- 珍妮的选择(知乎) | https://zhuanlan.zhihu.com/p/576475987
- Latent Diffusion:高分辨率图像合成 | https://www.jianshu.com/p/816c60d981b1
- 本博文翻译质量高
-
-
李宏毅
- https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php
-
参考源码
- labml | https://nn.labml.ai/diffusion/ddpm/index.html
- labmlai | https://github.com/labmlai/annotated_deep_learning_paper_implementations
- CelebA Dataset | https://mmlab.ie.cuhk.edu.hk/projects/CelebA.html
AIGC群交流