EM算法-原理详解

Posted huangyc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EM算法-原理详解相关的知识,希望对你有一定的参考价值。

1. 前言

概率模型有时既含有观测变量(observable variable),又含有隐变量或潜在变量(latent variable),如果仅有观测变量,那么给定数据就能用极大似然估计或贝叶斯估计来估计model参数;但是当模型含有隐变量时,需要一种含有隐变量的概率模型参数估计的极大似然方法估计——EM算法

2. EM算法原理

EM算法称为期望极大值算法(expectation maximizition algorithm,EM),是一种启发式的迭代算法。

EM算法的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含数据(EM算法的E步),接着基于观察数据和猜测的隐含数据一起来极大化对数似然,求解我们的模型参数(EM算法的M步)。

可以通过K-Means算法来简单理解EM算法的过程。

E步:

在初始化K个中心点后,我们对所有的样本归到K个类别。

M步:

在所有的样本归类后,重新求K个类别的中心点,相当于更新了均值。

3. EM算法公式

对于(m)个样本观察数据(x=(x^{(1)},x^{(2)},...x^{(m)}))中,找出样本的模型参数( heta),极大化模型分布的对数似然函数如下,假设数据中有隐含变量(z=(z^{(1)},z^{(2)},...z^{(m)}))

[ L( heta) = sumlimits_{i=1}^m logP(x^{(i)}| heta) ]
加入隐含变量公式变为如下,注意到下式中(Q_i(z(i)))是一个分布,因此(sum Q_i(z(i))logP(x(i),z(i)|θ))可以理解为(logP(x(i),z(i)|θ))基于条件概率分布(Q_i(z(i)))的期望。

[ L( heta) = sumlimits_{i=1}^m logsumlimits_{z^{(i)}}Q_i(z^{(i)})P(x^{(i)},z^{(i)}| heta);;;s.t.sumlimits_{z}Q_i(z^{(i)}) =1;;;;;(1) ]

根据Jensen不等式,(1)式变为(2)
[ E [f left ( g(X) ight ) ] ge f left (E[g(X)] ight ) ]
[ L( heta) = sumlimits_{i=1}^m logsumlimits_{z^{(i)}}Q_i(z^{(i)})P(x^{(i)},z^{(i)}| heta)gesumlimits_{i=1}^m sumlimits_{z^{(i)}}Q_i(z^{(i)})logP(x^{(i)},z^{(i)}| heta);;;s.t.sumlimits_{z}Q_i(z^{(i)}) =1;;;;;(2) ]

4. EM算法流程

输入:观察数据(x=(x^{(1)},x^{(2)},...x^{(m)})),联合分布(p(x,z| heta)), 条件分布(p(z|x, heta)), EM算法退出的阈值(gamma)

  1. 随机初始化模型参数( heta)的初值( heta^0)
  2. E步:计算联合分布的条件概率期望

[ heta^{j+1} = arg max limits_{ heta}L( heta, heta^{j}) ]

[ L( heta, heta^{j}) = sumlimits_{i=1}^msumlimits_{z^{(i)}}Q_i(z^{(i)})log{P(x^{(i)},z^{(i)}| heta)} ]

  1. M步:极大化(L( heta, heta^j)),得到(θ^{j+1}):

[ heta^{j+1} = arg max limits_{ heta}L( heta, heta^{j}) ]

  1. 重复2,3两步,直到极大似然估计(L( heta, heta^j))的变化小于(gamma)

5. 总结

如果我们从算法思想的角度来思考EM算法,我们可以发现我们的算法里已知的是观察数据,未知的是隐含数据和模型参数,在E步,我们所做的事情是固定模型参数的值,优化隐含数据的分布,而在M步,我们所做的事情是固定隐含数据分布,优化模型参数的值。

本节介绍的EM算法是通用的EM算法框架,其实EM算法有很多实现方式,其中比较流行的一种实现方式是高斯混合模型(Gaussian Mixed Model)。

(欢迎转载,转载请注明出处。欢迎沟通交流: [email protected]

以上是关于EM算法-原理详解的主要内容,如果未能解决你的问题,请参考以下文章

机器学习中的EM算法详解及R语言实例

线性回归算法和逻辑斯谛回归算法详细介绍及其原理详解

EM算法:K-means 算法

EM算法:EM算法详解

AES 加密算法的原理详解

LVS原理详解