泛统计理论初探——EM算法简介
统计学习-EM算法简介
EM算法简介
本文将会介绍EM算法,EM算法又称为最大期望算法,EM算法的中文名称是Expectation-Maximization algorithm ,该算法是由不停迭代的期望步骤、最大化步骤反复交替形成的。
从本质上来说,EM算法不是一种数据挖掘方法或者真正的机器学习算法,它属于一种求解思路,或者是一种迭代的算法。该算法是建立在极大似然方法的基础上的,它本质上是解决一类含有隐变量的参数估计问题。
在普通的参数估计下,比如现在有一组欧洲人的身高数值,又假设这些欧洲人的身高数据符合正态分布,那么使用极大似然估计方法就可以估计出均值和标准差,从而刻画出整个欧洲人身高数据的分布,最终大致掌握欧洲人身高的分布情况。如果现在有两组欧洲人的身高数据,一组数据全部是女人的身高数据,另一组数据全部是男人身高的数据,那么依旧使用极大似然估计方法去分别估计两组数据对应的均值和标准差即可。但是现在把这两组数据进行混合以后,直接采用极大参数估计方法可能就不太好了,所以需要使用EM算法进行参数的估计。
根据上述的公式可以发现,对数极大似然是由观测变量X和隐变量Z的共同分布所构成的,而经过Jensen不等式的放缩后,可以将之前的式子转化为一个不等式,而不等式右侧的L函数就是我们要进行求解的函数,当寻找到L函数的极大值后,即确定了1个原始数据分布上的值(1个点),由此进行反复迭代后,就可以刻画出原始数据的大致的分布。
下面使用抛硬币的例子来进行EM算法步骤的模拟,假设有两种硬币U和V,它们的大小、花纹、质量不相同,每轮次只用其中一种硬币去抛投,并且每轮次都是抛4次,总共抛出5轮次,记录硬币的正反面如下。由于EM算法是首先假定一个初始值,然后慢慢去逼近反复迭代,所以我们这边假设硬币U抛出正面的概率是P(U)=0.6 ,硬币V抛出正面的概率是P(V)=0.3
第n次 | 真实情况 | 如果是硬币U | 如果是硬币V |
---|---|---|---|
1 | 正反正反 | 0.6x0.4x0.6x0.4=0.0576 | 0.30.70.3*0.7=0.0441 |
2 | 正正正反 | 0.6x0.6x0.6x0.4=0.0864 | 0.3x0.3x0.3x0.7=0.0189 |
3 | 反正反反 | 0.4x0.6x0.4x0.4=0.0384 | 0.7x0.3x0.7x0.7=0.1029 |
4 | 正正正正 | 0.6x0.6x0.6x0.6=0.1296 | 0.3x0.3x0.3x0.3=0.0081 |
5 | 反反反反 | 0.4x0.4x0.4x0.4=0.0256 | 0.7x0.7x0.7x0.7=0.2401 |
那么根据极大似然估计,也就是比较表格里每一次的如果是硬币U或是硬币V的较大值,得到Z=(U,U,V,U,V)
那么通过这个Z值再去重新估计P(U)和P(V) ,得到
P(U)=(2+3+4)/12=0.75
P(V)=(1+0)/8=0.125
假设PU和PV的真实值分别是0.8和0.1,即PU和PV的值在更新后,它们的值是越来越接近于真实值,如果继续重复上述步骤就可以不断逼近真实值,以上就是EM算法的步骤,不断迭代。
根据上述的例子,我们可以发现EM算法的初始值设置非常重要,可能会影响最终的估计,特别是当高维的情况下,EM算法可能由于初始值的设定而最终收敛在一个局部最优点。实际上EM算法解决的就是常规的极大似然方法无法解决的那类问题,即含有隐藏变量的情况,所以EM的学习还是有利于初学者加深对极大似然方法的理解。
另外,其实EM算法的使用场景是比较多的,比如隐马尔可夫模型和高斯混合模型的参数求解都会使用到EM算法或是其优化的版本,因为EM算法本质上是对极大似然方法的一种扩展,可以适用于隐藏变量存在的情况,实际上不管是经济问题或者自然语言处理问题上,都会有一些隐藏变量,所以使用EM算法是比较合理的参数估计方法,初学者要熟练掌握这种方法。