天天看點

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=1∑K​α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π

​σk​1​exp(−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=1∑K​αk​=1。

2、EM算法應用于GMM

首先介紹EM算法步驟:

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​=k∣yj​;θ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​=1∣yj​,θ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(γjk​∣yj​,θk​)=P(γjk​=1∣yj​,θk​)=k=1∑K​P(yj​∣γjk​=1,θk​)P(γjk​=1∣θk​)P(γjk​=1,yj​∣θk​)​=k=1∑K​P(yj​∣γjk​=1,θk​)P(γjk​=1∣θk​)P(yj​∣γjk​=1,θk​)P(γjk​=1∣θk​)​=k=1∑K​α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(γjk​∣yj​,θk​)=P(γjk​=1∣yj​,θk​)⋅1+P(γjk​=1∣yj​,θ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=1∑n​z∑​P(z∣yi​;θj​)logP(yi​,z∣θ)=i=1∑n​k=1∑K​wik​logP(yi​∣γik​=1;θ)P(γik​=1∣θ)=i=1∑n​k=1∑K​wik​logαk​ϕ(yj​∣θk​)=i=1∑n​k=1∑K​wik​logαk​2π

​σk​1​exp(−2σk2​(yi​−μk​)2​)=i=1∑n​k=1∑K​wik​{logαk​−log2π

​σk​−2σ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 ∂μk​∂Q​=σk2​i=1∑n​wik​(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=1∑n​wik​i=1∑n​wik​yi​​,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 ∂σk​∂Q​=i=1∑n​wik​{−σk​1​−2(yi​−μk​)2​⋅σk3​−2​}=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} =>σk3​i=1∑n​wik​(yi​−μk​)2​=σk​i=1∑n​wik​​

σ 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=1∑n​wik​i=1∑n​wik​(yi​−μk​)2​

關于 α k \alpha_k αk​的推導就不要去直接求導然後令導數為0了,因為還有個限制條件 ∑ k = 1 K α k = 1 \sum\limits_{k=1}^{K}\alpha_k=1 k=1∑K​α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​k=1∑K​wik​{logαk​−log2π

​σk​−2σk2​(yi​−μk​)2​}+β(1−k=1∑K​α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 ∂αk​∂L​=i=1∑n​αk​wik​​+β=0

= > − ∑ i = 1 n w i k β = α k =>-\frac{\sum\limits_{i=1}^{n}w_{ik}}{\beta}=\alpha_k \qquad \qquad =>−βi=1∑n​wik​​=αk​(1)

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

= > ∑ k = 1 K α k = 1 =>\sum\limits_{k=1}^{K}\alpha_k=1 \qquad \qquad =>k=1∑K​α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=1∑K​i=1∑n​wik​​=k=1∑K​α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=1∑K​i=1∑n​wik​,帶入到(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=1∑K​i=1∑n​wik​i=1∑n​wik​​=α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=1∑K​αk​ϕ(yi​∣θk​)αk​ϕ(yi​∣θk​)​

顯然 ∑ k = 1 K w i k = 1 \sum\limits_{k=1}^{K}w_{ik}=1 k=1∑K​wik​=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=1∑n​wik​​

将求得的三個參數當做下一次EM算法E步的參數繼續下去直到收斂。

繼續閱讀