本文理论部分基本译自 Tutorial on Variational Autoencoders by Carl Doersch
1. 介绍
“生成模型”是指能够通过定义在高维空间
的数据
的概率分布
随机生成观测数据的模型。举例来说,对于一幅图片,生成模型的工作就是捕获图像中像素点之间的关系并通过这种关系生成新的目标。最为直接的办法就是通过数学公式计算
,但是这在大部分情况下无法实现。因此,我们可以通过学习一个模型
使其尽可能地接近样本
的真实(但未知的)概率分布
。
一个流行的框架便是变分自动编码器(Variational Autoencoder, VAE)。VAEs 需要前提假设,但相较于 VAEs 能够模拟的复杂依赖关系而言这些假设引入的误差可以说微不足道。
1.1 隐含参数模型
如果要自动生成手写数字0-9,那么事先决定要生成什么数字是很有必要的。这个决定被称作隐含变量 (latent variable)。隐含变量通常表示为一个高维向量
。
在我们能够说我们的模型能够表征数据集之前,我们需要保证有一个(或多个)隐含参数能够导致模型生成与数据
类似的结果。更为标注的表达为:假设我们有能够简单地通过概率密度函数(probability density function, PDF)
进行采样的高维隐含变量
,还有一类以
为参数的确定性函数
,
。我们想要优化
使得
与数据集中的
类似。鉴于此,我们可以写出公式
在这里我们用
代替了
以便于使用概率法则。在 VAEs 中,
通常都是一个高斯分布,即
。但是
并不一定要服从高斯分布,但是必须对于
连续。在后面的讨论中我们会隐去参数
。
2. 变分自动编码器
为了解公式(1),VAEs 必须解决两个问题:如何定义隐含变量
;如何对
进行积分。
在理想情况下,我们并不想手动定义
的每一个维度(特征),也不想定义
的维度之间的依赖关系。VAEs 采取了一个非同寻常的手段来解决这个问题:它们假设
的维度无法简单解释,因此转而声称
可以由一个简单的分布(例如正态分布
)采样得到。这个手段基于一个事实:任何
维分布均可以通过对在
维的正态分布作用一个足够复杂的映射函数而来。举例来说,函数
可以把二维标准正态分布变成二维圈(如图1所示)。我们可以令
为一个多层神经网络来学习这个映射函数。
既然已经给定
,接下来的问题就是如何最大化公式(1)。