Expectation-Maximum-Algorithm—EM算法
1. 预备知识
1.1 凸函数的性质
假设定义在实数域上的函数,对于 任意的实数,都有
(1.1)
f
′
′
(
x
)
<
0
f''(x)<0\tag{1.1}
f′′(x)<0(1.1)
则函数
f
(
x
)
f(x)
f(x)称为凸函数,反之,为凹函数。(国内外教材对于凸凹函数的定义不同,这里采用国内教材为准)
1.2 Jensen不等式
1.2.1 数学意义
如果函数是凸函数,则有
(1.2)
f
(
λ
x
1
+
(
1
−
λ
)
x
2
)
≥
λ
f
(
x
1
)
+
(
1
−
λ
)
f
(
x
2
)
f(\lambda x_1+(1-\lambda)x_2) \geq \lambda f(x_1)+(1-\lambda)f(x_2)\tag{1.2}
f(λx1+(1−λ)x2)≥λf(x1)+(1−λ)f(x2)(1.2)
如果函数是凹函数,则有
(1.3)
f
(
λ
x
1
+
(
1
−
λ
)
x
2
)
≤
λ
f
(
x
1
)
+
(
1
−
λ
)
f
(
x
2
)
f(\lambda x_1+(1-\lambda)x_2) \leq \lambda f(x_1)+(1-\lambda)f(x_2)\tag{1.3}
f(λx1+(1−λ)x2)≤λf(x1)+(1−λ)f(x2)(1.3)
1.2.2 几何意义
当 λ \lambda λ为 0.5 0.5 0.5时,左右两边严格相等。
1.2.3 推广
若存在凸函数
f
(
x
)
f(x)
f(x),其中有
(1.4)
∑
i
=
1
k
λ
i
=
1
,
λ
i
≥
0
\begin{aligned} \sum_{i=1}^{k}\lambda_i=1, \lambda_{i} \geq 0\tag{1.4} \end{aligned}
i=1∑kλi=1,λi≥0(1.4)
则有
(1.5)
f
(
λ
1
x
1
+
λ
2
x
2
+
.
.
.
+
λ
k
x
k
)
≥
λ
1
f
(
x
1
)
+
λ
2
f
(
x
2
)
+
.
.
.
+
λ
k
f
(
x
k
)
\begin{aligned} f(\lambda_1x_1+\lambda_2x_2+...+\lambda_kx_k)\geq\lambda_{1}f(x_1)+\lambda_{2}f(x_2)+...+\lambda_{k}f(x_k)\tag{1.5} \end{aligned}
f(λ1x1+λ2x2+...+λkxk)≥λ1f(x1)+λ2f(x2)+...+λkf(xk)(1.5)
在概率论中,我们知道对于离散变量的期望
E
E
E有
(1.6)
E
(
X
)
=
∑
i
k
p
i
X
i
\begin{aligned} E(X)=\sum_{i}^{k}p_iX_i \tag{1.6} \end{aligned}
E(X)=i∑kpiXi(1.6)
类比公式
(
1.4
)
,
(
1.5
)
(1.4),(1.5)
(1.4),(1.5)则有
(1.7)
f
(
E
(
X
)
)
≥
E
(
f
(
X
)
)
\begin{aligned} f(E(X)) \geq E(f(X)) \tag{1.7} \end{aligned}
f(E(X))≥E(f(X))(1.7)
1.3 隐变量
不能被直接观察到,但是对系统的状态和能观察到的输出存在影响的一种东西。 下文中,硬币A的结果,就是隐变量。
1.4 极大似然函数的概念
1.4.1 极大似然函数的概念
简单的说,极大似然估计就是固定住观测变量的值,确定可能性最大的一系列参数的过程.
1.4.2 极大似然函数——以高斯分布为例
若给定一组样本
x
1
,
x
2
…
,
x
N
x_1,x_2…,x_N
x1,x2…,xN,已知它们来自于高斯分布
N
(
μ
,
σ
2
)
N~(\mu, \sigma^2)
N (μ,σ2),试估参数
μ
,
σ
\mu, \sigma
μ,σ。
1.4.3 极大似然函数——以高斯混合分布为例
1.4.3.1 多元高斯分布
多元高斯分布是对
d
d
d维样本空间
χ
\chi
χ中的随机向量
X
\boldsymbol{X}
X,若
X
\boldsymbol{X}
X服从高斯分布,则其概率密度为:
(1.8)
f
(
x
)
=
1
2
π
n
/
2
∣
Σ
∣
1
/
2
e
−
1
2
(
X
−
μ
)
T
Σ
−
1
(
X
−
μ
)
\begin{aligned} f(\boldsymbol{x})=\frac{1}{{2\pi}^{n/2}{|\Sigma|^{1/2}}}e^{-\frac{1}{2}(\boldsymbol{X-\mu})^T\Sigma^{-1}(\boldsymbol{X-\mu})}\tag{1.8} \end{aligned}
f(x)=2πn/2∣Σ∣1/21e−21(X−μ)TΣ−1(X−μ)(1.8)
注意一点:
- 当随机变量 X X X是 1 1 1维数据 时,均值 μ k \mu_k μk和方差 σ k \sigma_k σk均为一个标量(其中 ( k < K ) (k<K) (k<K))
- 当随机变量 X X X是 m m m维数据 时,均值 μ \mu μ是一个 m m m维的向量,和方差 σ \sigma σ是一个 d ∗ d d*d d∗d的协方差矩阵。为了加以区分,将 σ \sigma σ记为 Σ \Sigma Σ。
1.4.3.2 多元高斯混合分布
定义
通常在自然界中,随机变量 X \boldsymbol{X} X可能有 K K K个高斯分布混合组成,那么,记取自不同高斯分布的概率分别为 π 1 , π 2 , . . . , π K \pi_1, \pi_2,... ,\pi_K π1,π2,...,πK,第 k k k个高斯分布的均值为 μ k \mu_k μk,方差为 σ k \sigma_k σk。
此时,需要估计的参数为: K K K个 π , μ , Σ \pi, \mu, \Sigma π,μ,Σ。
因此, 高斯混合模型是指具有如下形式的概率分布模型:
(1.10)
P
(
X
∣
θ
)
=
∑
k
=
1
K
π
k
ϕ
(
X
;
θ
k
)
\begin{aligned} P(\boldsymbol{X}|\theta)= \sum_{k=1}^{K} \pi_{k} \phi(\boldsymbol{X};\theta_k) \tag{1.10} \end{aligned}
P(X∣θ)=k=1∑Kπkϕ(X;θk)(1.10)
其中,
π
k
\pi_k
πk是系数,
π
k
≥
0
,
∑
k
=
1
K
π
k
=
1
\pi_k \geq 0, \sum_{k=1}^{K} \pi_k = 1
πk≥0,∑k=1Kπk=1,且
ϕ
(
X
∣
θ
k
)
\phi(\boldsymbol{X}|\theta_k)
ϕ(X∣θk)是高斯分布密度
ϕ
(
X
;
μ
k
,
Σ
k
)
\phi(\boldsymbol{X}; \mu_k, \Sigma_k)
ϕ(X;μk,Σk)。
似然函数的建立
建立似然函数,分两步走:
- 因为取到第
i
i
i个样本来自于第
k
k
k个样本的概率为
π
k
ϕ
(
x
i
;
μ
k
Σ
k
)
\pi_k\phi(\boldsymbol{x_i}; \boldsymbol{\mu_k}\boldsymbol{\Sigma_k})
πkϕ(xi;μkΣk)。所以,取到第
i
i
i个样本的概率为:
(1.11) P ( X = x i ; θ ) = ∑ k = 1 K π k ϕ ( x i ; μ k , Σ k ) \begin{aligned} P(\boldsymbol{X}=\boldsymbol{x_i};\theta)=\sum_{k=1}^{K} \pi_k\phi(\boldsymbol{x_i}; \boldsymbol{\mu_k}, \boldsymbol{\Sigma_k})\tag{1.11} \end{aligned} P(X=xi;θ)=k=1∑Kπkϕ(xi;μk,Σk)(1.11) -
N
N
N个样本的似然函数为
(1.12) L ( π , μ , Σ ) = ∏ i = 1 N ∑ k = 1 K π k ϕ ( x i ; μ k , Σ k ) \begin{aligned} L(\pi, \boldsymbol{\mu}, \boldsymbol{\Sigma})=&\prod_{i=1}^{N}\sum_{k=1}^{K} \pi_k\phi(\boldsymbol{x_i}; \boldsymbol{\mu_k}, \boldsymbol{\Sigma_k}) \tag{1.12} \end{aligned} L(π,μ,Σ)=i=1∏Nk=1∑Kπkϕ(xi;μk,Σk)(1.12)
对公式 ( 1.12 ) (1.12) (1.12)取对数有
(1.13) l o g ( L π , μ k , Σ k ) = l o g ( ∏ i = 1 N ∑ k = 1 K π k ϕ ( x i ; μ k , Σ k ) ) ) = ∑ i = 1 N l o g ( ∑ k = 1 K π k ϕ ( x i ; μ k , Σ k ) ) ) \begin{aligned} log(L_{\pi, \boldsymbol{\mu_k}, \boldsymbol{\Sigma_k}})=&log(\prod_{i=1}^{N}\sum_{k=1}^{K} \pi_k\phi(\boldsymbol{x_i}; \boldsymbol{\mu_k}, \boldsymbol{\Sigma_k})))\\ =&\sum_{i=1}^{N} log(\sum_{k=1}^{K} \pi_k\phi(\boldsymbol{x_i}; \boldsymbol{\mu_k}, \boldsymbol{\Sigma_k})))\\ \tag{1.13} \end{aligned} log(Lπ,μk,Σk)==log(i=1∏Nk=1∑Kπkϕ(xi;μk,Σk)))i=1∑Nlog(k=1∑Kπkϕ(xi;μk,Σk)))(1.13)
此时,我们的目标是要找到 K K K个高斯分布的 μ k , Σ k \boldsymbol{\mu_k}, \boldsymbol{\Sigma_k} μk,Σk,使得公式 ( 1.13 ) (1.13) (1.13)最大
(1.14) l o g ( L π , μ k , Σ k ) = ∑ i = 1 N l o g ( ∑ k = 1 K π k ϕ ( x i ; μ k , Σ k ) ) ) \begin{aligned} log(L_{\pi, \boldsymbol{\mu_k}, \boldsymbol{\Sigma_k}})=&\sum_{i=1}^{N} log(\sum_{k=1}^{K} \pi_k\phi(\boldsymbol{x_i}; \boldsymbol{\mu_k}, \boldsymbol{\Sigma_k})))\\ \tag{1.14} \end{aligned} log(Lπ,μk,Σk)=i=1∑Nlog(k=1∑Kπkϕ(xi;μk,Σk)))(1.14)
预备知识完毕,下面开始进入EM算法预热。
2. EM算法的直观理解(此过程并不严谨)
先假设参数,根据参数计算其所属概率,反过来计算已知概率情况下该参数的后验概率,再通过最大似然估计参数,循环往复,直到收敛。
以知乎男女身高分布的例子为例。随机挑选1000个人,测量他们的身高。在这1000个人中,有男性有女性,身高分别服从 N b o y ( μ b o y , σ b o y 2 ) N_{boy}(\mu_{boy}, \sigma_{boy}^2) Nboy(μboy,σboy2)和 N g i r l ( μ g i r l , σ g i r l 2 ) N_{girl}(\mu_{girl}, \sigma_{girl}^2) Ngirl(μgirl,σgirl2)的分布,试着估计 μ b o y , σ b o y , μ g i r l , σ g i r l \mu_{boy}, \sigma_{boy}, \mu_{girl}, \sigma_{girl} μboy,σboy,μgirl,σgirl。
1. 估计每个样本数据由每个分布组成的比例。
首先假设男孩服从的分布为
N
b
o
y
(
175
,
1
0
2
)
N_{boy}(175, 10^2)
Nboy(175,102),女孩服从分布
N
g
i
r
l
(
165
,
8
2
)
N_{girl}(165, 8^2)
Ngirl(165,82)。将第一个样本
X
1
=
198
X_1=198
X1=198分别带入公式
(
2.1
)
(2.1)
(2.1)中,有:
(2.2-1)
f
b
o
y
(
198
)
=
1
2
π
∗
10
e
−
(
198
−
175
)
2
2
∗
1
0
2
\begin{aligned} f_{boy}(198)=\frac{1}{\sqrt{2\pi}*10}e^{-\frac{(198-175)^2}{2*10^2}}\tag{2.2-1} \end{aligned}
fboy(198)=2π∗101e−2∗102(198−175)2(2.2-1)
(2.2-2)
f
g
i
r
l
(
198
)
=
1
2
π
∗
8
e
−
(
198
−
165
)
2
2
∗
8
2
\begin{aligned} f_{girl}(198)=\frac{1}{\sqrt{2\pi}*8}e^{-\frac{(198-165)^2}{2*8^2}}\tag{2.2-2} \end{aligned}
fgirl(198)=2π∗81e−2∗82(198−165)2(2.2-2)
2. 其次,假设选择男生分布的概率为 π b o y = 1 2 \pi_{boy}=\frac{1}{2} πboy=21,女性分布的概率为 π g i r l = 1 2 \pi_{girl}=\frac{1}{2} πgirl=21,带入公式 ( 2.1 ) (2.1) (2.1)可以写成
(2.3-1)
γ
(
1
,
b
o
y
)
=
π
b
o
y
N
(
X
1
;
μ
b
o
y
,
σ
b
o
y
)
∑
k
=
1
K
π
k
N
(
X
1
;
μ
k
,
σ
k
)
=
1
2
∗
f
b
o
y
(
198
)
1
2
∗
f
b
o
y
(
198
)
+
1
2
∗
f
g
i
r
l
(
198
)
\begin{aligned} \gamma(1,boy)=&\frac{\pi_{boy}N(X_1;\mu_{boy},\sigma_{boy})}{\sum_{k=1}^{K}\pi_kN(X_1;\mu_k,\sigma_k)}\\\\ =&\frac{\frac{1}{2}*f_{boy}(198)}{\frac{1}{2}*f_{boy}(198)+\frac{1}{2}*f_{girl}(198)}\tag{2.3-1} \end{aligned}
γ(1,boy)==∑k=1KπkN(X1;μk,σk)πboyN(X1;μboy,σboy)21∗fboy(198)+21∗fgirl(198)21∗fboy(198)(2.3-1)
(2.3-2)
γ
(
1
,
g
i
r
l
)
=
π
g
i
r
l
N
(
X
1
;
μ
g
i
r
l
,
σ
g
i
r
l
)
∑
k
=
1
K
π
k
N
(
X
1
;
μ
k
,
σ
k
)
=
1
2
∗
f
g
i
r
l
(
198
)
1
2
∗
f
b
o
y
(
198
)
+
1
2
∗
f
g
i
r
l
(
198
)
\begin{aligned} \gamma(1,girl)=&\frac{\pi_{girl}N(X_1;\mu_{girl},\sigma_{girl})}{\sum_{k=1}^{K}\pi_kN(X_1;\mu_k,\sigma_k)}\\\\ =&\frac{\frac{1}{2}*f_{girl}(198)}{\frac{1}{2}*f_{boy}(198)+\frac{1}{2}*f_{girl}(198)}\tag{2.3-2} \end{aligned}
γ(1,girl)==∑k=1KπkN(X1;μk,σk)πgirlN(X1;μgirl,σgirl)21∗fboy(198)+21∗fgirl(198)21∗fgirl(198)(2.3-2)
此时,男孩样本 1 1 1上的变化情况为 198 ∗ γ ( 1 , b o y ) 198*\gamma(1,boy) 198∗γ(1,boy),女孩样本 1 1 1上的变化情况为 198 ∗ γ ( 1 , g i r l ) 198*\gamma(1,girl) 198∗γ(1,girl)。
3. 对所有样本均重复上述操作。
可得到
γ
(
i
,
b
o
y
)
\gamma(i,boy)
γ(i,boy)、
γ
(
i
,
g
i
r
l
)
\gamma(i,girl)
γ(i,girl),其中
i
=
1
,
2
,
.
.
.
,
N
i=1,2,...,N
i=1,2,...,N。第一轮参数估计的结果为:
(2.4-1)
μ
b
o
y
=
1
∑
i
=
1
N
γ
(
i
,
b
o
y
)
∑
i
=
1
N
X
i
∗
γ
(
i
,
b
o
y
)
\begin{aligned} \mu_{boy}=&\frac{1}{\sum_{i=1}^{N}\gamma(i,boy)}\sum_{i=1}^{N}X_i*\gamma(i,boy)\tag{2.4-1}\\ \end{aligned}
μboy=∑i=1Nγ(i,boy)1i=1∑NXi∗γ(i,boy)(2.4-1)
(2.4-2)
μ
g
i
r
l
=
1
∑
i
=
1
N
γ
(
i
,
g
i
r
l
)
∑
i
=
1
N
X
i
∗
γ
(
i
,
g
i
r
l
)
\begin{aligned} \mu_{girl}=& \frac{1}{\sum_{i=1}^{N}\gamma(i,girl)}\sum_{i=1}^{N}X_i*\gamma(i,girl) \tag{2.4-2}\\ \end{aligned}
μgirl=∑i=1Nγ(i,girl)1i=1∑NXi∗γ(i,girl)(2.4-2)
(2.4-3)
σ
b
o
y
=
1
∑
i
=
1
N
γ
(
i
,
b
o
y
)
∑
i
=
1
N
γ
(
i
,
b
o
y
)
∗
(
X
i
−
μ
b
o
y
)
2
\begin{aligned} \sigma_{boy}=&\frac{1}{\sum_{i=1}^{N}\gamma(i,boy)}\sum_{i=1}^{N}\gamma(i,boy)*(X_i-\mu_{boy})^2 \tag{2.4-3}\\ \end{aligned}
σboy=∑i=1Nγ(i,boy)1i=1∑Nγ(i,boy)∗(Xi−μboy)2(2.4-3)
(2.4-4)
σ
g
i
r
l
=
1
∑
i
=
1
N
γ
(
i
,
g
i
r
l
)
∑
i
=
1
N
γ
(
i
,
g
i
r
l
)
∗
(
X
i
−
μ
g
i
r
l
)
2
\begin{aligned} \sigma_{girl}=&\frac{1}{\sum_{i=1}^{N}\gamma(i,girl)}\sum_{i=1}^{N}\gamma(i,girl)* (X_i-\mu_{girl})^2 \tag{2.4-4}\\ \end{aligned}
σgirl=∑i=1Nγ(i,girl)1i=1∑Nγ(i,girl)∗(Xi−μgirl)2(2.4-4)
(2.4-5)
π
b
o
y
=
∑
i
=
1
N
∗
γ
(
i
,
b
o
y
)
N
\begin{aligned} \pi_{boy}=&\frac{\sum_{i=1}^{N}*\gamma(i,boy)}{N}\tag{2.4-5} \\ \end{aligned}
πboy=N∑i=1N∗γ(i,boy)(2.4-5)
(2.4-6)
π
g
i
r
l
=
∑
i
=
1
N
∗
γ
(
i
,
g
i
r
l
)
N
\begin{aligned} \pi_{girl}=&\frac{\sum_{i=1}^{N}*\gamma(i,girl)}{N}\tag{2.4-6} \\ \end{aligned}
πgirl=N∑i=1N∗γ(i,girl)(2.4-6)
4. 根据公式 (2.4-1,2.4-2,2.4-3,2.4-4, 2.4-5,2.4-6) 所得,重复上述步骤,直到迭代次数完毕为止或者误差极其小为止。
3. 从极大后验概率看EM算法
3.1 数据准备
若假设训练集由 K K K个混合分布组成,且观测变量为 X = [ x 1 , x 2 , . . . , x N ] T \boldsymbol{X}=[\boldsymbol{x_1}, \boldsymbol{x_2}, ..., \boldsymbol{x_N}]^T X=[x1,x2,...,xN]T,给定每个样本具有 d d d个特征值,未观测数据 z = [ z 1 , z 2 , . . . , z N ] T \boldsymbol{z}=[z_1, z_2, ..., z_N]^T z=[z1,z2,...,zN]T, θ \theta θ为对应的参数。
3.2 EM算法的科学推导
3.2.1 明确隐变量,写出似然函数
对于不含隐变量的数据而言,混合多元分布的似然函数可以写成
(2.2)
l
o
g
(
L
θ
)
=
∑
i
=
1
N
l
o
g
(
∑
k
=
1
K
π
k
p
(
x
i
;
θ
)
)
\begin{aligned} log(L_{\theta})= \sum_{i=1}^{N} log(\sum_{k=1}^{K} \pi_kp(\boldsymbol{x_i}; \theta))\\ \tag{2.2} \end{aligned}
log(Lθ)=i=1∑Nlog(k=1∑Kπkp(xi;θ))(2.2)
实际生活中,我们却不得不考虑隐变量,因此,需要稍微变动一下。公式(1.13)就变成了:
(3.1)
l
o
g
(
L
θ
)
=
∑
i
=
1
N
l
o
g
(
∑
k
=
1
K
π
k
p
(
x
i
,
z
i
;
θ
)
)
\begin{aligned} log(L_{\theta}) =& \sum_{i=1}^{N}log(\sum_{k=1}^{K}\pi_{k}p(\boldsymbol{x_i},z_i;\theta))\\ \tag{3.1} \end{aligned}
log(Lθ)=i=1∑Nlog(k=1∑Kπkp(xi,zi;θ))(3.1)
在进行下一步之前,需要明确的问题:
1. 隐变量与高斯混合分布的关系是怎样的?
隐变量与高斯混合分布是一一对应的,隐变量反映了观测数据来自K个高斯混合分布中的哪一个分布。在身高例子中, z i = b o y z_i=boy zi=boy说明,第 i i i个变量来自于“男”这个高斯分布。
因此,第 i i i个样本的隐随机变量 z i z_i zi的可能的取值为 Z = { 1 , 2 , . . . , k } , 1 ≤ k ≤ K Z=\{1,2,...,k\},1 \leq k \leq K Z={1,2,...,k},1≤k≤K。
在上述条件的基础下,有人找到了一个这样一个东西:第
i
i
i个样本的隐随机变量
z
i
z_i
zi满足某个分布
Q
i
Q_i
Qi,
Q
i
(
z
i
)
>
0
Q_i(z_i)>0
Qi(zi)>0,则公式(2.3)又可以写成:
(3.2)
l
o
g
(
L
θ
)
=
∑
i
=
1
N
l
o
g
(
∑
z
i
Q
i
(
Z
)
π
z
i
p
(
x
i
,
z
i
;
θ
)
)
\begin{aligned} log(L_{\theta})=&\sum_{i=1}^{N} log(\sum_{z_i}^{\boldsymbol{Q_i(Z)}}\pi_{z_i}p(\boldsymbol{x_i},z_i;\theta)) \tag{3.2} \end{aligned}
log(Lθ)=i=1∑Nlog(zi∑Qi(Z)πzip(xi,zi;θ))(3.2)
然后又变换了一下:
(3.3)
l
o
g
(
L
θ
)
=
∑
i
=
1
N
l
o
g
(
∑
z
i
Q
i
(
Z
)
Q
i
(
z
i
)
π
z
i
p
(
x
i
,
z
i
;
θ
)
Q
i
(
z
i
)
)
\begin{aligned} log(L_{\theta})=& \sum_{i=1}^{N} log(\sum_{z_i}^{\boldsymbol{Q_i(Z)}}Q_i (z_i)\frac{\pi_{z_i}p(\boldsymbol{x_i},z_i;\theta)}{Q_i(z_i)})\\ \tag{3.3} \end{aligned}
log(Lθ)=i=1∑Nlog(zi∑Qi(Z)Qi(zi)Qi(zi)πzip(xi,zi;θ))(3.3)
由于
l
o
g
log
log函数是凸函数,则根据Jensen不等式,公式(2.6)可以改为:
(3.4)
l
o
g
(
L
θ
)
=
∑
i
=
1
N
l
o
g
(
∑
z
i
Q
i
(
Z
)
π
z
i
p
(
x
i
,
z
i
;
θ
)
)
=
∑
i
=
1
N
l
o
g
(
∑
z
i
Q
i
(
Z
)
Q
i
(
z
i
)
π
z
i
p
(
x
i
,
z
i
;
θ
)
Q
i
(
z
i
)
)
≥
∑
i
=
1
N
∑
z
i
Q
i
(
Z
)
Q
i
(
z
i
)
l
o
g
(
π
z
i
p
(
x
i
,
z
i
;
θ
)
Q
i
(
z
i
)
)
\begin{aligned} log(L_{\theta})=&\sum_{i=1}^{N} log( \sum_{z_i}^{\boldsymbol{Q_i(Z)}}\pi_{z_i}p(\boldsymbol{x_i},z_i;\theta))\\ =&\sum_{i=1}^{N} log(\sum_{z_i}^{\boldsymbol{Q_i(Z)}}Q_i(z_i)\frac{\pi_{z_i}p(\boldsymbol{x_i},z_i;\theta)}{Q_i(z_i)})\\ \geq& \sum_{i=1}^{N} \sum_{z_i}^{\boldsymbol{Q_i(Z)}}Q_i(z_i) log(\frac{\pi_{z_i}p(\boldsymbol{x_i},z_i;\theta)}{Q_i(z_i)}) \tag{3.4} \end{aligned}
log(Lθ)==≥i=1∑Nlog(zi∑Qi(Z)πzip(xi,zi;θ))i=1∑Nlog(zi∑Qi(Z)Qi(zi)Qi(zi)πzip(xi,zi;θ))i=1∑Nzi∑Qi(Z)Qi(zi)log(Qi(zi)πzip(xi,zi;θ))(3.4)
3.2.2 构建并求解下界函数
3.2.2.1 E-step
在2.1.1节中提到,当下界函数的极大值与
l
(
θ
)
l(\theta)
l(θ)在该点的取值相等时,则说明该点为
l
(
θ
)
l(\theta)
l(θ)的极大值。那么,什么时候会出现这种情况呢?
如果公式(1.5)中的变量
x
x
x是常数呢,那么,此时等号也成立。此时有
(3.5)
p
(
x
i
,
z
i
;
θ
)
Q
i
(
z
i
)
=
C
,
C
是
一
个
常
数
。
\frac{p(\boldsymbol{x_i},z_i;\theta)}{Q_i(z_i)}=C,\ C是一个常数。\tag{3.5}
Qi(zi)p(xi,zi;θ)=C, C是一个常数。(3.5)
则公式(3.5)可以改写成
(3.6)
p
(
x
i
,
z
i
;
θ
)
=
Q
i
(
z
i
)
∗
C
p(\boldsymbol{x_i},z_i;\theta)=Q_i(z_i)*C\tag{3.6}
p(xi,zi;θ)=Qi(zi)∗C(3.6)
两边同时累加可得
(3.7)
∑
z
i
Q
i
(
Z
)
p
(
x
i
,
z
i
;
θ
)
=
∑
z
i
Q
i
(
Z
)
Q
i
(
z
i
)
∗
C
∑
z
i
Q
i
(
Z
)
p
(
x
i
,
z
i
;
θ
)
=
C
\begin{aligned} \sum_{z_i}^{\boldsymbol{Q_i(Z)}}p(\boldsymbol{x_i},z_i;\theta) =& \sum_{z_i}^{\boldsymbol{Q_i(Z)}}Q_i(z_i)*C\\ \sum_{z_i}^{\boldsymbol{Q_i(Z)}}p(\boldsymbol{x_i},z_i;\theta) =& C \tag{3.7} \end{aligned}
zi∑Qi(Z)p(xi,zi;θ)=zi∑Qi(Z)p(xi,zi;θ)=zi∑Qi(Z)Qi(zi)∗CC(3.7)
结合公式
(
3.7
)
(3.7)
(3.7)与公式
(
3.6
)
(3.6)
(3.6)可知:
(3.8)
Q
i
(
z
i
)
=
p
(
x
i
,
z
i
;
θ
)
∑
z
i
Q
i
(
Z
)
p
(
x
i
,
z
i
;
θ
)
=
p
(
x
i
,
z
i
;
θ
)
p
(
x
i
;
θ
)
=
p
(
z
i
∣
x
i
;
θ
)
\begin{aligned} Q_i(z_i)=&\frac{p(\boldsymbol{x_i},z_i;\theta)}{ \sum_{z_i}^{\boldsymbol{Q_i(Z)}}p(\boldsymbol{x_i},z_i;\theta)} \\ =&\frac{p(\boldsymbol{x_i},z_i;\theta)}{p(\boldsymbol{x_i};\theta)}\\ =&p(z_i|\boldsymbol{x_i};\theta) \tag{3.8} \end{aligned}
Qi(zi)===∑ziQi(Z)p(xi,zi;θ)p(xi,zi;θ)p(xi;θ)p(xi,zi;θ)p(zi∣xi;θ)(3.8)
所以,若
Q
i
(
z
i
)
Q_i(z_i)
Qi(zi)为给定第
i
i
i个样本
x
i
\boldsymbol{x_i}
xi的条件下,随机变量
Z
=
z
i
\boldsymbol{Z}=z_i
Z=zi的条件概率时,等号成立。(对于身高198的人来说,若求的是男生的参数估计时,需要计算在身高198的条件下,性别是男的概率。
3.2.2.2 M-step
(3.9)
l
o
g
(
L
θ
)
=
∑
i
=
1
N
∑
z
i
Q
i
(
Z
)
Q
i
(
z
i
)
l
o
g
(
p
(
x
i
,
z
i
;
θ
)
Q
i
(
z
i
)
)
=
∑
i
=
1
N
∑
z
i
Q
i
(
Z
)
Q
i
(
z
i
)
l
o
g
(
p
(
x
i
∣
z
i
;
θ
)
p
(
z
i
;
θ
)
Q
i
(
z
i
)
)
\begin{aligned} log(L_{\theta})=& \sum_{i=1}^{N} \sum_{z_i}^{\boldsymbol{Q_i(Z)}}Q_i(z_i)log(\frac{p(\boldsymbol{x_i},z_i;\theta)}{Q_i(z_i)}) \\ =& \sum_{i=1}^{N} \sum_{z_i}^{\boldsymbol{Q_i(Z)}}Q_i(z_i) log(\frac{p(\boldsymbol{x_i}|z_i;\theta)p(z_i;\theta)}{Q_i(z_i)}) \tag{3.9} \end{aligned}
log(Lθ)==i=1∑Nzi∑Qi(Z)Qi(zi)log(Qi(zi)p(xi,zi;θ))i=1∑Nzi∑Qi(Z)Qi(zi)log(Qi(zi)p(xi∣zi;θ)p(zi;θ))(3.9)
所以,第
k
k
k个分布的参数估计值为:
(3.10)
l
o
g
(
L
θ
k
)
=
∑
i
=
1
N
p
(
z
i
=
k
∣
x
i
;
θ
)
l
o
g
(
p
(
x
i
∣
z
i
=
k
;
θ
)
p
(
z
i
=
k
;
θ
)
p
(
z
i
=
k
∣
x
i
;
θ
)
)
\begin{aligned} log(L_{\theta_k})=&\sum_{i=1}^{N}p(z_i=k|\boldsymbol{x_i};\theta) log(\frac{p(\boldsymbol{x_i}|z_i=k;\theta)p(z_i=k;\theta)}{p(z_i=k|\boldsymbol{x_i};\theta)}) \tag{3.10} \end{aligned}
log(Lθk)=i=1∑Np(zi=k∣xi;θ)log(p(zi=k∣xi;θ)p(xi∣zi=k;θ)p(zi=k;θ))(3.10)
4. EM算法在高斯混合分布中的应用
在进行下一步之前,需要明确的问题:
1. 高斯混合分布中各个概率的意义?
高斯混合分布的表达式: P ( X ∣ θ ) = ∑ k = 1 K π k ϕ ( X ; θ k ) P(\boldsymbol{X}|\theta)= \sum_{k=1}^{K} \pi_{k} \phi(\boldsymbol{X};\theta_k) P(X∣θ)=∑k=1Kπkϕ(X;θk),在公式中
π k \pi_{k} πk代表:隐变量的先验概率
ϕ ( X ; θ k ) \phi(\boldsymbol{X};\theta_k) ϕ(X;θk)代表:给定隐变量后生成观测变量的条件概率
P ( X ∣ θ ) P(\boldsymbol{X}|\theta) P(X∣θ)代表:隐变量与观测变量的联合概率
4.1 代入参数
那么在高斯混合分布中则有:
(4.1)
l
o
g
(
L
θ
k
)
=
∑
i
=
1
N
p
(
z
i
=
k
∣
x
i
;
θ
)
l
o
g
(
1
(
2
π
)
n
/
2
∣
Σ
k
∣
1
/
2
e
x
p
(
−
1
2
(
X
i
−
μ
k
)
T
Σ
k
−
1
(
X
i
−
μ
k
)
π
k
p
(
z
i
=
k
∣
x
i
;
θ
)
)
\begin{aligned} log(L_{\theta_k})=&\sum_{i=1}^{N}{p(z_i=k|\boldsymbol{x_i};\theta)} log(\frac{\frac{1}{{(2\pi)^{n/2}\boldsymbol{|\Sigma_k|^{1/2}}}}exp(-\frac{1}{2}(\boldsymbol{X_i}-\boldsymbol{\mu_k})^T\boldsymbol{\Sigma_k}^{-1}(\boldsymbol{X_i}-\boldsymbol{\mu_k})\pi_k}{{p(z_i=k|\boldsymbol{x_i};\theta)}})\tag{4.1} \end{aligned}
log(Lθk)=i=1∑Np(zi=k∣xi;θ)log(p(zi=k∣xi;θ)(2π)n/2∣Σk∣1/21exp(−21(Xi−μk)TΣk−1(Xi−μk)πk)(4.1)
公式(4.1)中:
- 向量 X i \boldsymbol{X_i} Xi代表第 i i i个样本的特征数据;
- 向量 μ k \boldsymbol{\mu_k} μk代表第 k k k个分布的均值;
- 矩阵 Σ k \boldsymbol{\Sigma_k} Σk代表第 k k k个分布的协方差矩阵;
- 标量 z i = k z_i=k zi=k代表第 i i i个样本中隐随机变量所属的分布;
- 标量 π k \pi_k πk代表第 k k k个分布所对应的先验概率。
4.2 计算参数 μ k \mu_k μk、 Σ k \Sigma_k Σk、 π k \pi_k πk
对参数 μ k \mu_k μk、 Σ k \Sigma_k Σk分别求导,矩阵求导参考。
-
计算参数 μ k \mu_k μk。( ∂ X T A X ∂ X = 2 A X \frac{\partial{\boldsymbol{X^TAX}}}{\partial{\boldsymbol{X}}}=2\boldsymbol{AX} ∂X∂XTAX=2AX, A \boldsymbol{A} A为对称矩阵。)
(4.2-1) ▽ μ k l o g ( L θ k ) = ▽ μ k ∑ i = 1 N Q i ( z i = k ) l o g ( 1 ( 2 π ) n / 2 ∣ Σ k ∣ 1 / 2 e x p ( − 1 2 ( x i − μ k ) T Σ k − 1 ( x i − μ k ) π k Q i ( z i = k ) ) = ▽ μ k ∑ k = 1 K − 1 2 Q i ( z i = k ) ( x i − μ k ) T Σ k − 1 ( x i − μ k ) = ∑ i = 1 N Q i ( z i = k ) Σ k − 1 ( μ k − x i ) \begin{aligned} \bigtriangledown_{\mu_k} log(L_{\theta_k})&=\bigtriangledown_{\mu_k} \sum_{i=1}^{N} Q_i(z_i=k) log(\frac{\frac{1}{{(2\pi)^{n/2}\boldsymbol{|\Sigma_k|^{1/2}}}}exp(-\frac{1}{2}(\boldsymbol{x_i}-\boldsymbol{\mu_k})^T\boldsymbol{\Sigma_k}^{-1}(\boldsymbol{x_i}-\boldsymbol{\mu_k})\pi_k}{Q_i(z_i=k)})\\ &= \bigtriangledown_{\mu_k} \sum_{k=1}^{K}-\frac{1}{2}Q_i(z_i=k)(\boldsymbol{x_i}-\boldsymbol{\mu_k})^T\boldsymbol{\Sigma_k}^{-1}(\boldsymbol{x_i}-\boldsymbol{\mu_k})\\ &= \sum_{i=1}^{N}Q_i(z_i=k)\boldsymbol{\Sigma_k}^{-1}(\boldsymbol{\mu_k}-\boldsymbol{x_i}) \tag{4.2-1} \end{aligned} ▽μklog(Lθk)=▽μki=1∑NQi(zi=k)log(Qi(zi=k)(2π)n/2∣Σk∣1/21exp(−21(xi−μk)TΣk−1(xi−μk)πk)=▽μkk=1∑K−21Qi(zi=k)(xi−μk)TΣk−1(xi−μk)=i=1∑NQi(zi=k)Σk−1(μk−xi)(4.2-1)
令公式(4.2-1)结果为 0 0 0,则有
(4.2-2) μ j = ∑ i = 1 N Q i ( z i = k ) ( x i ) ∑ i = 1 N Q i ( z i = k ) 其 中 , Q i ( z i = k ) = p ( z i = k ∣ x i ; θ ) \boldsymbol{\mu_j}=\frac{\sum_{i=1}^{N}Q_i(z_i=k)(\boldsymbol{x_i})}{ \sum_{i=1}^{N}Q_i(z_i=k)}\\\\ 其中,Q_i(z_i=k) = p(z_i=k|\boldsymbol{x_i};\theta) \tag{4.2-2} μj=∑i=1NQi(zi=k)∑i=1NQi(zi=k)(xi)其中,Qi(zi=k)=p(zi=k∣xi;θ)(4.2-2) -
计算参数 Σ k \Sigma_k Σk。
(4.3-1) ▽ μ k l o g ( L Σ k ) = ▽ Σ k ∑ i = 1 N Q i ( z i = k ) l o g ( 1 ( 2 π ) n / 2 ∣ Σ k ∣ 1 / 2 e x p ( − 1 2 ( X i − μ k ) T Σ k − 1 ( x i − μ k ) π k Q i ( z i = k ) ) = ▽ Σ k ∑ i = 1 N − 1 2 Q i ( z i = k ) ( x i − μ k ) T Σ k − 1 ( x i − μ k ) \begin{aligned} \bigtriangledown_{\mu_k} log(L_{\Sigma_k})&=\bigtriangledown_{\Sigma_k}\sum_{i=1}^{N} Q_i(z_i=k) log(\frac{\frac{1}{{(2\pi)^{n/2}\boldsymbol{|\Sigma_k|^{1/2}}}}exp(-\frac{1}{2}(\boldsymbol{X_i}-\boldsymbol{\mu_k})^T\boldsymbol{\Sigma_k}^{-1}(\boldsymbol{x_i}-\boldsymbol{\mu_k})\pi_k}{Q_i(z_i=k)})\\ &= \bigtriangledown_{\Sigma_k} \sum_{i=1}^{N} -\frac{1}{2}Q_i(z_i=k)(\boldsymbol{x_i}-\boldsymbol{\mu_k})^T\boldsymbol{\Sigma_k}^{-1}(\boldsymbol{x_i}-\boldsymbol{\mu_k})\\ \tag{4.3-1} \end{aligned} ▽μklog(LΣk)=▽Σki=1∑NQi(zi=k)log(Qi(zi=k)(2π)n/2∣Σk∣1/21exp(−21(Xi−μk)TΣk−1(xi−μk)πk)=▽Σki=1∑N−21Qi(zi=k)(xi−μk)TΣk−1(xi−μk)(4.3-1)
令公式(4.3-1)结果为 0 0 0,则有
(4.3-2) Σ k = ∑ i = 1 N Q i ( z i = k ) ( x i − μ k ) ( x i − μ k ) T ∑ i = 1 N Q i ( z i = k ) 其 中 , Q i ( z i = k ) = p ( z i = k ∣ x i ; θ ) {\Sigma_k}= \frac{\sum_{i=1}^{N}Q_i(z_i=k)(\boldsymbol{x_i}-\boldsymbol{\mu_k})(\boldsymbol{x_i}-\boldsymbol{\mu_k})^T}{\sum_{i=1}^{N}Q_i(z_i=k)}\\ 其中,Q_i(z_i=k) = p(z_i=k|\boldsymbol{x_i};\theta) \tag{4.3-2} Σk=∑i=1NQi(zi=k)∑i=1NQi(zi=k)(xi−μk)(xi−μk)T其中,Qi(zi=k)=p(zi=k∣xi;θ)(4.3-2) -
计算参数 π k \pi_k πk。
在 μ k \mu_k μk和 Σ k \Sigma_k Σk已知的情况下,且 π k ≥ 0 \pi_k \geq 0 πk≥0,有 ∑ k ′ = 1 K π k ′ = 1 \sum _{k'=1}^{K}\pi_k'=1 ∑k′=1Kπk′=1。因此,去掉常数项后,目标函数(4.1)可化简为:
(4.4) ∑ i = 1 N Q i ( z i = k ) l o g ( π k ) \begin{aligned} \sum_{i=1}^{N} Q_i(z_i=k) log(\pi_k) \tag{4.4} \end{aligned} i=1∑NQi(zi=k)log(πk)(4.4)
引入拉格朗日算子:
(4.5) l ( π k ) = ∑ i = 1 N Q i ( z i = k ) l o g ( π k ) + λ ( ∑ k ′ = 1 K π k − 1 ) \begin{aligned} l(\pi_k)= \sum_{i=1}^{N} Q_i(z_i=k) log(\pi_k)+\lambda(\sum_{k'=1}^{K}\pi_k-1) \tag{4.5} \end{aligned} l(πk)=i=1∑NQi(zi=k)log(πk)+λ(k′=1∑Kπk−1)(4.5)
对 π k \pi_k πk求偏导,则有:
(4.6) ∂ l ( π k ) ∂ π k = ∑ i = 1 N Q i ( z i = k ) 1 π k + λ \begin{aligned} \frac{\partial{l(\pi_k)}}{\partial{\pi_k}}= \sum_{i=1}^{N}Q_i(z_i=k) \frac{1}{\pi_k}+\lambda \tag{4.6} \end{aligned} ∂πk∂l(πk)=i=1∑NQi(zi=k)πk1+λ(4.6)
令公式(4.6)为0,则有:
(4.7-1) 0 = ∑ i = 1 N Q i ( z i = k ) 1 π k + λ 0 = ∑ i = 1 N Q i ( z i = k ) + λ π k π k = − 1 λ ∑ i = 1 N Q i ( z i = k ) \begin{aligned} 0&= \sum_{i=1}^{N}Q_i(z_i=k) \frac{1}{\pi_k}+\lambda\\ 0&= \sum_{i=1}^{N}Q_i(z_i=k) +\lambda\pi_k\\ \pi_k&=-\frac{1}{\lambda}\sum_{i=1}^{N}Q_i(z_i=k)\tag{4.7-1}\\ \end{aligned} 00πk=i=1∑NQi(zi=k)πk1+λ=i=1∑NQi(zi=k)+λπk=−λ1i=1∑NQi(zi=k)(4.7-1)
(4.7-2) 0 = ∑ j = 1 K ∑ i = 1 N Q i ( z i = k ) + λ ∑ k = 1 K π k 0 = ∑ i = 1 N 1 + λ λ = − N \begin{aligned} 0&=\sum_{j=1}^{K}\sum_{i=1}^{N}Q_i(z_i=k)+\lambda\sum_{k=1}^{K}\pi_k\\ 0&=\sum_{i=1}^{N}1+\lambda\\ \lambda &= -N \tag{4.7-2} \end{aligned} 00λ=j=1∑Ki=1∑NQi(zi=k)+λk=1∑Kπk=i=1∑N1+λ=−N(4.7-2)
所以
(4.8) π k = 1 M ∑ i = 1 N Q i ( z i = k ) \begin{aligned} \pi_k=\frac{1}{M} \sum_{i=1}^{N}Q_i(z_i=k)\\ \tag{4.8} \end{aligned} πk=M1i=1∑NQi(zi=k)(4.8)
综上所述:
μ k = ∑ i = 1 N Q i ( z i = k ) ( X i ) ∑ i = 1 N Q i ( z i = k ) Σ k = ∑ i = 1 N Q i ( z i = k ) ( X i − μ k ) ( X i − μ k ) T ∑ i = 1 N Q i ( z i = k ) π k = 1 M ∑ i = 1 N Q i ( z i = k ) \begin{aligned} \boldsymbol{\mu_k}&=\frac{ \sum_{i=1}^{N}Q_i(z_i=k)(\boldsymbol{X_i})}{\sum_{i=1}^{N}Q_i(z_i=k)}\\ {\Sigma_k} &= \frac{\sum_{i=1}^{N}Q_i(z_i=k)(\boldsymbol{X_i}-\boldsymbol{\mu_k})(\boldsymbol{X_i}-\boldsymbol{\mu_k})^T}{\sum_{i=1}^{N}Q_i(z_i=k)}\\ \pi_k&=\frac{1}{M}\sum_{i=1}^{N}Q_i(z_i=k)\\ \end{aligned} μkΣkπk=∑i=1NQi(zi=k)∑i=1NQi(zi=k)(Xi)=∑i=1NQi(zi=k)∑i=1NQi(zi=k)(Xi−μk)(Xi−μk)T=M1i=1∑NQi(zi=k)
其中, Q i ( z i = k ) = p ( z i = k ∣ x i ; θ ) Q_i(z_i=k) = p(z_i=k|\boldsymbol{x_i};\theta) Qi(zi=k)=p(zi=k∣xi;θ)。
4.2 EM算法的缺点
- 对先验的依赖性比较强
- 没有办法收敛到全局最值,仅能收敛到极值。
5. 流程图
后记
其实到这里EM算法基础部分就介绍完了,但是对与强迫症患者来说, Q i ( z i = j ) Q_i(z_i=j) Qi(zi=j)这种关键因子,居然是"凑"出来的,心里难免觉得有些别扭,下面一篇文章(Expectation-Maximum-Algorithm(EM算法之二))给出了另一种思考方法以及EM算法的收敛性证明.