假设数据来自未知分布 pdata,目标是用参数模型 pϕ 逼近它。下文的 log 表示自然对数。
从自编码器到 VAE
自编码器由确定性的编码器和解码器组成。它能把样本重构回来,但只优化重构时,不能保证从预设的简单分布里抽出潜编码后仍得到高质量样本。
变分自编码器(Variational Autoencoder, VAE)给潜空间加上概率结构:先从先验采样潜编码,再由解码器生成数据。重构工具因此成为生成模型。
边际似然
极大似然需要边际分布
pϕ(x)=∫pϕ(x,z)dz=∫pϕ(x∣z)p(z)dz.(1)
这个积分通常没有闭式。若潜空间是 d 维,每个维度放 M 个求积节点,全张量网格的函数计算次数是 O(Md),随 d 指数增长。直接从先验 p(z) 做蒙特卡洛时,对给定 x 有效的样本往往很少,估计方差会很大。
于是要先回答:给定观测 x,哪些潜编码 z 以较高概率产生了它。
近似后验
贝叶斯公式给出真实后验
pϕ(z∣x)=pϕ(x)pϕ(x∣z)p(z).(2)
分母仍是 (1),不能直接计算。VAE 用参数为 θ 的网络给出变分分布,近似这个后验:
qθ(z∣x)≈pϕ(z∣x).(3)
证据下界
把 (1) 改写成对 qθ(z∣x) 的期望。log 是凹函数,Jensen 不等式给出证据下界(Evidence Lower Bound, ELBO):
logpϕ(x)=log∫qθ(z∣x)qθ(z∣x)pϕ(x,z)dz=logEz∼qθ(z∣x)[qθ(z∣x)pϕ(x,z)]≥Ez∼qθ(z∣x)[logqθ(z∣x)pϕ(x,z)]=LELBO(θ,ϕ;x).(4)
把联合分布拆成 pϕ(x∣z)p(z),得到重构项与正则项:
LELBO(θ,ϕ;x)=∫qθ(z∣x)logqθ(z∣x)pϕ(x∣z)p(z)dz=Ez∼qθ(z∣x)[logpϕ(x∣z)]−DKL(qθ(z∣x)∥p(z)).(5)
第一项是重构项,第二项把近似后验拉向先验。训练时最大化数据上的平均 ELBO:
θ,ϕmaxEx∼pdata[LELBO(θ,ϕ;x)].(6)
高斯假设与重参数化
标准 VAE 把近似后验取成对角高斯,解码分布取成各向同性高斯:
qθ(z∣x)=N(z;μθ(x),diag(σθ2(x))),(7)
pϕ(x∣z)=N(x;μϕ(z),σ2I).(8)
σ>0 是预设超参数。先验取标准正态 p(z)=N(0,I)。
重构项要对 z∼qθ(z∣x) 取期望。直接从 qθ 抽样时,随机性穿过 θ,梯度传不回编码器。重参数化把随机性放进与参数无关的噪声里:
z=μθ(x)+σθ(x)⊙ϵ,ϵ∼N(0,I).(9)
z 对 θ 可微,重构项可以反向传播。
重构项
在 (8) 下,重构项等于负均方误差加常数:
Ez∼qθ(z∣x)[logpϕ(x∣z)]=−2σ21Ez∼qθ(z∣x)[∥x−μϕ(z)∥2]+C.(10)
证明. 设 x∈RD。协方差 σ2I 的行列式是 ∣σ2I∣=σ2D,故
pϕ(x∣z)logpϕ(x∣z)=(2π)−D/2σ−Dexp(−2σ21∥x−μϕ(z)∥2),=−2σ21∥x−μϕ(z)∥2+C,
其中 C=log((2π)−D/2σ−D) 只依赖 D 与 σ,与 z 和网络参数无关。对 qθ(z∣x) 取期望即得 (10)。□
正则项
两个 d 维高斯
p1(x)=N(x;μ1,Σ1),p2(x)=N(x;μ2,Σ2)
的 KL 散度有闭式
DKL(p1∥p2)=21(log∣Σ1∣∣Σ2∣+tr(Σ2−1Σ1)+(μ2−μ1)⊤Σ2−1(μ2−μ1)−d).(11)
训练里的正则项是把 (11) 代入 (7) 与标准正态先验。记 μ=μθ(x),σ=σθ(x),则 Σ1=diag(σ2),Σ2=I,μ2=0。于是 ∣Σ2∣=1,∣Σ1∣=∏iσi2,tr(Σ1)=∑iσi2,(μ2−μ1)⊤(μ2−μ1)=∥μ∥2,得到
DKL(qθ(z∣x)∥p(z))=21i=1∑d(μi2+σi2−logσi2−1).(12)
最大化 ELBO 等价于最小化联合 KL
记推断联合分布与生成联合分布为
qθ(x,z)=pdata(x)qθ(z∣x),pϕ(x,z)=p(z)pϕ(x∣z).
这里 pϕ(z)=p(z),因为先验抽样不依赖 ϕ;qθ(x)=pdata(x),因为数据抽样不依赖 θ。联合 KL 拆成边际 KL 与期望后验 KL:
DKL(qθ(x,z)∥pϕ(x,z))=DKL(pdata(x)∥pϕ(x))+Ex∼pdata[DKL(qθ(z∣x)∥pϕ(z∣x))].(13)
证明. 生成模型同时有分解 pϕ(x,z)=pϕ(x)pϕ(z∣x)。于是
DKL(qθ(x,z)∥pϕ(x,z))=∬qθ(x,z)logpϕ(x,z)qθ(x,z)dzdx=∬qθ(x,z)logpϕ(x)pϕ(z∣x)pdata(x)qθ(z∣x)dzdx=∬qθ(x,z)[logpϕ(x)pdata(x)+logpϕ(z∣x)qθ(z∣x)]dzdx.
第一项先对 z 积分。∫qθ(x,z)dz=pdata(x),故
∬qθ(x,z)logpϕ(x)pdata(x)dzdx=DKL(pdata(x)∥pϕ(x)).
第二项先把 qθ(x,z)=pdata(x)qθ(z∣x) 代入,内层就是条件 KL:
∬qθ(x,z)logpϕ(z∣x)qθ(z∣x)dzdx=Ex∼pdata[DKL(qθ(z∣x)∥pϕ(z∣x))].
两项相加即得 (13)。□
对数似然与 ELBO 的差就是这个后验 KL:
logpϕ(x)−LELBO(θ,ϕ;x)=DKL(qθ(z∣x)∥pϕ(z∣x)).(14)
证明. logpϕ(x) 不依赖 z,可以放进对 qθ(z∣x) 的期望。由 (4) 中 ELBO 的定义,
logpϕ(x)−LELBO(θ,ϕ;x)=Ez∼qθ(z∣x)[logpϕ(x)−logqθ(z∣x)pϕ(x,z)]=Ez∼qθ(z∣x)[logpϕ(x,z)pϕ(x)qθ(z∣x)]=Ez∼qθ(z∣x)[logpϕ(z∣x)qθ(z∣x)]=DKL(qθ(z∣x)∥pϕ(z∣x)).
第三步用了 pϕ(x,z)=pϕ(x)pϕ(z∣x)。□
(14) 说明 ELBO 的间隙就是近似后验与真实后验的 KL。qθ(z∣x)=pϕ(z∣x) 时,下界成为等式。把 (14) 代回 (13),再展开边际 KL:
DKL(qθ(x,z)∥pϕ(x,z))=DKL(pdata(x)∥pϕ(x))+Ex∼pdata[logpϕ(x)−LELBO(θ,ϕ;x)]=Ex∼pdata[logpdata(x)]−Ex∼pdata[LELBO(θ,ϕ;x)].(15)
证明. 由 (13),左端等于边际 KL 加上期望后验 KL。再用 (14) 把后验 KL 换成 logpϕ(x)−LELBO(θ,ϕ;x),得到 (15) 的第一个等号。边际 KL 等于 Ex∼pdata[logpdata(x)−logpϕ(x)],其中的 E[logpϕ(x)] 与前一项里的 E[logpϕ(x)] 相消,得到第二个等号。□
(15) 末行的第一项是真实数据分布的负熵,与 (θ,ϕ) 无关。因此
θ,ϕmaxEx∼pdata[LELBO(θ,ϕ;x)]⟺θ,ϕminDKL(qθ(x,z)∥pϕ(x,z)).(16)
表达力与模糊化
对角高斯是单峰的
(7) 把近似后验限制在对角高斯里。网络无论多深,输出的都是一个单峰高斯。真实后验 pϕ(z∣x) 多峰时,这个变分族拟合不上,ELBO 变松,推断变弱。加深网络改变不了变分族,需要更丰富的近似分布。
最优解码器是条件均值
高斯解码器以均方误差为重构目标时,对固定的编码器,最优解码均值是近似后验下 x 的条件期望。同一 z 对应多个 x 时,这个平均值会把生成结果模糊化:
μ∗(z)=Ex∼pdata[qθ(z∣x)]Ex∼pdata[qθ(z∣x)x].(17)
证明. 设编码器已经给定。MSE 目标是
μminEx∼pdata[Ez∼qθ(z∣x)[∥x−μ(z)∥2]]=μmin∫qθ(z)[∫qθ(x∣z)∥x−μ(z)∥2dx]dz.
外层对 z 积分,内层可以逐点最小化。固定 z,记
J(μ)=∫qθ(x∣z)∥x−μ∥2dx.
对 μ 求导:
∇μJ=−2∫qθ(x∣z)(x−μ)dx.
令梯度为零,得到
μ∗(z)=∫qθ(x∣z)xdx=Ex∼qθ(x∣z)[x].
由 qθ(x,z)=pdata(x)qθ(z∣x),
qθ(x∣z)=qθ(z)qθ(z∣x)pdata(x),qθ(z)=Ex∼pdata[qθ(z∣x)].
代回条件期望:
μ∗(z)=qθ(z)1∫qθ(z∣x)xpdata(x)dx=Ex∼pdata[qθ(z∣x)]Ex∼pdata[qθ(z∣x)x].
这就是 (17)。□
KL 系数
实践中常把 ELBO 改成重构项与 KL 的加权和,也就是 β-VAE:
Lβ(θ,ϕ;x)=−Ez∼qθ(z∣x)[logpϕ(x∣z)]+βDKL(qθ(z∣x)∥p(z)).(18)
最小化 (18) 时,β=1 对应标准 ELBO 的负值。β 调节训练稳定性、潜空间连续性,以及生成与重构的取舍。
β→0
β→0 时 KL 惩罚消失,目标退化为纯重构,模型回到普通自编码器。
重参数化 (9) 里的噪声只会增大重构误差。没有 KL 约束时,最优编码器把质量全部放在重构似然最大的一点:
qθ(z∣x)→δ(z−z∗(x)),z∗(x)=zargmaxlogpϕ(x∣z).(19)
也就是 σθ2(x)→0。各样本的后验变成互不重叠的点质量,编码落在孤立流形上,流形之间出现空洞。重构可以很清晰,但从先验 p(z) 采样容易掉进这些空洞。
KL 主导
β 较大时,KL 项主导训练。它在数据上的期望可以拆成互信息与聚合后验 KL:
Ex∼pdata[DKL(qθ(z∣x)∥p(z))]=Iq(x;z)+DKL(qθ(z)∥p(z)).(20)
聚合后验是 qθ(z)=∫pdata(x)qθ(z∣x)dx。
证明. 在被积函数里插入 qθ(z)/qθ(z):
Ex∼pdata[DKL(qθ(z∣x)∥p(z))]=∫pdata(x)∫qθ(z∣x)logp(z)qθ(z∣x)dzdx=∫pdata(x)∫qθ(z∣x)logqθ(z)qθ(z∣x)dzdx+∫pdata(x)∫qθ(z∣x)logp(z)qθ(z)dzdx.
第一项就是 Ex∼pdata[DKL(qθ(z∣x)∥qθ(z))],即 Iq(x;z)。第二项交换积分顺序,内层 ∫pdata(x)qθ(z∣x)dx=qθ(z),得到 DKL(qθ(z)∥p(z))。□
Iq(x;z) 是 z 携带的关于 x 的信息,生成时希望它大;DKL(qθ(z)∥p(z)) 是潜空间整体形状相对先验的偏差,希望它小。互信息过小时,z 几乎不含 x 的信息,潜编码难以控制生成。
后验崩溃
若进一步 qθ(z∣x)≈p(z),近似后验与 x 无关,则 (17) 的分子分母都多出一个与 x 无关的 p(z):
μ∗(z)=p(z)Ex∼pdata[1]p(z)Ex∼pdata[x]=Ex∼pdata[x].(21)
对任意 z,最优输出都是全体训练样本的平均值,也就是一张与 z 无关的全局均值图。