前言
变分自编码器,英文原名Variational Auto-Encoder,来自于2014年的论文Auto-Encoding Variational Bayes[1], 是图像领域有力的描述提取器,能够在更高维度完成对图像的高层次处理任务(如分割、识别等),其数学原理根植于最大似然估计与贝叶斯推断。
一般目的
生成式模型的一般目的,都是为了估计给定的概率密度pθ(z),这里的z是符合理想分布p的随机变量,一般不能直接观测到,直接观测到的随机变量是x,它服从的观测分布是q,因此如何缩小这两个分布的差距,使得观测分布q无限逼近真实分布q,是描述提取器的核心任务。
为了估计出一个合理的条件概率分布qϕ(x∣z),让它与理想分布pθ(x∣z)尽可能接近,必须想办法缩小它们之间的差距,这个差距一般用KL散度来衡量,因此,变分贝叶斯算法的目的就是最小化KL散度。
一言以蔽之,一般目的就是最小化观测分布与真实分布的KL散度。
Variational Auto-Encoder
变分自编码器源出自变分贝叶斯算法Variational Bayes,是一种描述提取模型,容易存在生成图像模糊的问题,不过其对先验概率空间的估计方法可以借鉴。
注意别弄混了VAE与GAN甚至后面的DDM的关系,它并不是生成式模型,VAE是一种高级的映射,将图像映射至高维的特征空间(隐空间)。
重要概念
变分下界
贝叶斯算法中的一个重要概念就是变分下界。因为直接最小化真实分布与观测分布的KL散度较为困难,多采用变分下界辅助求解。利用真实分布与散度的关系,可以得到:
logpθ(x)=DKL[qϕ(z∣x)∣∣pθ(z∣x)]+L(θ,ϕ;x)
式中第一项是KL散度,是一个正的数,而第二项就是变分下界,即需要最大化的项。根据等式,可以推算出变分下界的表达式:
L(θ,ϕ;x)=Eqϕ(z∣x)[logpθ(x∣z)]−DKL[qϕ(z∣x)∣∣pθ(z)]=Eqϕ(z∣x)[logpθ(x,z)−logqϕ(z∣x)]
一个很自然的想法是求解该变分下界的导数,使用梯度下降。但是需要指出,这里的概率密度函数qϕ(z∣x)是没有解析式的,因此其梯度必须通过MC采样求解,而每一步梯度下降如果都MC采样一次,那这个算法的计算量将是究极大的,并且当待估计的分布方差较大时,MC采样的效率将进一步下降,计算得到的梯度将更不准确,模型极有可能无法收敛。因此文中采用了另一种方式,这就是SGVB估计器Stochastic Gradient Variational Bayes。
SGVB估计器
引入某一先验的确定变换z(i,l)=gϕ(ϵ(l),x(i)),ϵl∼r(ϵ)(本操作在原始论文中被称为换元法Reparameterization,将在下文介绍),对期望一项使用MC积分完成估计计算,由此可得两种变分下界的估计式:
L(θ,ϕ;x)L(θ,ϕ;x)≈L1l=1∑Llogpθ(x,z(l))−logqϕ(z(l)∣x)≈L1l=1∑Llogpθ(x∣z(l))−DKL[qϕ(z∣x)∣∣pθ(z)]
本方法实际上是限定了随机过程取定样本函数为ϵ的情况,在该情况下沿着该样本函数遍历整个样本空间。当取定的样本函数足够多时,可以从样本上逼近随机过程的真实分布,因此,本方法将要求整个样本空间是平稳的,显然数据集并不会随着训练次数的增加而发生变化,因此本方法是适用的。(但是GAN就不一定了)使用SGVB最大化该变分下界,就能对VAE完成优化。
换元法
换元法是一种计算技巧,将随机过程的采样值由MC采样改变为确定性的映射。
具体地说,如果没有换元法,获取一个随机变量必须通过该变量的分布进行MC采样,通常复杂一点的分布都不好求解。
而有了换元法之后,可以通过某一个简单的分布,用确定的映射关系求解出一个采样值,这样只需要计算一个简单的确定性分布就能够应对所有的分布情况(例如使用标准的多元高斯分布)。
对某个观测随机变量z,如果提前已知其服从分布N(μ,σ2)一种简单的获取样本值的方式是:
z=μ+σ⊙ϵ,ϵ∼N(0,I)
其中μ,σ是两个待估计的参数,⊙是逐元素乘法,这样对任意的高斯随机变量,都不需要单独再定义一个高斯分布去采样,而通过一个标准的高斯分布就能够得到任意高斯分布的采样值。
在VAE的原始论文[1]中,作者总共给出了三种可选的换元法方法,分别是反函数法、高斯法和构造法,利用三种方法能够在观测分布的基础上快速写出理想分布,就能够保证整个算法的复杂度不致于过高,否则,通过MC方法直接求解理想分布的将会是一个非常耗时的操作。
参考文献
[1] Kingma D. P. , Welling M. .Auto-Encoding Variational Bayes[M/OL].arXiv,2022