1 EM算法的背景介绍
如何用迭代法估计模型的参数,这是EM算法的基础。
在极大似然估计中,用最值的方法,将使得
取得最大值的参数
作为估计值,有一类概率模型比较简单,只含有观测变量
,比如中心一元高斯模型,可以直接利用模型分布的观测变量,然后基于极大似然估计法,估计出这个模型的参数
和
;
而有一些模型中含有一类隐藏变量
,这类变量是不可观测的,这也使得模型无法利用观测变量
来直接求导得出估计值
,那么就必须要换一种求解的思路,采用一轮一轮迭代的方法,尽可能的逼近真实解。
那么问题来了,
如何迭代?
为什么一定能逼近真实解?
2 抛出EM算法的迭代公式
首先,先看看如何进行迭代,这里先给出EM算法中的参数迭代公式:
上式表示在第
轮迭代的过程中,能够利用第
轮的参数估计值
,去迭代估计出第
轮的参数
。
那么,在假定一个初值
的情况下,就能通过上述的迭代公式一轮一轮的迭代下去。
这种迭代方法为何有效?换句话说,如何能保证从
开始,
一直到
的迭代过程中,每一次迭代都能使似然函数
的值不断增大,实现最终的收敛性。本质上,只要保证每次迭代
的值都在增大,那么这个方法就是可行的、有效的。
3 EM算法为什么有效???
这里就先说为什么每一轮迭代都可以使似然函数
的值不断增大。
利用公式形式化的描述和证明这个问题,即:
对于任意轮数
,通过迭代公式的方法实现
的迭代之后,一定能够满足logP(X|
)小于等于logP(X|
),等价于
。
下面开始证明。
首先,利用贝叶斯公式可以得到观测变量X和隐变量Z的概率关系式:
因此,将隐变量引入log似然函数:
对等式两边同时求关于
的期望,也就是求积分:
对于等式左边进行化简得到:
简单说一下,因为
与变量Z无关,因此可以拿出到外面,同时,
相当于所有概率的和,因此等于1。
因此等式最终变为:
那么,最开始验证
,就转化为验证下面这个不等式是否成立:
将不等式拆解成2个部分,如果能够验证下面2部分不等式都成立,那么自然
就是成立的。
不等式1:
不等式2:
先看不等式1
更具迭代公式的定义,
是使得迭代公式取得最大值的值,换言之就是比
取其他值都要大,自然这个其他值也包含了
。
所以说,对于:
这个不等式而言,迭代法本身的定义就能够保证其成立。
再看不等式2
这里对于不等式2进行稍微的变形:
这里要使用KL三度来进行相关的计算,也就是相对熵。
KL散度
设
和
是随机变量X上的2个概率分布,则在离散和连续变量的情形下,相对熵的定义分别为:
KL散度是用来衡量
和
分布之间的距离,因此具有一个非常重要的性质,那就是非负性,即
,当
和
2个分布相同的时候取等号。
下面使用KL散度来辅助不等式2的证明,过程如下:
于是不等式2也得到证明。
那么经过
的迭代之后
的问题也就得到了证明,也就是说通过一轮一轮的迭代,log似然函数的取值也在不断的增大,最终log似然函数收敛到最大值,待估计参数
也就不断趋近于参数的真实值。