赞
踩
上篇博我们给出了高斯混合模型EM算法,这里我们对它的公式进行详细推导.
在7.10 EM算法的使用场景及步骤中,我们给出了一般的EM算法步聚,在具体应用时,关键是要构造出该方法所需的要素,然后直接套用它即可。 这里符合指出的没有缺失属性(隐变量)的情况,有有(I)和(II)两种办法处理。
【西瓜书】就是按(I)处理:即在极大(对数)似然过程中“凑出”递推式,转化为EM算法。
(1)参数 μ \boldsymbol{\mu } μ
由【西瓜书式(9.28)】有
∂
p
(
x
)
∂
μ
=
p
(
x
)
−
1
2
∂
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
∂
μ
=
−
p
(
x
)
Σ
−
1
(
x
−
μ
)
(由【西瓜书式(A.32】))
将式(9.3)用于 p ( x j ∣ μ i , Σ i ) p(\boldsymbol{x }_j\,|\,\boldsymbol{\mu }_i,{\boldsymbol{\Sigma } }_i) p(xj∣μi,Σi)
,即
∂
p
(
x
j
∣
μ
i
,
Σ
i
)
∂
μ
i
=
−
p
(
x
j
∣
μ
i
,
Σ
i
)
Σ
i
−
1
(
x
j
−
μ
i
)
由【西瓜书式(9.32)】有
∂
L
L
(
D
)
∂
μ
i
=
∑
j
=
1
m
∂
ln
(
∑
i
=
1
k
α
i
p
(
x
j
∣
μ
i
,
Σ
i
)
)
∂
μ
i
=
∑
j
=
1
m
α
i
∑
i
=
1
k
α
i
p
(
x
j
∣
μ
i
,
Σ
i
)
∂
p
(
x
j
∣
μ
i
,
Σ
i
)
∂
μ
i
=
−
∑
j
=
1
m
α
i
p
(
x
j
∣
μ
i
,
Σ
i
)
∑
i
=
1
k
α
i
p
(
x
j
∣
μ
i
,
Σ
i
)
Σ
i
−
1
(
x
j
−
μ
i
)
(由式(9.4))
=
−
Σ
i
−
1
∑
j
=
1
m
γ
j
i
(
x
j
−
μ
i
)
其中
γ
j
i
=
α
i
p
(
x
j
∣
μ
i
,
Σ
i
)
∑
i
=
1
k
α
i
p
(
x
j
∣
μ
i
,
Σ
i
)
式中
Σ
i
{\boldsymbol{\Sigma } }_i
Σi不是求和符号,而是协方差(矩阵)。
注:这里既有 Σ {\boldsymbol{\Sigma } } Σ又有 ∑ {\sum } ∑,请注意区别: Σ {\boldsymbol{\Sigma } } Σ不是求和符号,而是协方差矩阵。
令
∂
L
L
(
D
)
∂
μ
i
=
0
\frac{\partial \mathrm{LL}(D)}{\partial \boldsymbol{\mu }_i}=\boldsymbol{0}
∂μi∂LL(D)=0,两边乘以
Σ
{\boldsymbol{\Sigma } }
Σ,则由式(9.5)得
∑
j
=
1
m
γ
j
i
(
x
j
−
μ
i
)
=
0
∑
j
=
1
m
γ
j
i
x
j
=
μ
i
∑
j
=
1
m
γ
j
i
以当前(
t
t
t时)的参数值
(
α
i
t
,
μ
i
t
,
Σ
i
t
)
({\alpha}_i^{\,t},\boldsymbol{\mu }_i^{\,t},{\boldsymbol{\Sigma } }_i^{\,t})
(αit,μit,Σit),根据【西瓜书式(9.28)】即可计算出此时的式(9.6)的值
γ
j
i
t
=
α
i
t
p
(
x
j
∣
μ
i
t
,
Σ
i
t
)
∑
i
=
1
k
α
i
t
p
(
x
j
∣
μ
i
t
,
Σ
i
t
)
由式(9.8)的已知,代入等式(9.7),得下一时刻需求解的
μ
\boldsymbol{\mu }
μ,这样就“凑”成了递推式(将等式变为递推式)
∑
j
=
1
m
γ
j
i
t
x
j
=
μ
i
t
+
1
∑
j
=
1
m
γ
j
i
t
即
μ
i
t
+
1
=
∑
j
=
1
m
γ
j
i
t
x
j
∑
j
=
1
m
γ
j
i
t
即【西瓜书式(9.34)】。
(2)参数
Σ
{\boldsymbol{\Sigma } }
Σ
∂
∣
Σ
∣
−
1
2
∂
Σ
=
−
1
2
∣
Σ
∣
−
1
2
Σ
−
T
(由式(A86))
=
−
1
2
∣
Σ
∣
−
1
2
Σ
−
1
(由
Σ
的对称性)
其中用到公式(参见5、含矩阵的偏导数):
∂
∣
A
∣
−
1
2
∂
A
=
−
1
2
∣
A
∣
−
1
2
A
−
T
∂
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
∂
Σ
=
∂
t
r
(
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
)
∂
Σ
=
∂
t
r
(
(
x
−
μ
)
(
x
−
μ
)
T
Σ
−
1
)
∂
Σ
=
−
Σ
−
T
(
(
x
−
μ
)
(
x
−
μ
)
T
)
T
Σ
−
T
(由式(A80))
=
−
Σ
−
1
(
x
−
μ
)
(
x
−
μ
)
T
Σ
−
1
(由
Σ
的对称性)
其中用到公式(参见5、含矩阵的偏导数):
∂
t
r
(
B
A
−
1
)
∂
A
=
−
(
A
−
1
B
A
−
1
)
T
利用式(9.11)、式(9.12),求【西瓜书式(9.28)】关于矩阵
Σ
{\boldsymbol{\Sigma } }
Σ的偏导数,有
∂
P
(
x
)
∂
Σ
=
∂
(
2
π
)
−
n
2
∣
Σ
∣
−
1
2
exp
(
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
)
∂
Σ
=
∂
(
2
π
)
−
n
2
∣
Σ
∣
−
1
2
∂
Σ
exp
(
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
)
+
(
2
π
)
−
n
2
∣
Σ
∣
−
1
2
∂
exp
(
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
)
∂
Σ
=
(
2
π
)
−
n
2
(
−
1
2
∣
Σ
∣
−
1
2
Σ
−
1
)
exp
(
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
)
+
(
2
π
)
−
n
2
∣
Σ
∣
−
1
2
exp
(
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
)
∂
(
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
)
∂
Σ
=
−
1
2
P
(
x
)
(
Σ
−
1
)
+
P
(
x
)
(
−
1
2
(
−
Σ
−
1
(
x
−
μ
)
(
x
−
μ
)
T
Σ
−
1
)
)
=
1
2
P
(
x
)
Σ
−
1
(
−
Σ
+
(
x
−
μ
)
(
x
−
μ
)
T
)
Σ
−
1
将式(9.13)应用于
P
(
x
j
∣
μ
i
,
Σ
i
)
P(\boldsymbol{x }_j\,|\,\boldsymbol{\mu}_i,{\boldsymbol{\Sigma } }_i)
P(xj∣μi,Σi),有
∂
P
(
x
j
∣
μ
i
,
Σ
i
)
∂
Σ
i
=
1
2
P
(
x
j
∣
μ
i
,
Σ
i
)
Σ
i
−
1
[
(
x
j
−
μ
i
)
(
x
j
−
μ
i
)
T
−
Σ
i
]
Σ
i
−
1
利用式(9.14),再求【西瓜书式(9.32)】关于矩阵
Σ
i
{\boldsymbol{\Sigma } }_i
Σi的偏导数,有
∂
L
L
(
D
)
∂
Σ
i
=
∑
j
=
1
m
∂
ln
(
∑
i
=
1
k
α
i
p
(
x
j
∣
μ
i
,
Σ
i
)
)
∂
Σ
i
=
∑
j
=
1
m
α
i
(
∑
i
=
1
k
α
i
p
(
x
j
∣
μ
i
,
Σ
i
)
)
∂
P
(
x
j
∣
μ
i
,
Σ
i
)
∂
Σ
i
(下式由式(9.14))
=
1
2
∑
j
=
1
m
α
i
P
(
x
j
∣
μ
i
,
Σ
i
)
(
∑
i
=
1
k
α
i
p
(
x
j
∣
μ
i
,
Σ
i
)
)
Σ
i
−
1
[
(
x
j
−
μ
i
)
(
x
j
−
μ
i
)
T
−
Σ
i
]
Σ
i
−
1
=
1
2
∑
j
=
1
m
γ
j
i
[
Σ
i
−
1
(
x
j
−
μ
i
)
(
x
j
−
μ
i
)
T
Σ
i
−
1
−
Σ
i
−
1
]
(由式(9.6))
=
1
2
Σ
i
−
1
(
∑
j
=
1
m
γ
j
i
[
(
x
j
−
μ
i
)
(
x
j
−
μ
i
)
T
−
Σ
i
]
)
Σ
i
−
1
令
∂
L
L
(
D
)
∂
Σ
i
=
0
\frac{\partial \mathrm{LL}(D)}{\partial {\boldsymbol{\Sigma } }_i}=\mathbf{0}
∂Σi∂LL(D)=0,得
∑
j
=
1
m
γ
j
i
(
x
j
−
μ
i
)
(
x
j
−
μ
i
)
T
=
Σ
i
∑
j
=
1
m
γ
j
i
同式(9.9)的方法,由等式“凑”出递推式
Σ
i
t
+
1
=
∑
j
=
1
m
γ
j
i
t
(
x
j
−
μ
i
t
)
(
x
j
−
μ
i
t
)
T
∑
j
=
1
m
γ
j
i
t
即【西瓜书式(9.35)】,该式为矩阵。
(3)参数 α {\alpha} α
在 L L ( D ) \mathrm{LL}(D) LL(D)中若将混合系数 α i {\alpha}_i αi视为变量,则它有约束: α i > 0 , ∑ i = 1 k α i = 1 {\alpha}_i> 0,\, \sum_{i=1}^k{\alpha}_i=1 αi>0,∑i=1kαi=1,故需要拉格朗日乘数法,由此得到拉格朗日函数【西瓜书式(9.36)】,令其对 α {\alpha} α的导数为0,则得到【西瓜书式(9.37)】。
观察【西瓜书式(9.37)】发现:与式(9.6)比较,它的分数项分子缺
α
i
{\alpha}_i
αi,两边乘以
α
i
{\alpha}_i
αi即可配成式(9.6),则有
∑
j
=
1
m
γ
j
i
+
λ
α
i
=
0
对
i
i
i求和,有
0
=
∑
i
=
1
k
(
∑
j
=
1
m
γ
j
i
+
λ
α
i
)
=
∑
i
=
1
k
∑
j
=
1
m
γ
j
i
+
λ
∑
i
=
1
k
α
i
=
∑
j
=
1
m
∑
i
=
1
k
γ
j
i
+
λ
(由于
∑
i
=
1
k
α
i
=
1
)
=
∑
j
=
1
m
1
+
λ
(由于
∑
i
=
1
k
γ
j
i
=
1
)
=
m
+
λ
∴
λ
=
−
m
由式(9.18)、式(9.19)“凑”出递推式
α
i
t
+
1
=
1
m
∑
j
=
1
m
γ
j
i
t
即【西瓜书式(9.38)】。
有了上述递推式,则可套用EM算法:
整理成伪代码即为【西瓜书图9.6】所示的高斯混合聚类算法。
注:代码中并没有体现出关于时刻的符号 t t t,这是由于程序运行的过程隐含地体现了时刻,若显示地体现,则会引入较多的变量,占用较多的存储空间,需要寻址、赋值等,反而不方便。
至此,我们完成了高斯混合聚类算法的推导,看官如果还不过瘾的话,我们再来推导一次——按EM的(II)的方法:将样本的成分标识视为隐变量,使用EM算法。
首先,我们设定要素及准备有关公式。
(1)参数:
k
k
k个成分的高斯混合分布的参数为
Θ
=
(
{
μ
i
,
Σ
i
,
α
i
}
i
=
1
k
)
{\Theta}=(\{{\mu }_i,{\boldsymbol{\Sigma } }_i,{\alpha }_i\}_{i=1}^k)
Θ=({μi,Σi,αi}i=1k),在序列(7.33)中(7.10 EM算法的使用场景及步骤),
Θ
0
,
Θ
1
,
Θ
2
,
⋯
,
Θ
t
,
Θ
t
+
1
,
⋯
Θ
t
=
(
{
μ
i
t
,
Σ
i
t
,
α
i
t
}
i
=
1
k
)
{\Theta}^{\,t}=(\{{\mu }_i^t,{\boldsymbol{\Sigma } }_i^t,{\alpha }_i^t\}_{i=1}^k)
Θt=({μit,Σit,αit}i=1k)。
(2)隐变量:将样本 x \boldsymbol{x } x所属的成分(簇)作为其隐变量 z z z,根据混合成分分布的定义我们给出关联的“事件”概率。
{混合成分中产生的样本
x
\boldsymbol{x}
x属于第
i
i
i个成分}={选取第
i
i
i个成分}
⋂
\bigcap
⋂{在该成分中产生样本
x
\boldsymbol{x}
x}
,则该事件发生的概率表达式有
P
(
x
,
z
=
i
∣
Θ
)
=
α
i
P
(
x
∣
Θ
i
)
注:这时,
x
\boldsymbol{x }
x只与
Θ
\Theta
Θ中的成分
i
i
i的参数
Θ
i
{\Theta}_i
Θi有关。
{混合成分中产生样本
x
\boldsymbol{x}
x}=
⋃
i
=
1
k
{\bigcup}_{i=1}^k
⋃i=1k{在第
i
i
i个成分中产生样本
x
\boldsymbol{x}
x},则该事件发生的概率表达式有
P
(
x
∣
Θ
)
=
∑
i
=
1
k
α
i
P
(
x
∣
Θ
i
)
式(9.21)、式(9.22)对于混合成分分布都成立,而对于高斯混合,式中的 P ( x ∣ Θ i ) P(\boldsymbol{x }\,|\,{\Theta}_i) P(x∣Θi)由【西瓜书式(9.28)】所定义。这时, P P P实际上是 p p p(概率分布密度),由于本书主要讨论离散型随机变量,常用大写的 P P P(即并不去严格区分它的大小写),根据上下文理解:针对离散型则为概率,针对连续型则为概率分布密度。
由式(9.21)得到关于
z
z
z的分段函数
P
(
x
,
z
∣
Θ
)
=
α
i
P
(
x
∣
Θ
i
)
,
(
若
z
=
i
)
,
i
=
1
,
2
,
⋯
,
k
将指示函数应用于该分段函数,有
P
(
x
,
z
∣
Θ
)
=
∏
i
=
1
k
[
α
i
P
(
x
∣
Θ
i
)
]
I
(
z
=
i
)
(由式(B8))
其中用到公式(参见6、指示函数及应用(将分段函数表达成一个式子的技术)):
f
(
x
)
=
∏
i
=
1
n
a
i
(
x
)
I
[
A
i
(
x
)
]
(3)隐变量
z
z
z的分布:由式(9.21)、式(9.22)及贝叶斯公式,有
P
(
z
=
i
∣
x
,
Θ
)
=
P
(
x
,
z
=
i
∣
Θ
)
P
(
x
∣
Θ
)
=
α
i
P
(
x
∣
Θ
i
)
∑
i
=
1
k
α
i
P
(
x
∣
Θ
i
)
当已知
x
j
\boldsymbol{x }_j
xj时,对应的隐变量
z
z
z在时刻
t
t
t的后验分布为
P
(
z
j
=
i
∣
x
j
,
Θ
t
)
=
α
i
t
P
(
x
j
∣
Θ
i
t
)
∑
i
=
1
k
α
i
t
P
(
x
j
∣
Θ
i
t
)
=
γ
j
i
t
其中,
γ
j
i
t
{\gamma}_{ji}^{\,t}
γjit即为式(9.8),这即为【西瓜书式(9.30)】。
(4)设样本集为:
D
′
=
{
x
j
,
z
j
}
j
=
1
m
D'=\{\boldsymbol{x }_j,z_j\}_{j=1}^m
D′={xj,zj}j=1m,其中,
z
j
z_j
zj为样本所属的成分变量(隐变量),记
X
=
{
x
j
}
j
=
1
m
,
Z
=
{
z
j
}
j
=
1
m
\mathbf{X}=\{\boldsymbol{x }_j\}_{j=1}^m,\ \mathbf{Z}=\{z_j\}_{j=1}^m
X={xj}j=1m, Z={zj}j=1m。
具体化
Q
(
Θ
∣
Θ
t
)
Q(\Theta\,|\,{\Theta}^{\,t})
Q(Θ∣Θt):
Q
(
Θ
∣
Θ
t
)
=
E
Z
∣
X
,
Θ
t
L
L
(
Θ
∣
X
,
Z
)
(由【西瓜书式(7.36)】)
=
E
Z
∣
X
,
Θ
t
ln
P
(
X
,
Z
∣
Θ
)
=
E
Z
∣
X
,
Θ
t
ln
∏
j
=
1
m
P
(
x
j
,
z
j
∣
Θ
)
=
E
Z
∣
X
,
Θ
t
∑
j
=
1
m
ln
P
(
x
j
,
z
j
∣
Θ
)
=
E
Z
∣
X
,
Θ
t
∑
j
=
1
m
ln
∏
i
=
1
k
(
α
i
P
(
x
j
∣
Θ
i
)
)
I
(
z
j
=
i
)
(由式(9.24))
=
∑
j
=
1
m
E
Z
∣
X
,
Θ
t
(
∑
i
=
1
k
I
(
z
j
=
i
)
ln
(
α
i
P
(
x
j
∣
Θ
i
)
)
)
=
∑
j
=
1
m
∑
i
=
1
k
(
E
Z
∣
X
,
Θ
t
I
(
z
j
=
i
)
)
ln
(
α
i
P
(
x
j
∣
Θ
i
)
)
=
∑
j
=
1
m
∑
i
=
1
k
(
E
z
j
∣
x
j
,
Θ
t
I
(
z
j
=
i
)
)
ln
(
α
i
P
(
x
j
∣
Θ
i
)
)
(
E
作用域只含
z
j
)
=
∑
j
=
1
m
∑
i
=
1
k
P
(
z
j
=
i
∣
x
j
,
Θ
t
)
ln
(
α
i
P
(
x
j
∣
Θ
i
)
)
(由式(B11))
=
∑
j
=
1
m
∑
i
=
1
k
γ
j
i
t
ln
(
α
i
P
(
x
j
∣
Θ
i
)
)
(由式(9.26))
=
∑
j
=
1
m
∑
i
=
1
k
γ
j
i
t
ln
α
i
+
∑
j
=
1
m
∑
i
=
1
k
γ
j
i
t
ln
P
(
x
j
∣
Θ
i
)
其中用到公式(参见6、指示函数及应用(将分段函数表达成一个式子的技术)):
E
x
∈
D
I
A
(
x
)
=
P
(
x
∈
A
)
即有
Q
(
Θ
∣
Θ
t
)
=
∑
j
=
1
m
∑
i
=
1
k
γ
j
i
t
ln
α
i
+
∑
j
=
1
m
∑
i
=
1
k
γ
j
i
t
ln
P
(
x
j
∣
Θ
i
)
有了上述准备后,即可使用EM算法:
E步:
(1)推断隐变量分布: P ( Z ∣ X , Θ t ) P(\mathbf{Z}\,|\,\mathbf{X},{\Theta}^{\,t}) P(Z∣X,Θt),这时它等价为 P ( z j ∣ x j , Θ t ) , j = 1 , 2 , ⋯ , k P(z_j\,|\,\boldsymbol{x}_j,{\Theta}^{\,t}),\, j=1,2,\cdots,k P(zj∣xj,Θt),j=1,2,⋯,k,即式(9.26),其中参数即为当前参数,而 x j \boldsymbol{x}_j xj也已知,由【西瓜书式(9.28)】和式(9.26)即可计算 γ j i t {\gamma}_{ji}^{\,t} γjit。
(2)列出 Q Q Q的表达式:即式(9.27)。
M步:求 Q Q Q的最大值点:
由式(9.27)有
∂
Q
(
Θ
∣
Θ
t
)
∂
μ
i
=
0
+
∑
j
=
1
m
(
γ
j
i
t
∂
ln
P
(
x
j
∣
Θ
i
)
∂
μ
i
+
∑
l
≠
i
γ
j
l
t
∂
ln
P
(
x
j
∣
Θ
l
)
∂
μ
i
)
=
∑
j
=
1
m
(
γ
j
i
t
1
P
(
x
j
∣
Θ
i
)
∂
P
(
x
j
∣
Θ
i
)
∂
μ
i
+
0
)
=
−
∑
j
=
1
m
γ
j
i
t
1
P
(
x
j
∣
Θ
i
)
p
(
x
j
∣
μ
i
,
Σ
i
)
Σ
i
−
1
(
x
j
−
μ
i
)
(由式(9.4))
=
−
Σ
i
−
1
∑
j
=
1
m
γ
j
i
t
(
x
j
−
μ
i
)
令
∂
Q
(
Θ
∣
Θ
t
)
∂
μ
i
=
0
\frac{\partial Q(\Theta\,|\,{\Theta}^{\,t})}{\partial \boldsymbol{\mu }_i }=\boldsymbol{0}
∂μi∂Q(Θ∣Θt)=0,则得与式(9.10)一致的结果:
μ
i
t
+
1
=
∑
j
=
1
m
γ
j
i
t
x
j
∑
j
=
1
m
γ
j
i
t
即【西瓜书式(9.34)】。
类似地,从式(9.27)出发,可推导出其他递推式,留给大家练习。
本文为原创,您可以:
上一篇:9.3 高斯混合聚类算法(男生和女生依比例形成男女混合成绩模型)
下一篇:9.5 密度聚类与层次聚类(DBSCAN算法、AGNES算法)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。