以下部分内容和图片来自链接
预备知识
极大似然估计
极大似然估计是一种通过样本估计模型参数的统计学方法。
比如,我们想要统计学生的身高,于是在校园中随机抽取了50名学生,对他们的身高进行了统计。同时,我们知道学生身高服从高斯分布,但是我们不知道该分布的
μ
\mu
μ和
σ
\sigma
σ,我们的目的就是通过这50个样本来估计
μ
\mu
μ和
σ
\sigma
σ。
于是,我们可以得出极大似然估计的用途:
已知:①.一些随机样本,②.样本服从的分布模型。
估计:样本服从的分布模型的参数。
估计的步骤如下:
假设样本集为
X
=
{
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
50
)
}
X=\{x^{(1)},x^{(2)},...,x^{(50)}\}
X={x(1),x(2),...,x(50)},且每个样本独立同分布。若
θ
\theta
θ为待估计参数,我们可以用
p
(
x
(
i
)
∣
θ
)
p(x^{(i)}|\theta)
p(x(i)∣θ)表示抽取到样本
x
(
i
)
x^{(i)}
x(i)的概率。则在待估计参数为
θ
\theta
θ的前提下,抽取到样本集
X
X
X的概率为(似然函数):
L
(
θ
)
=
L
(
x
(
1
)
,
x
(
2
)
,
.
.
.
x
(
50
)
;
θ
)
=
∏
i
=
1
50
p
(
x
(
i
)
;
θ
)
L(\theta)=L(x^{(1)},x^{(2)},...x^{(50)};\theta)=\prod_{i=1}^{50}p(x^{(i)};\theta)
L(θ)=L(x(1),x(2),...x(50);θ)=i=1∏50p(x(i);θ)
这个概率表示,在参数为
θ
\theta
θ时,得到样本集
X
X
X的概率。我们要做的事情就是中找到使
L
(
θ
)
L(\theta)
L(θ)最大化的参数
θ
\theta
θ:
θ
^
=
a
r
g
max
L
(
θ
)
\hat \theta=arg\max\ L(\theta)
θ^=argmax L(θ)
而求解
θ
^
\hat \theta
θ^的一般步骤很多书籍里也都介绍过,将似然函数取对数:
H
(
θ
)
=
log
L
(
θ
)
=
∑
i
=
1
50
log
p
(
x
(
i
)
;
θ
)
H(\theta)=\log L(\theta)=\sum_{i=1}^{50}\log p(x^{(i)};\theta)
H(θ)=logL(θ)=i=1∑50logp(x(i);θ)
然后对其求导,使导数为0,得到似然方程。对似然方程求解得到
θ
^
\hat \theta
θ^。
Jensen不等式
Jensen不等式是凸函数的一个定理,简洁的说一下:
如果函数
f
f
f是凸函数,
X
X
X是随机变量,则
E
[
f
(
X
)
]
≥
f
(
E
[
X
]
)
E[f(X)]\geq f(E[X])
E[f(X)]≥f(E[X]),如果函数
f
f
f是凹函数,不等号反向。
用下面这张图片可以更好的理解这个定理:
当且仅当
X
X
X是常量的时候(即:
p
(
x
=
E
[
X
]
)
=
1
p(x=E[X])=1
p(x=E[X])=1),上式等号成立。
EM算法
EM算法经常应用于模糊聚类问题中,用于对含有隐变量的模型进行参数估计。
EM算法主要包括两部分:
①.E步:根据参数初始值或上一次迭代得到的参数值,对隐变量的分布进行估计,得到隐变量的后验概率。
②.M步:利用隐变量的后验概率,最大化似然函数,得到本轮迭代的参数值。
对上文提到的例子进行一下修改:我们想要统计学生的身高,于是在校园中随机抽取了100名学生,其中包括50个男学生和50个女学生,对他们的身高进行了统计。我们知道男学生和女学生的身高相互独立,且都服从高斯分布,但是我们不知道这两个分布的
μ
\mu
μ和
σ
\sigma
σ。我们的目的就是通过这100个样本来估计每个样本属于的分布(即:该样本来自男学生or女学生),和这两个分布的
μ
\mu
μ和
σ
\sigma
σ。
于是,我们可以得出EM算法的用途:
已知:①.一些随机样本,②.样本服从的分布模型。
得出:①.每个样本属于哪个分布模型,②.分布模型的参数。
还是刚才的身高问题,我们使用
z
(
i
)
z^{(i)}
z(i)表示样本
x
(
i
)
x^{(i)}
x(i)所属的分布,这里的
z
z
z称为隐变量。则对数似然函数可以写为:
H
(
θ
)
=
∑
i
=
1
m
log
p
(
x
(
i
)
;
θ
)
=
∑
i
=
1
m
log
∑
z
(
i
)
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
H(\theta)=\sum_{i=1}^m\log p(x^{(i)};\theta)=\sum_{i=1}^m\log \sum_{z^{(i)}} p(x^{(i)},z^{(i)};\theta)
H(θ)=i=1∑mlogp(x(i);θ)=i=1∑mlogz(i)∑p(x(i),z(i);θ)
假设
z
(
i
)
z^{(i)}
z(i)服从概率分布
Q
i
(
z
(
i
)
)
Q_i(z^{(i)})
Qi(z(i)),对上式继续进行整理:
∑
i
=
1
m
log
∑
z
(
i
)
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
=
∑
i
=
1
m
log
∑
z
(
i
)
Q
i
(
z
(
i
)
)
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
\sum_{i=1}^m\log \sum_{z^{(i)}} p(x^{(i)},z^{(i)};\theta)=\sum_{i=1}^m\log \sum_{z^{(i)}} Q_i(z^{(i)})\frac {p(x^{(i)},z^{(i)};\theta)} {Q_i(z^{(i)})}
i=1∑mlogz(i)∑p(x(i),z(i);θ)=i=1∑mlogz(i)∑Qi(z(i))Qi(z(i))p(x(i),z(i);θ)
由于
log
\log
log函数为凹函数,我们将
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
\frac {p(x^{(i)},z^{(i)};\theta)} {Q_i(z^{(i)})}
Qi(z(i))p(x(i),z(i);θ)视为一个随机变量
Y
Y
Y,利用Jensen不等式可以得到:
∑
i
=
1
m
log
∑
z
(
i
)
Q
i
(
z
(
i
)
)
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
≥
∑
i
=
1
m
∑
z
(
i
)
Q
i
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
\sum_{i=1}^m\log \sum_{z^{(i)}} Q_i(z^{(i)})\frac {p(x^{(i)},z^{(i)};\theta)} {Q_i(z^{(i)})}\geq \sum_{i=1}^m \sum_{z^{(i)}} Q_i(z^{(i)})\log \frac {p(x^{(i)},z^{(i)};\theta)} {Q_i(z^{(i)})}
i=1∑mlogz(i)∑Qi(z(i))Qi(z(i))p(x(i),z(i);θ)≥i=1∑mz(i)∑Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
通过上式我们而可以看出,要想使得
H
(
θ
)
H(\theta)
H(θ)最大,我们可以不断的最大化下界,使
H
(
θ
)
H(\theta)
H(θ)不断提高,达到最大值。而使
H
(
θ
)
H(\theta)
H(θ)取最大时,正是上述不等式取等号的时候。根据Jensen不等式可知,当不等式取等号时,
p
(
y
=
E
[
Y
]
)
=
1
p(y=E[Y])=1
p(y=E[Y])=1,也就是说
Y
Y
Y是一个常数。即:
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
=
C
(
1
)
\frac {p(x^{(i)},z^{(i)};\theta)} {Q_i(z^{(i)})}=C\ \ \ \ \ \ \ \ \ \ (1)
Qi(z(i))p(x(i),z(i);θ)=C (1)
由于
Q
i
(
z
(
i
)
)
Q_i(z^{(i)})
Qi(z(i))是一个概率分布,则
∑
z
(
i
)
Q
i
(
z
(
i
)
)
=
1
\sum_{z^{(i)}}Q_i(z^{(i)})=1
∑z(i)Qi(z(i))=1,对上式左侧,分子分母同时对
z
(
i
)
z^{(i)}
z(i)求和,可得:
∑
z
(
i
)
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
∑
z
(
i
)
Q
i
(
z
(
i
)
)
=
C
−
−
>
∑
z
(
i
)
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
1
=
C
\frac {\sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta)} {\sum_{z^{(i)}}Q_i(z^{(i)})}=C \ \ \ \ \ -->\ \ \ \ \ \frac {\sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta)} {1}=C
∑z(i)Qi(z(i))∑z(i)p(x(i),z(i);θ)=C −−> 1∑z(i)p(x(i),z(i);θ)=C
即:
∑
z
(
i
)
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
=
C
(
2
)
{\sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta)}=C\ \ \ \ \ \ \ \ \ \ (2)
z(i)∑p(x(i),z(i);θ)=C (2)
将
(
1
)
(1)
(1)式和
(
2
)
(2)
(2)式结合,可得:
Q
i
(
z
(
i
)
)
=
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
∑
z
(
i
)
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
=
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
p
(
x
(
i
)
;
θ
)
=
p
(
z
(
i
)
∣
x
(
i
)
;
θ
)
Q_i(z^{(i)})=\frac {p(x^{(i)},z^{(i)};\theta)}{\sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta)}=\frac {p(x^{(i)},z^{(i)};\theta)}{p(x^{(i)};\theta)}=p(z^{(i)}|x^{(i)};\theta)
Qi(z(i))=∑z(i)p(x(i),z(i);θ)p(x(i),z(i);θ)=p(x(i);θ)p(x(i),z(i);θ)=p(z(i)∣x(i);θ)
计算到这里,我们已经知道了如何在给定参数
θ
\theta
θ的情况下,得到使对数似然函数
H
(
θ
)
H(\theta)
H(θ)取最大时隐变量
z
z
z的分布。那么,我们可得EM算法的一般步骤:
①.对待估计参数
θ
\theta
θ进行初始化;
②.E步:利用参数
θ
\theta
θ计算隐变量
z
z
z的后验概率:
Q
i
(
z
(
i
)
)
:
=
p
(
z
(
i
)
∣
x
(
i
)
;
θ
)
Q_i(z^{(i)}):=p(z^{(i)}|x^{(i)};\theta)
Qi(z(i)):=p(z(i)∣x(i);θ)
③.M步:利用隐变量
z
z
z的后验概率,最大化似然函数,得到新的参数
θ
\theta
θ:
θ
:
=
a
r
g
max
θ
∑
i
∑
z
(
i
)
Q
i
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
\theta:=arg\max_\theta\sum_i\sum_{z^{(i)}}Q_i(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})}
θ:=argθmaxi∑z(i)∑Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
④.重复②③至收敛。