概述
EM算法迭代地通过E步和M步求解含隐变量的模型的参数,可以使用极大似然估计法,也可以使用贝叶斯估计法。
术语
三硬币模型:假设有3枚硬币A,B,C,正面出现的概率分别为a,b,c.进行如下抛硬币试验:先掷硬币A,根据其结果选出硬币B或C,正面选A,反面选B;然后抛掷选出的硬币,记录掷硬币的结果,正面为1,反面为0。独立重复n次试验。
观测变量:概率模型中可以观测到的随机变量。比如朴素贝叶斯模型中的输入X(待分类文本等),上面例子中的最后掷硬币的结果.常用Y表示观测变量的数据
隐变量(潜在变量):概率模型中观测不到的随机变量,比如上面例子中的掷硬币A的结果,常用Z表示隐变量的数据
完全数据:Y和Z连在一起称为完全数据
不完全数据:只有Y
EM算法
预备知识
Jensen不等式:
若f(x)是凸函数,有
直觉理解就是凸函数任意两点的割线位于函数图形上方
若对于任意点集 ,若 且 ,有
推导
我们面对一个含有隐变量的概率模型,目标是极大化观测数据(不完全数据)Y关于参数的对数似然函数,即极大化
由于优化函数中含未观测数据并包含和的对数,所以直接优化很难。
考虑迭代优化,假设在第i次迭代后的估计值为,我们希望下次迭代新的估计值能够使,一直迭代直到得到极大值。考虑两者的差
令,
则,即函数是函数的一个下界【不同迭代B函数不同,随着迭代的增加B函数越接近L】,因此任何可以使增大的也可以使增大。为了使有尽可能大的增长,选择使达到极大,即
上式中最优化的函数称为Q函数,不断迭代这个过程直到收敛就得到了使似然函数近似极大的参数。
正式定义
EM算法通过迭代最大化似然函数,每次迭代分为两步:E步,求期望;M步,求极大化。具体过程如下:
选择参数初值,开始迭代;
E步:计算Q函数
M步:求使Q函数极大化的,确定i+1次迭代的参数估计值:
迭代至收敛。
说明
EM算法可以任意初始化参数初值,但是对初值敏感,实践中经常取多个不同的初始值并进行比较,选择较好的初始值。
当参数值的变化或Q函数的变化小于某个阈值时,停止迭代。
EM算法无法保证得到全局最优值,这也是选取多个初始值比较的根本原因
上面Q函数是对于单次试验的期望,对于多次试验可以求多次试验的期望和作为Q函数(使用求积表示似然函数)
解决三硬币问题
假设三硬币模型最后观察到的结果是1101001011,求abc。
令Z为抛掷硬币A的结果,Y为最后的观察结果。对一次实验,有
计算Q函数
求多次试验的Q函数,有
求导数,有
有
同理有
令,有
令,有
高斯混合模型
高斯混合模型为
,
其中是分模型系数,,是高斯分布密度,,
。高斯混合模型认为数据是这样生成的:首先依概率选择分模型,然后根据选择的分模型生成数据。包含隐变量“选择的分模型”,可以通过EM算法估计高斯混合模型的参数
和K-means聚类的关系
【待】