变分推断 (Variational Inference)
变分推断属于对隐变量模型 (Latent Variable Model) 处理的一种技巧,其概率图如下所示

我们将 X = { x 1 , . . . x N } X=\{ x_1,...x_N \} X={
x1,...xN} 看作是每个样本可观测的一组数据,而将对应的 Z = { z 1 , . . . , z N } Z=\{z_1,...,z_N\} Z={
z1,...,zN} 看作是该组数据对应的高维空间下的对应样本点,例如使用 X X X 表示一个班同学的所有成绩,而将 Z Z Z 看作是同学的学习能力。对于更复杂的一些情况,例如图像生成任务,使用 X X X 表示数据集中的每张图像,而使用 Z Z Z 表示更高维的信息,例如基于类别/语义等控制信息。
对于生成任务,我们经常希望利用观测数据 X X X 建模随机变量 x x x 的真实分布 p ( x ) p(x) p(x),使用 z z z 来辅助概率推导,那么核心点在于计算两个条件概率分布 p ( x ∣ z ) p(x|z) p(x∣z) 与 p ( z ∣ x ) p(z|x) p(z∣x),通常可以使用一些先验知识假定 p ( x ∣ z ) p(x|z) p(x∣z) 服从某种概率分布(例如对于学习能力为 g g g 的同学成绩假定服从在 g g g 附近的高斯分布),但对于 p ( z ∣ x ) p(z|x) p(z∣x),注意到
p ( z ∣ x ) = p ( z ) p ( x ∣ z ) p ( x ) p(z|x) = \frac{p(z)p(x|z)}{p(x)} p(z∣x)=p(x)p(z)p(x∣z)
z z z 是辅助建模的变量,可以假定其服从某已知的分布,但对于归一化项 p ( x ) p(x) p(x),有
p ( x ) = ∫ z p ( x , z ) d z = ∫ z p ( z ) p ( x ∣ z ) d z p(x) = \int_z p(x,z)dz = \int_z p(z) p(x|z) dz p(x)=∫zp(x,z)dz=∫zp(z)p(x∣z)dz
由于 z z z 是一个非常高维的信息, p ( x ) p(x) p(x) 是很难直接计算积分进行处理的,所以 p ( z ∣ x ) p(z|x) p(z∣x) 也是很难处理的,我们通常使用优化的方法来拟合出概率分布 p ( z ∣ x ) p(z|x) p(z∣x)
首先,我们考虑随机变量 z z z 与 x x x 之间的关系,假定 p ( x ) p(x) p(x) 表示真实的数据分布,即我们观测到的数据 x ∼ p ( x ) x\sim p(x) x∼p(x), q ( z ∣ x ) q(z|x) q(z∣x) 为任一条件概率分布(通常是使用模型拟合出来的分布),有
log p ( x ) = log p ( x , z ) − log p ( z ∣ x ) = log p ( x , z ) q ( z ∣ x ) − log p ( z ∣ x ) q ( z ∣ x ) \begin{align} \log p(x) &= \log p(x,z) - \log p(z|x) \nonumber \\&=\log\frac{p(x,z)}{q(z|x)} - \log\frac{p(z|x)}{q(z|x)} \nonumber \end{align} logp(x)=logp(x,z)−logp(z∣x)=logq(z∣x)p(x,z)−logq(z∣x)p(z∣x)
对左右两式计算关于隐变量 z z z 的期望,有
left = E z ∼ q ( z ∣ x ) [ log p ( x ) ] = log p ( x ) ∫ z q ( z ∣ x ) d z = log p ( x ) right = E z ∼ q ( z ∣ x ) [ log p ( x , z ) q ( z ∣ x ) − log p ( z ∣ x ) q ( z ∣ x ) ] = ∫ z q ( z ∣ x ) log p ( x , z ) q ( z ∣ x ) d z + ∫ z q ( z ∣ x ) log q ( z ∣ x ) p ( z ∣ x ) d z = ∫ z q ( z ∣ x ) log p ( x , z ) q ( z ∣ x ) d z + KL ( q ( z ∣ x ) ∣ ∣ p ( z ∣ x ) ) \begin{align} \text{left} &= \mathbb E_{z\sim q(z|x)}[\log p(x)] = \log p(x) \int_z q(z|x) dz = \log p(x) \nonumber \\\text{right} &= \mathbb E_{z\sim q(z|x)}[\log\frac{p(x,z)}{q(z|x)} - \log\frac{p(z|x)}{q(z|x)}] = \int_z q(z|x) \log\frac{p(x,z)}{q(z|x)} dz + \int_z q(z|x) \log\frac{q(z|x)}{p(z|x)} dz \nonumber \\ &= \int_z q(z|x) \log\frac{p(x,z)}{q(z|x)} dz + \text{KL}(q(z|x)||p(z|x)) \nonumber \end{align} leftright=Ez∼q(z∣x)[logp(x)]=logp(x)∫zq(z∣x)dz=logp(x)=Ez∼q(z∣x)[logq(z∣x)p(x,z)−logq(z∣x)p(z∣x)]=∫zq(z∣x)logq(z∣x)p(x,z)dz+∫zq(z∣x)logp(z∣x)q(z∣

变分推断是一种处理隐变量模型的技术,通过优化条件概率分布逼近真实分布。变分自编码器结合了变分推断和自编码器,用以学习数据的低维表示并进行图像生成,其中KL散度用于约束隐空间分布接近标准正态分布。
最低0.47元/天 解锁文章
4582

被折叠的 条评论
为什么被折叠?



