您的位置:首页 > 其它

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算法总结

  对于隐含变量的概率模型,在对数情况下,通过其单调性,不断迭代增加下界值(简化运算),来找到局部最优解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: