EM最大期望算法是一个数值求解似然函数极大值的迭代算法,就好像梯度下降算法是一种数值求解损失函数极小值的迭代算法一样。
EM算法通常适合于随机变量依赖于另外一些不可观测的随机变量(称之为隐含变量或者中间变量)的场景。
此时由于似然函数的表示形式较为复杂(含有对隐含变量的累加求和或者积分),难以求导获取似然函数的极大值,也无法方便地应用梯度下降算法进行优化。
而EM算法是一个类似梯度下降算法的迭代算法,它首先给随机变量分布参数赋初始值,然后寻找到了一个便于优化的似然函数的下界 (恰好为似然函数在某个分布下的期望Expectation,期望中消去了隐变量),并通过不断地优化(Maximization) 这个下界求解似然函数的极值。
EM算法在机器学习的许多算法中都有使用到,如
KMeans:实际上K-Means是一种Hard EM算法, 隐变量直接取最大概率的位置。
支持向量机的SMO算法
LDA主题模型参数估计
混合高斯模型的参数估计
HMM隐马尔科夫模型的参数估计
本篇文章我们将详述EM算法的推导过程,并以一维GMM高斯混合模型为例,示范EM算法的应用方法。
公众号后台回复关键字:源码,获取本文含全部公式的markdown文件。
一,EM最大期望算法
当我们关心的随机变量依赖于另外一些不可观测的随机变量时,通过对我们关心的随机变量采样,我们将难以直接通过最大似然估计的方法推断我们关心的随机变量分布律中的未知参数。
例如我们有100个学生的身高数据,其中有一些是男生,另外一些是女生。男生和女生的身高服从不同的正态分布,但是我们不知道哪些数据是男生的,哪些是女生的,这是这个模型的隐含变量,是不可以被观测到的。
那么如何根据这批身高数据估计男女生各自正态分布的均值和方差,以及这批数据中男生的比例呢?
期望最大化算法 EM (Expectation Maximization)这时候就派上用场了,它能够解决这种含有隐含随机变量的模型的参数估计的问题。
设观测随机变量为 , 隐含随机变量为 ,待确定参数为 。
当 和 确定时, 的分布函数由 给出。
按照极大似然原理,并使用全概率公式,似然函数可以写成

对数似然函数可以写成

对数似然函数中,由于有对 的求和,如果尝试对 求偏导等于0来计算最优的 ,将难以得到对应的解析解。这和目标函数非常复杂时,无法直接解析求解只能使用梯度下降这类迭代算法是一样的。
从原则上说,在一些较为简单的情况下我们也能够使用梯度下降法求解对数似然的最优值,例如当隐藏变量Z是离散随机变量时,且可取值较少,我们很容易将对z的求和表示出来,从而可以计算梯度进而使用梯度下降法。
但对于一般情况,对z的求和将难以进行,如果Z是连续的随机变量,对z的求和将变成积分,此时使用梯度下降法将更加困难。
我们可以尝试和梯度下降算法效果相当的迭代算法。最大期望算法EM正是可以实现这个目的。
大概原理如下,我们首先给 赋初始值
EM算法详解

本文深入探讨了EM算法,一种用于处理含有隐含随机变量的模型参数估计的迭代算法。通过实例讲解,展示了EM算法在高斯混合模型中的应用,以及如何通过迭代优化对数似然函数的下界来求解参数估计。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



