EM算法在GMM中的應用筆記

(1)人人都懂EM算法
(2)詳解EM算法與混合高斯模型(Gaussian mixture model, GMM)

極大似然估計

第一篇通俗易懂地從極大似然估計層層深入聊到了EM算法。在假定樣本分佈的情況下,我們通過有限的樣本去估計這個假定分佈的最佳的參數,這就是極大似然估計。
使用極大似然估計的前提是分佈是通過假定的(即已經確定的)。
另外樣本是獨立的,所有樣本的聯合分佈(即假定分佈)可以由每個樣本概率乘積得到。到這裏,我們可以得到總體分佈的一個估計。
由於我們已有的樣本是有限的,那麼參數在什麼情況下時,這些已有的樣本被抽出的概率時最大的?換句話說就是,我們認爲已有的樣本能準確反映總體的分佈。這就是極大似然估計裏面極大的意義。
如果一組樣本服從高斯分佈N(μ,σ)\mathrm{N}(\mu, \sigma),通過這組樣本使用極大似然估計能夠估算出μ,σ\mu, \sigma
(1) 高斯分佈概率密度函數函數
f(x)=12πσe(xμ)22σ2f(x)=\frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{(x-\mu)^{2}}{2 \sigma^{2}}}
(2) 樣本相互獨立,使用概率的乘法求得聯合概率分佈,取log對數,將乘法轉爲加法,得到目標函數(似然函數)
L(x)=i=1n12πσe(xiμ)22σ2l(x)=logi12πσe(xiμ)22σ2=ilog12πσe(xiμ)22σ2=(ilog12πσ)+(i(xiμ)22σ2)=n2log(2πσ2)12σ2i(xiμ)2\begin{array}{l} L(x)=\prod_{i=1}^{n} \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{\left(x_{i}-\mu\right)^{2}}{2 \sigma^{2}}}\\ l(x)=\log \prod_{i} \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{\left(x_{i}-\mu\right)^{2}}{2 \sigma^{2}}} \\ =\sum_{i} \log \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{\left(x_{i}-\mu\right)^{2}}{2 \sigma^{2}}} \\ =\left(\sum_{i} \log \frac{1}{\sqrt{2 \pi} \sigma}\right)+\left(\sum_{i}-\frac{\left(x_{i}-\mu\right)^{2}}{2 \sigma^{2}}\right) \\ =-\frac{n}{2} \log \left(2 \pi \sigma^{2}\right)-\frac{1}{2 \sigma^{2}} \sum_{i}\left(x_{i}-\mu\right)^{2} \end{array}
(3) 對目標函數求導數,求出極大值出的μ,σ\mu, \sigma
這裏有兩個變量,需要求偏導數。
{μ=1nixiσ2=1ni(xiμ)2 \left\{\begin{array}{l} \mu=\frac{1}{n} \sum_{i} x_{i} \\ \sigma^{2}=\frac{1}{n} \sum_{i}\left(x_{i}-\mu\right)^{2} \end{array}\right.
這個結果就是我們熟知的,μ,σ\mu, \sigma即等於樣本均值和方差。

混合高斯分佈

我們認爲人的身高是服從高斯分佈的N(μ,σ)\mathrm{N}(\mu, \sigma),而且男生、女生的身高也分別服從高斯分佈N1(μ1,σ1)\mathrm{N}_1(\mu_1, \sigma_1)N0(μ2,σ2)\mathrm{N}_0(\mu_2, \sigma_2),那麼我們說人的身高服從的是混合高斯分佈,由兩個高斯分佈組成。
未知參數1: 取每個概率分佈的概率 πi\pi_i
混合高斯分佈是簡單的相加,需要滿足概率的性質,加和爲1. 即兩個分佈出現的概率也要考慮。
隨機抽樣一個人,它是女生的概率是多少,男生的概率是多少也是需要考慮。一般情況男女比例是1:1,即男生女生被抽中的概率是0.5. 對於一個男女比例7:1的學校,這時候隨機抽樣一個人,它是女生的概率則爲0.125,男生抽中的概率爲0.875。 換句話說就是高斯分佈爲N2(μ2,σ2)\mathrm{N}_2(\mu_2, \sigma_2)的概率爲0.125。高斯分佈爲N2(μ2,Σ2)\mathrm{N}_2(\mu_2, \Sigma_2)的概率爲0.125,高斯分佈爲N1(μ1,σ1)\mathrm{N}_1(\mu_1, \sigma_1)的概率爲0.875。
未知參數2:每個高斯分佈的均值μi\mu_i
對於只考慮身高一維的情況,均值n是一個數;
對於n維的情況,這裏的均值是n個均值組成一個向量。
未知參數3:每個高斯分佈的方差i\sum_i
對於只考慮身高一維的情況,方差是一個數;
對於n維的情況,使用協方差矩陣。

混合高斯分佈通過給定樣本估計(πμΣ\pi,\mu,\Sigma),使用極大似然估計,我們可以得到log似然函數:
lπ,μ,Σ(x)=i=1Nlog(k=1KπkN(xiμk,Σk)) l_{\pi, \mu, \Sigma}(x)=\sum_{i=1}^{N} \log \left(\sum_{k=1}^{K} \pi_{k} N\left(x_{i} | \mu_{k}, \Sigma_{k}\right)\right)
根據極大似然估計的思路, 求一階導數取極大值處的πiμiΣi\pi_i,\mu_i,\Sigma_i不就行了嗎?實際上,這裏涉及到三個參數,需要求三次偏導數,求得導數還需要考慮N個樣本。

使用EM算法做參數估計
(1) 根據樣本求得先驗概率πi\pi_i
比如男女比例可以通過已知樣本求得,假設求得的男女概率爲3:2。那麼π1=0.6\pi_1 = 0.6π0=0.4\pi_0= 0.4
(2) 粗略給定兩個分佈的參數均值和方差分別爲(μ1,Σ1)(\mu_1, \Sigma_1), (μ2,Σ2)(\mu_2, \Sigma_2), 將每個樣本xix_i代入N1(xiμ1,Σ1)\mathrm{N}_1(x_i |\mu_1, \Sigma_1), N2(xiμ2,Σ2)\mathrm{N}_2(x_i |\mu_2, \Sigma_2)求出每個樣本概率密度。
如給定樣本X={x1,x2,...,xn}X=\{x_1, x_2,..., x_n\},得到: π1N1(xiμ1,Σ0),i=1,2,...,n\pi_{1} N_1\left(x_{i} | \mu_{1}, \Sigma_{0}\right), i = 1,2,...,n
π2N1(xiμ2,Σ2),i=1,2,...,n\pi_{2} N_1\left(x_{i} | \mu_{2}, \Sigma_{2}\right), i = 1,2,...,n
(3)歸一化處理每個概率密度:
γ(i,k)=πkN(xiμk,Σk)j=1KπjN(xiμj,Σj) \gamma(i, k)=\frac{\pi_{k} N\left(x_{i} | \mu_{k}, \Sigma_{k}\right)}{\sum_{j=1}^{K} \pi_{j} N\left(x_{i} | \mu_{j}, \Sigma_{j}\right)}
(4)使用歸一化處理每個概率密度做最大似然估計,估算(μ1,Σ1)(\mu_1, \Sigma_1), (μ2,Σ2)(\mu_2, \Sigma_2)

待續

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章