淺談高斯混合模型

2021-12-25 狗熊會
高斯分布與高斯混合模型

1733年,法國數學家棣莫弗在一個賭博問題的探索中首次發現了正態分布的密度公式,而後由德國數學家高斯將正態分布發揚光大。高斯在拓展最小二乘法的工作中,引入正態分布作為誤差分布,解決了對誤差影響進行統計度量的問題,為後世的參數估計、假設檢驗等一系列統計分析奠定了基礎。高斯關於正態分布的工作對數理統計的發展做出了傑出的貢獻,因此正態分布也稱為高斯分布 (Gaussian distribution)。值得說明的是,高斯分布並不是由高斯或棣莫弗「發明」的,而是本身在自然界中大量存在的,它反映了大樣本下數據分布的一種一般規律。例如向某某大學的男生、女生統計身高,身高的分布大概如下圖高斯分布所示,這樣的分布在形態上有著明顯的特徵:單峰、對稱、中間高兩邊低。

圖1 某某大學男生、女生身高分布

在數據分析的課程學習中,高斯分布恐怕是我們打交道最多的分布了。它的密度函數公式為

其中涉及兩個參數:我們已經確定了分布形式,在這個例子中即為高斯分布。而如果身高分布不是高斯分布,是未知的其他形式,這樣的估計方法則無法適用。讓我們考慮一個更有挑戰的場景:對某某大學的同學統計到了

圖2 某某大學全體學生身高分布

高斯混合模型,望文生義,就是「把高斯分布混合在一起」。它以高斯分布為基礎,而在高斯分布上最大的拓展就是「混合」,通過把多個不同參數的高斯分布混合在一起,從而達到擬合複雜的、一般的分布的效果。具體來說,假設有K個不同的高斯分布,參數分別為

EM算法是1977年由Dempster等整理提出的一種迭代算法,可以處理含隱變量的極大似然估計問題。如果把更新參數估計這件事類比為走路(空間位置的更新),EM算法就好比人用兩隻腳交替地走路,左腳控制隱變量,右腳控制參數估計,左腳站穩了邁右腳,右腳站穩了邁左腳,這樣左一步右一步,步步為營,就可以到達終點,也就是最終收斂到的參數估計。

反過來,為什麼有隱變量的時候一般的極大似然估計法難以適用?這就好比走路的時候,兩條腿綁在一起,可觀測的信息和隱變量的信息區分不開,自然走不動。通常,觀測數據加上隱變量構成的數據集稱為完全數據 (complete data)。EM算法的主要思想為,在觀測數據的似然函數中加入隱變量,將原本複雜、或難以表示的似然函數改寫為關於完全數據的似然函數。完全數據的似然函數常常能夠讓問題的描述形式變得更清晰。在高斯混合模型裡,我們可以定義隱變量為:每個觀測和高斯成分之間的對應關係。對第(1)E-step (expectation): 給定(2)M-step (maximization): 最大化

圖3 EM算法求解高斯混合模型

表1 估計結果


AB均值170.41158.67標準差4.706.94權重0.650.35
男生女生均值169.93157.85標準差4.936.93 高斯混合模型的應用

高斯混合模型在許多領域有著廣泛應用。許多複雜的分布都可以用高斯混合模型來擬合,例如Singh et al. (2009) 應用高斯混合模型來近似電力負載的分布,為電力網絡的分析和調度優化提供數據支持。Wang et al. (2011) 使用高斯混合模型結合多維傳遞函數來建模三維的體積數據,如圖5所示,對CT掃描的零件、骨骼等能夠很好地區分不同形態特徵的區塊。

圖4 利用高斯混合模型分析電力負載

來源:Singh, R., Pal, B. C., & Jabr, R. A. (2009). Statistical representation of distribution system loads using Gaussian mixture model. IEEE Transactions on Power Systems, 25(1), 29-37.

圖5 利用高斯混合模型建模 

來源:Wang, Y., Chen, W., Zhang, J., Dong, T., Shan, G., & Chi, X. (2011). Efficient volume exploration using the gaussian mixture model. IEEE Transactions on Visualization and Computer Graphics, 17(11), 1560-1573.

在圖像處理、計算機視覺中,高斯混合模型可用於區分背景和運動的物體,實現背景提取、目標檢測(Zivkovic, 2004; Singh, 2016; Cho et al., 2019)。圖6是一個典型的例子:一個攝像頭持續監控一片區域,那麼背景部分的像素值應該相對穩定,變化不大,而運動目標對應的像素值在拍攝的不同幀之間應該變動劇烈。因此可以用高斯混合模型對像素值的分布進行建模,然後對拍攝到的每一幀,都可以計算所有像素關於各個高斯成分的權重係數。若一個像素的權重係數在不同幀之間出現劇烈變化,那麼這個像素對應的應該是運動目標,反之則對應靜態的背景。可以看到在圖6中,基於高斯混合模型的方法能夠識別出公路兩側為背景區域,而公路的車道是運動目標出現的位置。需要補充說明的是,在圖像的高斯混合模型中,每個高斯成分都是2維的,和身高數據中一維的場景不同。在多維的高斯混合模型中,需要估計的高斯分布參數為均值向量和協方差矩陣,可類似一維時的求解,應用EM算法來迭代地估計。

圖6 原始圖片(左)和基於高斯混合模型提取的背景部分(右)

來源:Zivkovic, Z. (2004). Improved adaptive Gaussian mixture model for background subtraction. In Proceedings of the 17th International Conference on Pattern Recognition, 2004. ICPR 2004. (Vol. 2, pp. 28-31). IEEE.

高斯混合模型一方面實現了對複雜分布的建模,另一方面也對所有的觀測樣本提供了一種基於高斯成分的向量表達,這種表達方式可以用於更多一般性的聚類、分類場景中。當

圖7 高斯混合模型(左)和貝葉斯高斯混合模型(右)示意圖

來源:Wiki百科

對貝葉斯高斯混合模型的估計,在EM算法之外,通常可採用Markov chain Monte Carlo (MCMC)方法來近似計算後驗分布,主要思路為迭代地抽樣數據,產生一個Markov鏈,並且使該Markov鏈的平穩分布和目標後驗分布相同,那麼通過大量迭代,就可以近似模擬後驗分布的表現。在MCMC中具體的每次迭代裡,可應用Gibbs採樣方法或Metropolis-Hastings方法,通過基於當前估計值的條件分布來抽樣數據。類似前面提到EM算法的「兩步交替前進」,在MCMC估計貝葉斯高斯混合模型時,對隱變量和參數(此時視為隨機變量)的抽樣也是交替進行,並產生隱變量和參數的兩個抽樣鏈條,通過這兩個鏈收斂到的平穩分布,即可近似計算相應的後驗估計。關於貝葉斯高斯混合模型,可以參考Robert (1996) 在著作《Markov Chain Monte Carlo in Practice》中的綜述,Mengersen et al. (2010) 的著作《Mixtures: Estimation and Applications》。值得注意的是,通過貝葉斯框架來審視高斯混合模型,能夠帶來「翻天覆地」的新知。例如,在貝葉斯高斯混合模型中,我們的關注點已經從「用若干個高斯分布的混合來擬合數據」轉變為了「探索擬合數據的後驗分布」。而從先驗分布、似然、再到後驗分布的方式建模時,限制高斯成分的個數並不是非常必要。Rasmussen (1999)在計算機領域頂會NIPS上就曾提出基於貝葉斯框架的無限高斯混合模型(infinite Gaussian mixture model),去掉了關於高斯成分個數的限制。

高斯混合模型的調優和拓展

男生女生身高的估計顯示了一個成功使用EM算法求解高斯混合模型的例子,但這樣的成功可能是非常「脆弱」的。例如,算法的開始我們對所有參數賦予了初始估計值,即確定了初始狀態,實際上初始狀態的選擇對最後算法收斂到的結果是有影響的。圖8即是一個失敗的例子:初始狀態設置為A和B的均值估計相同,結果使得算法收斂結果為A和B兩組無法區分開(對應的曲線完全重疊),參數估計陷入失敗。這也啟發我們,一個良好的初始狀態應當使得不同組的初始參數儘可能有差異。為此,一個常用的方法是先對全體觀測到的樣本用K-means粗略聚成多個簇,以不同簇的簇中心作為初始的參數估計,從而讓EM算法從一個比較分散的初始狀態開始。

圖8 EM算法求解高斯混合模型——一個失敗的例子

初始狀態如果選擇不當,EM算法求得的結果很可能陷入局部最優解,尤其是在初始狀態和真實參數偏離很遠時。對此,可採用改進的EM算法。例如確定性退火EM算法(Ueda & Nakano, 1998),它在EM算法中加入了模擬退火機制,使得參數估計在每次迭代更新時能夠在一定範圍內波動,從而有機率跳出局部最優解。

此外,高斯成分個數的選擇也對結果有很大影響。例如在上面的例子裡,我們知道設置2個高斯成分,聚成2類是最理想的,能夠對應上男生、女生兩類群體。如果高斯成分個數設置成更大的數值,結果恐怕就很難解釋了。同時,Chen (1995) 指出,混合模型中成分的個數設置為多少,是估計模型分布的關鍵。給定

上述工作關注於如何選擇合適的高斯成分個數,事實上還存在另一種思路:在EM迭代估計的過程中,動態調整高斯成分的個數。Ueda et al. (2000)提出split and merge EM (SMEM),在EM算法的迭代更新中,動態將部分高斯成分合併成一個,或者將一個高斯成分替換成若干個。該方法中高斯成分的總個數時不變的。Zhang et al. (2004) 在此基礎上提出一種Competitive EM算法,它在EM算法的迭代中以似然函數為標杆,也能夠分裂或者合併高斯成分,同時對高斯成分的個數不做限制,可以自動選擇使當前似然函數值最大化的高斯成分個數。

最後,既然高斯分布可以作為混合模型的基本成分,那麼其他的分布是否也可以用來構建混合模型呢?答案是肯定的。Weibull分布、t分布、對數高斯分布、Gamma分布,甚至不限定形式的任意分布函數,都可以用於混合模型。關於這樣更為一般性的混合分布,可參考McLachlan et al.(2019)對有限混合模型的綜述。雖然多種分布形式都可以用於有限混合模型的建模,但高斯混合模型無疑是混合模型中最常見、最實用的一類。這得益於高斯分布的優良數學性質。Li & Barron (1999) 指出,若考察所有高斯混合分布函數構成的集合,以及所有分布函數組成的集合,那麼L1度量下,前者在後者中是稠密的。因而,對任意一個未知的分布密度函數,都可以用一組高斯成分的混合來估計。高斯混合模型的優良性質和計算上的便捷奠定了它在各種數據分析、數據挖掘任務中難以動搖的地位。

參考文獻

Dempster, A. P., Laird, N. M., & Rubin, D. B. (1977). Maximum likelihood from incomplete data via the EM algorithm. Journal of the Royal Statistical Society: Series B (Methodological), 39(1), 1-22.

Singh, R., Pal, B. C., & Jabr, R. A. (2009). Statistical representation of distribution system loads using Gaussian mixture model. IEEE Transactions on Power Systems, 25(1), 29-37.

Wang, Y., Chen, W., Zhang, J., Dong, T., Shan, G., & Chi, X. (2011). Efficient volume exploration using the gaussian mixture model. IEEE Transactions on Visualization and Computer Graphics, 17(11), 1560-1573.

Zivkovic, Z. (2004). Improved adaptive Gaussian mixture model for background subtraction. In Proceedings of the 17th International Conference on Pattern Recognition, 2004. ICPR 2004. (Vol. 2, pp. 28-31). IEEE.

Singh, N., Arya, R., & Agrawal, R. K. (2016). A convex hull approach in conjunction with Gaussian mixture model for salient object detection. Digital Signal Processing, 55, 22-31.

Cho, J., Jung, Y., Kim, D. S., Lee, S., & Jung, Y. (2019). Moving object detection based on optical flow estimation and a Gaussian mixture model for advanced driver assistance systems. Sensors, 19(14), 3217.

Melnykov, V., & Maitra, R. (2010). Finite mixture models and model-based clustering. Statistics Surveys, 4, 80-116.

Scrucca, L., Fop, M., Murphy, T. B., & Raftery, A. E. (2016). Mclust 5: clustering, classification and density estimation using Gaussian finite mixture models. The R Journal, 8(1), 289.

Robert, C. P. (1996). Mixtures of distributions: inference and estimation. Markov Chain Monte Carlo in Practice, 441, 464.

Mengersen, K. L., Robert, C., & Titterington, M. (2011). Mixtures: Estimation and Applications (Vol. 896). John Wiley & Sons.

Rasmussen, C. E. (1999, November). The infinite Gaussian mixture model. In NIPS (Vol. 12, pp. 554-560).

Ueda, N., & Nakano, R. (1998). Deterministic annealing EM algorithm. Neural Networks, 11(2), 271-282.

Chen, J. (1995). Optimal rate of convergence for finite mixture models. The Annals of Statistics, 221-233.

Schwarz, G. (1978). Estimating the dimension of a model. The annals of Statistics, 461-464.

Hartigan, J. A. (1985). Statistical theory in clustering. Journal of Classification, 2(1), 63-76.

McLachlan, G. J. (1987). On bootstrapping the likelihood ratio test statistic for the number of components in a normal mixture. Journal of the Royal Statistical Society: Series C (Applied Statistics), 36(3), 318-324.

Tibshirani, R., Walther, G., & Hastie, T. (2001). Estimating the number of clusters in a data set via the gap statistic. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 63(2), 411-423.

Chen, H., Chen, J., & Kalbfleisch, J. D. (2004). Testing for a finite mixture model with two components. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 66(1), 95-115.

Aitkin, M., & Rubin, D. B. (1985). Estimation and hypothesis testing in finite mixture models. Journal of the Royal Statistical Society: Series B (Methodological), 47(1), 67-75.

Ueda, N., Nakano, R., Ghahramani, Z., & Hinton, G. E. (2000). SMEM algorithm for mixture models. Neural Computation, 12(9), 2109-2128.

Zhang, B., Zhang, C., & Yi, X. (2004). Competitive EM algorithm for finite mixture models. Pattern Recognition, 37(1), 131-144.

Li, J. Q., & Barron, A. R. (1999). Mixture Density Estimation. In NIPS (Vol. 12, pp. 279-285).

McLachlan, G. J., Lee, S. X., & Rathnayake, S. I. (2019). Finite mixture models. Annual Review of Statistics and Its Application, 6, 355-378.

- END -

相關焦點

  • 高斯混合模型 1
    這裡我們介紹一種聚類方法,高斯混合模型(Gaussian mixture model)。(這裡要和mixed model區分開來,mixed model是一種統計模型,主要用來處理重複測量,或者有群組效應的數據,可以認為是一種監督學習方法)。高斯混合模型是一種基於模型的聚類方法,它是混合模型的一種特例,因為它只考慮高斯分布的混合。它和另一種常見的聚類方法K-Means有很多相似性。
  • 什麼是高斯混合模型
    這正是高斯混合模型(簡稱GMMs)所要嘗試的。現在我們來進一步探討這個方法。定義高斯混合模型由多個高斯函數組成,每個高斯甘薯由 接下來,將繼續討論一種方法,它將幫助我們很容易地確定高斯混合模型的參數。期望最大化算法現在,已經推導出了一些概率表達式,我們將發現這些表達式在確定模型參數時很有用。然而,在上一節中,僅僅通過計算(3)來找到這樣的參數是非常困難的。幸運的是,有一種迭代方法可以用來達到這個目的。它被稱為期望最大化,或簡稱EM算法。
  • ML基礎:高斯混合模型是什麼?
    1.高斯混合模型概念高斯混合模型是一種概率模型,它假設所有數據點都是從有限數量的高斯分布的混合參數中生成的。實際上,可以將混合模型視為對 k-means聚類算法的擴展,它包含了數據的協方差結構以及隱高斯模型中心的信息。該方法使用了高斯分布作為參數模型,並使用了期望最大(Expectation Maximization,簡稱EM)算法進行訓練。
  • 技術乾貨 | 一文詳解高斯混合模型原理
    文本的最後還分析了高斯混合模型與另一種常見聚類算法K-means的關係,實際上在特定約束條件下,K-means算法可以被看作是高斯混合模型(GMM)的一種特殊形式(達觀數據 陳運文)。 高斯分布(Gaussian distribution)有時也被稱為正態分布(normal distribution),是一種在自然界大量的存在的、最為常見的分布形式。
  • 如何利用高斯混合模型建立更好、更精確的集群?
    本文將帶你了解高斯混合模型的工作原理以及如何在 Python 中實現它們,我們還將討論 k-means 聚類算法,看看高斯混合模型是如何對它進行改進的。我真的很喜歡研究無監督的學習問題。相對於一個有監督的學習問題來說,它們提供了一個完全不同的挑戰——有更多的空間來試驗我的數據。難怪機器學習領域的大多數發展和突破都發生在無監督學習領域。無監督學習中最流行的技術之一是聚類。
  • 達觀數據陳運文:一文詳解高斯混合模型原理
    什麼是高斯混合模型(Gaussian Mixture Model)高斯混合模型(Gaussian Mixture Model)通常簡稱GMM,是一種業界廣泛使用的聚類算法,該方法使用了高斯分布作為參數模型,並使用了期望最大
  • 每類噪聲標籤高斯有限混合模型判別分折
    高斯混合模型用一組高斯模型的線性組合來近似未知的樣本分布,模型中的未知參數由訓練樣本估計得出。假設有觀測得到的數據集樣本數據之間是獨立同分布的。因此對於某一個樣例,其高斯混合概率密度函數為:知道樣本的概率密度函數後,需要根據目標函數對模型參數進行估計,一般參數估計有經典估計方法和貝葉斯估計方法。
  • 【機器學習】詳解高斯混合模型及其實現
    在知乎上看到一篇有價值的文章,分享給學習機器學習、深度學習、智能科學的朋友:高斯混合模型(Gaussian Mixed Model
  • 高斯混合模型(GMM):理念、數學、EM算法和python實現
    高斯混合模型是一種流行的無監督學習算法。GMM方法類似於K-Means聚類算法,但是由於其複雜性,它更健壯,更有用。K-means聚類使用歐式距離函數來發現數據中的聚類。只要數據相對於質心呈圓形分布,此方法就可以很好地工作。
  • 【泡泡點雲時空】深度高斯混合模型用於點雲配準
    我們將在本文介紹深度高斯混合模型(DeepGMR),這種算法基於深度學習的、顯式地利用概率配準框架將配準問題建模為最小化高斯混合模型之間的KL熵。我們設計了一個神經網絡,用於提取原始點雲與高斯混合模型之間的關聯,這種關聯是與位姿無關的。另外,我們還設計了兩個可導計算單元,用來恢復兩個高斯混合模型之間的最優位姿變換。這種網絡構造可以學習與SE(3)無關的特徵空間,進一步得到兩個點雲的全局配準解。
  • 詳解 EM 算法和 高斯混合模型
    比如要將班上學生聚類,假設隱藏變量z是身高,那麼就是連續的高斯分布。如果按照隱藏變量是男女,那麼就是伯努利分布了。可以由前面闡述的內容得到下面的公式:      和      這就是我們之前模型中的結果在之前的混合高斯模型中已經給出。4. 總結      如果將樣本看作觀察值,潛在類別看作是隱藏變量,那麼聚類問題也就是參數估計問題,只不過聚類問題中參數分為隱含類別變量和其他參數,這猶如在x-y坐標系中找一個曲線的極值,然而曲線函數不能直接求導,因此什麼梯度下降方法就不適用了。
  • 使用高斯混合模型,讓聚類更好更精確(附數據、代碼、學習資源)
    在我們開始討論高斯混合模型的本質之前,讓我們快速回顧一些基本概念。請注意:如果您已經熟悉了聚類背後的思想以及K-means聚類算法的工作原理,可以直接跳到第4節「高斯混合模型簡介」。不再使用基於距離的模型,而是使用基於分布的模型,這就是高斯混合模型出現在本文的意義!「高斯混合模型(Gaussian Mixture Models ,GMMs)假設存在一定數量的高斯分布,並且每個分布代表一個簇。高斯混合模型傾向於將屬於同一分布的數據點分組在一起。」
  • 獨家 | 使用高斯混合模型,讓聚類更好更精確(附數據&代碼&學習資源)
    「高斯混合模型是我在本文中即將要討論的一種聚類算法。」想要預測你最喜歡的產品銷售量嗎?或者你想要通過不同客戶群體的視角來剖析客戶流失。不管是什麼應用場景,你都會發現高斯混合模型是非常有用的。本文將採用自下而上的方法。首先,我們學習聚類的基礎知識,包括快速回顧K-means算法,然後,我們將深入研究高斯混合模型的概念,並用Python實現它們。
  • 推薦 :使用高斯混合模型,讓聚類更好更精確(附數據&代碼&學習資源)
    「高斯混合模型是我在本文中即將要討論的一種聚類算法。」想要預測你最喜歡的產品銷售量嗎?或者你想要通過不同客戶群體的視角來剖析客戶流失。不管是什麼應用場景,你都會發現高斯混合模型是非常有用的。本文將採用自下而上的方法。首先,我們學習聚類的基礎知識,包括快速回顧K-means算法,然後,我們將深入研究高斯混合模型的概念,並用Python實現它們。
  • 理解高斯混合模型中期望最大化的M-Step
    在本篇文章中將解釋高斯混合模型(GMM)的關鍵部分背後的數學原理,即期望最大化(EM),以及如何將這些概念轉換為Python。 這個故事的重點是EM或M-Step。  注意:這不是有關端到端GMM算法的全面說明。 要進行更深入的研究,請參閱我們以前翻譯的文章。
  • 相異數據的等距高斯過程潛在變量模型
    概率模型。上述方法的一個共同特點是,它們在從高維到低維的映射中學習特徵,而不是由低維到高維學習。這使得這些方法對於可視化非常有用。生成模型允許我們在高維空間中製作新樣本。與我們特別相關的是高斯過程潛變量模型(GP-LVM),GP-LVM 學習了一個隨機映射 f: Rq→RD 以及潛在表示 z,這是通過在高斯過程之前將映射邊緣化來實現的。
  • MATLAB | 高斯混合模型(GMM)的EM算法及二維時概率密度曲面、置信橢圓繪製
    ') else disp(['GMM模型收斂,參數均方根誤差為',num2str(R)]) end break; end LMu=Mu; LSigma=Sigma; LPi=Pi;
  • 生成模型學習筆記:從高斯判別分析到樸素貝葉斯
    3 高斯判別分析高斯判別分析(GDA)是一個生成模型,其中 p(x|y) 是多元高斯正態分布。3.1 多元高斯正態分布在多元正態分布中,一個隨機變量是一個在維度為 n 的 Rn 空間中的矢量值。4.1 高斯判別分析我們再來談談二元分類的問題,我們可以用多元高斯模型對 p(x|y) 進行建模。
  • 如何用潛類別混合效應模型(Latent Class Mixed Model ,LCMM)分析老年痴呆年齡數據
    p=24647背景和定義線性混合模型假設 N 個受試者的群體是同質的,並且在群體水平上由獨特的曲線 Xi(t)β 描述。相比之下,潛在類別混合模型在於假設人口是異質的,並且由 G 潛在類別的受試者組成,其特徵是 G 平均軌跡曲線。潛類別混合模型潛在類別成員由離散隨機變量 ci 定義,如果主題 i 屬於潛在類別 g (g = 1, …,G),則該變量等於 g。
  • 一種利用推斷網絡對高斯過程模型進行有效推斷的方法
    論文資訊理論文標題:Scalable Training of Inference Networks for Gaussian-Process Models論文來源:(ICML2019)https://arxiv.org/abs/1905.10969論文代碼:https://github.com/thjashin/gp-infer-net2.背景梳理對於大數據集,高斯過程模型的推斷是很困難的