EM算法
原文链接:https://www.cnblogs.com/zdz8207/p/DeepLearning-em-gosimix.html
本文经过一定修改,个人认为原文中存在符号混用情况,对Q函数的角码使用不太清晰,容易晕
假设训练集是由m个独立的样本构成。我们的目的是要对概率密度函数进行参数估计。它的似然函数为:
然而仅仅凭借似然函数,无法对参数进行求解。因为这里的随机变量是未知的。
EM算法提供了一种巧妙的方式,可以通过逐步迭代逼近最大似然值。下面就来介绍下EM算法:
假设对于所有j,为随机变量的第j个分布函数(在此时i为固定量即:。那么:
其中第(2)步至第(3)步的推导就使用了Jensen不等式。其中:f(x)=log x,,因此为凸函数;表示随机变量为概率分布函数为的期望。因此有:
这样,对于任意分布,(3)都给出了的一个下界。如果我们现在通过猜测初始化了一个的值,我们希望得到在这个特定的下,更紧密的下界,也就是使等号成立。根据Jensen不等式等号成立的条件,当为一常数时,等号成立。即:
上述等式最后一步使用了贝叶斯公示。最后一个公式表示第i个样本属于隐含变量的第j个分布的概率
结论:得出了Q函数公式,在EM算法中可以直接使用,
EM算法有两个步骤:
(1)通过设置初始化值,求出使似然方程最大的值,此步骤称为E-步(E-step)
(2)利用求出的值,更新。此步骤称为M-步(M-step)。过程如下:
repeat until convergence{
(E-step) for each i, set
(M-step) set