-
在用最大似然原则求解一些图模型参数时,经常会遇到图模型含有隐变量的情况,导致很难简单使用极大似然估计。这类问题一般求助于基于迭代的EM算法。一般分为两步。第一步求期望,第二步最大化。实际就是第一步:利用旧的参数值构造原似然函数的一个下界,该下界实际就是一个期望;第二步:通过最大化下界(期望)来最大化原似然函数。因此叫做期望最大化算法。
-
下面我们导出EM算法。已知观察数据 Y = { y 1 , . . . y N } Y=\{y_1,...y_N\} Y={y1,...yN},和隐变量为 Z = { z 1 , . . . , z N } Z=\{z_1,...,z_N\} Z={z1,...,zN}。求图模型参数 θ \theta θ。
对数似然函数
L ( θ ) = l o g P ( Y ∣ θ ) = l o g ∏ i = 1 N P ( y i ∣ θ ) = ∑ i = 1 N l o g P ( y i ∣ θ ) = ∑ i = 1 N l o g ∑ z i P ( y i , z i ∣ θ ) = ∑ i = 1 N l o g ∑ z i P ( z i ∣ y i , θ t ) P ( y i , z i ∣ θ ) P ( z i ∣ y i , θ t ) L(\theta)=logP(Y|\theta) \\=log\prod\limits_{i=1}^{N}P(y_i|\theta) \\=\sum\limits_{i=1}^{N}logP(y_i|\theta) \\=\sum\limits_{i=1}^{N}log\sum\limits_{z_i}P(y_i,z_i|\theta) \\=\sum\limits_{i=1}^{N}log\sum\limits_{z_i}P(z_i|y_i,\theta_t)\frac{P(y_i,z_i|\theta)}{P(z_i|y_i,\theta_t)} L(θ)=logP(Y∣θ)=logi=1∏NP(yi∣θ)=i=1∑NlogP(yi∣θ)=i=1∑Nlogzi∑P(yi,zi∣θ)=i=1∑Nlogzi∑P(zi∣yi,θt)P(zi∣yi,θt)P(yi,zi∣θ)
利用杰森不等式(证据下界和KL分解是更一般化的视角),对凹函数:
f ( ∑ w i x i ) ≥ ∑ w i f ( x i ) f(\sum w_ix_i)\geq \sum w_if(x_i) f(∑wixi)≥∑wif(xi)
则:
L ( θ ) ≥ ∑ i = 1 N ∑ z i P ( z i ∣ y i , θ t ) l o g P ( y i , z i ∣ θ ) P ( z i ∣ y i , θ t ) = ∑ i = 1 N ∑ z i P ( z i ∣ y i , θ t ) l o g P ( y i , z i ∣ θ ) P ( z i ∣ y i , θ t ) L(\theta)\geq\sum\limits_{i=1}^{N}\sum\limits_{z_i}P(z_i|y_i,\theta_t)log\frac{P(y_i,z_i|\theta)}{P(z_i|y_i,\theta_t)} \\=\sum\limits_{i=1}^{N}\sum\limits_{z_i}P(z_i|y_i,\theta_t)log\frac{P(y_i,z_i|\theta)}{P(z_i|y_i,\theta_t)} L(θ)≥i=1∑Nzi∑P(zi∣yi,θt)logP(zi∣yi,θt)P(yi,zi∣θ)=i=1∑Nzi∑P(zi∣yi,θt)logP(zi∣yi,θt)P(yi,zi∣θ)
令 B ( θ , θ t ) = ∑ i = 1 N ∑ z i P ( z i ∣ y i , θ t ) l o g P ( y i , z i ∣ θ ) P ( z i ∣ y i , θ t ) B(\theta,\theta_t)=\sum\limits_{i=1}^{N}\sum\limits_{z_i}P(z_i|y_i,\theta_t)log\frac{P(y_i,z_i|\theta)}{P(z_i|y_i,\theta_t)} B(θ,θt)=i=1∑Nzi∑P(zi∣yi,θt)logP(zi∣yi,θt)P(yi,zi∣θ)
则 L ( θ ) ≥ B ( θ , θ t ) L(\theta)\geq B(\theta,\theta_t) L(θ)≥B(θ,θt),即 B ( θ , θ t ) B(\theta,\theta_t) B(θ,θt)是 L ( θ ) L(\theta) L(θ)的下界,也叫证据下界ELOB。且当 θ = θ t \theta=\theta_t θ=θt时, B ( θ , θ t ) = L ( θ ) B(\theta,\theta_t)=L(\theta) B(θ,θt)=L(θ)。
因此我们可以通过最大化 B ( θ , θ t ) B(\theta,\theta_t) B(θ,θt)来最大化 L ( θ ) L(\theta) L(θ)(来自于夹逼原理?还是其他的原因,从EM的更一般化的视角来看,log似然可以分解为证据下界和KL散度的和,证据下界由于 θ \theta θ的变化增加时,KL散度也会增加)。
arg max θ B ( θ , θ t ) = arg max θ ∑ i = 1 N ∑ z i P ( z i ∣ y i , θ t ) l o g P ( y i , z i ∣ θ ) P ( z i ∣ y i ∣ θ t ) = arg max θ ∑ i = 1 N ∑ z i P ( z i ∣ y i , θ t ) l o g P ( y i , z i ∣ θ ) \arg\max\limits_{\theta}B(\theta,\theta_t) \\=\arg\max\limits_{\theta}\sum\limits_{i=1}^{N}\sum\limits_{z_i}P(z_i|y_i,\theta_t)log\frac{P(y_i,z_i|\theta)}{P(z_i|y_i|\theta_t)} \\=\arg\max\limits_{\theta}\sum\limits_{i=1}^{N}\sum\limits_{z_i}P(z_i|y_i,\theta_t)logP(y_i,z_i|\theta) argθmaxB(θ,θt)=argθmaxi=1∑Nzi∑P(zi∣yi,θt)logP(zi∣yi∣θt)P(yi,zi∣θ)=argθmaxi=1∑Nzi∑P(zi∣yi,θt)logP(yi,zi∣θ)
因此可得EM算法:
(1) 初始化 θ 0 \theta_0 θ0
(2) 求期望:
Q ( θ , θ t ) = ∑ i = 1 N ∑ z i P ( z i ∣ y i , θ t ) l o g P ( y i , z i ∣ θ ) Q(\theta,\theta_t)=\sum\limits_{i=1}^{N}\sum\limits_{z_i}P(z_i|y_i,\theta_t)logP(y_i,z_i|\theta) Q(θ,θt)=i=1∑Nzi∑P(zi∣yi,θt)logP(yi,zi∣θ)
(此步有时候只写作评估 P ( z i ∣ y i , θ t ) P(z_i|y_i,\theta_t) P(zi∣yi,θt))。
(3) 最大化:
θ t + 1 = arg max θ Q ( θ , θ t ) \theta_{t+1}=\arg\max\limits_{\theta}Q(\theta,\theta_t) θt+1=argθmaxQ(θ,θt)
Q ( θ , θ t ) = ∑ i = 1 N ∑ z i P ( z i ∣ y i , θ t ) l o g P ( y i , z i ∣ θ ) Q(\theta,\theta_t)=\sum\limits_{i=1}^{N}\sum\limits_{z_i}P(z_i|y_i,\theta_t)logP(y_i,z_i|\theta) Q(θ,θt)=i=1∑Nzi∑P(zi∣yi,θt)logP(yi,zi∣θ)
(4) 如果不收敛(可根据对数似然函数值或者参数值判断),重复2)3)。
注意:最大化Q函数可以直观理解为,在知道隐变量的估计后验分布(基于 y i y_i yi和 θ \theta θ)后,可以认为隐变量已知,这时候只需最大化完全数据的log似然。由于知道的是分布,所以应该对log似然求期望。 -
三硬币例子推导
有三枚硬币,A,B,C。首先抛掷A,如果A为正面,然后抛掷B。如果A为反面则抛掷C。重复这个实验N次,记录B或C的结果。根据N次实验结果求A,B,C正面的概率 π , p , q \pi,p,q π,p,q。
解:
设观察数据为 Y = { y 1 , . . . , y N } Y=\{y_1,...,y_N\} Y={y1,...,yN},隐变量为 Z = { z 1 , . . . , z N } Z=\{z_1,...,z_N\} Z={z1,...,zN}。
则:
P ( y i ∣ π , p , q ) = ∑ z i P ( y i , z i ∣ π , p , q ) = ∑ z i P ( y i ∣ z i , π , p , q ) P ( z i ∣ π , p , q ) = π p y i ( 1 − p ) 1 − y i + ( 1 − π ) q y i ( 1 − q ) 1 − y i P(y_i|\pi,p,q)=\sum\limits_{z_i} P(y_i,z_i|\pi,p,q) \\=\sum\limits_{z_i} P(y_i|z_i,\pi,p,q)P(z_i|\pi,p,q) \\=\pi p^{y_i}(1-p)^{1-y_i}+(1-\pi) q^{y_i}(1-q)^{1-y_i} P(yi∣π,p,q)=zi∑P(yi,zi∣π,p,q)=zi∑P(yi∣zi,π,p,q)P(zi∣π,p,q)=πpyi(1−p)1−yi+(1−π)qyi(1−q)1−yi
后验分布:
P ( z i ∣ y i , π t , p t , q t ) = P ( y i , z i ∣ π , p , q ) P ( y i ∣ π t , p t , q t ) = z i π t p t y i ( 1 − p t ) 1 − y i + ( 1 − z i ) ( 1 − π t ) q t y i ( 1 − q t ) 1 − y i π t p t y i ( 1 − p t ) 1 − y i + ( 1 − π t ) q t y i ( 1 − q t ) 1 − y i P(z_i|y_i,\pi_t,p_t,q_t)=\frac{P(y_i,z_i|\pi,p,q)}{P(y_i|\pi_t,p_t,q_t)} \\=\frac{{z_i}\pi_t p_t^{y_i}(1-p_t)^{1-y_i}+(1-z_i)(1-\pi_t) q_t^{y_i}(1-q_t)^{1-y_i}}{\pi_t p_t^{y_i}(1-p_t)^{1-y_i}+(1-\pi_t) q_t^{y_i}(1-q_t)^{1-y_i}} P(zi∣yi,πt,pt,qt)=P(yi∣πt,pt,qt)P(yi,zi∣π,p,q)=πtptyi(1−pt)1−yi+(1−πt)qtyi(1−qt)1−yiziπtptyi(1−pt)1−yi+(1−zi)(1−πt)qtyi(1−qt)1−yi
标记:
μ i t = P ( z i = 1 ∣ y i , π t , p t , q t ) = π p y i ( 1 − p ) 1 − y i π p y i ( 1 − p ) 1 − y i + ( 1 − π ) q y i ( 1 − q ) 1 − y i \mu_i^t=P(z_i=1|y_i,\pi_t,p_t,q_t)=\frac{\pi p^{y_i}(1-p)^{1-y_i}}{\pi p^{y_i}(1-p)^{1-y_i}+(1-\pi) q^{y_i}(1-q)^{1-y_i}} μit=P(zi=1∣yi,πt,pt,qt)=πpyi(1−p)1−yi+(1−π)qyi(1−q)1−yiπpyi(1−p)1−yi
则:
P ( z i = 1 ∣ y i , π t , p t , q t ) = 1 − μ i t P(z_i=1|y_i,\pi_t,p_t,q_t)=1-\mu_i^t P(zi=1∣yi,πt,pt,qt)=1−μit
Q ( θ , θ t ) = ∑ i = 1 N ∑ z i P ( z i ∣ y i , π t , p t , q t ) l o g P ( y i , z i ∣ π , p , q ) = ∑ i = 1 N [ μ i l o g ( π p y i ( 1 − p ) 1 − y i ) + ( 1 − μ i ) l o g ( ( 1 − π ) q y i ( 1 − q ) 1 − y i ) ] Q(\theta,\theta_t)=\sum\limits_{i=1}^N\sum\limits_{z_i}P(z_i|y_i,\pi_t,p_t,q_t)logP(y_i,z_i|\pi,p,q) \\=\sum\limits_{i=1}^N[\mu_ilog(\pi p^{y_i}(1-p)^{1-y_i})+(1-\mu_i)log((1-\pi) q^{y_i}(1-q)^{1-y_i})] Q(θ,θt)=i=1∑Nzi∑P(zi∣yi,πt,pt,qt)logP(yi,zi∣π,p,q)=i=1∑N[μilog(πpyi(1−p)1−yi)+(1−μi)log((1−π)qyi(1−q)1−yi)]
令一阶导数等于0:
∂ Q ( θ , θ t ) ∂ π = 0 \frac{\partial Q(\theta,\theta_t)}{\partial \pi}=0 ∂π∂Q(θ,θt)=0
∂ Q ( θ , θ t ) ∂ p = 0 \frac{\partial Q(\theta,\theta_t)}{\partial p}=0 ∂p∂Q(θ,θt)=0
∂ Q ( θ , θ t ) ∂ q = 0 \frac{\partial Q(\theta,\theta_t)}{\partial q}=0 ∂q∂Q(θ,θt)=0
可得:
π t + 1 = 1 N ∑ i = 1 N μ i t \pi_{t+1}=\frac{1}{N}\sum\limits_{i=1}^{N}\mu_i^t πt+1=N1i=1∑Nμit
p t + 1 = ∑ i = 1 N μ i t y i ∑ i = 1 N μ i t p_{t+1}=\frac{\sum\limits_{i=1}^N \mu_i^ty_i}{\sum\limits_{i=1}^N \mu_i^t} pt+1=i=1∑Nμiti=1∑Nμityi
q t + 1 = ∑ i = 1 N ( 1 − μ i t ) y i ∑ i = 1 N ( 1 − μ i t ) q_{t+1}=\frac{\sum\limits_{i=1}^N (1-\mu_i^t)y_i}{\sum\limits_{i=1}^N (1-\mu_i^t)} qt+1=i=1∑N(1−μit)i=1∑N(1−μit)yi。
EM算法
最新推荐文章于 2022-10-25 21:21:43 发布