導航:首頁 > 源碼編譯 > 混合正態分布em演算法

混合正態分布em演算法

發布時間:2024-05-25 11:51:30

『壹』 單高斯模型SGM & 高斯混合模型GMM

在了解高斯混合模型之前,我們先來看看什麼是高斯分布,高斯分布大家應該都比較熟悉了,就是我們平時所說的正態分布,也叫高斯分布。正態分布是一個在數學、物理及工程等領域都非常重要的概率分布,在統計學的許多方面有著重大的影響力。

正態分布的特點
集中性:正態曲線的高峰位於正中央,即均數所在的位置。
對稱性:正態曲線以均數為中心,左右對稱,曲線兩端永遠不與橫軸相交。
均勻變動性:正態曲線由均數所在處開始,分別向左右兩側逐漸均勻下降。

若隨機變數 服從一個數學期望為 、方差為 的正態分布,記為 。其中期望值 決定了其位置,標准差 決定了分布的幅度。當 = 0, = 1時,正態分布是標准正態分布。

正態分布有極其廣泛的實際背景, 生產與科學實驗中很多隨機變數的概率分布都可以近似地用正態分布來描述 。例如,在生產條件不變的情況下,產品的強力、抗壓強度、口徑、長度等指標;同一種生物體的身長、體重等指標;同一種種子的重量;測量同一物體的誤差;彈著點沿某一方向的偏差;某個地區的年降水量;以及理想氣體分子的速度分量,等等。一般來說,如果一個量是由許多微小的獨立隨機因素影響的結果,那麼就可以認為這個量具有正態分布(見中心極限定理)。從理論上看,正態分布具有很多良好的性質 ,許多概率分布可以用它來近似;還有一些常用的概率分布是由它直接導出的,例如對數正態分布、t分布、F分布等。

高斯模型有單高斯模型(SGM)和混合高斯模型(GMM)兩種。

概率密度函數服從上面的正態分布的模型叫做單高斯模型,具體形式如下:

當樣本數據 是一維數據(Univariate)時,高斯模型的概率密度函數為:


其中: 為數據的均值, 為數據的標准差。

當樣本數據 是多維數據(Univariate)時,高斯模型的概率密度函數為:

其中: 為數據的均值, 為協方差,d為數據維度。

高斯混合模型(GMM)是單高斯概率密度函數的延伸,就是用多個高斯概率密度函數(正態分布曲線)精確地量化變數分布,是將變數分布分解為若干基於高斯概率密度函數(正態分布曲線)分布的統計模型。

用通俗一點的語言解釋就是, 個單高斯模型混合在一起,生成的模型,就是高斯混合模型。這 個子模型是混合模型的隱變數(Hidden variable)。一般來說,一個混合模型可以使用任何概率分布,這里使用高斯混合模型是因為高斯分布具備很好的數學性質以及良好的計算性能。

GMM是工業界使用最多的一種聚類演算法。它本身是一種概率式的聚類方法,假定所有的樣本數據X由K個混合多元高斯分布組合成的混合分布生成。

高斯混合模型的概率密度函數可以表示為:

其中:
是觀察數據屬於第 個子模型的概率, ;
是第 個的單高斯子模型的概率密度函數, 或
,具體函數見上方單高斯模型的概率密度函數。

參數估計有多種方法,有矩估計、極大似然法、一致最小方差無偏估計、最小風險估計、同變估計、最小二乘法、貝葉斯估計、極大驗後法、最小風險法和極小化極大熵法等。最基本的方法是最小二乘法和極大似然法。

極大似然估計的思想是 :隨機試驗有多個可能的結果,但在一次試驗中,有且只有一個結果會出現,如果在某次試驗中,結果w出現了,則認為該結果發生的概率最大。

1)寫出似然函數:
假設單個樣本的概率函數為 ,對每個樣本的概率函數連乘,就可以得到樣本的似然函數

2)對似然函數取對數:

目的是為了讓乘積變成加法,方便後續運算

3)求導數,令導數為0,得到似然方程:
和 在同一點取到最大值,所以可以通過對 求導,令導數為零,實現同個目的

4)解似然方程,得到的參數即為所求

對於單高斯模型,可以使用極大似然估計(MLE)來求解出參數的值。

單高斯模型的對數似然函數為:





上式分別對 和 求偏導數,然後令其等於0,可以得到對應的參數估計值:

如果依然按照上面的極大似然估計方法求參數

GMM的對數似然函數為:

對上式求各個參數的偏導數,然後令其等於0,並且還需要附件一個條件: 。
我們會發現,直接求導無法計算出參數。所以我們需要用其它方式去解決參數估計問題,一般情況下我們使用的是迭代的方法,用期望最大演算法(Expectation Maximization,EM)進行估計。

EM演算法的具體原理以及示例見我的另外一篇文章。

『貳』 EM演算法求混合高斯分布的參數時,圖中的T是什麼意思

這里的T是表示一個函數的表達式,也就是是說T(U,S,X,Y,Z......) 實際上是t的函數,其中,t是函數(也就是因變數),U,S,X,Y,Z......都是函數t的自變數。T是函數關系。 y=f(x) =kx+b y就是x的函數,f表示的一種函數關系,只是這里的函數關系比較抽象,並不是具體的,而若是給出具體的函數關系就是kx+b這樣的表達式了。 只是一個是抽象的關系, 一個是具體的關系而已 而樓主給的函數是個多元函數,也就是說,U,S,X,Y,Z......等共同作用影響函數t的變化。 這個函數關系的描述就是U-宇宙;S空間,XYZ,......事件,順序等多個因素共同一種方式T來影響時間t的變化。估計這個是相對論或者霍金的時間理論那的東西。

『叄』 極大似然估計和EM演算法初步

本文來自我的個人博客 https://www.zhangshenghai.com/posts/1422/

極大似然估計是在知道結果的情況下,尋求使該結果出現可能性極大的條件,以此作為估計值。在維基網路中,極大似然估計的定義是這樣的:

首先從一個例子入手,假設我們需要調查某個地區的人群身高分布,那麼先假設這個地區人群身高服從正態分布 。注意,極大似然估計的前提是要假設數據總體的分布, 不知道數據分布是無法使用極大似然估計的 。假設的正態分布的均值和方差未知,這個問題中極大似然估計的目的就是要估計這兩個參數。

根據概率統計的思想,可以依據樣本估算總體,假設我們隨機抽到了1000個人,根據這1000個人的身高來估計均值 和方差 。

將其翻譯成數學語言:為了統計該地區的人群身高分布,我們獨立地按照概率密度 抽取了1000個樣本組成樣本集 ,我們想通過樣本集 來估計總體的未知參數 。這里概率密度 服從高斯分布 ,其中的未知參數是 。

那麼怎樣估算 呢?

這里每個樣本都是獨立地從 中抽取的,也就是說這1000個人之間是相互獨立的。若抽到 的概率是 ,抽到 的概率是 ,那麼同時抽到它們的概率就是 。同理,同時抽到這1000個人的概率就是他們各自概率的乘積,即為他們的聯合概率,這個聯合概率就等於這個問題的似然函數:

對 L 取對數,將其變成連加的,稱為對數似然函數,如下式:

對似然函數求所有參數的偏導數,然後讓這些偏導數為0,假設有n個參數,就可以得到n個方程組成的方程組,方程組的解就是似然函數的極值點了,在似然函數極大的情況下得到的參數值 即為我們所求的值:

極大似然估計是建立在這樣的思想上:已知某個參數能使這個樣本出現的概率極大,我們當然不會再去選擇其他小概率的樣本,所以乾脆就把這個參數作為估計的真實值。

和極大似然估計一樣,EM演算法的前提也是要假設數據總體的分布, 不知道數據分布是無法使用EM演算法的

概率模型有時既含有觀測變數,又含有隱變數。如果概率模型的變數都是觀測變數,那麼給定數據,可以直接用極大似然估計法,或貝葉斯估計法估計模型參數。但是,當模型含有隱變數時,就不能簡單地使用這些估計方法。EM演算法就是含有隱變數的概率模型參數的極大似然估計法,或極大後驗概率估計法。

函數:完全數據的對數似然函數 關於在給定觀測數據 和當前參數 下對未觀測數據 的條件概率分布 的期望

含有隱變數 的概率模型,目標是極大化觀測變數 關於參數 的對數似然函數,即

輸入:觀測隨機變數數據 ,隱隨機變數數據 ,聯合分布 ,條件分布 ;
輸出:模型參數

『肆』 GMM模型是什麼

就是用高斯概率密度函數(正態分布曲線)精確地量化事物,將一個事物分解為若乾的基於高斯概率密度函數(正態分布曲線)形成的模型。GMMs已經在數值逼近、語音識別、圖像分類、圖像去噪、圖像重構、故障診斷、視頻分析、郵件過濾、密度估計、目標識別與跟蹤等領域取得了良好的效果。

對圖像背景建立高斯模型的原理及過程:圖像灰度直方圖反映的是圖像中某個灰度值出現的頻次,也可以認為是圖像灰度概率密度的估計。如果圖像所包含的目標區域和背景區域相比比較大,且背景區域和目標區域在灰度上有一定的差異,那麼該圖像的灰度直方圖呈現雙峰-谷形狀。

主要步驟

1、為圖像的每個像素點指定一個初始的均值、標准差以及權重。

2、收集N(一般取200以上,否則很難得到像樣的結果)幀圖像利用在線EM演算法得到每個像素點的均值、標准差以及權重)。

3、從N+1幀開始檢測,檢測的方法:

對每個像素點:

1)將所有的高斯核按照ω/σ降序排序

2)選擇滿足公式的前M個高斯核:M= arg min(ω/σ>T)

3)如果當前像素點的像素值在中有一個滿足:就可以認為其為背景點。

『伍』 05 EM演算法 - 高斯混合模型 - GMM

04 EM演算法 - EM演算法收斂證明

GMM (Gaussian Mixture Model, 高斯混合模型)是指該演算法由多個高斯模型線性疊加混合而成。每個高斯模型稱之為component。

GMM演算法 描述的是數據的本身存在的一種分布,即樣本特徵屬性的分布,和預測值Y無關。顯然GMM演算法是無監督的演算法,常用於聚類應用中,component的個數就可以認為是類別的數量。

回到昨天說的例子:隨機選擇1000名用戶,測量用戶的身高;若樣本中存在男性和女性,身高分別服從高斯分布N(μ1,σ1)和N(μ2,σ2)的分布,試估計參數:μ1,σ1,μ2,σ2;

1、如果明確的知道樣本的情況(即男性和女性數據是分開的),那麼我們使用極大似然估計來估計這個參數值。

2、如果樣本是混合而成的,不能明確的區分開,那麼就沒法直接使用極大似然估計來進行參數的估計。

我們可以認為當前的1000條數據組成的集X,是由兩個高斯分布疊加而成的(男性的分布和女性的分布)。

如果能找到一種辦法把每一個高斯分布對應的參數π、 μ、σ求出來,那麼對應的模型就求解出來了。

如果模型求解出來後,如何對數據進行聚類?

這個公式求出來的分別是男性和女性身高分布的概率密度,如果把π、 μ、σ都求出來,以後我們可以構建出一個 能夠根據樣本特徵 計算出樣本屬於男性或女性的可能性。

實際做樣本分類的時候,我們把樣本X的特徵x1~xn分別代入兩個公式中,求出來的兩個結果分別是:樣本X的性別是男、是女的可能性。如果是男的可能性大於是女的可能性,我們就把樣本X歸入男性的分類。

假定 GMM 由k個Gaussian分布線性疊加而成,那麼概率密度函數如下:

分析第1個等式:
p(x): 概率密度函數,k個Gaussian分布線性疊加而成的概率密度函數。
∑p(k)p(x|k): k個某種模型疊加的概率密度函數。
p(k): 每個模型占的權重,即上面提到的π。
p(x|k): 給定類別k後,對應的x的概率密度函數。

分析第2個等式: 目標 - 將公式寫成高斯分布的樣子。
π k : 即p(k)
p(x;μ k ,∑ k ): 多元高斯(正態)分布。有了觀測數據x後,在 給定了條件 下的高斯分布。這個 條件 1、第k個分類的均值μ k ; 2、第k個分類的方差∑ k ;

深入分析p(x;μ k ,∑ k )的參數:
如果樣本有n個特徵,所有的特徵x1~xn一起服從一個多元的高斯分布(正態分布),所有特徵的均值應該是一個向量 (μ 1 ~μ n );
μ k : 第k個分類的情況下(第k個高斯分布的情況下對應的每一列的均值);μ k = (μ k1 ~μ kn )

∑ k : 協方差矩陣(對稱陣)。現在有n個特徵,協方差矩陣是一個n×n的矩陣。現在我們要算的是:

cov(x1,x1),cov(x1,x2),...,cov(x1,xn)

cov(x2,x1),cov(x2,x2),...,cov(x2,xn)
....
cov(xn,x1),cov(x1,x2),...,cov(xn,xn)

其中, 對角線 cov(x1,x1)、cov(x2,x2), ... ,cov(xn,xn)中,x1和x1的協方差 = x1的方差;即cov(x1,x1) = var(x1);所以 對角線上兩個特徵的協方差 = 對應的特徵的方差。

協方差 (Covariance)在 概率論 和 統計學 中用於衡量兩個變數的總體 誤差 。而 方差 是協方差的一種特殊情況,即當兩個變數是相同的情況。

協方差表示的是兩個變數的總體的 誤差 ,這與只表示一個變數誤差的 方差 不同。 如果兩個 變數 的變化趨勢一致,也就是說如果其中一個大於自身的期望值,另外一個也大於自身的期望值,那麼兩個變數之間的協方差就是正值。 如果兩個變數的變化趨勢相反,即其中一個大於自身的期望值,另外一個卻小於自身的期望值,那麼兩個變數之間的協方差就是負值。

理解了公式後,再來看看公式在圖像上是如何體現的:

如果樣本X只有一個特徵x1,在二維的坐標繫上的表示出來。特徵x1是由n個單變數樣本的高斯分布疊加而成的。向量x1 k = ∑ k (x1 (1) ,x1 (2) ,~,x1 (n) ),如k=(男、女),累加男性分類下的特徵高斯分布和女性分類下的高斯分布;

圖中 紅色曲線 表示原有數據的分布情況,我認為這個原有數據是由多個比較的高斯分布疊加而成的, 藍色曲線 表示單個單個高斯分布的分布情況。向量x1 = (x1 (1) ,x1 (2) ,~,x1 (n) );

PS: 藍1+藍2=紅 體現的就是公式 p(x) = ∑πp(x;μ,∑k);

在得知數據的特徵 x=(x1~xn) 後,如果我們想把數據合理得聚類到一個分類中,我們該如何去計算呢?

既然我已經得到了k個高斯分布對應的概率密度函數(現在設k=3,共3個分類),將當前特徵的x=(x1~xn)代入我們的概率密度函數: p(x) = ∑πp(x;μ,∑k);

我們分別計算p(藍1)、p(藍2)、p(藍3),藍色三條線各對應k分類中的一個,哪個數大,我認為當前的樣本該分到哪一類。

GMM演算法的兩個前提:
1、數據服從高斯分布;
2、我們人為定義了分類個數k。

問:我們人為假定了高斯分布的分類個數k,就類似於我們聚簇時分的聚簇中心個數一樣。參數π、μ、σ該如何求出來?

答:和K-Means演算法一樣,我們可以用 EM演算法 來求解這個問題。 GMM也滿足EM演算法的聚類思想,首先人為得定義了聚類的個數k,從數據特徵X中發掘潛在關系的一種模型。而且我還默認數據是服從多個高斯分布的。

GMM演算法中的隱含條件是:第k個模型占的權重 - 、 第k個高斯分布的情況下對應的每一列的均值 - 、協方差矩陣 cov(xi,xj) - ;因為本質上我們是知道數據原有的分類狀況的,只是無法觀測到隱含在數據中的這些特性,使用EM的思想可以迭代得求解出這些隱含變數。

對聯合概率密度函數求對數似然函數:

對聯合概率密度函數求對數後,原本 連乘 的最大似然估計變成了 連加 的函數狀態。

EM演算法求解 - E步:

套用公式後,我們可以假定隱含變數z的分布:Q(z (i) = j);
我們認為分布wj (i) = 第i個觀測值對應的隱含分類第z (i) 類; = 以(看不見的參數π、μ、∑)為參數的情況下,輸入第i觀測值的特徵x後得到的分類z (i) 類;

EM演算法求解 - M步:
M步第1行就是上一章通過化簡找到 下界 的那個函數:

1、對均值求偏導:

2、對方差求偏導:

3、對概率使用拉格朗日乘子法求解:

06 EM演算法 - 案例一 - EM分類初識及GMM演算法實現

『陸』 數據挖掘的十大經典演算法,總算是講清楚了,想提升自己的趕快收藏

一個優秀的數據分析師,除了要掌握基本的統計學、數據分析思維、數據分析工具之外,還需要掌握基本的數據挖掘思想,幫助我們挖掘出有價值的數據,這也是數據分析專家和一般數據分析師的差距所在。

國際權威的學術組織the IEEE International Conference on Data Mining (ICDM) 評選出了數據挖掘領域的十大經典演算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART.

不僅僅是選中的十大演算法,其實參加評選的18種演算法,實際上隨便拿出一種來都可以稱得上是經典演算法,它們在數據挖掘領域都產生了極為深遠的影響。今天主要分享其中10種經典演算法,內容較干,建議收藏備用學習。

1. C4.5

C4.5演算法是機器學習演算法中的一種分類決策樹演算法,其核心演算法是ID3演算法. C4.5演算法繼承了ID3演算法的優點,並在以下幾方面對ID3演算法進行了改進:

1) 用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足;

2) 在樹構造過程中進行剪枝;

3) 能夠完成對連續屬性的離散化處理;

4) 能夠對不完整數據進行處理。

C4.5演算法有如下優點:產生的分類規則易於理解,准確率較高。其缺點是:在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,因而導致演算法的低效(相對的CART演算法只需要掃描兩次數據集,以下僅為決策樹優缺點)。

2. The k-means algorithm 即K-Means演算法

k-means algorithm演算法是一個聚類演算法,把n的對象根據他們的屬性分為k個分割,k < n。它與處理混合正態分布的最大期望演算法很相似,因為他們都試圖找到數據中自然聚類的中心。它假設對象屬性來自於空間向量,並且目標是使各個群組內部的均 方誤差總和最小。

3. Support vector machines

支持向量機,英文為Support Vector Machine,簡稱SV機(論文中一般簡稱SVM)。它是一種監督式學習的方法,它廣泛的應用於統計分類以及回歸分析中。支持向量機將向量映射到一個更 高維的空間里,在這個空間里建立有一個最大間隔超平面。在分開數據的超平面的兩邊建有兩個互相平行的超平面。分隔超平面使兩個平行超平面的距離最大化。假定平行超平面間的距離或差距越大,分類器的總誤差越小。一個極好的指南是C.J.C Burges的《模式識別支持向量機指南》。van der Walt 和 Barnard 將支持向量機和其他分類器進行了比較。

4. The Apriori algorithm

Apriori演算法是一種最有影響的挖掘布爾關聯規則頻繁項集的演算法。其核心是基於兩階段頻集思想的遞推演算法。該關聯規則在分類上屬於單維、單層、布爾關聯規則。在這里,所有支持度大於最小支持度的項集稱為頻繁項集,簡稱頻集。

5. 最大期望(EM)演算法

在統計計算中,最大期望(EM,Expectation–Maximization)演算法是在概率(probabilistic)模型中尋找參數最大似然 估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(Latent Variabl)。最大期望經常用在機器學習和計算機視覺的數據集聚(Data Clustering)領域。

6. PageRank

PageRank是Google演算法的重要內容。2001年9月被授予美國專利,專利人是Google創始人之一拉里·佩奇(Larry Page)。因此,PageRank里的page不是指網頁,而是指佩奇,即這個等級方法是以佩奇來命名的。

PageRank根據網站的外部鏈接和內部鏈接的數量和質量倆衡量網站的價值。PageRank背後的概念是,每個到頁面的鏈接都是對該頁面的一次投票, 被鏈接的越多,就意味著被其他網站投票越多。這個就是所謂的「鏈接流行度」——衡量多少人願意將他們的網站和你的網站掛鉤。PageRank這個概念引自 學術中一篇論文的被引述的頻度——即被別人引述的次數越多,一般判斷這篇論文的權威性就越高。

7. AdaBoost

Adaboost是一種迭代演算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然後把這些弱分類器集合起來,構成一個更強的最終分類器 (強分類器)。其演算法本身是通過改變數據分布來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的准確率,來確定每個樣本的權 值。將修改過權值的新數據集送給下層分類器進行訓練,最後將每次訓練得到的分類器最後融合起來,作為最後的決策分類器。

8. kNN: k-nearest neighbor classification

K最近鄰(k-Nearest Neighbor,KNN)分類演算法,是一個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。該方法的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。

9. Naive Bayes

在眾多的分類模型中,應用最為廣泛的兩種分類模型是決策樹模型(Decision Tree Model)和樸素貝葉斯模型(Naive Bayesian Model,NBC)。 樸素貝葉斯模型發源於古典數學理論,有著堅實的數學基礎,以及穩定的分類效率。

同時,NBC模型所需估計的參數很少,對缺失數據不太敏感,演算法也比較簡單。理論上,NBC模型與其他分類方法相比具有最小的誤差率。 但是實際上並非總是如此,這是因為NBC模型假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的,這給NBC模型的正確分類帶來了一定影響。在屬 性個數比較多或者屬性之間相關性較大時,NBC模型的分類效率比不上決策樹模型。而在屬性相關性較小時,NBC模型的性能最為良好。

10. CART: 分類與回歸樹

CART, Classification and Regression Trees。 在分類樹下面有兩個關鍵的思想。第一個是關於遞歸地劃分自變數空間的想法(二元切分法);第二個想法是用驗證數據進行剪枝(預剪枝、後剪枝)。在回歸樹的基礎上的模型樹構建難度可能增加了,但同時其分類效果也有提升。

參考書籍:《機器學習實戰》

『柒』 高斯混合模型(GMM)及EM演算法的初步理解

高斯混合模型(Gaussian Mixed Model)指的是多個高斯分布函數的線性組合,理論上GMM可以擬合出任意類型的分布,通常用於解決同一集合下的數據包含多個不同的分布的情況(或者是同一類分布但參數不一樣,或者是不同類型的分布,比如正態分布和伯努利分布)。

如圖1,圖中的點在我們看來明顯分成兩個聚類。這兩個聚類中的點分別通過兩個不同的正態分布隨機生成而來。但是如果沒有GMM,那麼只能用一個的二維高斯分布來描述圖1中的數據。圖1中的橢圓即為二倍標准差的正態分布橢圓。這顯然不太合理,畢竟肉眼一看就覺得應該把它們分成兩類。

這時候就可以使用GMM了!如圖2,數據在平面上的空間分布和圖1一樣,這時使用兩個二維高斯分布來描述圖2中的數據,分別記為N(μ1,Σ1)和N(μ2,Σ2) 。圖中的兩個橢圓分別是這兩個高斯分布的二倍標准差橢圓。可以看到使用兩個二維高斯分布來描述圖中的數據顯然更合理。實際上圖中的兩個聚類的中的點是通過兩個不同的正態分布隨機生成而來。如果將兩個二維高斯分布N(μ1,Σ1)和N(μ2,Σ2) 合成一個二維的分布,那麼就可以用合成後的分布來描述圖2中的所有點。最直觀的方法就是對這兩個二維高斯分布做線性組合,用線性組合後的分布來描述整個集合中的數據。這就是高斯混合模型(GMM)。

高斯混合模型(GMM)的數學表示:

期望極大(Expectation Maximization)演算法,也稱EM演算法,是一種迭代演算法,由Dempster et. al 在1977年提出,用於含有隱變數的概率參數模型的極大似然估計。

EM演算法作為一種數據添加演算法,在近幾十年得到迅速的發展,主要源於當前科學研究以及各方面實際應用中數據量越來越大的情況下,經常存在數據缺失或者不可用的的問題,這時候直接處理數據比較困難,而數據添加辦法有很多種,常用的有神經網路擬合、添補法、卡爾曼濾波法等,但是EM演算法之所以能迅速普及主要源於它演算法簡單,穩定上升的步驟能相對可靠地找到「最優的收斂值」。

(個人的理解就是用含有隱變數的含參表達式不斷擬合,最終能收斂並擬合出不含隱變數的含參表達式)

模型的EM訓練過程,直觀的來講是這樣:我們通過觀察采樣的概率值和模型概率值的接近程度,來判斷一個模型是否擬合良好。然後我們通過調整模型以讓新模型更適配采樣的概率值。反復迭代這個過程很多次,直到兩個概率值非常接近時,我們停止更新並完成模型訓練。現在我們要將這個過程用演算法來實現,所使用的方法是模型生成的數據來決定似然值,即通過模型來計算數據的期望值。通過更新參數μ和σ來讓期望值最大化。這個過程可以不斷迭代直到兩次迭代中生成的參數變化非常小為止。該過程和k-means的演算法訓練過程很相似(k-means不斷更新類中心來讓結果最大化),只不過在這里的高斯模型中,我們需要同時更新兩個參數:分布的均值和標准差.[3]

GMM常用於聚類。如果要從 GMM 的分布中隨機地取一個點的話,實際上可以分為兩步:首先隨機地在這 K 個 Component 之中選一個,每個 Component 被選中的概率實際上就是它的系數Πk ,選中 Component 之後,再單獨地考慮從這個 Component 的分布中選取一個點就可以了──這里已經回到了普通的 Gaussian 分布,轉化為已知的問題。

根據數據來推算概率密度通常被稱作 density estimation 。特別地,當我已知(或假定)概率密度函數的形式,而要估計其中的參數的過程被稱作『參數估計』。

(推導和迭代收斂過程這里省略,可參考資料1)

一個實際的例子:用GMM對iris數據集進行聚類,並通過make_ellipses表示出來

make_ellipses方法概念上很簡單,它將gmm對象(訓練模型)、坐標軸、以及x和y坐標索引作為參數,運行後基於指定的坐標軸繪制出相應的橢圓圖形。

在特定條件下,k-means和GMM方法可以互相用對方的思想來表達。在k-means中根據距離每個點最接近的類中心來標記該點的類別,這里存在的假設是每個類簇的尺度接近且特徵的分布不存在不均勻性。 這也解釋了為什麼在使用k-means前對數據進行歸一會有效果。高斯混合模型則不會受到這個約束 ,因為它對每個類簇分別考察特徵的協方差模型。

K-means演算法可以被視為高斯混合模型(GMM)的一種特殊形式。 整體上看,高斯混合模型能提供更強的描述能力,因為聚類時數據點的從屬關系不僅與近鄰相關,還會依賴於類簇的形狀。n維高斯分布的形狀由每個類簇的協方差來決定。在協方差矩陣上添加特定的約束條件後,可能會通過GMM和k-means得到相同的結果。

在k-means方法中使用EM來訓練高斯混合模型時對初始值的設置非常敏感。而對比k-means,GMM方法有更多的初始條件要設置。實踐中不僅初始類中心要指定,而且協方差矩陣和混合權重也要設置。可以運行k-means來生成類中心,並以此作為高斯混合模型的初始條件。由此可見並兩個演算法有相似的處理過程,主要區別在於模型的復雜度不同。

高斯混合模型的基本假設是 已知類別的比例 和 類別的個數 ,但是不知道每個樣例的具體標簽,據此用EM的模式為每個樣本進行最優的標注。也就是說它適合的是 無標簽學習的分類問題 ,並且需要已知基本假設。

整體來看,所有無監督機器學習演算法都遵循一條簡單的模式:給定一系列數據,訓練出一個能描述這些數據規律的模型(並期望潛在過程能生成數據)。 訓練過程通常要反復迭代,直到無法再優化參數獲得更貼合數據的模型為止。

【1】https://blog.csdn.net/jinping_shi/article/details/59613054  高斯混合模型(GMM)及其EM演算法的理解

【2】https://cloud.tencent.com/developer/news/231599    機器學習中的數學(4)-EM演算法與高斯混合模型(GMM)

【3】https://zhuanlan.hu.com/p/31103654    一文詳解高斯混合模型原理

閱讀全文

與混合正態分布em演算法相關的資料

熱點內容
oppor系列如何解除應用加密 瀏覽:599
程序員那麼可愛姜逸城初戀 瀏覽:496
modbustcp編程 瀏覽:491
實況為什麼安卓看不了 瀏覽:129
Java多線程Queue 瀏覽:95
雲伺服器499元三年 瀏覽:980
nbd源碼 瀏覽:847
x86在arm上編譯 瀏覽:8
linux怎麼配置網路 瀏覽:307
程序員想要的小禮物 瀏覽:187
java獲取網頁url 瀏覽:625
怎麼做解壓神器泡泡版 瀏覽:967
自己動手做一個c編譯器 瀏覽:930
手機如何鏈接谷歌伺服器地址 瀏覽:137
廢掉一個程序員的武功 瀏覽:249
java樹形演算法 瀏覽:642
通達信加鎖指標源碼怎麼看 瀏覽:755
將同名文件移動到部分同名文件夾 瀏覽:404
擺盪指標加壓力線源碼 瀏覽:916
新一代單片機特徵 瀏覽:770