变分推断是通过已知简单分布近似逼近需要推断的复杂分布,从而求得局部最优的确定解的一种近似推断方法。
令
x
为观测到的变量,
观测到的变量
p(x|Θ)=∏i=1N∑zp(xi,z|Θ)
公式(1)所对应的对数似然函数为
lnp(x|Θ)=∑1Nln{∑zp(xi,z|Θ)}
其中, Θ 为参数向量。
当使用 EM 算法来估计隐变量 z 和参数向量
Θt+1 =argmaxΘQ(Θ;Θt)=argmaxΘ∑zp(z|x,Θt)lnp(x,z|Θ)
公式(3)中, Q(Θ;Θt) 为 lnp(x,z|Θ) 在 p(z|x,Θt) 条件下的期望。
通常 p(z|x,Θt) 的真实分布很难求出,所以变分推断即是用简单的分布来代替所要求的复杂分布。
令 p 的近似分布为
lnp=L(q)+KL(q||p)
其中
L(q)=∫q(z)ln{p(x,z)q(z)}dz
KL(q||p)=−∫q(z)lnp(z|x)q(z)dz
其中 L(q) 为函数 q 的对数似然,
因为 p(z|x,Θt) 会很复杂,所以借助变分推断,假设 z 服从分布
即假设多变量 z 可以拆解为一系列相互独立的多变量
L(q)=∫∏iqi{lnp(x,z)−∑ilnqi}dz
将公式(8)的右侧整理成关于某一个多变量 zj 的函数,那么公式(8)可以写为
L(q) =∫qj{∫lnp(x,z)∏i≠jqidzi}dzj−∫qjlnqjdzj+const=∫qjlnp˜(x,zj)dzj−∫qjlnqjdzj+const
其中
lnp˜(x,zj)=∫lnp(x,z)∏i≠jqidzi+const
因为公式(10)是关于 qj 的函数,我们固定 qi≠j 然后最大化 L(q) ,
可以看出,公式(9)等于 −KL(qj||p˜(x,zj)) ,所以当 qj=p˜(x,zj) 时, L(q) 取最大, lnqj(zj) 的最优解 lnq∗j(zj) 为
lnq∗j(zj)=Ei≠j[lnp(x,z)]+const
因为不知道 const 的具体值,所以可以通过归一化 q∗j(zj) 即
q∗j(zj)=exp(Ei≠j[lnp(x,z)])∫exp(Ei≠j[lnp(x,z)])dzj