高斯混合模型與EM演算法

2022-03-18 04:19:49 字數 1686 閱讀 7873

對於高斯混合模型是幹什麼的呢?它解決什麼樣的問題呢?它常用在非監督學習中,意思就是我們的訓練樣本集合只有資料,沒有標籤。

它用來解決這樣的問題:我們有一堆的訓練樣本,這些樣本可以一共分為k類,用z(i)表示。,但是具體樣本屬於哪類我們並不知道,現在我們需要建立乙個模型來描述這個訓練樣本的分布。這時, 我們就可以用高斯混合模型來進行描述。

怎麼入手呢?

我們這麼想,因為樣本集合潛在地是可以分為k類的,用z(i)表示第 i 樣本所屬的類別,所以z(i) 的範圍為從1至 k。對於我們可以用z(i)多項式分布模型來描述它的分布。然後呢,對於屬於潛同乙個類別內的樣本,假設它們服從高斯分布(這和高斯判別模型有點類似的)。然後呢,假設我們建立了乙個模型哈(其實它就是我們要講的高斯混合模型),然後,我們呢,我們表示乙個樣本x(i) 的分布在這個模型下可以用概率表示為:

(注意:對於上式中的多元正態分佈與多項式分布如果不太了解,可以看乙個我 之前寫的高斯判別分析模型與logistic 分類器與 softmax分類器,裡面有寫到)

然後,我們寫出它的擬然函式,如下所示:

雖然通過上面的分析,我們可以寫出相應的公式來,但是呢,很難去求解啊。那怎麼辦??

注意下面我們先假設哈:如果我們假設我們已經知道了我們所求的樣本x(i) 所屬於的類別為的 z(i) 話,那麼問題就會變得很簡單了,此時,擬然函式可以變為了這樣:

(上面的式子很容易理解的吧,其實就是用頻率來估計它們的期望。)

下面我們要做的就是利用em演算法,按照我們假設的思路來求。具體為:

重複下面的過程,直到收斂:{

什麼意思呢?其實第乙個步驟e-step中,我們要做的就是估計訓練集合中每乙個樣本屬於每乙個類別的概率的大小.怎麼求呢,我們可以用下面公式:

第二個步驟中,會想為什麼要這麼更新引數值呢?

其實想想很簡單:如果把它和 k-means的聚類演算法作比較,我們做發現是這樣的,在k-means的聚類演算法我們已經明確指定了乙個樣本所屬於的類別,而這裡呢,我們沒有明確去指定,而是都過概率的形式來指明的。所以,在更新引數時,我們通過概率對所以樣本進行加權了,概率表示了該樣本屬於第 j 類別的可能性的大小,加權目的就是在計算該類別的高斯分布的引數時,指定不同的樣本占有的比重不一樣,屬於該類別概率越大的樣本佔的權值越大。

最後說明的是,這樣em演算法是收斂的,另外,它也存在區域性極值的問題,所以呢, 我們可以通過多次不同的初始化值來解決哦。

混合高斯模型(GMM)與EM演算法

有乙個資料集d d d 中的每個資料點是這樣產生的,先從k個類別中選擇乙個類別,然後從該類別對應的資料產生分布中產生資料點。若k選1的對應的分布是multinoulli分布,每個類別對應的資料產生分布是不同的高斯分布,估計資料點x對應的分布。這個問題對應的模型就是乙個混合高斯模型,具體的資料產生過程...

EM 演算法之二 高斯混合模型與 EM

em演算法 expection maximizationalgorithm,em 是一種迭代演算法,通過e步和m步兩大迭代步驟,每次迭代都使極大似然函式增加。但是,由於初始值的不同,可能會使似然函式陷入區域性最優。辜麗川老師和其夫人發表的 基於 em演算法的gmm引數估計 提取碼 77c0 改進了這...

高斯混合模型以及EM演算法

高斯混合模型 gmm 顧名思義,就是資料可以看作是從數個高斯分布中生成出來的。雖然我們可以用不同的分布來隨意地構造 xx mixture model 但是 gmm是 最為流行。另外,mixture model 本身其實也是可以變得任意複雜的,通過增加 model 的個數,我們可以任意地逼近任何連續的...