EM算法

EM算法(Expectation-maximization),又称最大期望算法,是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计(或极大后验概率估计)

从定义可知,该算法是用来估计参数的,这里约定参数为 EM算法 。既然是迭代算法,那么肯定有一个初始值,记为 EM算法 ,然后再通过算法计算 EM算法

通常,当模型的变量都是观测变量时,可以直接通过极大似然估计法,或者贝叶斯估计法估计模型参数。但是当模型包含隐变量时,就不能简单的使用这些估计方法

举个具体的栗子:

永远在你身后:Matplotlib输出动画实现K-means聚类过程可视化?zhuanlan.zhihu.com

K-means算法中,除了给定的样本(也就是观测变量) EM算法 以及参数 EM算法 (也就是那些个聚类的中心)之外,还包含一个隐变量(记为 EM算法 ),它是每个样本的所属类别

可以理解为,我们之所以对一批样本进行聚类,也是因为认为这些样本是有它们潜在的类别的,也就是说还有一个隐变量是我们没有(或者无法)观测到的


下面先给出EM算法的步骤公式,然后再对公式进行推导。假设在第 EM算法 次迭代后参数的估计值为 EM算法 ,对于第 EM算法 次迭代,分为两步

  • E步,求期望:

EM算法

关于的随机变量的函数的期望,公式在后面会给出

  • M步,最大化:

EM算法

其中, EM算法 称为 EM算法 函数,是EM算法的核心。下面就来对公式进行推导


给定一组观测数据记为 EM算法 ,以及参数 EM算法 。因为 EM算法 是独立同分布,所以有以下对数似然函数:

EM算法

可以通过极大似然估计来求解最优参数,即:

EM算法

但是由于隐变量的存在, EM算法 变为

EM算法

注意:联合概率公式 P(XZ)=P(X|Z)P(Z)

这样直接求解就变得困难,一个办法是构造一个容易优化的——关于对数似然函数的——下界函数,通过不断的优化这个下界,迭代逼近最优参数。为了方便下面推导流畅,提前先贴几个公式

随机变量的数学期望

EM算法

随机变量函数的数学期望。设 EM算法 ,则 EM算法 的期望为:

EM算法

相对熵

EM算法

下面是具体的推导。首先引入隐变量 EM算法 的概率分布 EM算法 ,满足

EM算法

并且以下等式成立

EM算法

两边同时取对数

EM算法

同时求两边在 EM算法 上的期望

EM算法

因为 EM算法 与 EM算法 无关,所以求期望仍然不变:

EM算法

然后将右边展开

EM算法

由此得到对数似然函数的下界。并且当 EM算法 ,上式可以取到等号,由相对熵的性质可知,相对熵为0,也就是 EM算法

其中 EM算法 是 EM算法 的概率分布,但是因为无法观测 EM算法 ,所以 EM算法 未知,可以假设其等于 EM算法 ,也就是 EM算法 关于给定 EM算法 与 EM算法 的后验,且 EM算法 是由初始值 EM算法 一次次迭代计算而来,所以此处的 EM算法 是迭代 EM算法 次后的值

EM算法

然后通过极大似然估计得到:

EM算法

以上,就是EM算法中E步的由来,然后令 EM算法 ,就得到了M步的公式

EM算法

以上就是EM算法的推导过程,为了加深理解,我们可以换一个角度来总结一下。前面我们定义了似然函数

EM算法

由于累加号嵌套在 EM算法 函数中,难以直接进行求解,如果换一个似然函数,就容易的多

EM算法

但是,又由于的 EM算法 是隐变量,无法得到它的概率分布,只能通过给定的 EM算法 和 EM算法 来计算它的后验分布,然后求似然函数在此分布上的期望

EM算法

最后,再寻找能使似然函数的期望最大化的参数

相关推荐