Press
esc
to close
请输入并搜索
Carottx's site
Carottx's site
首页
标签
分类
时间线
友链
关于
Press
Ctrl
+
and
K
to search
技术杂谈
生活
首页
标签
分类
时间线
友链
关于
后台
Diffusion Model&Flow Matching
编辑
2026-01-12
技术杂谈
0
0
目录
课程信息:
Introduction
课程信息:
MIT课程
我只上过微积分/概率论,希望能够以不那么数学的方式学懂
Introduction
为什么我们需要概率分布去建模图片生成?
对于同一个prompt, 可能合法的图片有很多,不能够单纯地区分正例负例
和前一点类似,在数据集中,对于同一个prompt,有许多对应的图片,我们可以说,这些图片服从一个概率分布;由于这个概率和prompt相关,因此若想要生成的东西为
z
z
z
,prompt本身是
y
y
y
, 那么
z
∼
p
d
a
t
a
(
⋅
∣
y
)
z\sim p_{data}(·|y)
z
∼
p
d
a
t
a
(
⋅
∣
y
)
为了保证生成图片的多样性,我们可以从一个初始分布
p
i
n
i
t
p_{init}
p
ini
t
出发,一步一步到达
p
d
a
t
a
p_{data}
p
d
a
t
a
,在实际操作中,我们从
x
∼
p
i
n
i
t
x\sim p_{init}
x
∼
p
ini
t
中随机采样一个
x
0
x_0
x
0
, 每次对x的值进行变换再加上噪声,最终得到的
x
n
x_n
x
n
可能就符合
p
d
a
t
a
p_{data}
p
d
a
t
a
从
p
i
n
i
t
p_{init}
p
ini
t
到
p
d
a
t
a
p_{data}
p
d
a
t
a
既然
x
x
x
是一个向量,那么不考虑随机噪声的情况下x变换的过程其实是在一个向量场中进行运动(
μ
t
(
x
)
\mu_t(x)
μ
t
(
x
)
代表x这一点前进的方向)
我们可以列出方程
d
X
t
=
μ
t
(
X
t
)
d
t
dX_t=\mu_t(X_t)dt
d
X
t
=
μ
t
(
X
t
)
d
t
建模这一个确定的过程
在计算机模拟的时候我们可以用欧拉算法进行建模:
Set
t
=
0
t=0
t
=
0
Set step size h=
1
n
\frac{1}{n}
n
1
Set
X
0
=
x
0
X_0=x_0
X
0
=
x
0
for
i
=
1
,
…
,
n
−
1
do
\textbf{for}\ i=1,\dots,n-1\ \textbf{do}
for
i
=
1
,
…
,
n
−
1
do
X
t
+
h
=
X
t
+
h
μ
t
(
X
t
)
X_{t+h}=X_t+h\mu_t(X_t)
X
t
+
h
=
X
t
+
h
μ
t
(
X
t
)
Update
t
←
t
+
h
t\leftarrow t+h
t
←
t
+
h
end
for
\textbf{end for}
end for
现在我们希望这个变换不再是确定性的,而是在每次变换的时候也添加一定的噪声;而高斯分布是最常见的噪声,因此添加高斯噪声。布朗运动是高斯噪声对应的随机过程(神秘名词),其满足性质
W
t
−
W
s
∼
N
(
0
,
(
t
−
s
)
I
d
)
W_t-W_s\sim N(0,(t-s)I_d)
W
t
−
W
s
∼
N
(
0
,
(
t
−
s
)
I
d
)
也就是它是高斯噪声的叠加
由于布朗运动实际上不可导,所以我们希望能用一个不依赖导数的方程去建模它:
d
X
t
=
μ
t
(
X
t
)
d
t
+
σ
t
d
W
t
dX_t=\mu_t(X_t)dt+\sigma_tdW_t
d
X
t
=
μ
t
(
X
t
)
d
t
+
σ
t
d
W
t
(实际上不合法)对应的是
X
t
+
h
=
X
t
+
h
μ
t
(
X
t
)
+
h
(
W
t
+
h
−
W
t
)
+
h
R
(
t
)
X_{t+h}=X_t+h\mu_t(X_t)+h(W_{t+h}-W_t)+hR(t)
X
t
+
h
=
X
t
+
h
μ
t
(
X
t
)
+
h
(
W
t
+
h
−
W
t
)
+
h
R
(
t
)
&&
l
i
m
h
→
0
E
(
R
(
t
)
)
=
0
lim_{h\rightarrow0}E(R(t))=0
l
i
m
h
→
0
E
(
R
(
t
))
=
0
所以我们可以这样模拟:
Set
t
=
0
t=0
t
=
0
Set step size h=
1
n
\frac{1}{n}
n
1
Set
X
0
=
x
0
X_0=x_0
X
0
=
x
0
for
i
=
1
,
…
,
n
−
1
do
\textbf{for}\ i=1,\dots,n-1\ \textbf{do}
for
i
=
1
,
…
,
n
−
1
do
Sample
ϵ
∼
N
(
0
,
I
d
)
\epsilon \sim N(0,I_d)
ϵ
∼
N
(
0
,
I
d
)
X
t
+
h
=
X
t
+
h
μ
t
(
X
t
)
+
σ
t
h
ϵ
X_{t+h}=X_t+h\mu_t(X_t)+\sigma_t\sqrt{h}\epsilon
X
t
+
h
=
X
t
+
h
μ
t
(
X
t
)
+
σ
t
h
ϵ
h
\sqrt{h}
h
是为了保证方差为h
Update
t
←
t
+
h
t\leftarrow t+h
t
←
t
+
h
end
for
\textbf{end for}
end for
AI
课程笔记
< 形式语言与自动机笔记
3d重建论文阅读 >
目录
课程信息:
Introduction