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π
σ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=1∑Kα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=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∑KP(yj∣γjk=1,θk)P(γjk=1∣θk)P(γjk=1,yj∣θk)=k=1∑KP(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∑nz∑P(z∣yi;θj)logP(yi,z∣θ)=i=1∑nk=1∑KwiklogP(yi∣γik=1;θ)P(γik=1∣θ)=i=1∑nk=1∑Kwiklogαkϕ(yj∣θk)=i=1∑nk=1∑Kwiklogαk2π
σk1exp(−2σk2(yi−μk)2)=i=1∑nk=1∑Kwik{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=σk2i=1∑nwik(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∑nwiki=1∑nwikyi,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∑nwik{−σk1−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} =>σk3i=1∑nwik(yi−μk)2=σki=1∑nwik
σ 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∑nwiki=1∑nwik(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∑nk=1∑Kwik{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αkwik+β=0
= > − ∑ i = 1 n w i k β = α k =>-\frac{\sum\limits_{i=1}^{n}w_{ik}}{\beta}=\alpha_k \qquad \qquad =>−βi=1∑nwik=α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∑Ki=1∑nwik=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∑Ki=1∑nwik,帶入到(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∑Ki=1∑nwiki=1∑nwik=α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∑Kwik=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∑nwik
将求得的三個參數當做下一次EM算法E步的參數繼續下去直到收斂。