变分推断一(基于平均场理论求解Q)

本文主要参考B站的白板推导系列,推荐大家观看。
什么是变分推断

变分推断是贝叶斯学习中常用到的,含有隐变量模型的学习推理方法。变分推断和马尔可夫链蒙特卡洛法(MCMC)属于不同的技巧。MCMC通过随机抽样的方法近似的计算模型的后验概率,其背后的数学支撑是大数定理,采样的次数越多,越逼近与真实的后验概率。变分推断则通过解析的方法计算模型的后验概率的近似值。

X X X : 观测变量
Z Z Z:latent variable + parameter
在变分推断中,样本点 X X X被称为观测变量(observed data),未知参数和潜变量被称为不可观测变量,都用 Z Z Z来表示。

机器学习的模型的参数的求解通常有3中方法,最大似然估计,最大后验估计和贝叶斯估计,在最大后验估计和贝叶斯估计方法中要根据观测数据来求 Z Z Z的后验分布,也就是求 P ( Z ∣ X ) P(Z|X) P(ZX),但是有的时候, P ( Z ∣ X ) P(Z|X) P(ZX)是不好求的,所以尝试用一个容易求解的分布 Q Q Q来逼近 P ( Z ∣ X ) P(Z|X) P(ZX),当 Q Q Q P ( Z ∣ X ) P(Z|X) P(ZX)之前的差距很小时就可以用 Q Q Q来近似代替 P ( Z ∣ X ) P(Z|X) P(ZX)。之后就可以使用最大后验估计或贝叶斯估计的方法求解参数。

变分推断的数学原理

根据概率公式,我们有
l o g P ( X ) = l o g P ( X , Z ) − l o g P ( Z ∣ X ) (1) \tag{1} logP(X) = logP(X, Z) - logP(Z|X) logP(X)=logP(X,Z)logP(ZX)(1)
(1)式右边的两项log里面的部分同时除以 Q ( Z ) Q(Z) Q(Z),(1)式的值依然相等。即
l o g P ( X ) = l o g P ( X , Z ) Q ( Z ) − l o g P ( Z ∣ X ) Q ( Z ) (2) \tag{2} logP(X) = log{P(X, Z) \over Q(Z)} - log{P(Z|X) \over Q(Z)} logP(X)=logQ(Z)P(X,Z)logQ(Z)P(ZX)(2)
(2)式两边同时乘以 Q ( Z ) Q(Z) Q(Z),并对 Z Z Z求积分得。

左 边 = ∫ Z l o g P ( X ) Q ( Z ) d Z = l o g P ( X ) 右 边 = ∫ Z ( Q ( Z ) l o g P ( X , Z ) Q ( Z ) − Q ( Z ) l o g P ( Z ∣ X ) Q ( Z ) ) d Z = ∫ Z Q ( Z ) l o g P ( X , Z ) Q ( Z ) d Z − ∫ Z Q ( Z ) l o g P ( Z ∣ X ) Q ( Z ) ) d Z = L ( Q ) + K L ( Q ∣ ∣ P ) \begin{aligned} 左边 = & \int_{Z} logP(X)Q(Z)dZ \\ & = logP(X) \\ 右边= & \int_{Z} ( Q(Z)log{P(X, Z) \over Q(Z)}- Q(Z)log{P(Z|X) \over Q(Z)})dZ \\ = & \int_{Z} Q(Z)log{P(X, Z) \over Q(Z)}dZ - \int_{Z} Q(Z)log{P(Z|X) \over Q(Z)})dZ \\ = & L(Q) + KL(Q||P) \end{aligned} ====ZlogP(X)Q(Z)dZ=logP(X)Z(Q(Z)logQ(Z)P(X,Z)Q(Z)logQ(Z)P(ZX))dZZQ(Z)logQ(Z)P(X,Z)dZZQ(Z)logQ(Z)P(ZX))dZL(Q)+KL(QP)
上式中,第一项记为 L ( Q ) L(Q) L(Q),第二项连同负号是KL散度的形式,表示的是后验分布 P ( Z ∣ X ) P(Z|X) P(ZX)与分布 Q ( Z ) Q(Z) Q(Z)之间的距离。
所以有
l o g P ( X ) = L ( Q ) + K L ( Q ∣ ∣ P ) (3) \begin{aligned} \tag{3} logP(X) = L(Q) + KL(Q||P) \end{aligned} logP(X)=L(Q)+KL(QP)(3)
L ( Q ) L(Q) L(Q)也可以写成 L ( Q ) = E Q [ l o g P ( X , Z ) − l o g Q ( Z ) ] L(Q)= E_{Q}[logP(X,Z)-logQ(Z)] L(Q)=EQ[logP(X,Z)logQ(Z)]

由于 K L ( Q ∣ ∣ P ) KL(Q||P) KL(QP)是大于等于0的,所以 L ( Q ) < = l o g P ( X ) L(Q) <= logP(X) L(Q)<=logP(X),此时也称 L ( Q ) L(Q) L(Q)是ELBO(证据下界)。值得注意的是,此时的 L ( Q ) L(Q) L(Q)是分布 Q Q Q的函数(也称为泛函),当数据给定的时候, l o g P ( X ) logP(X) logP(X)是不变的,所以如果我们让 L ( Q ) L(Q) L(Q)最大化,也就是会让 K L ( Q ∣ ∣ P ) KL(Q||P) KL(QP)最小化,那么我们就会找到一个 Q Q Q,从而用这个 Q Q Q近似后验分布 P ( Z ∣ X ) P(Z|X) P(ZX),此时这个分布 Q Q Q就称作变分分布。

变分分布Q的求解

平均场理论假设 Q ( Z ) Q(Z) Q(Z)对于 Z Z Z的所有分量都是条件独立于参数的(假设 Z Z Z M M M个分量),也就是
Q ( Z ) = ∏ i M Q i ( Z i ) (4) \tag{4} Q(Z) = \prod_{i}^{M} Q_{i}(Z_{i}) Q(Z)=iMQi(Zi)(4)
由前面的推导知,
L ( Q ) = ∫ Z Q ( Z ) l o g P ( X , Z ) Q ( Z ) d Z (5) \tag{5} L(Q) = \int_{Z} Q(Z)log{P(X, Z) \over Q(Z)}dZ L(Q)=ZQ(Z)logQ(Z)P(X,Z)dZ(5)
将(4)代入(5)式,得
L ( Q ) = ∫ Z ∏ i M Q i ( Z i ) l o g P ( X , Z ) d Z − ∫ Z ∏ i M Q i ( Z i ) l o g ∏ i M Q i ( Z i ) d Z = ∫ Z ∏ i M Q i ( Z i ) l o g P ( X , Z ) d Z − ∫ Z ∏ i M Q i ( Z i ) ∑ i M l o g Q i ( Z i ) d Z (6) \begin{aligned} \tag{6} L(Q) = \int_{Z} \prod_{i}^{M}Q_{i}(Z_{i})logP(X,Z) dZ-\int_{Z} \prod_{i}^{M}Q_{i}(Z_{i})log\prod_{i}^{M}Q_{i}(Z_{i})dZ \\ = \int_{Z} \prod_{i}^{M}Q_{i}(Z_{i})logP(X,Z) dZ - \int_{Z} \prod_{i}^{M}Q_{i}(Z_{i})\sum_{i}^{M} logQ_{i}(Z_{i})dZ \end{aligned} L(Q)=ZiMQi(Zi)logP(X,Z)dZZiMQi(Zi)logiMQi(Zi)dZ=ZiMQi(Zi)logP(X,Z)dZZiMQi(Zi)iMlogQi(Zi)dZ(6)
考虑其中的某一项 Q j ( Z j ) Q_{j}(Z_{j}) Qj(Zj),分别计算(6)式的两部分。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
得到 Q i ( Z i ) Q_{i}(Z_{i}) Qi(Zi)之后,根据公式(4)便得到了我们要求的分布 Q Q Q

变分推断与EM算法的关系

EM算法总结一文中,详细阐述了EM算法的推导,我们发现,EM算法推导的ELBO的形式和变分推断的ELBO完全相同。即
E L B O = ∫ Z q ( Z ) l o g p ( X , Z ) q ( Z ) d Z = E q [ l o g p ( X , Z ) ] − E q [ l o g q ( Z ) ] (7) \tag{7} ELBO = \int_Zq(Z)log{p(X,Z) \over q(Z)}dZ =E_{q}[logp(X,Z)]-E_{q}[logq(Z)] ELBO=Zq(Z)logq(Z)p(X,Z)dZ=Eq[logp(X,Z)]Eq[logq(Z)](7)
在(7)式的期望一项中,第一项是 ( X , Z ) (X,Z) (X,Z)的联合概率分布的对数似然,第二项是新引入的分布 q ( Z ) q(Z) q(Z)的对数似然。

EM算法和变分推断的区别在于对分布 q ( Z ) q(Z) q(Z)的计算方式不同。EM算法假设 q ( Z ) = p ( Z ∣ X ) q(Z)=p(Z|X) q(Z)=p(ZX) p ( Z ∣ X ) p(Z|X) p(ZX)容易计算处来,通常用贝叶斯公式 p ( Z ∣ X ) = p ( Z ) p ( X ∣ Z ) ∫ Z p ( Z ) p ( X ∣ Z ) d Z p(Z|X)={p(Z)p(X|Z) \over \int_Zp(Z)p(X|Z)dZ} p(ZX)=Zp(Z)p(XZ)dZp(Z)p(XZ)就可以算出。而变分推断则考虑更一般情况,使用平均场理论来计算 q ( Z ) = ∏ i = 1 m q i ( Z i ) q(Z)=\prod_{i=1}^{m}q_{i}(Z_i) q(Z)=i=1mqi(Zi),也就是(4)式来计算。当模型复杂时,EM算法未必可用,但变分推断仍然可用。

其它部分与EM算法一样,也分为E步和M步,通过优化似然函数的紧下界来求解参数。区别就是上面提到的,在E步没有直接计算隐变量的后验,而是用一个近似分布 q ( Z ) q(Z) q(Z)去逼近 p ( Z ∣ X ) p(Z|X) p(ZX),这个 q ( Z ) q(Z) q(Z)是由你自己去定义的。

下面总结变分推断算法框架:

  1. 随机初始化未知参数,初始化值记为 θ o l d \theta^{old} θold
  2. E-STEP:
    • 求隐变量 Z Z Z的后验的近似分布 q ( Z ) q(Z) q(Z) q ( Z ) = ∏ i = 1 m q i ( Z i ) q(Z)=\prod_{i=1}^mq_{i}(Z_i) q(Z)=i=1mqi(Zi)
    • 求ELBO: E L B O = E q [ l o g p ( X , Z ∣ θ o l d ) ] − E q [ l o g q ( Z ) ] ELBO =E_{q}[logp(X,Z|\theta^{old})]-E_{q}[logq(Z)] ELBO=Eq[logp(X,Zθold)]Eq[logq(Z)]
    • 根据ELBO对 q ( Z ) q(Z) q(Z)最大化,也就是 q ( Z ) ^ = a r g m a x q ( Z ) E q [ l o g p ( X , Z ∣ θ o l d ) ] − E q [ l o g q ( Z ) ] \hat{q(Z)} =argmax_{q(Z)}E_{q}[logp(X,Z|\theta^{old})]-E_{q}[logq(Z)] q(Z)^=argmaxq(Z)Eq[logp(X,Zθold)]Eq[logq(Z)],令 q ( Z ) = q ( Z ) ^ q(Z)=\hat{q(Z)} q(Z)=q(Z)^
  3. M-STEP:
    根据 E q [ l o g p ( X , Z ∣ θ ) ] − E q [ l o g q ( Z ) ^ ] E_{q}[logp(X,Z|\theta)]-E_{q}[log\hat{q(Z)}] Eq[logp(X,Zθ)]Eq[logq(Z)^] θ \theta θ最大化,也就是 θ ^ = a r g m a x θ E q [ l o g p ( X , Z ∣ θ ) ] − E q [ l o g q ( Z ) ^ ] \hat{\theta}=argmax_{\theta} E_{q}[logp(X,Z|\theta)]-E_{q}[log\hat{q(Z)}] θ^=argmaxθEq[logp(X,Zθ)]Eq[logq(Z)^]
    θ o l d = θ ^ \theta^{old} = \hat{\theta} θold=θ^,并开启下一轮迭代。

重复上面的2,3步,直到满足收敛条件。这样就求得了最后的参数 θ \theta θ

参考李航《统计机器学习》第二版

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值