EM算法在高斯混合模型中的应用(详细解释与求解)

1、高斯混合模型GMM

是指具有以下概率分布的模型:

P ( y ∣ θ ) = ∑ k = 1 K α k ϕ ( y ∣ θ k ) P(y|\theta)=\sum\limits_{k=1}^{K}\alpha_k\phi(y|\theta_k) P(yθ)=k=1Kαkϕ(yθk)

可以看做是 K K K个单高斯模型的线性组合,其中 α k \alpha_k αk是第 k k k个单高斯模型的 ϕ ( y ∣ θ k ) = 1 2 π σ k e x p ( − ( x − μ k ) 2 2 σ k 2 ) \phi(y|\theta_k)=\frac{1}{\sqrt{2\pi}\sigma_k}exp(-\frac{(x-\mu_k)^2}{2\sigma_k^2}) ϕ(yθk)=2π σk1exp(2σk2(xμk)2)(模型参数 θ k = ( μ k , σ k ) \theta_k=(\mu_k,\sigma_k) θk=(μk,σk))的系数,可以认作是权重,满足 ∑ k = 1 K α k = 1 \sum\limits_{k=1}^{K}\alpha_k=1 k=1Kαk=1

2、EM算法应用于GMM

首先介绍EM算法步骤:

具体内容参考EM算法比较

假设观测序列 y 1 , y 2 , . . . , y n y_1,y_2,...,y_n y1,y2,...,yn 产自以上混合高斯模型,对于某个观测值 y i y_i yi可以认为是依概率 α k \alpha_k αk选择了第 k k k个分模型 ϕ ( y ∣ θ k ) \phi(y|\theta_k) ϕ(yθk)。我们做以下标记:

如果 y i y_i yi来自第 k k k个模型,那么 γ i k = 1 \gamma_{ik}=1 γik=1,否则 γ i k = 0 \gamma_{ik}=0 γik=0

这个 γ i k \gamma_{ik} γik也就是隐变量了,因为我们只知道 y i y_i yi而不知道它来自哪个模型。
补充:或者这样理解 p ( z j = k ∣ y j ; θ k ) p(z_j=k|y_j;\theta_k) p(zj=kyj;θk),同样是给出了样本 y j y_j yj由第 k k k个分模型产生的后验概率。等价于 P ( γ j k = 1 ∣ y j , θ k ) P(\gamma_{jk}=1|y_j,\theta_k) P(γjk=1yj,θk)。所以对前者求期望和对后者求期望是一样的,接下来使用的是后者(或许前者更容易理解)。

根据EM算法的E步:假设模型参数已知的情况下求隐含变量Z分别取z1,z2,…的期望,亦即Z分别取z1,z2,…的概率

w j k = E ( γ j k ∣ y j , θ k ) = P ( γ j k = 1 ∣ y j , θ k ) = P ( γ j k = 1 , y j ∣ θ k ) ∑ k = 1 K P ( y j ∣ γ j k = 1 , θ k ) P ( γ j k = 1 ∣ θ k ) = P ( y j ∣ γ j k = 1 , θ k ) P ( γ j k = 1 ∣ θ k ) ∑ k = 1 K P ( y j ∣ γ j k = 1 , θ k ) P ( γ j k = 1 ∣ θ k ) = α k ϕ ( y j ∣ θ k ) ∑ k = 1 K α k ϕ ( y j ∣ θ k ) w_{jk}\\=E(\gamma_{jk}|y_j,\theta_k)\\=P(\gamma_{jk}=1|y_j,\theta_k)\\=\frac{P(\gamma_{jk}=1,y_j|\theta_k)}{\sum\limits_{k=1}^{K}P(y_j|\gamma_{jk}=1,\theta_k)P(\gamma_{jk}=1|\theta_k)}\\=\frac{P(y_j|\gamma_{jk}=1,\theta_k)P(\gamma_{jk}=1|\theta_k)}{\sum\limits_{k=1}^{K}P(y_j|\gamma_{jk}=1,\theta_k)P(\gamma_{jk}=1|\theta_k)}\\=\frac{\alpha_k\phi(y_j|\theta_k)}{\sum\limits_{k=1}^{K}\alpha_k\phi(y_j|\theta_k)} wjk=E(γjkyj,θk)=P(γjk=1yj,θk)=k=1KP(yjγjk=1,θk)P(γjk=1θk)P(γjk=1,yjθk)=k=1KP(yjγjk=1,θk)P(γjk=1θk)P(yjγjk=1,θk)P(γjk=1θk)=k=1Kαkϕ(yjθk)αkϕ(yjθk)

w j k w_{jk} wjk表示在当前模型下, y j y_j yj来自模型第 k k k个模型的概率,如果 j = 1 − > 4 j=1->4 j=1>4 k = 1 − > 3 k=1->3 k=1>3那么就得计算12次,对于每个 j j j,分别求 w j 1 , w j 2 , w j 3 w_{j1},w_{j2},w_{j3} wj1,wj2,wj3,所以很容易得到 E ( γ j k ∣ y j , θ k ) = P ( γ j k = 1 ∣ y j , θ k ) ⋅ 1 + P ( γ j k = 1 ∣ y j , θ k ) ⋅ 0 E(\gamma_{jk}|y_j,\theta_k)\\=P(\gamma_{jk}=1|y_j,\theta_k)\cdot1+P(\gamma_{jk}=1|y_j,\theta_k)\cdot0 E(γjkyj,θk)=P(γjk=1yj,θk)1+P(γjk=1yj,θk)0。对于第四个等号是贝叶斯公式。对于第六个等号则是在介绍这章最开始介绍的对于取 y i y_i yi的假设,即:对于某个观测值 y i y_i yi可以认为是依概率 α k \alpha_k αk选择了第 k k k个分模型 ϕ ( y ∣ θ k ) \phi(y|\theta_k) ϕ(yθk)

E步计算完毕,那么进行M步,使用 Q Q Q函数进行极大似然估计,求出模型参数 θ k = ( α k , μ k , σ k ) \theta_k=(\alpha_k,\mu_k,\sigma_k) θk=(αk,μk,σk),下面开始推导
说明:下面的 p θ ( ) 和 p ( ; θ ) p_\theta()和p(;\theta) pθ()p(;θ)是一样的,只是写法不同,都只是表示模型参数是 θ \theta θ而已。

Q ( θ ∣ θ n ) = ∑ i = 1 n ∑ z P ( z ∣ y i ; θ j ) l o g P ( y i , z ∣ θ ) = ∑ i = 1 n ∑ k = 1 K w i k l o g P ( y i ∣ γ i k = 1 ; θ ) P ( γ i k = 1 ∣ θ ) = ∑ i = 1 n ∑ k = 1 K w i k l o g α k ϕ ( y j ∣ θ k ) = ∑ i = 1 n ∑ k = 1 K w i k l o g α k 1 2 π σ k e x p ( − ( y i − μ k ) 2 2 σ k 2 ) = ∑ i = 1 n ∑ k = 1 K w i k { l o g α k − l o g 2 π σ k − ( y i − μ k ) 2 2 σ k 2 } Q(\theta|\theta_n)=\sum\limits_{i=1}^{n} \sum\limits_{z}P(z|y_i;\theta_j)log^{P(y_i,z|\theta)}\\=\sum\limits_{i=1}^{n} \sum\limits_{k=1}^{K}w_{ik}logP(y_i|\gamma_{ik}=1;\theta)P(\gamma_{ik}=1|\theta)\\=\sum\limits_{i=1}^{n} \sum\limits_{k=1}^{K}w_{ik}log\alpha_k\phi(y_j|\theta_k)\\=\sum\limits_{i=1}^{n} \sum\limits_{k=1}^{K}w_{ik}log\alpha_k\frac{1}{\sqrt{2\pi}\sigma_k}exp(-\frac{(y_i-\mu_k)^2}{2\sigma_k^2})\\=\sum\limits_{i=1}^{n} \sum\limits_{k=1}^{K}w_{ik}\{log\alpha_k-log{\sqrt{2\pi}\sigma_k}-\frac{(y_i-\mu_k)^2}{2\sigma_k^2}\} Q(θθn)=i=1nzP(zyi;θj)logP(yi,zθ)=i=1nk=1KwiklogP(yiγik=1;θ)P(γik=1θ)=i=1nk=1Kwiklogαkϕ(yjθk)=i=1nk=1Kwiklogαk2π σk1exp(2σk2(yiμk)2)=i=1nk=1Kwik{logαklog2π σk2σk2(yiμk)2}

∂ Q ∂ μ k = ∑ i = 1 n w i k ( y i − μ k ) σ k 2 = 0 \frac{\partial Q}{\partial \mu_k}=\frac{\sum\limits_{i=1}^{n}w_{ik}(y_i-\mu_k)}{\sigma_k^2}=0 μkQ=σk2i=1nwik(yiμk)=0
= > μ k = ∑ i = 1 n w i k y i ∑ i = 1 n w i k , k = 1 , 2 , . . . , K =>\mu_k=\frac{\sum\limits_{i=1}^{n}w_{ik}y_i}{\sum\limits_{i=1}^{n}w_{ik}},k=1,2,...,K =>μk=i=1nwiki=1nwikyi,k=1,2,...,K

注意:因为是对某个 k ′ k' k,所以关于 k k k的求和符号最后只剩关于这个 k ′ k' k的项。

∂ Q ∂ σ k = ∑ i = 1 n w i k { − 1 σ k − ( y i − μ k ) 2 2 ⋅ − 2 σ k 3 } = 0 \frac{\partial Q}{\partial \sigma_k}=\sum\limits_{i=1}^{n}w_{ik}\{-\frac{1}{\sigma_k}-\frac{(y_i-\mu_k)^2}{2}\cdot \frac{-2}{\sigma_k^3}\}=0 σkQ=i=1nwik{σk12(yiμk)2σk32}=0

= > ∑ i = 1 n w i k ( y i − μ k ) 2 σ k 3 = ∑ i = 1 n w i k σ k =>\frac{\sum\limits_{i=1}^{n}w_{ik}(y_i-\mu_k)^2}{\sigma_k^3}=\frac{\sum\limits_{i=1}^{n}w_{ik}}{\sigma_k} =>σk3i=1nwik(yiμk)2=σki=1nwik

σ k 2 = ∑ i = 1 n w i k ( y i − μ k ) 2 ∑ i = 1 n w i k \sigma_k^2=\frac{\sum\limits_{i=1}^{n}w_{ik}(y_i-\mu_k)^2}{\sum\limits_{i=1}^{n}w_{ik}} σk2=i=1nwiki=1nwik(yiμk)2

关于 α k \alpha_k αk的推导就不要去直接求导然后令导数为0了,因为还有个限制条件 ∑ k = 1 K α k = 1 \sum\limits_{k=1}^{K}\alpha_k=1 k=1Kαk=1,所以得用拉格朗日函数。

L ( α k , β ) = ∑ i = 1 n ∑ k = 1 K w i k { l o g α k − l o g 2 π σ k − ( y i − μ k ) 2 2 σ k 2 } + β ( 1 − ∑ k = 1 K α k ) L(\alpha_k,\beta)=\sum\limits_{i=1}^{n} \sum\limits_{k=1}^{K}w_{ik}\{log\alpha_k-log{\sqrt{2\pi}\sigma_k}-\frac{(y_i-\mu_k)^2}{2\sigma_k^2}\}+\beta(1-\sum\limits_{k=1}^{K}\alpha_k) L(αk,β)=i=1nk=1Kwik{logαklog2π σk2σk2(yiμk)2}+β(1k=1Kαk)

∂ L ∂ α k = ∑ i = 1 n w i k α k + β = 0 \frac{\partial L}{\partial \alpha_k}=\sum\limits_{i=1}^{n}\frac{w_{ik}}{\alpha_k}+\beta=0 αkL=i=1nαkwik+β=0
= > − ∑ i = 1 n w i k β = α k =>-\frac{\sum\limits_{i=1}^{n}w_{ik}}{\beta}=\alpha_k \qquad \qquad =>βi=1nwik=αk(1)

∂ L ∂ β = 1 − ∑ k = 1 K α k = 0 \frac{\partial L}{\partial \beta}=1-\sum\limits_{k=1}^{K}\alpha_k=0 βL=1k=1Kαk=0

= > ∑ k = 1 K α k = 1 =>\sum\limits_{k=1}^{K}\alpha_k=1 \qquad \qquad =>k=1Kαk=1 (2)

对(1)两边对 α k \alpha_k αk 进行求和
− ∑ k = 1 K ∑ i = 1 n w i k β = ∑ k = 1 K α k = 1 -\frac{\sum\limits_{k=1}^{K}\sum\limits_{i=1}^{n}w_{ik}}{\beta}=\sum\limits_{k=1}^{K}\alpha_k=1 βk=1Ki=1nwik=k=1Kαk=1
= > β = − ∑ k = 1 K ∑ i = 1 n w i k =>\beta=-\sum\limits_{k=1}^{K}\sum\limits_{i=1}^{n}w_{ik} =>β=k=1Ki=1nwik,带入到(1)得到:

= > ∑ i = 1 n w i k ∑ k = 1 K ∑ i = 1 n w i k = α k =>\frac{\sum\limits_{i=1}^{n}w_{ik}}{\sum\limits_{k=1}^{K}\sum\limits_{i=1}^{n}w_{ik}}=\alpha_k \qquad =>k=1Ki=1nwiki=1nwik=αk (3)

由于 w i k = α k ϕ ( y i ∣ θ k ) ∑ k = 1 K α k ϕ ( y i ∣ θ k ) w_{ik}=\frac{\alpha_k\phi(y_i|\theta_k)}{\sum\limits_{k=1}^{K}\alpha_k\phi(y_i|\theta_k)} wik=k=1Kαkϕ(yiθk)αkϕ(yiθk)
显然 ∑ k = 1 K w i k = 1 \sum\limits_{k=1}^{K}w_{ik}=1 k=1Kwik=1

(3)式的分母是满足交换律,将 w i k w_{ik} wik带入得到(3)最终得到:

α k = ∑ i = 1 n w i k n \alpha_k=\frac{\sum\limits_{i=1}^{n}w_{ik}}{n} αk=ni=1nwik

将求得的三个参数当做下一次EM算法E步的参数继续下去直到收敛。

你可能感兴趣的:(机器学习,机器学习,EM算法,高斯混合模型)