[机器学习算法详解]EM算法—以词集文本分类问题为例
一、问题介绍
概率分布模型中,有时只含有可观测变量,如单硬币投掷模型,对于每个测试样例,硬币最终是正面还是反面是可以观测的。而有时还含有不可观测变量,如三硬币投掷模型。问题这样描述,首先投掷硬币A,如果是正面,则投掷硬币B,如果是反面,则投掷硬币C,最终只记录硬币B,C投掷的结果是正面还是反面,因此模型中硬币B,C的正反是可观测变量,而硬币A的正反则是不可观测变量。这里,用Y表示可观测变量,Z表示(隐变量)不可观测变量,Y和Z统称为完全数据,Y成为不完全数据。对于文本分类问题,未标记数据的自变量为可观测变量Y,未标记数据为观测到的类别标签为隐变量Z。
一般的只含有可观测变量的概率分布模型由于先验概率分布是可以通过可观测的类别标签来求得(对应文本分类问题中每个类别的数据出现的概率),而条件概率分布是可以通过可观测的类别标签以和可观测的样本自变量中特征来求得(对应文本分类问题中已知类别的前提下某个单词是否出现的概率),因此通过朴素贝叶斯法就可以对概率模型求解。但是如果模型中存在隐变量,那么朴素贝叶斯法则不能使用,因为先验概率分布和条件概率分布无法直接求得,因此提出一种用迭代方式进行的对不完全数据进行极大似然估计的方法——期望最大化算法(EM算法),接下来将对算法进行详细的证明和解释。
二、算法详解
1. 极大化似然函数
由于能观测到的数据只有不完全数据Y,因此对参数进行极大似然估计。
对Z前提下Y的概率分布可以理解为每个类别确定后Y的概率模型。如果是高斯混合模型,那么类别确定之后,自变量应该符合高斯分布,如果是文本分类模型,那么类别确定之后,自变量应该符合条件概率分布(自变量是特征的集合,由于所有特征都是条件独立的,因此联合分布就是各个特征的分布连乘在一起,每个特征满足两点分布,那么自变量应该满足连乘的两点分布)。对Z的先验概率分布可以理解为每个类别出现的比例,即每个类别的先验概率。不完全数据的Z是无法观测的,因此难点就在于确定条件概率分布和先验概率分布。
加入关于Z的分布Q(Z),利用Jensen不等式,证明过程见博客 《EM算法似然函数的推导》,最后求出似然函数的下限函数为
这里B的两个参数表示不同含义,前一个参数表示Z的后验概率分布的参数空间,后一个参数表示完全数据的联合分布。
2. 收敛性分析
现在最大化似然函数L,可以先求似然函数L的下限函数B,然后找出下限函数B的极大值点,那么该点一定也使似然函数L更靠近其极大值点,通过迭代的步骤,就可以不断逼近L的极值点。如下图EM算法迭代
首先用先验启动知识对Z的后验概率进行初始化,即用已标记数据及计算出Y前提下Z的概率分布,因此可获得
P(Z∣Y,θ(0))
,这样在初始点(自变量是参数空间,应变量是似然函数值)的下限函数就可以求出,当迭代到第t步时求出下限函数为
B(θ(t),θ)
在t这一点,似然函数L和其下限函数相等
L(θ(t))=B(θ(t),θ(t))
。这时对B求极大值,可以获得迭代的下一步的参数
那么这点的似然函数值必然大于其下限函数,因此,可以得出Y收敛的不等式说明,即
证明过程见博客 《EM算法收敛性的推导》。
3. 算法流程
EM算法的流程分为两步,分别是E(期望)步和M(最大化)步。E步主要是求出当前的下限函数B,由于B是通过期望推导出的,所以称为期望步骤,M步主要是求出当前下限函数B的极大值,然后将这点的参数带入似然函数,所以称为最大化步,因此算法流程如下:
1. 利用预先知识,求出隐变量的后验概率分布,获得参数空间的初始值θ(0)来启动EM算法。
2. E步,求期望
Ez[logP(Z,Y∣θ)∣Y,θ(t)]
3. M步,最大化期望,求出新的参数值
θ(t+1)
4. 迭代2、3步直至收敛或固定的迭代次数
三、实验
对于文本分类问题,首先求出类别的后验概率分布,就是使用朴素贝叶斯法,先求出先验概率分布和条件概率分布,这样就能作为初始的参数空间θ(0),然后根据E步,利用参数空间对未标记数据进行分类,获得未标记数据的标签,这样求出了Y和初始参数前提下完全数据的联合分布的期望,然后根据M步,利用已标记数据和未标记数据刚刚标记好的类别作为完全数据求解先验概率分布和条件概率分布作为新的参数空间,迭代多次或至收敛,获得的参数空间就是最大似然的参数空间,以此对测试数据进行分类。