EM算法(Expectation Maximization Algorithm,期望极大算法)是一种解决优化问题的迭代算法,用于求解含有隐变量的概率模型参数的极大似然估计(MLE)或极大后验概率估计(MAP)。EM算法是一种比较通用的参数估计算法,被广泛用于支持向量机(SMO算法)、朴素贝叶斯、GMM(高斯混合模型)、K-means(K均值聚类)和HMM(隐马尔可夫模型)的参数估计。
理解EM算法(例子)
在统计学中,概率用于在已知一些参数的情况下,预测接下来的所得到的结果;而似然性则是用于在已知某些观测所得到的结果时,对有关事物的性质的参数进行估计。
EM算法和极大似然估计的前提是一样的,都要假设数据总体的分布,如果不知道数据分布,是无法使用EM算法的。
三硬币模型
假设有3枚硬币A,B,C,这些硬币正面出现的概率分别是
π
\pi
π,
p
p
p和
q
q
q。进行如下掷硬币试验:先掷硬币A,根据其结果选出硬币B或硬币C,正面选硬币B,反面选硬币C;然后掷选出的硬币,掷硬币的结果,正面记作1,反面记作0;独立重复n此试验,观测结果:
1
,
1
,
0
,
1
,
0
,
0
,
1
,
0
,
1
,
1
1,1,0,1,0,0,1,0,1,1
1,1,0,1,0,0,1,0,1,1
假设只能观测到掷硬币的结果,不能观测掷硬币的过程,如何估计三硬币出现正面的概率?
该模型的生成模型可写作
P
(
x
∣
θ
)
=
∑
z
P
(
x
,
z
∣
θ
)
=
∑
z
P
(
z
∣
θ
)
P
(
x
∣
z
,
θ
)
=
π
p
x
(
1
−
p
)
1
−
x
+
(
1
−
π
)
q
x
(
1
−
q
)
1
−
x
\begin{aligned} P(x|\theta)&=\sum_zP(x,z|\theta)=\sum_zP(z|\theta)P(x|z,\theta)\\ &=\pi p^x(1-p)^{1-x}+(1-\pi)q^x(1-q)^{1-x} \end{aligned}
P(x∣θ)=z∑P(x,z∣θ)=z∑P(z∣θ)P(x∣z,θ)=πpx(1−p)1−x+(1−π)qx(1−q)1−x
其中,随机变量
X
X
X是观测变量,表示依次试验观测结果是1或0;随机变量
Z
Z
Z是隐变量,表示未观测到的掷硬币A的结果;
θ
=
(
π
,
p
,
q
)
\theta=(\pi,p,q)
θ=(π,p,q)是模型参数。
设观测变量数据 X = ( x 1 , x 2 , … , x n ) X=\left(x_1, x_2, \ldots, x_n\right) X=(x1,x2,…,xn),隐变量数据 Z = ( z 1 , z 2 , … , z n ) Z=\left(z_1, z_2, \ldots, z_n\right) Z=(z1,z2,…,zn), ( X , Z ) (X,Z) (X,Z)称为完全数据。
1. 极大似然估计
定义:
L
(
θ
)
=
∏
i
=
1
n
p
(
x
i
∣
θ
)
=
∏
i
=
1
n
∑
z
P
(
z
∣
θ
)
P
(
x
i
∣
z
,
θ
)
L(\theta)= \prod_{i=1}^{n} p\left(x_{i} | \theta\right)= \prod_{i=1}^{n}\sum_zP(z|\theta)P(x_i|z,\theta)
L(θ)=i=1∏np(xi∣θ)=i=1∏nz∑P(z∣θ)P(xi∣z,θ)
L
(
θ
)
L(\theta)
L(θ)反映的是在不同的参数
θ
\theta
θ取值下,取得当前这个样本集的可能性,称为参数
θ
\theta
θ相对于样本集X的似然函数。对似然函数取对数,将其变成连加的,称为对数似然函数:
log
L
(
θ
)
=
log
∏
i
=
1
n
p
(
x
i
∣
θ
)
=
∑
i
=
1
n
log
p
(
x
i
∣
θ
)
\log L(\theta)=\log \prod_{i=1}^{n} p\left(x_{i} | \theta\right)=\sum_{i=1}^{n} \log p\left(x_{i} | \theta\right)
logL(θ)=logi=1∏np(xi∣θ)=i=1∑nlogp(xi∣θ)
- 取对数之后累积变为累和,求导更加方便;
- 概率累积会出现数值非常小的情况,比如1e-30,由于计算机的精度是有限的,无法识别这一类数据,取对数之后,更易于计算机的识别。
极大似然估计是,已经知道了结果,然后寻求使该结果出现的可能性极大的条件,以此作为估计值。即:
θ
^
=
argmax
log
L
(
θ
)
\hat{\theta}=\operatorname{argmax} \log L(\theta)
θ^=argmaxlogL(θ)
θ
^
\hat{\theta}
θ^为
θ
\theta
θ的极大似然估计量。
这个问题没有解析解,只有通过迭代的方法求解,EM算法就是可以用于求解这个问题的一种迭代算法。
2.EM算法
(1)当我们知道了掷硬币
A
A
A的结果,则可以确定下一步掷硬币B还是硬币C,利用极大似然很容易
(
π
,
p
,
q
)
(\pi,p,q)
(π,p,q)进行估计。
(2)当我们知道了
(
π
,
p
,
q
)
(\pi,p,q)
(π,p,q),才有可能推断出每一个样本点对应的隐变量数据。
EM 算法的思路是使用启发式的迭代方法,先猜想隐含参数(EM 算法的 E 步),接着基于观察数据和猜测的隐含参数一起来极大化对数似然,求解模型参数(EM算法的M步)。由于我们之前的隐含参数是猜测的,所以此时得到的模型参数一般还不是我们想要的结果。我们基于当前得到的模型参数,继续猜测隐含参数(EM算法的 E 步),然后继续极大化对数似然,求解我们的模型参数(EM算法的M步)。以此类推,不断的迭代下去,直到模型分布参数基本无变化,算法收敛,找到合适的模型参数。
EM算法流程
输入:观察数据
x
=
(
x
(
1
)
,
x
(
2
)
,
…
x
(
m
)
)
x=\left(x^{(1)}, x^{(2)}, \ldots x^{(m)}\right)
x=(x(1),x(2),…x(m)),联合分布
p
(
x
,
z
∣
θ
)
p(x, z | \theta)
p(x,z∣θ),条件分布
p
(
z
∣
x
,
θ
)
p(z | x, \theta)
p(z∣x,θ),极大迭代次数
J
J
J,其中z为隐变量。
输出:模型参数
θ
\theta
θ。
- 记第j次迭代后参数 θ \theta θ的估计值为 θ ( j ) \theta^{(j)} θ(j),随机初始化模型参数 θ \theta θ的初值 θ ( 0 ) \theta^{(0)} θ(0);
- E步(求期望。固定模型参数的值,优化隐含数据的分布)
第j+1次迭代:
计算隐变量数据z的条件概率分布:
Q j ( z ( i ) ) : = P ( z ( i ) ∣ x ( i ) , θ ( j ) ) , z ( i ) ∈ Z , i = 1 , 2 , . . . , m Q_{j}\left(z^{(i)}\right):=P\left(z^{(i)} | x^{(i)}, \theta^{(j)}\right),z^{(i)}\in\mathcal{Z},i=1,2,...,m Qj(z(i)):=P(z(i)∣x(i),θ(j)),z(i)∈Z,i=1,2,...,m
其中 Z \mathcal{Z} Z为隐变量z的取值空间。
计算期望:
Q ( θ , θ ( j ) ) = ∑ i = 1 m ∑ z ( i ) ∈ Z Q j ( z ( i ) ) log P ( x ( i ) , z ( i ) ∣ θ ) Q(\theta,\theta^{(j)})=\sum_{i=1}^{m} \sum_{z^{(i)}\in\mathcal{Z}} Q_{j}\left(z^{(i)}\right) \log P\left(x^{(i)}, z^{(i)} | \theta\right) Q(θ,θ(j))=i=1∑mz(i)∈Z∑Qj(z(i))logP(x(i),z(i)∣θ) - M步(取极大。固定隐含数据分布,优化模型参数)
极大化 Q ( θ , θ ( j ) ) Q(\theta,\theta^{(j)}) Q(θ,θ(j))得到 θ \theta θ:
θ ( j + 1 ) : = arg max θ Q ( θ , θ ( j ) ) \theta^{(j+1)}:=\arg \max _{\theta} Q(\theta,\theta^{(j)}) θ(j+1):=argθmaxQ(θ,θ(j)) - 重复E步、M步直至 θ \theta θ收敛,停止迭代。
停止迭代条件:对较小的正数 ϵ 1 \epsilon_1 ϵ1、 ϵ 2 \epsilon_2 ϵ2满足 ∥ θ ( j + 1 ) − θ ( j ) ∥ < ϵ 1 \left\|\theta^{(j+1)}-\theta^{(j)}\right\|<\epsilon_{1} ∥∥θ(j+1)−θ(j)∥∥<ϵ1或 ∥ L ( θ ( j + 1 ) ) − L ( θ ( j ) ) ∥ < ϵ 2 \left\|L\left(\theta^{(j+1)}\right)-L\left(\theta^{(j)}\right)\right\|<\epsilon_{2} ∥∥L(θ(j+1))−L(θ(j))∥∥<ϵ2。
Q Q Q函数: 完全数据的对数似然函数 log P ( X , Z ∣ θ ) \log P(X,Z|\theta) logP(X,Z∣θ)关于在给定观测数据 X X X和当前参数 θ ( j ) \theta^{(j)} θ(j)下对隐变量数据 Z Z Z的条件概率分布 P ( Z ∣ X , θ ( j ) ) P(Z|X,\theta^{(j)}) P(Z∣X,θ(j))的期望称为 Q Q Q函数,即
Q ( θ , θ ( j ) ) = E Z [ log P ( X , Z ∣ θ ) ∣ X , θ ( j ) ] Q(\theta,\theta^{(j)})=E_Z[\log P(X,Z|\theta)|X,\theta^{(j)}] Q(θ,θ(j))=EZ[logP(X,Z∣θ)∣X,θ(j)]
总结来说,要计算 θ \theta θ极大化对数似然函数 log p ( X ∣ θ ) \log p(X|\theta) logp(X∣θ),EM算法的思路是:考虑完全数据集 X , Z {X,Z} X,Z的对数似然函数 log p ( X , Z ∣ θ ) \log p(X,Z|\theta) logp(X,Z∣θ)在隐变量的后验分布 p ( Z ∣ X , θ o l d ) p(Z|X,\theta^{old}) p(Z∣X,θold)下的期望,反复迭代极大化这个期望,即Q函数,最终得到模型的参数值。
EM算法的推导
对于
m
m
m个相互独立的样本
x
=
(
x
(
1
)
,
x
(
2
)
,
…
x
(
m
)
)
x=\left(x^{(1)}, x^{(2)}, \ldots x^{(m)}\right)
x=(x(1),x(2),…x(m)),极大化对数函数找到模型参数
θ
\theta
θ:
θ
=
arg
max
θ
∑
i
=
1
m
log
P
(
x
(
i
)
∣
θ
)
\theta=\arg \max _{\theta} \sum_{i=1}^{m} \log P\left(x^{(i)} | \theta\right)
θ=argθmaxi=1∑mlogP(x(i)∣θ)
如果得到的观测数据有未观测到的隐变量数据
z
=
(
z
(
1
)
,
z
(
2
)
,
…
z
(
m
)
)
z=\left(z^{(1)}, z^{(2)}, \ldots z^{(m)}\right)
z=(z(1),z(2),…z(m)),我们的目标变成了找到合适的
θ
\theta
θ让对数似然函数极大:
θ
=
arg
max
θ
∑
i
=
1
m
log
P
(
x
(
i
)
∣
θ
)
=
arg
max
θ
∑
i
=
1
m
log
∑
z
(
i
)
∈
Z
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
\theta=\arg \max _{\theta} \sum_{i=1}^{m} \log P\left(x^{(i)} | \theta\right)=\arg \max _{\theta} \sum_{i=1}^{m} \log \sum_{z^{(i)}\in\mathcal{Z}} P\left(x^{(i)}, z^{(i)} | \theta\right)
θ=argθmaxi=1∑mlogP(x(i)∣θ)=argθmaxi=1∑mlogz(i)∈Z∑P(x(i),z(i)∣θ)
如果对分别对未知的
θ
\theta
θ和z分别求偏导,求导后形式会非常复杂,所以很难求解得到
θ
\theta
θ和z。考虑引入一个与
z
(
i
)
z^{(i)}
z(i)、
θ
\theta
θ相关的分布
Q
θ
(
z
(
i
)
)
Q_{\theta}\left(z^{(i)}\right)
Qθ(z(i))满足:
∑
z
(
i
)
∈
Z
Q
θ
(
z
(
i
)
)
=
1
,
0
≤
Q
θ
(
z
(
i
)
)
≤
1
\sum_{z^{(i)}\in\mathcal{Z}} Q_{\theta}(z^{(i)})=1,0 \leq Q_{\theta}(z^{(i)}) \leq 1
z(i)∈Z∑Qθ(z(i))=1,0≤Qθ(z(i))≤1
应用Jensen不等式对这个式子进行放缩:
∑
i
=
1
m
log
∑
z
(
i
)
∈
Z
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
=
∑
i
=
1
m
log
∑
z
(
i
)
∈
Z
Q
θ
(
z
(
i
)
)
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
Q
θ
(
z
(
i
)
)
≥
∑
i
=
1
m
∑
z
(
i
)
∈
Z
Q
θ
(
z
(
i
)
)
log
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
Q
θ
(
z
(
i
)
)
\begin{aligned} \sum_{i=1}^{m} \log \sum_{z^{(i)}\in\mathcal{Z}} P\left(x^{(i)}, \quad z^{(i)} | \theta\right) &=\sum_{i=1}^{m} \log \sum_{z^{(i)}\in\mathcal{Z}} Q_{\theta}\left(z^{(i)}\right) \frac{P\left(x^{(i)}, z^{(i)} | \theta\right)}{Q_{\theta}\left(z^{(i)}\right)} \\ & \geq \sum_{i=1}^{m} \sum_{z^{(i)}\in\mathcal{Z}} Q_{\theta}\left(z^{(i)}\right) \log \frac{P\left(x^{(i)}, z^{(i)} | \theta\right)}{Q_{\theta}\left(z^{(i)}\right)} \end{aligned}
i=1∑mlogz(i)∈Z∑P(x(i),z(i)∣θ)=i=1∑mlogz(i)∈Z∑Qθ(z(i))Qθ(z(i))P(x(i),z(i)∣θ)≥i=1∑mz(i)∈Z∑Qθ(z(i))logQθ(z(i))P(x(i),z(i)∣θ)
对数函数是凹函数,满足Jensen不等式: l o g ( E [ y ] ) ≥ E [ l o g ( y ) ] log(E[y])\geq E[log(y)] log(E[y])≥E[log(y)]
其中 { E [ y ] = ∑ i p i y i , p i ≥ 0 , ∑ i p i = 1 p i = Q θ ( z ( i ) ) y i = P ( x ( i ) , z ( i ) ∣ θ ) Q θ ( z ( i ) ) \begin{cases} E[y]=\sum_{i} p_{i} y_{i}, p_{i} \geq 0, \sum_{i} p_{i}=1 \\ p_{i}=Q_{\theta}\left(z^{(i)}\right)\\ \quad\\ y_{i}=\frac{P\left(x^{(i)}, z^{(i)} | \theta\right)}{Q_{\theta}\left(z^{(i)}\right)} \end{cases} ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧E[y]=∑ipiyi,pi≥0,∑ipi=1pi=Qθ(z(i))yi=Qθ(z(i))P(x(i),z(i)∣θ)
这样,对于任意一种分布 Q θ ( z ( i ) ) Q_{\theta}(z^{(i)}) Qθ(z(i)),都给出了目标函数的一个下界,这个下界是 l o g P ( x ( i ) , z ( i ) ∣ θ ) Q θ ( z ( i ) ) log\frac{P\left(x^{(i)}, z^{(i)} | \theta\right)}{Q_{\theta}\left(z^{(i)}\right)} logQθ(z(i))P(x(i),z(i)∣θ)的加权平均,也是我们所说的期望,这就是Expectation的来历。接下来的思路是:选择一个合适的 Q θ ( z ( i ) ) Q_{\theta}(z^{(i)}) Qθ(z(i)),使其给出的下界与目标函数值最接近,然后就有理由通过极大化这个下界来极大化目标函数值。
Q θ ( z ( i ) ) Q_{\theta}(z^{(i)}) Qθ(z(i))的选择:假设 θ \theta θ已经给定
此时,目标函数的下界可由
Q
θ
(
z
(
i
)
)
Q_{\theta}\left(z^{(i)}\right)
Qθ(z(i))和
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
P\left(x^{(i)}, z^{(i)}|\theta\right)
P(x(i),z(i)∣θ)完全确定。我们可以通过调整
Q
θ
(
z
(
i
)
)
Q_{\theta}\left(z^{(i)}\right)
Qθ(z(i))使下界逼近目标函数的真实值,当不等式变成等式时,说明我们调整后的下界就是目标函数真实值了。由 Jensen不等式可知,等式成立的条件是随机变量是常数,则有:
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
Q
θ
(
z
(
i
)
)
=
c
\frac{P\left(x^{(i)}, z^{(i)} | \theta\right)}{Q_{\theta}\left(z^{(i)}\right)}=c
Qθ(z(i))P(x(i),z(i)∣θ)=c
其中c为不依赖
z
(
i
)
z^{(i)}
z(i)的常数。于是对于任意
i
i
i我们得到:
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
=
c
Q
θ
(
z
(
i
)
)
P\left(x^{(i)}, z^{(i)} | \theta\right)=cQ_{\theta}\left(z^{(i)}\right)
P(x(i),z(i)∣θ)=cQθ(z(i))
方程两边同时累加和:
∑
z
(
i
)
∈
Z
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
=
c
∑
z
(
i
)
∈
Z
Q
θ
(
z
(
i
)
)
\sum_{z^{(i)}\in\mathcal{Z}}P\left(x^{(i)}, z^{(i)} | \theta\right)=c\sum_{z^{(i)}\in\mathcal{Z}}Q_{\theta}\left(z^{(i)}\right)
z(i)∈Z∑P(x(i),z(i)∣θ)=cz(i)∈Z∑Qθ(z(i))
由于
∑
z
(
i
)
∈
Z
Q
θ
(
z
(
i
)
)
=
1
\sum_{z^{(i)}\in\mathcal{Z}}Q_{\theta}\left(z^{(i)}\right)=1
∑z(i)∈ZQθ(z(i))=1,有:
∑
z
(
i
)
∈
Z
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
=
c
\sum_{z^{(i)}\in\mathcal{Z}}P\left(x^{(i)}, z^{(i)} | \theta\right)=c
z(i)∈Z∑P(x(i),z(i)∣θ)=c
从而,
Q
θ
(
z
(
i
)
)
=
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
c
=
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
∑
z
(
i
)
∈
Z
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
=
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
P
(
x
(
i
)
∣
θ
)
=
P
(
z
(
i
)
∣
x
(
i
)
,
θ
)
Q_{\theta}\left(z^{(i)}\right)=\frac{P\left(x^{(i)}, z^{(i)} | \theta\right)}{c}=\frac{P\left(x^{(i)}, z^{(i)} | \theta\right)}{\sum_{z^{(i)}\in\mathcal{Z}} P\left(x^{(i)}, z^{(i)} | \theta\right)}=\frac{P\left(x^{(i)}, z^{(i)} | \theta\right)}{P\left(x^{(i)} | \theta\right)}=P\left(z^{(i)} | x^{(i)}, \theta\right)
Qθ(z(i))=cP(x(i),z(i)∣θ)=∑z(i)∈ZP(x(i),z(i)∣θ)P(x(i),z(i)∣θ)=P(x(i)∣θ)P(x(i),z(i)∣θ)=P(z(i)∣x(i),θ)
上式中,
Q
θ
(
z
(
i
)
)
Q_{\theta}(z^{(i)})
Qθ(z(i))是已知观测变量
x
(
i
)
x^{(i)}
x(i)和模型参数
θ
\theta
θ下的隐变量
z
(
i
)
z^{(i)}
z(i)分布。
经过上述推导,我们可以得出结论:当参数 θ \theta θ给定时,选择 Q θ ( z ( i ) ) = P ( z ( i ) ∣ x ( i ) , θ ) Q_{\theta}\left(z^{(i)}\right)=P\left(z^{(i)} | x^{(i)}, \theta\right) Qθ(z(i))=P(z(i)∣x(i),θ),这样给出的下界与目标函数值最为接近(就等于目标函数值)。
极大化 Q θ ( z ( i ) ) Q_{\theta}\left(z^{(i)}\right) Qθ(z(i))给出的下界来极大化目标函数
至此,我们推出了在固定参数 θ \theta θ后分布 Q θ ( z ( i ) ) Q_{\theta}\left(z^{(i)}\right) Qθ(z(i))的选择问题,从而建立了目标函数的下界,并且这个下界与目标函数值及其接近,所以,极大化对数似然函数等价于极大化这个下界,接下来的就是固定 Q θ ( z ( i ) ) Q_{\theta}\left(z^{(i)}\right) Qθ(z(i))后,调整 θ \theta θ,去极大化目标函数的下界,即:
arg max θ ∑ i = 1 m ∑ z ( i ) ∈ Z Q θ ( z ( i ) ) log P ( x ( i ) , z ( i ) ∣ θ ) Q θ ( z ( i ) ) \arg \max _{\theta} \sum_{i=1}^{m} \sum_{z^{(i)}\in\mathcal{Z}} Q_{\theta}\left(z^{(i)}\right) \log \frac{P\left(x^{(i)}, z^{(i)} | \theta\right)}{Q_{\theta}\left(z^{(i)}\right)} argθmaxi=1∑mz(i)∈Z∑Qθ(z(i))logQθ(z(i))P(x(i),z(i)∣θ)
去掉上式中常数的部分:
arg
max
θ
∑
i
=
1
m
∑
z
(
i
)
∈
Z
Q
θ
(
z
(
i
)
)
log
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
\arg \max _{\theta} \sum_{i=1}^{m} \sum_{z^{(i)}\in\mathcal{Z}} Q_{\theta}\left(z^{(i)}\right) \log P\left(x^{(i)}, z^{(i)} | \theta\right)
argθmaxi=1∑mz(i)∈Z∑Qθ(z(i))logP(x(i),z(i)∣θ)
EM算法的收敛性
设 L ( θ ) = log p ( x ∣ θ ) \mathrm{L}(\theta)=\log p(\mathrm{x} | \theta) L(θ)=logp(x∣θ)是观测数据 x x x的对数似然函数, θ ( i ) ( i = 1 , 2 , … , n ) \theta^{(i)}(i=1,2, \ldots, n) θ(i)(i=1,2,…,n)是EM算法得到的参数估计序列, L ( θ ( i ) ) \mathrm{L}\left(\theta^{(\mathrm{i})}\right) L(θ(i))为对应的对数似然函数序列,则 L ( θ ( i ) ) = log p ( x ∣ θ ( i ) ) \mathrm{L}\left(\theta^{(\mathrm{i})}\right)=\log p\left(x | \theta^{(\mathrm{i})}\right) L(θ(i))=logp(x∣θ(i))必定会收敛到某一值 L ∗ L^{*} L∗。
证明:要证明 EM 算法收敛,则我们需要证明我们的对数似然函数的值在迭代的过程中一直在增大,即:
∑
i
=
1
m
log
P
(
x
(
i
)
∣
θ
(
j
+
1
)
)
≥
∑
i
=
1
m
log
P
(
x
(
i
)
∣
θ
(
j
)
)
\sum_{i=1}^{m} \log P\left(x^{(i)} | \theta^{(j+1)}\right) \geq \sum_{i=1}^{m} \log P\left(x^{(i)} | \theta^{(j)}\right)
i=1∑mlogP(x(i)∣θ(j+1))≥i=1∑mlogP(x(i)∣θ(j))
由于
Q
(
θ
,
θ
(
j
)
)
=
∑
i
=
1
m
∑
z
(
i
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
)
)
log
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
Q\left(\theta, \theta^{(j)}\right)=\sum_{i=1}^{m} \sum_{z^{(i)}} P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j)}\right) \log P\left(x^{(i)}, \quad z^{(i)} | \theta\right)
Q(θ,θ(j))=i=1∑mz(i)∑P(z(i)∣x(i),θ(j))logP(x(i),z(i)∣θ)
令
H
(
θ
,
θ
(
j
)
)
=
∑
i
=
1
m
∑
z
(
i
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
)
)
log
P
(
z
(
i
)
∣
x
(
i
)
,
θ
)
H\left(\theta, \theta^{(j)}\right)=\sum_{i=1}^{m} \sum_{z^{(i)}} P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j)}\right) \log P\left(z^{(i)} | x^{(i)}, \quad \theta\right)
H(θ,θ(j))=i=1∑mz(i)∑P(z(i)∣x(i),θ(j))logP(z(i)∣x(i),θ)
上两式相减得到:
Q
(
θ
,
θ
(
j
)
)
−
H
(
θ
,
θ
(
j
)
)
=
∑
i
=
1
m
∑
z
(
i
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
)
)
log
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
−
∑
i
=
1
m
∑
z
(
i
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
)
)
log
P
(
z
(
i
)
∣
x
(
i
)
,
θ
)
=
∑
i
=
1
m
∑
z
(
i
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
)
)
log
P
(
x
(
i
)
,
z
(
i
)
∣
θ
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
)
=
∑
i
=
1
m
∑
z
(
i
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
)
)
log
P
(
x
(
i
)
∣
θ
)
=
∑
i
=
1
m
log
P
(
x
(
i
)
∣
θ
)
\begin{aligned} Q\left(\theta, \theta^{(j)}\right)-H\left(\theta, \theta^{(j)}\right) &=\sum_{i=1}^{m} \sum_{z^{(i)}} P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j)}\right) \log P\left(x^{(i)}, \quad z^{(i)} | \theta\right)\\&-\sum_{i=1}^{m} \sum_{z^{(i)}} P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j)}\right) \log P\left(z^{(i)} | x^{(i)}, \quad \theta\right) \\&=\sum_{i=1}^{m} \sum_{z^{(i)}} P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j)}\right) \log \frac{P\left(x^{(i)}, \quad z^{(i)} | \theta\right)}{P\left(z^{(i)} | x^{(i)}, \quad \theta\right)} \\&=\sum_{i=1}^{m} \sum_{z^{(i)}} P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j)}\right) \log P\left(x^{(i)} | \theta\right) \\&=\sum_{i=1}^{m} \log P\left(x^{(i)} | \theta\right) \end{aligned}
Q(θ,θ(j))−H(θ,θ(j))=i=1∑mz(i)∑P(z(i)∣x(i),θ(j))logP(x(i),z(i)∣θ)−i=1∑mz(i)∑P(z(i)∣x(i),θ(j))logP(z(i)∣x(i),θ)=i=1∑mz(i)∑P(z(i)∣x(i),θ(j))logP(z(i)∣x(i),θ)P(x(i),z(i)∣θ)=i=1∑mz(i)∑P(z(i)∣x(i),θ(j))logP(x(i)∣θ)=i=1∑mlogP(x(i)∣θ)
在上式中分别取
θ
\theta
θ为
θ
(
j
)
\theta^{(j)}
θ(j)和
θ
(
j
+
1
)
\theta^{(j+1)}
θ(j+1),并相减得到:
∑
i
=
1
m
log
P
(
x
(
i
)
∣
θ
(
j
+
1
)
)
−
∑
i
=
1
m
log
P
(
x
(
i
)
∣
θ
(
j
)
)
=
[
L
(
θ
(
j
+
1
)
,
θ
(
j
)
)
−
L
(
θ
(
j
)
,
θ
(
j
)
)
]
−
[
H
(
θ
(
j
+
1
)
,
θ
(
j
)
)
−
H
(
θ
(
j
)
,
θ
(
j
)
)
]
\sum_{i=1}^{m} \log P\left(x^{(i)} | \theta^{(j+1)}\right)-\sum_{i=1}^{m} \log P\left(x^{(i)} | \theta^{(j)}\right)=\left[L\left(\theta^{(j+1)}, \theta^{(j)}\right)-L\left(\theta^{(j)}, \theta^{(j)}\right)\right]-\left[H\left(\theta^{(j+1)}, \theta^{(j)}\right)-H\left(\theta^{(j)}, \theta^{(j)}\right)\right]
i=1∑mlogP(x(i)∣θ(j+1))−i=1∑mlogP(x(i)∣θ(j))=[L(θ(j+1),θ(j))−L(θ(j),θ(j))]−[H(θ(j+1),θ(j))−H(θ(j),θ(j))]
要证明EM算法的收敛性,我们只需要证明上式的右边是非负的即可。
由于
θ
(
j
+
1
)
\theta^{(j+1)}
θ(j+1)使得
L
(
θ
,
θ
(
j
)
)
L(\theta,\theta^{(j)})
L(θ,θ(j))极大,因此有:
Q
(
θ
(
j
+
1
)
,
θ
(
j
)
)
−
Q
(
θ
(
j
)
,
θ
(
j
)
)
≥
0
Q\left(\theta^{(j+1)}, \theta^{(j)}\right)-Q\left(\theta^{(j)}, \theta^{(j)}\right) \geq 0
Q(θ(j+1),θ(j))−Q(θ(j),θ(j))≥0
而对于第二部分,我们有:
H
(
θ
(
j
+
1
)
,
θ
(
j
)
)
−
H
(
θ
(
j
)
,
θ
(
j
)
)
=
∑
i
=
1
m
∑
z
(
i
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
)
)
log
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
+
1
)
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
)
)
≤
∑
i
=
1
m
log
(
∑
z
(
i
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
)
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
+
1
)
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
)
)
)
=
∑
i
=
1
m
log
(
∑
z
(
i
)
P
(
z
(
i
)
∣
x
(
i
)
,
θ
(
j
+
1
)
)
)
=
0
\begin{aligned} H\left(\theta^{(j+1)}, \theta^{(j)}\right)-H\left(\theta^{(j)}, \theta^{(j)}\right) &=\sum_{i=1}^{m} \sum_{z^{(i)}} P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j)}\right) \log \frac{P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j+1)}\right)}{P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j)}\right)} \\ & \leq \sum_{i=1}^{m} \log \left(\sum_{z^{(i)}} P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j)}\right) \frac{P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j+1)}\right)}{P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j)}\right)}\right) \\ &=\sum_{i=1}^{m} \log \left(\sum_{z^{(i)}} P\left(z^{(i)} | x^{(i)}, \quad \theta^{(j+1)}\right)\right)=0 \end{aligned}
H(θ(j+1),θ(j))−H(θ(j),θ(j))=i=1∑mz(i)∑P(z(i)∣x(i),θ(j))logP(z(i)∣x(i),θ(j))P(z(i)∣x(i),θ(j+1))≤i=1∑mlog(z(i)∑P(z(i)∣x(i),θ(j))P(z(i)∣x(i),θ(j))P(z(i)∣x(i),θ(j+1)))=i=1∑mlog(z(i)∑P(z(i)∣x(i),θ(j+1)))=0
上式中不等式用到了Jensen不等式。至此,得到了
∑
i
=
1
m
log
P
(
x
(
i
)
∣
θ
(
j
+
1
)
)
−
∑
i
=
1
m
log
P
(
x
(
i
)
∣
θ
(
j
)
)
≥
0
\sum_{i=1}^{m} \log P\left(x^{(i)} | \theta^{(j+1)}\right)-\sum_{i=1}^{m} \log P\left(x^{(i)} | \theta^{(j)}\right) \geq 0
i=1∑mlogP(x(i)∣θ(j+1))−i=1∑mlogP(x(i)∣θ(j))≥0
证明了EM算法的收敛性。
从上面的推导可以看出,EM 算法可以保证收敛到一个稳定点,但是却不能保证收敛到全局的极大值点,因此它是局部最优的算法,解决方法是初始化几次不同的参数进行迭代,取结果最好的那次。当然,如果我们的优化目标 Q ( θ , θ ( j ) ) Q(\theta,\theta^{(j)}) Q(θ,θ(j))是凸的,则EM算法可以保证收敛到全局极大值,这点和梯度下降法这样的迭代算法相同。