EM算法理论与推导

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

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

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

举个具体的栗子:

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

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

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


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

  • E步,求期望:

[公式]

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

  • M步,最大化:

[公式]

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


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

[公式]

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

[公式]

但是由于隐变量的存在, [公式] 变为

[公式]

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

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

随机变量的数学期望

[公式]

随机变量函数的数学期望。设 [公式] ,则 [公式] 的期望为:

[公式]

相对熵

[公式]

 

下面是具体的推导。首先引入隐变量 [公式] 的概率分布 [公式] ,满足

[公式]

并且以下等式成立

[公式]

两边同时取对数

[公式]

同时求两边在 [公式] 上的期望

[公式]

因为 [公式] 与 [公式] 无关,所以求期望仍然不变:

[公式]

然后将右边展开

[公式]

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

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

[公式]

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

[公式]

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

[公式]

 

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

[公式]

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

[公式]

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

[公式]

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

原文地址:https://www.cnblogs.com/qiu-hua/p/13040616.html