EM算法

EM算法,即最大期望算法(Expectation-maximization algorithm),是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型 依赖于无法观测的隐性变量
最大期望算法经过两个步骤交替进行计算,
第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;
第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。
多数情况下我们是根据已知条件来推算结果,而最大似然估计是已经知道了结果,然后寻求使该结果出现的可能性最大的条件,以此作为估计值。似然描述的是结果已知的情况下,该事件在不同条件下发生的可能性,似然函数的值越大说明该事件在对应的条件下发生的可能性越大。

算法推导

对于(m)个样本观察数据({x^{(1)},x^{(2)},x^{(3)}…,x^{(m)}}),找出样本的模型参数(θ), 极大化模型分布的对数似然函数如下

[egin{aligned} θ={argmax}_θ sum_i log⁡ {P(x^i;θ)} end{aligned} ]

如果我们得到的观察数据有未观察到的隐含数据(z={z^{(1)},z^{(2)},z^{(3)}…,z^{(m)}}),此时我们的极大化模型分布的对数似然函数如下:

[θ={argmax}_θ sum_i log {P(x^i; heta)}={argmax}_θ sum_i log sum_z {p(x^i,z^i; heta)} ]

第一步是对极大似然取对数,第二步是对每个样例的每个可能类别(z)求联合分布概率和。
首先,我们把分子分母同乘以一个相等的函数(即隐变量(Z)的概率分布(Q_i {(z^{(i)})}),其概率之和等于1,即(sum_z Q_i {(z^{(i)})}=1)。其次,利用Jensen不等式(即,在凸函数中,有函数的期望大于等于期望的函数,即(E[f(X)]>=f(E[X]));当(f)是(严格)凹函数当且仅当(-f)是(严格)凸函数,不等号方向反向),我们将上式进行缩放,可得:

[egin{aligned} sum_i log p(x^{(i)}; heta)=sum_t log sum_{z^{(i)}} p(x^{(i)},z^{(i)}; heta) \ =sum_i log sum_{z^{(i)}} Q_i {(z^{(i)})} frac{p(x^{(i)},z^{(i)}; heta)}{Q_i {(z^{(i)})}} \ geq sum_i sum_{z^{(i)}} Q_i {(z^{(i)})} log frac{p(x^{(i)},z^{(i)}; heta)}{Q_i {(z^{(i)})}} end{aligned} ]

其中(sum_{z^{(i)}} Q_i {(z^{(i)})} frac{p(x^{(i)},z^{(i)}; heta)}{Q_i {(z^{(i)})}})就是(frac{p(x^{(i)},z^{(i)}; heta)}{Q_i {(z^{(i)})}})的期望,(log)函数为凹函数(其二次导数为(frac{−1}{x^2}<0))。
此时如果要满足Jensen不等式的等号,则有:

[frac{p(x^{(i)},z^{(i)}; heta)}{Q_i {(z^{(i)})}}=c,c为常数 ]

对该式做个变换,并对所有的z求和,得到

[sum_z p(x^{(i)},z^{(i)}; heta)=sum_z Q_i {(z^{(i)})}c ]

由于(Q_i {(z^{(i)})})是一个分布,所以满足$sum_z Q_i {(z^{(i)})}=1 $
可得:

[sum_z p(x^{(i)},z^{(i)}; heta) = c \ Q_i {(z^{(i)})}=frac{p(x^{(i)},z^{(i)}; heta)}{c}= frac{p(x^{(i)},z^{(i)}; heta)}{sum_z p(x^{(i)},z^{(i)}; heta)}=frac{p(x^{(i)},z^{(i)}; heta)}{p(x^{(i)}; heta)} = p(z^{(i)}|x^{(i)}; heta) ]

至此,我们推出了在固定参数(θ)后,使下界拉升的(Q_i {(z^{(i)})})的计算公式就是条件概率,解决了(Q_i {(z^{(i)})})如何选择的问题。这一步就是E步,建立(L(θ))的下界。接下来的M步,就是在给定(Q_i {(z^{(i)})})后,调整(θ)

[egin{aligned} {argmax}_θ sum_i sum_{z^{(i)}} Q_i {(z^{(i)})} log frac{p(x^{(i)},z^{(i)}; heta)}{Q_i {(z^{(i)})}} end{aligned} ]

去掉上式中为常数的部分,则我们需要极大化的对数似然下界为:

[egin{aligned} {argmax}_θ sum_i sum_{z^{(i)}} Q_i {(z^{(i)})} log {p(x^{(i)},z^{(i)}; heta)} end{aligned} ]

上式也就是我们的EM算法的M步。

EM算法能保证收敛吗?如果收敛,那么能保证收敛到全局最大值吗?

要证明EM算法收敛,则我们需要证明我们的 对数似然函数的值在迭代的过程中一直在增大。

[sum_{i=1}^m log {P(x^i; heta^{j+1})} geq sum_{i=1}^m log {P(x^i; heta^{j})} ]

由于:

[L( heta; heta^{j})=sum_{i=1}^m sum_{z^i} P(z^{(i)}|x^i; heta^j) log P(x^{(i)},z^{(i)}; heta) ]

令:

[H( heta; heta^{j})=sum_{i=1}^m sum_{z^i} P(z^{(i)}|x^i; heta^j) log P(z^{(i)}|x^i; heta^j) ]

上两式相减得到:

[sum_{i=1}^m log P(x^i; heta)=L( heta; heta^{j})-H( heta; heta^{j}) ]

在上式中分别取(θ)(θ^j)(θ^(j+1)),并相减得到

[sum_{i=1}^m log P(x^i; heta^{j+1})-sum_{i=1}^m log P(x^i; heta^{j})=[L( heta^{j+1}; heta^{j})-L( heta^{j}; heta^{j})]-[H( heta^{j+1}; heta^{j})-H( heta^{j}; heta^{j})] ]

要证明EM算法的收敛性,我们只需要证明上式的右边是非负的即可。
由于(θ^{j+1})使得$ L(θ,θ^j )$极大,因此有:

[L( heta^{j+1}; heta^{j})-L( heta^{j}; heta^{j}) geq 0 ]

而对于第二部分,我们有:

[egin{aligned} H( heta^{j+1}; heta^{j})-H( heta^{j}; heta^{j})=& sum_{i=1}^m sum_{z^i} P(z^{(i)}|x^i; heta^j) log frac {P(z^{(i)}|x^i; heta^{j+1}) }{P(z^{(i)}|x^i; heta^{j}) } \ leq &sum_{i=1}^m log (sum_{z^i} P(z^{(i)}|x^i; heta^{j}) frac{P(z^{(i)}|x^i; heta^{j+1})}{P(z^{(i)}|x^i; heta^{j})}) \ =& sum_{i=1}^m log (sum_{z^i} P(z^{(i)}|x^i; heta^{j+1}))=0 end{aligned} ]

其中第2式用到了Jensen不等式,只不过和之前使用相反而已,第3式用到了概率分布累积为1的性质。
至此,我们得到了

[sum_{i=1}^m log {P(x^i; heta^{j+1})} - sum_{i=1}^m log {P(x^i; heta^{j})} geq 0 ]

证明了EM算法的收敛性。从上面的推导可以看出,EM算法可以保证收敛到一个稳定点,但是却不能保证收敛到全局的极大值点,因此它是局部最优的算法,当然,如果我们的优化目标(L(θ,θ^j))是凸的,则EM算法可以保证收敛到全局最大值,这点和梯度下降法这样的迭代算法相同。如果我们从算法思想的角度来思考EM算法,我们可以发现我们的算法里已知的是观察数据,未知的是隐含数据和模型参数,在E步,我们所做的事情是固定模型参数的值,优化隐含数据的分布,而在M步,我们所做的事情是固定隐含数据分布,优化模型参数的值。比较下其他的机器学习算法,其实很多算法都有类似的思想。比如SMO算法,坐标轴下降法(Lasso回归算法), 都使用了类似的思想来求解问题。

原文地址:https://www.cnblogs.com/hellojamest/p/10907151.html