1.Jesen不等式
如果
f
(
x
)
f(x)
f(x)是凸函数,
x
x
x是随机变量,则:
E
(
f
(
x
)
)
⩾
f
(
E
(
x
)
)
E(f(x))\geqslant f(E(x))
E(f(x))⩾f(E(x))
特别的,当
f
(
x
)
f(x)
f(x)为严格凸函数,
x
x
x为常量时,等号成立。
2.最大似然估计
通常在求概率分布时,已知条件(参数
θ
\theta
θ)推算结果。
最大似然估计是已知结果,估计使这个结果成立的可能性最大的条件(参数
θ
\theta
θ)。
最大似然估计的一般步骤为下:
(1)写出似然函数。
(2)为方便计算,似然函数取对数。
(3)求对数似然函数对各个参数的导数,并令结果为0,得似然方程组。
(4)解似然方程组得结果。
3.EM算法简介
EM算法用来解决含有无法观测的隐变量的概率模型的求参数问题。
例如,男女的身高属于不同的正态分布,抽取一部分男生,可以通过极大似然估计求得男生的正态分布的均值和方差,从而得到男生身高的概率分布公式。
如果抽取的人数中既有男生又有女生,并不知道每个样本是男生还是女生,也就是说样本来自于哪个分布并不清楚,此时,就需要EM算法来进行参数估计。
EM算法给分布的参数假设一个初始值,然后求隐变量的期望。再通过隐变量的期望,用最大似然估计重新求分布的参数,再用其求隐变量的期望,如此反复。
4.EM算法推导
通常,在求概率分布的参数
θ
\theta
θ时,使用极大似然估计:
θ
=
arg
max
θ
∑
i
log
P
(
x
i
;
θ
)
\theta=\arg\max_{\theta }\sum_{i}\log P(x^{i};\theta )
θ=argθmaxi∑logP(xi;θ)
含有因变量
z
z
z时,需要求出每个
x
i
x^{i}
xi关于所有
z
i
z^{i}
zi的边缘概率分布,然后再进行估计:
θ
=
arg
max
θ
∑
i
log
∑
z
i
P
(
x
i
,
z
i
;
θ
)
\theta=\arg\max_{\theta }\sum_{i}\log \sum_{z^{i}}P(x^{i},z^{i};\theta )
θ=argθmaxi∑logzi∑P(xi,zi;θ)
上式的求导过程过于复杂,可以使用Jenson不等式简化计算。构造有关
z
i
z^{i}
zi的分布
Q
(
z
)
Q(z)
Q(z),使:
∑
z
i
Q
(
z
i
)
=
1
\sum_{z^{i}}Q(z^{i})=1
zi∑Q(zi)=1
将
Q
(
z
)
Q(z)
Q(z)带入到极大似然估计中,可以得到:
∑
i
log
∑
z
i
P
(
x
i
,
z
i
;
θ
)
=
∑
i
log
∑
z
i
Q
(
z
i
)
P
(
x
i
,
z
i
;
θ
)
Q
(
z
i
)
\sum_{i}\log \sum_{z^{i}}P(x^{i},z^{i};\theta )=\sum_{i}\log \sum_{z^{i}}Q(z^{i})\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}
i∑logzi∑P(xi,zi;θ)=i∑logzi∑Q(zi)Q(zi)P(xi,zi;θ)
令:
f
(
y
)
=
log
P
(
x
i
,
z
i
;
θ
)
Q
(
z
i
)
f(y)=\log\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}
f(y)=logQ(zi)P(xi,zi;θ)
则:
E
(
y
)
=
∑
z
i
Q
(
z
i
)
P
(
x
i
,
z
i
;
θ
)
Q
(
z
i
)
f
(
E
(
y
)
)
=
log
∑
z
i
Q
(
z
i
)
P
(
x
i
,
z
i
;
θ
)
Q
(
z
i
)
E
(
f
(
y
)
)
=
∑
z
i
Q
(
z
i
)
log
P
(
x
i
,
z
i
;
θ
)
Q
(
z
i
)
E(y)=\sum_{z^{i}}Q(z^{i})\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}\\ f(E(y))=\log\sum_{z^{i}}Q(z^{i})\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}\\ E(f(y))=\sum_{z^{i}}Q(z^{i})\log\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}
E(y)=zi∑Q(zi)Q(zi)P(xi,zi;θ)f(E(y))=logzi∑Q(zi)Q(zi)P(xi,zi;θ)E(f(y))=zi∑Q(zi)logQ(zi)P(xi,zi;θ)
由于:
f
′
′
(
y
)
=
−
1
y
2
<
0
f^{''}(y)=-\frac{1}{y^{2}}<0
f′′(y)=−y21<0
f
(
y
)
f(y)
f(y)是凹函数,根据Jenson不等式:
f
(
E
(
y
)
)
⩾
E
(
f
(
y
)
)
⇒
∑
i
log
∑
z
i
Q
(
z
i
)
P
(
x
i
,
z
i
;
θ
)
Q
(
z
i
)
⩾
∑
i
∑
z
i
Q
(
z
i
)
log
P
(
x
i
,
z
i
;
θ
)
Q
(
z
i
)
f(E(y))\geqslant E(f(y))\\ \Rightarrow \sum_{i}\log\sum_{z^{i}}Q(z^{i})\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}\geqslant \sum_{i}\sum_{z^{i}}Q(z^{i})\log\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}
f(E(y))⩾E(f(y))⇒i∑logzi∑Q(zi)Q(zi)P(xi,zi;θ)⩾i∑zi∑Q(zi)logQ(zi)P(xi,zi;θ)
令以上不等式中左式为
L
L
L,右式为
J
J
J,EM算法的目的是求
L
L
L最大化时的参数。由于直接求
L
L
L较难,而已知
L
⩾
J
L\geqslant J
L⩾J,因此,可以通过最大化
J
J
J来最大化
L
L
L。具体做法为:
a.首先选择一个初始参数
θ
\theta
θ,调整
Q
(
z
)
Q(z)
Q(z),使
L
=
J
L=J
L=J(E步)。
b.再固定
Q
(
z
)
Q(z)
Q(z),调整
θ
\theta
θ,使
J
J
J最大化。
c.重复以上两步知道收敛。
在Jeson不等式中,要使
L
=
J
L=J
L=J(即
f
(
E
(
y
)
)
=
E
(
f
(
y
)
)
f(E(y))=E(f(y))
f(E(y))=E(f(y)))的条件是
y
y
y为常量,即:
y
=
P
(
x
i
,
z
i
;
θ
)
Q
(
z
i
)
=
c
⇒
P
(
x
i
,
z
i
;
θ
)
=
c
Q
(
z
i
)
⇒
Q
(
z
i
)
=
P
(
x
i
,
z
i
;
θ
)
c
y=\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}=c\\ \Rightarrow P(x^{i},z^{i};\theta )=cQ(z^{i})\\ \Rightarrow Q(z^{i})=\frac{P(x^{i},z^{i};\theta )}{c}\\
y=Q(zi)P(xi,zi;θ)=c⇒P(xi,zi;θ)=cQ(zi)⇒Q(zi)=cP(xi,zi;θ)
又:
∑
z
i
Q
(
z
i
)
=
1
⇒
∑
z
i
P
(
x
i
,
z
i
;
θ
)
=
c
∑
z
i
Q
(
z
i
)
=
c
⇒
c
=
P
(
x
i
;
θ
)
\sum_{z^{i}}Q(z^{i})=1\\ \Rightarrow \sum_{z^{i}}P(x^{i},z^{i};\theta )=c\sum_{z^{i}}Q(z^{i})=c\\ \Rightarrow c=P(x^{i};\theta )
zi∑Q(zi)=1⇒zi∑P(xi,zi;θ)=czi∑Q(zi)=c⇒c=P(xi;θ)
综上:
Q
(
z
i
)
=
P
(
x
i
,
z
i
;
θ
)
c
=
P
(
x
i
,
z
i
;
θ
)
P
(
x
i
;
θ
)
=
P
(
z
i
∣
x
i
;
θ
)
Q(z^{i})=\frac{P(x^{i},z^{i};\theta )}{c}=\frac{P(x^{i},z^{i};\theta )}{P(x^{i};\theta )}=P(z^{i}|x^{i};\theta )
Q(zi)=cP(xi,zi;θ)=P(xi;θ)P(xi,zi;θ)=P(zi∣xi;θ)
可得隐变量
z
i
z^{i}
zi的分布
Q
(
z
i
)
Q(z^{i})
Q(zi),E步完成。
M步的过程为极大化
J
J
J:
∑
i
∑
z
i
Q
(
z
i
)
log
P
(
x
i
,
z
i
;
θ
)
Q
(
z
i
)
=
∑
i
∑
z
i
Q
(
z
i
)
log
P
(
x
i
,
z
i
;
θ
)
−
∑
i
∑
z
i
Q
(
z
i
)
log
Q
(
z
i
)
\sum_{i}\sum_{z^{i}}Q(z^{i})\log\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}=\sum_{i}\sum_{z^{i}}Q(z^{i})\log P(x^{i},z^{i};\theta )-\sum_{i}\sum_{z^{i}}Q(z^{i})\log Q(z^{i})
i∑zi∑Q(zi)logQ(zi)P(xi,zi;θ)=i∑zi∑Q(zi)logP(xi,zi;θ)−i∑zi∑Q(zi)logQ(zi)
由于此时
Q
(
z
i
)
Q(z^{i})
Q(zi),则减号后边为常量,可以省略,因此,极大化
J
J
J等价于极大化下式:
∑
i
∑
z
i
Q
(
z
i
)
log
P
(
x
i
,
z
i
;
θ
)
\sum_{i}\sum_{z^{i}}Q(z^{i})\log P(x^{i},z^{i};\theta )
i∑zi∑Q(zi)logP(xi,zi;θ)
5.EM算法流程
输入:数据集,迭代最大次数
k
k
k。
输出:参数
θ
\theta
θ。
(1)从数据集中求出联合概率分布
P
(
x
,
z
;
θ
)
P(x,z;\theta)
P(x,z;θ),条件概率
P
(
z
∣
x
;
θ
)
P(z|x;\theta)
P(z∣x;θ)
(2)初始化参数
θ
\theta
θ。
(3)分两步
E步:
计算隐变量的概率分布:
Q
(
z
i
)
=
P
(
z
i
∣
x
i
;
θ
)
Q(z^{i})=P(z^{i}|x^{i};\theta )
Q(zi)=P(zi∣xi;θ)
得到极大似然估计公式:
∑
i
∑
z
i
Q
(
z
i
)
log
P
(
x
i
,
z
i
;
θ
)
\sum_{i}\sum_{z^{i}}Q(z^{i})\log P(x^{i},z^{i};\theta )
i∑zi∑Q(zi)logP(xi,zi;θ)
M步:
通过极大似然估计估计下一轮的迭代值:
θ
n
e
x
t
=
arg
min
θ
∑
i
∑
z
i
Q
(
z
i
)
log
P
(
x
i
,
z
i
;
θ
)
\theta ^{next}=\arg\min_{\theta }\sum_{i}\sum_{z^{i}}Q(z^{i})\log P(x^{i},z^{i};\theta )
θnext=argθmini∑zi∑Q(zi)logP(xi,zi;θ)
(4)重复(3)知道收敛或者最大迭代次数。