高斯混合模型(GMM)

??最近在實際工作中用到了高斯混合模型(Gaussian Mixture Model)辕坝,遂寫一篇筆記來整理記錄相關知識點领突,以便復查鞏固。

1. 高斯模型(Gaussian model君旦,GM)

簡單回顧一下本科概率論講過的高斯模型。
  高斯模型是一種常用的變量分布模型金砍,又稱正態(tài)分布局蚀,在數(shù)理統(tǒng)計領域有著廣泛的應用捞魁。
當樣本數(shù)據(jù) X 是一維數(shù)據(jù)(Univariate)時至会,高斯分布遵從下方概率密度函數(shù)(Probability Density Function)(下文簡稱pdf)如下:p(x|\theta)= \frac{1}{\sqrt{2π}\alpha}exp(-\frac{(x-u)^2}{2\alpha^2})其中u為數(shù)據(jù)均值(期望),\alpha為數(shù)據(jù)標準差(Standard deviation)谱俭。
當樣本數(shù)據(jù) X 是多維數(shù)據(jù)(Multivariate)時奉件,高斯分布pdf為:
p(x|\theta)= \frac{1}{(2π)^{\frac{D}{2}}|\sum|^{\frac{1}{2}}}exp(-\frac{(x-u)^T\sum^{-1}(x-u)}{2})其中,u為數(shù)據(jù)均值(期望)昆著,\sum為協(xié)方差(Covariance)县貌,描述各維變量之間的相關度,D 為數(shù)據(jù)維度凑懂。

2. 混合高斯模型(Gaussian mixture model, GMM)

??高斯混合模型可以看作是由 K 個單高斯模型組合而成的模型煤痕,這 K 個子模型是混合模型的隱變量(Hidden variable)。一般來說接谨,一個混合模型可以使用任何概率分布摆碉,這里使用高斯混合模型是因為高斯分布具備很好的數(shù)學性質以及良好的計算性能。

2.1 為什么要有混合高斯模型

先來看一組數(shù)據(jù)脓豪。

如果我們假設這組數(shù)據(jù)是由某個高斯分布產生的巷帝,利用極大似然估計(后文還會提及)對這個高斯分布做參數(shù)估計,得到一個最佳的高斯分布模型如下扫夜。
有什么問題嗎楞泼?一般來講越靠近橢圓的中心樣本出現(xiàn)的概率越大驰徊,這是由pdf決定的,但是這個高斯分布的橢圓中心的樣本量卻極少堕阔。顯然樣本服從單高斯分布的假設并不合理棍厂。單高斯模型無法產生這樣的樣本。
  實際上超陆,這是用兩個不同的高斯分布模型產生的數(shù)據(jù)牺弹。
它通過求解兩個高斯模型,并通過一定的權重將兩個高斯模型融合成一個模型侥猬,即最終的混合高斯模型例驹。這個混合高斯模型可以產生這樣的樣本。
  更一般化的描述為:假設混合高斯模型由K個高斯模型組成(即數(shù)據(jù)包含K個類)退唠,則GMM的概率密度函數(shù)如下:其中

  • p(x|\theta)=phi(x|\theta_k)是第k個高斯模型的概率密度函數(shù),可以看成選定第k個模型后荤胁,該模型產生x的概率瞧预;
  • \alpha_k?是第k個高斯模型的權重,稱作選擇第k個模型的先驗概率仅政,且滿足\sum_{k=1}^{K}\alpha_k=1垢油。

??所以,混合高斯模型并不是什么新奇的東西圆丹,它的本質就是融合幾個單高斯模型滩愁,來使得模型更加復雜,從而產生更復雜的樣本辫封。理論上硝枉,如果某個混合高斯模型融合的高斯模型個數(shù)足夠多倦微,它們之間的權重設定得足夠合理,這個混合模型可以擬合任意分布的樣本责球。

3. 模型參數(shù)學習

對于單高斯模型拓劝,我們可以用最大似然法(Maximum likelihood)估算參數(shù)\theta的值\theta = argmax_{\theta}L(\theta)這里我們假設了每個數(shù)據(jù)點都是獨立的(Independent)郑临,似然函數(shù)由概率密度函數(shù)(PDF)給出。
L(\theta)=\prod_{j=1}^{N}p(x_j|\theta)由于每個點發(fā)生的概率都很小笛匙,乘積會變得極其小,不利于計算和觀察妹孙,因此通常我們用 Maximum Log-Likelihood 來計算(因為 Log 函數(shù)具備單調性蠢正,不會改變極值的位置,同時在 0-1 之間輸入值很小的變化可以引起輸出值相對較大的變動):logL(\theta)=\sum_{j=1}^{N}logp(x_j|\theta)對其進行求導并令導數(shù)為0笨触,所求出的參數(shù)就是最佳的高斯分布對應的參數(shù)雹舀。
  所以最大化似然函數(shù)的意義就是:通過使得樣本集的聯(lián)合概率最大來對參數(shù)進行估計说榆,從而選擇最佳的分布模型。
對于高斯混合模型串慰,Log-Likelihood 函數(shù)是:logL(\theta)=\sum_{j=1}^{N}logp(x_j|\theta)=\sum_{j=1}^{N}log\sum_{k=1}^{K}\alpha_k\phi(x|\theta_k)如何計算高斯混合模型的參數(shù)呢唱蒸?這里我們無法像單高斯模型那樣使用最大似然法來求導求得使 likelihood 最大的參數(shù),因為對于每個觀測數(shù)據(jù)點來說庆捺,事先并不知道它是屬于哪個子分布的(hidden variable)疼燥,因此 log 里面還有求和蚁堤,對于每個子模型都有未知的\alpha_k, u_k, \delta_k ,直接求導無法計算撬即。需要通過迭代的方法求解呈队。

4. EM算法

EM 算法是一種迭代算法,1977 年由 Dempster 等人總結提出粒竖,用于含有隱變量(Hidden variable)的概率模型參數(shù)的最大似然估計。

每次迭代包含兩個步驟:

  1. E-step:求期望E(\gamma_{jk}|X, \theta) for all j = 1,2,3,...,N
  2. M-step:求極大沿后,計算新一輪迭代的模型參數(shù)

這里不具體介紹一般性的 EM 算法朽砰,(通過 Jensen 不等式得出似然函數(shù)的下界 Lower bound,通過極大化下界做到極大化似然函數(shù)漆弄,有l(wèi)og(E(x))>=E(log(x)))造锅,只介紹怎么在高斯混合模型里應用從來推算出模型參數(shù)。
通過 EM 迭代更新高斯混合模型參數(shù)的方法(我們有樣本數(shù)據(jù)x_1,x_2,...,X_N和一個有K個子模型的高斯混合模型券坞,想要推算出這個高斯混合模型的最佳參數(shù)):

  • 首先初始化參數(shù)
  • E-step:依據(jù)當前參數(shù),計算每個數(shù)據(jù)j來自子模型k的可能性\gamma_{jk} = \frac{\alpha_k\phi(x_j|\theta_k)}{\sum_{k=1}^K\alpha_k\phi(x_j|\theta_k)}
  • M-step:計算新一輪迭代的模型參數(shù)u_k=\frac{\sum_j^N(\gamma_{jk}x_j)}{\sum_j^N(\gamma_{jk})}, \sum_k = \frac{\sum_j^N\gamma_{jk}(x_j-u_k)(x_j-u_k)^T}{\sum_j^N(\gamma_{jk})}, \alpha_k = \frac{\sum_j^N(\gamma_{jk})}{N}
    重復計算 E-step 和 M-step 直至收斂||\theta_{i+1} - \theta_i|| < \epsilon.

至此倍靡,我們就找到了高斯混合模型的參數(shù)塌西。需要注意的是筝尾,EM 算法具備收斂性,但并不保證找到全局最大值站辉,有可能找到局部最大值损姜。解決方法是初始化幾次不同的參數(shù)進行迭代,取結果最好的那次汰蓉。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末顾孽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子若厚,更是在濱河造成了極大的恐慌,老刑警劉巖龄章,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件做裙,死亡現(xiàn)場離奇詭異肃晚,居然都是意外死亡,警方通過查閱死者的電腦和手機拧廊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門吧碾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來墓卦,“玉大人,你說我怎么就攤上這事落剪。” “怎么了呢堰?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵枉疼,是天一觀的道長问麸。 經(jīng)常有香客問我,道長席舍,這世上最難降的妖魔是什么哮笆? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任汰扭,我火速辦了婚禮萝毛,結果婚禮上滑黔,老公的妹妹穿的比我還像新娘。我一直安慰自己略荡,他們只是感情好,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布巴粪。 她就那樣靜靜地躺著肛根,像睡著了一般。 火紅的嫁衣襯著肌膚如雪漏策。 梳的紋絲不亂的頭發(fā)上掺喻,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音,去河邊找鬼椰苟。 笑死,一個胖子當著我的面吹牛谦絮,可吹牛的內容都是我干的。 我是一名探鬼主播层皱,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼叫胖,長吁一口氣:“原來是場噩夢啊……” “哼她奥!你這毒婦竟也來了怎棱?” 一聲冷哼從身側響起绷跑,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤砸捏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后梆暖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膝藕,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年滑废,在試婚紗的時候發(fā)現(xiàn)自己被綠了蠕趁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辛馆。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖昙篙,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情缴挖,我是刑警寧澤焚辅,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布同蜻,位于F島的核電站,受9級特大地震影響湾蔓,放射性物質發(fā)生泄漏。R本人自食惡果不足惜颁股,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一甘有、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧亏掀,春花似錦、人聲如沸滤愕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽魂贬。三九已至,卻和暖如春付燥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背闻丑。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嗦嗡,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像咱枉,于是被迫代替她去往敵國和親徒恋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354