您的位置:首页 > 其它

【机器学习】聚类分析(二)——从极大似然估计到EM算法

2016-08-03 05:34 381 查看
前言:本文主要把EM算法的内容及其简单推导交待清楚,为后面实现高斯混合模型的聚类算法做一个铺垫,因此本文不会出现代码。文中会出现大量的数学定义、公式及原理等,篇幅有限,加上能力有限,我不可能把所有的定义和公式都罗列一遍,作为博文也没必要这样做,如果这样做,未免过于枯燥生涩,还不如直接去写论文算了。只是力求简明扼要把这个算法描述清楚,但又不能过于简单,否则就无法理解其中的精髓。EM算法,又称期望极大算法(expectation maximization algorithm),是含有隐变量的概率模型参数的极大似然估计法。作为机器学习十大算法之一,它的重要性不言而喻。

一、问题引入

首先还是讲讲极大似然估计。相信大部分本科数理统计课本已经把极大似然估计的概念介绍得非常清楚,这里作一个简单回顾。举一个例子,假设有一枚硬币,其出现正面的概率是θ(θ是客观存在的参数,只是我们不知道是多少),记事件y为“抛这枚硬币”,1表示正面,0表示反面。那么y服从伯努利分布:



我们不知道参数θ是多少,所以我们要进行多次试验得到多个样本值来估计参数θ。其似然函数为:



θ就是似然函数最大的时候所取的值:



一般来说,求L(θ)的最大值就是令其对θ的偏导数等于0。由于似然函数是多个分布函数的乘积,直接求导会相对困难,因此取对数似然函数把乘积化为求和计算,大大降低运算量。

在上述的概率模型中,随机变量y的值是可以通过直接抛硬币来观察的,称为观察变量。在一些概率模型中存在隐变量(latent variable),此时就不能直接使用极大似然估计了。看以下例子:

假设有3枚硬币,分别记作A,B,C,这些硬币正面出现的概率分别是π, p, q。进行以下试验:先掷硬币A,根据其结果来选择继续掷硬币B或C,如果硬币A出现正面则选B,反面则选C;然后掷选出的硬币,最后结果y出现正面记为1,反面记为。假设只能看到掷硬币的结果,不能看到掷硬币的过程,那么中间硬币A的结果我们是不可观测的。概率分布如下:



其中θ=(π, p, q)。如果求θ的极大似然估计,这个问题是没有代数解析解的,只能通过迭代求解,因为你不知道怎么对一个向量求导,对吧?我也不知道。EM算法就是这种可以通过迭代来求极大似然估计的算法,每次迭代包含两步:E-step,求期望(所谓求期望就是猜一下隐变量服从什么分布呗);M-step,求极大化(这一步跟一般的极大似然估计一样)。

二、问题分析

这里我们简单推导一下EM算法。推导之前要介绍一下Jensen不等式,其实不是一个很难理解的东西。高中数学老师可能会讲过凸函数,就是根据凸函数的性质得来的。

1.Jensen不等式

关于凸函数:

设f是定义域为实数的函数,如果对于所有的实数x,f(x)的二阶导数大于等于0(f”(x)≧0),那么f是凸函数。当x是向量时,如果其hessian矩阵H是半正定的,那么f是凸函数。如果只大于0,不等于0,那么称f是严格凸函数。

那么Jensen不等式如下:

如果f是凸函数,X是随机变量,那么:E[f(X)]≥f(E[X])

特别地,如果f是严格凸函数,当且仅当X是常量时,上式取等号。

一张图就看懂是什么意思了:



2.EM算法的推导

假设我们有一个训练集

,包含m个独立样本。建立的概率模型如下:



但每个样本i对应的类别

是未知的(相当于聚类),也即隐含变量。我们希望估计概率模型p(x,z)的参数θ,但是由于里面包含隐含变量z,所以很难用最大似然求解,但如果z知道了,那我们就很容易求解了。在这个问题中,我们并不显式地最大化l(θ),而是不断地构造似然函数l的下界(E-step),然后最大化这个下界(M-step):



这里的Q(z)是我们假设隐含变量z服从的某一分布,(2)式到(3)式的过程正是应用了Jensen不等式,这里我不打算用“显然”二字,因为我一开始也看不出来。我们回忆一下期望的定义:

,在这里,随机变量是z,其概率分布是Q(z)。如果令随机变量变为

这个东西,相当于把它代入期望的函数公式,得到:



由于对数函数log的二阶导数

,所以这个函数是凹函数,在上文定义的Jensen不等式的不等号反一下就行了。因此我们得到:



这里的函数f就是对数函数log,这两条式子合并,就得到了公式(2)到公式(3)的过程。一句话就是:和的对数大于等于对数的和。在Jensen不等式的定义中提到,当自变量X是常数的时候,等号成立。当我们想取到最大化下界时的条件就是取等号,此时有:


这里常数c不依赖于

当我们取分子分母服从正比关系时,这个等式就会自然成立:


实际上,Q(z)是一个概率分布,因此我们肯定知道

,我们同时对分子分母对

求和,得到:

,所以可以写出Q(z)的概率分布式:



至此,我们推出了在固定参数θ后,使下界拉升的Q(z)的计算公式就是后验概率,解决了Q(z)如何选择的问题。这一步就是E步,建立L(θ)的下界。接下来的M步,就是在给定Q(z)后,调整θ,去极大化L(θ)的下界J(在固定Q(z)后,下界还可以调整的更大)。那么一般的EM算法的步骤如下:

重复以下步骤直到收敛 {

E步骤:对第i个样本,设:



M步骤:最大化下界:



}

3.EM算法的收敛性

我们如何得知EM算法将会收敛呢?这个时候我们假设当前参数

和进行一次迭代得到的新参数

。只要我们能够保证

中的等号成立,就知道算法必定会收敛。如何保证这一点呢?有以下不等式:



(4)式是我们已经推导得出的下界函数,(5)式是对(4)式进行极大似然估计,(6)式是基于初始值的假设。由于我们的假设是基于Jensen不等式中的等号成立的,所以不等式中的等号必然成立。

三、总结

通过对上述公式的推导,我们加深了对聚类问题的理解。所谓聚类,通俗来说,就是我们不知道训练数据属于哪一类,建立的概率模型含有隐含变量,我们无法直接进行极大似然估计求解。所以我们可以“猜”一下这些数据属于哪一类,相当于假设隐含变量服从某一概率分布。此时就可以通过迭代的方法求出相关参数。此时我们建立出来的概率模型就可以把每个类表示为概率密度,比k-means以距离为标准定义一个类精确得多。下一篇博文我们就实现高斯混合模型的EM算法,建立精确的聚类模型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: