目录
摘要
在概率论中,两个随机变量的联合分布由一个变量的边缘分布和对应的条件分布确定,我们不能由两个边缘分布确定,比如,用两个边缘分布 p ( x ) p(x) p(x)和 p ( z ) p(z) p(z)无法确定联合分布,因为它们没有提供 x x x和 z z z的相关性信息,但可以设想,能否通过两个条件分布确定联合分布,用 p ( x ∣ z ) p(x|z) p(x∣z)和 p ( z ∣ x ) p(z|x) p(z∣x)定义 ( x , z ) (x,z) (x,z)的联合分布。微软亚洲研究院的研究员们在NeurIPS 2021 上发表的论文给出了全面而准确的回答(论文:“On the Generative Utility of Cyclic Conditionals”),并基于此理论提出了一个全新的生成式建模模式 CyGen。
基础概念
判别式与生成式
我们可以把机器学习的过程分为几类:从有标签的数据中学习(supervised learning),从没有标签的数据中学习(unsupervised learning),学习如何对持续的数据进行操作(Reinforcement);但有一种更注重实际应用的分类方法:判别式(Discriminative)与生成式(Generative)。
- 判别式模型:根据数据,我们在这些数据上进行判别,分类,区分,或者其他类似行为;
- 生成式模型:能够生成新的数据,比如图像,音乐,文本,视频,图Graph;
于是,我们可以想象,不管是什么神经网络,都只分为两类:生成器和判别器。对于GAN,生成器和判别器共同改善,互相超越。
在机器学习的发展历史中,大部分模型都属于判别式模型,我们估算一个叫做后验概率的函数,即条件概率 p ( y ∣ x ) p(y|x) p(y∣x),其中 x x x是输入的样本, y y y是输出的类别。以汽车图像分类为例,给定一张图像 x x x,我们需要得到汽车品牌属于 y y y的概率。
生成模型估算联合概率密度 p ( x , y ) p(x,y) p(x,y),也就是 x x x是一张图像,同时图中有一辆属于品牌 y y y的汽车的概率。我们之所以需要建模联合概率,是因为可以用它生成 y y y品牌下的汽车图像(通过从 x x x和 y y y的联合概率中,对 y y y类汽车的图像 x x x进行采样)。
目前有很多优秀的生成模型,比如自编码器。自编码器尝试重建输入数据,因此,我们可以利用学习到的密集表达生成一组新的相似数据。GAN由两个网络组成,生成器通过呈现一组看上去真实,但事实上是伪造的数据去蒙骗判别器,两者相互促进训练。
判别式模型如SVM,KNN强调从数据中学习决策函数,生成式模型如语言模型,HMM,Bayes强调学习数据生成的规律(分布),能够更好地学习映射数据的隐含特征表示,比如VAE中的latent space就是有规律的
PCA降维,自编码器,变分自编码器的联系
PCA的想法是构建 n e n_{e} ne个新的独立特征,这些特征是 n d n_{d} nd个旧特征的线性组合,PCA使得这些新特征所定义的子空间上的数据投影尽可能接近原始数据。换言之,PCA寻找初始空间的最佳线性子空间(由新特征的正交基定义),以使投影到该子空间上的近似数据的误差尽可能小。
自编码器会构造数据瓶颈(bottleneck),从而确保只有信息的主要部分可以通过瓶颈进行重构。如果假设编码器结构只有一层且没有非线性映射,编码器将像PCA一样,并且有更多可能学习到的参数实现降维。PCA是线性的降维(并且线性空间的基正交),而自编码器的单层线性编码器也是线性降维(但线性空间中的基不必正交,即新的特征不必相互独立,因为神经网络没有正交性的约束)
自编码器将数据降维到隐空间latent space后,隐空间总是缺乏可解释和可利用的结构(缺乏规则性,lack of regularity)。这就是一个单纯的降维,并不能将主要信息做到简化表示,换言之,我们没有信心使用自编码器的解码器去做生成,因为编码器对应的隐空间完全是不规则的(其实这是必然的现象,因为在优化AE的过程中并没有对latent space加约束,自编码器仅以尽可能少的损失为目标进行训练,而不管隐空间如何组织)。下图中展示了"无限强"自编码器的例子,虽然训练数据可以被无损失地压缩、重构,但在隐空间随机采样的点可能会解码出无意义的数据。
为了解决缺乏规则的问题(本质就是要基于隐空间的任意采样信息生成一个合理的结果),我们需要让隐空间具有两个性质:连续性和完整性:
- 连续性:continuity,隐空间中的两个相邻点解码后不应呈现两个完全不同的内容;
- 完整性:completeness,针对给定的分布,从隐空间采样的点在解码后应提供“有意义”的内容;
所以,出现了变分自编码器(VAE),变分自编码器可以定义为一种自编码器,其训练经过对隐空间正则化以确保隐空间具有能够进行数据生成过程的良好属性。为了引入隐空间的正则化,我们对编码-解码过程进行了一些修改:我们不是将输入编码为隐空间中的单个点,而是将其编码为隐空间中的概率分布。VAE的训练过程如下:
- 首先,将输入编码为在隐空间上的分布;
- 第二,从该分布中采样隐空间中的一个点;
- 第三,对采样点进行解码并计算出重建误差;
- 最后,重建误差通过网络反向传播。
可以定义概率图模型描述数据, x x x表示数据变量,假设 x x x是由未直接观察到的隐变量 z z z生成的,因此,对于每个数据,有以下生成步骤:
- 从先验分布采样一个隐表达 z z z;
- 按条件概率 p ( x ∣ z ) p(x|z) p(x∣z)采样数据 x x x;
自然地,从概率角度看,解码器可以定义为 p ( x ∣ z ) p(x|z) p(x∣z),编码器则定义为 p ( z ∣ x ) p(z|x) p(z∣x)。AE中缺乏的隐空间正则化出现在数据生成过程中:人为假设隐空间的表达服从先验分布 p ( z ) p(z) p(z)。
对于贝叶斯公式: p ( z ∣ x ) = p ( x ∣ z ) p ( z ) p ( x ) p(z|x)=\frac{p(x|z)p(z)}{p(x)} p(z∣x)=p(x)p(x∣z)p(z)可以看出,现在的问题是 p ( x ∣ z ) p(x|z) p(x∣z)是未知的,因此不能借助贝叶斯公式求出 p ( z ∣ x ) p(z|x) p(z∣x)。
现在,用高斯分布
q
x
(
z
)
q_{x}(z)
qx(z)近似后验分布
p
(
z
∣
x
)
p(z|x)
p(z∣x),其均值和协方差由参数
x
x
x的两个函数
g
g
g和
h
h
h定义。这两个函数应该分别属于可以参数化的函数族
G
G
G和
H
H
H。因此有:
q
x
(
z
)
≈
N
(
g
(
x
)
,
h
(
x
)
)
,
g
∈
G
,
h
∈
H
q_{x}(z)\approx N(g(x),h(x)),g\in G,h\in H
qx(z)≈N(g(x),h(x)),g∈G,h∈H所以有:
注意,
z
∼
q
x
z\sim q_{x}
z∼qx代表
z
z
z是从
q
x
q_{x}
qx这个分布中采样得到的。对于倒数第二行,可以看出,在近似后验分布
p
(
z
∣
x
)
p(z|x)
p(z∣x)时存在一个平衡:
- 第一项:对重构样本的对数似然概率最大;
- 第二项: q x ( z ) q_{x}(z) qx(z)和定义的先验分布 p ( z ) p(z) p(z)之间的KL散度最小;
这两项体现了在数据置信度与先验分布置信度之间的平衡。
对于最后一行,其实包含了生成映射函数
f
f
f的优化,所以完整的VAE目标应该是(
F
F
F是
f
f
f的函数族):
变分的本质就是从目标中寻找到最优的函数(宗量),因此,上述模型被称为变分自编码器。
注意到常数 c c c,用于决定两个项的平衡。
现在建立了依赖于三个函数
f
,
g
,
h
f,g,h
f,g,h的概率模型,并使用变分推断表示了要解决的优化问题。为了限制优化域,令
F
,
G
,
H
F,G,H
F,G,H对应网络体系结构的函数族,因此可以将神经网络引入VAE。而关于
h
h
h和
g
g
g,可以保持前部分网络的参数共享,基于神经网络的VAE架构如下:
这里,
h
(
x
)
h(x)
h(x)输出的向量表示协方差矩阵对角元素的向量,因此其形状与均值
g
(
x
)
g(x)
g(x)相同(假设变量独立,所以非对角线元素为0).
随机采样发生在模型前向计算过程中,需要借助重参数化技巧(reparametrisation trick)使梯度下降成为可能。其原理为:如果 z z z是遵循均值 g ( x ) g(x) g(x)与协方差 h ( x ) h(x) h(x)的高斯分布的随机变量,则 z z z可以表示为: z = h ( x ) ς + g ( x ) , ς ∼ N ( 0 , I ) z=h(x)\varsigma+g(x),\varsigma\sim N(0,I) z=h(x)ς+g(x),ς∼N(0,I)这个技巧很巧妙,通过采样一个实系数来获得对高维向量的采样,整个过程就变成可导的了。
小结:变分自编码器(VAE)是自编码器,它通过使编码器返回隐空间中的分布而不是单个点,并在损失函数中添加一个对返回分布的正则项来解决隐空间不规则性的问题,以确保更好地组织隐空间
VAE与GAN
通常我们会使用VAE与GAN进行比较,它们两个的目标基本是一致的:希望构建一个从隐变量 z z z生成目标数据 x ^ \widehat{x} x 的模型,它们在生成数据时采用的模式都是使用随机噪声(比如高斯分布),但是在实现上有所不同。
生成模型的难题就是判断 x ^ \widehat{x} x 对应的生成分布与 x x x对应的真实分布的相似度,因为从结果上看,我们只知道两者的采样结果,不知道它们的概率分布。
假设隐空间服从标准的正态分布,我们就可以从中采样得到若干个 z 1 , z 2 , . . . , z n z_{1},z_{2},...,z_{n} z1,z2,...,zn,进行分布变换后得到 x ^ 1 , x ^ 2 , . . . , x ^ n \widehat{x}_{1},\widehat{x}_{2},...,\widehat{x}_{n} x 1,x 2,...,x n。如何判断 x ^ \widehat{x} x 与 x x x是相似的?直接用KL散度是不行的,因为 KL 散度是根据两个概率分布来算它们的相似度的,然而目前我们并不知道它们的概率分布。我们只有样本本身,没有概率分布,当然也就没有方法算 KL 散度。
GAN和VAE的本质是度量生成图片质量的方式不同:事实上,用GAN和AE对比会更加清楚(VAE只是在AE基础上增加了latent space的控制);
AE是直接对真实样本与生成样本进行(像素级别)的监督,GAN则是学习一个判别器让真实样本与生成样本的整体判断趋于一致。AE由于中间的latent space是由输入样本编码产生的,这可以让latent space与真实样本的对应性更强。GAN由于随机输入与真实样本的对应性更弱,导致生成的样本容易偏离主题(不易控制生成的方向)。
绝对连续分布与狄拉克分布
绝对连续分布即为有概率密度函数可以描述的分布,比如经典的变分自编码器(variational auto-encoder,VAE),VAE的编码器接收输入数据,并产生一个高斯分布,从高斯分布中采样隐变量,再用解码器将隐变量映射到目标分布,VAE的两个条件分布 p ( x ∣ z ) p(x|z) p(x∣z)与 p ( z ∣ x ) p(z|x) p(z∣x)都可以用概率密度函数描述。
GAN的生成器也是一个从隐变量 z z z到数据 x x x的确定性映射,即 x = f ( z ) x=f(z) x=f(z),但对于这样的生成器,其条件分布将所有的概率质量都集中到了 f ( z ) f(z) f(z)上: p ( x ∣ z ) = δ ( x − f ( z ) ) p(x|z)=\delta(x-f(z)) p(x∣z)=δ(x−f(z)), δ \delta δ函数被定义为在除了 x = f ( z ) x=f(z) x=f(z)以外的所有点的值都为0,但是总的积分为1。狄拉克分布的意义为:只有 x x x为 f ( z ) f(z) f(z)时,才在该情况下存在概率,并且概率为1。很明显,这样的分布 p ( x ∣ z ) p(x|z) p(x∣z)不是连续的。
GAN其实同VAE一样,GAN也希望训练出一个生成模型 p ( x ∣ z ) p(x|z) p(x∣z),将隐空间的分布 p ( z ) = N ( 0 , I ) p(z)=N(0,I) p(z)=N(0,I)映射为真实数据的分布 p ( x ) p(x) p(x),不同于VAE中 p ( x ∣ z ) p(x|z) p(x∣z)的高斯分布,GAN选择的是: p ( x ∣ z ) = δ ( x − f ( z ) ) , p ( x ) = ∫ p ( x ∣ z ) p ( z ) d z p(x|z)=\delta(x-f(z)),p(x)=\int p(x|z)p(z)dz p(x∣z)=δ(x−f(z)),p(x)=∫p(x∣z)p(z)dz狄拉克分布可以看作方差无限小的高斯分布,VAE的高斯分布会带来模糊性,GAN的狄拉克分布使得其只在单点有响应,这样的设计使得真假样本必须充分接近。
问题描述:两个条件分布能否确定联合分布
这个问题可以分解为两个子问题,只有当两个问题都是True,原问题才为True。
- 相容性(compatibility):对于任意给定的两个条件分布 p ( x ∣ z ) p(x|z) p(x∣z)和 q ( z ∣ x ) q(z|x) q(z∣x),它们是否可以由同一个联合分布导出?换言之,是否存在一个联合分布 π ( x , z ) \pi(x,z) π(x,z)使得 π ( x ∣ z ) = p ( x ∣ z ) \pi(x|z)=p(x|z) π(x∣z)=p(x∣z)且 π ( z ∣ x ) = p ( z ∣ x ) \pi(z|x)=p(z|x) π(z∣x)=p(z∣x);
- 决定性(determinacy):对于两个相容的条件分布 p ( x ∣ z ) p(x|z) p(x∣z)和 q ( z ∣ x ) q(z|x) q(z∣x),它们是否能唯一决定一个联合分布?换言之,能够导出二者的联合分布是否唯一?
对于绝对连续的情况:
考虑两个条件分布都有概率密度函数,有概率密度函数就可以使用各种概率密度函数的公式。如果满足相容性,就存在联合分布
π
(
x
,
z
)
\pi(x,z)
π(x,z)使得两条件分布的比
[
p
(
x
∣
z
)
/
q
(
z
∣
x
)
]
[p(x|z)/q(z|x)]
[p(x∣z)/q(z∣x)]可以分解为一个关于
x
x
x的函数乘以一个关于
z
z
z的函数。如果比值满足这样的分解,就可以构造出
π
(
x
,
z
)
\pi(x,z)
π(x,z),从而说明两条件分布相容。
[ p ( x ∣ z ) / q ( z ∣ x ) ] = π ( x , z ) / π ( z ) π ( x , z ) / π ( x ) = π ( x ) π ( z ) [p(x|z)/q(z|x)]=\frac{\pi(x,z)/\pi(z)}{\pi(x,z)/\pi(x)}=\frac{\pi(x)}{\pi(z)} [p(x∣z)/q(z∣x)]=π(x,z)/π(x)π(x,z)/π(z)=π(z)π(x)
微软亚研院的研究员们找出了一个既充分必要又可操作的相容性判据,大意是根据所给条件密度函数找出恰当子集并在其上判断可分解性。并且证明了绝对连续情况下的条件分布有很好的决定性。
对于狄拉克分布情况:
研究员们对狄拉克分布情况也给出了一个既充分必要又可操作的相容性判据,并且证明了狄拉克分布情况下的条件分布缺乏决定性。
CyGen
理论分析
生成式建模的任务是对数据变量 x x x的分布 p ( x ) p(x) p(x)进行建模。对于 x x x 维度很高的情况直接建模此分布不便灵活地表达各维度的相关性,因而当前流行的(深度)生成模型都会引入隐变量 z z z 并建模联合分布 p ( x , z ) p(x,z) p(x,z) 来给出 p ( x ) = ∫ p ( x , z ) d z p(x)=\int p(x,z)dz p(x)=∫p(x,z)dz。用此积分表达 x x x各个维度之间复杂的相关性。同时这个隐变量 z z z 也可以作为数据的一个紧凑(低维)的有语义的表示(representation)。这些模型通过先验分布 p ( z ) p(z) p(z)和似然模型 p θ ( x ∣ z ) p_{\theta}(x|z) pθ(x∣z), θ \theta θ为参数,来定义联合分布 p θ ( x , z ) p_{\theta}(x,z) pθ(x,z)。同时,为了提取数据表达,也会引入推断模型 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x)来近似联合分布对应的后验分布 p θ ( z ∣ x ) p_{\theta}(z|x) pθ(z∣x)。
使用
p
(
z
)
p(z)
p(z)和
p
θ
(
x
∣
z
)
p_{\theta}(x|z)
pθ(x∣z)定义联合分布会带来一些问题,对于一般任务(如图像分布的建模)人们并不知道什么样的先验分布最合适,因而大多选用标准高斯分布。但它的支撑集是单连通的且似然模型通常是连续的,这意味着模型只能表达支撑集也是单连通的数据分布,而若真实数据分布有多联通分量,例如下图左上角所示的数据分布,这样的模型便无法很好地建模数据分布。
例如 VAE 生成的数据分布是模糊的,而 BiGAN 生成的五瓣数据堆也仍然是连在一起的。这称为流形错配(manifold mismatch)问题。另外,高斯先验会让推断模型
q
ϕ
(
z
∣
x
)
q_{\phi}(z|x)
qϕ(z∣x)向原点集中,将具有不同特性的数据点的表示混在一起,使得这些表示不能充分体现各数据点
x
x
x 的特性。
上图第二行展示了 VAE 和 BiGAN 得到的数据表示会将不同类别数据的表示挤在一起甚至重叠。这称为后验坍缩(posterior collapse)问题。
从根本上解决问题的途径是解除生成式建模中需要指定先验分布的这个要求。这就引出了一开始的问题:能否仅用两个条件分布模型定义联合分布进而实现生成式建模。
首先,简单粗暴地去掉先验分布是不行的,比如上图,使用去噪自编码器(denoising auto-encoder,DAE)无法得到合理结果,(自编码器只需要两个条件分布模型)。
为此,研究员们提出了“成环式生成式建模”CyGen(Cyclic conditional Generative modeling)这一生成式建模的全新模式。它仅需两个可形成闭环的条件分布模型 p θ ( x ∣ z ) p_{\theta}(x|z) pθ(x∣z) 和 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x) 而无需指定先验分布,并且方法源自上面所建立的严格理论分析,保证了相容性和决定性,因而是一个合法的生成式模型。
需要阐明的是,两条件分布模型满足相容性和决定性就唯一确定了联合分布,因此也隐式地定义了一个先验分布,只是 CyGen 无需特意为它建立模型显式表达。由于无需指定先验分布,CyGen 从根本上解决了流形错配和后验坍缩问题,上图的结果表明它确实能完美表达数据分布,并能将不同特性数据点的表示给区分开来。
CyGen满足相容性与决定性:相容性损失函数
为构成合法的生成模型,两条件分布模型必须能定义一个联合分布,所以它们必须满足相容性和决定性。对于决定性,从上面的理论分析可以得知,狄拉克形式的条件模型,例如 GAN 及基于流的生成模型中确定性的似然模型(生成器),无法给出决定性。因而使用绝对连续形式的条件模型,例如 VAE 中概率性的似然模型和推断模型,其良好的决定性也是理论分析的结论。
研究员们使用绝对连续情况下的相容性判据来实现相容性。由于一般的概率性条件分布模型结构都有全支撑集(在概率论中,一个概率分布的支撑集是随机变量的所有可能值组成的集合的闭包),因此判据中的“恰当子集”只可能是整个空间 X × Z X×Z X×Z,所以满足相容性只需满足两条件分布密度函数的比的可分解性条件。为此,需要引入如下相容性损失函数(compatibility loss): C ( θ , ϕ ) = E p ∗ ( x ) q ϕ ( z ∣ x ) ∣ ∣ ▽ x ▽ z T l o g p θ ( x ∣ z ) q ϕ ( z ∣ x ) ∣ ∣ F 2 C(\theta,\phi)=E_{p^{*}(x)q_{\phi}(z|x)}||\triangledown_{x}\triangledown_{z}^{T}log\frac{p_{\theta}(x|z)}{q_{\phi}(z|x)}||^{2}_{F} C(θ,ϕ)=Ep∗(x)qϕ(z∣x)∣∣▽x▽zTlogqϕ(z∣x)pθ(x∣z)∣∣F2其中, p ∗ ( x ) p^{*}(x) p∗(x)为真实数据分布,若条件密度比可分解,那其对数就是一个 x x x 的函数加上一个 z z z 的函数,因而在对 z z z的任一分量又对 x x x 的任一分量求完导数后得零。
拟合与生成数据:最大似然目标
作为生成模型,两条件分布应提供相应的服务,比如拟合与生成数据。当两个条件分布模型满足相容性和决定性时,可以用它们写出数据变量 x x x的边缘分布 p θ , ϕ ( x ) p_{\theta,\phi}(x) pθ,ϕ(x),进而进行最大似然估计: m a x θ , ϕ E p ∗ ( x ) [ l o g p θ , ϕ ( x ) ] = E p ∗ ( x ) [ − l o g E q ϕ ( z ′ ∣ x ) [ 1 p θ ( x ∣ z ′ ) ] ] max_{\theta,\phi}E_{p^{*}(x)}[logp_{\theta,\phi}(x)]=E_{p^{*}(x)}[-logE_{q_{\phi}(z'|x)}[\frac{1}{p_{\theta}(x|z')}]] maxθ,ϕEp∗(x)[logpθ,ϕ(x)]=Ep∗(x)[−logEqϕ(z′∣x)[pθ(x∣z′)1]]等式右边的第二个期望可以用VAE中的重参数化技术估计。相比之下,前面提到的DAE的目标函数 E p ∗ ( x ) q ϕ ( z ′ ∣ x ) [ l o g p θ ( x ∣ z ′ ) ] E_{p^{*}(x)q_{\phi}(z'|x)}[logp_{\theta}(x|z')] Ep∗(x)qϕ(z′∣x)[logpθ(x∣z′)]是它的上界,因而DAE不容易保证拟合效果。特别是,DAE会让 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x)变为集中在 p ( x ∣ z ) p(x|z) p(x∣z)对 z z z的最大值解上的狄拉克分布,从而造成模式坍缩。
因此,CyGen的最终优化目标是最大似然目标与上述相容性目标的和。
实验结果
研究员们也在真实图片数据集 MNIST 和 SVHN 上做了实验。下图中的结果表明,CyGen 的生成效果十分清晰而多样,且用它提取的数据表示所训练的分类器取得了最高的准确率。这分别体现了 CyGen 避免流形错配及后验坍缩的好处。CyGen 这种生成式建模模式会为很多应用领域带来便利,因为在大部分场景中很难知道一个先验分布,但却对条件分布有一定的知识。