作者课堂笔记摘录,有问题请联系 humminwang@163.com
Preview
-
- 高斯混合模型(Mixture of Gaussians)
-
- 最大期望算法(EM)
-
- 因子分析(Factor Analysis)
1 高斯混合(Mixture of Gaussians)
什么是高斯混合模型,我们可以简单理解为数据的生成来自不同的高斯分布,如上的鸢尾花数据集的例子,我们可以理解数据的生成是通过不同的高斯分布产生的,可推广到一般混合模型,只不过高斯分布我们使用的比较多而已。
一个混合模型假设数据产生于下列步骤:
- <1> 隐变量
z
(
i
)
∈
1....
K
z^{(i)}\in{1....K}
z(i)∈1....K,并且
z
(
i
)
∼
M
u
l
t
i
n
o
m
i
a
l
(
ϕ
)
z^{(i)}\sim Multinomial(\phi)
z(i)∼Multinomial(ϕ)
p ( z ( i ) = j ) = ϕ j f o r a l l j p(z^{(i)}=j)=\phi_j \quad for \quad all\quad j p(z(i)=j)=ϕjforallj
我们可以理解这个 z z z为隐变量,也就是当数据产生时选择第几个高斯分布来产生这个数据。 - <2> 观测数据
x
(
i
)
x^{(i)}
x(i)来自分布
p
(
z
(
i
)
,
x
(
i
)
)
:
p(z^{(i)},x^{(i)}):
p(z(i),x(i)):
p ( z ( i ) , x ( i ) ) = p ( z ( i ) ) p ( x ( i ) ∣ z ( i ) ) p(z^{(i)},x^{(i)})=p(z^{(i)})p(x^{(i)}|z^{(i)}) p(z(i),x(i))=p(z(i))p(x(i)∣z(i))
可以理解为观测数据的产生也取决于隐变量,也就是当我们想要产生该数据时首先以一定的概率选择适合的高斯分布,之后在此分布下产生数据。
z
(
i
)
∼
M
u
l
t
i
n
o
m
i
a
l
(
ϕ
)
z^{(i)}\sim Multinomial(\phi)
z(i)∼Multinomial(ϕ)
x
(
i
)
∣
z
(
i
)
∼
N
(
μ
j
,
Σ
j
)
x^{(i)}|z^{(i)}\sim \N(\mu_j,\Sigma_j)
x(i)∣z(i)∼N(μj,Σj)
怎么学习所有的参数
ϕ
j
,
μ
j
,
Σ
j
?
\phi_j,\mu_j,\Sigma_j?
ϕj,μj,Σj?
- 如果
z
(
i
)
z^{(i)}
z(i)是已知的:
(监督学习)使用最大似然估计来学习参数,类比之前博客二次判别分析. - 如果
z
(
i
)
z^{(i)}
z(i)是未知的:
(无监督学习)使用最大期望算法。
2 最大期望算法(EM)
最大期望算法是一种迭代算法当模型中还有隐变量时,求最大似然估计的一种方法。
数据的最大似然估计:
l
(
θ
)
=
∑
i
=
1
m
l
o
g
p
(
x
;
θ
)
=
∑
i
=
1
m
l
o
g
∑
z
p
(
x
,
z
;
θ
)
l(\theta)=\sum_{i=1}^mlogp(x;\theta)=\sum_{i=1}^mlog\sum_zp(x,z;\theta)
l(θ)=i=1∑mlogp(x;θ)=i=1∑mlogz∑p(x,z;θ)
我们可以如此理解上式,我们可以用X表示观测随机变量的数据,Z表示隐随机变量的数据。X和Z连在一起称为完全数据,观测数据X又称为不完全数据。假定给出观测数据X,其概率分布
P
(
X
∣
θ
)
P(X|\theta)
P(X∣θ)其中
θ
\theta
θ是需要估计的模型参数,那么不完全数据X的似然函数是
P
(
X
∣
θ
)
P(X|\theta)
P(X∣θ),对数似然函数是
L
(
θ
)
=
l
o
g
P
(
X
∣
θ
)
L(\theta)=logP(X|\theta)
L(θ)=logP(X∣θ);假设X和Z的联合概率分布是
P
(
X
,
Z
∣
θ
)
P(X,Z|\theta)
P(X,Z∣θ),那么完全数据对数似然函数是
l
o
g
P
(
X
,
Z
∣
θ
)
logP(X,Z|\theta)
logP(X,Z∣θ).
EM 算法通过迭代求 l o g P ( X ∣ θ ) logP(X|\theta) logP(X∣θ)的极大似然估计,每次迭代分为两步:E步求期望,M步求极大值。
广义的EM算法:
- 初始化 θ \theta θ
- 重复直到收敛{
E-Step:
对于每个 i i i,使 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-Step:
使
θ
:
=
a
r
g
m
a
x
θ
∑
i
∑
z
(
i
)
Q
i
(
z
(
i
)
)
l
o
g
p
(
x
i
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
(
∗
)
\theta:=argmax_\theta\sum_i\sum_{z^{(i)}}Q_i(z^{(i)})log\frac{p(x^{i},z^{(i)};\theta)}{Q_i(z^{(i)})}(*)
θ:=argmaxθ∑i∑z(i)Qi(z(i))logQi(z(i))p(xi,z(i);θ)(∗)
}
观察
(
∗
)
(*)
(∗)式我们可以知道
∑
i
∑
z
(
i
)
p
(
z
(
i
)
∣
x
(
i
)
;
θ
)
l
o
g
p
(
x
i
,
z
(
i
)
;
θ
)
p
(
z
(
i
)
∣
x
(
i
)
;
θ
)
\sum_i\sum_{z^{(i)}}p(z^{(i)}|x^{(i)};\theta)log\frac{p(x^{i},z^{(i)};\theta)}{p(z^{(i)}|x^{(i)};\theta)}
∑i∑z(i)p(z(i)∣x(i);θ)logp(z(i)∣x(i);θ)p(xi,z(i);θ),而利用贝叶斯法则我们可以得到
l
o
g
p
(
x
i
,
z
(
i
)
;
θ
)
p
(
z
(
i
)
∣
x
(
i
)
;
θ
)
=
l
o
g
p
(
x
;
θ
)
log\frac{p(x^{i},z^{(i)};\theta)}{p(z^{(i)}|x^{(i)};\theta)}=logp(x;\theta)
logp(z(i)∣x(i);θ)p(xi,z(i);θ)=logp(x;θ),所以
(
∗
)
=
∑
i
∑
z
(
i
)
p
(
z
(
i
)
∣
x
(
i
)
;
θ
)
l
o
g
p
(
x
;
θ
)
(*)=\sum_i\sum_{z^{(i)}}p(z^{(i)}|x^{(i)};\theta)logp(x;\theta)
(∗)=∑i∑z(i)p(z(i)∣x(i);θ)logp(x;θ)
为什么EM算法可以实现对观测数据的极大似然估计?(EM 算法的推导)
上式中的
(
∗
)
(*)
(∗)等价于
a
r
g
m
a
x
θ
l
(
θ
)
argmax_\theta l(\theta)
argmaxθl(θ),上式
(
∗
)
(*)
(∗)是log似然函数
l
(
θ
)
l(\theta)
l(θ)的下界。且当
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);θ)时,取等。
定义:
J
(
Q
,
θ
)
=
∑
i
∑
z
(
i
)
Q
i
(
z
(
i
)
)
l
o
g
p
(
x
i
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
J(Q,\theta)=\sum_i\sum_{z^{(i)}}Q_i(z^{(i)})log\frac{p(x^{i},z^{(i)};\theta)}{Q_i(z^{(i)})}
J(Q,θ)=i∑z(i)∑Qi(z(i))logQi(z(i))p(xi,z(i);θ)
首先介绍Jensen不等式(Jensen’s Inequality),如果
f
f
f是凸函数,X是随机变量。于是我们可得:
E
[
f
(
x
)
]
≥
f
(
E
[
x
]
)
E[f(x)]≥f(E[x])
E[f(x)]≥f(E[x])
如果
f
f
f是凹函数,则
E
[
f
(
x
)
]
≤
f
(
E
[
x
]
)
E[f(x)]≤f(E[x])
E[f(x)]≤f(E[x]);
(
∗
)
=
E
[
Q
z
(
i
)
l
o
g
p
(
x
i
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
]
≤
l
o
g
E
[
Q
z
(
i
)
p
(
x
i
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
]
=
l
o
g
∑
z
(
i
)
Q
z
(
i
)
p
(
x
i
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
=
l
o
g
p
(
x
(
i
)
;
θ
)
(*)=E[Q_{z^{(i)}}log\frac{p(x^{i},z^{(i)};\theta)}{Q_i(z^{(i)})}]≤logE[Q_{z^{(i)}}\frac{p(x^{i},z^{(i)};\theta)}{Q_i(z^{(i)})}]=log\sum_{z^{(i)}}Q_{z^{(i)}}\frac{p(x^{i},z^{(i)};\theta)}{Q_i(z^{(i)})}=logp(x^{(i)};\theta)
(∗)=E[Qz(i)logQi(z(i))p(xi,z(i);θ)]≤logE[Qz(i)Qi(z(i))p(xi,z(i);θ)]=log∑z(i)Qz(i)Qi(z(i))p(xi,z(i);θ)=logp(x(i);θ)
同样我们需要知道这样的关系:
l
(
θ
(
t
)
)
≤
l
(
θ
(
t
+
1
)
)
l(\theta^{(t)})≤l(\theta^{(t+1)})
l(θ(t))≤l(θ(t+1))
也就是说EM算法始终在增加似然函数的大小。
证明:
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);θ)
θ
(
t
+
1
)
=
a
r
g
m
a
x
θ
∑
i
∑
z
(
i
)
Q
i
(
t
)
(
z
(
i
)
)
l
o
g
p
(
x
i
,
z
(
i
)
;
θ
(
t
)
)
Q
i
(
t
)
(
z
(
i
)
)
\theta^{(t+1)}=argmax_\theta\sum_i\sum_{z^{(i)}}Q_i^{(t)}(z^{(i)})log\frac{p(x^{i},z^{(i)};\theta^{(t)})}{Q_i^{(t)}(z^{(i)})}
θ(t+1)=argmaxθi∑z(i)∑Qi(t)(z(i))logQi(t)(z(i))p(xi,z(i);θ(t))
将
Q
Q
Q代入,则可以得到:
θ
(
t
+
1
)
=
a
r
g
m
a
x
θ
∑
i
∑
z
(
i
)
p
(
z
(
i
)
∣
x
(
i
)
;
θ
)
l
o
g
p
(
x
i
,
z
(
i
)
;
θ
(
t
)
)
p
(
z
(
i
)
∣
x
(
i
)
;
θ
)
\theta^{(t+1)}=argmax_\theta\sum_i\sum_{z^{(i)}}p(z^{(i)}|x^{(i)};\theta)log\frac{p(x^{i},z^{(i)};\theta^{(t)})}{p(z^{(i)}|x^{(i)};\theta)}
θ(t+1)=argmaxθi∑z(i)∑p(z(i)∣x(i);θ)logp(z(i)∣x(i);θ)p(xi,z(i);θ(t))
.
.
.
=
a
r
g
m
a
x
θ
∑
i
∑
z
(
i
)
p
(
z
(
i
)
∣
x
(
i
)
;
θ
)
l
o
g
p
(
x
;
θ
)
=
a
r
g
m
a
x
θ
J
(
θ
;
θ
)
...=argmax_\theta\sum_i\sum_{z^{(i)}}p(z^{(i)}|x^{(i)};\theta)logp(x;\theta)=argmax_\theta J(\theta;\theta)
...=argmaxθi∑z(i)∑p(z(i)∣x(i);θ)logp(x;θ)=argmaxθJ(θ;θ)
所以我们可得:
J
(
Q
;
θ
)
=
l
(
θ
(
t
)
)
≤
J
(
Q
;
θ
(
θ
+
1
)
)
≤
l
(
θ
(
t
+
1
)
)
J(Q;\theta)=l(\theta^{(t)})≤ J(Q;\theta^{(\theta+1)})≤ l(\theta^{(t+1)})
J(Q;θ)=l(θ(t))≤J(Q;θ(θ+1))≤l(θ(t+1))
前一个等式成立是因为当
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);θ)时,
J
(
Q
;
θ
)
J(Q;\theta)
J(Q;θ)是
l
(
θ
(
t
)
)
l(\theta^{(t)})
l(θ(t))的下界且取等。之后取不等是因为函数取最大值。
所以EM算法是逐步增大函数的似然估计,使之取最大。
编者的话,个人觉得还是《统计学习方法》中说的明白,书中9.12通俗易懂的说明了EM算法的导出,方便理解,建议通读9.12学习。
算法的直观解释(Important)
EM算法可以通过下图解释,上方曲线是
l
(
θ
)
l(\theta)
l(θ),下方曲线是
J
(
Q
;
θ
)
J(Q;\theta)
J(Q;θ).我们可知
J
J
J为
l
l
l的下界曲线。两个函数在
θ
(
i
)
\theta^{(i)}
θ(i)取等。之后通过求导取得关于J的极大值,得到参数
θ
(
i
+
1
)
\theta^{(i+1)}
θ(i+1),同时也使函数
Q
Q
Q极大化。这时由于
l
>
J
l>J
l>J函数
J
J
J的增加保证
l
l
l也是增加的,EM算法在
θ
(
i
+
1
)
\theta^{(i+1)}
θ(i+1)重新计算函数
Q
Q
Q的值,进行下一次的迭代。整个过程中我们可知EM算法不能保证找到全局最优值。
补充 1 (回到之前的高斯混合模型,利用EM算法估计参数)
高斯混合模型:
z
(
i
)
∼
M
u
l
t
i
n
o
m
i
a
l
(
ϕ
)
z^{(i)}\sim Multinomial(\phi)
z(i)∼Multinomial(ϕ)
x
(
i
)
∣
z
(
i
)
∼
N
(
μ
j
,
Σ
j
)
x^{(i)}|z^{(i)}\sim \N(\mu_j,\Sigma_j)
x(i)∣z(i)∼N(μj,Σj)
学习参数:
μ
,
Σ
,
ϕ
\mu,\Sigma,\phi
μ,Σ,ϕ
E-Step:
w j ( i ) = Q i ( z ( i ) = j ) = p ( z ( i ) = j ∣ x ( i ) ; ϕ , μ , Σ ) w_j^{(i)}=Q_i(z^{(i)}=j)=p(z^{(i)}=j|x^{(i)};\phi,\mu,\Sigma) wj(i)=Qi(z(i)=j)=p(z(i)=j∣x(i);ϕ,μ,Σ)
M-Step:
M
a
x
i
m
i
z
e
∑
i
=
1
m
∑
z
(
i
)
Q
i
(
z
(
i
)
)
l
o
g
p
(
x
i
,
z
(
i
)
;
μ
,
Σ
,
ϕ
)
Q
i
(
z
(
i
)
)
Maximize \sum_{i=1}^m\sum_{z^{(i)}}Q_i(z^{(i)})log\frac{p(x^{i},z^{(i)};\mu,\Sigma,\phi)}{Q_i(z^{(i)})}
Maximizei=1∑mz(i)∑Qi(z(i))logQi(z(i))p(xi,z(i);μ,Σ,ϕ)
完整描述: