变分推理与ELBO
定义
变分推理是一种近似推断方法,用于估计难以直接计算的概率分布(如贝叶斯后验分布)。其核心思想是:
- 选择一个简单的参数化分布族 (称为变分分布)
- 优化参数 ,使 尽可能接近目标分布
- 用 作为 的近似
公式推导
1. 问题设定
给定:观测数据 ,隐变量 。
目标:计算后验分布
其中边缘似然
通常难以计算(高维积分)。
2. KL 散度最小化
用变分分布 近似 ,最小化 KL 散度:
KL 散度展开:
3. 导出证据下界 (ELBO)
将贝叶斯公式 代入:
整理得:
其中 是常数(证据),因此:
4. ELBO 分解
ELBO 可分解为两部分:
推导:
5. 变分优化
最大化 ELBO 的梯度上升更新:
梯度计算使用重参数化技巧(Reparameterization Trick):
令 ,其中
梯度:
关键点总结
- 本质:用优化问题替代积分计算
- ELBO 性质:
- (故名"下界")
- 最大化 ELBO 等价于最小化
- 变分族选择:
- 平均场近似:
- 高斯分布:
- 优势:将推断转化为可扩展的优化问题(适合大数据)
- 应用:贝叶斯神经网络、主题模型(LDA)、变分自编码器(VAE)
#变分自编码器
变分自编码器(VAE)
1. VAE 的定义
变分自编码器(Variational Autoencoder, VAE)是一种深度生成模型,结合了自编码器结构和变分推断。核心思想:
- 用神经网络参数化概率分布(编码器为近似后验,解码器为生成模型)
- 通过重参数化技巧实现端到端训练
- 目标:学习数据的潜在表示并生成新样本
2. VAE 的概率图模型
其中:
- :潜在变量(低维表示)
- :观测数据()
- :生成模型(解码器)参数
3. VAE 的架构
- 编码器(推断网络):
- 解码器(生成网络):连续数据二值数据
- :编码器参数
- :解码器参数
- 神经网络实现:
4. VAE 的推导:目标函数
步骤 1:变分下界 (ELBO)
VAE 最大化观测数据的对数似然下界:
步骤 2:KL 散度项解析解
当 且 时:
其中 是潜在空间维度。
步骤 3:重建项估计
使用蒙特卡洛采样(随机抽样取平均)估计:
其中 ,通常 。
5. 重参数化技巧 (Reparameterization Trick)
关键创新:将随机采样转化为确定性计算:
表示逐元素乘法, 是随机采样的一个噪声,这样保证了"随机采样"的计算过程可以反向传播,即梯度可反向传播至编码器参数 。
6. 完整目标函数
对于数据集 ,优化:
其中单样本目标:
重建项正则项实际计算():
其中 。
7. 训练算法(伪代码)
典型的 VAE 训练流程如下:
- 从数据集中采样一个批次
- 对每个 :
- 计算
- 采样
- 计算
- 计算重建
- 计算损失:
- 反向传播,更新 和
8. 生成新样本
关键创新点总结
- 概率自编码器:
- 编码器 近似后验
- 解码器 生成模型
- 可微训练:重参数化技巧解决随机节点梯度问题
- 正则化潜在空间:KL 散度项强制潜在分布匹配先验
- 生成能力:从 采样 解码器 生成新样本