EM算法的学习

        EM算法是一种迭代算法,用于求含有隐变量的概率模型参数的极大似然估计,用简单粗暴的语言来解释,就是求参数的值,也就是求解的一个过程,但参数的求解中,与普通的简单的参数的求解不同,是一种带有隐变量(hidden variable)的模型的参数求解的方法。来解读EM算法,首先是E,期望(Expectation),其次是M,最大(Maximization),所以这一算法称为期望极大算法(expectation),简称EM算法。

         为什么会有EM算法?主要解决的什么问题?概率模型有时既含有观测变量,也含有隐含变量,如果只含有观测变量,那么给定数据,我们可以直接利用最大似然估计或贝叶斯估计(参数为1时为拉普拉斯估计)来得到变量的解。但如果概率模型中含有隐变量,则不能直接的通过估计来进行求解,也就是我们需要通过EM算法来继续解决,得到这个变量的估计值。换句话来说,EM算法就是含有隐变量的概率模型参数的极大似然估计法。极大后验概率估计方法同样类似。我们现在考虑EM算法中的最基本的问题框架,我们现在有A,B,C三枚硬币,我们根据抛得A硬币得情况来决定B,C得选择,然后记录B,C的情况来作为我们的观测情况。(最关键的是熟悉这种写法,也就是熟悉数学推导的过程)


         此时Y是观测随机变量数据,Z是隐随机变量数据,Y和Z连在一起称为完全数据(Complete-data),Y称为不完全数据(incomlete-data),EM算法是求log(P(Y|theta))最大时的参数估计方法,是一种极大似然估计方法。

          EM算法的数学可以说很简练,很整洁了,但为什么会无缘无故的出现一个Q函数,也是很神奇的,为什么的求出那个式子然后求最大化,然后就可以得到参数的更新了,也可以说是一个很神奇的事情。所以,我们现在来看看这个神奇的事情是怎么推出来的。


         迭代的思路,只要朝着前进的方向走就行了,只要不断前进就行,有时不一定得到最优的解,可能陷入局部最优的方法,但这种是真的可以提高解决思路,也就是给了你思考的空间。可以用这种思路来求解比较难的问题呢。

          EM算法也可以用于非监督学习中,也就是认为训练数据是观测数据,而训练数据未存在的标签则认为是未观测数据,然后可以认为非监督学习训练数据是联合概率分布产生的数据。

          我们从EM算法的求解和推导过程可以看出,EM算法不一定可以得到最优解,那么EM算法到底收敛性是怎么样的,我们现在来对他进行一下推导。我们通过不断的迭代得到参数值,而在这些参数的前提下的最大似然估计是不断增大的过程,也就是对于有上界的概率分布,则其对数似然收敛,这是EM算法第一层的意思。对于Q函数以及对数似然函数满足一定的条件(一般情况下都满足),参数估计会收敛到一个稳定点,但稳定点不一定就是最优点,也不一定是极值点,这是EM算法收敛的第二层意思,也就是参数的收敛性。一般采用EM算法,都会选择几个不同的初值进行迭代,然后从中选择最好的。


         EM算法一个很重要的应用是在高斯混合模型(Gaussian misture model)学习中的应用。EM算法是求解高斯混合模型的一个很有效的方法。(我觉得真的晦涩难懂,有时候真的静不下心来慢慢对公式进行推导。。哎,调整,调整)

扫描二维码关注公众号,回复: 3192046 查看本文章

         高斯,说明每一个分的子模型是高斯分布,混合,说明不是一种模型,而是多个模型的叠加。我们首先分析问题的时候,需要把问题进行分解,然后我们得到我们的问题的观测数据以及隐变量,我们首先根据定义需要计算Q函数,而Q函数中,我们需要用到完全数据的联合概率分布,然后对隐变量的条件概率求均值,然后求Q函数表达式的最大时的参数值,直到收敛,就结束。


          混合高斯分布,跟之前举的例子时类似的,也是现求选择哪个模型的概率分布均值的情况,然后再计算各个情况下的最大值的情况,最终变化不大的条件下,结束。

          EM算法还可以解释为F函数的极大-极大算法(maximization-maximization algorithm), 然后也有新的变形,如广义期望极大算法(generalized expectation maximization)。

          


           【总结】EM算法是对于含有隐变量的概率模型的对数极大似然估计方法。我们求解的目标是极大化对数似然函数的参数求解,然后根据这个目标,我们提出了一个Q函数,可以等价的度量极大化似然函数,我们对求出的Q函数,先求出其中的隐变量的期望,然后得到的表达式, 求Q函数取值取到最大时候的参数,然后不断的迭代,最终得解。我们的求解方法有了,但这种方法的正确性如何保证,我们证明了收敛性,但EM算法的收敛性包括二个方面,第一个是对数似然函数的收敛性,第二个是参数的收敛性。我们对方法进行了扩展,然后寻找到了F函数,这是对与Q函数的扩展,但同时也可以转换为Q函数的求解过程,在F函数的求解中,固定一个,求另一个,然后再固定另一个,求一个。

猜你喜欢

转载自blog.csdn.net/angela2016/article/details/80791309