EM算法求解高斯混合模型参数公式推导

高斯混合模型介绍

高斯混合模型(Gaussian Mixture Model,简称GMM)是一种经典的概率模型,被广泛应用于数据挖掘、模式识别和机器学习等领域。它采用多个高斯分布组合来对数据进行建模,每个高斯分布对应于数据中的一个子群体。GMM的核心思想是通过组合多个高斯分布来更准确地表达数据的概率分布。
高斯混合模型(GMM)是一种常用的概率模型,可以用于聚类分析、密度估计、特征生成和缺失数据填充等问题。它能将数据集分成多个聚类簇,估计数据点从多个高斯分布中生成的概率密度,生成与原始数据具有相似特征的样本,并填充缺失数据。使用GMM需要根据具体问题进行模型参数设置和算法调优。

高斯混合模型应用广泛,在许多情况下, EM算法是学习高斯混合模型 (Gaussian mixture model) 的有效方法。
高斯混合模型

高斯模型数学定义

高斯混合模型是指具有如下形式的概率分布模型:
P ( y ∣ θ ) = ∑ k = 1 K α k ϕ ( y ∣ θ k ) P(y \mid \theta)=\sum_{k=1}^K \alpha_k \phi\left(y \mid \theta_k\right) P(yθ)=k=1Kαkϕ(yθk)

其中, a k a_k ak 是系数, α k ⩾ 0 , ∑ k = 1 K α k = 1 ; ϕ ( y ∣ θ k ) \alpha_k \geqslant 0, \sum_{k=1}^K \alpha_k=1 ; \phi\left(y \mid \theta_k\right) αk0,k=1Kαk=1;ϕ(yθk) 是高斯分布密度, θ k = ( μ k , σ k 2 ) \theta_k=\left(\mu_k, \sigma_k^2\right) θk=(μk,σk2),
ϕ ( y ∣ θ k ) = 1 2 π σ k exp ⁡ ( − ( y − μ k ) 2 2 σ k 2 ) \phi\left(y \mid \theta_k\right)=\frac{1}{\sqrt{2 \pi} \sigma_k} \exp \left(-\frac{\left(y-\mu_k\right)^2}{2 \sigma_k^2}\right) ϕ(yθk)=2π σk1exp(2σk2(yμk)2)

称为第 k k k 个分模型。

假设观测数据 y 1 , y 2 , ⋯   , y N y_1, y_2, \cdots, y_N y1,y2,,yN 由高斯混合模型生成,
P ( y ∣ θ ) = ∑ k = 1 K α k ϕ ( y ∣ θ k ) P(y \mid \theta)=\sum_{k=1}^K \alpha_k \phi\left(y \mid \theta_k\right) P(yθ)=k=1Kαkϕ(yθk)
其中, θ = ( α 1 , α 2 , ⋯   , α K ; θ 1 , θ 2 , ⋯   , θ K ) \theta=\left(\alpha_1, \alpha_2, \cdots, \alpha_K ; \theta_1, \theta_2, \cdots, \theta_K\right) θ=(α1,α2,,αK;θ1,θ2,,θK), 我们学习这个模型,即目标就是用 EM算法估计高斯混合模型的参数 θ 。  \theta_{\text {。 }} θ 

高斯混合模型求解过程

明确隐变量,写出完全数据的对数似然函数

可以设想观测数据 y j , j = 1 , 2 , … … , N y_j,j=1,2,……,N yj,j=1,2,……,N,是这样产生的:首先依据概率 α k \alpha_k αk选择第 k k k个高斯分布模型 ϕ ( y ∣ θ k ) \phi\left(y \mid \theta_k\right) ϕ(yθk),然后依据第 k k k个模型的概率分布生成观测数据 y j y_j yj 。这时观测数据 y j , j = 1 , 2 , . . . , N y_j,j=1,2,...,N yj,j=1,2,...,N,是已知的,反映观测数据 y j y_j yj来自第 k k k个分模型的数据是未知的, k = 1 , 2 , . . . , K k=1,2,...,K k=1,2,...,K,以隐变量 γ j k \gamma_{j k} γjk表示,其定义如下:
γ j k = { 1 , 第 j 个观测来自第 k 个分模型  0 ,  否则  j = 1 , 2 , ⋯   , N ; k = 1 , 2 , ⋯   , K \begin{aligned} & \gamma_{j k}=\left\{\begin{array}{l} 1, \quad \text {第} j \text {个观测来自第} k \text {个分模型 } \\ 0, \text { 否则 } \end{array}\right. \\ & j=1,2, \cdots, N ; \quad k=1,2, \cdots, K \end{aligned} γjk={1,j个观测来自第k个分模型 0, 否则 j=1,2,,N;k=1,2,,K
γ j k \gamma_{j k} γjk 是 0-1 随机变量。
有了观测数据 y j y_j yj 及末观测数据 γ j k \gamma_{j k} γjk, 那么完全数据是
( y j , γ j 1 , γ j 2 , ⋯   , γ j K ) , j = 1 , 2 , ⋯   , N \left(y_j, \gamma_{j 1}, \gamma_{j 2}, \cdots, \gamma_{j K}\right), \quad j=1,2, \cdots, N (yj,γj1,γj2,,γjK),j=1,2,,N

于是,可以写出完全数据的似然函数:
P ( y , γ ∣ θ ) = ∏ j = 1 N P ( y j , γ j 1 , γ j 2 , ⋯   , γ j K ∣ θ ) = ∏ k = 1 K ∏ j = 1 N [ α k ϕ ( y j ∣ θ k ) ] γ j k = ∏ k = 1 K α k n k ∏ j = 1 N [ ϕ ( y j ∣ θ k ) ] γ j k = ∏ k = 1 K α k n k ∏ j = 1 N [ 1 2 π σ k exp ⁡ ( − ( y j − μ k ) 2 2 σ k 2 ) ] γ j k  式中,  n k = ∑ j = 1 N γ j k , ∑ k = 1 K n k = N \begin{aligned} & P(y, \gamma \mid \theta)=\prod_{j=1}^N P\left(y_j, \gamma_{j 1}, \gamma_{j 2}, \cdots, \gamma_{j K} \mid \theta\right) \\ &=\prod_{k=1}^K \prod_{j=1}^N\left[\alpha_k \phi\left(y_j \mid \theta_k\right)\right]^{\gamma_{j k}} \\ &=\prod_{k=1}^K \alpha_k^{n_k} \prod_{j=1}^N\left[\phi\left(y_j \mid \theta_k\right)\right]^{\gamma_{j k}} \\ &=\prod_{k=1}^K \alpha_k^{n_k} \prod_{j=1}^N\left[\frac{1}{\sqrt{2 \pi} \sigma_k} \exp \left(-\frac{\left(y_j-\mu_k\right)^2}{2 \sigma_k^2}\right)\right]^{\gamma_{j k}} \\ & \text { 式中, } n_k=\sum_{j=1}^N \gamma_{j k}, \sum_{k=1}^K n_k=N \end{aligned} P(y,γθ)=j=1NP(yj,γj1,γj2,,γjKθ)=k=1Kj=1N[αkϕ(yjθk)]γjk=k=1Kαknkj=1N[ϕ(yjθk)]γjk=k=1Kαknkj=1N[2π σk1exp(2σk2(yjμk)2)]γjk 式中nk=j=1Nγjk,k=1Knk=N

那么, 完全数据的对数似然函数为
log ⁡ P ( y , γ ∣ θ ) = ∑ k = 1 K { n k log ⁡ a k + ∑ j = 1 N γ j k [ log ⁡ ( 1 2 π ) − log ⁡ a k − 1 2 σ k 2 . ( y j − μ k ) 2 ] } \begin{aligned} \log P(y, \gamma \mid \theta)= & \sum_{k=1}^K\left\{n_k \log a_k+\sum_{j=1}^N \gamma_{j k}\left[\log \left(\frac{1}{\sqrt{2 \pi}}\right)-\log a_k-\frac{1}{2 {\sigma}_k^2} .\right.\right. \left.\left.\left(y_j-\mu_k\right)^2\right]\right\} \end{aligned} logP(y,γθ)=k=1K{nklogak+j=1Nγjk[log(2π 1)logak2σk21.(yjμk)2]}

EM算法E步,写出Q函数

Q ( θ , θ ( i ) ) = E [ log ⁡ p ( y , γ ∣ θ ) ∣ y , θ ( i ) ] = E { ∑ k = 1 K { n k log ⁡ a k + ∑ j = 1 N γ j k [ log ⁡ ( 1 2 π ) − log ⁡ σ k − 1 2 σ k 2 ( y j − μ k ) 2 ] } } = ∑ k = 1 K { ∑ j = 1 N ( E γ j k ) log ⁡ a k + ∑ j = 1 N ( E γ j k ) [ log ⁡ ( 1 2 π ) − log ⁡ σ k − 1 2 σ k 2 ( y j − μ k ) 2 ] } \begin{aligned} \mathbb{Q}\left(\theta, \theta^{(i)}\right) & =E\left[\log p(y, \gamma \mid \theta) \mid y, \theta^{(i)}\right] \\ & =E\left\{\sum _ { k = 1 } ^ { K } \left\{n_k \log a_k+\sum_{j=1}^N \gamma_{j k}\left[\log \left(\frac{1}{\sqrt{2 \pi}}\right)-\log \sigma_k-\frac{1}{2 \sigma_k^2} \left(y_j-\mu_k\right)^2 \right] \right \} \right \}\\ & =\sum_{k=1}^K\left\{\sum_{j=1}^N\left(E_{\gamma_{j k}}\right) \log a_k+\sum_{j=1}^N\left(E_{\gamma_{j k}}\right)\left[\log \left(\frac{1}{\sqrt{2 \pi}}\right)-\log \sigma_k-\frac{1}{2 \sigma_k^2} \left(y_j-\mu_k\right)^2\right]\right\} \end{aligned} Q(θ,θ(i))=E[logp(y,γθ)y,θ(i)]=E{k=1K{nklogak+j=1Nγjk[log(2π 1)logσk2σk21(yjμk)2]}}=k=1K{j=1N(Eγjk)logak+j=1N(Eγjk)[log(2π 1)logσk2σk21(yjμk)2]}
这里我们先令
γ ^ j k = E γ j k , n k = ∑ j = 1 N E γ k j \begin{aligned} & \hat{\gamma}_{j k}=E_{\gamma_{j k}}, n_k=\sum_{j=1}^N E_{\gamma_{k j}} \end{aligned} γ^jk=Eγjk,nk=j=1NEγkj

这里针对 E γ j k E_{\gamma_{j k}} Eγjk的计算进行推导如下:
γ ^ j k = E ( γ j k ∣ y , θ ) = 1 ⋅ P ( γ j k = 1 ∣ y , θ ) + 0 ⋅ P ( γ j k = 0 ∣ y , θ ) = P ( Y j k = 1 , y , θ ) P ( y , θ ) 上下同时除以 P ( θ ) = P ( Y j k = 1 , y , θ ) / P ( θ ) P ( y , θ ) / P ( θ ) = P ( γ j k = 1 , y ∣ θ ) P ( y ∣ θ ) \begin{aligned} \hat{\gamma}_{j k} & =E\left(\gamma_{j k} \mid y, \theta\right)=1 \cdot P\left(\gamma_{j k}=1 \mid y, \theta\right) +0 \cdot P\left(\gamma_{j k}=0 \mid y, \theta\right) \\ & =\frac{P\left(Y_{j k}=1, y, \theta\right) }{P(y, \theta) } \\ &上下同时除以P(\theta)\\ & =\frac{P\left(Y_{j k}=1, y, \theta\right) / P(\theta)}{P(y, \theta) / P(\theta)} \\ & =\frac{P\left(\gamma_{j k}=1, y \mid \theta\right)}{P(y \mid \theta)} \end{aligned} γ^jk=E(γjky,θ)=1P(γjk=1y,θ)+0P(γjk=0y,θ)=P(y,θ)P(Yjk=1,y,θ)上下同时除以P(θ)=P(y,θ)/P(θ)P(Yjk=1,y,θ)/P(θ)=P(yθ)P(γjk=1,yθ)
这里利用边缘概率公式对分母进行分解
= P ( γ j k = 1 , y ∣ θ ) ∑ k p ( γ j k = 1 , y ∣ θ ) = P ( y j ∣ θ , γ j k = 1 ) ⋅ p ( γ j k = 1 ∣ θ ) ∑ k p ( y j ∣ θ , γ j k = 1 ) ⋅ p ( γ j k = 1 ∣ θ ) = a k ϕ ( y ∣ θ ) ∑ a k ϕ ( y ∣ θ ) \begin{aligned} & =\frac{P\left(\gamma_{j k}=1, y \mid \theta\right)}{\sum_k p\left(\gamma_{j k}=1, y \mid \theta\right)} \\ & =\frac{P\left(y_j \mid \theta , \gamma_{j k}=1\right) \cdot p\left(\gamma_{j k}=1 \mid \theta\right)}{\sum_k p\left(y_j \mid \theta , \gamma_{j k}=1\right) \cdot p\left(\gamma_{j k}=1 \mid \theta\right)} \\ & =\frac{a_k \phi(y \mid \theta)}{\sum a_k \phi(y \mid \theta)} \end{aligned} =kp(γjk=1,yθ)P(γjk=1,yθ)=kp(yjθ,γjk=1)p(γjk=1θ)P(yjθ,γjk=1)p(γjk=1θ)=akϕ(yθ)akϕ(yθ)

E γ j k E_{\gamma_{j k}} Eγjk n k n_k nk代入得
Q ( θ , θ ( i ) ) = ∑ k = 1 K { n k log ⁡ a k + ∑ j = 1 N γ ^ j k [ log ⁡ ( 1 2 π ) . − log ⁡ σ k − 1 2 σ k 2 ( y j − μ k ) 2 ] } \begin{aligned} Q\left(\theta, \theta^{(i)}\right)=\sum_{k=1}^K \left\{ n _ { k } \log a_k+\sum_{j=1}^N \hat{\gamma}_{j k}\left[\log \left(\frac{1}{\sqrt{2 \pi}}\right)\right.\right.. \left.\left.-\log \sigma_k-\frac{1}{2 \sigma_k^2}\left(y_j-\mu_k\right)^2\right]\right\} \end{aligned} Q(θ,θ(i))=k=1K{nklogak+j=1Nγ^jk[log(2π 1).logσk2σk21(yjμk)2]}

EM算法M步

迭代的M步是求函数 Q ( θ , θ ( i ) ) Q(\theta,\theta ^{(i)}) Q(θ,θ(i)) θ \theta θ的极大值,即新一轮迭代的参数:
θ ( i + 1 ) = arg ⁡ max ⁡ θ Q ( θ , θ ( i ) ) \theta^{(i+1)}=\arg \max _\theta Q\left(\theta, \theta^{(i)}\right) θ(i+1)=argθmaxQ(θ,θ(i))
分别对 Q Q Q函数的三个参数 μ ^ k 、 σ k 2 、 α ^ k \hat{\mu}_k 、\sigma_k^2、\hat{\alpha}_k μ^kσk2α^k求偏导并令其等于0,解得三个参数的表达式:
μ ^ k = ∑ j = 1 N γ j k y j ∑ j = 1 N γ j k , k = 1 , 2 , … , K σ k 2 = ∑ j = 1 N γ j k ( y j − μ k ) 2 ∑ j = 1 N γ ^ j k , k = 1 , 2 , ⋯   , K α ^ k = n k N = ∑ j = 1 N γ j k N , k = 1 , 2 , ⋯   , K \begin{gathered} \hat{\mu}_k=\frac{\sum_{j=1}^N \gamma_{j k} y_j}{\sum_{j=1}^N \gamma_{j k}}, k=1,2, \ldots, K \\ \sigma_k^2=\frac{\sum_{j=1}^N \gamma_{j k}\left(y_j-\mu_k\right)^2}{\sum_{j=1}^N \hat{\gamma}_{j k}}, \quad k=1,2, \cdots, K \\ \hat{\alpha}_k=\frac{n_k}{N}=\frac{\sum_{j=1}^N \gamma_{j k}}{N}, \quad k=1,2, \cdots, K \end{gathered} μ^k=j=1Nγjkj=1Nγjkyj,k=1,2,,Kσk2=j=1Nγ^jkj=1Nγjk(yjμk)2,k=1,2,,Kα^k=Nnk=Nj=1Nγjk,k=1,2,,K

其中 γ j k \gamma_{j k} γjk n k n_k nk的计算方法在前面E步中给出,即 γ j k = a k ϕ ( y ∣ θ ) ∑ a k ϕ ( y ∣ θ ) \gamma_{j k}=\frac{a_k \phi(y \mid \theta)}{\sum a_k \phi(y \mid \theta)} γjk=akϕ(yθ)akϕ(yθ) n k = ∑ j = 1 N γ k j n_k=\sum_{j=1}^N \gamma_{k j} nk=j=1Nγkj

求得的参数进入下一轮迭代,重复计算指导似然函数值不再有明显变化为止。
以上为高斯混合模型的EM算法全部内容,更多EM算法相关内容可查看文末参考资料进行了解,感谢您的阅读。

参考资料

[1].EM算法Q函数推导过程详解
[2].EM算法求解三硬币模型参数推导

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值