整理自李航老师的《统计学习方法》一书
1、引言
概率模型有时既含有观测变量,又含有隐变量或潜在变量,如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法估计模型参数,但是,当模型中含有隐变量时,就不能简单的使用这些方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。
2、三硬币模型描述
三硬币问题是这样的:
假设有三枚硬币,分别记为A、B、C。这些硬币正面的概率分别为π,p,q,进行如下的抛硬币实验:先掷硬币A,根据其结果选出硬币B或者硬币C,正面选硬币B,反面选硬币C,然后掷选出的硬币,掷硬币的记过,出现正面记作1,出现反面记作0,独立地重复n次实验(这里n=10),然后观测结果如下:
1,1,0,1,0,0,1,0,1,1
假设只能观测到掷硬币的结果,不能观测掷硬币的过程,问如何估计三硬币正面出现的概率,即三硬币模型的参数π,p,q。
3、三硬币问题表示
三硬币模型可以写作:
这里随机变量y是观测变量,表示一次实验观测的结果是1或0,随机变量z是隐变量,表示未观测到的掷硬币A的结果,θ=(π,p,q)是模型参数,这一模型是以上数据的生成模型。再提醒一次,随机变量y的数据可以观测,随机变量z的数据不可观测。上式的意思即在θ的前提下出现y的概率等于在θ的前提下y和z的联合分布中y的边缘分布。
将观测数据表示为Y,未观测数据表示为Z,则观测数据的似然函数是:
在该问题中,似然函数展开为
考虑求模型参数θ=(π,p,q)的极大似然估计,即:
这个问题没有解析解,只有通过迭代方法求解,EM算法就是可以用于求解这个问题的一个迭代算法,下面给出求解这个问题的EM算法过程。
4、EM算法求解三硬币模型
EM算法首先选取参数的初值,然后通过下面的步骤迭代计算参数的估计址,直到收敛为止。EM算的第i+1次迭代过程如下:
我们带入具体的数值:
选取不同的初值,最后得到的收敛结果可能是不一样的,不信你可以试一下。
5、EM算法步骤
一般的,用Y表示观测随机变量的数据,Z表示隐随机变量的数据,Y和Z连在一起称为完全数据,只有观测数据Y称为不完全数据,假设给定观测数据Y,其概率分布为P(Y|θ),那么不完全数据的似然函数就是P(Y|θ),对数似然函数是L(θ) = log(P(Y|θ)),假设Y和Z的联合概率分布是P(Y,Z|θ),那么完全数据的对数似然函数是logP(Y,Z|θ)。
EM算法通过迭代求L(θ) = log(P(Y|θ))的极大似然估计,每次迭代包括两步:E步,求期望,M步,求最大化,下面介绍EM算法的步骤: