因为在第三次比赛中用到了高斯混合模型GMM,这里根据我自己的理解对GMM内部的EM算法做一个简要的复习。
EM算法概述
先来回顾一下EM算法。EM算法是通过迭代求
L
(
θ
)
=
l
o
g
P
(
Y
∣
θ
)
L(\theta)=logP(Y|\theta)
L(θ)=logP(Y∣θ)的极大似然估计的方法,即我们的目标是要找到一个
θ
\theta
θ,使得
l
o
g
P
(
Y
∣
θ
)
logP(Y|\theta)
logP(Y∣θ)最大。
首先选择参数初值
θ
(
0
)
\theta^{(0)}
θ(0),开始迭代。在第
i
+
1
i+1
i+1次迭代的E步计算
Q
Q
Q函数:
Q
(
θ
,
θ
(
i
)
)
=
E
Z
[
l
o
g
P
(
Y
,
Z
∣
θ
)
∣
Y
,
θ
(
i
)
]
=
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
,
Z
∣
θ
)
Q(\theta,\theta^{(i)})=E_Z[logP(Y,Z|\theta)|Y,\theta^{(i)}]=\sum_ZP(Z|Y,\theta^{(i)})logP(Y,Z|\theta)
Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]=Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ) 接着在M步计算使
Q
Q
Q函数极大化的
θ
\theta
θ作为
θ
(
i
+
1
)
\theta^{(i+1)}
θ(i+1):
θ
(
i
+
1
)
=
arg
max
θ
Q
(
θ
,
θ
(
i
)
)
\theta^{(i+1)}=\arg\max_\theta Q(\theta,\theta^{(i)})
θ(i+1)=argθmaxQ(θ,θ(i)) 可以看到,每次迭代其实都是在求
Q
Q
Q函数及其极大。划重点,
Q
Q
Q函数是完全数据的对数似然函数
l
o
g
P
(
Y
,
Z
∣
θ
)
logP(Y,Z|\theta)
logP(Y,Z∣θ)关于未观测数据
Z
Z
Z的条件概率分布
P
(
Z
∣
Y
,
θ
(
i
)
)
P(Z|Y,\theta^{(i)})
P(Z∣Y,θ(i))的期望。
为什么每一步求
Q
Q
Q函数的极大,最后就能得到
L
(
θ
)
L(\theta)
L(θ)的极大呢?一句话概括,
Q
Q
Q函数是
L
(
θ
)
−
L
(
θ
(
i
)
)
L(\theta)-L(\theta^{(i)})
L(θ)−L(θ(i))的下界,一步步求
Q
Q
Q函数的极大,意味着一步步的提高
L
(
θ
)
L(\theta)
L(θ)。
Q Q Q函数推导
假设在第
i
i
i次迭代后
θ
\theta
θ的估计值是
θ
(
i
)
\theta^{(i)}
θ(i),考虑下面
L
(
θ
)
−
L
(
θ
(
i
)
)
L(\theta)-L(\theta^{(i)})
L(θ)−L(θ(i))的表达式
L
(
θ
)
−
L
(
θ
(
i
)
)
=
l
o
g
P
(
Y
∣
θ
)
−
l
o
g
P
(
Y
∣
θ
(
i
)
)
L(\theta)-L(\theta^{(i)})=logP(Y|\theta)-logP(Y|\theta^{(i)})
L(θ)−L(θ(i))=logP(Y∣θ)−logP(Y∣θ(i)) 在
L
(
θ
)
L(\theta)
L(θ)中加入隐变量
Z
Z
Z,即令
P
(
Y
∣
θ
)
=
∑
Z
P
(
Y
,
Z
∣
θ
)
P(Y|\theta)=\sum_ZP(Y,Z|\theta)
P(Y∣θ)=Z∑P(Y,Z∣θ) 代入
L
(
θ
)
L(\theta)
L(θ)得
L
(
θ
)
=
l
o
g
∑
Z
P
(
Y
,
Z
∣
θ
)
L(\theta)=log\sum_ZP(Y,Z|\theta)
L(θ)=logZ∑P(Y,Z∣θ) 为了用Jensen不等式将log放入
∑
\sum
∑内部,同时乘以、除以一个
P
(
Z
∣
Y
,
θ
(
i
)
)
P(Z|Y,\theta^{(i)})
P(Z∣Y,θ(i))得
L
(
θ
)
=
l
o
g
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Y
,
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
L(\theta)=log\sum_ZP(Z|Y,\theta^{(i)})\frac{P(Y,Z|\theta)}{P(Z|Y,\theta^{(i)})}
L(θ)=logZ∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Y,Z∣θ) 利用Jensen不等式得到
L
(
θ
)
L(\theta)
L(θ)的下界
L
(
θ
)
≥
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
,
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
L(\theta)\geq\sum_ZP(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Z|Y,\theta^{(i)})}
L(θ)≥Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y,Z∣θ) 将
L
(
θ
)
L(\theta)
L(θ)的下界代入
L
(
θ
)
−
L
(
θ
(
i
)
)
L(\theta)-L(\theta^{(i)})
L(θ)−L(θ(i))中,得
L
(
θ
)
−
L
(
θ
(
i
)
)
≥
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
,
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
P
(
Y
∣
θ
(
i
)
)
=
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
,
Z
∣
θ
)
P
(
Y
,
Z
∣
θ
(
i
)
)
L(\theta)-L(\theta^{(i)})\geq\sum_ZP(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}=\sum_ZP(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Y,Z|\theta^{(i)})}
L(θ)−L(θ(i))≥Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y,Z∣θ)=Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ) 由于上式可转化为
L
(
θ
)
−
L
(
θ
(
i
)
)
≥
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
,
Z
∣
θ
)
−
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
,
Z
∣
θ
(
i
)
)
L(\theta)-L(\theta^{(i)})\geq\sum_ZP(Z|Y,\theta^{(i)})logP(Y,Z|\theta)-\sum_ZP(Z|Y,\theta^{(i)})logP(Y,Z|\theta^{(i)})
L(θ)−L(θ(i))≥Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ)−Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i)) 因为我们的目标是找到一个
θ
\theta
θ使
L
(
θ
)
−
L
(
θ
(
i
)
)
L(\theta)-L(\theta^{(i)})
L(θ)−L(θ(i))的下界极大,因此不等式右边的后半部分可以看作常数,我们的目标便转化为了
θ
(
i
+
1
)
=
arg
max
θ
∑
Z
P
(
Z
∣
Y
,
θ
(
i
)
)
l
o
g
P
(
Y
,
Z
∣
θ
)
\theta^{(i+1)}=\arg\max_\theta\sum_ZP(Z|Y,\theta^{(i)})logP(Y,Z|\theta)
θ(i+1)=argθmaxZ∑P(Z∣Y,θ(i))logP(Y,Z∣θ) 这样,
Q
Q
Q函数就出来了。
GMM中的EM算法
高斯混合模型的概率分布表达式是这样的
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
K
K个高斯分布,概率
P
(
y
∣
θ
)
P(y|\theta)
P(y∣θ)是
K
K
K个概率分布密度的加权和。每个高斯分布共有3个参数需要求取,
α
k
\alpha_k
αk代表每个高斯分布的权值,
θ
k
=
(
μ
k
,
σ
k
2
)
\theta_k=(\mu_k,\sigma_k^2)
θk=(μk,σk2)代表每个高斯分布的均值和方差。
那么如果我们现在有一系列的观测点
Y
=
(
y
1
,
y
2
,
⋯
 
,
y
N
)
Y=(y_1,y_2,\cdots,y_N)
Y=(y1,y2,⋯,yN),如何用EM算法求取高斯混合模型的参数呢?同样是E步求
Q
Q
Q函数,M步求极大,但这里不写推导过程,而是去感性理解。
首先取参数的初始值
α
k
,
μ
k
,
σ
k
2
\alpha_k,\mu_k,\sigma_k^2
αk,μk,σk2,开始迭代。在GMM中,隐变量
Z
Z
Z代表了每个观测点属于哪个高斯分布,所以在E步,我们对隐变量
Z
Z
Z在给定样本下的条件分布求期望,也就是求每个观测点属于各高斯分布的概率,设点
y
j
y_j
yj属于高斯分布
k
k
k的概率为
γ
^
j
k
\hat \gamma_{jk}
γ^jk,则
γ
^
j
k
=
α
k
ϕ
(
y
j
∣
θ
k
)
∑
k
=
1
K
α
k
ϕ
(
y
j
∣
θ
k
)
,
j
=
1
,
2
,
⋯
 
,
N
;
k
=
1
,
2
,
⋯
 
,
K
\hat\gamma_{jk}=\frac{\alpha_k\phi(y_j|\theta_k)}{\sum_{k=1}^K\alpha_k\phi(y_j|\theta_k)}, j=1,2,\cdots,N; k=1,2,\cdots,K
γ^jk=∑k=1Kαkϕ(yj∣θk)αkϕ(yj∣θk), j=1,2,⋯,N; k=1,2,⋯,K 到了M步,我们可以用求出来的
γ
^
j
k
\hat\gamma_{jk}
γ^jk去重新计算各高斯分布的参数,这本质上是一个求期望极大的过程。针对第
k
k
k个高斯分布的权值
α
k
\alpha_k
αk,它应该等于每个观测点属于此高斯分布的概率的平均值,即
α
^
k
=
∑
j
=
1
N
γ
^
j
k
N
,
k
=
1
,
2
,
⋯
 
,
K
\hat\alpha_k=\frac{\sum_{j=1}^N\hat\gamma_{jk}}{N}, k=1,2,\cdots,K
α^k=N∑j=1Nγ^jk, k=1,2,⋯,K 针对第
k
k
k个高斯分布的均值
μ
k
\mu_k
μk,它应该等于每个观测点关于其属于第
k
k
k个高斯分布的概率的期望,即
μ
^
k
=
∑
j
=
1
N
γ
^
j
k
y
j
∑
j
=
1
N
γ
^
j
k
,
k
=
1
,
2
,
⋯
 
,
K
\hat\mu_k=\frac{\sum_{j=1}^N\hat\gamma_{jk}y_j}{\sum_{j=1}^N\hat\gamma_{jk}}, k=1,2,\cdots,K
μ^k=∑j=1Nγ^jk∑j=1Nγ^jkyj, k=1,2,⋯,K 最后是第
k
k
k个高斯分布的方差
σ
k
2
\sigma_k^2
σk2,它应该等于每个观测点与均值
μ
k
\mu_k
μk之差的平方关于其属于第
k
k
k个高斯分布的概率的期望,即
σ
^
k
2
=
∑
j
=
1
N
γ
^
j
k
(
y
j
−
μ
k
)
2
∑
j
=
1
N
γ
^
j
k
,
k
=
1
,
2
,
⋯
 
,
K
\hat\sigma_k^2=\frac{\sum_{j=1}^N\hat\gamma_{jk}(y_j-\mu_k)^2}{\sum_{j=1}^N\hat\gamma_{jk}}, k=1,2,\cdots,K
σ^k2=∑j=1Nγ^jk∑j=1Nγ^jk(yj−μk)2, k=1,2,⋯,K
得到了每个高斯分布当前的
α
^
k
,
μ
^
k
,
σ
^
k
2
\hat\alpha_k,\hat\mu_k,\hat\sigma_k^2
α^k,μ^k,σ^k2后,返回E步继续迭代。