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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37334135/article/details/85493330

1、高斯混合模型GMM

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

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

可以看做是 K K 个单高斯模型的线性组合,其中 α k \alpha_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}) (模型参数 θ k = ( μ k , σ k ) \theta_k=(\mu_k,\sigma_k) )的系数,可以认作是权重,满足 k = 1 K α k = 1 \sum\limits_{k=1}^{K}\alpha_k=1

2、EM算法应用于GMM

首先介绍EM算法步骤:

在这里插入图片描述

具体内容参考EM算法比较

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

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

这个 γ i k \gamma_{ik} 也就是隐变量了,因为我们只知道 y i y_i 而不知道它来自哪个模型。
补充:或者这样理解 p ( z j = k y j ; θ k ) p(z_j=k|y_j;\theta_k) ,同样是给出了样本 y j y_j 由第 k k 个分模型产生的后验概率。等价于 P ( γ j k = 1 y j , θ k ) P(\gamma_{jk}=1|y_j,\theta_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)}

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

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

= > 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}

σ 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}}

关于 α k \alpha_k 的推导就不要去直接求导然后令导数为0了,因为还有个限制条件 k = 1 K α k = 1 \sum\limits_{k=1}^{K}\alpha_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 = 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
= > i = 1 n w i k β = α k =>-\frac{\sum\limits_{i=1}^{n}w_{ik}}{\beta}=\alpha_k \qquad \qquad (1)

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

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

对(1)两边对 α k \alpha_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 = 1 K i = 1 n w i k =>\beta=-\sum\limits_{k=1}^{K}\sum\limits_{i=1}^{n}w_{ik} ,带入到(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 (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)}
显然 k = 1 K w i k = 1 \sum\limits_{k=1}^{K}w_{ik}=1

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

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

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

猜你喜欢

转载自blog.csdn.net/qq_37334135/article/details/85493330