文章目录
(2019.6.30)这篇博客本来是简单的记录了在读《统计学习方法》——EM算法部分的读后感,但最近因为阅读了《百面机器学习》,让我对EM算法有了更进一步的理解,特对博文进行了更新。
EM算法是一种迭代算法,用于含有隐含变量的概率模型参数的极大似然估计,或者极大后验概率估计。EM算法的每次迭代由两步组成:E步,求expection;M步,求maximization. 此算法也成为期望极大算法(expection maximization),EM算法。
EM算法与初值的选取有关,选择不同的初值可能得到不同的参数估计值。一般用 Y Y Y代表观测随机变量的数据, Z Z Z表示隐随机变量的数据。 Y Y Y和 Z Z Z连在一起称为完全数据,观测数据 Y Y Y又称为不完全数据。
1. EM 算法的引入
1.1 EM 算法
假设给定观测数据 Y Y Y,其概率分布是 P ( Y ∣ θ ) P(Y|\theta) P(Y∣θ),其中 θ \theta θ是需要估计的模型参数,那么不完全数据 Y Y Y的似然函数是 P ( Y ∣ θ ) P(Y|\theta) P(Y∣θ),对数似然函数是 L ( θ ) = l o g P ( Y ∣ θ ) L(\theta)=logP(Y|\theta) L(θ)=logP(Y∣θ);假设 Y Y Y和 Z Z Z的联合概率分布是 P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Z∣θ),那么完全数据的对数似然函数是 l o g P ( Y , Z ∣ θ ) logP(Y,Z|\theta) logP(Y,Z∣θ).
- EM算法
EM算法是通过迭代求 L ( θ ) = l o g P ( Y ∣ θ ) L(\theta)=logP(Y|\theta) L(θ)=logP(Y∣θ)的极大似然估计,每次迭代均分为E步,求期望;M步,求极大化,流程如下:
输入:观测变量 Y Y Y,隐变量数据 Z Z Z,联合分布 P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Z∣θ),条件分布 P ( Y ∣ Z , θ ) P(Y|Z,\theta) P(Y∣Z,θ);
输出:模型参数 θ \theta θ.
(1)选择参数的初值 θ ( 0 ) \theta^{(0)} θ(0),开始迭代;
(2)E步:记 θ ( i ) \theta^{(i)} θ(i)为第 i i i次迭代参数 θ \theta θ的估计值,在第 i + 1 i+1 i+1次迭代的 E E E步,计算 Q ( θ , θ ( i ) ) = E Z [ l o g P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] Q(\theta,\theta^{(i)})=E_Z[logP(Y,Z|\theta)|Y,\theta^{(i)}] Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]
= ∑ Z l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) =\sum_ZlogP(Y,Z|\theta)P(Z|Y,\theta^{(i)}) =Z∑logP(Y,Z∣θ)P(Z∣Y,θ(i))这里的 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(Z∣Y,θ(i))是在给定观测数据 Y Y Y和当前的参数估计 θ ( i ) \theta^{(i)} θ(i)下的隐变量数据 Z Z Z的条件概率分布;
(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 m a x θ Q ( θ , θ ( i ) ) \theta^{(i+1)}=arg\ max_\theta \ Q(\theta,\theta^{(i)}) θ(i+1)=arg maxθ Q(θ,θ(i))
(4)重复第(2)步和第(3)步,直到收敛。
其中函数 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i))是EM算法的核心,成为Q函数。 - Q函数定义:完全数据的对数似然函数
l
o
g
P
(
Y
,
Z
∣
θ
)
logP(Y,Z|\theta)
logP(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
(
θ
,
θ
(
i
)
)
=
E
Z
[
l
o
g
P
(
Y
,
Z
∣
θ
)
∣
Y
,
θ
(
i
)
]
Q(\theta,\theta^{(i)})=E_Z[logP(Y,Z|\theta)|Y,\theta^{(i)}]
Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]
= ∑ Z l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) =\sum_ZlogP(Y,Z|\theta)P(Z|Y,\theta^{(i)}) =Z∑logP(Y,Z∣θ)P(Z∣Y,θ(i)) - 关于EM算法的几点说明:
步骤(1)参数的初值可以任意选取,但需注意EM算法对初值选取比较敏感;
步骤(2)E步求 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i)). Q Q Q函数式中 Z Z Z是未观测数据, Y Y Y是观测数据.
步骤(3)M步求 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i))的极大化,得到 θ ( i + 1 ) \theta^{(i+1)} θ(i+1),完成一次迭代,每次迭代使似然函数增大或达到局部最大值;
步骤(4)给出停止迭代的条件,一般是对比较小的正数 ε 1 , ε 2 \varepsilon_1,\varepsilon_2 ε1,ε2,若满足 ∣ ∣ θ ( i + 1 ) − θ ( i ) ∣ ∣ < ε 1 o r ∣ ∣ Q ( θ ( i + 1 ) , θ ( i ) ) − Q ( θ ( i ) , θ ( i ) ) ∣ ∣ < ε 2 ||\theta^{(i+1)}-\theta^{(i)}||<\varepsilon_1 or ||Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})||<\varepsilon_2 ∣∣θ(i+1)−θ(i)∣∣<ε1or∣∣Q(θ(i+1),θ(i))−Q(θ(i),θ(i))∣∣<ε2则停止迭代.
1.2 EM算法的推导
1.2.1 《统计学习方法》中的推导
通过近似求解观测数据的对数似然函数的极大化问题导出EM算法,从而清楚的看到EM算法的作用。对于一个含有隐变量的概率模型,目标是极大化观测数据
Y
Y
Y关于参数
θ
\theta
θ的对数似然函数,即极大化
L
(
θ
)
=
l
o
g
P
(
Y
∣
θ
)
=
l
o
g
∑
Z
P
(
Y
,
Z
∣
θ
)
=
l
o
g
(
∑
Z
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
)
L(\theta)=logP(Y|\theta)=log\sum_{Z}P(Y,Z|\theta)=log(\sum_ZP(Y|Z,\theta)P(Z|\theta))
L(θ)=logP(Y∣θ)=logZ∑P(Y,Z∣θ)=log(Z∑P(Y∣Z,θ)P(Z∣θ))
难点在于上式中有未观测数据并有包含和的对数,而EM算法是通过迭代逐步近似极大化
L
(
θ
)
L(\theta)
L(θ).假设第
i
i
i次迭代后
θ
\theta
θ的估计值是
θ
(
i
)
\theta^{(i)}
θ(i).希望新的估计值
θ
\theta
θ能使
L
(
θ
)
L(\theta)
L(θ)增加,即
L
(
θ
)
>
L
(
θ
(
i
)
)
L(\theta)>L(\theta^{(i)})
L(θ)>L(θ(i)),进而逐步达到最大值.两者的差为:
L
(
θ
)
−
L
(
θ
(
i
)
)
=
l
o
g
(
∑
Z
P
(
Y
∣
Z
,
θ
)
)
−
l
o
g
P
(
Y
∣
θ
(
i
)
)
L(\theta)-L(\theta^{(i)})=log(\sum_ZP(Y|Z,\theta))-logP(Y|\theta^{(i)})
L(θ)−L(θ(i))=log(Z∑P(Y∣Z,θ))−logP(Y∣θ(i))
根据Jensen不等式:(Jensen不等式是许多不等式推导的基础)
l
o
g
∑
j
λ
j
y
j
≥
∑
j
λ
j
l
o
g
y
j
log\sum_j\lambda_jy_j \geq \sum_j\lambda_jlogy_j
logj∑λjyj≥j∑λjlogyj其中
λ
j
≥
0
,
∑
j
λ
j
=
1
\lambda_j \geq0,\sum_j\lambda_j=1
λj≥0,∑jλj=1. 能够推导出
L
(
θ
)
−
L
(
θ
(
i
)
)
L(\theta)-L(\theta^{(i)})
L(θ)−L(θ(i))的下界:
L
(
θ
)
−
L
(
θ
(
i
)
)
=
l
o
g
[
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
]
−
l
o
g
P
(
Y
∣
θ
(
i
)
)
L(\theta)-L(\theta^{(i)})=log[\sum_ZP(Z|Y,\theta^{(i)})\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}]-logP(Y|\theta^{(i)})
L(θ)−L(θ(i))=log[Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)]−logP(Y∣θ(i))
≥
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
−
l
o
g
P
(
Y
∣
θ
(
i
)
)
\geq\sum_ZP(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}-logP(Y|\theta^{(i)})
≥Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)−logP(Y∣θ(i))
=
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Y
∣
θ
(
i
)
)
=\sum_ZP(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}
=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)令
B
(
θ
,
θ
(
i
)
)
=
^
L
(
θ
(
i
)
)
+
∑
Z
P
(
Z
,
Y
∣
θ
(
i
)
)
l
o
g
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Y
∣
θ
(
i
)
)
B(\theta,\theta^{(i)})\hat=L(\theta^{(i)})+\sum_ZP(Z,Y|\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}
B(θ,θ(i))=^L(θ(i))+Z∑P(Z,Y∣θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)
则
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(θ)的一个下界,且
L
(
θ
(
i
)
)
=
B
(
θ
(
i
)
,
θ
(
i
)
)
L(\theta^{(i)})=B(\theta^{(i)},\theta^{(i)})
L(θ(i))=B(θ(i),θ(i))
因此,任何可以使
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
m
a
x
θ
B
(
θ
,
θ
(
i
)
)
\theta^{(i+1)}=arg\ max_\theta B(\theta,\theta^{(i)})
θ(i+1)=arg maxθB(θ,θ(i))
省去对参数
θ
\theta
θ来说是常数的项:
θ
(
i
+
1
)
=
a
r
g
m
a
x
θ
[
L
(
θ
(
i
)
)
+
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Y
∣
θ
(
i
)
)
]
\theta^{(i+1)}=arg\ max_\theta[L(\theta^{(i)})+\sum_ZP(Z|Y,\theta^{(i)})log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}]
θ(i+1)=arg maxθ[L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)]
=
a
r
g
m
a
x
[
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
∣
Z
,
θ
)
P
(
Z
∣
θ
)
]
=arg\ max[\sum_ZP(Z|Y,\theta^{(i)})log P(Y|Z,\theta)P(Z|\theta)]
=arg max[Z∑P(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)]
=
a
r
g
m
a
x
[
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
,
Z
∣
θ
)
]
=arg\ max[\sum_ZP(Z|Y,\theta^{(i)})logP(Y,Z|\theta)]
=arg max[Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ)]
回忆一下期望表达式:
E
(
g
(
Z
)
)
=
∑
Z
k
P
(
Z
=
Z
k
)
g
(
Z
k
)
E(g(Z))=\sum_{Z_k}P(Z=Z_k)g(Z_k)
E(g(Z))=Zk∑P(Z=Zk)g(Zk)所以上式可化为
θ
(
i
+
1
)
=
a
r
g
m
a
x
θ
Q
(
θ
,
θ
(
i
)
)
\theta^{(i+1)}=arg\ max_\theta Q(\theta,\theta^{(i)})
θ(i+1)=arg maxθQ(θ,θ(i))
对应了EM算法中
Q
Q
Q函数的定义,上式为等价于EM算法的一次迭代,即求
Q
Q
Q函数及其极大化。EM算法是不断求解下界的极大化逼近求解对数似然函数极大化算法。
1.2.2 另外一种理解方式
给出的不完全观测数据
{
y
1
,
y
2
,
⋯
 
,
y
N
}
\lbrace y_1,y_2,\cdots,y_N \rbrace
{y1,y2,⋯,yN},极大化不完全观测数据对数似然函数:
∑
i
l
o
g
P
(
y
i
;
θ
)
=
∑
i
l
o
g
∑
z
(
i
)
P
(
y
i
,
z
(
i
)
;
θ
)
\sum_ilogP(y_i;\theta)=\sum_ilog\sum_{z^{(i)}}P(y_i,z^{(i)};\theta)
i∑logP(yi;θ)=i∑logz(i)∑P(yi,z(i);θ)
直接使用Jensen不等式,且
H
(
z
(
i
)
)
H(z^{(i)})
H(z(i))是隐变量的一个分布,
∑
z
(
i
)
H
(
z
(
i
)
)
=
1
\sum_{z^{(i)}}H(z^{(i)})=1
∑z(i)H(z(i))=1:
∑
i
l
o
g
∑
z
(
i
)
P
(
y
i
,
z
(
i
)
;
θ
)
=
∑
i
l
o
g
∑
z
(
i
)
H
(
z
(
i
)
)
P
(
y
i
,
z
(
i
)
;
θ
)
H
(
z
(
i
)
)
≥
∑
i
∑
z
(
i
)
H
(
z
(
i
)
)
l
o
g
P
(
y
i
,
z
(
i
)
;
θ
)
H
(
z
(
i
)
)
\sum_ilog\sum_{z^{(i)}}P(y_i,z^{(i)};\theta)=\sum_ilog\sum_{z^{(i)}}H(z^{(i)})\frac {P(y_i,z^{(i)};\theta)}{H(z^{(i)})}\geq\sum_i\sum_{z^{(i)}}H(z^{(i)})log\frac{P(y_i,z^{(i)};\theta)}{H(z^{(i)})}
i∑logz(i)∑P(yi,z(i);θ)=i∑logz(i)∑H(z(i))H(z(i))P(yi,z(i);θ)≥i∑z(i)∑H(z(i))logH(z(i))P(yi,z(i);θ)
当
P
(
y
i
,
z
(
i
)
;
θ
)
H
(
z
(
i
)
)
=
c
o
n
s
t
\frac{P(y_i,z^{(i)};\theta)}{H(z^{(i)})}=const
H(z(i))P(yi,z(i);θ)=const(常数)的时候,Jensen不等式取等号,在这里将问题转化为极大化对数似然函数的下界
∑
i
∑
z
(
i
)
H
(
z
(
i
)
)
l
o
g
P
(
y
i
,
z
(
i
)
;
θ
)
H
(
z
(
i
)
)
\sum_i\sum_{z^{(i)}}H(z^{(i)})log\frac{P(y_i,z^{(i)};\theta)}{H(z^{(i)})}
∑i∑z(i)H(z(i))logH(z(i))P(yi,z(i);θ),从而极大化对数似然函数。根据分布
H
(
z
(
i
)
)
H(z^{(i)})
H(z(i))的概率和是1,以及上述不等式等号成立条件,可以得到
H
(
z
(
i
)
)
=
P
(
z
(
i
)
;
y
i
,
θ
)
H(z^{(i)})=P(z^{(i)};y_i,\theta)
H(z(i))=P(z(i);yi,θ).
所以EM算法首先计算出在当前给定的观测数据Y以及当前参数
θ
\theta
θ下的隐变量概率分布
H
(
z
(
i
)
)
=
P
(
z
(
i
)
;
y
i
,
θ
)
H(z^{(i)})=P(z^{(i)};y_i,\theta)
H(z(i))=P(z(i);yi,θ),然后极大化对数似然函数下界
θ
=
a
r
g
m
a
x
θ
∑
i
∑
z
(
i
)
H
(
z
(
i
)
)
l
o
g
P
(
y
i
,
z
(
i
)
;
θ
)
H
(
z
(
i
)
)
\theta=arg max _\theta \sum_i\sum_{z^{(i)}}H(z^{(i)})log\frac{P(y_i,z^{(i)};\theta)}{H(z^{(i)})}
θ=argmaxθi∑z(i)∑H(z(i))logH(z(i))P(yi,z(i);θ)
1.3 EM算法的收敛性
EM算法提供一种近似计算含有隐变量概率模型的极大似然估计的方法。下面给出EM算法收敛性的两个定理。
定理一
设
P
(
Y
∣
θ
)
P(Y|\theta)
P(Y∣θ)为观测数据的似然函数,
θ
(
i
)
(
i
=
1
,
2
,
⋅
⋅
⋅
)
\theta^{(i)}(i=1,2,\cdot\cdot\cdot)
θ(i)(i=1,2,⋅⋅⋅)为EM算法得到的参数估计序列,
P
(
Y
∣
θ
(
i
)
)
(
i
=
1
,
2
,
⋅
⋅
⋅
)
P(Y|\theta^{(i)})(i=1,2,\cdot\cdot\cdot)
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))
证明:由于
P
(
Y
∣
θ
)
=
P
(
Y
,
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
)
P(Y|\theta)=\frac{P(Y,Z|\theta)}{P(Z|Y,\theta)}
P(Y∣θ)=P(Z∣Y,θ)P(Y,Z∣θ)
取对数有,
l
o
g
P
(
Y
∣
θ
)
=
l
o
g
P
(
Y
,
Z
∣
θ
)
−
l
o
g
P
(
Z
∣
Y
,
θ
)
logP(Y|\theta)=logP(Y,Z|\theta)-logP(Z|Y,\theta)
logP(Y∣θ)=logP(Y,Z∣θ)−logP(Z∣Y,θ)
由于
Q
(
θ
,
θ
(
i
)
)
=
∑
Z
l
o
g
P
(
Y
,
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
Q(\theta,\theta^{(i)})=\sum_ZlogP(Y,Z|\theta)P(Z|Y,\theta^{(i)})
Q(θ,θ(i))=Z∑logP(Y,Z∣θ)P(Z∣Y,θ(i))
设
H
(
θ
,
θ
(
i
)
)
=
∑
Z
l
o
g
P
(
Z
∣
Y
,
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
H(\theta,\theta^{(i)})=\sum_ZlogP(Z|Y,\theta)P(Z|Y,\theta^{(i)})
H(θ,θ(i))=Z∑logP(Z∣Y,θ)P(Z∣Y,θ(i))
于是可以将对数似然函数写成
l
o
g
P
(
Y
∣
θ
)
=
Q
(
θ
,
θ
(
i
)
)
−
H
(
θ
,
θ
(
i
)
)
logP(Y|\theta)=Q(\theta,\theta^{(i)})-H(\theta,\theta^{(i)})
logP(Y∣θ)=Q(θ,θ(i))−H(θ,θ(i))
分别取
θ
\theta
θ为
θ
(
i
)
\theta^{(i)}
θ(i)和
θ
(
i
+
1
)
\theta^{(i+1)}
θ(i+1)并相减,有
l
o
g
P
(
Y
∣
θ
(
i
+
1
)
)
−
l
o
g
P
(
Y
∣
θ
(
i
)
)
logP(Y|\theta^{(i+1)})-logP(Y|\theta^{(i)})
logP(Y∣θ(i+1))−logP(Y∣θ(i))
=
[
Q
(
θ
(
i
+
1
)
,
θ
(
i
)
)
−
Q
(
θ
(
i
)
,
θ
(
i
)
)
]
−
[
H
(
θ
(
i
+
1
)
,
θ
(
i
)
)
−
H
(
θ
(
i
)
,
θ
(
i
)
)
]
=[Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})]-[H(\theta^{(i+1)},\theta^{(i)})-H(\theta^{(i)},\theta^{(i)})]
=[Q(θ(i+1),θ(i))−Q(θ(i),θ(i))]−[H(θ(i+1),θ(i))−H(θ(i),θ(i))]
式子右端的第1项,由于
θ
(
i
+
1
)
\theta^{(i+1)}
θ(i+1)使
Q
(
θ
,
θ
(
i
)
)
Q(\theta,\theta^{(i)})
Q(θ,θ(i))达到极大,所以有
Q
(
θ
(
i
+
1
)
,
θ
(
i
)
)
≥
0
Q(\theta^{(i+1)},\theta^{(i)})\geq 0
Q(θ(i+1),θ(i))≥0
右端第二项:
H
(
θ
(
i
+
1
)
,
θ
(
i
)
)
=
∑
Z
[
l
o
g
P
(
Y
∣
Z
,
θ
(
i
+
1
)
)
P
(
Z
∣
Y
,
θ
(
i
)
)
]
P
(
Z
∣
y
,
θ
(
i
)
)
H(\theta^{(i+1)},\theta^{(i)})=\sum_Z[log\frac{P(Y|Z,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})}]P(Z|y,\theta^{(i)})
H(θ(i+1),θ(i))=Z∑[logP(Z∣Y,θ(i))P(Y∣Z,θ(i+1))]P(Z∣y,θ(i))
≤
l
o
g
[
∑
Z
P
(
Z
∣
Y
,
θ
(
i
+
1
)
)
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Z
∣
Y
,
θ
(
i
)
]
\leq log[\sum_Z \frac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})}P(Z|Y,\theta^{(i)}]
≤log[Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i+1))P(Z∣Y,θ(i)]
=
l
o
g
(
∑
Z
P
(
Z
∣
Y
,
θ
(
i
+
1
)
)
)
=
0
=log(\sum_ZP(Z|Y,\theta^{(i+1)}))=0
=log(Z∑P(Z∣Y,θ(i+1)))=0定理一得证。
定理二
设
L
(
θ
)
=
l
o
g
P
(
Y
∣
θ
)
L(\theta)=logP(Y|\theta)
L(θ)=logP(Y∣θ)为观测数据的对数似然函数,
θ
(
i
)
(
i
=
1
,
2
,
⋅
⋅
⋅
)
\theta^{(i)}(i=1,2,\cdot\cdot\cdot)
θ(i)(i=1,2,⋅⋅⋅)为EM算法得到的参数估计序列,
L
(
θ
(
i
)
)
(
i
=
1
,
2
,
⋅
⋅
⋅
)
L(\theta^{(i)})(i=1,2,\cdot\cdot\cdot)
L(θ(i))(i=1,2,⋅⋅⋅)为对应的对数似然函数序列.
(1)如果
P
(
Y
∣
θ
)
P(Y|\theta)
P(Y∣θ)有上界,则
L
(
θ
(
i
)
)
=
l
o
g
P
(
Y
∣
θ
(
i
)
)
L(\theta^{(i)})=logP(Y|\theta^{(i)})
L(θ(i))=logP(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(θ)的稳定点.
2. 高斯混合模型
2.1 高斯混合模型
- 定义9.2(高斯混合模型) 高斯混合模型是指具有如下形式的概率分布模型: P ( y ∣ θ ) = ∑ k = 1 K α k ϕ ( y ∣ θ k ) P(y|\theta)=\sum_{k=1}^K\alpha_k\phi(y|\theta_k) P(y∣θ)=k=1∑Kαkϕ(y∣θk)其中 α k \alpha_k αk是系数, α k ≥ 0 , ∑ k = 1 K α k = 1 ; ϕ ( y ∣ θ k ) \alpha_k\geq0,\sum_{k=1}^K\alpha_k=1;\phi(y|\theta_k) αk≥0,∑k=1Kαk=1;ϕ(y∣θk)是高斯分布密度, θ k = ( μ k , σ k 2 ) \theta_k=(\mu_k,\sigma_k^2) θk=(μk,σk2), ϕ ( y ∣ θ k ) = 1 2 π σ k e x p ( − ( y − μ k ) 2 2 σ k 2 ) \phi(y|\theta_k)=\frac{1}{\sqrt[]{2\pi}\sigma_k}exp(-\frac{(y-\mu_k)^2}{2\sigma_k^2}) ϕ(y∣θk)=2πσk1exp(−2σk2(y−μk)2)称为第 k k k个模型。
2.2 高斯混合模型参数估计的EM算法
假设观测数据
y
1
,
y
2
,
⋯
 
,
y
N
y_1,y_2,\cdots,y_N
y1,y2,⋯,yN由高斯混合模型生成
P
(
y
∣
θ
)
=
∑
k
=
1
K
α
k
ϕ
(
y
∣
θ
k
)
P(y|\theta)=\sum_{k=1}^K\alpha_k\phi(y|\theta_k)
P(y∣θ)=k=1∑Kαkϕ(y∣θk)其中,
θ
=
(
α
1
,
α
2
,
⋯
 
,
α
K
;
θ
1
,
θ
2
,
⋯
 
,
θ
K
)
,
θ
i
=
(
μ
i
,
σ
i
2
)
,
θ
\theta=(\alpha_1,\alpha_2,\cdots,\alpha_K;\theta_1,\theta_2,\cdots,\theta_K),\theta_i=(\mu_i,\sigma_i^2),\ \theta
θ=(α1,α2,⋯,αK;θ1,θ2,⋯,θK),θi=(μi,σi2), θ就是高斯混合模型中需要确定的参数。
对于多个高斯分布混合模型的EM算法理解,可以在单个高斯模型的基础上进行等价考虑。
- 高斯混合模型的EM算法:
采用EM算法对高斯混合模型参数进行迭代求解,根据当前模型参数,定义分模型 k k k对观测数据 y j y_j yj的影响度(当前的 y j y_j yj的百分之多少是来自模型 j j j)
γ ^ j k = α k ϕ ( y j ∣ θ k ) ∑ k = 1 K α k ϕ ( y j ∣ θ k ) \hat\gamma_{jk}=\frac{\alpha_k\phi(y_j|\theta_k)}{\sum_{k=1}^K\alpha_k\phi(y_j|\theta_k)} γ^jk=∑k=1Kαkϕ(yj∣θk)αkϕ(yj∣θk)表示当前模型下第 j j j个数据来自第 k k k个分模型的概率。
然后参数 μ ^ k 、 σ ^ k 2 、 α ^ k \hat\mu_k、\hat\sigma_k^2、\hat\alpha_k μ^k、σ^k2、α^k的公式为: μ ^ k = ∑ j = 1 N γ ^ j k y j ∑ j = 1 N γ ^ j k \hat\mu_k=\frac{\sum_{j=1}^N\hat\gamma_{jk}y_j}{\sum_{j=1}^N\hat\gamma_{jk}} μ^k=∑j=1Nγ^jk∑j=1Nγ^jkyj
σ ^ k 2 = ∑ j = 1 N γ ^ j k ( y j − μ ^ k ) 2 ∑ j = 1 N γ ^ j k \hat\sigma_k^2=\frac{\sum_{j=1}^N\hat\gamma_{jk}(y_j-\hat\mu_k)^2}{\sum_{j=1}^N\hat\gamma_{jk}} σ^k2=∑j=1Nγ^jk∑j=1Nγ^jk(yj−μ^k)2
α ^ k = ∑ j = 1 N γ ^ j k N \hat\alpha_k=\frac{\sum_{j=1}^N\hat\gamma_{jk}}{N} α^k=N∑j=1Nγ^jk
重复上面的步骤,直到达到迭代停止条件。
3. K-means
书中例题
将可观测数据表示为
Y
=
(
Y
1
,
Y
2
,
⋅
⋅
⋅
,
Y
n
)
T
Y=(Y_1,Y_2,\cdot\cdot\cdot,Y_n)^T
Y=(Y1,Y2,⋅⋅⋅,Yn)T,未观测数据表示为
Z
=
(
Z
1
,
Z
2
,
⋅
⋅
⋅
,
Z
n
)
T
Z=(Z_1,Z_2,\cdot\cdot\cdot,Z_n)^T
Z=(Z1,Z2,⋅⋅⋅,Zn)T,则观测数据的似然函数为
P
(
Y
∣
θ
)
=
∑
Z
P
(
Z
∣
θ
)
P
(
Y
∣
Z
,
θ
)
P(Y|\theta)=\sum_ZP(Z|\theta)P(Y|Z,\theta)
P(Y∣θ)=Z∑P(Z∣θ)P(Y∣Z,θ)即
P
(
Y
∣
θ
)
=
∏
j
=
1
n
[
π
p
y
i
(
1
−
p
)
1
−
y
i
+
(
1
−
π
)
q
y
i
(
1
−
q
)
1
−
y
i
]
P(Y|\theta)=\prod_{j=1}^n[\pi p^{yi}(1-p)^{1-y_i}+(1-\pi)q^{y_i}(1-q)^{1-y_i}]
P(Y∣θ)=j=1∏n[πpyi(1−p)1−yi+(1−π)qyi(1−q)1−yi]
考虑求模型参数
θ
=
(
π
,
p
,
q
)
\theta=(\pi ,p,q)
θ=(π,p,q)的极大似然估计,即
θ
^
=
a
r
g
m
a
x
θ
l
o
g
P
(
Y
∣
θ
)
\hat\theta =arg\ max_\theta \ logP(Y|\theta)
θ^=arg maxθ logP(Y∣θ)这个问题没有解析解,只有通过迭代的方法求解,EM就是可以求解这类问题的一种算法。
- 书中示例的 EM算法求解过程:
首先选取参数的初值,记作 θ ( 0 ) = ( π ( 0 ) , p ( 0 ) , q ( 0 ) ) \theta^{(0)}=(\pi^{(0)},p^{(0)},q^{(0)}) θ(0)=(π(0),p(0),q(0)),通过下面步骤迭代计算参数的估计值直到收敛为止。记第 i i i次迭代参数的估计值为 θ ( i ) = ( π ( i ) , p ( i ) , q ( i ) ) \theta^{(i)}=(\pi^{(i)},p^{(i)},q^{(i)}) θ(i)=(π(i),p(i),q(i)).EM算法的第 i + 1 i+1 i+1次迭代如下:
E E E步:计算在模型参数 π ( i ) , p ( i ) , q ( i ) \pi^{(i)},p^{(i)},q^{(i)} π(i),p(i),q(i)下观测数据 y i y_i yi来自掷硬币 B B B的概率 μ j ( i + 1 ) = π ( i ) ( p ( i ) ) y j ( 1 − p ( i ) ) 1 − y j π ( i ) ( p i ) y j ( 1 − p ( i ) ) 1 − y i + ( 1 − π ( i ) ) ( q ( i ) ) y j ( 1 − q ( i ) ) 1 − y i \mu _j^{(i+1)}=\frac {\pi^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j}} {\pi^{(i)}(p^{i})^{y_j}(1-p^{(i)})^{1-y_i}+(1-\pi^{(i)})(q^{(i)})^{y_j}(1-q^{(i)})^{1-y_i}} μj(i+1)=π(i)(pi)yj(1−p(i))1−yi+(1−π(i))(q(i))yj(1−q(i))1−yiπ(i)(p(i))yj(1−p(i))1−yj
M M M步:计算模型参数的新估计值: π ( i + 1 ) = 1 n ∑ j = 1 n μ j ( i + 1 ) \pi^{(i+1)}= \frac {1}{n} \sum_{j=1}^n \mu_j^{(i+1)} π(i+1)=n1j=1∑nμj(i+1) p ( i + 1 ) = ∑ j = 1 n μ j ( i + 1 ) y i ∑ j = 1 n μ j ( i + 1 ) p^{(i+1)}=\frac {\sum_{j=1}^n\mu_j^{(i+1)}y_i}{\sum_{j=1}^n\mu_j^{(i+1)}} p(i+1)=∑j=1nμj(i+1)∑j=1nμj(i+1)yi q ( i + 1 ) = ∑ j = 1 n ( 1 − μ j ( i + 1 ) ) y j ∑ j = 1 n ( 1 − μ j ( i + 1 ) ) q^{(i+1)}=\frac {\sum_{j=1}^{n}(1-\mu_j^{(i+1)})y_j}{\sum_{j=1}^n(1-\mu_j^{(i+1)})} q(i+1)=∑j=1n(1−μj(i+1))∑j=1n(1−μj(i+1))yj