Press "Enter" to skip to content

赛尔笔记 | 条件变分自编码器(CVAE)

作 者: 哈工大SCIR 蔡碧波

 

0. 背景

 

机器学习模型可以主要分为判别模型与生成模型,近年来随着图像生成、对话回复生成等任务的火热,深度生成模型越来越受到重视。变分自编码器(VAE) 作为一种深度隐空间生成模型,在数据生成任务上与生成对抗网络(GAN)一并受到研究者的青睐。VAE(Kingma and Welling.2013)先将原始数据编码到符合特定分布的隐变量中,再根据生成的隐变量概率分布,还原原始数据的近似概率分布。

 

由于VAE是一种无监督模型,只能生成与输入类似的输出数据,故研究者提出条件变分自编码器CVAE(Sohn et al.,2015),将 原始数据以及其对应的类别共同作为编码器的输入,可以用于指定类别的数据的生成。利用CVAE就可以生成符合特定视觉特征的图片(Yan et al.2016)。VAEs方法最初应用于CV中,在自然语言处理领域,(Bowman et al.,2015)首次利用VAE进行文本生成。(Zhao et al.,2017)将CVAE用于对话生成中,增强了生成回复的多样性。

 

1.  基本思想

 

目前有很多任务都有着one-to-many的性质。比如在图像任务中,希望能够根据给定的肤色生成不同的人脸图片;在自然语言处理任务 中,给定上文,希望能够生成不同的回复等。由于这些任务中有多种变化的因素,故对相同的输入,可以有不同却均合理的结果。

 

 

一对多问题示例

 

上图 (Zhao et al.,2017) 展示了一个在对话生成任务中有多种回复的例子,A同学提问“你的爱好是什幺?”,由于回复的人可能有着不同的爱好,有不同的聊天习惯导致其有多种回复形式。CVAE模型作为一种深度条件生成模型,引入了隐变量z来捕捉这种一对多问题中的变化的因素。从概率图模型的角度可以将生成过程描述如下 (Kingma and Welling.2013) :

 

 

CVAE概率图模型

 

其将给定的上下文/肤色看作生成的条件, 在生成过程中,其首先从一个条件先验分布 中采样得到隐变量 ,然后 将隐变量 和条件 作为生成网络的输入来生成回复/图片。由于重采样可以得到不同的隐变量,故可以获得不同的生成的结果。

 

2. 模型架构与概率图架构

 

在具体介绍CVAE的数学原理前,我们先从整体的角度了解一下CVAE模型的整体架构¨对其有大体的认识。而模型的建模过程跟概率图结 构是保持一致的。在对话生成任务中,CVAE模型在训练阶段和测试阶段的前馈网络框架如图所示 (Zhao et al.,2017) :

 

 

 

CVAE测试及训练模型图

 

CVAE的核心在于 用神经网络对分布进行拟合 。图中黄色的部分表示将回复句编码为y,紫色部分表示将输入的上下文编码为x,将隐变量z 和x的拼接起来作为decoder的输入向量,生成回复的句子。隐变量z由 prior/recognition net采样 而来。

 

prior/recognition net实际上是MLP,其输出的值为 分布的具体参数 。如此例中假设隐变量服从的是一个高维高斯分布且其方差为对角 矩阵,则MLP的输出为 和 。

 

所谓的采样指的是从服从 的分布中采样一个向量, 由于直接采样是断微分的,故如下文所述,这里往往采取所谓的reparameterion trick,即采样由标准正态分布的变量变换而来,即  且 

 

实际的模型与概率图模型是一致的,前向先验概率 对应图中的prior network,后验概率 对应图中的recognition network (Kingma and Welling.2013) 。

 

 

CVAE后验概率

 

以KL散度为优化目标可以使先验概率和后验概率尽量逼近,那幺先验即可以与后验生成较为相似的隐变量。 decoder端对应于概率 ,将隐变量与对话上文拼接起来作为其输入,对解码的结果进行极大似然优化即可。

 

由于测试阶段输出 不可见,所以需从先验分布中对隐变量进行采样。其余部分与训练阶段的网络结构完全相同。

 

3. 数学原理

 

变分自编码(VAE)的方法核心其实是 利用深度神经网络对概率分布进行拟合 ,优化目标为 最大化变分下界(EOLB) 。由于CVAE由VAE变化而来,而EOLB 是他们共同的优化目标,所以这里从EOLB出发,先介绍VAE,再过渡到CVAE。

 

3.1 变分下界EOLB(evidence of lower bound)

 

在我们接触机器学习时,最先接触 隐变量 这个词是在EM算法中。变分自编码器与EM算法一脉相承。我们考虑一个概率模型,其中所有观 测变量(可以理解为高维向量)联合起来记为 我们的目标是对高维向量的分布进行拟合,以 最大化似然函数 作为优化目标

 

这里我们假设数据服从独立同分布假设,那幺该似然函数就是每个数据点的边际似然函数的和,即

 

所以什幺是变分下界?如果我们为 每个数据点引入函数 (可以为定义在上的任意分布)。 即可以将 分解为如下两项之和  (Bishop,2006) :

 

 

其中

 

 

由于KL散度满足 ,当且仅当 时成立,所以 的一个 变分下界 ,也叫作 ELBO(Evidence of Lower BOund)  (Bishop,2006)

 

 

变分下界

 

另外也可以利用jensen不等式来构造变分下界,使用 来 构造jensen的基本形式即可。

 

 

根据jenson不等式的取等条件有当且仅当 时取等。

 

值得强调的是,变分下界是和的函数,而 的值仅由决定。

 

所以EM算法就是根据变分下界来进行两阶段的优化,如果 后验分布可以被计算出来 (如为混合高斯分布),那幺即可以使用EM算法进行优化求解。

 

 

在E步,取 ,此时KL散度为0。在旧下 变分下界 的值相等。

 

在M步以为变量最大化变分下界 ,由于其是一个下界,此时 必然也增大。

 

 

通过E步和M步的不断迭代,即可使得 的值不断增大,直到收敛。

 

3.2 不可计算问题与变分自编码器

 

上述提到,只有当 后验概率是可计算 的时候方可使用EM算法进行求解。但是对于实际应用中的很多模型来说,计算后验概率分布或者计 算关于这个后验概率的期望是不可行的。例如在连续变量的情形中,需要求解的积分可能没有解析解,而空间维度和被积函数的复杂度较高导致数值积分不可行。如 (Kingma and Welling.2013) 的appendix C中所给的例子,分布的参数由mlp导出;对于离散变量,求边缘概率涉及到对隐变量的所有取值进行求和,但是实际应用中往往隐变量的数量为指数级,计算代价过高。

 

所以此时往往考虑对 进行 近似推断 。我们可以将 的范围限制为 某一个函数族 ,如限定 服从高斯分布。那幺可以将与数据点 对应的 记为 。这里 表征了 对应的高斯分布的参数 , 与 之间的映射关系。

 

那幺上述的变分下界可以写为:

 

对上式稍作变换,也可以写为:

 

以, 为参数对变分下界最大化即可达到对原 进行近似优化的目的。那幺变分下界关于,的导数该如何进行求导?如 (Kingma and Welling.2013) appendix B所示,KL部分往往是可以解析的进行求导的,重点是重构误差 该如何求导。

 

(Kingma and Welling.2013) 中提出可以reparameterization trick来解决。可以将该trick理解为一种变量代换的方法,也就是将原先的一个固定分布经过一个可导变换,变换为服从 的分布。比如我们可以将标准正态分布转换为任意正态分布,即对于 ,这里 。注意,如果我们直接从 中采样,该结果对 , 是不可导的,但是通过这种变量代换的方式,分布的参数,直接出现在了计算式中,是可导的。

 

此时就可以用蒙特卡洛方法对重构误差进行估计,令为 L 采样的次数,那幺重构误差近似于:

 

 

在实际实验中,数据以minibatch的方式送入模型进行训练, (Kingma and Welling.2013) 中提到,只要batch size足够大(如100),那幺可以将采样的次数 L 设置为1,如果是分类任务,那幺此时所估计的重构误差就与crossEntropyLoss无异了。

 

下图 (Doersch,2016) 展示了在使用reparameterization trick前后的整个变分下界的优化过程。

 

 

左: 使用reparameterization trick前 右: 使用reparameterization trick后

 

先验分布 实际上是没有参数的。这里所谓的reparameterization trick即是从标准正态分布到任意正态分布的转换公式,即对于 ,这里

 

上图即是变分自编码器(VAE)的结构图。 输出的是 的分布参数,如回复生成中,对应于词表中每个词的概率。

 

3.3 从变分自编码器到条件变分自编码器

 

条件变分自编码器正是变分自编码器的进阶版,但是其优化思路一脉相承。CVAE的概率图模型如图所示 (Sohn et al.,2015) 。

 

 

CVAE概率图模型

 

其中有三种变量,输入变量 ,输出变量 ,隐变量 。其生成过程为:对于给定的输入,先从先验分布 中采样得到 ,输出 从分布 中生成。

 

在CVAE中,我们转而对 条件分布 进行建模,优化的目标转为 最大化条件似然 。

 

 

与VAE相同,对于此目标函数依然存在着后验概率不可计算问题,所以退而求其次,在一个受限的隐变量分布中使用变分方法对EOLB进行 优化。下文中默认该受限的分布为一个高维高斯分布。CVAE的EOLB如下:

 

具体的推导请参考 (Sohn et al.,2015)

 

使用蒙特卡洛的方法来计算期望,那幺转为:

 

 

这里 L 代表采样的个数。

 

3.3.1 EOLB比较

 

VAE中的EOLB

 

CVAE中的EOLB

 

其差别主要是引入了条件x。统一来看,在EOLB中,KL散度的两项仍然分别是 隐变量的先验和后验 ;期望部分对应的是 生成网络 的输出的 对数似然在 隐变量的后验分布 上的期望。

 

3.3.2 模型结构图

 

 

CVAE 模型架构

 

将EOLB中的每一项在结构图中找到对应。对应关系如下:

 

图例中对的先验分布 进行了松弛,将其设定为的与独立,变为了 故KL散度中的第二项为 。请注意, 并不强制假设x与z是互相独立的, 如第2章中的图示,我们可以使用一个神经网络对条件先验 建模。

 

的后验分布 是一个多元高斯,其参数,由, 经过recognition net导出。之后的reparameterization过程与VAE相同。

 

生成过程 即decoder部分,以,作为输入,输出是 的 分布参数。比如回复生成任务中,decoder在每个step生成一个单词,即符合multinomial分布,输出即词表中每个单词的概率。此时 蒙特卡洛一次采样的结果与计算交叉熵 损失的过程是一致的。

 

4. 总结

 

CVAE是一个将贝叶斯推断方法与神经网络结合的很好的方法,有着优美的数学推导。由于隐变量有着良好的灵活性,便于对one-to-many 的关系进行建模,在一些生成任务中得到了广泛的应用。本文对CVAE的相关数学原理及网络结构进行了总结归纳,如有不妥当之处,还望各位读者多多批评指正。

 

参考文献

 

[1] Tiancheng Zhao, Ran Zhao and Maxine Eskenazi. 2017. Learning Discourse-level Diversity for Neural Dialog Models using Conditional Variational Autoencoders. ACL.

 

[2] Diederik P Kingma, Max Welling. 2013. Auto-Encoding Variational Bayes. ICLR.

 

[3] Bishop, C. M. (2006). Pattern recognition and machine learning. Springer Science+ Business Media.

 

[4] Bowman, S. R., Vilnis, L., Vinyals, O., Dai, A. M., Jozefowicz, R., & Bengio, S. (2015). Generating sentences from a continuous space. arXiv preprint arXiv:1511.06349.

 

[5] Kihyuk Sohn, Honglak Lee, and Xinchen Yan. 2015. Learning structured output representation using deep conditional generative models. NeurIPS.

 

[6] Xinchen Yan, Jimei Yang, Kihyuk Sohn, Honglak Lee. 2016. Attribute2Image: Conditional Image Generation from Visual Attributes. ECCV.

 

[7] Sohn, K., Yan, X., & Lee, H. Supplementary Material: Learning Structured Output Representation using Deep Conditional Generative Models.

 

[8] Doersch, C. (2016). Tutorial on variational autoencoders. arXiv preprint arXiv:1606.05908.

One Comment

  1. Mecoof

    写的很好,感谢!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注