赞
踩
EM算法是一种用于含有隐变量的概率模型参数的极大似然估计。 它分为两步进行: 第一步E步,求期望。第二步M步,求极大。 所以也被称为期望极大算法。
看了上面的描述可能会有疑问,什么叫做含有隐变量的概率模型参数的极大似然估计。
我们首先说一下什么叫做似然函数和极大似然估计:
在数理统计学中,似然函数是一种关于统计模型中的参数的函数,表示模型中参数的似然性,似然性类似于概率,指某种事件发生的可能性。
在通常情况下我们是根据已知条件来推测结果的,但极大似然估计是已知结果,我们选取让这种结果出现概率最大的条件。
举个例子,现在有一张满分试卷,并且跟你说了这张试卷可能是小花或者是小明的(小花是众所周知的学霸,小明是众所周知的学渣) 。 问你这张试卷是谁的? 潜意识中你会觉得这是小花的。 这其中其实就蕴含了极大似然估计的道理。
在上述例子中,我们可以认为,结果是一张满分试卷,参数是写卷子的人{小花,小明}。我们已知了结果,选取参数是小花,可以让我们的结果(满分试卷)出现的概率最大。
在上述例子中我们除了参数是未知的其余都是已知的,所以可以直接极大化似然函数来求解参数,但是如果我们的模型中,除了未知参数外,还有一些隐变量,我们又该如何去求解未知的参数呢?
我们看一下著名的三硬币模型(它就是一个既含有未知参数又含有隐变量的概率模型)
假设有 3 枚硬币,分别记作 A, B, C。这些硬币正面出现的概率分别是π, p 和 q。进行如下掷硬币试验: 先掷硬币 A,根据其结果选出硬币 B 或硬币 C,正面选硬币 B,反面选硬币 C; 然后掷选出的硬币,掷硬币的结果,出现正面记作1,出现反面记作 0; 独立地重复 n 次试验(这里, n= 10) ,观测结果如下: 1,1,0,1,0,0,1,0,1,1
假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币正面出现的概率,即三硬币模型的参数。
根据这个例子我们先明确几个概念
观测变量: 模型中可以直接观测,即在研究中能够收集到的变量成为观测变量。
隐变量: 模型中不可观测的随机变量,我们通常通过可观测变量的样本对隐变量作出推断。
在三硬币模型中,我们通过抛掷硬币A确定了抛硬币B或者C,之后通过一次抛掷我们得到了一个结果1或者0 ,这一次的结果就是可观测的,我们称其为观测变量 ,记作随机变量y。 而抛掷硬币A的结果是不可观测的,它就是一个隐变量,记作随机变量z。 而参数就是硬币A,B,C 正面出现的概率π,p,q
明白了这些以后,回到我们的问题,在有隐变量z的情况下,我们如何估计模型的参数?
我们先来看一个简单的情况, 有一个硬币,抛正面的概率是p 则抛反面的概率是 1-p ,在将这个硬币抛掷10次后,我们得到一个观测序列1,1,0,1,0,0,1,0,1,1 , 如何估计它的参数p
这个问题很显然就是我们前面说的,已知结果,如何让我们的结果出现的概率最大,当然用极大似然估计了。
答案是p为0.6 我们从直觉上看也是这样的
好了回归我们这个问题 ,比较一下这两个问题。 那个简单的问题姑且把它称为单硬币模型。 我们发现三硬币模型中包含了两个单硬币模型(用硬币B进行抛掷,或者用硬币C抛掷) 但它让人难受的地方是,我们不确定到底选择哪一个模型(硬币A的结果决定选择哪一个模型,但是结果是不确定的)
我们先来看一下三硬币模型的表示形式
y是观测变量 我们观测的结果 也就是那个结果序列 1,1,0,1,0,0,1,0,1,1
z是隐变量 硬币A的抛掷结果
Θ是模型参数 Θ=(Π,p,q)
在本例中EM算法的主要思想如下:
E步:先随机设置一下各种参数,然后再算一下在当前情况下每个样本点属于哪一个模型的概率值
M步:此时我们知道了一个样本点属于某个模型的概率,然后再次计算各个模型的参数;然后返回上一步,直至算法收敛。
在我们的三硬币模型中EM算法又是怎么应用的呢?
首先我们选取一个初值
我们假设第i次迭代时 参数是
EM算法第i+1次迭代如下
下面正式介绍一下EM算法
一般地,用 Y 表示观测随机变量的数据, Z 表示隐随机变量的数据。 Y 和 Z 连 在一起称为完全数据 ,观测数据 Y 又称为不完全数据 。
假设给定观测数据 y, 其概率分布是 P(YIΘ), 其中Θ是需要估计的模型参数, 那么不完全数据 Y 的似然函数是 P(YIΘ), 对数似然函数 L(Θ) = log P(YIΘ); 假设 Y 和 Z 的联合概率分布是: P(Y, ZIΘ) ,那么完全数据的对数似然函数是 logP(Y, ZIΘ)。
介绍一个函数—Q函数
给出EM算法的推导
EM 算法通过迭代求 L(Θ) = log P(YIΘ) 的极大似然估计。每次迭代包含两步: E 步,求期望;M 步,求极大化。下面来介绍 EM 算法。
我们在前面已经介绍了,EM算法是一种迭代类型的算法,它是通过逐步迭代来逼近最大值的, 所以就会带来两个问题,EM算法在不断迭代过程中可以收敛到一个值吗? 如果可以的话这个值是否是全局最大值或者局部极大值?
先看一个定理
该定理证明如下
以上我们证明出似然函数P(Y|Θ) 是单调递增的,则对数似然函数也是单调递增的。
定理只能保证参数估计序列收敛到对数似然函数序列的稳定点,不能保证收敛到极大值点。 所以在应用中,初值的选择变得非常重要,常用的办法是选取几个不同的初值进行迭代,然后对得到的各个估计值加以 比较,从中选择最好的。
参考
李航《统计学习方法》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。