混合高斯模型:Gaussian Mixture Model

本文详细介绍了混合高斯模型(GMM)及其参数估计方法——期望最大化(EM)算法。包括GMM的概率分布形式、EM算法的步骤及推导过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GMM


定义

(混合高斯模型) 高斯混合模型的概率分布模型形如:
P(y∣θ)=∑i=1Kαkϕ(y∣θk)P(y\mid \theta) = \sum_{i =1 }^K \alpha_k \phi(y \mid \theta_k)P(yθ)=i=1Kαkϕ(yθk)
其中,αk\alpha_kαk为系数,且αk≥0\alpha_k\ge 0αk0 ,∑i=1Kαk=1\sum_{i =1 }^{K} {\alpha_k}=1i=1Kαk=1 ;ϕ(y∣θk)\phi(y \mid \theta_k)ϕ(yθk)是第kkk个高斯分布密度分模型,θk=(μk,σk2)\theta_k = (\mu_k,\sigma_k^2)θk=(μk,σk2)
ϕ(y∣θk)=12πσkexp⁡(−(y−μk)22σk2)\phi(y \mid \theta_k) = \frac{1}{\sqrt{2 \pi}\sigma_k}\exp\left({-\frac{(y-\mu_k)^2}{2\sigma_k^2}}\right)ϕ(yθk)=2πσk1exp(2σk2(yμk)2)


模型参数估计—EM求解

假设观测数据y1,y2,⋯ ,yny_1,y_2,\cdots,y_ny1,y2,,yn由高斯混合模型生成,即P(y∣θ)=∑i=1Kαkϕ(y∣θk)P(y\mid \theta) = \sum_{i =1 }^K \alpha_k \phi(y \mid \theta_k)P(yθ)=i=1Kαkϕ(yθk),其中的参数θ=(α1,⋯ ,αk;θ1,⋯ ,θk)\theta = (\alpha_1,\cdots,\alpha_k;\theta_1,\cdots,\theta_k)θ=(α1,,αk;θ1,,θk)

1、确定隐含变量,写出完全数据的对数似然函数
在混合高斯模型中存在多个分模型,观测变量的观测值并不知道是由哪一个模型生成的,因此可以假设隐变量γjk\gamma_{jk}γjk,其定义为:
γjk={1,  第i个观测值由第k个分模型产生0,  otherwise \gamma_{jk}=\left \{ \begin{array}{} 1,\;第i个观测值由第k个分模型产生\\ 0,\;otherwise\\ \end{array} \right. γjk={1,ik0,otherwise
由此,完全数据为(yj,γj1,⋯ ,γjK)(y_j,\gamma_{j1},\cdots,\gamma_{jK})(yj,γj1,,γjK),可以得到完全数据的似然函数:
P(y,γ∣θ)=L(θ)=∏j=1nP(y1,γj1,⋯ ,γjK∣θ)=∏j=1n(γjk∑i=1Kαkϕ(yj∣θk))=∏j=1n(∏i=1K(αkϕ(yj∣θk))γjk)=∏j=1n∏i=1K(αkϕ(yj∣θk))γjk=∏j=1n∏i=1K(αk12πσkexp⁡(−(yj−μk)22σk2))γjk \begin{aligned} P(y,\gamma \mid \theta) &= L(\theta)\\ &=\prod_{j=1}^n P(y_1,\gamma_{j1},\cdots,\gamma_{jK}\mid \theta)\\ &=\prod_{j=1}^n (\gamma_{jk}\sum_{i =1 }^K \alpha_k \phi(y_j \mid \theta_k))\\ &=\prod_{j=1}^n \left(\prod_{i =1 }^K \left(\alpha_k \phi(y_j \mid \theta_k)\right)^{\gamma_{jk}}\right)\\ &=\prod_{j=1}^n \prod_{i =1 }^K \left(\alpha_k \phi(y_j \mid \theta_k)\right)^{\gamma_{jk}}\\ &=\prod_{j=1}^n \prod_{i =1 }^K \left(\alpha_k \frac{1}{\sqrt{2 \pi}\sigma_k}\exp\left({-\frac{(y_j-\mu_k)^2}{2\sigma_k^2}}\right)\right)^{\gamma_{jk}}\\ \end{aligned} P(y,γθ)=L(θ)=j=1nP(y1,γj1,,γjKθ)=j=1n(γjki=1Kαkϕ(yjθk))=j=1n(i=1K(αkϕ(yjθk))γjk)=j=1ni=1K(αkϕ(yjθk))γjk=j=1ni=1K(αk2πσk1exp(2σk2(yjμk)2))γjk
那么完全数据的对数似然函数为:
log⁡P(y,γ∣θ)=ℓ(θ)=∑i=1K∑j=1nlog⁡(αk12πσkexp⁡(−(yj−μk)22σk2))γjk=∑i=1K∑j=1nγjklog⁡(αk12πσkexp⁡(−(yj−μk)22σk2))=∑i=1K∑j=1nγjklog⁡αk+∑i=1K∑j=1nγjklog⁡(12πσkexp⁡(−(yj−μk)22σk2))=∑i=1Klog⁡αk∑j=1nγjk+∑i=1K∑j=1nγjklog⁡(12πσkexp⁡(−(yj−μk)22σk2))=∑i=1Klog⁡αk∑j=1nγjk+∑i=1K∑j=1nγjk[log⁡12π−log⁡σk+(−(yj−μk)22σk2)] \begin{aligned} \log P(y,\gamma \mid \theta) &= \ell (\theta)\\ &=\sum_{i=1}^K \sum_{j=1}^n \log \left(\alpha_k \frac{1}{\sqrt{2 \pi}\sigma_k}\exp\left({-\frac{(y_j-\mu_k)^2}{2\sigma_k^2}}\right)\right)^{\gamma_{jk}}\\ &=\sum_{i=1}^K\sum_{j=1}^n {\gamma_{jk}}\log \left(\alpha_k \frac{1}{\sqrt{2 \pi}\sigma_k}\exp\left({-\frac{(y_j-\mu_k)^2}{2\sigma_k^2}}\right)\right)\\ &=\sum_{i=1}^K\sum_{j=1}^n {\gamma_{jk}}\log \alpha_k +\sum_{i=1}^K\sum_{j=1}^n {\gamma_{jk}}\log \left(\frac{1}{\sqrt{2 \pi}\sigma_k}\exp\left({-\frac{(y_j-\mu_k)^2}{2\sigma_k^2}}\right)\right)\\ &=\sum_{i=1}^K\log \alpha_k\sum_{j=1}^n {\gamma_{jk}} +\sum_{i=1}^K\sum_{j=1}^n {\gamma_{jk}}\log \left(\frac{1}{\sqrt{2 \pi}\sigma_k}\exp\left({-\frac{(y_j-\mu_k)^2}{2\sigma_k^2}}\right)\right)\\ &=\sum_{i=1}^K\log \alpha_k\sum_{j=1}^n {\gamma_{jk}} +\sum_{i=1}^K\sum_{j=1}^n {\gamma_{jk}}\left [ \log\frac{1}{\sqrt{2 \pi}}-\log\sigma_k+\left({-\frac{(y_j-\mu_k)^2}{2\sigma_k^2}}\right)\right]\\ \end{aligned} logP(y,γθ)=(θ)=i=1Kj=1nlog(αk2πσk1exp(2σk2(yjμk)2))γjk=i=1Kj=1nγjklog(αk2πσk1exp(2σk2(yjμk)2))=i=1Kj=1nγjklogαk+i=1Kj=1nγjklog(2πσk1exp(2σk2(yjμk)2))=i=1Klogαkj=1nγjk+i=1Kj=1nγjklog(2πσk1exp(2σk2(yjμk)2))=i=1Klogαkj=1nγjk+i=1Kj=1nγjk[log2π1logσk+(2σk2(yjμk)2)]

2、E步:确定Q函数
Q(θ,θ(i))=E[log⁡P(y,γ∣θ)∣y,θ(i)]=E{∑i=1Klog⁡αk∑j=1nγjk+∑i=1K∑j=1nγjk[log⁡12π−log⁡σk+(−(yj−μk)22σk2)]}=∑i=1K{log⁡αk∑j=1nEγjk+∑j=1nEγjk[log⁡12π−log⁡σk+(−(yj−μk)22σk2)]} \begin{aligned} Q(\theta,\theta^{(i)}) &=E[ \log P(y,\gamma \mid \theta)\mid y,\theta^{(i)} ]\\ &=E\left\{\sum_{i=1}^K\log \alpha_k\sum_{j=1}^n {\gamma_{jk}} +\sum_{i=1}^K\sum_{j=1}^n {\gamma_{jk}}\left [ \log\frac{1}{\sqrt{2 \pi}}-\log\sigma_k+\left({-\frac{(y_j-\mu_k)^2}{2\sigma_k^2}}\right)\right]\right\}\\ &=\sum_{i=1}^K\left\{\log \alpha_k\sum_{j=1}^n {E\gamma_{jk}} +\sum_{j=1}^n {E\gamma_{jk}}\left [ \log\frac{1}{\sqrt{2 \pi}}-\log\sigma_k+\left({-\frac{(y_j-\mu_k)^2}{2\sigma_k^2}}\right)\right]\right\}\\ \end{aligned} Q(θ,θ(i))=E[logP(y,γθ)y,θ(i)]=E{i=1Klogαkj=1nγjk+i=1Kj=1nγjk[log2π1logσk+(2σk2(yjμk)2)]}=i=1K{logαkj=1nEγjk+j=1nEγjk[log2π1logσk+(2σk2(yjμk)2)]}
γ^jk=E(γjk∣y,θ)\hat \gamma_{jk}= E(\gamma_{jk}\mid y,\theta)γ^jk=E(γjky,θ)则:
γ^jk=1⋅P(γjk=1∣y,θ)+0⋅P(γjk=0∣y,θ)=P(γjk=1,yj∣θ)1=P(γjk=1,yj∣θ)∑k=1KP(γjk=1,yj∣θ)=P(yj∣γjk=1,θ)P(γjk=1∣θ)∑k=1KP(yj∣γjk=1,θ)P(γjk=1∣θ)=αkϕ(yj∣θk)∑k=1Kαkϕ(yj∣θk) \begin{aligned} \hat \gamma_{jk} &= 1\cdot P(\gamma_{jk} = 1 \mid y,\theta)+ 0\cdot P(\gamma_{jk} = 0 \mid y,\theta)\\ &=\frac {P(\gamma_{jk} = 1 ,y_j\mid \theta)}{1}\\ &=\frac {P(\gamma_{jk} = 1 ,y_j\mid \theta)}{\sum_{k=1}^KP(\gamma_{jk} = 1 ,y_j\mid \theta)}\\ &=\frac {P(y_j\mid \gamma_{jk} = 1 ,\theta)P(\gamma_{jk} = 1\mid \theta)}{\sum_{k=1}^KP(y_j\mid \gamma_{jk} = 1 ,\theta)P(\gamma_{jk} = 1\mid \theta)}\\ &=\frac{\alpha_k \phi(y_j\mid \theta_{k})}{\sum_{k=1}^K\alpha_k \phi(y_j\mid \theta_{k})}\\ \end{aligned} γ^jk=1P(γjk=1y,θ)+0P(γjk=0y,θ)=1P(γjk=1,yjθ)=k=1KP(γjk=1,yjθ)P(γjk=1,yjθ)=k=1KP(yjγjk=1,θ)P(γjk=1θ)P(yjγjk=1,θ)P(γjk=1θ)=k=1Kαkϕ(yjθk)αkϕ(yjθk)
γ^jk\hat \gamma_{jk}γ^jk是在当前模型下第jjj个观测数据来自第kkk个分模型的概率,成为分模型kkk对观测数据yjy_jyj的响应度。

3、M步
迭代中的M步是求函数Q(θ,θ(i))Q(\theta, \theta^{(i)})Q(θ,θ(i))θ\thetaθ的极大值,即:
θ(i+1)=arg⁡max⁡θ  Q(θ,θ(i))\theta^{(i+1)} =\arg \underset{\theta}{\max} \; Q(\theta,\theta^{(i)})θ(i+1)=argθmaxQ(θ,θ(i))
依据QQQ函数对各个参数(μk,σk2,αk\mu_k,\sigma_k^2,\alpha_kμk,σk2,αk)求偏导并置其为0得到新的参数为:
μ^k=∑j=1nγ^jkyj∑j=1nγ^jkσ^k2=∑j=1nγ^jk(yj−μk)2∑j=1nγ^jkα^k=∑j=1nγ^jkn\begin{aligned} \hat \mu_k &= \frac{\sum_{j=1}^n \hat \gamma_{jk}y_j}{\sum_{j=1}^n\hat \gamma_{jk}}\\ \hat \sigma_k^2 &= \frac{\sum_{j=1}^n \hat \gamma_{jk}(y_j-\mu_k)^2}{\sum_{j=1}^n\hat \gamma_{jk}}\\ \hat \alpha_k &= \frac{\sum_{j=1}^n \hat \gamma_{jk}}{n}\\ \end{aligned}μ^kσ^k2α^k=j=1nγ^jkj=1nγ^jkyj=j=1nγ^jkj=1nγ^jk(yjμk)2=nj=1nγ^jk

4、重复迭代,直到参数收敛即可。

算法流程
输入:观测数据YYY,高斯混合模型;
输出:高斯混合模型参数
(1)为参数赋予初值;
(2)E步,计算分模型对观测数据的响应度;
(3)M步,计算新一轮的迭代模型参数;
(4)重复(2)(3)步,直到模型参数收敛。


推广

EM算法可以解释为F函数的极大-极大算法,可以推广为广义期望极大算法(GEM)。


Reference:

[1]李航:《统计学习方法》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值