EM 算法抛硬币实例解析《统计学习方法》

问题描述

最大期望算法(Expectation-Maximization Algorithm, EM),或 Dempster-Laird-Rubin 算法,是一类通过迭代进行极大似然估计的优化算法,通常用于对包含隐变量(latent variable)或缺失数据(incomplete-data)的概率模型进行参数估计。来自百度百科

具体就不说了,看了李航《统计学习方法》讲的 EM 算法,讲得很棒,但对抛硬币的例子迷茫了好久,书中只给了答案,没有具体的推导过程。然而,看完 “9.1.2 EM算法的导出” 后,我依然不能写出迭代更新公式是怎么来的? π ( i + 1 ) = 1 n ∑ j = 1 n μ j ( i + 1 ) \pi^{(i+1)} = \frac{1}{n}\sum_{j=1}^{n}\mu_j^{(i+1)} π(i+1)=n1j=1nμj(i+1) p ( i + 1 ) = ∑ j = 1 n μ j ( i + 1 ) y j ∑ j = 1 n μ j ( i + 1 ) p^{(i+1)} = \frac{\sum_{j=1}^{n} \mu_j^{(i+1)} y_j} {\sum_{j=1}^{n} \mu_j^{(i+1)}} p(i+1)=j=1nμj(i+1)j=1nμj(i+1)yj q ( i + 1 ) = ∑ j = 1 n ( 1 − μ j ( i + 1 ) ) y j ∑ j = 1 n ( 1 − μ j ( i + 1 ) ) q^{(i+1)} = \frac{\sum_{j=1}^{n} (1 - \mu_j^{(i+1)}) y_j} {\sum_{j=1}^{n} (1-\mu_j^{(i+1)})} q(i+1)=j=1n(1μj(i+1))j=1n(1μj(i+1))yj 其中 μ ( i + 1 ) = π ( i ) ( p ( i ) ) ( y j ) ( 1 − p ( i ) ) ( 1 − y j ) π ( i ) ( p ( i ) ) ( y j ) ( 1 − p ( i ) ) ( 1 − y j ) + ( 1 − π ( i ) ) ( q ( i ) ) ( y j ) ( 1 − q ( i ) ) ( 1 − y j ) \mu^{(i+1)} = \frac{\pi^{(i)} (p^{(i)})^{(y_j)} (1-p^{(i)})^{(1-y_j)}} {\pi^{(i)} (p^{(i)})^{(y_j)} (1-p^{(i)})^{(1-y_j)} + (1-\pi^{(i)}) (q^{(i)})^{(y_j)} (1-q^{(i)})^{(1-y_j)}} μ(i+1)=π(i)(p(i))(yj)(1p(i))(1yj)+(1π(i))(q(i))(yj)(1q(i))(1yj)π(i)(p(i))(yj)(1p(i))(1yj)

“9.1.2 EM算法的导出” 一节对 EM 算法的由来讲得很详细。后来,琢磨抛硬币的计算时,却陷入苦恼,“你写不出来,就是没理解!” 先写出书中的公式 (9.17): θ ( i + 1 ) = a r g   m a x θ ( ∑ Z P ( Z ∣ Y , θ ( i ) )   l o g [ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ] ) \theta^{(i+1)} = arg\ \underset {\theta} {max} \left (\sum_Z P(Z|Y,\theta^{(i)})\ log \left [ P(Y|Z,\theta) P(Z|\theta) \right ] \right ) θ(i+1)=arg θmax(ZP(ZY,θ(i)) log[P(YZ,θ)P(Zθ)]) 我觉得写到这就好了,更方便理解。

主要是两个问题:(1) μ j ( i + 1 ) \mu_j^{(i+1)} μj(i+1) 是啥?(2)长长的 n n n 次抛币,怎么表达其似然公式?

先看 (1),之所以不知 μ j ( i + 1 ) \mu_j^{(i+1)} μj(i+1),是因为没理解公式中 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(ZY,θ(i)) 是啥,它就是:已知了一个临时模型 θ ( i ) \theta^{(i)} θ(i) 和观察 Y Y Y,求隐变量的条件(后验)概率分布,那对应到抛硬币的隐变量 “A 朝上” 的后验概率 μ j ( i + 1 ) \mu_j^{(i+1)} μj(i+1),“A 朝下” 为 1 − μ j ( i + 1 ) 1 - \mu_j^{(i+1)} 1μj(i+1)

所以,现在代入 (9.17),就是 θ ( i + 1 ) = a r g   m a x θ ( μ j ( i + 1 ) l o g [ π p ( y j ) ( 1 − p ) ( 1 − y j ) ] + ( 1 − μ j ( i + 1 ) ) l o g [ ( 1 − π ) q ( y j ) ( 1 − q ) ( 1 − y j ) ] ) \theta^{(i+1)} = arg\ \underset {\theta} {max} \left (\mu_j^{(i+1)} log[ \pi p^{(y_j)} (1-p)^{(1-y_j)}] + (1-\mu_j^{(i+1)}) log[(1-\pi) q^{(y_j)} (1-q)^{(1-y_j)}] \right ) θ(i+1)=arg θmax(μj(i+1)log[πp(yj)(1p)(1yj)]+(1μj(i+1))log[(1π)q(yj)(1q)(1yj)]) 但是,这里面带着 j j j,说明这只是一次实验,那 n n n 次实验的表达式如何写?

现在看第二个问题 (2)。可以从两个角度去理解:公式角度和直观角度。
公式角度:(9.17)是关于一次实验的,现在重写它 θ ( i + 1 ) = a r g   m a x θ ( ∑ Z P ( Z ∣ Y , θ ( i ) )   l o g [ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ] ) = a r g   m a x θ ( ∑ Z l o g [ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ] P ( Z ∣ Y , θ ( i ) ) ) = a r g   m a x θ ( ∏ Z [ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ] P ( Z ∣ Y , θ ( i ) ) ) \begin{aligned} \theta^{(i+1)} &= arg\ \underset {\theta} {max} \left (\sum_Z P(Z|Y,\theta^{(i)})\ log \left [ P(Y|Z,\theta) P(Z|\theta) \right ] \right ) \\ &= arg\ \underset {\theta} {max} \left (\sum_Z log \left [ P(Y|Z,\theta) P(Z|\theta) \right ]^{P(Z|Y,\theta^{(i)})} \right ) \\ &= arg\ \underset {\theta} {max} \left (\prod_{Z} \left [ P(Y|Z,\theta) P(Z|\theta) \right ]^{P(Z|Y,\theta^{(i)})} \right ) \end{aligned} θ(i+1)=arg θmax(ZP(ZY,θ(i)) log[P(YZ,θ)P(Zθ)])=arg θmax(Zlog[P(YZ,θ)P(Zθ)]P(ZY,θ(i)))=arg θmax(Z[P(YZ,θ)P(Zθ)]P(ZY,θ(i))) 由于各次实验没有关联,故多次实验的最大化似然可以累乘: θ ( i + 1 ) = a r g   m a x θ ( ∏ j = 1 n ∏ Z [ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ] P ( Z ∣ Y , θ ( i ) ) ) \begin{aligned} \theta^{(i+1)} = arg\ \underset {\theta} {max} \left (\prod_{j=1}^{n}\prod_{Z} \left [ P(Y|Z,\theta) P(Z|\theta) \right ]^{P(Z|Y,\theta^{(i)})} \right ) \end{aligned} θ(i+1)=arg θmax(j=1nZ[P(YZ,θ)P(Zθ)]P(ZY,θ(i))) 反映到最终的公式上就是外面套了个累加 ∑ j = 1 n \sum_{j=1}^{n} j=1n,再求最大化即可。

直观角度:各次实验独立,那么我们只需要将所有的实验都最大化,合起来也是累加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值