EM算法像是k-means的應用場景,比如雙峯分佈的數據,k-means方法,將其看成2-means聚類的方法處理場景。
k-means算法,也被稱爲k-平均或k-均值,是一種廣泛使用的聚類算法,或者成爲其他聚類算法的基礎。
假定輸入樣本爲,則算法步驟爲:
(1)選擇初始的k個簇中心u1,u2,...,uk
(2)將樣本xi標記爲距離簇中心最近的簇:
(3)更新簇中心:
(4)重複最後兩步,直到滿足終止條件。(迭代次數/簇中心變化率/最小平方誤差MSE)
思考:經典的K-means聚類方法,能夠非常方便的將未標記的樣本分成若干簇;但無法給出某個樣本屬於該簇的後驗概率。
從直觀理解猜測GMM的參數估計
隨機變量X是有K個高斯分佈混合而成,取各個高斯分佈的概率爲,第i個高斯分佈的均值爲。若觀測到隨機變量X的一系列樣本,試估計參數。
建立目標函數
由於在對數函數裏面又有加和,我們沒法直接用求導解方程的辦法直接求得極大值。分成兩步。
第一步:估算數據來自哪個組份
估計數據由每個組份生成的概率,對於每個樣本xi,它由第k個組份生成的概率爲。
上式中的也是待估計的值,因此採樣迭代法:在計算。但是(1)需要先驗給定;(2)亦可看成組份k在生成數據xi時所做的貢獻。
第二步:估計每個組份的參數
對於所有的樣本點,對於組份k而言,可看做生成了這些點。組份k是一個標準的高斯分佈。
EM算法的提出
(1)假定有訓練集包含m個獨立樣本,希望從中找到該組數據的模型P(x,z)的參數。
(2)取對數似然函數
其中z是隱隨機變量,不方便直接找到參數估計。策略:計算下界,求該下界的最大值;重複該過程,直到收斂到局部最大值。
(圖像摘自七月算法)
(3)Jensen不等式。令Qi是z的某一個分佈,Oi》0,有:
(圖像摘自七月算法)
(4)爲了使等號成立
(5)進一步分析
(6)EM算法整體框架
從理論公式推導GMM
(1)隨機變量X是有K個高斯分佈混合而成,取各個高斯分佈的概率爲,第i個高斯分佈的均值爲ui,方差爲。若觀測到隨機變量X的一系列樣本,試估計參數。
(2)E-step
M-step
將多項分佈和高斯分佈的參數帶入
(3)對均值求偏導
令上式等於0,解出均值
同理,求偏導,等於0,得到高斯分佈的方差
(4)多項分佈的參數。
考察M-step的目標函數,對於,刪除常數項。則
(5)拉格朗日乘子法
由於多項分佈的概率和爲1,建立拉格朗日方程
這樣求解的一定非負,所以,不用考慮》0這個條件
求偏導,等於0
(6)回到(2)E-step繼續迭代,直到達到局部最優值
帶有隱變量,往往可以用EM算法來求解。