参考:https://www.cnblogs.com/pinard/p/6912636.html
1. EM算法的推导
对于mm个样本观察数据x=(x(1),x(2),...x(m))x=(x(1),x(2),...x(m))中,找出样本的模型参数θθ, 极大化模型分布的对数似然函数如下:
如果我们得到的观察数据有未观察到的隐含数据z=(z(1),z(2),...z(m))z=(z(1),z(2),...z(m)),此时我们的极大化模型分布的对数似然函数如下:
上面这个式子是没有 办法直接求出θθ的。因此需要一些特殊的技巧,我们首先对这个式子进行缩放如下:
上面第(1)式引入了一个未知的新的分布Qi(z(i))Qi(z(i)),第(2)式用到了Jensen不等式:
或者说由于对数函数是凹函数,所以有:
此时如果要满足Jensen不等式的等号,则有:
由于Qi(z(i))Qi(z(i))是一个分布,所以满足:
从上面两式,我们可以得到:
如果Qi(z(i))=P(z(i)|x(i),θ))Qi(z(i))=P(z(i)|x(i),θ)), 则第(2)式是我们的包含隐藏数据的对数似然的一个下界。如果我们能极大化这个下界,则也在尝试极大化我们的对数似然。即我们需要最大化下式:
去掉上式中为常数的部分,则我们需要极大化的对数似然下界为:
上式也就是我们的EM算法的M步,那E步呢?注意到上式中Qi(z(i))Qi(z(i))是一个分布,因此∑z(i)Qi(z(i))logP(x(i),z(i)|θ)∑z(i)Qi(z(i))logP(x(i),z(i)|θ)可以理解为logP(x(i),z(i)|θ)logP(x(i),z(i)|θ)基于条件概率分布Qi(z(i))Qi(z(i))的期望。
至此,我们理解了EM算法中E步和M步的具体数学含义。
2. EM算法流程
现在我们总结下EM算法的流程。
输入:观察数据x=(x(1),x(2),...x(m))x=(x(1),x(2),...x(m)),联合分布p(x,z|θ)p(x,z|θ), 条件分布p(z|x,θ)p(z|x,θ), 最大迭代次数JJ。
1) 随机初始化模型参数θθ的初值θ0θ0。
2) for j from 1 to J开始EM算法迭代:
a) E步:计算联合分布的条件概率期望:
b) M步:极大化L(θ,θj)L(θ,θj),得到θj+1θj+1:
c) 如果θj+1θj+1已收敛,则算法结束。否则继续回到步骤a)进行E步迭代。
输出:模型参数θθ。
下面我们举一个生活的例子来说明一下:
背景:公司有很多领导=[A总,刘总,C总],同时有很多漂亮的女职员=[小甲,小章,小乙]。(请勿对号入座)你迫切的怀疑这些老总跟这些女职员有问题。为了科学的验证你的猜想,你进行了细致的观察。于是,
观察数据:
1)A总,小甲,小乙一起出门了;
2)刘总,小甲,小章一起出门了;
3)刘总,小章,小乙一起出门了;
4)C总,小乙一起出门了;
收集到了数据,你开始了神秘的EM计算:
初始化,你觉得三个老总一样帅,一样有钱,三个美女一样漂亮,每个人都可能跟每个人有关系。所以,每个老总跟每个女职员“有问题”的概率都是1/3,即θ的初始值为1/3;
这样,(E step:以θ=1/3为初始概率分布模型)
1) A总跟小甲出去过了 1/2 * 1/3 = 1/6 次,跟小乙也出去了1/6次;(所谓的fractional count)
2)刘总跟小甲,小章也都出去了1/6次
3)刘总跟小乙,小章又出去了1/6次
4)C总跟小乙出去了1/3次
总计,A总跟小甲出去了1/6次,跟小乙也出去了1/6次 ; 刘总跟小甲,小乙出去了1/6次,跟小章出去了1/3次;C总跟小章出去了1/3次;
你开始跟新你的八卦了(M step:利用E step得出的数据,进行似然估计,求解L(θ)的最大似然估计值,更新θ值),
A总跟小甲,小乙有问题的概率都是1/6 / (1/6 + 1/6) = 1/2;
刘总跟小甲,小乙有问题的概率是1/6 / (1/6+1/6+1/6+1/6) = 1/4; 跟小章有问题的概率是(1/6+1/6)/(1/6 * 4) = 1/2;
C总跟小乙有问题的概率是 1。
然后,你有开始根据最新的概率计算了;(E-step:以新的θ值为概率分布模型去计算期望值)
1)A总跟小甲出去了 1/2 * 1/2 = 1/4 次,跟小乙也出去 1/4 次;
2)刘总跟小甲出去了1/2 * 1/4 = 1/12 次, 跟小章出去了 1/2 * 1/2 = 1/4 次;
3)刘总跟小乙出去了1/2 * 1/4 = 1/12 次, 跟小章又出去了 1/2 * 1/2 = 1/4 次;
4)C总跟小乙出去了1次;
重新反思你的八卦(M-step:再次更新θ值):
A总跟小甲,小乙有问题的概率都是1/4/ (1/4 + 1/4) = 1/2;
B总跟小甲,小乙是 1/12 / (1/12 + 1/4 + 1/4 + 1/12) = 1/8 ; 跟小章是 3/4 ;
C总跟小乙的概率是1。
不断的迭代E step 和 M step ,until θ 值收敛