- 发现 / 发明时间
- 2013 年
- 发现者 / 提出者
- 杜克·金玛、马克斯·威灵
- 上级概念
- 自动编码器
百科正文
VAE与自编码器模型有关,因为两者在结构上有一定亲和力,但在目标和数学表述上有很大区别。VAE属于概率生成模型(Probabilistic Generative Model),神经网络仅是其中的一个组件,依照功能的不同又可分为编码器和解码器。编码器可将输入变量映射到与变分分布的参数相对应的潜空间(Latent Space),这样便可以产生多个遵循同一分布的不同样本。解码器的功能基本相反,是从潜空间映射回输入空间,以生成数据点。虽然噪声模型的方差可以单独学习而来,但它们通常都是用重参数化技巧(Reparameterization Trick)来训练的。
此类模型最初是为无监督学习设计的,但在半监督学习和监督学习中也表现出众。
结构与操作概述
VAE是一个分别具有先验和噪声分布的生成模型,一般用最大期望算法(Expectation-Maximization meta-algorithm)来训练。这样可以优化数据似然的下限,用其它方法很难实现这点,且需要q分布或变分后验。这些q分布通常在一个单独的优化过程中为每个单独数据点设定参数;而VAE则用神经网络作为一种摊销手段来联合优化各个数据点,将数据点本身作为输入,输出变分分布的参数。从一个已知的输入空间映射到低维潜空间,这是一种编码过程,因此这张神经网络也叫“编码器”。
解码器则从潜空间映射回输入空间,如作为噪声分布的平均值。也可以用另一个映射到方差的神经网络,为简单起见一般都省略掉了。这时,方差可以用梯度下降法进行优化。
优化模型常用的两个术语是“重构误差(reconstruction error)”和“KL散度”。它们都来自概率模型的自由能表达式(Free Energy Expression),因而根据噪声分布和数据的假定先验而有所不同。例如,像IMAGENET这样的标准VAE任务一般都假设具有高斯分布噪声,但二值化的MNIST这样的任务则需要伯努利噪声。自由能表达式中的KL散度使得与p分布重叠的q分布的概率质量最大化,但这样可能导致出现搜寻模态(Mode-Seeking Behaviour)。自由能表达式的剩余部分是“重构”项,需要用采样逼近来计算其期望。
系统阐述
从建立概率模型的角度来看,人们希望用他们选择的参数化概率分布 p_(θ)(x)=p(x|θ) 使数据 x 的概率最大化。这一分布常是高斯分布 N(x|μ,σ),分别参数化为 μ 和 σ,作为指数族的一员很容易作为噪声分布来处理。简单的分布很容易最大化,但如果假设了潜质(latent) z 的先验分布,可能会产生难以解决的积分。让我们通过对 z 的边缘化找到 p_(θ)(x)。 p_(θ)(x)=∫ _(z)p_(θ)(x,z) dz,
其中, p_(θ)(x,z) 表示可观测数据 x 于 p_(θ) 下的联合分布,和在潜空间中的形式(也就是编码后的 z)。根据连锁法则,方程可以改写为 p_(θ)(x)=∫ _(z)p_(θ)(x|z)p_(θ)(z) dz
在原始的VAE中,通常认为 z 是实数的有限维向量, p_(θ)(x|z) 则是高斯分布。那么 p_(θ)(x) 便是高斯分布的混合物。
- 现在,可将输入数据和其在潜空间中的表示的映射定义为
- 先验 p_(θ)(z)
- 似然值 p_(θ)(x|z)
- 后验 p_(θ)(z|x)
不幸的是,对 p_(θ)(x) 的计算十分困难。为了加快计算速度,有必要再引入一个函数,将后验分布近似为 q_(φ)(z|x)≈ p_(θ)(z|x)
其中 φ 是参数化的 q 的实值集合。这有时也被称为“摊销推理”(amortized inference),因为可以通过“投资”找到好的 q_(φ),之后不用积分便可以从 x 快速推断出 z。
这样,问题就变成了找到一个好的概率自编码器,其中条件似然分布 p_(θ)(x|z) 由概率解码器(probabilistic decoder)计算得到,后验分布近似 q_(φ)(z|x) 由概率编码器(probabilistic encoder)计算得到。
下面将编码器参数化为 E_(φ),将解码器参数化为 D_(θ)。
证据下界(Evidence lower bound,ELBO)
如同每个深度学习问题,为了通过反向传播算法更新神经网络的权重,需要定义一个可微损失函数。
对于VAE,这一思想可以实现为联合优化生成模型参数 θ 和 φ,以减少输入输出间的重构误差,并使 q_(φ)(z|x) 尽可能接近 p_(θ)(z|x)。重构损失常用均方误差和交叉熵。
作为两个分布之间的距离损失,反向KL散度 D_(KL)(q_(φ)(z|x)∥ p_(θ)(z|x)) 可以很有效地将 q_(φ)(z|x) 挤压到 p_(θ)(z|x) 之下。
刚刚定义的距离损失可扩展为 (公式略)
现在定义证据下界(Evidence lower bound,ELBO): (公式略) 使ELBO最大化 (公式略) 等于同时最大化 ln p_(θ)(x)、最小化 D_(KL)(q_(φ)(z|x)∥ p_(θ)(z|x))。即,最大化观测数据似然的对数值,同时最小化近似后验 q_(φ)(· |x) 与精确后验 p_(θ)(· |x) 的差值。
给出的形式不大方便进行最大化,可以用下面的等价形式: (公式略) 其中 ln p_(θ)(x|z) 实现为 ‖x-D_(θ)(z)‖₂²,因为这是在加性常数的前提下 x N(D_(θ)(z),I) 得到的东西。也就是说,我们把 x 在 z 上的条件分布建模为以 D_(θ)(z) 为中心的高斯分布。 q_(φ)(z|x) 和 p_(θ)(z) 的分布通常也被选为高斯分布,因为 z|x (E_(φ)(x),σ _(φ)(x)²I) 和 z (0,I) 可以通过高斯分布的KL散度公式得到: (公式略)
重参数化
有效搜索到 (公式略) 的典型方法是梯度下降法。
它可以很直接地找到 (公式略) 但是, (公式略) 不允许将 ∇ _(φ) 置于期望中,因为 φ 出现在概率分布本身之中。重参数化技巧(也被称为随机反向传播)则绕过了这个难点。
最重要的例子是当 z q_(φ)(· |x) 遵循正态分布时,如 N(μ _(φ)(x),Σ _(φ)(x))。
可以通过让 ε N(0,I) 构成“标准随机数生成器”来实现重参数化,并将 z 构建为 z=μ _(φ)(x)+L_(φ)(x)ε。这里, L_(φ)(x) 通过科列斯基分解得到: Σ _(φ)(x)=L_(φ)(x)L_(φ)(x)ᵀ 接着我们有 (公式略) 由此,我们得到了梯度的无偏估计,这就可以应用随机梯度下降法了。
由于我们重参数化了 z,所以需要找到 q_(φ)(z|x)。令 q₀ 为 ε 的概率密度函数,那么 ln q_(φ)(z|x)=ln q₀(ε)-ln |det(∂ _(ε)z)|,其中 ∂ _(ε)z 是 ε 相对于 z 的雅可比矩阵。由于 z=μ _(φ)(x)+L_(φ)(x)ε,这就是 ln q_(φ)(z|x)=-1/2‖ε ‖²-ln |det L_(φ)(x)|-n/2ln(2π)
变体
许多VAE的应用和扩展已被用来使其适应其他领域,并提升性能。 β -VAE是带加权KL散度的实现,用于自动发现并解释因子化的潜空间形式。这种实现可以对大于1的 β 值强制进行流形分解。这个架构可以在无监督下发现解耦的潜因子。
条件性VAE(CVAE)在潜空间中插入标签信息,强制对所学数据进行确定性约束表示(Deterministic Constrained Representation)。
一些结构可以直接处理生成样本的质量,或实现多个潜空间,以进一步改善表征学习的效果。
一些结构将VAE和生成对抗网络混合起来,以获得混合模型。
以上内容摘自维基百科「变分自编码器」,按 CC BY-SA 4.0 使用,去掉了参考文献、外部链接等尾部小节,公式改写成了纯文本。全文、配图和出处见原文。