生成模型的基本脉络
1. 生成模型的简介
1.1 生成模型的目标是什么?
给定观测样本 x x x,令其真实数据分布为 p ( x ) ⏟ u n k n o w n \underbrace{p(x)}_{\text unknown} unknown p(x),生成模型的目标是设计模型来学习真实数据分布 p ( x ) p(x) p(x)。为了实现模型生成的可控性,我们需要建模学习条件概率分布 p ( x ∣ y ) p(x\vert y) p(x∣y)。
1.2 生成模型有什么用?
- 我们可以利用训练好的生成模型采样得到新的样本,因为训练好的生成模型能够近似真实数据分布 p ( x ) p(x) p(x);
- 在一些形式下,我们可以使用训练好的生成模型评估观测样本或者采样样本的似然 p ( x ∣ θ ) p(x \vert \theta) p(x∣θ)。
2. 生成模型类别
生成模型的分类标准有很多,下面我们从模型底层的原理对现有的生成模型进行划分。
2.1 Likelihood-Based Models
Likelihood-Based Models包括:
- 自回归(Autoregressive)模型
- 归一化流(Normalizing Flows)模型
- 变分自编码(Variational Autoencoders)模型
- 层次化变分自编码器(Hierarchical Variational Autoencoders)
- 变分扩散模型(Variational Diffusion Models)。
2.2 Adversarial-Based Models
基于对抗(Adversarial)的模型包括:GANs
2.3 Energy-Based Models
基于能量(Energy-Based)的模型,真实数据分布
p
(
x
)
⏟
u
n
k
n
o
w
n
\underbrace{p(x)}_{\text unknown}
unknown
p(x)被认为服从以下形式的分布:
p
(
x
)
=
1
Z
θ
e
f
(
x
)
,where
Z
θ
=
∫
x
e
f
(
x
)
d
x
p(x) = \frac{1}{Z_{\theta}} e^{f(x)} \text{ ,where } Z_{\theta} = \int_{x}e^{f(x)}dx
p(x)=Zθ1ef(x) ,where Zθ=∫xef(x)dx
其中,
f
(
x
)
⏟
u
n
k
n
o
w
n
\underbrace{f(x)}_{\text unknown}
unknown
f(x)为Energy Function;
Z
θ
Z_{\theta}
Zθ为Partition Function。通常情况下无法直接计算
Z
θ
Z_{\theta}
Zθ的值,尤其在未知
p
(
x
)
p(x)
p(x)解析式的情况下。
2.4 Score-Based Models
Score-Based Models为了解决Energy-Based Models中无法计算
Z
θ
Z_{\theta}
Zθ的问题,提出以下间接解决方案:
p
(
x
)
≈
p
θ
(
x
)
=
1
Z
θ
e
−
f
θ
(
x
)
p(x) \approx p_{\theta}(x)= \frac{1}{Z_{\theta}} e^{-f_{\theta}(x)}
p(x)≈pθ(x)=Zθ1e−fθ(x)
⟹
log
p
θ
(
x
)
=
−
log
Z
θ
⏟
c
o
n
s
t
a
n
t
−
f
θ
(
x
)
\implies\log{p_{\theta}(x)} = -\log{\underbrace{Z_\theta}_{\text constant}} - f_{\theta}(x)
⟹logpθ(x)=−logconstant
Zθ−fθ(x)
⟹
∇
x
log
p
θ
(
x
)
⏟
S
θ
(
x
)
=
−
∇
x
f
θ
(
x
)
\implies\underbrace{\nabla_{x}\log{p_{\theta}(x)}}_{S_{\theta}(x)} = -\nabla_{x}{f_{\theta}(x)}
⟹Sθ(x)
∇xlogpθ(x)=−∇xfθ(x)
最终的目标函数转换为:
θ
=
arg min
θ
E
p
(
x
)
∥
S
θ
(
x
)
−
∇
x
log
p
(
x
)
⏟
u
n
k
n
o
w
n
∥
2
2
\theta = \argmin_{\theta} \mathbb{E}_{p(x)}\lVert S_{\theta}(x) - \underbrace{\nabla_{x}\log p(x)}_{unknown}\rVert _2 ^2
θ=θargminEp(x)∥Sθ(x)−unknown
∇xlogp(x)∥22
其中,
S
θ
(
x
)
S_{\theta}(x)
Sθ(x)为Score Function,至此将Energy-Based Model转换为Score-Based Model。但是,真实数据分布的
∇
x
log
p
(
x
)
\nabla_{x}\log p(x)
∇xlogp(x)未知,可通过Score Matching方法近似求解该目标。
以上是我对生成模型的概述,后续我会按照类型详细讲解各种生成模型的来龙去脉,欢迎关注和讨论。