第二十章 深度生成模型 Deep Generative Models
2020-4-17 深度学习笔记20 - 深度生成模型 1 (玻尔兹曼机,受限玻尔兹曼机RBM)
2020-4-18 深度学习笔记20 - 深度生成模型 2 (深度信念网络DBN,深度玻尔兹曼机DBM)
2020-4-20 深度学习笔记20 - 深度生成模型 3 (实值数据上的玻尔兹曼机)
2020-4-21 深度学习笔记20 - 深度生成模型 4 (卷积玻尔兹曼机,用于结构化或序列输出的玻尔兹曼机,其他玻尔兹曼机,通过随机操作的反向传播)
有向生成网络Directed Generative Nets
我们已经描述过
- 部分有向的模型——深度信念网络
- 浅度有向生成模型的稀疏编码模型
尽管在样本生成和密度估计方面表现不佳,在深度学习的背景下它们通常被用作特征学习器。
本节我们将描述多种深度完全有向的模型。
1-sigmoid信念网络
sigmoid信念网络是一种具有特定条件概率分布的有向图模型的简单形式。
我们可以将~sigmoid信念网络视为具有二值向量的状态
s
s
s,其中状态的每个元素都受其祖先影响:
p
(
s
i
)
=
σ
(
∑
j
<
i
W
j
,
i
s
j
+
b
i
)
p(s_i)=σ(\sum_{j<i}W_{j,i}s_j+b_i)
p(si)=σ(j<i∑Wj,isj+bi)
sigmoid信念网络最常见的结构是被分为许多层的结构,其中原始采样通过一系列多个隐藏层进行,然后最终生成可见层。
该结构是可见单元上概率分布的通用近似,即在足够深的情况下,可以任意良好地近似二值变量的任何概率分布(即使各个层的宽度受限于可见层的维度 )。
2-可微生成器网络 Differentiable Generator Networks
可微生成器网络,使用可微函数 g ( z ; θ ( g ) ) g(z;\theta^{(g)}) g(z;θ(g))将潜变量 z z z的样本变换为样本 x x x或样本 x x x上的分布,可微函数通常可以由神经网络表示。
为了从更复杂的分布(难以直接指定、难以积分或难以求所得积分的反函数)中生成样本,我们使用前馈网络来表示非线性函数 g g g的参数族,并使用训练数据来推断参数以选择所期望的函数。
我们可以认为 g g g提供了变量的非线性变化,将 z z z上的分布变换成 x x x上想要的分布。
在某些情况下,我们使用
g
g
g来定义
x
x
x上的条件分布,而不是使用
g
g
g直接提供
x
x
x的样本。 例如,我们可以使用一个生成器网络,其最后一层由sigmoid输出组成,可以提供Bernoulli分布的平均参数:
p
(
x
i
=
1
∣
z
)
=
g
(
z
)
i
p(x_i = 1 \mid z) = g(z)_i
p(xi=1∣z)=g(z)i 在这种情况下, 我们使用
g
g
g来定义
p
(
x
∣
z
)
p(x \mid z)
p(x∣z)时, 我们通过边缘化
z
z
z来对
x
x
x施加分布:
p
(
x
)
=
E
z
p
(
x
∣
z
)
p(x) = E_{z} p(x \mid z)
p(x)=Ezp(x∣z)
表示生成器网络的两种不同方法(发出条件分布的参数相对直接发射样品 )具有互补的优缺点。
- 当生成器网络在 x x x上定义条件分布时,它不但能生成连续数据,也能生成离散数据。
- 当生成器网络直接提供采样时,它只能产生连续的数据(我们可以在前向传播中引入离散化,但这样做意味着模型不再能够使用反向传播进行训练)。直接采样的优点是,我们不再被迫使用条件分布。
可微生成器网络包含
- 变分自编码器VAE
- 生成式对抗网络GAN
- 生成矩匹配网络
3.变分自编码器VAE Variational Autoencoders
VAE使用概率思想,通过计算生成数据分布与真实数据分布的相似度(KL散度)来判断。
VAE 是将生成器网络与推断网络匹配。
为了从模型生成样本,VAE首先从编码分布 p model ( z ) p_{\text{model}}(z) pmodel(z)中采样 z z z。 然后使样本通过可微生成器网络 g ( z ) g(z) g(z)。 最后,从分布 p model ( x ; g ( z ) ) = p model ( x ∣ z ) p_{\text{model}}(x;g(z)) = p_{\text{model}}(x \mid z) pmodel(x;g(z))=pmodel(x∣z) 中采样 x x x。
在训练期间,近似推断网络(或编码器) q ( z ∣ x ) q(z \mid x) q(z∣x)用于获得 z z z,而 p model ( x ∣ z ) p_{\text{model}}(x \mid z) pmodel(x∣z)则被视为解码器网络。
变分自编码器背后的关键思想是,它们可以通过最大化与数据点
x
x
x相关联的变分下界
L
(
q
)
L(q)
L(q)来训练:
L
(
q
)
=
E
z
∼
q
(
z
∣
x
)
l
o
g
p
m
o
d
e
l
(
z
,
x
)
=
E
z
∼
q
(
z
∣
x
)
l
o
g
p
m
o
d
e
l
(
x
∣
z
)
≤
l
o
g
p
m
o
d
e
l
(
x
)
L(q)=E_{z∼q(z∣x)}logp_{model}(z,x)=E_{z∼q(z∣x)}logp_{model}(x∣z)≤logp_{model}(x)
L(q)=Ez∼q(z∣x)logpmodel(z,x)=Ez∼q(z∣x)logpmodel(x∣z)≤logpmodel(x)
变分推断和学习的传统方法是通过优化算法推断 q q q,通常是迭代不动点方程。
只要 z z z是连续变量,我们就可以通过从 q ( z ∣ x ) = q ( z ; f ( x ; θ ) ) q(z \mid x) = q(z; f(x; \theta)) q(z∣x)=q(z;f(x;θ))中采样 z z z的样本反向传播,以获得相对于 θ \theta θ的梯度。
学习则仅包括相对于编码器和解码器的参数最大化 L L L。 L L L中的所有期望都可以通过蒙特卡罗采样来近似。
VAE的主要缺点
- 从在图像上训练的变分自编码器中采样的样本往往有些模糊。
- 倾向于仅使用 z z z维度中的小子集,就像编码器不能够将具有足够局部方向的输入空间变换到边缘分布与分解前匹配的空间。
- 它仅针对一个问题学习推断网络,即给定 x x x 推断 z z z。
VAE的主要优点
- 被定义为任意计算图,这使得它能适用于更广泛的概率模型族,因为它不需要将模型的选择限制到具有易处理的均匀场不动点方程的那些模型。
- 还具有增加模型对数似然边界的优点,而MP-DBM和相关模型的准则更具启发性,并且除了使近似推断的结果准确外很少有概率的解释。
4.生成式对抗网络GAN Generative Adversarial Networks
GAN是将生成器网络与判别器网络配对。
VAE和GAN都能生成新数据,但在生成质量的判断上,它们的做法不同。GAN直接使用神经网络训练一个判别器,用判别器判断生成的数据是不是真的和原分布差不多。
生成式对抗网络基于博弈论场景,其中生成器网络必须与对手竞争。 生成器网络直接产生样本 x = g ( z ; θ ( g ) ) x = g(z; \theta^{(g)}) x=g(z;θ(g))。 其对手,判别器网络,试图区分从训练数据抽取的样本和从生成器抽取的样本。 判别器发出由 d ( x ; θ ( d ) ) d(x; \theta^{(d)}) d(x;θ(d))给出的概率值,指示 x x x是真实训练样本而不是从模型抽取的伪造样本的概率。
形式化表示生成式对抗网络中学习的最简单方式是零和游戏,其中函数
v
(
θ
(
g
)
,
θ
(
d
)
)
v(\theta^{(g)}, \theta^{(d)})
v(θ(g),θ(d))确定判别器的收益。 生成器接收
−
v
(
θ
(
g
)
,
θ
(
d
)
)
-v(\theta^{(g)}, \theta^{(d)})
−v(θ(g),θ(d))作为它自己的收益。 在学习期间,每个玩家尝试最大化自己的收益,因此收敛在
g
∗
=
arg
min
g
max
d
v
(
g
,
d
)
g^*=\arg \min_g \max_d v(g,d)
g∗=arggmindmaxv(g,d)
v
v
v的默认选择是
v
(
θ
(
g
)
,
θ
(
d
)
)
=
E
x
∼
p
d
a
t
a
log
d
(
x
)
+
E
x
∼
p
m
o
d
e
l
log
(
1
−
d
(
x
)
)
v(\theta^{(g)},\theta^{(d)})=\mathbb{E}_{x\sim p_{data}}\log d(x)+\mathbb{E}_{x\sim p_{model}}\log(1-d(x))
v(θ(g),θ(d))=Ex∼pdatalogd(x)+Ex∼pmodellog(1−d(x))
这驱使判别器试图学习将样品正确地分类为真的或伪造的。 同时,生成器试图欺骗分类器以让其相信样本是真实的。 在收敛时,生成器的样本与实际数据不可区分,并且判别器处处都输出
1
2
\frac{1}{2}
21。 然后就可以丢弃判别器。
不幸的是,在实践中由神经网络表示的 g g g和 d d d以及 max d v ( g , d ) \max_d v(g, d) maxdv(g,d)不凸时,GAN中的学习可能是困难的。
稳定GAN学习仍然是一个开放的问题。 幸运的是,当仔细选择模型架构和超参数时,GAN学习效果很好。
5-生成矩匹配网络 Generative Moment Matching Networks
生成矩匹配网络 与VAE和GAN不同,它们不需要将生成器网络与任何其他网络配对,如不需要与用于VAE的推断网络配对,也不需要与GAN的判别器网络。
生成矩匹配网络使用称为矩匹配的技术训练。 矩匹配背后的基本思想是以如下的方式训练生成器——令模型生成的样本的许多统计量尽可能与训练集中的样本相似。 在此情景下,矩是对随机变量不同幂的期望。 例如,第一矩是均值,第二矩是平方值的均值,以此类推。
我们可以通过最小化一个被称为最大平均偏差的代价函数来训练生成矩匹配网络。