GMM高斯混合模型

前言

在分析数据集时,我们经常做出简化建模的假设,例如假设所有的样本都来自一个特定的分布(例如,高斯分布)。然后我们继续使用极大似然估计来估计这个分布的参数(比如均值和方差)。然而,在许多情况下,假设所有样本都来自相同的一个分布,限制性太强,因为通常我们试图建模的数据来源更复杂。这里介绍一种由多个高斯分布分量混合而成的数据生成模型——高斯混合模型,并介绍求解该模型的方法。

混合模型

混合模型的一个例子

假设我们现在想在电商网站上买一本书,那我们就希望先估算一下我们买这本书的成本。通常一本书都会有平装版本和精装版本在售,而且精装版的书往往也会比平装版的书要贵上许多。因此,如果我们想要对书的价格进行估计,使用单一的分布对这本书的价格进行建模可能对于价格的估计是不太合理的,而将平装书与精装书的价格分开建模可能更有意义。

在这个例子中,我们将一本书的价格建模为一个混合模型。 我们的模型中有两种混合成分——一个用于平装书价格分布,一个用于精装本价格分布。假设我们随机选择一本书,有 50% 的机会选择平装本,50% 的机会选择精装本。 这些比例称为混合比例,也可以称为每一种分布被选择的概率或权重。

混合模型的定义

假设有 N N N个样本 X = { x 1 , x 2 , ⋯ , x N } X=\{x_1,x_2,\cdots,x_N\} X={x1,x2,xN},而每一个样本 x i ( i = 1 , 2 , ⋯   , N ) x _i(i=1,2,\cdots,N) xi(i=1,2,,N)都是从 K K K个分布中的一个采样得到的。每个样本 x i x_i xi有一个对应 z i ∈ { 1 , 2 , ⋯   , K } z_i\in\{1,2,\cdots,K\} zi{1,2,,K}用于标记 x i x_i xi是来自哪一个分布分量的,令 Z = { z 1 , z 2 , ⋯   , z N } Z=\{z_1,z_2,\cdots,z_N\} Z={z1,z2,,zN},其中 { X , Z } \{X,Z\} {X,Z}称为完整数据。然而通常情况下,我们有的只是样本数据 X X X(不完整数据),而 Z Z Z我们没法观测得到,即不知道数据是从哪个分布采样得到的。在混合模型中, Z Z Z称为隐变量,隐变量 z i z_i zi对应的是第 i i i个分布分量,一般是离散数据。

由联合概率可知, x i x_i xi 的边缘概率为:
p ( x i ) = ∑ z p ( x i , z ) = ∑ k = 1 K p ( x i ∣ z i = k ) p ( z i = k ) ⏟ α k = ∑ k = 1 K p ( x i ∣ z i = k ) α k \large \begin{aligned} p(x_i) &= \sum_zp(x_i,z)\\ &=\sum_{k=1}^Kp(x_i|z_i=k)\underbrace{p(z_i=k)}_{\alpha_k} \\ &=\sum_{k=1}^Kp(x_i|z_i=k) {\alpha_k} \end{aligned} p(xi)=zp(xi,z)=k=1Kp(xizi=k)αk p(zi=k)=k=1Kp(xizi=k)αk
其中, α k ∈ ( α 1 , α 2 , ⋯   , α K ) \alpha_k\in (\alpha_1,\alpha_2,\cdots,\alpha_K) αk(α1,α2,,αK)称为混合比例或混合权重,表示 x i x_i xi 属于第 k k k个混合分量的概率,它是非负的,而且 ∑ k = 1 K α k = 1 \sum_{k=1}^K\alpha_k=1 k=1Kαk=1 p ( x i ∣ z i = k ) p(x_i|z_i=k) p(xizi=k)称为混合分布分量,它表示样本 x i x_i xi 来自的分布是第 k k k个分量分布。

GMM高斯混合模型

高斯混合模型(GMM)其实就是 K K K 个高斯分布分量构成的一个混合模型。假设有 N N N个相互独立的样本数据 X = { x 1 , x 2 , ⋯ , x N } X=\{x_1,x_2,\cdots,x_N\} X={x1,x2,xN},其中 x i ∈ R n x_i\in R^n xiRn。用 N ( x i ; μ k , Σ k ) N(x_i;\mu_k,\Sigma_k) N(xi;μk,Σk)代表数据 x i x_i xi来自第 k k k个高斯分布,其密度函数表示为:
N ( x i ; μ k , Σ k ) = 1 ( 2 π ) n 2 ∣ Σ ∣ 1 2 e x p ( − 1 2 ( x i − μ k ) T Σ k − 1 ( x i − μ k ) ) N(x_i;\mu_k,\Sigma_k) = \frac{1}{(2\pi)^\frac{n}{2}|\Sigma|^{\frac{1}{2}}}exp(-\frac{1}{2}(x_i-\mu_k)^T\Sigma^{-1}_k(x_i-\mu_k)) N(xi;μk,Σk)=(2π)2nΣ211exp(21(xiμk)TΣk1(xiμk))
根据混合模型的定义,我们可以得到 x i x_i xi 边缘概率函数为:
p ( x i ∣ Θ ) = ∑ z    p ( x i , z ∣ Θ ) = ∑ h = 1 K p ( z = h ∣ Θ ) p ( x i ∣ z = h ; Θ ) = ∑ h = 1 K α h N ( x i ; μ h , Σ h ) \begin{aligned} p(x_i|\Theta) &= \sum_z\;p(x_i,z|\Theta)\\ &= \sum_{h=1}^K p(z=h|\Theta)p(x_i|z=h;\Theta)\\ &= \sum_{h=1}^K \alpha_h N(x_i;\mu_h,\Sigma_h) \end{aligned} p(xiΘ)=zp(xi,zΘ)=h=1Kp(z=hΘ)p(xiz=h;Θ)=h=1KαhN(xi;μh,Σh)
要注意的是,这 K K K个高斯分布每个都有独立的参数(均值和协方差矩阵),而且每个样本数据由这 K K K个分布生成的概率为 α 1 , α 2 , ⋯   , α K \alpha_1,\alpha_2,\cdots,\alpha_K α1,α2,,αK,这也是未知的,它们也是构成这整个高斯混合模型参数的一部分。所以整个高斯模型的参数可以定义为:
Θ = { μ 1 , μ 2 , ⋯   , μ K , Σ 1 , Σ 2 , ⋯   , Σ K , α 1 , α 2 , ⋯   , α K } \Theta = \{\mu_1,\mu_2,\cdots,\mu_K,\Sigma_1,\Sigma_2,\cdots,\Sigma_K,\alpha_1,\alpha_2,\cdots,\alpha_K \} Θ={μ1,μ2,,μK,Σ1,Σ2,,ΣK,α1,α2,,αK}
高斯混合模型的生成模型可以表示如下图:
在这里插入图片描述

对于模型的参数估计,我们通常使用的方法是通过计算极大似然估计函数。

极大似然估计

单高斯模型的极大似然估计

以一维单高斯分布为例求解参数 μ \mu μ估计。假设有 N N N个样本 X = { x 1 , x 2 , ⋯ , x N } X=\{x_1,x_2,\cdots,x_N\} X={x1,x2,xN}是从一个参数 θ = { μ , σ 2 } \theta=\{\mu,\sigma^2\} θ={μ,σ2}未知的一维单高斯分布采样得到的。为了找到 μ \mu μ的极大似然估计,我们求得对数似然 L ( θ ) L(\theta) L(θ),对 μ \mu μ求偏导,令其为零,然后求解 μ \mu μ
L ( θ ) = l n [ ∏ i = 1 N 1 2 π σ e x p ( − ( x i − μ ) 2 2 σ 2 ) ] = ∑ i = 1 N [ l n 1 2 π σ − ( x i − μ ) 2 2 σ 2 ] ∂ L ( θ ) ∂ μ = ∑ i = 1 N x i − μ σ 2 = 0 μ M L E = 1 N ∑ i = 1 N x i \begin{aligned} L(\theta) &= ln[\prod_{i=1}^N\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x_i-\mu)^2}{2\sigma^2})]\\ &= \sum_{i=1}^N[ln\frac{1}{\sqrt{2\pi}\sigma} - \frac{(x_i-\mu)^2}{2\sigma^2}]\\ \\ \frac{\partial L(\theta)}{\partial \mu} &=\sum_{i=1}^N\frac{x_i-\mu}{\sigma^2} = 0\\ \\ \mu_{MLE} &= \frac{1}{N}\sum_{i=1}^N x_i \end{aligned} L(θ)μL(θ)μMLE=ln[i=1N2π σ1exp(2σ2(xiμ)2)]=i=1N[ln2π σ12σ2(xiμ)2]=i=1Nσ2xiμ=0=N1i=1Nxi

将对数函数应用于似然函数有助于我们分解乘积并移除指数函数,以便我们可以轻松求解 M L E MLE MLE

高斯混合模型的极大似然估计

现在我们尝试来推导高斯混合模型的极大似然估计求解参数 μ \mu μ。假设有 N N N个样本 X = { x 1 , x 2 , ⋯ , x N } X=\{x_1,x_2,\cdots,x_N\} X={x1,x2,xN}是从由 K K K个一维高斯分布混合而成高斯混合模型采样得到的,现在的未知参数 Θ = { μ 1 , ⋯   , μ K , σ 1 , ⋯   , σ K , α 1 , ⋯   , α K } \Theta=\{\mu_1,\cdots,\mu_K,\sigma_1,\cdots,\sigma_K,\alpha_1,\cdots,\alpha_K\} Θ={μ1,,μK,σ1,,σK,α1,,αK}。那对数似然函数:
l n L ( Θ ) = l n [ ∏ i = 1 N ∑ z    p ( x , z ∣ Θ ) ] = ∑ i = 1 N l n [ ∑ h = 1 K p ( z i = h ∣ Θ ) p ( x i ∣ z i = h ; Θ ) ] = ∑ i = 1 N l n [ ∑ h = 1 K α h N ( x i ; μ h , σ h 2 ) ] \large \begin{aligned} lnL(\Theta) &= ln[\prod_{i=1}^N\sum_z\;p(x,z|\Theta)]\\ &= \sum_{i=1}^N ln[\sum_{h=1}^K p(z_i=h|\Theta)p(x_i|z_i=h;\Theta)]\\ &= \sum_{i=1}^N ln[\sum_{h=1}^K\alpha_h N(x_i;\mu_h,\sigma^2_h)]\\ \end{aligned} lnL(Θ)=ln[i=1Nzp(x,zΘ)]=i=1Nln[h=1Kp(zi=hΘ)p(xizi=h;Θ)]=i=1Nln[h=1KαhN(xi;μh,σh2)]
看一下上面的表达式,我们可以看到高斯混合模型与单高斯分布的极大似然估计之间的区别。 这里的 K K K个分布分量的相加“阻止”了对数函数的进一步处理。 如果我们按照求单高斯分布的极大似然估计相同的步骤对 μ k μ_k μk 进行求导,并将求导后的表达式设置为零,我们将得到:
∂ l n L ( θ ) ∂ μ k = ∂ [ ∑ i = 1 N l n ( ∑ h = 1 K α h N ( x i ; μ h , σ h 2 ) ) ] ∂ μ k = ∑ i = 1 N α k N ( x i ; μ k , σ k 2 ) ∑ h = 1 K α h N ( x i ; μ h , σ h 2 ) ( x i − μ k ) σ k 2 = 0 \large \begin{aligned} \frac{\partial lnL(\theta)}{\partial \mu_k} &= \frac{\partial[\sum_{i=1}^Nln(\sum_{h=1}^K\alpha_h N(x_i;\mu_h,\sigma^2_h))]}{\partial \mu_k}\\ &= \sum_{i=1}^N\frac{\alpha_kN(x_i;\mu_k,\sigma^2_k)}{\sum_{h=1}^K \alpha_h N(x_i;\mu_h,\sigma^2_h)}\frac{(x_i-\mu_k)} {\sigma^2_k} = 0 \end{aligned} μklnL(θ)=μk[i=1Nln(h=1KαhN(xi;μh,σh2))]=i=1Nh=1KαhN(xi;μh,σh2)αkN(xi;μk,σk2)σk2(xiμk)=0

现在我们很难继续下去了,因为根据现有的等式我们无法解析求解 μ k \mu_k μk。 那么怎么办呢?

细想一下,高斯混合模型和单高斯模型的主要区别在于隐变量的存在,即我们不知道哪些数据是由哪个高斯生成的。

1 那我们能不能尝试先假设模型的所有参数,然后根据这些参数把所有的样本数据依次分配到与隐变量分布分量锲合度最高的分布分量中去。

2 再根据这些分到不同的分布分量的样本数据,按照极大似然估计法估计一下这些分布分量的参数,看估计出来的参数和我们预先假设的参数的差异。

如果估计出来的参数和我们预先假设的参数的差异比较小,那说明我们假设的参数是相当靠谱的估计。如果估计出来的参数和我们预先假设的参数的差异比较大,那我们就用新估计出来的参数作为新的假设的参数再次进行上面的1,2步骤,直至收敛。

我们可以先尝试根据样本数据计算一下 z i = k z_i=k zi=k的后验概率:
p ( z i = k ∣ x i ) = p ( x i ∣ z i = k ) p ( z i = k ) p ( x i ) = α k N ( x i ; μ k , σ k 2 ) ∑ h = 1 K α h N ( x i ; μ h , σ h 2 ) = Υ z i ( k ) \large \begin{aligned} p(z_i=k|x_i) &= \frac{p(x_i|z_i=k)p(z_i=k)}{p(x_i)}\\ &=\frac{\alpha_kN(x_i;\mu_k,\sigma^2_k)}{\sum_{h=1}^K \alpha_h N(x_i;\mu_h,\sigma^2_h)} = \Upsilon_{z_i}(k) \\ \end{aligned} p(zi=kxi)=p(xi)p(xizi=k)p(zi=k)=h=1KαhN(xi;μh,σh2)αkN(xi;μk,σk2)=Υzi(k)
根据每个样本的后验概率,我们就可以把所有的样本在不同分布分量下概率的大小进行分类了。

然后,我们再通过不同分布分量下的所有样本,采用极大似然参数估计法,对该分布分量进行参数估计。
l n L ( Θ ) = l n [ ∏ i = 1 m    p ( x i ∣ z i = k , Θ ) ] = ∑ i = 1 m l n [ p ( x i ∣ z i = k , Θ ) ] \large \begin{aligned} lnL(\Theta)&= ln[\prod_{i=1}^m\;p(x_i|z_i=k,\Theta)]\\ &= \sum_{i=1}^m ln[p(x_i|z_i=k,\Theta)]\\ \end{aligned} lnL(Θ)=ln[i=1mp(xizi=k,Θ)]=i=1mln[p(xizi=k,Θ)]
在真实求解高斯模型中,使用的 E M EM EM算法核心其实和上面得到的两个求解步骤的思想相似,它的步骤可以大概描述如下(这仅仅是一种思想的描述,和实际上的 E M EM EM算法求解公式不同):

  1. 对于模型的所有参数 Θ \Theta Θ给于一个初始值 { μ 1 0 , μ 2 0 , ⋯   , μ K 0 , Σ 1 0 , Σ 2 0 , ⋯   , Σ K 0 , α 1 0 , α 2 0 , ⋯   , α K 0 } \{\mu_1^0,\mu_2^0,\cdots,\mu_K^0,\Sigma_1^0,\Sigma_2^0,\cdots,\Sigma_K^0,\alpha_1^0,\alpha_2^0,\cdots,\alpha_K^0\} {μ10,μ20,,μK0,Σ10,Σ20,,ΣK0,α10,α20,,αK0}

  2. E-step:根据已有的参数值计算隐变量的后验概率 Υ z i ( k ) \Upsilon_{z_i}(k) Υzi(k)

  3. M-step:根据隐变量的后验概率 Υ z i ( k ) \Upsilon_{z_i}(k) Υzi(k),对模型的似然函数进行计算,找到最大化极大似然函数的参数 { μ 1 t , μ 2 t , ⋯   , μ K t , Σ 1 t , Σ 2 t , ⋯   , Σ K t , α 1 t , α 2 t , ⋯   , α K t } \{\mu_1^t,\mu_2^t,\cdots,\mu_K^t,\Sigma_1^t,\Sigma_2^t,\cdots,\Sigma_K^t,\alpha_1^t,\alpha_2^t,\cdots,\alpha_K^t\} {μ1t,μ2t,,μKt,Σ1t,Σ2t,,ΣKt,α1t,α2t,,αKt}

  4. 第3步得到的新的参数值作为第2步的参数,重复第2步第3步直到模型估计的所有参数收敛。

EM算法求解高斯混合模型

EM算法简述

E M EM EM算法通过E-StepM-Step迭代交替求解高斯混合模型极大似然参数估计问题。 E M EM EM算法整个求解的过程中都是在更新参数 Θ \Theta Θ,使之收敛到一个局部极大值。

E-step中,使用第 t t t次迭代的已知参数 Θ t \Theta^t Θt(一开始初始化的 Θ \Theta Θ或者由M-step计算出来的 Θ \Theta Θ)来计算隐变量的后验概率分布 p ( Z ∣ X , Θ t ) p(Z|X,\Theta^t) p(ZX,Θt)(相当于前面提到的后验概率 Υ z i ( k ) \Upsilon_{z_i}(k) Υzi(k)),然后利用这个分布,计算完整数据的对数似然函数在这个分布下的期望表达式 Q ( Θ , Θ t ) Q(\Theta,\Theta^t) Q(Θ,Θt)
Q ( Θ , Θ t ) = ∫ z [ l n    p ( X , Z ∣ Θ ) ]    p ( Z ∣ X , Θ t ) d z \large Q(\Theta,\Theta^t) = \int_z[ln\;p(X,Z|\Theta)] \;p(Z|X,\Theta^t)dz Q(Θ,Θt)=z[lnp(X,ZΘ)]p(ZX,Θt)dz
M-step,通过最大化 Q ( Θ , Θ t ) Q(\Theta,\Theta^t) Q(Θ,Θt)获得新的估计参数。
Θ t + 1 = a r g m a x Θ    Q ( Θ , Θ t ) \large \Theta^{t+1} = \mathop{argmax}\limits_{\Theta}\;Q(\Theta,\Theta^t) Θt+1=ΘargmaxQ(Θ,Θt)

推导GMM的EM算法
E-step的推导

对于GMM模型下的E-step的推导,即要推导出第 t t t次迭代的 Q ( Θ , Θ t ) Q(\Theta,\Theta^t) Q(Θ,Θt)函数表达式。假设随机样本 X = { x 1 , x 2 , ⋯   , x N } X=\{x_1,x_2,\cdots,x_N\} X={x1,x2,,xN}为模型中的观测变量,其中 x i ∈ R n x_i\in R^n xiRn Z = { z 1 , z 2 , ⋯   , z N } Z=\{z_1,z_2,\cdots,z_N\} Z={z1,z2,,zN}为模型中的隐变量, z i ∈ { 1 , 2 , ⋯   , K } z_i\in\{1,2,\cdots,K\} zi{1,2,,K}。每个样本数据由这 K K K个分布生成的概率为 α 1 , α 2 , ⋯   , α K \alpha_1,\alpha_2,\cdots,\alpha_K α1,α2,,αK。 对于 Q ( Θ , Θ t ) Q(\Theta,\Theta^t) Q(Θ,Θt)函数推导为:

Q ( Θ , Θ t ) = ∫ z [ l n    p ( X , Z ∣ Θ ) ]    p ( Z ∣ X , Θ t ) d z ( x i , z i ) 相 互 独 立 , x i 相 互 独 立 , z i 相 互 独 立 = ∫ z [ ∑ i = 1 N l n    p ( x i , z i ∣ Θ ) ] [ ∏ i = 1 N p ( z i ∣ x i , Θ t ) ] d z = ∑ z 1 = 1 K ∑ z 2 = 1 K ⋯ ∑ z N = 1 K ⏟ N [ ∑ i = 1 N l n    p ( x i , z i ∣ Θ ) ] [ ∏ i = 1 N p ( z i ∣ x i , Θ t ) ] = ∑ z 1 = 1 K ∑ z 2 = 1 K ⋯ ∑ z N = 1 K ⏟ N [ l n    p ( x 1 , z 1 ∣ Θ ) ⏟ 第 一 项 + ⋯ + l n    p ( x N , z N ∣ Θ ) ] [ p ( z 1 ∣ x 1 , Θ t ) ⋯ p ( z N ∣ x N , Θ t ) ] \large \begin{aligned} Q(\Theta,\Theta^t) &= \int_z[ln\;p(X,Z|\Theta)] \;p(Z|X,\Theta^t)dz \quad\qquad (x_i,z_i)相互独立,x_i 相互独立, z_i相互独立\\ &= \int_z[\sum_{i=1}^Nln\;p(x_i,z_i|\Theta)][\prod_{i=1}^Np(z_i|x_i,\Theta^t)]dz\\ &= \underbrace{\sum_{z_1=1}^K\sum_{z_2=1}^K\cdots\sum_{z_N=1}^K}_N[\sum_{i=1}^Nln\;p(x_i,z_i|\Theta)][\prod_{i=1}^Np(z_i|x_i,\Theta^t)]\\ &= \underbrace{\sum_{z_1=1}^K\sum_{z_2=1}^K\cdots\sum_{z_N=1}^K}_N[\underbrace{ln\;p(x_1,z_1|\Theta)}_{第一项} +\cdots +ln\;p(x_N,z_N|\Theta)][p(z_1|x_1,\Theta^t)\cdots p(z_N|x_N,\Theta^t)] \end{aligned} Q(Θ,Θt)=z[lnp(X,ZΘ)]p(ZX,Θt)dz(xi,zi)xizi=z[i=1Nlnp(xi,ziΘ)][i=1Np(zixi,Θt)]dz=N z1=1Kz2=1KzN=1K[i=1Nlnp(xi,ziΘ)][i=1Np(zixi,Θt)]=N z1=1Kz2=1KzN=1K[ lnp(x1,z1Θ)++lnp(xN,zNΘ)][p(z1x1,Θt)p(zNxN,Θt)]
现在这个形式非常的复杂,我们提取第一项来分析
第 一 项 = ∑ z 1 = 1 K ∑ z 2 = 1 K ⋯ ∑ z N = 1 K l n    p ( x 1 , z 1 ∣ Θ ) [ p ( z 1 ∣ x 1 , Θ t ) ⋯ p ( z N ∣ x N , Θ t ) ] = ∑ z 1 = 1 K l n    p ( x 1 , z 1 ∣ Θ ) p ( z 1 ∣ x 1 , Θ t ) ∑ z 2 = 1 K p ( z 2 ∣ x 2 , Θ t ) ⏟ 1 ∑ z 3 = 1 K p ( z 3 ∣ x 3 , Θ t ) ⏟ 1 ⋯ ∑ z N = 1 K p ( z N ∣ x N , Θ t ) ⏟ 1 = ∑ z 1 = 1 K l n    p ( x 1 , z 1 ∣ Θ ) p ( z 1 ∣ x 1 , Θ t ) \large \begin{aligned} 第一项 &=\sum_{z_1=1}^K\sum_{z_2=1}^K\cdots\sum_{z_N=1}^K ln\;p(x_1,z_1|\Theta)[p(z_1|x_1,\Theta^t)\cdots p(z_N|x_N,\Theta^t)]\\ &=\sum_{z_1=1}^Kln\;p(x_1,z_1|\Theta)p(z_1|x_1,\Theta^t)\underbrace{\sum_{z_2=1}^Kp(z_2|x_2,\Theta^t)}_1\underbrace{\sum_{z_3=1}^Kp(z_3|x_3,\Theta^t)}_1\cdots\underbrace{\sum_{z_N=1}^K p(z_N|x_N,\Theta^t)}_1\\ &=\sum_{z_1=1}^Kln\;p(x_1,z_1|\Theta)p(z_1|x_1,\Theta^t) \end{aligned} =z1=1Kz2=1KzN=1Klnp(x1,z1Θ)[p(z1x1,Θt)p(zNxN,Θt)]=z1=1Klnp(x1,z1Θ)p(z1x1,Θt)1 z2=1Kp(z2x2,Θt)1 z3=1Kp(z3x3,Θt)1 zN=1Kp(zNxN,Θt)=z1=1Klnp(x1,z1Θ)p(z1x1,Θt)
根据 ∑ z i = 1 K p ( z i ∣ x i , Θ t ) = ∑ k = 1 K p ( z i = k ∣ x i , Θ t ) = 1 \sum_{z_i=1}^Kp(z_i|x_i,\Theta^t) = \sum_{k=1}^Kp(z_i = k|x_i,\Theta^t) = 1 zi=1Kp(zixi,Θt)=k=1Kp(zi=kxi,Θt)=1。这里相当于把这个后验分布的所有可能的概率相加,其结果一定是1。

Q ( Θ , Θ t ) Q(\Theta,\Theta^t) Q(Θ,Θt)可以简化为:
Q ( Θ , Θ t ) = ∑ z 1 = 1 K l n    p ( x 1 , z 1 ∣ Θ ) p ( z 1 ∣ x 1 , Θ t ) + ⋯ ∑ z N = 1 K l n    p ( x N , z N ∣ Θ ) p ( z N ∣ x N , Θ t ) = ∑ i = 1 N ∑ k = 1 K l n    p ( x i , z i = k ∣ Θ ) p ( z i = k ∣ x i , Θ t ) = ∑ i = 1 N ∑ k = 1 K l n [ p ( z i = k ) p ( x i ∣ z i = k , Θ ) ] p ( z i = k ∣ x i , Θ t ) = ∑ i = 1 N ∑ k = 1 K l n [ α k N ( x i ∣ μ k , Σ k ) ] p ( z i = k ∣ x i , Θ t ) = ∑ i = 1 N ∑ k = 1 K l n ( α k N ( x i ∣ μ k , Σ k ) ) p ( x i , z i = k ∣ Θ t ) p ( x i ∣ Θ t ) = ∑ i = 1 N ∑ k = 1 K l n ( α k N ( x i ∣ μ k , Σ k ) ) p ( x i ∣ z i = k , Θ t ) p ( z i = k ∣ Θ t ) p ( x i ∣ Θ t ) = ∑ i = 1 N ∑ k = 1 K l n ( α k N ( x i ∣ μ k , Σ k ) ) α k t N ( x i ∣ μ k t , Σ k t ) ∑ h = 1 K α h t N ( x i ∣ μ h t , Σ h t ) = ∑ i = 1 N ∑ k = 1 K Υ k , i t l n ( α k N ( x i ∣ μ k , Σ k ) ) = ∑ i = 1 N ∑ k = 1 K Υ k , i t [ l n    α k + l n    N ( x i ∣ μ k , Σ k ) ] \large \begin{aligned} Q(\Theta,\Theta^t) &=\sum_{z_1=1}^Kln\;p(x_1,z_1|\Theta)p(z_1|x_1,\Theta^t) +\cdots\sum_{z_N=1}^Kln\;p(x_N,z_N|\Theta)p(z_N|x_N,\Theta^t)\\ &=\sum_{i=1}^N\sum_{k=1}^Kln\;p(x_i,z_i=k|\Theta)p(z_i=k|x_i,\Theta^t) \\ &= \sum_{i=1}^N\sum_{k=1}^Kln[p(z_i=k)p(x_i|z_i=k,\Theta)]p(z_i=k|x_i,\Theta^t) \\ &= \sum_{i=1}^N\sum_{k=1}^Kln[\alpha_k N(x_i|\mu_k,\Sigma_k)]p(z_i=k|x_i,\Theta^t) \\ &= \sum_{i=1}^N\sum_{k=1}^Kln(\alpha_kN(x_i|\mu_k,\Sigma_k))\frac{p(x_i,z_i=k|\Theta^t)}{p(x_i|\Theta^t)} \\ &= \sum_{i=1}^N\sum_{k=1}^Kln(\alpha_k N(x_i|\mu_k,\Sigma_k))\frac{p(x_i|z_i=k,\Theta^t)p(z_i=k|\Theta^t)}{p(x_i|\Theta^t)} \\ &= \sum_{i=1}^N\sum_{k=1}^Kln(\alpha_k N(x_i|\mu_k,\Sigma_k))\frac{\alpha_k^tN(x_i|\mu_k^t,\Sigma_k^t)}{\sum_{h=1}^K\alpha_h^tN(x_i|\mu_h^t,\Sigma_h^t)} \\ &= \sum_{i=1}^N\sum_{k=1}^K\Upsilon_{k,i}^tln(\alpha_k N(x_i|\mu_k,\Sigma_k))\\ &= \sum_{i=1}^N\sum_{k=1}^K\Upsilon_{k,i}^t[ln\;\alpha_k + ln\;N(x_i|\mu_k,\Sigma_k)] \end{aligned} Q(Θ,Θt)=z1=1Klnp(x1,z1Θ)p(z1x1,Θt)+zN=1Klnp(xN,zNΘ)p(zNxN,Θt)=i=1Nk=1Klnp(xi,zi=kΘ)p(zi=kxi,Θt)=i=1Nk=1Kln[p(zi=k)p(xizi=k,Θ)]p(zi=kxi,Θt)=i=1Nk=1Kln[αkN(xiμk,Σk)]p(zi=kxi,Θt)=i=1Nk=1Kln(αkN(xiμk,Σk))p(xiΘt)p(xi,zi=kΘt)=i=1Nk=1Kln(αkN(xiμk,Σk))p(xiΘt)p(xizi=k,Θt)p(zi=kΘt)=i=1Nk=1Kln(αkN(xiμk,Σk))h=1KαhtN(xiμht,Σht)αktN(xiμkt,Σkt)=i=1Nk=1KΥk,itln(αkN(xiμk,Σk))=i=1Nk=1KΥk,it[lnαk+lnN(xiμk,Σk)]
其中
Υ k , i t = α k t N ( x i ∣ μ k t , Σ k t ) ∑ h = 1 K α h t N ( x i ∣ μ h t , Σ h t ) \large \Upsilon_{k,i}^t = \frac{\alpha_k^tN(x_i|\mu_k^t,\Sigma_k^t)}{\sum_{h=1}^K\alpha_h^tN(x_i|\mu_h^t,\Sigma_h^t)} Υk,it=h=1KαhtN(xiμht,Σht)αktN(xiμkt,Σkt)

M-step的推导

M-step就是通过最大化 Q ( Θ , Θ t ) Q(\Theta,\Theta^t) Q(Θ,Θt)得到 Θ t + 1 \Theta^{t+1} Θt+1,下面分三步分别求出 α , μ , Σ \alpha,\mu,\Sigma α,μ,Σ Θ t + 1 \Theta^{t+1} Θt+1的表达式。

一,首先求解 Θ \Theta Θ参数中的 α k \alpha_k αk k = { 1 , 2 , ⋯   , K } k=\{1,2,\cdots,K\} k={1,2,,K},而 α 1 , … , α K \alpha_1,…,\alpha_K α1,,αK 代表的是样本点从每个高斯分布中采样得到的概率,有 ∑ k = 1 K α k = 1 \sum_{k=1}^K \alpha_k= 1 k=1Kαk=1 。求解 Θ \Theta Θ参数中的 α k \alpha_k αk是一个有约束的优化问题,这个优化问题可表述为:
Θ t + 1 = a r g m a x Θ    Q ( Θ , Θ t ) s . t . ∑ k = 1 K α k = 1 \large \Theta^{t+1} =\mathop{argmax}\limits_{\Theta}\;Q(\Theta,\Theta^t)\\ \large s.t. \quad \sum_{k=1}^K \alpha_k=1 Θt+1=ΘargmaxQ(Θ,Θt)s.t.k=1Kαk=1
由于等式约束,因此可以使用拉格朗日乘子解决此优化问题。 定义拉格朗日函数为:
F ( Θ , λ ) = ∑ i = 1 N ∑ k = 1 K Υ k , i t [ l n    α k + l n    N ( x i ∣ μ k , Σ k ) ] + λ ( ∑ k = 1 K α k − 1 ) = ∑ i = 1 N ∑ k = 1 K Υ k , i t l n ( α k ) + ∑ i = 1 N ∑ k = 1 K Υ k , i t l n ( N ( x i ∣ μ k , Σ k ) ) + λ ∑ k = 1 K α k − λ \large \begin{aligned} \large F(\Theta,\lambda) &=\sum_{i=1}^N\sum_{k=1}^K\Upsilon_{k,i}^t[ln\;\alpha_k +ln\;N(x_i|\mu_k,\Sigma_k)]+\lambda(\sum_{k=1}^K \alpha_k-1)\\ &= \sum_{i=1}^N\sum_{k=1}^K\Upsilon_{k,i}^tln(\alpha_k )+\sum_{i=1}^N\sum_{k=1}^K\Upsilon_{k,i}^tln(N(x_i|\mu_k,\Sigma_k))+\lambda\sum_{k=1}^K \alpha_k-\lambda\\ \end{aligned} F(Θ,λ)=i=1Nk=1KΥk,it[lnαk+lnN(xiμk,Σk)]+λ(k=1Kαk1)=i=1Nk=1KΥk,itln(αk)+i=1Nk=1KΥk,itln(N(xiμk,Σk))+λk=1Kαkλ
α k \alpha_k αk求偏导,并令 ∂ F ( Θ , λ ) ∂ α k = 0 \large \frac{\partial F(\Theta,\lambda)}{\partial \alpha_k} = 0 αkF(Θ,λ)=0有:
∂ F ( Θ , λ ) ∂ α k = 1 α k ∑ i = 1 N Υ k , i t + λ = 0 ⟹ α k = − 1 λ ∑ i = 1 N Υ k , i t \large \begin{aligned} \frac{\partial F(\Theta,\lambda)}{\partial \alpha_k} &= \frac{1}{\alpha_k}\sum_{i=1}^N\Upsilon_{k,i}^t+\lambda = 0\\ \Longrightarrow \quad {\alpha_k}&= -\frac{1}{\lambda}\sum_{i=1}^N\Upsilon_{k,i}^t \end{aligned} αkF(Θ,λ)αk=αk1i=1NΥk,it+λ=0=λ1i=1NΥk,it
又由于有约束条件 ∑ h = 1 K α h = 1 \sum_{h=1}^K \alpha_h= 1 h=1Kαh=1,则
1 = ∑ k = 1 K − 1 λ ∑ i = 1 N Υ k , i t ⟹ λ = − ∑ k = 1 K ∑ i = 1 N Υ k , i t = − ∑ i = 1 N ∑ k = 1 K Υ k , i t ⟹ λ = − N ∵ ∑ k = 1 K Υ k , i t = 1 ⟹ α k = 1 N ∑ i = 1 N Υ k , i t \large \begin{aligned} 1 &= \sum_{k=1}^K-\frac{1}{\lambda}\sum_{i=1}^N\Upsilon_{k,i}^t \\ \Longrightarrow \quad \lambda&=-\sum_{k=1}^K\sum_{i=1}^N\Upsilon_{k,i}^t=-\sum_{i=1}^N\sum_{k=1}^K\Upsilon_{k,i}^t\\ \Longrightarrow \quad \lambda&=-N \quad\because\sum_{k=1}^K\Upsilon_{k,i}^t = 1\\ \Longrightarrow \quad {\alpha_k}&= \frac{1}{N}\sum_{i=1}^N\Upsilon_{k,i}^t \end{aligned} 1λλαk=k=1Kλ1i=1NΥk,it=k=1Ki=1NΥk,it=i=1Nk=1KΥk,it=Nk=1KΥk,it=1=N1i=1NΥk,it
二,求解 Θ \Theta Θ参数中高斯分布的均值 μ k \mu_k μk k = { 1 , 2 , ⋯   , K } k=\{1,2,\cdots,K\} k={1,2,,K} μ k \mu_k μk极值可以用 Q ( Θ , Θ t ) Q(\Theta,\Theta^t) Q(Θ,Θt)直接对 μ k \mu_k μk求偏导并令其为0求得。但这里要注意的是,由于 x i ∈ R n x_i\in R^n xiRn,所以 μ k ∈ R n \mu_k\in R^n μkRn,所以这里不是对一个常量求导,而是对一个向量求导(参考网址[4]中有详细的说明)。
∂ Q ( Θ , Θ t ) ∂ μ k = ∂ [ ∑ i = 1 N ∑ k = 1 K Υ k , i t l n    N ( x i ∣ μ k , Σ k ) ] ∂ μ k = ∑ i = 1 N Υ k , i t ∂ [ l n    N ( x i ∣ μ k , Σ k ) ] ∂ μ k = ∑ i = 1 N Υ k , i t ∂ l n    { 1 ( 2 π ) n 2 ∣ Σ k ∣ 1 2 e x p [ − 1 2 ( x i − μ k ) T Σ k − 1 ( x i − μ k ) ] } ∂ μ k = ∑ i = 1 N Υ k , i t Σ k − 1 ( x i − μ k ) ( 参 考 网 址 [ 4 ] 中 有 详 细 的 说 明 ) \large \begin{aligned} \frac{\partial Q(\Theta,\Theta^t)}{\partial \mu_k} &=\frac{\partial[\sum_{i=1}^N\sum_{k=1}^K\Upsilon_{k,i}^tln\;N(x_i|\mu_k,\Sigma_k)]}{\partial \mu_k}\\ &= \sum_{i=1}^N\Upsilon_{k,i}^t\frac{\partial[ln\;N(x_i|\mu_k,\Sigma_k)]}{\partial \mu_k}\\ &=\sum_{i=1}^N\Upsilon_{k,i}^t\frac{\partial ln\;\{\frac{1}{(2\pi)^\frac{n}{2}|\Sigma_k|^\frac{1}{2}}exp[-\frac{1}{2}(x_i-\mu_k)^T\Sigma^{-1}_k(x_i-\mu_k)]\}}{\partial \mu_k}\\ &= \sum_{i=1}^N\Upsilon_{k,i}^t\Sigma^{-1}_k(x_i-\mu_k) \qquad(参考网址[4]中有详细的说明) \end{aligned} μkQ(Θ,Θt)=μk[i=1Nk=1KΥk,itlnN(xiμk,Σk)]=i=1NΥk,itμk[lnN(xiμk,Σk)]=i=1NΥk,itμkln{(2π)2nΣk211exp[21(xiμk)TΣk1(xiμk)]}=i=1NΥk,itΣk1(xiμk)([4])

∂ Q ( Θ , Θ t ) ∂ μ k = 0 \large \frac{\partial Q(\Theta,\Theta^t)}{\partial \mu_k} = 0 μkQ(Θ,Θt)=0有:
0 = ∑ i = 1 N Υ k , i t Σ k − 1 ( x i − μ k ) ⟹ 0 = Σ k − 1 ∑ i = 1 N Υ k , i t ( x i − μ k ) ⟹ Σ k 0 = Σ k Σ k − 1 ∑ i = 1 N Υ k , i t ( x i − μ k ) ⟹ 0 = ∑ i = 1 N Υ k , i t ( x i − μ k ) ⟹ μ k = 1 ∑ i = 1 N Υ k , i t ∑ i = 1 N Υ k , i t x i \large \begin{aligned} 0 &= \sum_{i=1}^N\Upsilon_{k,i}^t\Sigma^{-1}_k(x_i-\mu_k) \\ \Longrightarrow \quad 0 &=\Sigma^{-1}_k\sum_{i=1}^N\Upsilon_{k,i}^t(x_i-\mu_k)\\ \Longrightarrow \quad \Sigma_k 0 &=\Sigma_k\Sigma^{-1}_k\sum_{i=1}^N\Upsilon_{k,i}^t(x_i-\mu_k) \\ \Longrightarrow \quad 0 &=\sum_{i=1}^N\Upsilon_{k,i}^t(x_i-\mu_k) \\ \Longrightarrow \quad \mu_k&= \frac{1}{\sum_{i=1}^N\Upsilon_{k,i}^t}\sum_{i=1}^N\Upsilon_{k,i}^tx_i \end{aligned} 00Σk00μk=i=1NΥk,itΣk1(xiμk)=Σk1i=1NΥk,it(xiμk)=ΣkΣk1i=1NΥk,it(xiμk)=i=1NΥk,it(xiμk)=i=1NΥk,it1i=1NΥk,itxi
三,求解 Θ \Theta Θ参数中高斯分布的协方差矩阵 Σ k \Sigma_k Σk k = { 1 , 2 , ⋯   , K } k=\{1,2,\cdots,K\} k={1,2,,K} Σ k \Sigma_k Σk极值可以用 Q ( Θ , Θ t ) Q(\Theta,\Theta^t) Q(Θ,Θt)直接对 Σ k \Sigma_k Σk求偏导。但这里要注意的是,由于 x i ∈ R n x_i\in R^n xiRn,所以 Σ k ∈ R n × n \Sigma_k\in R^{n\times n} ΣkRn×n,所以这里不是对一个常量求导,而是对一个矩阵求导(参考网址[4]中有详细的说明)。
∂ Q ( Θ , Θ t ) ∂ Σ k = ∂ [ ∑ i = 1 N ∑ k = 1 K Υ k , i t l n    N ( x i ∣ μ k , Σ k ) ] ∂ Σ k = ∑ i = 1 N Υ k , i t ∂ [ l n    N ( x i ∣ μ k , Σ k ) ] ∂ Σ k = ∑ i = 1 N Υ k , i t ∂ l n    { 1 ( 2 π ) n 2 ∣ Σ k ∣ 1 2 e x p [ − 1 2 ( x i − μ k ) T Σ k − 1 ( x i − μ k ) ] } ∂ Σ k = ∑ i = 1 N Υ k , i t ∂ [ − n 2 l n ( 2 π ) − 1 2 l n ∣ Σ k ∣ − 1 2 ( x i − μ k ) T Σ k − 1 ( x i − μ k ) ] ∂ Σ k = ∑ i = 1 N Υ k , i t { − 1 2 ∂ ( l n ∣ Σ k ∣ ) ∂ Σ k − 1 2 ∂ [ ( x i − μ k ) T Σ k − 1 ( x i − μ k ) ] ∂ Σ k } = ∑ i = 1 N Υ k , i t { − 1 2 Σ k − 1 + 1 2 Σ k − 1 [ ( x i − μ k ) ( x i − μ k ) T ] Σ k − 1 } \large \begin{aligned} \frac{\partial Q(\Theta,\Theta^t)}{\partial \Sigma_k} &=\frac{\partial[\sum_{i=1}^N\sum_{k=1}^K\Upsilon_{k,i}^tln\;N(x_i|\mu_k,\Sigma_k)]}{\partial \Sigma_k}\\ &= \sum_{i=1}^N\Upsilon_{k,i}^t\frac{\partial[ln\;N(x_i|\mu_k,\Sigma_k)]}{\partial \Sigma_k}\\ &=\sum_{i=1}^N\Upsilon_{k,i}^t\frac{\partial ln\;\{\frac{1}{(2\pi)^\frac{n}{2}|\Sigma_k|^\frac{1}{2}}exp[-\frac{1}{2}(x_i-\mu_k)^T\Sigma^{-1}_k(x_i-\mu_k)]\}}{\partial \Sigma_k}\\ &=\sum_{i=1}^N\Upsilon_{k,i}^t\frac{\partial[-\frac{n}{2}ln(2\pi) - \frac{1}{2}ln|\Sigma_k| - \frac{1}{2}(x_i-\mu_k)^T\Sigma^{-1}_k(x_i-\mu_k)]}{\partial \Sigma_k} \\ &=\sum_{i=1}^N\Upsilon_{k,i}^t \{-\frac{1}{2}\frac{\partial(ln|\Sigma_k|)}{\partial \Sigma_k} - \frac{1}{2}\frac{\partial[(x_i-\mu_k)^T\Sigma^{-1}_k(x_i-\mu_k)]}{\partial \Sigma_k}\}\\ &= \sum_{i=1}^N\Upsilon_{k,i}^t \{-\frac{1}{2}\Sigma^{-1}_k + \frac{1}{2}\Sigma^{-1}_k[ (x_i-\mu_k)(x_i-\mu_k)^T] \Sigma^{-1}_k\} \end{aligned} ΣkQ(Θ,Θt)=Σk[i=1Nk=1KΥk,itlnN(xiμk,Σk)]=i=1NΥk,itΣk[lnN(xiμk,Σk)]=i=1NΥk,itΣkln{(2π)2nΣk211exp[21(xiμk)TΣk1(xiμk)]}=i=1NΥk,itΣk[2nln(2π)21lnΣk21(xiμk)TΣk1(xiμk)]=i=1NΥk,it{21Σk(lnΣk)21Σk[(xiμk)TΣk1(xiμk)]}=i=1NΥk,it{21Σk1+21Σk1[(xiμk)(xiμk)T]Σk1}
∂ Q ( Θ , Θ t ) ∂ Σ k = 0 \large \frac{\partial Q(\Theta,\Theta^t)}{\partial \Sigma_k} = 0 ΣkQ(Θ,Θt)=0,则有:
0 = ∑ i = 1 N Υ k , i t { − 1 2 Σ k − 1 + 1 2 Σ k − 1 [ ( x i − μ k ) ( x i − μ k ) T ] Σ k − 1 } 0 = − 1 2 ∑ i = 1 N Υ k , i t Σ k − 1 + 1 2 ∑ i = 1 N Υ k , i t Σ k − 1 [ ( x i − μ k ) ( x i − μ k ) T ] Σ k − 1 ∑ i = 1 N Υ k , i t Σ k − 1 = Σ k − 1 ∑ i = 1 N Υ k , i t [ ( x i − μ k ) ( x i − μ k ) T ] Σ k − 1 Σ k ∑ i = 1 N Υ k , i t = ∑ i = 1 N Υ k , i t [ ( x i − μ k ) ( x i − μ k ) T ] ⟹ Σ k = 1 ∑ i = 1 N Υ k , i t ∑ i = 1 N Υ k , i t [ ( x i − μ k ) ( x i − μ k ) T ] \large \begin{aligned} 0 &= \sum_{i=1}^N\Upsilon_{k,i}^t \{-\frac{1}{2}\Sigma^{-1}_k + \frac{1}{2}\Sigma^{-1}_k[ (x_i-\mu_k)(x_i-\mu_k)^T] \Sigma^{-1}_k\}\\ 0 &= -\frac{1}{2}\sum_{i=1}^N\Upsilon_{k,i}^t \Sigma^{-1}_k + \frac{1}{2}\sum_{i=1}^N\Upsilon_{k,i}^t\Sigma^{-1}_k[ (x_i-\mu_k)(x_i-\mu_k)^T] \Sigma^{-1}_k\\ \sum_{i=1}^N\Upsilon_{k,i}^t \Sigma^{-1}_k &= \Sigma^{-1}_k\sum_{i=1}^N\Upsilon_{k,i}^t[ (x_i-\mu_k)(x_i-\mu_k)^T] \Sigma^{-1}_k\\ \Sigma_k \sum_{i=1}^N\Upsilon_{k,i}^t &= \sum_{i=1}^N\Upsilon_{k,i}^t[ (x_i-\mu_k)(x_i-\mu_k)^T] \\ \Longrightarrow \quad \Sigma_k&=\frac{1}{\sum_{i=1}^N\Upsilon_{k,i}^t}\sum_{i=1}^N\Upsilon_{k,i}^t[ (x_i-\mu_k)(x_i-\mu_k)^T] \end{aligned} 00i=1NΥk,itΣk1Σki=1NΥk,itΣk=i=1NΥk,it{21Σk1+21Σk1[(xiμk)(xiμk)T]Σk1}=21i=1NΥk,itΣk1+21i=1NΥk,itΣk1[(xiμk)(xiμk)T]Σk1=Σk1i=1NΥk,it[(xiμk)(xiμk)T]Σk1=i=1NΥk,it[(xiμk)(xiμk)T]=i=1NΥk,it1i=1NΥk,it[(xiμk)(xiμk)T]
我们已经解决了所有参数,即已经求出了M-step最大化 Q ( Θ , Θ t ) Q(\Theta,\Theta^t) Q(Θ,Θt)得到 Θ t + 1 \Theta^{t+1} Θt+1所有参数的表达式!

参考网址

[1] Introduction to Mixture Models https://stephens999.github.io/fiveMinuteStats/intro_to_mixture_models.html

[2] Introduction to EM: Gaussian Mixture Models https://stephens999.github.io/fiveMinuteStats/intro_to_em.html

[3] Gaussian mixture modelshttps://mbernste.github.io/posts/gmm_em/

[4] 高斯分布的相关知识_https://blog.csdn.net/BryantDaiJB/article/details/123346435

[5] 如何感性地理解EM算法?https://zhuanlan.zhihu.com/p/102275054

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值