接前文。
6. 高斯混合模型的EM算法
前文讲到,不完全数据集
其中,响应度
虽然(1)式不是闭式解,但是我们可以根据(1)式,通过迭代的方法来计算参数
EM算法(Expectation-Maximization algorithm)是就是这样一种用于计算含有隐变量的模型的极大似然解的强大方法。
下面简述用EM算法来计算高斯混合模型参数的步骤:
1. 初始化:给参数均值向量
* 注:可以用K均值聚类(K-means clustering)算法来得到初始参数。
2. E步(Expectation step):用当前参数值
3. M步(Maximization step):用当前响应度
其中,
在M步中,先计算
4. 用新的参数
然后检查是否收敛。(当然,也可直接检查参数是否收敛。)
如果收敛,则得到了模型参数;如果还没收敛,则返回第2步继续迭代。
参考文献[1], Section9.2, Page437指出,E步+M步可以保证对数似然函数的上升。不过需要注意的是,作为一种迭代算法,EM算法有可能收敛到局部最大值(local maximum)。
7. 换个角度看高斯混合模型的EM算法
在前面的极大似然估计中,我们的目标函数是不完全数据集
现在我们换个角度来看:假如我们也有隐变量的观测值
首先,一组完全数据
所以,整个完全数据集
(当然,我们假设每组数据相互独立。)
取对数得
可以看出,和不完全数据的对数似然函数
然而实际情况是,我们并不知道隐变量的观测值,即(2)式中的
其中,
也就是说,期望
将上式简记为
采用拉格朗日乘子法,拉格朗日函数为:
先对
所以,
进而,
同之前极大化
然后是对
回忆在文(一)中,我们求
对比(3)(4)两式,结合响应度
再来看
对比前文,可以发现
综上,通过极大化
这给了我们另一个角度来看EM算法在高斯混合模型中的应用,也有助于我们理解EM算法的一般形式。
8. EM算法的一般形式
对于含有隐变量的概率模型,记变量和(离散的)隐变量分别为
要计算
下面简述EM算法的一般形式:
1. 初始化模型参数
2. E步(Expectation step):计算隐变量的后验分布
* 对于高斯混合模型,这一步实际上就是计算响应度
3. M步(Maximization step):极大化完全数据的对数似然函数
得到相应的参数值
4. 检查对数似然函数或参数是否收敛,如果没收敛,则
回到第2步继续迭代;
如果已收敛,则得到了模型参数。
EM算法的每次循环可以使不完全数据集的对数似然函数上升,除非其已收敛到局部最大值(参考文献[1], Section9.3, Page440)。
参考文献
[1] Christopher M. Bishop. Pattern Recognition and Machine Learning, Springer, 2006.
[2] 李航,统计学习方法,清华大学出版社,2012年。