文章目录
EM内容较多,方便阅读,分成2个部分
下接:09_期望极大法EM2_统计学习方法
EM算法是一种迭代算法,1977年由Dempster等人总结提出,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代由两步组成:E步,求期望(exception);M步,求极大(maximization)。所以这一算法称为期望极大算法,简称EM算法。
一、EM算法的引入
概率模型有时既含有观测变量,又含有隐变量或潜在变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法估计模型参数;当模型含有隐变量时,就不能简单地使用这些估计方法,EM算法就是含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计法。下文以讨论极大似然估计为例,极大后验概率估计与其类似。
在朴素贝叶斯算法里面已经讲解过极大似然估计和贝叶斯估计,今天再对极大似然估计做一个详细的介绍,因为实在是太常见了。
1、极大似然估计
总体样本服从
P
(
X
∣
θ
)
P(X|\theta)
P(X∣θ)分布,现有
N
N
N个样本,估计模型的参数
θ
\theta
θ。那么得到的参数
θ
\theta
θ应该是使现有的
N
N
N个样本最容易出现的参数,这就是极大似然估计的思想(模型已定,参数未知)。每个样本之间是相互独立的,那么可以得到这
N
N
N个样本的联合概率即极大似然函数,用下式表示:
L
(
θ
)
=
L
(
x
1
,
⋯
,
x
n
∣
θ
)
=
∏
i
=
1
N
p
(
x
i
∣
θ
)
,
θ
∈
Θ
(1)
L(\theta) = L(x_1,\cdots ,x_n|\theta) = \prod_{i=1}^N p(x_i|\theta),\space \theta \in \Theta \tag{1}
L(θ)=L(x1,⋯,xn∣θ)=i=1∏Np(xi∣θ), θ∈Θ(1)
对数似然函数:
l
(
θ
)
=
l
n
L
(
θ
)
=
∑
i
=
1
N
l
n
p
(
x
i
∣
θ
)
,
θ
∈
Θ
(2)
l(\theta)=lnL(\theta) = \sum_{i=1}^N ln\space p(x_i|\theta),\space \theta \in \Theta \tag{2}
l(θ)=lnL(θ)=i=1∑Nln p(xi∣θ), θ∈Θ(2)
求极大似然函数估计值的一般步骤:
- (1)写出似然函数;
- (2)对似然函数取对数,并整理;
- (3)求导数,令导数为0,得到似然方程;
- (4)解似然方程,得到的参数即为所求;
简单实例说明,实例来自博客。假设现在有两枚硬币1和2,,随机抛掷后正面朝上概率分别为
P
1
,
P
2
P_1,P_2
P1,P2。为了估计这两个概率,做实验,每次取一枚硬币,连掷5下,记录下结果,如下:
可以很容易地估计出
P
1
P_1
P1和
P
2
P_2
P2,如下:
P
1
=
(
3
+
1
+
2
)
/
15
=
0.4
P
2
=
(
2
+
3
)
/
10
=
0.5
\begin{aligned} & P1 = (3+1+2)/ 15 = 0.4\\ & P2= (2+3)/10 = 0.5 \end{aligned}
P1=(3+1+2)/15=0.4P2=(2+3)/10=0.5
上面的计算很简单很理所当然,但上面是用了极大似然估计的。可以见证明,极大似然估计证明先验概率
2、EM入场
还是上面的问题,现在我们抹去每轮投掷时使用的硬币标记,如下:
问题还是要估计两枚硬币随机抛掷后正面朝上概率
P
1
,
P
2
P_1,P_2
P1,P2。
显然,此时我们多了一个隐变量
Z
Z
Z,可以把它认为是一个5维的向量
(
z
1
,
z
2
,
z
3
,
z
4
,
z
5
)
(z_1,z_2,z_3,z_4,z_5)
(z1,z2,z3,z4,z5),代表每次投掷时所使用的硬币,比如
z
1
z_1
z1,就代表第一轮投掷时使用的硬币是1还是2。但是,这个变量
Z
Z
Z不知道,就无法去估计
P
1
P_1
P1和
P
2
P_2
P2,所以,我们必须先估计出
Z
Z
Z,然后才能进一步估计
P
1
P_1
P1和
P
2
P_2
P2。
但要估计
Z
Z
Z,我们又得知道
P
1
P_1
P1和
P
2
P_2
P2,这样我们才能用最大似然概率法则去估计
Z
Z
Z,这不是鸡生蛋和蛋生鸡的问题吗?如何破?
答案就是先随机初始化一个 P 1 P_1 P1和 P 2 P_2 P2,用它来估计 Z Z Z,然后基于 Z Z Z,按照最大似然概率法则去估计新的 P 1 P_1 P1和 P 2 P_2 P2。这就是最开始说的E步 ( P 1 , P 2 ⟶ Z ) (P_1,P_2 \longrightarrow Z) (P1,P2⟶Z)和M步 ( Z ⟶ P 1 , P 2 ) (Z \longrightarrow P_1,P_2) (Z⟶P1,P2),如此反复下去,直到收敛到一个不再改变的参数 θ \theta θ。
二、EM算法推导
1、Jensen不等式
在支持向量机里面介绍过凸函数。今天讲下Jensen不等式。
看到很多博客里面有不同的评论说凹凸函数用混了,这边为了不引起歧义在使用的时候直接带上条件,那么肯定就不会弄混了。
如果
f
(
x
)
f(x)
f(x)是凸函数(
f
′
′
(
x
)
≥
0
f''(x) \geq 0
f′′(x)≥0),那么有:
f
(
x
1
)
+
f
(
x
2
)
+
⋯
+
f
(
x
n
)
n
≥
f
(
x
1
+
x
2
+
⋯
+
x
n
n
)
\dfrac{f(x_1) + f(x_2) + \cdots + f(x_n)}{n} \geq f(\dfrac{x_1+x_2+\cdots + x_n}{n})
nf(x1)+f(x2)+⋯+f(xn)≥f(nx1+x2+⋯+xn)
当且仅当
x
1
=
x
2
=
⋯
=
x
n
x_1 = x_2 = \cdots = x_n
x1=x2=⋯=xn时上式取等号。
加权形式:
∑
i
=
1
N
α
i
f
(
x
i
)
≥
f
(
∑
i
=
1
N
α
i
x
i
)
,
∑
i
=
1
N
α
=
1
(3)
\sum_{i=1}^N \alpha_i f(x_i) \geq f(\sum_{i=1}^N \alpha_i x_i),\space \sum_{i=1}^N\alpha = 1 \tag{3}
i=1∑Nαif(xi)≥f(i=1∑Nαixi), i=1∑Nα=1(3)
Jensen不等式证明
推得若
f
(
x
)
f(x)
f(x)是凸函数,X是随机变量,有
E
[
f
(
X
)
]
≥
f
(
E
[
X
]
)
E[f(X)] \geq f(E[X])
E[f(X)]≥f(E[X])
当且仅当X是常量时,上式取等号。
如果
f
(
x
)
f(x)
f(x)是凹函数(
f
′
′
(
x
)
≤
0
f''(x) \leq 0
f′′(x)≤0),那么同理有:
E
[
f
(
X
)
]
≤
f
(
E
[
X
]
)
(4)
E[f(X)] \leq f(E[X]) \tag{4}
E[f(X)]≤f(E[X])(4)
考虑到 E ( X ) = ∑ X p ( x ) × x , x ∈ X E(X) = \sum_{X} p(x)\times x,x\in X E(X)=∑Xp(x)×x,x∈X,则有 E ( f ( X ) ) = ∑ X p ( x ) × f ( x ) , x ∈ X E(f(X)) = \sum_{X} p(x)\times f(x) ,x\in X E(f(X))=∑Xp(x)×f(x),x∈X, f ( X ) f(X) f(X)是 X X X的函数。
2、EM推导过程
(1)统计学习方法EM推导
第一部分内容,看看文字描述,能理解EM算法大概是怎么回事,是在解决一个什么问题。但是具体要使用,就需要数学公式推导,证明这个想法确实可行。这一部分内容看课本的时候很难理解。然后找到一篇讲解和带部分公式推导还可以的博客。但是我决定最终用来总结推导的内容还是以参考课本为主。对其中理解起来较困难的地方展开和进一步解释。
一般地,用 Z Z Z表示隐随机变量的数据, Y Y Y表示观测随机变量的数据又称为不完全数据, Y Y Y和 Z Z Z连在一起称为完全数据。假设给定观测数据 Y Y Y,其概率分布是 P ( Y ∣ θ ) P(Y|\theta) P(Y∣θ),其中 θ \theta θ是需要估计的模型参数,那么不完全数据 Y Y Y的似然函数是 P ( Y ∣ θ ) P(Y|\theta) P(Y∣θ),对数似然 l ( θ ) = l n P ( Y ∣ θ ) l(\theta) = lnP(Y|\theta) l(θ)=lnP(Y∣θ);假设 Y Y Y和 Z Z Z的联合概率分布是 P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Z∣θ),那么完全数据的对数似然函数是 l n P ( Y , Z ∣ θ ) lnP(Y,Z|\theta) lnP(Y,Z∣θ)。
面对一个含有隐变量的概率模型,目标是极大化观测数据(不完全数据)
Y
Y
Y关于参数
θ
\theta
θ的对数似然函数,即极大化
l
(
θ
)
=
l
n
P
(
Y
∣
θ
)
=
l
n
∑
Z
P
(
Y
,
Z
∣
θ
)
=
l
n
(
∑
Z
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
)
(5)
\begin{aligned}l(\theta) &= lnP(Y|\theta) = ln \sum_{Z} P(Y,Z|\theta) \\ & =ln\left(\sum_{Z} P(Y|Z,\theta)P(Z|\theta) \right) \tag{5} \end{aligned}
l(θ)=lnP(Y∣θ)=lnZ∑P(Y,Z∣θ)=ln(Z∑P(Y∣Z,θ)P(Z∣θ))(5)
注意这一极大化的主要困难是式(5)中有未观测数据并有包含和的对数。事实上,EM算法是通过迭代逐步近似极大化
l
(
θ
)
l(\theta)
l(θ)的。假设在第
i
i
i次迭代后
θ
\theta
θ的估值是
θ
(
i
)
\theta^{(i)}
θ(i)。我们希望新估计值
θ
\theta
θ能使
l
(
θ
)
l(\theta)
l(θ)增加,即
l
(
θ
)
≥
l
(
θ
(
i
)
)
l(\theta) \geq l(\theta^{(i)})
l(θ)≥l(θ(i)),并逐步达到极大值。
l
(
θ
)
−
l
(
θ
(
i
)
)
=
l
n
(
∑
Z
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
)
−
l
n
P
(
Y
∣
θ
(
i
)
)
=
l
n
(
∑
Z
P
(
Y
∣
Z
,
θ
(
i
)
)
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Y
∣
Z
,
θ
(
i
)
)
)
−
l
n
P
(
Y
∣
θ
(
i
)
)
\begin{aligned}l(\theta) - l(\theta^{(i)}) & = ln\left(\sum_{Z} P(Y|Z,\theta)P(Z|\theta) \right) - lnP(Y|\theta^{(i)})\\ & = ln\left(\sum_Z P(Y|Z,\theta^{(i)}) \dfrac{P(Y|Z,\theta) P(Z|\theta)}{P(Y|Z,\theta^{(i)})} \right) - lnP(Y|\theta^{(i)})\\ \end{aligned}
l(θ)−l(θ(i))=ln(Z∑P(Y∣Z,θ)P(Z∣θ))−lnP(Y∣θ(i))=ln(Z∑P(Y∣Z,θ(i))P(Y∣Z,θ(i))P(Y∣Z,θ)P(Z∣θ))−lnP(Y∣θ(i))
(
l
n
x
)
′
′
=
−
1
x
2
≤
0
(lnx)'' = -\dfrac{1}{x^2} \leq 0
(lnx)′′=−x21≤0,为凹函数,
∑
Z
P
(
Y
∣
Z
,
θ
(
i
)
)
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Y
∣
Z
,
θ
(
i
)
)
\sum_Z P(Y|Z,\theta^{(i)}) \dfrac{P(Y|Z,\theta) P(Z|\theta)}{P(Y|Z,\theta^{(i)})}
∑ZP(Y∣Z,θ(i))P(Y∣Z,θ(i))P(Y∣Z,θ)P(Z∣θ)是
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Y
∣
Z
,
θ
(
i
)
)
\dfrac{P(Y|Z,\theta) P(Z|\theta)}{P(Y|Z,\theta^{(i)})}
P(Y∣Z,θ(i))P(Y∣Z,θ)P(Z∣θ)的期望,利用Jensen不等式可得凹函数有
f
(
E
[
X
]
)
≥
E
[
f
(
X
)
]
f(E[X]) \geq E[f(X)]
f(E[X])≥E[f(X)],则得到上式下界:
l
(
θ
)
−
l
(
θ
(
i
)
)
=
l
n
(
∑
Z
P
(
Y
∣
Z
,
θ
(
i
)
)
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Y
∣
Z
,
θ
(
i
)
)
)
−
l
n
P
(
Y
∣
θ
(
i
)
)
(
5.1
)
≥
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
n
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
−
l
n
P
(
Y
∣
θ
(
i
)
)
=
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
n
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Y
∣
θ
(
i
)
)
\begin{aligned}l(\theta) - l(\theta^{(i)}) = & ln\left(\sum_Z P(Y|Z,\theta^{(i)}) \dfrac{P(Y|Z,\theta) P(Z|\theta)}{P(Y|Z,\theta^{(i)})} \right) - lnP(Y|\theta^{(i)}) & \space\space (5.1)\\ & \geq \sum_{Z} P(Z|Y,\theta^{(i)})ln \dfrac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})} - lnP(Y|\theta^{(i)}) \\ & = \sum_{Z} P(Z|Y,\theta^{(i)})ln \dfrac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})} \end{aligned}
l(θ)−l(θ(i))=ln(Z∑P(Y∣Z,θ(i))P(Y∣Z,θ(i))P(Y∣Z,θ)P(Z∣θ))−lnP(Y∣θ(i))≥Z∑P(Z∣Y,θ(i))lnP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)−lnP(Y∣θ(i))=Z∑P(Z∣Y,θ(i))lnP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ) (5.1)
为什么这么凑Jensen不等式?从后面Q函数的意义可以知道为什么。
令
B
(
θ
,
θ
(
i
)
)
=
^
l
(
θ
(
i
)
)
+
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
n
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Y
∣
θ
(
i
)
)
(6)
B(\theta,\theta^{(i)}) \hat= l(\theta^{(i)}) + \sum_{Z}P(Z|Y,\theta^{(i)})ln\dfrac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})} \tag{6}
B(θ,θ(i))=^l(θ(i))+Z∑P(Z∣Y,θ(i))lnP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)(6)
则
l
(
θ
)
≥
B
(
θ
,
θ
(
i
)
)
(7)
l(\theta) \geq B(\theta,\theta^{(i)}) \tag{7}
l(θ)≥B(θ,θ(i))(7)
即函数
B
(
θ
,
θ
(
i
)
)
B(\theta,\theta^{(i)})
B(θ,θ(i))是
l
(
θ
)
l(\theta)
l(θ)的一个下界,而且式(6)可知
l
(
θ
(
i
)
)
=
B
(
θ
(
i
)
,
θ
(
i
)
)
(8)
l(\theta^{(i)}) = B(\theta^{(i)},\theta^{(i)}) \tag{8}
l(θ(i))=B(θ(i),θ(i))(8)
因此,任何可以使
B
(
θ
,
θ
(
i
)
)
B(\theta,\theta^{(i)})
B(θ,θ(i))增大的
θ
\theta
θ,也可以使
l
(
θ
)
l(\theta)
l(θ)增大。为了使
l
(
θ
)
l(\theta)
l(θ)有尽可能的增大,选择
θ
(
i
+
1
)
\theta^{(i+1)}
θ(i+1)使
B
(
θ
,
θ
(
i
)
)
B(\theta,\theta^{(i)})
B(θ,θ(i))达到极大,即
θ
(
i
+
1
)
=
a
r
g
max
θ
B
(
θ
,
θ
(
i
)
)
(9)
\theta^{(i + 1)} = arg\space \max_{\theta}B(\theta,\theta^{(i)}) \tag{9}
θ(i+1)=arg θmaxB(θ,θ(i))(9)
现在求
θ
(
i
+
1
)
\theta^{(i + 1)}
θ(i+1)的表达式。省去对
θ
\theta
θ的极大化而言是常数的项,由式(6)、式(9),有
θ
(
i
+
1
)
=
a
r
g
max
θ
(
l
(
θ
(
i
)
)
+
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
n
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Y
∣
θ
(
i
)
)
)
=
a
r
g
max
θ
(
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
n
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
)
=
a
r
g
max
θ
(
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
n
P
(
Y
,
Z
∣
θ
)
)
=
a
r
g
max
θ
Q
(
θ
,
θ
(
i
)
)
(10)
\begin{aligned} \theta^{(i+1)} &= arg\space \max_{\theta} \left( l(\theta^{(i)}) + \sum_{Z}P(Z|Y,\theta^{(i)})ln\dfrac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\right) \\ & = arg\space \max_{\theta} \left(\sum_{Z}P(Z|Y,\theta^{(i)})lnP(Y|Z,\theta)P(Z|\theta)\right) \\ & = arg\space \max_{\theta} \left(\sum_{Z}P(Z|Y,\theta^{(i)})lnP(Y,Z|\theta) \right) \\ & = arg\space \max_{\theta} Q(\theta,\theta^{(i)}) \tag{10} \end{aligned}
θ(i+1)=arg θmax(l(θ(i))+Z∑P(Z∣Y,θ(i))lnP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ))=arg θmax(Z∑P(Z∣Y,θ(i))lnP(Y∣Z,θ)P(Z∣θ))=arg θmax(Z∑P(Z∣Y,θ(i))lnP(Y,Z∣θ))=arg θmaxQ(θ,θ(i))(10)
式(10)等价于EM算法的一次迭代,即求
Q
Q
Q函数及其极大化。EM算法是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。
(2)Andrew NG关于EM算法的推导
这篇博客里面有介绍Andrew NG关于EM算法的推导,和李航的统计学习方法不一样,可以相互参考着看,异曲同工。不用特意知道为什么那么去凑Jensen不等式。
l
(
θ
)
=
l
n
P
(
Y
∣
θ
)
=
l
n
∑
Z
P
(
Y
,
Z
∣
θ
)
=
∑
j
=
1
N
l
n
∑
i
P
(
y
j
,
z
i
∣
θ
)
=
∑
j
=
1
N
l
n
∑
i
Q
P
(
y
j
,
z
i
∣
θ
)
Q
≥
∑
j
=
1
N
∑
i
Q
l
n
P
(
y
j
,
z
i
∣
θ
)
Q
(10.1)
\begin{aligned}l(\theta) & = lnP(Y|\theta) = ln \sum_{Z} P(Y,Z|\theta) \\ & = \sum_{j=1}^N ln\sum_i P(y_j,z_i|\theta) \\ & = \sum_{j=1}^N ln \sum_i Q \dfrac{P(y_j,z_i|\theta)}{Q} \\ & \geq \sum_{j=1}^N \sum_i Q\space ln\dfrac{P(y_j,z_i|\theta)}{Q} \tag{10.1}\\ \end{aligned}
l(θ)=lnP(Y∣θ)=lnZ∑P(Y,Z∣θ)=j=1∑Nlni∑P(yj,zi∣θ)=j=1∑Nlni∑QQP(yj,zi∣θ)≥j=1∑Ni∑Q lnQP(yj,zi∣θ)(10.1)
上面
θ
\theta
θ极大化求解过程中含有隐变量参数以及在对数里面有求和操作,求解会非常复杂,所以上式的变形过程中使用了Jensen不等式,
l
n
x
lnx
lnx满足凹函数的条件,那么只需要
∑
i
Q
=
1
\sum_i Q = 1
∑iQ=1上式变形就是成立。另外要使对数似然函数
l
(
θ
)
l(\theta)
l(θ)最大,那么需要在上式的变形中取等号,根据Jensen不等式有
P
(
y
j
,
z
i
∣
θ
)
/
Q
=
c
,
c
P(y_j,z_i|\theta)/Q = c,c
P(yj,zi∣θ)/Q=c,c是常数的时候等号成立。则有
∑
i
P
(
y
j
,
z
i
∣
θ
)
/
c
=
1
⟹
∑
i
P
(
y
j
,
z
i
∣
θ
)
=
c
⟹
Q
=
P
(
y
j
,
z
i
∣
θ
)
∑
i
P
(
y
j
,
z
i
∣
θ
)
=
P
(
y
j
,
z
i
∣
θ
)
P
(
y
j
∣
θ
)
=
P
(
z
i
∣
y
j
,
θ
)
=
Q
j
(
z
i
)
(10.2)
\begin{aligned}\sum_i P(y_j,z_i|\theta)/c = 1 & \Longrightarrow \sum_i P(y_j,z_i|\theta) = c \\ & \Longrightarrow Q = \dfrac{P(y_j,z_i|\theta)}{\sum_i P(y_j,z_i|\theta)} = \dfrac{P(y_j,z_i|\theta)}{P(y_j|\theta)} = P(z_i|y_j,\theta) = Q_j(z_i) \tag{10.2} \end{aligned}
i∑P(yj,zi∣θ)/c=1⟹i∑P(yj,zi∣θ)=c⟹Q=∑iP(yj,zi∣θ)P(yj,zi∣θ)=P(yj∣θ)P(yj,zi∣θ)=P(zi∣yj,θ)=Qj(zi)(10.2)
其中
Q
j
(
z
i
)
Q_j(z_i)
Qj(zi)为
z
i
z_i
zi的后验概率,求解
Q
j
(
z
i
)
Q_j(z_i)
Qj(zi)过程称为E步,即固定参数
θ
\theta
θ,求出使得Jensen变形中取等号的
Q
j
(
z
i
)
Q_j(z_i)
Qj(zi)。
所以有
l
(
θ
)
≥
∑
j
=
1
N
∑
i
P
(
z
i
∣
y
j
,
θ
)
l
n
P
(
y
j
,
z
i
∣
θ
)
P
(
z
i
∣
y
j
,
θ
)
(10.3)
l(\theta) \geq \sum_{j=1}^N \sum_i P(z_i|y_j,\theta)\space ln\dfrac{P(y_j,z_i|\theta)}{P(z_i|y_j,\theta)} \tag{10.3}
l(θ)≥j=1∑Ni∑P(zi∣yj,θ) lnP(zi∣yj,θ)P(yj,zi∣θ)(10.3)
M步:算出
Q
j
(
z
i
)
Q_j(z_i)
Qj(zi)也就是有了隐变量的后验概率后,就可以通过极大似然估计进行求解最优的参数
θ
\theta
θ作为
θ
(
i
+
1
)
\theta^{(i+1)}
θ(i+1)进行下一轮迭代,直到迭代停止条件。
对比式(10)和式(10.3)可以发现统计学习方法里面的 Q Q Q函数实际上是 l ( θ ) l(\theta) l(θ)的一个变形,和Andrew NG推导里面的 l ( θ ) l(\theta) l(θ)形式几乎是一样的,只是因为统计学习方法在M步求解极大化时把常数项参数省去了。两个推导中的 Q Q Q函数意义不一样,只是都用了同一个名字。
按上面方式讲解EM算法一篇非常不错的博客(EM算法)The EM Algorithm。
3、统计学习方法EM算法流程
输入:观测变量数据 Y Y Y,隐变量数据 Z Z Z,联合分布 P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Z∣θ),条件分布 P ( Z ∣ Y , θ ) P(Z|Y,\theta) P(Z∣Y,θ);
输出:模型参数 θ \theta θ。
(1)选择参数的初值 θ ( 0 ) \theta^{(0)} θ(0),开始迭代;初值可以任意选择,但需注意EM算法对初值是敏感的。
(2)E步:记 θ ( i ) \theta^{(i)} θ(i)为第 i i i次迭代参数 θ \theta θ的估计值,在第 i + 1 i + 1 i+1次迭代的E步,计算
Q ( θ , θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) l n P ( Y , Z ∣ θ ) = E Z [ l n P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] (11) Q(\theta,\theta^{(i)}) = \sum_{Z}P(Z|Y,\theta^{(i)})lnP(Y,Z|\theta) = E_Z[lnP(Y,Z|\theta)|Y,\theta^{(i)}] \tag{11} Q(θ,θ(i))=Z∑P(Z∣Y,θ(i))lnP(Y,Z∣θ)=EZ[lnP(Y,Z∣θ)∣Y,θ(i)](11)
- 上式的函数 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i))是EM算法的核心,称为 Q Q Q函数。
- 需要计算 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(Z∣Y,θ(i)),即在给定观测数据 Y Y Y和当前的参数估计 θ ( i ) \theta^{(i)} θ(i)下隐变量数据 Z Z Z的条件概率分布,作为隐变量的现估计值。
- Q Q Q函数:完全数据的对数似然函数 l n P ( Y , Z ∣ θ ) lnP(Y,Z|\theta) lnP(Y,Z∣θ)关于在给定观测数据 Y Y Y和当前参数 θ ( i ) \theta^{(i)} θ(i)下对未观测数据 Z Z Z的条件概率分布 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(Z∣Y,θ(i))的期望称为 Q Q Q函数。
(3)M步:求使 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i))极大化的 θ \theta θ,确定第 i + 1 i+1 i+1次迭代的参数的估计值 θ ( i + 1 ) \theta^{(i + 1)} θ(i+1)
θ ( i + 1 ) = a r g max θ Q ( θ , θ ( i ) ) (12) \theta^{(i+1)} = arg\space \max_{\theta} Q(\theta,\theta^{(i)}) \tag{12} θ(i+1)=arg θmaxQ(θ,θ(i))(12)
(4)重复第(2)步和第(3)步,直到收敛。给出停止迭代的条件,一般是对较小的正数 ϵ 1 , ϵ 2 \epsilon_1,\epsilon_2 ϵ1,ϵ2,若满足
∣ ∣ θ ( i + 1 ) − θ ( i ) ∣ ∣ < ϵ 1 o r ∣ ∣ Q ( θ ( i + 1 ) , θ ( i ) ) − Q ( θ ( i ) , θ ( i ) ) ∣ ∣ < ϵ 2 (13) ||\theta^{(i + 1)} - \theta^{(i)}|| < \epsilon_1 \space or \space\space ||Q(\theta^{(i + 1)},\theta^{(i)}) - Q(\theta^{(i)},\theta^{(i)}) ||< \epsilon_2 \tag{13} ∣∣θ(i+1)−θ(i)∣∣<ϵ1 or ∣∣Q(θ(i+1),θ(i))−Q(θ(i),θ(i))∣∣<ϵ2(13)
4、EM算法直观解释
在下图中给出了EM算法的直观解释。图中上方曲线为
l
(
θ
)
l(\theta)
l(θ),下方曲线为
B
(
θ
,
θ
(
i
)
)
B(\theta,\theta^{(i)})
B(θ,θ(i))。
B
(
θ
,
θ
(
i
)
)
B(\theta,\theta^{(i)})
B(θ,θ(i))为对数似然函数
l
(
θ
)
l(\theta)
l(θ)的下界。两个函数在点
θ
=
θ
(
i
)
\theta = \theta^{(i)}
θ=θ(i)处相等。由式(9)和(10),EM算法找到下一个点
θ
(
i
+
1
)
\theta^{(i+1)}
θ(i+1)使函数
B
(
θ
,
θ
(
i
)
)
B(\theta,\theta^{(i)})
B(θ,θ(i))极大化,也使函数
Q
(
θ
,
θ
(
i
)
)
Q(\theta,\theta^{(i)})
Q(θ,θ(i))极大化。这时由于
l
(
θ
)
≥
B
(
θ
,
θ
(
i
)
)
l(\theta) \geq B(\theta,\theta^{(i)})
l(θ)≥B(θ,θ(i)),函数
B
(
θ
,
θ
(
i
)
)
B(\theta,\theta^{(i)})
B(θ,θ(i))的增加,保证对数似然函数
l
(
θ
)
l(\theta)
l(θ)在每次迭代中也是增加的。EM算法在点
θ
(
i
+
1
)
\theta^{(i+1)}
θ(i+1)重新计算
Q
Q
Q函数值,进行下一次迭代。在这个过程中,对数似然函数
l
(
θ
)
l(\theta)
l(θ)不断增大。从图中可以推断出EM算法不能保证找到全局最优值。
5、EM算法在非监督学习中的应用
监督学习是由训练数据 { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } \{(x_1,y_1),(x_2,y_2),\cdots ,(x_N,y_N)\} {(x1,y1),(x2,y2),⋯,(xN,yN)}学习条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)或决策函数 Y = f ( X ) Y = f(X) Y=f(X)作为模型,用于分类、回归、标注等任务。这时训练数据的每个样本点由输入和输出对组成。
有时训练数据只有输入没有对应的输出 { ( x 1 , ) , ( x 2 , ) , ⋯ , ( x N , ) } \{(x_1,),(x_2,),\cdots ,(x_N,)\} {(x1,),(x2,),⋯,(xN,)},从这样的数据学习模型称为非监督学习问题。EM算法可以用于生成模型的非监督学习。生成模型由联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)表示,可以认为非监督学习训练数据是联合概率分布产生的数据。 X X X为观测数据, Y Y Y为未观测数据。
三、EM算法的收敛性
EM算法提供一种近似计算含有隐变量概率模型的极大似然估计的方法。EM算法的最大优点是简单性和普适性。对EM算法的两个疑问:
- 1、EM算法得到的估计序列是否收敛?
- 2、如果收敛,是否收敛到全局最大值或者局部最大值?
EM算法定理1:设
P
(
Y
∣
θ
)
P(Y|\theta)
P(Y∣θ)为观测数据的似然函数,
θ
(
i
)
(
i
=
1
,
2
,
⋯
)
\theta^{(i)}(i =1,2,\cdots)
θ(i)(i=1,2,⋯)为EM算法得到的参数估计序列,
P
(
Y
∣
θ
(
i
)
)
(
i
=
1
,
2
,
⋯
)
P(Y|\theta^{(i)})(i =1,2,\cdots)
P(Y∣θ(i))(i=1,2,⋯)为对应的似然函数序列,则
P
(
Y
∣
θ
(
i
)
)
P(Y|\theta^{(i)})
P(Y∣θ(i))是单调递增的,即
P
(
Y
∣
θ
(
i
+
1
)
)
≥
P
(
Y
∣
θ
(
i
)
)
P(Y|\theta^{(i+1)}) \geq P(Y|\theta^{(i)})
P(Y∣θ(i+1))≥P(Y∣θ(i))
EM算法定理2:设 l ( θ ) = l n P ( Y ∣ θ ) l(\theta) = lnP(Y|\theta) l(θ)=lnP(Y∣θ)为观测数据的对数似然函数, θ ( i ) ( i = 1 , 2 , ⋯ ) \theta^{(i)}(i =1,2,\cdots) θ(i)(i=1,2,⋯)为EM算法得到的参数估计序列, l ( θ ( i ) ) ( i = 1 , 2 , ⋯ ) l(\theta^{(i)})(i =1,2,\cdots) l(θ(i))(i=1,2,⋯)为对应的对数似然函数序列。
- (1)如果 P ( Y ∣ θ ) P(Y|\theta) P(Y∣θ)有上界,则 l ( θ ( i ) ) = l n P ( Y ∣ θ ( i ) ) l(\theta^{(i)}) = lnP(Y|\theta^{(i)}) l(θ(i))=lnP(Y∣θ(i))收敛到某一值 l ∗ l^* l∗;
- (2)在函数 Q ( θ , θ ′ ) Q(\theta,\theta') Q(θ,θ′)与 l ( θ ) l(\theta) l(θ)满足一定条件下,由EM算法得到的参数估计序列 θ ( i ) \theta^{(i)} θ(i)的收敛值 θ ∗ \theta^* θ∗是 l ( θ ) l(\theta) l(θ)的稳定点。
定理1 ( P ( Y ∣ θ ( i + 1 ) ) ≥ P ( Y ∣ θ ( i ) ) ) (P(Y|\theta^{(i+1)}) \geq P(Y|\theta^{(i)})) (P(Y∣θ(i+1))≥P(Y∣θ(i)))的证明:
由于
P
(
Y
∣
θ
)
=
P
(
Y
,
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
)
P(Y|\theta) = \dfrac{P(Y,Z|\theta)}{P(Z|Y,\theta)}
P(Y∣θ)=P(Z∣Y,θ)P(Y,Z∣θ)
取对数有
l
n
P
(
Y
∣
θ
)
=
l
n
P
(
Y
,
Z
∣
θ
)
−
l
n
P
(
Z
∣
Y
,
θ
)
(14)
lnP(Y|\theta) = lnP(Y,Z|\theta) - lnP(Z|Y,\theta) \tag{14}
lnP(Y∣θ)=lnP(Y,Z∣θ)−lnP(Z∣Y,θ)(14)
根据式(11)有
Q
Q
Q函数
Q
(
θ
,
θ
(
i
)
)
=
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
n
P
(
Y
,
Z
∣
θ
)
Q(\theta,\theta^{(i)}) = \sum_{Z}P(Z|Y,\theta^{(i)})lnP(Y,Z|\theta)
Q(θ,θ(i))=Z∑P(Z∣Y,θ(i))lnP(Y,Z∣θ)
令
H
(
θ
,
θ
(
i
)
)
=
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
n
P
(
Z
∣
Y
,
θ
)
(15)
H(\theta,\theta^{(i)}) = \sum_{Z}P(Z|Y,\theta^{(i)})lnP(Z|Y,\theta) \tag{15}
H(θ,θ(i))=Z∑P(Z∣Y,θ(i))lnP(Z∣Y,θ)(15)
于是对数似然函数可以写成
l
n
P
(
Y
∣
θ
)
=
Q
(
θ
,
θ
(
i
)
)
−
H
(
θ
,
θ
(
i
)
)
(16)
lnP(Y|\theta) = Q(\theta,\theta^{(i)}) - H(\theta,\theta^{(i)}) \tag{16}
lnP(Y∣θ)=Q(θ,θ(i))−H(θ,θ(i))(16)
在式(16)中分别取
θ
\theta
θ为
θ
(
i
+
1
)
\theta^{(i+1)}
θ(i+1)和
θ
(
i
)
\theta^{(i)}
θ(i)并相减,有
l
n
P
(
Y
∣
θ
(
i
+
1
)
)
−
l
n
P
(
Y
∣
θ
(
i
)
)
=
[
Q
(
θ
(
i
+
1
)
,
θ
(
i
)
)
−
Q
(
θ
(
i
)
,
θ
(
i
)
)
]
−
[
H
(
θ
(
i
+
1
)
,
θ
(
i
)
)
−
H
(
θ
(
i
)
,
θ
(
i
)
)
]
(17)
lnP(Y|\theta^{(i+1)}) - lnP(Y|\theta^{(i)}) = [Q(\theta^{(i+1)},\theta^{(i)}) - Q(\theta^{(i)},\theta^{(i)})]-[H(\theta^{(i+1)},\theta^{(i)}) - H(\theta^{(i)},\theta^{(i)})] \tag{17}
lnP(Y∣θ(i+1))−lnP(Y∣θ(i))=[Q(θ(i+1),θ(i))−Q(θ(i),θ(i))]−[H(θ(i+1),θ(i))−H(θ(i),θ(i))](17)
由于
θ
(
i
+
1
)
\theta^{(i+1)}
θ(i+1)使
Q
(
θ
,
θ
(
i
)
)
Q(\theta,\theta^{(i)})
Q(θ,θ(i))达到极大,所以有
Q
(
θ
(
i
+
1
)
,
θ
(
i
)
)
−
Q
(
θ
(
i
)
,
θ
(
i
)
)
≥
0
(18)
Q(\theta^{(i+1)},\theta^{(i)}) - Q(\theta^{(i)},\theta^{(i)}) \geq 0 \tag{18}
Q(θ(i+1),θ(i))−Q(θ(i),θ(i))≥0(18)
对于式(17)等式右边第2项
H
(
θ
(
i
+
1
)
,
θ
(
i
)
)
−
H
(
θ
(
i
)
,
θ
(
i
)
)
=
∑
Z
(
l
n
P
(
Z
∣
Y
,
θ
(
i
+
1
)
)
P
(
Z
∣
Y
,
θ
(
i
)
)
)
P
(
Z
∣
Y
,
θ
(
i
)
)
≤
l
n
(
∑
Z
P
(
Z
∣
Y
,
θ
(
i
+
1
)
)
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Z
∣
Y
,
θ
(
i
)
)
)
=
l
n
∑
Z
P
(
Z
∣
Y
,
θ
(
i
+
1
)
)
=
0
(19)
\begin{aligned} H(\theta^{(i+1)},& \theta^{(i)}) - H(\theta^{(i)},\theta^{(i)}) \\ & = \sum_Z\left( ln\dfrac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})} \right)P(Z|Y,\theta^{(i)}) \\ & \leq ln\left(\sum_Z \dfrac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})} P(Z|Y,\theta^{(i)})\right) \\ & = ln\sum_Z P(Z|Y,\theta^{(i+1)}) = 0 \tag{19} \end{aligned}
H(θ(i+1),θ(i))−H(θ(i),θ(i))=Z∑(lnP(Z∣Y,θ(i))P(Z∣Y,θ(i+1)))P(Z∣Y,θ(i))≤ln(Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i+1))P(Z∣Y,θ(i)))=lnZ∑P(Z∣Y,θ(i+1))=0(19)
由式(18)和式(19)可以证明
l
n
P
(
Y
∣
θ
(
i
+
1
)
)
−
l
n
P
(
Y
∣
θ
(
i
)
)
≥
0
lnP(Y|\theta^{(i+1)}) - lnP(Y|\theta^{(i)}) \geq 0
lnP(Y∣θ(i+1))−lnP(Y∣θ(i))≥0。证毕。
定理2证明略,EM算法的收敛性包含关于对数似然序列 l ( θ ( i ) ) l(\theta^{(i)}) l(θ(i))的收敛性和关于参数估计序列 θ ( i ) \theta^{(i)} θ(i)的收敛性两层意思,前者并不蕴涵后者。定理只能保证参数估计序列收敛到对数似然函数序列的稳定点,不能保证收敛到极大值点。所以在应用中,初值的选择变得很重要,常用的办法是选取几个不同的初值进行迭代,然后对得到的各个估计值加以比较,从中选择最好的。
四、高斯混合模型GMM
五、EM算法的推广
参考资料: