转载自:机器学习(2) 变分推断
变分
对于普通的函数f(x),我们可以认为f是一个关于x的一个实数算子,其作用是将实数x映射到实数f(x)。那么类比这种模式,假设存在函数算子F,它是关于f(x)的函数算子,可以将f(x)映射成实数F(f(x)) 。对于f(x)我们是通过改变x来求出f(x)的极值,而在变分中这个x会被替换成一个函数y(x),我们通过改变x来改变y(x),最后使得F(y(x))求得极值。
变分推断
\[\begin{align}\log P(x) &= \log P(x,z) - \log P(z|x) \\ &=\log\frac{P(x,z)}{q(z)} - \log\frac{P(z|x)}{q(z)} \\ &=\log P(x,z) - \log q(z) - \log\frac {P(z|x)}{q(z)} \\ &=\log P(x,z) - \log q(z) + \log\frac {q(z)}{P(z|x)}\end{align}\]
现在等式两边同时对q(z)做期望,即,\[\begin{align} \int q(z)\log P(x)dz&=\int q(z)\log P(x,z)dz - \int q(z)\log q(z)dz + \int q(z)\log\frac{q(z)}{P(z|x)}dz\end{align}\]
由于q(z)与P(x)无关,所以\[\begin{align} \int q(z)\log P(x)dz=\log P(x) \end{align}\]
原式最终变为:\[\begin{align} \log P(x) &= \underbrace{\int q(z)\log P(x,z)dz - \int q(z)\log q(z)dz}_{L(q(z)), ELOB(Evidence\ Lower\ Bound)} + \underbrace{\int q(z)\log\frac{q(z)}{P(z|x)}dz}_{KL(q(z)||P(z|x))}\end{align}\]