EM算法追根溯源
2015-08-10 16:26
260 查看
EM算法通俗解释
大名鼎鼎的EM算法,用处如此广泛,以至于必须要看懂它,弄明白它,才不枉学习数据挖掘算法一番。何为EM算法,就是对含有隐变量的概率模型参数的极大似然估计方法。如果没有隐变量,就是极大似然估计法。极大似然估计法,简单地说就是在已知结果的情况下,找到使得该结果出现的可能性最大时对应的参数。我们就知道了,EM算法是种参数估计的方法,跟极大似然法有些相近,比它多了中间变量-隐变量。
举个形象点的例子吧,抛硬币的例子大家都熟悉。
先举个适合于用极大似然估计的抛硬币例子。
例子1:抛一枚硬币,抛了好多次,比如100次,其正面朝上记作1,反面朝上记作0,则得到一组结果{0,1,1,1,0,1,0,1,0,0,0,1,…}。问题,估计硬币正面朝上的概率pp。
再举个适合于EM算法的抛硬币的例子。
例子2:抛三枚硬币A,B,C,怎么抛呢,先抛A,若A正面朝上,则抛B;若A反面朝上,则抛C。最后得到一组结果{0,1,1,0,1,0,0,1,1,0,0,…}。问题,估计硬币A,B,C各自正面朝上的概率p1p_{1},p2p_{2},p3p_{3}。
上面两个例子中,例2比例1,明显多了中间变量A,由于A的变化,导致下面的操作也不同,并且A的情况是观察不到的,这就是隐变量。
例1求解:P(y|θ)=∏Ni=1Pi(y)P(y|\theta) = \prod_{i=1}^{N}P_{i}(y)
例2求解:P(y|θ)=∏zP(y,z|θ)∗P(z|θ)P(y|\theta) = \prod_{z}P(y,z|\theta)*P(z|\theta)
例1是在已知结果的情况下,找到参数θ\theta使得当前结果出现的可能性最大。例2是在已知结果,不知隐变量zz的情况下,找到参数θ\theta使得当前结果出现的可能性最大。
那么对于例2,如何找到最佳的参数θ\theta呢,这就需要EM算法来搞定了。对于此类问题,目标是极大化观测数据Y关于参数θ\theta的对数似然函数(对数的引入,一方面化积为和,一方面利于后面推导),即极大化下面目标函数
L(θ)=logP(Y|θ)=logP(Y,Z|θ)=log[∑zP(Y|Z,θ)∗P(Z|θ)]L(\theta) = logP(Y|\theta) = logP(Y,Z|\theta) = log \left[ \sum_{z}{P(Y|Z,\theta)*P(Z|\theta)} \right ]
EM迭代过程推导
(不是常见推导方式,而是给出为什么这样推导,其背后的原因也表示出来,便于理解)EM是通过迭代逐步近似极大L(θ)L(\theta)值的,假设第ii次迭代后的θ\theta的估计值是θ(i)\theta^{(i)}。关键:我们希望更新θ\theta,使得L(θ)L(\theta)比L(θi)L(\theta^{i})大,以此逐渐迭代到极大L(θ)L(\theta)值。为此,考虑两者的差L(θ)−L(θ(i))L(\theta) - L(\theta^{(i)}),只要两者差大于等于0也就L(θ)L(\theta)逐步增加。
L(θ)−L(θ(i))L(\theta) - L(\theta^{(i)})
=log[∑zP(Y|Z,θ)∗P(Z|θ)]−logP(Y|θ(i)) = log \left[ \sum_{z}P(Y|Z, \theta)*P(Z|\theta) \right ] - log P(Y|\theta^{(i)}) 里面乘以1
=log[∑zP(Z|Y,θ(i))∗P(Y|Z,θ)∗P(Z|θ)P(Z|Y,θ(i))]−logP(Y|θ(i))=log \left[ \sum_{z} P(Z|Y, \theta^{(i)})* \frac{P(Y|Z, \theta)*P(Z|\theta)} {P(Z|Y, \theta^{(i)}) } \right ] - logP(Y|\theta^{(i)}) - - 1
利用Jensen不等式log∑jλj∗yj⩾∑jλj∗logyjlog\sum_{j}\lambda_{j}*y_{j} \geqslant \sum_{j} \lambda_{j}*logy_{j},其中, λj⩾0,∑jλj=1\lambda_{j} \geqslant 0, \sum_{j} \lambda_{j} = 1,变换上式,得到两者差的下界:
⩾∑z[P(Z|Y,θ(i))∗logP(Y|Z,θ)∗P(Z|θ)P(Z|Y,θ(i))]−logP(Y|θ(i))\geqslant \sum_{z} \left [ P(Z|Y, \theta^{(i)})* log \frac {P(Y|Z, \theta)*P(Z|\theta)} {P(Z|Y, \theta^{(i)}) } \right ] - logP(Y|\theta^{(i)})
=∑zP(Z|Y,θ(i))∗logP(Y|Z,θ)∗P(Z|θ)P(Z|Y,θ(i))∗P(Y|θ(i)) = \sum_{z}P(Z|Y, \theta^{(i)})*log \frac{P(Y|Z, \theta)*P(Z|\theta)} {P(Z|Y, \theta^{(i)})*P(Y|\theta^{(i)}) }
=D(θ,θ(i))= D(\theta, \theta^{(i)})
综合L(θ)−L(θ(i))⩾D(θ,θ(i))L(\theta) - L(\theta^{(i)}) \geqslant D(\theta, \theta^{(i)})得到L(θ)L(\theta)的下界
L(θ)⩾L(θ(i))+D(θ,θ(i))L(\theta) \geqslant L(\theta^{(i)}) + D(\theta, \theta^{(i)}) - - 2
D(θ,θ(i))D(\theta, \theta^{(i)})是大于等于0的,可以证明(后面)。当θ=θ(i)\theta = \theta^{(i)}时,两边相等。
任何使得2式右侧(下界)增大的θ\theta都会使得L(θ)L(\theta)增加。当右侧最大时,L(θ)L(\theta)增加最大,选择θ(i+1)\theta^{(i+1)}满足
θ(i+1)=argmaxθ[L(θ(i))+D(θ,θ(i))]\theta^{(i+1)} = \underset{\theta}{arg max}\left[ L(\theta^{(i)}) + D(\theta, \theta^{(i)}) \right ]
现在,稍微对相减公式变形,得到θ\theta方便更新的公式。
L(θ(i))L(\theta^{(i)})是常数,略去则得到:
θ(i+1)=argmaxθ[D(θ,θ(i))]\theta^{(i+1)} = \underset{\theta}{argmax}\left [ D(\theta, \theta^{(i)}) \right ]
θ(i+1)=argmaxθ∑z[P(Z|Y,θ(i))∗logP(Y|Z,θ)∗P(Z|θ)P(Z|Y,θ(i))∗P(Y|θ(i))]\theta^{(i+1)} = \underset{\theta}{argmax}\sum_{z} \left [ P(Z|Y, \theta^{(i)})* log \frac {P(Y|Z, \theta)*P(Z|\theta)} {P(Z|Y, \theta^{(i)})*P(Y|\theta^{(i)}) } \right ]
分母上的常数P(Y|θ(i))P(Y|\theta^{(i)})也略去。
θ(i+1)=argmaxθ∑z[P(Z|Y,θ(i))∗logP(Y|Z,θ)∗P(Z|θ)P(Z|Y,θ(i))]\theta^{(i+1)} = \underset{\theta}{argmax}\sum_{z} \left [ P(Z|Y, \theta^{(i)})* log \frac { {P(Y|Z, \theta)*P(Z|\theta)} }{P(Z|Y, \theta^{(i)})} \right ]
令Q(Z)=P(Z|Y,θ(i))Q(Z)=P(Z|Y, \theta^{(i)})
θ(i+1)=argmaxθ∑z[Q(Z)∗logP(Y,Z|θ)Q(Z)]\theta^{(i+1)} = \underset{\theta}{argmax} \sum_{z}\left[ Q(Z) * log \frac {P(Y,Z| \theta)}{Q(Z)} \right ]
可以看到,上式就是logP(Y,Z|θ)Q(Z)log\frac{P(Y, Z|\theta)}{Q(Z)}的期望的最大化。(迭代的过程也清晰了,先求Q(Z)Q(Z),再求解logP(Y,Z|θ)Q(Z)log\frac{P(Y, Z|\theta)}{Q(Z)}的期望,然后求其最大化对应的θ\theta,更新后,重复此操作。同时,也就有了EE步和MM步。)不断提高下限,也就使得目标函数不断增加,但会陷于局部解。
EM算法步骤
通过上面的推导,我们可以整理出EM算法的一般步骤1. 参数初始化theta 2. 求解Q(Z),并且求解log{ P(Y, Z| theta)/Q(Z) }的期望E。 3. 求解满足argmax{E}的参数theta。 4. 更新theta 5. 重复步骤2到4,直到终止条件abs{theta(i+1) - theta(i)}
EM收敛性的证明
先证明L(θ(i+1))−L(θi)=D(θ(i+1),θi)L( \theta^{(i+1)} ) - L(\theta^{i}) = D(\theta^{(i+1)}, \theta^{i})是大于等于0的。L(θ(i+1))−L(θi)L( \theta^{(i+1)} ) - L(\theta^{i})
=∑zP(Z|Y,θ(i))∗logP(Y|Z,θ(i+1))∗P(Z|θ(i+1))P(Z|Y,θ(i))∗P(Y|θ(i)) = \sum_{z}P(Z|Y, \theta^{(i)})*log \frac{P(Y|Z, \theta^{(i+1)})*P(Z|\theta^{(i+1)})} {P(Z|Y, \theta^{(i)})*P(Y|\theta^{(i)}) }
=∑z[P(Z|Y,θ(i))∗logP(Y|Z,θ(i+1))∗P(Z|θ(i+1))P(Z|Y,θ(i))]−∑z[P(Z|Y,θ(i))∗logP(Y|θ(i))]= \sum_{z} \left [ P(Z|Y, \theta^{(i)})*log \frac{P(Y|Z, \theta^{(i+1)})*P(Z|\theta^{(i+1)})} {P(Z|Y, \theta^{(i)}) }\right ] - \sum_{z} \left[ P(Z|Y, \theta^{(i)})*logP(Y|\theta^{(i)}) \right ]
=A(θ(i+1),θ(i))−B(θ(i+1),θ(i))=A(\theta^{(i+1)}, \theta^{(i)}) - B(\theta^{(i+1)}, \theta^{(i)})
由于θ(i+1)=argmaxθ∑z[Q(Z)∗logP(Y,Z|θ)Q(Z)]\theta^{(i+1)} = \underset{\theta}{argmax} \sum_{z}\left[ Q(Z) * log \frac {P(Y,Z| \theta)}{Q(Z)} \right ],因此对于A(θ(i+1),θ(i))A(\theta^{(i+1)}, \theta^{(i)}) 来说,其值大于等于0.
对于B(θ(i+1),θ(i)) B(\theta^{(i+1)}, \theta^{(i)}),利用jensen不等式。
=∑z[P(Z|Y,θ(i))∗logP(Y|θ(i))]= \sum_{z} \left[ P(Z|Y, \theta^{(i)})*logP(Y|\theta^{(i)}) \right ]
⩽log∑zP(Z|Y,θ(i))P(Y|θ(i))=log∑zP(Z,Y|θ(i))⩽0\leqslant log\sum_{z}P(Z|Y, \theta^{(i)})P(Y|\theta^{(i)}) = log \sum_{z}P(Z, Y | \theta^{(i)}) \leqslant 0概率小于1,对数小于0。
故L(θ(i+1))−L(θi)=A(θ(i+1),θ(i))−B(θ(i+1),θ(i))⩾0L( \theta^{(i+1)} ) - L(\theta^{i})=A(\theta^{(i+1)}, \theta^{(i)}) - B(\theta^{(i+1)}, \theta^{(i)}) \geqslant 0
再证明,L(θ)L(\theta)收敛于某一个值LL
因为L(θ)L(\theta)的单调性,以及P(Y|θ)P(Y|\theta)的有界性,得到结论:L(θ)L(\theta)收敛于某一个值。
最后证明,θ\theta收敛于稳定值
暂时未看。
EM算法总结
对于隐含变量的概率模型,在对数情况下,通过其单调性,不断迭代增加下界值(简化运算),来找到局部最优解。相关文章推荐
- Hadoop 权限管理
- python面向对象编程
- iOS文本框处理方式的不同
- 九度oj 1454
- 水题 1293: [SCOI2009]生日礼物
- jquery 使用相关记录
- QT事件(1)
- m语言常用函数和命令
- 控件学习---UITextField---摘自培训资料
- php分页原理
- 完成卸载vs2010后再安装
- jQuery动画效果animate和scrollTop结合使用实例
- 6款最新的 jQuery 图片裁剪插件
- ulua
- 华三,思科ACL命令解析
- 文件目录操作
- 正则表达式基本语法
- PHP Warning: mssql_connect() Unable to connect to server
- 网站和短信设备相结合如何办到
- 新浪微博OAuth2.0授权