LOADING

加载过慢请开启缓存 浏览器默认开启

变分推理、ELBO与变分自编码器

变分推理与ELBO

定义

变分推理是一种近似推断方法,用于估计难以直接计算的概率分布(如贝叶斯后验分布)。其核心思想是:

  • 选择一个简单的参数化分布族 q(z;λ)(称为变分分布)
  • 优化参数 λ,使 q(z) 尽可能接近目标分布 p(z|x)
  • q(z) 作为 p(z|x) 的近似

公式推导

1. 问题设定

给定:观测数据 x,隐变量 z

目标:计算后验分布

p(z|x)=p(x,z)p(x)

其中边缘似然

p(x)=p(x,z)dz

通常难以计算(高维积分)。

2. KL 散度最小化

用变分分布 q(z) 近似 p(z|x),最小化 KL 散度:

λ=argminλKL(q(z;λ)p(zx))

KL 散度展开:

KL(qp)=q(z)logq(z)p(zx)dz

3. 导出证据下界 (ELBO)

将贝叶斯公式 p(z|x)=p(x,z)p(x) 代入:

KL(qp)=q(z)[logq(z)logp(zx)]dz=q(z)[logq(z)logp(x,z)p(x)]dz=q(z)logq(z)dzq(z)logp(x,z)dz+logp(x)

整理得:

KL(qp)=[Eq[logp(x,z)]Eq[logq(z)]]ELBO+logp(x)

其中 logp(x) 是常数(证据),因此:

minKL(qp)maxELBO(λ)

4. ELBO 分解

ELBO 可分解为两部分:

ELBO=Eq(z)[logp(xz)]KL(q(z)p(z))

推导:

ELBO=Eq[logp(x,z)]Eq[logq(z)]=Eq[log(p(xz)p(z))]Eq[logq(z)]=Eq[logp(xz)]+Eq[logp(z)]Eq[logq(z)]=Eq[logp(xz)](Eq[logq(z)]Eq[logp(z)])KL(qp)

5. 变分优化

最大化 ELBO 的梯度上升更新:

λ(t+1)=λ(t)+ηλELBO

梯度计算使用重参数化技巧(Reparameterization Trick):

z=g(ϵ;λ),其中 ϵp(ϵ)

梯度:

λELBO=Ep(ϵ)[λlogp(x,g(ϵ;λ))λlogq(g(ϵ;λ))]

关键点总结

  • 本质:用优化问题替代积分计算
  • ELBO 性质:
    • ELBOlogp(x)(故名"下界")
    • 最大化 ELBO 等价于最小化 KL(qp)
  • 变分族选择:
    • 平均场近似:q(z)=iqi(zi)
    • 高斯分布:q(z)=N(μ,Σ)
  • 优势:将推断转化为可扩展的优化问题(适合大数据)
  • 应用:贝叶斯神经网络、主题模型(LDA)、变分自编码器(VAE)

#变分自编码器

变分自编码器(VAE)

1. VAE 的定义

变分自编码器(Variational Autoencoder, VAE)是一种深度生成模型,结合了自编码器结构和变分推断。核心思想:

  • 用神经网络参数化概率分布(编码器为近似后验,解码器为生成模型)
  • 通过重参数化技巧实现端到端训练
  • 目标:学习数据的潜在表示并生成新样本

2. VAE 的概率图模型

zp(z)=N(0,I),xpθ(xz)

其中:

  • zRd:潜在变量(低维表示)
  • xRD:观测数据(Dd
  • θ:生成模型(解码器)参数

3. VAE 的架构

  • 编码器(推断网络):qϕ(zx)=N(z;μϕ(x),σϕ2(x)I)
  • 解码器(生成网络):pθ(xz)={N(μθ(z),σ2I)(连续数据)Bernoulli(πθ(z))(二值数据)
  • ϕ:编码器参数
  • θ:解码器参数
  • 神经网络实现:μϕ,σϕ=Encoderϕ(x)μθ=Decoderθ(z)

4. VAE 的推导:目标函数

步骤 1:变分下界 (ELBO)

VAE 最大化观测数据的对数似然下界:

logpθ(x)ELBO(θ,ϕ;x)=Eqϕ(z|x)[logpθ(x|z)]KL(qϕ(z|x)p(z))

步骤 2:KL 散度项解析解

p(z)=N(0,I)qϕ=N(μ,σ2) 时:

KL(qϕp)=12j=1d(1+logσj2μj2σj2)

其中 d 是潜在空间维度。

步骤 3:重建项估计

使用蒙特卡洛采样(随机抽样取平均)估计:

Eqϕ[logpθ(x|z)]1Ll=1Llogpθ(xz(l))

其中 z(l)=gϕ(x,ϵ(l)),ϵ(l)N(0,I),通常 L=1

5. 重参数化技巧 (Reparameterization Trick)

关键创新:将随机采样转化为确定性计算:

z=μϕ(x)+σϕ(x)ϵ,ϵN(0,I)

表示逐元素乘法,ϵ 是随机采样的一个噪声,这样保证了"随机采样"的计算过程可以反向传播,即梯度可反向传播至编码器参数 ϕ

6. 完整目标函数

对于数据集 D={x(i)}i=1N,优化:

maxθ,ϕL(θ,ϕ;D)=i=1NL(θ,ϕ;x(i))

其中单样本目标:

L(θ,ϕ;x)=Eqϕ[logpθ(x|z)]重建项KL(qϕ(z|x)p(z))正则项

实际计算(L=1):

L(θ,ϕ;x)logpθ(xz)12j=1d(1+logσj2μj2σj2)

其中 z=μϕ+σϕϵ

7. 训练算法(伪代码)

典型的 VAE 训练流程如下:

  1. 从数据集中采样一个批次 {x(i)}i=1B
  2. 对每个 x(i)
    • 计算 μϕ(x(i)),σϕ(x(i))
    • 采样 ϵN(0,I)
    • 计算 z(i)=μϕ+σϕϵ
    • 计算重建 x^(i)=Decoderθ(z(i))
  3. 计算损失:
L=1Bi=1B[logpθ(x(i)z(i))+12j=1d(μj2+σj2logσj21)]
  1. 反向传播,更新 θϕ

8. 生成新样本

znewp(z)=N(0,I),xnewpθ(xznew)

关键创新点总结

  • 概率自编码器
    • 编码器 近似后验 qϕ(z|x)
    • 解码器 生成模型 pθ(x|z)
  • 可微训练:重参数化技巧解决随机节点梯度问题
  • 正则化潜在空间:KL 散度项强制潜在分布匹配先验 N(0,I)
  • 生成能力:从 p(z) 采样 解码器 生成新样本