数据挖掘十大算法----EM算法(最大期望算法)

来源:互联网 发布:js给div设置高度 编辑:程序博客网 时间:2024/06/04 21:15

http://www.tuicool.com/articles/Av6NVzy


概念

在统计计算中,最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。

最大期望经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。

可以有一些比较形象的比喻说法把这个算法讲清楚。

比如说食堂的大师傅炒了一份菜,要等分成两份给两个人吃,显然没有必要拿来天平一点一点的精确的去称分量,最简单的办法是先随意的把菜分到两个碗中,然后观察是否一样多,把比较多的那一份取出一点放到另一个碗中,这个过程一直迭代地执行下去,直到大家看不出两个碗所容纳的菜有什么分量上的不同为止。(来自百度百科)

EM算法就是这样,假设我们估计知道A和B两个参数,在开始状态下二者都是未知的,并且知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。

EM 算法还是许多非监督聚类算法的基础(如 Cheeseman et al. 1988 ),而且它是用于学习部分可观察马尔可夫模型( Partially Observable Markov Model )的广泛使用的 Baum-Welch 前向后向算法的基础。

估计 个高斯分布的均值

介绍 EM 算法最方便的方法是通过一个例子。

考虑数据 是一实例集合,它由 个不同正态分布的混合所得分布所生成。该问题框架在下图中示出,其中 k =2 而且实例为沿着 轴显示的点。

      每个实例使用一个两步骤过程形成。

首先了随机选择 个正态分布其中之一。

其次随机变量 i 按照此选择的分布生成。

这一过程不断重复,生成一组数据点如图所示。为使讨论简单化,我们考虑一个简单情形,即单个正态分布的选择基于统一的概率进行选择,并且 个正态分布有相同的方差 σ ,且 σ 已知。

学习任务是输出一个假设 h =< μ 1 … μ > ,它描述了 个分布中每一个分布的均值。我们希望对这些均值找到一个极大似然假设,即一个使 P ( D | h ) 最大化的假设 h

注意到,当给定从一个正态分布中抽取的数据实例 x 1 , x 2 , …, m 时,很容易计算该分布的均值的极大似然假设。

其中我们可以证明极大似然假设是使 个训练实例上的误差平方和最小化的假设。

使用当表述一下式,可以得到:

 (公式一)

然而,在这里我们的问题涉及到 个不同正态分布的混合,而且我们不能知道哪个实例是哪个分布产生的。 因此这是一个涉及隐藏变量的典型例子 。

EM算法步骤

在上图 的例子中,可把每个实例的完整描述看作是三元组 < i i 1 , i 2 > ,其中 xi 是第 个实例的观测值, i 1 和 i 2 表示两个正态分布中哪个被用于产生值 i 

确切地讲, ij 在 i 由第 个正态分布产生时值为 1 ,否则为 0 。这里 i 是实例的描述中已观察到的变量, i 1 和 i 2 是隐藏变量。如果 i 1 和 i 2 的值可知,就可以用式 6.27 来解决均值 μ 和 μ 。因为它们未知,因此我们只能用 EM 算法 。

EM 算法应用于我们的 均值问题,目的是搜索一个极大似然假设 ,方法是根据当前假设 < μ 1 … μ > 不断地再估计隐藏变量 ij 的期望值。然后用这些隐藏变量的期望值重新计算极大似然假设。这里首先描述这一实例化的 EM 算法,以后将给出 EM 算法的一般形式。

为了估计上图中的两个均值, EM 算法首先将假设初始化为 h =< μ 1 , μ 2 > ,其中 μ和 μ 为任意的初始值。然后重复以下的两个步骤以重估计 ,直到该过程收敛到一个稳定的 值。

步骤 1 : 计算每个隐藏变量 ij 的期望值 E [ ij ] ,假定当前假设 h =< μ 1 , μ 2 > 成立。

步骤 2 : 计算一个新的极大似然假设 h ´=< μ 1 ´, μ 2 ´> ,假定由每个隐藏变量 ij 所取的值为第 1 步中得到的期望值 E [ ij ] ,然后将假设 h =< μ 1 , μ 2 > 替换为新的假设h ´=< μ 1 ´, μ 2 ´> ,然后循环。

现在考察第一步是如何实现的。步骤 1 要计算每个 ij 的期望值。此 E [ ij ] 正是实例 i 由第 个正态分布生成的概率:

                 

因此第一步可由将当前值 < μ 1 , μ 2 > 和已知的 i 代入到上式中实现。

在第二步,使用第 1 步中得到的 E [ ij ] 来导出一新的极大似然假设 h ´=< μ 1 ´, μ 2´> 。如后面将讨论到的,这时的极大似然假设为:

注意此表达式类似于公式一中的样本均值,它用于从单个正态分布中估计 μ 。新的表达式只是对 μ 的加权样本均值,每个实例的权重为其由第 个正态分布产生的期望值。

上面估计 个正态分布均值的算法描述了 EM 方法的要点 :即当前的假设用于估计未知变量,而这些变量的期望值再被用于改进假设。

可以证明,在此算法第一次循环中, EM 算法能使似然性 P ( D | h ) 增加,除非它已达到局部的最大。因此该算法收敛到对于 < μ 1 , μ 2 > 的一个局 部极大可能性假设 。

  EM 算法的一般表述

上面的 EM 算法针对的是估计混合正态分布均值的问题。更一般地, EM 算法可用于许多问题框架,其中需要估计一组描述基准概率分布的参数 θ ,只给定了由此分布产生的全部数据中能观察到的一部分。

在上面的二均值问题中,感兴趣的参数为 θ =< μ 1 , μ 2 > ,而全部数据为三元组 < ii 1 , i 2 > ,而只有 i 可观察到,一般地令 X =< x 1 , …, m > 代表在同样的实例中未观察到的数据,并令 Y = X ∪ 代表全体数据。注意到未观察到的 可被看作一随机变量,它的概率分布依赖于未知参数 θ 和已知数据 。类似地, 是一随机变量,因为它是由随机变量 来定义的。在后续部分,将描述 EM 算法的一般形式。使用 h来代表参数 θ 的假设值,而 h ´ 代表在 EM 算法的每次迭代中修改的假设。

EM 算法通过搜寻使 E [ln P ( Y | h ´)] 最大的 h ´ 来寻找极大似然假设 h ´ 。此期望值是在 所遵循的概率分布上计算,此分布由未知参数 θ 确定。考虑此表达式究竟意味了什么。

首先 P ( Y | h ´) 是给定假设 h ´ 下全部数据 的似然性。其合理性在于我们要寻找一个 h ´ 使该量的某函数值最大化。

其次使该量的对数 ln P ( Y | h ´) 最大化也使 P ( Y | h ´) 最大化,如已经介绍过的那样。

第三,引入期望值 E [ln P ( Y | h ´)] 是因为全部数据 本身也是一随机变量。

已知全部数据 是观察到的 和未观察到的 的合并,我们必须在未观察到的 的可能值上取平均,并以相应的概率为权值。换言之,要在随机变量 遵循的概率分布上取期望值 E [ln P ( Y | h ´)] 。该分布由完全已知的 值加上 服从的分布来确定。

遵从的概率分布是什么?一般来说不能知道此分布,因为它是由待估计的 θ 参数确定的。然而, EM 算法使用其当前的假设 代替实际参数 θ ,以估计 的分布。现定义一函数 Q ( h ´| h ) ,它将 E [ln P ( Y | h ´)] 作为 h ´ 的一个函数给出,在 θ = h 和全部数据 的观察到的部分 的假定之下。

将 函数写成 Q ( h ´| h ) 是为了表示其定义是在当前假设 等于 θ 的假定下。在 EM算法的一般形式里,它重复以下两个步骤直至收敛。

步骤 1 :估计( E )步骤:使用当前假设 和观察到的数据 来估计 上的概率分布以计算 Q ( h ´| h ) 。

步骤 2 :最大化( M )步骤:将假设 替换为使 函数最大化的假设 h ´ :

当函数 连续时, EM 算法收敛到似然函数 P ( Y | h ´) 的一个不动点。若此似然函数有单个的最大值时, EM 算法可以收敛到这个对 h ´ 的全局的极大似然估计。否则,它只保证收敛到一个局部最大值。因此, EM 与其他最优化方法有同样的局限性,如第 4 章讨论的梯度下降,线性搜索和变形梯度等。

总结来说,EM算法就是通过迭代地最大化完整数据的对数似然函数的期望,来最大化不完整数据的对数似然函数。
0 0