期望值最大化算法

一,最大似然估计与隐变量

期望值最大化算法是用来对包含隐变量的样本点的分布函数的参数估计方法。在参数估计中常常通过最大似然函数进行估计,由于隐变量的存在,不能直接求解这个最大似然函数,期望值最大化算法就是将这个最大似然函数的求解问题转化为求解其下界的最大值的问题,通过一个求隐变量的分布的“期望值”步骤和一个求似然函数最大化的“最大值”步骤完成。

假如有一批训练样本Xi (i=1,2,..I),这批样本服从参数为 \theta 的分布,要估计 \theta的值,可以通过求解如下似然函数的最大值进行:

《期望值最大化算法》(1)

如果Xi的分布函数仅仅依赖于\theta, 就可以写出 p(x|theda)的表达式,这个最优化问题可以直接求解。

现在的情况是Xi的分布函数不仅依赖于\theta,还依赖于另一个变量h, 每一个样本Xi都对应着h的一个值,h本身服从一个未知的分布。实际上 x和h的联合分布是以theta作为参数的,而p(x|theda)是这个联合分布的边缘分布:

《期望值最大化算法》(2)

因此现在的似然函数就变为:

《期望值最大化算法》(3)

二,期望值最大化的原理

期望最大化求解上述似然函数的中心思想是为了回避直接求解这个函数的困难,转而求解它的一个下界函数B(theda)的最大值。这个下界函数要保证始终不大于原函数,并且通过精心的选择,以使得求解这个下界函数的最优化参数相当容易。考虑到隐变量h的分布函数qi(hi)未知,要估计的参数theta未知,这个下界函数是关于qi(hi)和theta的函数,其定义如下:

《期望值最大化算法》(4)

上面的不等式是根据Jensen不等式得出的。Jensen不等式为E(f(x))=<f(E(x)),其中E()表示期望值,f(x)是一个凹函数,因为log函数是一个凹函数,可推导出上式。

得到这个下界函数后要使其最大化,分为两个迭代的步骤进行,第一个步骤称为“期望值(E)”步骤,求qi(hi)的最优化参数,第二个步骤称为“最大化”(M)步骤,求theta的最优化参数。

E步骤

对公式(4)进行变换可得,

《期望值最大化算法》(5)

其中第一项与qi(hi)无关,因此qi(hi)的最优化参数为:

《期望值最大化算法》(6)

上式把最大化问题转化为最小化问题。根据log(y)<=y-1,可得

《期望值最大化算法》7)

上式取得最优值即等号满足的条件是《期望值最大化算法》,在给定的theta和Xi的条件下计算方法如下:

《期望值最大化算法》(8)

利用上式对每一个样本的隐变量hi所有可能存在的取值进行计算,可得到这些隐变量的分布函数。其中分母通过全概率公式计算得到。

M步骤

这一步算theta的最优值。

《期望值最大化算法》(9)

上式再根据具体的问题中xi与hi的联合密度函数展开求最优值。

三,高斯混合模型的参数估计

高斯混合模型的参数为《期望值最大化算法》,分别是各个高斯分布的比重,均值和方差,可通过EM进行估计。这里的隐变量的含义就是各个样本所属的高斯分布编号即类别,每一个类别表示一个高斯分布。在所得到的样本中只知道各样本的特征值xi,而不知道该样本所属的类别hi。此处的问题就是如何利用这些未知类别标号的样本来估计高斯混合分布的参数。

在E步骤中,计算各个样本分别属于各个类别的概率,得到该样本的类别,即隐变量的分布函数:

《期望值最大化算法》(10)

在M步骤中,求参数的最优值,公式(9)变为:

《期望值最大化算法》(11)

可以通过对参数求导得到其最优值,结果为:

《期望值最大化算法》(12)

以上E和M步骤交替进行,直到收敛。

    原文作者:飞跃重洋的思念
    原文地址: https://blog.csdn.net/taigw/article/details/50277243
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞