PRML学习总结(9)——Mixture Models and EM
9.1 K-means Clustering
⾸先,我们考虑寻找多维空间中数据点的分组或聚类的问题。假设我们有⼀个数据集
{
x
1
,
…
,
x
N
}
\left\{\mathbf{x}_{1}, \ldots, \mathbf{x}_{N}\right\}
{x1,…,xN},它由
D
D
D维欧⼏⾥得空间中的随机变量
x
\mathbf x
x的
N
N
N次观测组成。我们的⽬标是将数据集划分为
K
K
K个类别。直观上讲,我们会认为由⼀组数据点构成的⼀个聚类中,聚类内部点之间的距离应该⼩于数据点与聚类外部的点之间的距离。引⼊⼀组
D
D
D维向量
μ
k
\boldsymbol{\mu}_{k}
μk,其中
k
=
1
,
.
.
.
,
K
k = 1,...,K
k=1,...,K,且
μ
k
\boldsymbol{\mu}_{k}
μk是与第
k
k
k个聚类关联的⼀个代表。正如我们将看到的那样,我们可以认为
μ
k
\boldsymbol{\mu}_{k}
μk表⽰了聚类的中⼼。我们的⽬标是找到数据点分别属于的聚类,以及⼀组向量
{
μ
k
}
\{\boldsymbol{\mu}_{k}\}
{μk},使得每个数据点和与它最近的向量k之间的距离的平⽅和最⼩。目标函数如下
J
=
∑
n
=
1
N
∑
k
=
1
K
r
n
k
∥
x
n
−
μ
k
∥
2
J=\sum_{n=1}^{N} \sum_{k=1}^{K} r_{n k}\left\|\mathbf{x}_{n}-\boldsymbol{\mu}_{k}\right\|^{2}
J=n=1∑Nk=1∑Krnk∥xn−μk∥2其中
r
n
k
r_{nk}
rnk代表第
n
n
n个数据是否属于第
k
k
k类,为one-hot向量。我们的目标就是求得
{
r
n
k
}
\{r_{nk}\}
{rnk}和
{
μ
k
}
\{\boldsymbol{\mu}_{k}\}
{μk},一般采用迭代的方式:(E-step)首先随机初始化
{
μ
k
}
\{\boldsymbol{\mu}_{k}\}
{μk},然后关于
{
r
n
k
}
\{r_{nk}\}
{rnk}优化
J
J
J;(M-step)之后固定
{
r
n
k
}
\{r_{nk}\}
{rnk},在关于
{
μ
k
}
\{\boldsymbol{\mu}_{k}\}
{μk}优化
J
J
J。如此迭代知道收敛为止。
在E-step时,
r
n
k
=
{
1
if
k
=
arg
min
j
∥
x
n
−
μ
j
∥
2
0
otherwise
r_{n k}=\left\{\begin{array}{ll}{1} & {\text { if } k=\arg \min _{j}\left\|\mathbf{x}_{n}-\boldsymbol{\mu}_{j}\right\|^{2}} \\ {0} & {\text { otherwise }}\end{array}\right.
rnk={10 if k=argminj∥∥xn−μj∥∥2 otherwise 在M-step时,可以利用求导
2
∑
n
=
1
N
r
n
k
(
x
n
−
μ
k
)
=
0
2 \sum_{n=1}^{N} r_{n k}\left(\mathbf{x}_{n}-\boldsymbol{\mu}_{k}\right)=0
2n=1∑Nrnk(xn−μk)=0
μ
k
=
∑
n
r
n
k
x
n
∑
n
r
n
k
\boldsymbol{\mu}_{k}=\frac{\sum_{n} r_{n k} \mathbf{x}_{n}}{\sum_{n} r_{n k}}
μk=∑nrnk∑nrnkxn需要说明的是K-means有可能会收敛到局部最优值。当初始化不恰当时,会导致较差的结果。
9.2 Mixtures of Gaussians
概率图模型如下
p
(
z
)
=
∏
k
=
1
K
π
k
z
k
p(\mathbf{z})=\prod_{k=1}^{K} \pi_{k}^{z_{k}}
p(z)=k=1∏Kπkzk
p
(
x
∣
z
)
=
∏
k
=
1
K
N
(
x
∣
μ
k
,
Σ
k
)
z
k
p(\mathbf{x} | \mathbf{z})=\prod_{k=1}^{K} \mathcal{N}\left(\mathbf{x} | \boldsymbol{\mu}_{k}, \boldsymbol{\Sigma}_{k}\right)^{z_{k}}
p(x∣z)=k=1∏KN(x∣μk,Σk)zk
p
(
x
)
=
∑
z
p
(
z
)
p
(
x
∣
z
)
=
∑
k
=
1
K
π
k
N
(
x
∣
μ
k
,
Σ
k
)
p(\mathbf{x})=\sum_{\mathbf{z}} p(\mathbf{z}) p(\mathbf{x} | \mathbf{z})=\sum_{k=1}^{K} \pi_{k} \mathcal{N}\left(\mathbf{x} | \boldsymbol{\mu}_{k}, \boldsymbol{\Sigma}_{k}\right)
p(x)=z∑p(z)p(x∣z)=k=1∑KπkN(x∣μk,Σk)在利用EM算法学习以上模型时,还有一个重要的
γ
(
z
k
)
≡
p
(
z
k
=
1
∣
x
)
=
p
(
z
k
=
1
)
p
(
x
∣
z
k
=
1
)
∑
j
=
1
K
p
(
z
j
=
1
)
p
(
x
∣
z
j
=
1
)
=
π
k
N
(
x
∣
μ
k
,
Σ
k
)
∑
j
=
1
K
π
j
N
(
x
∣
μ
j
,
Σ
j
)
\begin{aligned} \gamma\left(z_{k}\right) \equiv p\left(z_{k}=1 | \mathbf{x}\right) &=\frac{p\left(z_{k}=1\right) p\left(\mathbf{x} | z_{k}=1\right)}{\sum_{j=1}^{K} p\left(z_{j}=1\right) p\left(\mathbf{x} | z_{j}=1\right)} \\=& \frac{\pi_{k} \mathcal{N}\left(\mathbf{x} | \boldsymbol{\mu}_{k}, \boldsymbol{\Sigma}_{k}\right)}{\sum_{j=1}^{K} \pi_{j} \mathcal{N}\left(\mathbf{x} | \boldsymbol{\mu}_{j}, \boldsymbol{\Sigma}_{j}\right)} \end{aligned}
γ(zk)≡p(zk=1∣x)==∑j=1Kp(zj=1)p(x∣zj=1)p(zk=1)p(x∣zk=1)∑j=1KπjN(x∣μj,Σj)πkN(x∣μk,Σk)这个为一个后验分布。我们可以利用GMM生成数据
9.2.1 Maximum likelihood
现在我们的目标是给定观测数据
{
x
1
,
…
,
x
N
}
\left\{\mathbf{x}_{1}, \ldots, \mathbf{x}_{N}\right\}
{x1,…,xN},利用GMM对其进行建模。概率图模型如下
似然函数为
ln
p
(
X
∣
π
,
μ
,
Σ
)
=
∑
n
=
1
N
ln
{
∑
k
=
1
K
π
k
N
(
x
n
∣
μ
k
,
Σ
k
)
}
\ln p(\mathbf{X} | \boldsymbol{\pi}, \boldsymbol{\mu}, \mathbf{\Sigma})=\sum_{n=1}^{N} \ln \left\{\sum_{k=1}^{K} \pi_{k} \mathcal{N}\left(\mathbf{x}_{n} | \boldsymbol{\mu}_{k}, \boldsymbol{\Sigma}_{k}\right)\right\}
lnp(X∣π,μ,Σ)=n=1∑Nln{k=1∑KπkN(xn∣μk,Σk)}在我们讨论如何最⼤化这个函数之前,有必要强调⼀下由于奇异性的存在造成的应⽤于⾼斯混合模型的最⼤似然框架中的⼀个⼤问题。为了简化起见,我们考虑⼀个⾼斯混合模型,它的分量的协⽅差矩阵为
Σ
k
=
σ
k
2
I
\boldsymbol{\Sigma}_{k}=\sigma_{k}^{2} \mathbf{I}
Σk=σk2I,其中
I
\mathbf{I}
I是⼀个单位矩阵,虽然结论对于⼀般的协⽅差矩阵仍然成⽴。假设混合模型的第
j
j
j个分量的均值
μ
j
\boldsymbol{\mu}_{j}
μj与某个数据点完全相同,即对于某个
n
n
n值,
μ
j
=
x
n
\boldsymbol{\mu}_{j}=\mathbf{x}_{n}
μj=xn。这样,这个数据点会为似然函数贡献⼀项,形式为
N
(
x
n
∣
x
n
,
σ
j
2
I
)
=
1
(
2
π
)
1
/
2
1
σ
j
\mathcal{N}\left(\mathbf{x}_{n} | \mathbf{x}_{n}, \sigma_{j}^{2} \mathbf{I}\right)=\frac{1}{(2 \pi)^{1 / 2}} \frac{1}{\sigma_{j}}
N(xn∣xn,σj2I)=(2π)1/21σj1当
σ
j
→
0
\sigma_{j} \rightarrow 0
σj→0时,似然就会无穷大,而最大化似然时,这就是一个奇异的问题。在GMM中,最大似然时,会很容易造成这种过拟合问题。而对于单高斯模型,则不会,假如退化为一个点,那么对于其他点来说,其似然贡献为0,多个0相差必然导致退化的似然不足以保证为最大。我们后⾯会看到,如果我们使⽤贝叶斯⽅法,那么这种困难之处就不会出现。但是现阶段,我们只需注意,将最⼤似然⽅法应⽤到⾼斯混合模型中时必须避免这种病态解,并且寻找表现较好的似然函数的局部极⼤值。我们可以使⽤合适的启发式⽅法来避免这种奇异性,例如如果检测到⾼斯分量收缩到⼀个点,那么就将它的均值重新设定为⼀个随机选择的值,并且重新将它的⽅差设置为某个较⼤的值,然后继续最优化。
GMM可以直接采用梯度下降的方式进行求解,但下面介绍一种更加优雅的方法——EM算法。
9.2.2 EM for Gaussian mixtures
首先对均值
μ
k
\boldsymbol{\mu}_{k}
μk进行求导
0
=
−
∑
n
=
1
N
π
k
N
(
x
n
∣
μ
k
,
Σ
k
)
∑
j
π
j
N
(
x
n
∣
μ
j
,
Σ
j
)
Σ
k
(
x
n
−
μ
k
)
0=-\sum_{n=1}^{N} \frac{\pi_{k} \mathcal{N}\left(\mathbf{x}_{n} | \boldsymbol{\mu}_{k}, \boldsymbol{\Sigma}_{k}\right)}{\sum_{j} \pi_{j} \mathcal{N}\left(\mathbf{x}_{n} | \boldsymbol{\mu}_{j}, \boldsymbol{\Sigma}_{j}\right)} \boldsymbol{\Sigma}_{k}\left(\mathbf{x}_{n}-\boldsymbol{\mu}_{k}\right)
0=−n=1∑N∑jπjN(xn∣μj,Σj)πkN(xn∣μk,Σk)Σk(xn−μk)从而得到
μ
k
=
1
N
k
∑
n
=
1
N
γ
(
z
n
k
)
x
n
\boldsymbol{\mu}_{k}=\frac{1}{N_{k}} \sum_{n=1}^{N} \gamma\left(z_{n k}\right) \mathbf{x}_{n}
μk=Nk1n=1∑Nγ(znk)xn其中
N
k
=
∑
n
=
1
N
γ
(
z
n
k
)
N_{k}=\sum_{n=1}^{N} \gamma\left(z_{n k}\right)
Nk=∑n=1Nγ(znk)
同理对方差
Σ
k
\boldsymbol{\Sigma}_{k}
Σk进行求导
Σ
k
=
1
N
k
∑
n
=
1
N
γ
(
z
n
k
)
(
x
n
−
μ
k
)
(
x
n
−
μ
k
)
T
\boldsymbol{\Sigma}_{k}=\frac{1}{N_{k}} \sum_{n=1}^{N} \gamma\left(z_{n k}\right)\left(\mathbf{x}_{n}-\boldsymbol{\mu}_{k}\right)\left(\mathbf{x}_{n}-\boldsymbol{\mu}_{k}\right)^{\mathrm{T}}
Σk=Nk1n=1∑Nγ(znk)(xn−μk)(xn−μk)T同理对
π
\pi
π求导
π
k
=
N
k
N
\pi_{k}=\frac{N_{k}}{N}
πk=NNk这些结果确实给出了⼀个简单的迭代⽅法来寻找问题的最⼤似然解。正如我们将看到的那样,这个迭代过程是EM算法应⽤于⾼斯混合模型的⼀个实例。
9.3 An Alternative View of EM
本节中,我们介绍EM算法的另⼀种观点,其中潜在变量起着重要的作⽤。我们⾸先使⽤⼀种抽象的⽅式讨论这种⽅法,然后我们再次考虑⾼斯混合模型的例⼦,来具体说明这个模型。
EM算法的⽬标是找到具有潜在变量的模型的最⼤似然解。
ln
p
(
X
∣
θ
)
=
ln
{
∑
Z
p
(
X
,
Z
∣
θ
)
}
\ln p(\mathbf{X} | \boldsymbol{\theta})=\ln \left\{\sum_{\mathbf{Z}} p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\theta})\right\}
lnp(X∣θ)=ln{Z∑p(X,Z∣θ)}
EM算法可以用MAP中,其中E-step保持不变,而M-step只需要
Q
(
θ
,
θ
o
l
d
)
+
ln
p
(
θ
)
\mathcal{Q}\left(\boldsymbol{\theta}, \boldsymbol{\theta}^{\mathrm{old}}\right)+\ln p(\boldsymbol{\theta})
Q(θ,θold)+lnp(θ)。引入先验能够防止GMM中的奇异问题。
9.3.1 Gaussian mixtures revisited
对于全部都可观测的GMM模型来说
可以直接利用最大似然求解
p
(
X
,
Z
∣
μ
,
Σ
,
π
)
=
∏
n
=
1
N
∏
k
=
1
K
π
k
z
n
k
N
(
x
n
∣
μ
k
,
Σ
k
)
z
n
k
p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})=\prod_{n=1}^{N} \prod_{k=1}^{K} \pi_{k}^{z_{n k}} \mathcal{N}\left(\mathbf{x}_{n} | \boldsymbol{\mu}_{k}, \boldsymbol{\Sigma}_{k}\right)^{z_{n k}}
p(X,Z∣μ,Σ,π)=n=1∏Nk=1∏KπkznkN(xn∣μk,Σk)znk
ln
p
(
X
,
Z
∣
μ
,
Σ
,
π
)
=
∑
n
=
1
N
∑
k
=
1
K
z
n
k
{
ln
π
k
+
ln
N
(
x
n
∣
μ
k
,
Σ
k
)
}
\ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})=\sum_{n=1}^{N} \sum_{k=1}^{K} z_{n k}\left\{\ln \pi_{k}+\ln \mathcal{N}\left(\mathbf{x}_{n} | \boldsymbol{\mu}_{k}, \boldsymbol{\Sigma}_{k}\right)\right\}
lnp(X,Z∣μ,Σ,π)=n=1∑Nk=1∑Kznk{lnπk+lnN(xn∣μk,Σk)}对于均值和方差的优化,就是
K
K
K个独立的高斯对于属于每个类的单高斯拟合。而
π
k
=
1
N
∑
n
=
1
N
z
n
k
\pi_{k}=\frac{1}{N} \sum_{n=1}^{N} z_{n k}
πk=N1∑n=1Nznk。而在实际中
Z
\mathbf Z
Z是不可观测的,则不可能如上有解析解。
E
Z
[
ln
p
(
X
,
Z
∣
μ
,
Σ
,
π
)
]
=
∑
n
=
1
N
∑
k
=
1
K
γ
(
z
n
k
)
{
ln
π
k
+
ln
N
(
x
n
∣
μ
k
,
Σ
k
)
}
\mathbb{E}_{\mathbf{Z}}[\ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})]=\sum_{n=1}^{N} \sum_{k=1}^{K} \gamma\left(z_{n k}\right)\left\{\ln \pi_{k}+\ln \mathcal{N}\left(\mathbf{x}_{n} | \boldsymbol{\mu}_{k}, \boldsymbol{\Sigma}_{k}\right)\right\}
EZ[lnp(X,Z∣μ,Σ,π)]=n=1∑Nk=1∑Kγ(znk){lnπk+lnN(xn∣μk,Σk)}然后会得到之前一样的结果。
9.3.2 Relation to K-means
对⽐⾼斯模型的EM算法与K均值算法,可以看到⼆者有很强的相似性。K均值算法对数据点的聚类进⾏了“硬”分配,即每个数据点只属于唯⼀的聚类,⽽EM算法基于后验概率分布,进⾏了⼀个“软”分配。实际上,我们可以将K均值算法看成⾼斯混合模型的EM算法的⼀个特殊的极限情况,如下所述。
考虑⼀个⾼斯混合模型,其中混合分量的协⽅差矩阵为
ϵ
I
\epsilon \mathbf{I}
ϵI,
ϵ
\epsilon
ϵ是⼀个被所有分量共享的⽅差参数,
I
\mathbf I
I是单位矩阵,从⽽
p
(
x
∣
μ
k
,
Σ
k
)
=
1
(
2
π
ϵ
)
1
/
2
exp
{
−
1
2
ϵ
∥
x
−
μ
k
∥
2
}
p\left(\mathbf{x} | \boldsymbol{\mu}_{k}, \boldsymbol{\Sigma}_{k}\right)=\frac{1}{(2 \pi \epsilon)^{1 / 2}} \exp \left\{-\frac{1}{2 \epsilon}\left\|\mathbf{x}-\boldsymbol{\mu}_{k}\right\|^{2}\right\}
p(x∣μk,Σk)=(2πϵ)1/21exp{−2ϵ1∥x−μk∥2}我们现在考虑
K
K
K个这种形式的⾼斯分布组成的混合模型的EM算法,其中我们将
ϵ
\epsilon
ϵ看做⼀个固定的常数,⽽不是⼀个需要重新估计的参数。
γ
(
z
n
k
)
=
π
k
exp
{
−
∥
x
n
−
μ
k
∥
2
/
2
ϵ
}
∑
j
π
j
exp
{
−
∥
x
n
−
μ
j
∥
2
/
2
ϵ
}
\gamma\left(z_{n k}\right)=\frac{\pi_{k} \exp \left\{-\left\|\mathbf{x}_{n}-\boldsymbol{\mu}_{k}\right\|^{2} / 2 \epsilon\right\}}{\sum_{j} \pi_{j} \exp \left\{-\left\|\mathbf{x}_{n}-\boldsymbol{\mu}_{j}\right\|^{2} / 2 \epsilon\right\}}
γ(znk)=∑jπjexp{−∥∥xn−μj∥∥2/2ϵ}πkexp{−∥xn−μk∥2/2ϵ}当
ϵ
→
0
\epsilon \rightarrow 0
ϵ→0时,会发现
∥
x
n
−
μ
j
∥
2
\left\|\mathbf{x}_{n}-\boldsymbol{\mu}_{j}\right\|^{2}
∥∥xn−μj∥∥2最小的项会以最慢速度变为0,那么
γ
(
z
n
k
)
\gamma\left(z_{n k}\right)
γ(znk)会为0,而
γ
(
z
n
j
)
\gamma\left(z_{n j}\right)
γ(znj)为1。从而就跟K-means一样变为硬划分了
γ
(
z
n
k
)
→
r
n
k
\gamma\left(z_{n k}\right) \rightarrow r_{n k}
γ(znk)→rnk。在同样的极限下
E
Z
[
ln
p
(
X
,
Z
∣
μ
,
Σ
,
π
)
]
→
−
1
2
∑
n
=
1
N
∑
k
=
1
K
r
n
k
∥
x
n
−
μ
k
∥
2
+
const.
\mathbb{E}_{\mathbf{Z}}[\ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\Sigma}, \boldsymbol{\pi})] \rightarrow-\frac{1}{2} \sum_{n=1}^{N} \sum_{k=1}^{K} r_{n k}\left\|\mathbf{x}_{n}-\boldsymbol{\mu}_{k}\right\|^{2}+\text { const. }
EZ[lnp(X,Z∣μ,Σ,π)]→−21n=1∑Nk=1∑Krnk∥xn−μk∥2+ const. 跟K-means的目标函数一致。
9.3.3 Mixtures of Bernoulli distributions
对于 D D D个二值变量 x i x_i xi p ( x ∣ μ ) = ∏ i = 1 D μ i x i ( 1 − μ i ) ( 1 − x i ) p(\mathbf{x} | \boldsymbol{\mu})=\prod_{i=1}^{D} \mu_{i}^{x_{i}}\left(1-\mu_{i}\right)^{\left(1-x_{i}\right)} p(x∣μ)=i=1∏Dμixi(1−μi)(1−xi)其均值和方差 E [ x ] = μ cov [ x ] = diag { μ i ( 1 − μ i ) } \begin{aligned} \mathbb{E}[\mathbf{x}] &=\mu \\ \operatorname{cov}[\mathbf{x}] &=\operatorname{diag}\left\{\mu_{i}\left(1-\mu_{i}\right)\right\} \end{aligned} E[x]cov[x]=μ=diag{μi(1−μi)}下面考虑有限混合Bernoulli模型 p ( x ∣ μ , π ) = ∑ k = 1 K π k p ( x ∣ μ k ) p(\mathbf{x} | \boldsymbol{\mu}, \boldsymbol{\pi})=\sum_{k=1}^{K} \pi_{k} p\left(\mathbf{x} | \boldsymbol{\mu}_{k}\right) p(x∣μ,π)=k=1∑Kπkp(x∣μk)where μ = { μ 1 , … , μ K } , π = { π 1 , … , π K } \mu=\left\{\mu_{1}, \ldots, \mu_{K}\right\}, \pi=\left\{\pi_{1}, \ldots, \pi_{K}\right\} μ={μ1,…,μK},π={π1,…,πK},对于其中某一个分布有 p ( x ∣ μ k ) = ∏ i = 1 D μ k i x i ( 1 − μ k i ) ( 1 − x i ) p\left(\mathbf{x} | \boldsymbol{\mu}_{k}\right)=\prod_{i=1}^{D} \mu_{k i}^{x_{i}}\left(1-\mu_{k i}\right)^{\left(1-x_{i}\right)} p(x∣μk)=i=1∏Dμkixi(1−μki)(1−xi)该混合模型的均值和方差 E [ x ] = ∑ k = 1 K π k μ k cov [ x ] = ∑ k = 1 K π k { Σ k + μ k μ k T } − E [ x ] E [ x ] T \begin{aligned} \mathbb{E}[\mathbf{x}] &=\sum_{k=1}^{K} \pi_{k} \boldsymbol{\mu}_{k} \\ \operatorname{cov}[\mathbf{x}] &=\sum_{k=1}^{K} \pi_{k}\left\{\boldsymbol{\Sigma}_{k}+\boldsymbol{\mu}_{k} \boldsymbol{\mu}_{k}^{\mathrm{T}}\right\}-\mathbb{E}[\mathbf{x}] \mathbb{E}[\mathbf{x}]^{\mathrm{T}} \end{aligned} E[x]cov[x]=k=1∑Kπkμk=k=1∑Kπk{Σk+μkμkT}−E[x]E[x]T其中 Σ k = diag { μ k i ( 1 − μ k i ) } \boldsymbol{\Sigma}_{k}=\operatorname{diag}\left\{\mu_{k i}\left(1-\mu_{k i}\right)\right\} Σk=diag{μki(1−μki)}。由于协⽅差矩阵 cov [ x ] \operatorname{cov}[\mathbf{x}] cov[x]不再是对⾓矩阵,因此混合分布可以描述变量之间的相关性,这与单⼀的伯努利分布不同。下面我们考虑一个数据集 X = { x 1 , … , x N } \mathbf{X}=\left\{\mathbf{x}_{1}, \ldots, \mathbf{x}_{N}\right\} X={x1,…,xN},该模型的似然为 ln p ( X ∣ μ , π ) = ∑ n = 1 N ln { ∑ k = 1 K π k p ( x n ∣ μ k ) } \ln p(\mathbf{X} | \boldsymbol{\mu}, \boldsymbol{\pi})=\sum_{n=1}^{N} \ln \left\{\sum_{k=1}^{K} \pi_{k} p\left(\mathbf{x}_{n} | \boldsymbol{\mu}_{k}\right)\right\} lnp(X∣μ,π)=n=1∑Nln{k=1∑Kπkp(xn∣μk)}跟GMM一样,无法直接求解,因此考虑使用EM算法。那么需要引入一个隐变量 z = ( z 1 , … , z K ) T \mathbf{z}=\left(z_{1}, \dots, z_{K}\right)^{\mathrm{T}} z=(z1,…,zK)T,表示每个 x \mathbf x x属于第 k k k个分量,也就是说其为一个one-hot向量,那么 p ( x ∣ z , μ ) = ∏ k = 1 K p ( x ∣ μ k ) z k p(\mathbf{x} | \mathbf{z}, \boldsymbol{\mu})=\prod_{k=1}^{K} p\left(\mathbf{x} | \boldsymbol{\mu}_{k}\right)^{z_{k}} p(x∣z,μ)=k=1∏Kp(x∣μk)zk其先验与GMM一样 p ( z ∣ π ) = ∏ k = 1 K π k z k p(\mathbf{z} | \boldsymbol{\pi})=\prod_{k=1}^{K} \pi_{k}^{z_{k}} p(z∣π)=k=1∏Kπkzk为了推导EM算法,我们⾸先写出完整数据的对数似然函数,形式为 ln p ( X , Z ∣ μ , π ) = ∑ n = 1 N ∑ k = 1 K z n k { ln π k + ∑ i = 1 D [ x n i ln μ k i + ( 1 − x n i ) ln ( 1 − μ k i ) ] } \begin{array}{c}{\ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\pi})=\sum_{n=1}^{N} \sum_{k=1}^{K} z_{n k}\left\{\ln \pi_{k}\right.} {+\sum_{i=1}^{D}\left[x_{n i} \ln \mu_{k i}+\left(1-x_{n i}\right) \ln \left(1-\mu_{k i}\right)\right] \}}\end{array} lnp(X,Z∣μ,π)=∑n=1N∑k=1Kznk{lnπk+∑i=1D[xnilnμki+(1−xni)ln(1−μki)]}接下来我们取完整数据对数似然函数关于潜在变量后验概率分布的期望,得 E Z [ ln p ( X , Z ∣ μ , π ) ] = ∑ n = 1 N ∑ k = 1 K γ ( z n k ) { ln π k + ∑ i = 1 D [ x n i ln μ k i + ( 1 − x n i ) ln ( 1 − μ k i ) ] } \begin{array}{c}{\mathbb{E}_{\mathbf{Z}}[\ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\mu}, \boldsymbol{\pi})]=\sum_{n=1}^{N} \sum_{k=1}^{K} \gamma\left(z_{n k}\right)\left\{\ln \pi_{k}\right.} {+\sum_{i=1}^{D}\left[x_{n i} \ln \mu_{k i}+\left(1-x_{n i}\right) \ln \left(1-\mu_{k i}\right)\right] \}}\end{array} EZ[lnp(X,Z∣μ,π)]=∑n=1N∑k=1Kγ(znk){lnπk+∑i=1D[xnilnμki+(1−xni)ln(1−μki)]}其中 γ ( z n k ) = E [ z n k ] = ∑ z n k z n k [ π k p ( x n ∣ μ k ) ] z n k ∑ z n j [ π j p ( x n ∣ μ j ) ] z n j = π k p ( x n ∣ μ k ) ∑ j = 1 K π j p ( x n ∣ μ j ) \begin{aligned} \gamma\left(z_{n k}\right)=\mathbb{E}\left[z_{n k}\right]=& \frac{\sum_{z_{n k}} z_{n k}\left[\pi_{k} p\left(\mathbf{x}_{n} | \boldsymbol{\mu}_{k}\right)\right]^{z_{n k}}}{\sum_{z_{n j}}\left[\pi_{j} p\left(\mathbf{x}_{n} | \boldsymbol{\mu}_{j}\right)\right]^{z_{n j}}} \\=& \frac{\pi_{k} p\left(\mathbf{x}_{n} | \boldsymbol{\mu}_{k}\right)}{\sum_{j=1}^{K} \pi_{j} p\left(\mathbf{x}_{n} | \boldsymbol{\mu}_{j}\right)} \end{aligned} γ(znk)=E[znk]==∑znj[πjp(xn∣μj)]znj∑znkznk[πkp(xn∣μk)]znk∑j=1Kπjp(xn∣μj)πkp(xn∣μk)在M步骤中 μ k = 1 N k ∑ n = 1 N γ ( z n k ) x n \boldsymbol{\mu}_{k}=\frac{1}{N_{k}} \sum_{n=1}^{N} \gamma\left(z_{n k}\right) \mathbf{x}_{n} μk=Nk1n=1∑Nγ(znk)xn π k = ∑ n = 1 N γ ( z n k ) N \pi_{k}=\frac{\sum_{n=1}^{N} \gamma\left(z_{n k}\right)}{N} πk=N∑n=1Nγ(znk)利用该模型对手写数字建模如下
9.3.4 EM for Bayesian linear regression
之前在贝叶斯线性回归问题中,对于超参数 α \alpha α and β \beta β是通过最大化evidence p ( t ∣ α , β ) p(\mathbf{t} | \alpha, \beta) p(t∣α,β)得到的,其中的隐变量被 w \mathbf{w} w积分积掉了。那么可以采取EM的框架求解这个问题:E-step,求得 w \mathbf{w} w在当前 α \alpha α和 β \beta β的后验分布;M-step,求完全数据集下log似然并最大化。 ln p ( t , w ∣ α , β ) = ln p ( t ∣ w , β ) + ln p ( w ∣ α ) \ln p(\mathbf{t}, \mathbf{w} | \alpha, \beta)=\ln p(\mathbf{t} | \mathbf{w}, \beta)+\ln p(\mathbf{w} | \alpha) lnp(t,w∣α,β)=lnp(t∣w,β)+lnp(w∣α)具体分析可以参见书。
9.4 The EM Algorithm in General
EM算法能很好地解决对于有隐变量的概率模型的最大似然。我们的目标为最大化下式
p
(
X
∣
θ
)
=
∑
Z
p
(
X
,
Z
∣
θ
)
p(\mathbf{X} | \boldsymbol{\theta})=\sum_{\mathbf{Z}} p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\theta})
p(X∣θ)=Z∑p(X,Z∣θ)引入分布
q
(
Z
)
q(\mathbf{Z})
q(Z),则
ln
p
(
X
∣
θ
)
=
L
(
q
,
θ
)
+
K
L
(
q
∥
p
)
\ln p(\mathbf{X} | \boldsymbol{\theta})=\mathcal{L}(q, \boldsymbol{\theta})+\mathrm{KL}(q \| p)
lnp(X∣θ)=L(q,θ)+KL(q∥p)其中
L
(
q
,
θ
)
=
∑
Z
q
(
Z
)
ln
{
p
(
X
,
Z
∣
θ
)
q
(
Z
)
}
K
L
(
q
∥
p
)
=
−
∑
Z
q
(
Z
)
ln
{
p
(
Z
∣
X
,
θ
)
q
(
Z
)
}
\begin{aligned} \mathcal{L}(q, \boldsymbol{\theta}) &=\sum_{\mathbf{Z}} q(\mathbf{Z}) \ln \left\{\frac{p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\theta})}{q(\mathbf{Z})}\right\} \\ \mathrm{KL}(q \| p) &=-\sum_{\mathbf{Z}} q(\mathbf{Z}) \ln \left\{\frac{p(\mathbf{Z} | \mathbf{X}, \boldsymbol{\theta})}{q(\mathbf{Z})}\right\} \end{aligned}
L(q,θ)KL(q∥p)=Z∑q(Z)ln{q(Z)p(X,Z∣θ)}=−Z∑q(Z)ln{q(Z)p(Z∣X,θ)}
对于E-step来说,当参数固定时,
q
(
Z
)
=
p
(
Z
∣
X
,
θ
old
)
q(\mathbf{Z})=p\left(\mathbf{Z} | \mathbf{X}, \boldsymbol{\theta}^{\text { old }}\right)
q(Z)=p(Z∣X,θ old )
对于M-step来说,
L
(
q
,
θ
)
=
∑
Z
p
(
Z
∣
X
,
θ
o
l
d
)
ln
p
(
X
,
Z
∣
θ
)
−
∑
Z
p
(
Z
∣
X
,
θ
o
l
d
)
ln
p
(
Z
∣
X
,
θ
old
)
=
Q
(
θ
,
θ
old
)
+
const
\begin{aligned} \mathcal{L}(q, \boldsymbol{\theta}) &=\sum_{\mathbf{Z}} p\left(\mathbf{Z} | \mathbf{X}, \boldsymbol{\theta}^{\mathrm{old}}\right) \ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\theta})-\sum_{\mathbf{Z}} p\left(\mathbf{Z} | \mathbf{X}, \boldsymbol{\theta}^{\mathrm{old}}\right) \ln p\left(\mathbf{Z} | \mathbf{X}, \boldsymbol{\theta}^{\text { old }}\right) \\ &=\mathcal{Q}\left(\boldsymbol{\theta}, \boldsymbol{\theta}^{\text { old }}\right)+\text { const } \end{aligned}
L(q,θ)=Z∑p(Z∣X,θold)lnp(X,Z∣θ)−Z∑p(Z∣X,θold)lnp(Z∣X,θ old )=Q(θ,θ old )+ const 在参数空间看,整个过程如下我们还可以使用EM算法去求最大后验分布
p
(
θ
∣
X
)
p(\boldsymbol{\theta} | \mathbf{X})
p(θ∣X),MAP引入了
θ
\boldsymbol \theta
θ的先验。
ln
p
(
θ
∣
X
)
=
ln
p
(
θ
,
X
)
−
ln
p
(
X
)
\ln p(\boldsymbol{\theta} | \mathbf{X})=\ln p(\boldsymbol{\theta}, \mathbf{X})-\ln p(\mathbf{X})
lnp(θ∣X)=lnp(θ,X)−lnp(X)利用之前的分解,有
ln
p
(
θ
∣
X
)
=
L
(
q
,
θ
)
+
K
L
(
q
∥
p
)
+
ln
p
(
θ
)
−
ln
p
(
X
)
⩾
L
(
q
,
θ
)
+
ln
p
(
θ
)
−
ln
p
(
X
)
\begin{aligned} \ln p(\boldsymbol{\theta} | \mathbf{X}) &=\mathcal{L}(q, \boldsymbol{\theta})+\mathrm{KL}(q \| p)+\ln p(\boldsymbol{\theta})-\ln p(\mathbf{X}) \\ & \geqslant \mathcal{L}(q, \boldsymbol{\theta})+\ln p(\boldsymbol{\theta})-\ln p(\mathbf{X}) \end{aligned}
lnp(θ∣X)=L(q,θ)+KL(q∥p)+lnp(θ)−lnp(X)⩾L(q,θ)+lnp(θ)−lnp(X)E-step跟原来一样,M-step则需要考虑
ln
p
(
θ
)
\ln p(\boldsymbol{\theta})
lnp(θ)。