1.1 人工智能不仅仅是决策
在思考深度生成建模之前,先看一个简单的例子:假如我们已经训练了一个对动物图像$\boldsymbol{x}\in\mathbb{Z}^D$分类的深度神经网络,图像的标签表示为$y\in\mathcal{Y}$, 其中$\mathcal{Y}$={cat, dog, horse};假设这个神经网络已训练完成且能够对一个样本进行正确分类。目前为止还不错,对吧?但如文献[1]所指出,在输入图像中添加一些噪声可能会导致完全错误的分类结果。图1.1展示了一个添加噪声改变预测标签概率的例子;然而,加入的噪声几乎没有改变图像的内容(至少对人类来说)。

这个例子表明,用于参数化条件分布$p(y|\boldsymbol{x})$的神经网络似乎缺乏对图像的语义理解。由此,我们可以认为判别式学习对于决策系统或人工智能是不够的。对一个机器学习系统来说,如果无法理解或表达所处环境的不确定性,那么它做出的决策是不可靠的。例如:当少量的噪音就能改变系统内部的信念并导致决策方向的偏移,我们如何信任这样的系统?当系统对所处环境一无所知,我们如何与之沟通?
为了说明“不确定性 (uncertainty)”和“理解 (understanding)”两个概念,以二分类任务为例,类别分别用orange和blue两种颜色表示。假定有一些二维标注样本(图1.2左),还有一个待测试样本(图1.2中的✖️)。我们有两种方式构建分类系统:第一是基于条件概率$p(y|\boldsymbol{x})$(图1.2中)在标注样本上学习;第二则是通过联合分布$p(\boldsymbol{x},y)=p(y|\boldsymbol{x})p(\boldsymbol{x})$(图1.2右)在标注样本上学习。

如果使用判别式方法,即学习条件概率分布$(y|\boldsymbol{x})$,那么可以清晰地画出两个类别之间的分界线。然后可以看到✖️距离orange区域非常远,所以分类器认为这个样本属于blue类的概率更大,说明分类器对分类结果非常确定。
但是,如果额外学习一个边缘概率$p(\boldsymbol{x})$,可以看到✖️不仅距离类别边界线非常远,而且距离标注的blue样本也非常远。这说明✖️远离标注样本高概率出现的区域,因此✖️的边缘概率$p(\boldsymbol{x}=\times)$取值低,则联合概率$p(\boldsymbol{x}=\times,y=\text{blue})$同样取值低,因此模型对分类的结果并不确定。
这个例子表明,理解所处环境是可靠人工智能系统的特征之一。针对这个目标,只进行判别式学习是不够的,还应使用概率论语言量化对周围环境的信念[2, 3],所以我们认为对分布$p(\boldsymbol{x})$进行建模是非常重要的,它有如下的必要性:
2.对决策结果进行加权;
3.生成新的数据实例。
通常来讲,在深度学习中,生成式模型指代哪些可以生成数据实例的模型,但我们尝试展示了生成模型更广泛的应用,这对于构建人工智能系统来说或许非常重要。此外,对数据的生成式过程建模对与理解感兴趣的现象至关重要[3,4]。针对判别任务,我们倾向于关注$p(\boldsymbol{x},y)=p(y|\boldsymbol{x})p(\boldsymbol{x})$,如前所述,这比单独的条件分布更具优势。
1.2 生成式建模可以用在什么领域?
随着神经网络和算力的发展,深度生成建模已经成为人工智能领域的前沿方向之一。它的应用横跨多种不同的数据模态,例如:文本分析[5]、图像分析[6]、音频分析[7],以及不同的学习范式,例如主动学习[8]、强化学习[9]。图1.3展示了深度生成建模潜在的应用。
在某些任务中,直接生成或着通过修改已有样本的特征获取新的数据实例非常重要。但在主动学习这样的任务中,找出低置信度的样本更为重要。对于强化学习情况又另当别论,生成下一步最有可能的环境状态对于Agent的行动决策非常重要。而对于医学应用,生成模型提供的信息比单纯的判别式模型更具价值。如果一个人工智能系统知道自己所不知道的,那么它就具备作为一个独立专家的可能性。
以上例子清楚地表明,很多领域都可以从生成模型中受益。也许成熟的人工智能系统会需要多样的能力,但正如以上案例所示,我们认为生成式建模无疑是最重要的能力之一。
1.3 如何实现生成式建模?
在介绍了生成式建模的重要性和广泛应用性之后,我们应该思考如何用模型实现生成式建模,换句话说,如何计算我们多次提到的$p(\boldsymbol{x})$。
目前已有的生成式建模方法分为四类(图1.4):
2.流模型(Flow based models)
3.隐变量模型(Latent variable models)
4.能量模型(Energy-based models)

我们目前所讨论的建模方法都可以不用深度神经网络实现。尽管如此,但神经网络是灵活且强大的,且被广泛用于参数化生成模型。因此,我们从现在开始主要关注深度生成模型,即基于深度神经网络构建的生成模型。
以上对生成模型的分类仅作为帮助我们浏览本书的原则,并非一成不变。就我个人而言,我不太喜欢花太多时间对科学方法进行分类和标记,因为这一般会导致分歧和门槛。此外,还有一组基于分数匹配[12-14]的模型无法采用上述分类原则。然而,正如[14]所指出的,这些模型与隐变量模型有很多相似之处(如果我们将随机过程的连续步骤视为隐变量),因此,我们将其视为隐变量模型。
1.3.1 自回归生成模型
在自回归生成模型中,样本的概率分布$p(\boldsymbol{x})$以自回归的方式分解为: $$ p(\boldsymbol{x})=p(x_0)\prod_{i=1}^{D}p(x_i|\boldsymbol{x}_{<i}),\tag{1.1} $$
其中,$\boldsymbol{x}_{<i}$表示$\boldsymbol{x}$中索引小于$i$的部分。
计算所有的条件概率$p(x_i|\boldsymbol{x}_{<i})$是低效的。不过我们可以借助于因果卷积[7,15,16]等技术。第2章中深入讨论了自回归模型。
1.3.2 流模型
变量替换定理通过可逆变换$f$对随机变量的密度进行变换,为生成式模型提供了一种计算概率分布的方法[17]: $$ p(\boldsymbol{x}) = p(\boldsymbol{z}=f(\boldsymbol{x}))|\boldsymbol{J}_{f(\boldsymbol{x})}|,\tag{1.2} $$
其中,$\boldsymbol{J}_{f(\boldsymbol{x})}$表示Jacobian矩阵。
虽然$f$可由神经网络参数化,但神经网络的运算必须支持计算Jacobian矩阵,因此架构十分受限。 线性体积等价变换(linear, volume-preserving transformations)[18,19]是早期出现的变换方法,这种变换的Jacobian矩阵行列式$|\boldsymbol{J}_{f(\boldsymbol{x})}|=1$。后续工作基于矩阵行列式设计非线性变换,包括planar流[20]和Sylvester流[21,22]。另一类方法侧重于建模可逆变换,从而使Jacobian矩阵可计算,例如使用耦合层的RealNVP[23]。最近的工作利用可逆约束使任意神经网络都可以计算Jacobian矩阵行列式的近似[24-26]。
针对离散化数据,概率质量函数的体积无法进行变换,因此,变量替换定理采用如下形式: $$ p(\boldsymbol{x}) = p(\boldsymbol{z}=f(\boldsymbol{x})).\tag{1.3} $$ 整数离散流提出使用带有舍入运算符的仿射耦合层来保证整数输出[27]。[28]对仿射偶合层做了进一步扩展。
所有利用变量替换定理的生成式模型统称为基于流的模型或简称为流模型。我们会在第三章讨论流模型。
1.3.3 隐变量模型
隐变量模型的基本思想是假设存在一个低维的隐空间并且数据的生成过程为: $$ \begin{aligned} &\boldsymbol{z}\sim p(\boldsymbol{z}) \\ &\boldsymbol{x}\sim p(\boldsymbol{x}|\boldsymbol{z}). \end{aligned} $$ 其中隐变量$\boldsymbol{z}$就是样本$\boldsymbol{x}$在低维隐空间中的映射。
最为人熟知的隐变量模型可能是概率主成分分析[29](pPCA),其假设$p(\boldsymbol{z})$和$p(\boldsymbol{x}|\boldsymbol{z})$都是高斯分布,而且$\boldsymbol{x}$和$\boldsymbol{z}$之间是线性相关的。
变分自编码器(Variationa Auto-Encoder,VAE)[30,31]是一种非线性版的pPCA。VAE使用变分推断估计后验概率$p(\boldsymbol{z}|\boldsymbol{x})$,并且利用神经网络对概率分布进行参数化。自从Kingma和Welling的论文[30]以及Rezende等人的论文[31]发表之后,很多VAE的扩展或变种被提出,包括对后验的改进[19,21,22,32]、对先验的改进[33,34]以及对解码器的改进[35]。也有一些工作对隐空间的拓扑结构做了约束,例如,球面隐空间[36]。无论是VAE还是pPCA,其中的所有分布都需要提前确定好,因此,这些模型也被称为预定义的(prescribed)模型,我们将在第四章讨论隐变量模型。
目前为止,自回归模型、流模型以及pPCA和VAE都以最大化对数概率似然为目标,这与数据分布和模型分布之间的KL散度密切相关。另一种不同的方法采用对抗损失,使用一个判别器$D(\cdot)$判断输入的样本是真实的样本还是由生成器隐式生成的样本,即$p(\boldsymbol{x}|\boldsymbol{z})=\sigma(\boldsymbol{x}-G(\boldsymbol{z}))$,其中$\sigma(\cdot)$表示狄拉克函数。这一类模型称为隐式(implicit)模型。生成对抗网络(Generative Adversarial Networks, GANs)是典型的隐式模型,能够生成逼真的图像,是最成功的深度生成模型之一。详见第七章。
1.3.4 能量模型
物理学中的能量函数$E(\boldsymbol{x})$以及玻尔兹曼分布,为生成式建模提供了一个有趣的角度: $$ p(\boldsymbol{x})=\frac{\exp(-E(\boldsymbol{x}))}{Z} $$ 其中$Z=\sum_{\boldsymbol{x}}\exp(-E(\boldsymbol{x}))$表示配分函数。分布由幂能量函数定义,该幂能量函数通过配分函数$Z$归一化作为概率取值。尽管深入到物理学中会发现更多关于能量函数的内容,但我们不需要深究。[37]是研究能量模型一个很好的起点。
借由能量函数表示概率分布的生成模型称为能量模型(energy-based models,EBMs)。EBM背后的主要思想是建模能量函数并计算(更确切地说是近似地计算)配分函数。玻尔兹曼机(Boltzmann Machines)是一种典型的能量模型,它利用双线性映射作为能量函数,即$E(\boldsymbol{x})=\boldsymbol{x}^\top\boldsymbol{W}\boldsymbol{x}$。在玻尔兹曼机中引入隐变量就是受限玻尔兹曼机[41]$E(\boldsymbol{x}, \boldsymbol{z})=\boldsymbol{x}^\top\boldsymbol{W}\boldsymbol{z}$。玻尔兹曼机的概念可以进一步扩展到$\boldsymbol{x}$和$y$的联合分布,并用于判别式分类,例如受限玻尔兹曼机分类器[42]。研究表明,任意神经网络都可以用于参数化联合分布[43]。我们将在第六章中讨论能量模型。
1.3.5 总结
表1.1基于四个要素对比了生成式模型,包括训练的稳定性、是否需要计算似然函数、数据压缩是否无损、是否能用于表示学习:

所有基于似然概率的模型(自回归模型,流模型、能量模型,以及诸如VAE的预定义隐变量模型)均能够进行相对稳定的训练,而GAN这类隐式模型的训练过程则不稳定。对于VAE这样的预定义隐变量模型,无法精确地计算出似然概率,只能得到它的一个下界。与之相似,EBM需要计算配分函数才能得到思然概率,而计算配分函数相当困难。因此,EBM顶多可以提供未归一化的能量或近似概率。ARM能够计算似然概率;然而,自回归的方式导致采样过程极其缓慢。EBM需要基于蒙特卡罗方法生成样本,所以在高维数据上效率会很低。从数据压缩的角度来看,VAE对数据做了有损压缩(低维隐空间)。另一方面,ARM和流模型可以用于无损压缩,因为它们能够提供精确的似然概率用于密度估计。虽然隐式模型则不能直接用于压缩,不过也有工作尝试使用GAN改进图像压缩[44]。流模型、预定义隐变量模型和EBM(如果使用隐变量)都可以用于表示学习,即学习一组随机变量,这些变量以某种方式总结数据或对数据中的元素进行解耦。至于什么是好的数据表示,这是另外的问题,可参考[45]。
1.4 本书的目的和内容
本书旨在介绍深度生成建模这一领域,让你相信生成建模的哲学,并展示它的美!深度生成建模将概率论、统计学、概率机器学习和深度学习结合在一个框架中。为了更好地理解本书的内容,代数和微积分、概率论和统计学、机器学习和深度学习的基础以及Python编程等方面的知识是必要的。书中所有代码片段均基于PyTorch编写,不过Keras、Tensorflow或JAX深度学习框架用户也足以理解代码。
本书不会专门回顾机器学习的基本概念以及深度神经网络的知识。我们将深入研究深度生成模型和训练算法。我们将讨论自回归模型(第2章)、流模型(第3章)、隐变量模型(第4章)、混合模型(第5章)、能量模型(第6章)和生成对抗网络(第7章),最后将介绍深度生成建模如何用于数据压缩(第8章),章节之间彼此独立,且都包含一般性的讨论和形式化的过程以及对应的代码。本书的目的是使读者真正理解深度生成式建模,不仅能推导出模型也能够用代码实现。本书的代码库为:
https://github.com/jmtomczak/intro_dgm。
参考文献
- Christian Szegedy, Wojciech Zaremba, Ilya Sutskever, Joan Bruna, Dumitru Erhan, Ian Goodfellow, and Rob Fergus. Intriguing properties of neural networks. In 2nd International Conference on Learning Representations, ICLR 2014, 2014.
- Christopher M Bishop. Model-based machine learning. Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences, 371(1984):20120222, 2013.
- Zoubin Ghahramani. Probabilistic machine learning and artificial intelligence. Nature, 521(7553):452–459, 2015.
- Julia A Lasserre, Christopher M Bishop, and Thomas P Minka. Principled hybrids of generative and discriminative models. In 2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR’06), volume 1, pages 87–94. IEEE, 2006.
- Samuel Bowman, Luke Vilnis, Oriol Vinyals, Andrew Dai, Rafal Jozefowicz, and Samy Bengio. Generating sentences from a continuous space. In Proceedings of The 20th SIGNLL Conference on Computational Natural Language Learning, pages 10–21, 2016.
- Ian J Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio. Generative adversarial networks. arXiv preprint arXiv:1406.2661, 2014.
- Aaron van den Oord, Sander Dieleman, Heiga Zen, Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalchbrenner, Andrew Senior, and Koray Kavukcuoglu. WaveNet: A generative model for raw audio. arXiv preprint arXiv:1609.03499, 2016.
- Samarth Sinha, Sayna Ebrahimi, and Trevor Darrell. Variational adversarial active learning. In Proceedings of the IEEE/CVF International Conference on Computer Vision, pages 5972–5981, 2019.
- David Ha and Jürgen Schmidhuber. World models. arXiv preprint arXiv:1803.10122, 2018.
- GraphVAE: Towards generation of small graphs using variational autoencoders, author=Simonovsky, Martin and Komodakis, Nikos, booktitle=International Conference on Artificial Neural Networks, pages=412–422, year=2018, organization=Springer.
- Maximilian Ilse, Jakub M Tomczak, Christos Louizos, and Max Welling. DIVA: Domain invariant variational autoencoders. In Medical Imaging with Deep Learning, pages 322–348. PMLR, 2020.
- Aapo Hyvärinen and Peter Dayan. Estimation of non-normalized statistical models by score matching. Journal of Machine Learning Research, 6(4), 2005.
- Yang Song and Stefano Ermon. Generative modeling by estimating gradients of the data distribution. arXiv preprint arXiv:1907.05600, 2019.
- Yang Song, Jascha Sohl-Dickstein, Diederik P Kingma, Abhishek Kumar, Stefano Ermon, and Ben Poole. Score-based generative modeling through stochastic differential equations. In International Conference on Learning Representations, 2020.
- Aaron Van Oord, Nal Kalchbrenner, and Koray Kavukcuoglu. Pixel recurrent neural networks. In International Conference on Machine Learning, pages 1747–1756. PMLR, 2016.
- Aäron van den Oord, Nal Kalchbrenner, Oriol Vinyals, Lasse Espeholt, Alex Graves, and Koray Kavukcuoglu. Conditional image generation with PixelCNN decoders. In Proceedings of the 30th International Conference on Neural Information Processing Systems, pages 4797–4805, 2016.
- Oren Rippel and Ryan Prescott Adams. High-dimensional probability estimation with deep density models. arXiv preprint arXiv:1302.5125, 2013.
- Laurent Dinh, David Krueger, and Yoshua Bengio. NICE: Non-linear independent components estimation. arXiv preprint arXiv:1410.8516, 2014.
- Jakub M Tomczak and Max Welling. Improving variational auto-encoders using householder flow. arXiv preprint arXiv:1611.09630, 2016.
- Danilo Rezende and Shakir Mohamed. Variational inference with normalizing flows. In International Conference on Machine Learning, pages 1530–1538. PMLR, 2015.
- Rianne Van Den Berg, Leonard Hasenclever, Jakub M Tomczak, and Max Welling. Sylvester normalizing flows for variational inference. In 34th Conference on Uncertainty in Artificial Intelligence 2018, UAI 2018, pages 393–402. Association For Uncertainty in Artificial Intelligence (AUAI), 2018.
- Emiel Hoogeboom, Victor Garcia Satorras, Jakub M Tomczak, and Max Welling. The convolution exponential and generalized Sylvester flows. arXiv preprint arXiv:2006.01910, 2020.
- Laurent Dinh, Jascha Sohl-Dickstein, and Samy Bengio. Density estimation using Real NVP. arXiv preprint arXiv:1605.08803, 2016.
- Jens Behrmann, Will Grathwohl, Ricky TQ Chen, David Duvenaud, and Jörn-Henrik Jacobsen. Invertible residual networks. In International Conference on Machine Learning, pages 573–582. PMLR, 2019.
- Ricky TQ Chen, Jens Behrmann, David Duvenaud, and Jörn-Henrik Jacobsen. Residual flows for invertible generative modeling. arXiv preprint arXiv:1906.02735, 2019.
- Yura Perugachi-Diaz, Jakub M Tomczak, and Sandjai Bhulai. Invertible DenseNets with Concatenated LipSwish. Advances in Neural Information Processing Systems, 2021.
- Emiel Hoogeboom, Jorn WT Peters, Rianne van den Berg, and Max Welling. Integer discrete flows and lossless compression. arXiv preprint arXiv:1905.07376, 2019.
- Jakub M Tomczak. General invertible transformations for flow-based generative modeling. INNF+, 2021.
- Michael E Tipping and Christopher M Bishop. Probabilistic principal component analysis. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 61(3):611–622, 1999.
- Diederik P Kingma and Max Welling. Auto-encoding variational Bayes. arXiv preprint arXiv:1312.6114, 2013.
- Danilo Jimenez Rezende, Shakir Mohamed, and Daan Wierstra. Stochastic backpropagation and approximate inference in deep generative models. In International conference on machine learning, pages 1278–1286. PMLR, 2014.
- Durk P Kingma, Tim Salimans, Rafal Jozefowicz, Xi Chen, Ilya Sutskever, and Max Welling. Improved variational inference with inverse autoregressive flow. Advances in Neural Information Processing Systems, 29:4743–4751, 2016.
- Xi Chen, Diederik P Kingma, Tim Salimans, Yan Duan, Prafulla Dhariwal, John Schulman, Ilya Sutskever, and Pieter Abbeel. Variational lossy autoencoder. arXiv preprint arXiv:1611.02731, 2016.
- Jakub Tomczak and Max Welling. VAE with a VampPrior. In International Conference on Artificial Intelligence and Statistics, pages 1214–1223. PMLR, 2018.
- Ishaan Gulrajani, Kundan Kumar, Faruk Ahmed, Adrien Ali Taiga, Francesco Visin, David Vazquez, and Aaron Courville. PixelVAE: A latent variable model for natural images. arXiv preprint arXiv:1611.05013, 2016.
- Tim R Davidson, Luca Falorsi, Nicola De Cao, Thomas Kipf, and Jakub M Tomczak. Hyperspherical variational auto-encoders. In 34th Conference on Uncertainty in Artificial Intelligence 2018, UAI 2018, pages 856–865. Association For Uncertainty in Artificial Intelligence (AUAI), 2018.
- Edwin T Jaynes. Probability theory: The logic of science. Cambridge university press, 2003.
- Yann LeCun, Sumit Chopra, Raia Hadsell, M Ranzato, and F Huang. A tutorial on energybased learning. Predicting structured data, 1(0), 2006.
- David H Ackley, Geoffrey E Hinton, and Terrence J Sejnowski. A learning algorithm for Boltzmann machines. Cognitive science, 9(1):147–169, 1985.
- Geoffrey E Hinton, Terrence J Sejnowski, et al. Learning and relearning in Boltzmann machines. Parallel distributed processing: Explorations in the microstructure of cognition, 1(282-317):2, 1986.
- Geoffrey E Hinton. A practical guide to training restricted Boltzmann machines. In Neural networks: Tricks of the trade, pages 599–619. Springer, 2012.