EM算法

23 篇文章 0 订阅
12 篇文章 0 订阅
  1. 在用最大似然原则求解一些图模型参数时,经常会遇到图模型含有隐变量的情况,导致很难简单使用极大似然估计。这类问题一般求助于基于迭代的EM算法。一般分为两步。第一步求期望,第二步最大化。实际就是第一步:利用旧的参数值构造原似然函数的一个下界,该下界实际就是一个期望;第二步:通过最大化下界(期望)来最大化原似然函数。因此叫做期望最大化算法。

  2. 下面我们导出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=1NP(yiθ)=i=1NlogP(yiθ)=i=1NlogziP(yi,ziθ)=i=1NlogziP(ziyi,θt)P(ziyi,θ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=1NziP(ziyi,θt)logP(ziyi,θt)P(yi,ziθ)=i=1NziP(ziyi,θt)logP(ziyi,θ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=1NziP(ziyi,θt)logP(ziyi,θ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=1NziP(ziyi,θt)logP(ziyiθt)P(yi,ziθ)=argθmaxi=1NziP(ziyi,θ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=1NziP(ziyi,θt)logP(yi,ziθ)
    (此步有时候只写作评估 P ( z i ∣ y i , θ t ) P(z_i|y_i,\theta_t) P(ziyi,θ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=1NziP(ziyi,θt)logP(yi,ziθ)
    (4) 如果不收敛(可根据对数似然函数值或者参数值判断),重复2)3)。
    注意:最大化Q函数可以直观理解为,在知道隐变量的估计后验分布(基于 y i y_i yi θ \theta θ)后,可以认为隐变量已知,这时候只需最大化完全数据的log似然。由于知道的是分布,所以应该对log似然求期望。

  3. 三硬币例子推导
    有三枚硬币,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)=ziP(yi,ziπ,p,q)=ziP(yizi,π,p,q)P(ziπ,p,q)=πpyi(1p)1yi+(1π)qyi(1q)1yi
    后验分布:
    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(ziyi,πt,pt,qt)=P(yiπt,pt,qt)P(yi,ziπ,p,q)=πtptyi(1pt)1yi+(1πt)qtyi(1qt)1yiziπtptyi(1pt)1yi+(1zi)(1πt)qtyi(1qt)1yi
    标记:
    μ 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=1yi,πt,pt,qt)=πpyi(1p)1yi+(1π)qyi(1q)1yiπpyi(1p)1yi
    则:
    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=1yi,π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=1NziP(ziyi,πt,pt,qt)logP(yi,ziπ,p,q)=i=1N[μilog(πpyi(1p)1yi)+(1μi)log((1π)qyi(1q)1yi)]
    令一阶导数等于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 pQ(θ,θt)=0
    ∂ Q ( θ , θ t ) ∂ q = 0 \frac{\partial Q(\theta,\theta_t)}{\partial q}=0 qQ(θ,θ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=1Nμ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=1Nμiti=1Nμ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=1N(1μit)i=1N(1μit)yi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值