赞
踩
在深入理解 EM 算法前,先了解一下 模型参数求解方法和Jensen's inequality。
有两种方法:
1)训练数据是完整的,即不缺少某些属性值,则直接用训练数据去拟合模型得到模型的参数即可,如极大似然估计和最大后验估计等。
2)训练数据是不完整的,即缺少某些属性数据,则此时不可用训练数据去拟合模型(某些属性没有数据,则无法对该属性进行拟合,所以该属性的参数无法获取)。但可以假设某些属性存在,先对其参数进行猜测,然后用观测数据去修正猜测的参数,直到参数接近最优值,如 EM 算法等。
是一组实数的函数。若 则 是凸函数 。若 的输入参数是向量,则其是凸函数的条件可以扩展到半正定矩阵 hessian H ()。
如果 ,则其是严格的凸函数(在向量中,其 H 必须是正定的())。
如何理解严格的凸函数:
左 中 右
如上图所示,左图中 x 轴有直线, 中间的图 y轴有直线,则不能叫严格的凸函数,因为在直线阶段时。对于右边图对于任意的 x 恒有 。
Jensen's inequality 定理: 是凸函数,设 是一随机变量,则:。
此外,若 是严格的凸函数,则当且仅当 且概率为1 时
注:在写期望的时候,偶尔去掉括号,所以有 。
对上述定理的解释:
如上图所示,实线代表凸函数 。
在 轴上,是一随机变量,有 0.5 的概率出现在 处,0.5 的概率出现在 处,因此 的期望值在 和 的中间(midpoint)。
在 轴上,有 和 。 是 和 的中点值(midpoint)。因为 是凸函数,所以一定有 。
注:当 是向下凸的凸函数 ( 或 ) 时 。EM 算法用到的正是这部分。
In statistics, an expectation maximization (EM) algorithm is an iterative method to find maximum likelihood or maximum a posteriori (MAP) estimates of parameters in statistical models, where the model depends on unobserved latent variables. -- Wikipedia
EM 算法是在数据不完整、缺少数据点或有未观察(隐藏)的潜在变量时,为模型参数找到最大似然估计值的一种方法。这是一种近似极大似然函数的迭代方法。虽然极大似然估计可以找到一组数据的最佳拟合模型,但对于不完整数据集表现不是很好。但复杂的EM算法可以找到模型参数即使数据存在缺失值。其工作原理是为缺失的数据点选择随机值,并使用这些猜测来估计第二组数据。得到的新值用于为第一个数据集创建更好的猜测,这个过程一直持续下去,直到算法收敛到一个固定点。
总的来说,EM算法是用于含有隐含变量(潜在变量或缺失值)的概率模型参数的极大似然估计和最大后验估计。EM 算法的每次迭代由两步组成:
1)E 步:求期望
2)M 步:求极大
隐含变量的理解?:这是相对于观测变量。若观测变量是完整的,则可直接用极大似然或贝叶斯估计模型参数,但在现实中会遇到不完整的训练样例,即一些属性数据未知或结果未知(如非监督分类无标签、线性回归中的w、b),这就叫隐含变量,此时不可以用上述方法估计模型参数,而 EM 算法就是对含有隐变量的不完整训练样本的概率模型参数估计的极大似然或最大化后验概率估计的方法。
假设观测变量有:A1,A2,A3,隐含变量(未被观测到或缺失变量)有 B1,B2,Y1,则完整观测变量 = 观测变量+隐含变量
EM:直译为期望最大化算法,一般叫 EM 算法。
期望最大化(EM)是一种用于点估计的技术。给定一组可观察到的变量X和未知的(潜在的)变量Z我们想估计模型中的参数θ。
点估计的两个标准是极大似然和极大后验:
下面主要考虑的是似然估计,最大后验的计算方法与似然估计类似。
考虑所有的观察数据集为 ,所有的潜在变量数据集为 ,所有模型参数为 。对参数 建立概率分布的似然估计:
代表 or ; 表示第 n 个隐变量,该隐变量可能有多个取值(v1,v2,...),因此需要考虑所有取值的情况,即在 (代表单个变量某个取值的概率)前面加一个求和的符号。注意,同样适用于连续的潜在变量,只需将 前的和替换为一个积分。
注:联合分布 属于指数家族。
上式很难优化求解 ,因为 不能放到和的里面,且 是潜在随机变量不可知,所以上式不可算。若 可以被观测到,则极大似然估计会容易。
EM 算法的策略是构建 的下界(E-step),然后对下界进行最大化(M-step)。
这两步的基本思想:若参数已知(E步),则可根据训练数据推断出最优隐变量 的值;反之,若 的值已知,则可对参数 做出极大似然估计(M步)。这两步交替计算,直到收敛到局部最优解。
对于每个样本,用 表示潜在变量 的分布则有:
(式1)
这个推导的最后一步使用了Jensen's 不等式。在上式中函数 ,其
log 函数的 Jensen's 不等式:
对于 有:
当且仅当 时,等式成立。
类似于这里的 , 类似于这里的 。
通过 Jensen's 不等式,有:
表明期望是关于来自 分布的 。 叫辅助函数(auxiliary function)。
对于 分布的任何数据集,式1 给出了 的下界。 有很多分布可以选择,应该选取哪一个呢?
如果当前参数为 ,则应在靠近 处求其下界。将上面的不等式在特定值 处成为等式(会随着EM的迭代单调递增(后面证明))。
为了找到特定值 ,需要在上面的推导过程中保持等式成立。为让等式成立,则只需知道期望值可以用一个常数(constant)表示,即:
则:
因为 ( 是分布函数),所以要对 进行标准化:
由上可知, 是在给定 和参数 条件下的 的后验分布,对应 EM 算法的E步。对式1 求最大化下界对应M步。一直重复这两步,直至算法收敛。
注:对于 中的每个观测值,其潜在变量 中都有相应的值,因此
如何知道算法是否收敛?
假设 和 表示EM算法两个连续的迭代的模型参数,将证明 。这个证明的关键在于 的选取。
迭代从 开始,则 。需要让式1的等式成立,所以有:
将上式等式右边最大化得到 ,因此有:
方程在 处的值一定大于等于方程在 的值。最终两者的值会相等(不断逼近)。因此,EM算法会使似然函数单调收敛。若EM收敛过慢,则两个迭代的差值小于某个容差也可以。
一般 EM 算法步骤:
1)初始化参数 ,参数的初值可以任意选择,但需要注意 EM 算法对初值是敏感的。常用的办法是选取儿个不同的初值进行法代,然后对得到的各个估计值加以比较 , 从中选择最好的。
2)E step,求解
3)M step,将上步得到的带入下式,求解 :
4)给出停止迭代的条件,一般是对较小的整数 ,若满足:
则停止迭代,否则将 带回到 2)继续计算。
隐变量估计问题也可通过梯度下降等优化方法求解,但由于求和的项数将随着隐变量的数目以指数级上升,会给梯度计算带来麻烦;而 EM 算法则可看做是一种非梯度优化方法。
极大似然估计(MLE)和期望最大化估计的比较:
两者都可以找到最适合的参数,但是它们找到模型的方式却有很大的不同。
MLE首先收集所有数据,然后使用这些数据构建最有可能的模型。
EM对参数进行猜测,首先考虑缺失的数据,然后调整模型以适应猜测和观察到的数据。
EM算法的优缺点:
优点:
缺点:
EM 算法常见的应用包括聚类、计算机视觉、混合模型拟合、用潜数据学习贝叶斯网络参数、学习隐马尔可夫模型。
参考:PRML
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。