数据点:
{(x1,y1),(x2,y2),⋯,(xN,yN)}
数据点中的向量(即数据点的特征):
x={x(1),x(2),...,x(n)}T
数据点的第
j
个特征:
样本:样本包含多个数据点
总体:总体包含多个样本
简介
EM算法,全称Expectation Maximization Algorithm,译作最大期望化算法或期望最大算法,它是一种迭代算法,用于含有隐变量(hidden variable)的概率参数模型的最大似然估计或极大后验概率估计。
算法
- 解释一
输入:观测变量数据 Y ,隐变量数据Z ,联合分布 P(Y,Z|θ) ,条件分布 P(Z|Y,θ) ;
输出:模型参数。
(1)选择参数的初值 θ(0) ,开始迭代;
(2)E步:利用概率模型参数的现有估计值,在第 i 次迭代即固定θ(i) 计算 Q 函数。
Q(Z)=p(Z|Y,θ(i))
(3) M步:利用E 步上求得的隐藏变量的期望,对参数模型进行最大似然估计
J(Z,θ)=∑ZQi(Z)logp(Y,Z|θ)Qi(Z)=∑Zp(Z|Y,θ(i))logp(Y,Z|θ)p(Z|Y,θ(i))
θ(i+1)=argmaxθJ(Z,θ)
argmax 是一种函数,函数 y=f(x) , x0=argmax(f(x)) 的意思就是参数 x0 满足 f(x0) 为 f(x) 的最大值;
(4)重复第(2)步和第(3)步,直到收敛。
- 解释二
(1)选择参数的初值
θ(0)
,开始迭代;
(2)E步:记
θ(i)
为第
i
次迭代参数的估计值,在第
这里, P(Z|Y,θ(i)) 是在给定观测数据 Y 和当前的参数估计
(3) M步:求使
(4)重复第(2)步和第(3)步,直到收敛
EM算法收敛性
- 定理1
设 P(Y|θ) 为观测数据的似然函数, θ(i)(i=1,2,…) 为EM算法得到的参数估计序列, P(Y|θ(i))(i=1,2,…) 为对应的似然函数序列,则 P(Y|θ(i)) 是单调递增的,即p(Y|θ(i+1))⩾p(Y|θ(i)) - 定理2
设 L(θ)=logP(Y|θ) 为观测数据的对数似然函数, θ(i)(i=1,2,…) 为EM算法得到的参数估计序列, L(θ(i))(i=1,2,…) 为对应的对数似然函数序列。
(1)如果 P(Y|θ) 有上界,则 L(θ(i))=logP(Y|θ(i)) 收敛到某一值 L∗ ;
(2)在函数 Q(θ,θ(i)) 与 L(θ) 满足一定条件下,由EM算法得到的参数估计序列 θ(i) 的收敛值 θ∗ 是 L(θ) 的稳定点。
EM算法推导
上式中的观测数据
Y
在此处用样本数据
Jensen不等式
在完善EM算法之前,首先来了解下Jensen不等式,因为在EM算法的推导过程中会用到。
- Jensen不等式描述如下:
如果f是凸函数,
X
是随机变量,则
如果f是凹函数,
X
是随机变量,则
- 通过下面这张图,可以加深印象:
凹函数
EM推导
给定
m
个训练样本
注意: 第一步 ∑mi=1logp(x|θ) 为 m 个样本的似然函数之和,即整体的似然函数。
第二步
EM算法推导
对于每个实例
首先(4)中的
log
函数看成为一个整体,
log
函数为一个凹函数。根据Jensen不等式,
E[f(X)]⩾f(E[X])
可得(5)式。(5)式的推导如下;
概率论中的随机变量的期望计算方法,如下图所示
因此,结合上面的知识点,我们可以把(4)式当中的
Qi(z(i))
看成相应的概率
pi
,把
p(x(i),z(i)|θ)Qi(z(i))
看作是
z(i)
的函数
g(z)
,类似地,根据期望公式
E(x)=∑x∗p(x)
可以得到:
其实这就是 p(x(i),z(i)|θ)Qi(z(i)) 的期望。再根据凹函数对应的Jensen不等式性质, E[f(X)]⩾f(E[X]) 。
因此便得到了公式(5)。OK,现在我们知道上面的式(4)和式(5)两个不等式可以写成:似然函数
L(θ)>=J(z,Q)
的形式(
z
为隐含变量),那么我们可以通过不断的最大化
首先我们固定
θ
,调整
Q函数推导
根据第一步,固定
在Jensen不等式中说到,当自变量
对该式做个变换,并对所有的 z 求和,得到
因为前面提到 ∑z(i)Qi(z(i))=1 (概率之和为1),所以可以推导出:
根据(6)可得 Qi(z(i))
根据(8)式 ∑z(i)p(xi,z(i)|θ)=c 可得
由此可知当 Qi(z(i))=p(z(i)|x(i),θ) 时,下界 J(z,Q) 上升至与 L(θ) 在此点 θ 处相等。此步就是EM算法的E-step,目的是建立