高斯-赛得尔迭代式 c++_高斯混合模型(Gaussian Mixture Model)与EM算法原理(一)
高斯混合模型(Gaussian Mixture Model)是機器學習中一種常用的聚類算法,本文介紹了其原理,并推導了其參數估計的過程。主要參考Christopher M. Bishop的《Pattern Recognition and Machine Learning》。
以粗體小寫字母表示向量,粗體大寫字母表示矩陣;標量不加粗,大寫表示常數。
1. 高斯分布
高斯分布(Gaussian distribution),也稱為正態分布(normal distribution),是一種常用的連續變量分布的模型。若單個隨機變量
服從均值為 ,方差為 的高斯分布,記為 ,則其概率密度函數為:對于一個
維的向量 ,若其各元素服從均值為向量 ,協方差矩陣為 的多元高斯分布,記為 ,則概率密度為:其中
為 維均值向量, 為 的協方差矩陣, 表示 的行列式。(1)式中,指數部分的二次型
稱為 到 的馬哈拉諾比斯距離(馬氏距離,Mahalanobis distance);當 為單位矩陣時退化為歐幾里得距離(Euclidean distance)。多元高斯分布密度函數的等高線即 為常數時 的方程,是橢球方程(Ellipsoid - Wikipedia)。2. 高斯混合模型(Gaussian Mixture Model)
多個高斯分布的線性疊加能擬合非常復雜的密度函數;通過足夠多的高斯分布疊加,并調節它們的均值,協方差矩陣,以及線性組合的系數,可以精確地逼近任意連續密度([1], Section 2.3.9, p111)。
我們考慮
個高斯分布的線性疊加,這個高斯混合分布(Gaussian mixture distiburion)的概率密度函數為:其中,
表示參數為 的高斯分布的概率密度。我們稱(2)式為一個高斯混合(Mixture of Gaussians, Gaussian Mixture)。其中每個高斯密度函數稱為混合的一個分模型(component),有自己的均值
和協方差矩陣 。(2)式中的參數
是模型的混合系數(mixing coefficients)。將(2)式左右兩側對 積分,得到此外,由于
, ,所以 。即混合系數應滿足 。(更一般地,混合模型也可以是其他任意分布的疊加。)
由全概率公式,
的邊緣分布(marginal distribution)的概率密度為:上式與(2)式等價,其中
可以看作選擇第 個分模型的先驗概率(prior probability), 是 對 的條件概率密度。在觀測到
后,其來自第 個分模型的后驗概率(posterior probability) 稱為第 個分模型的響應度(responsibility)。下圖所示為包含兩個一維分模型的高斯混合:
兩個一維分模型的高斯混合3. 隱變量 & 完全數據
引入一個
維的二值型隨機變量 ,來表示樣本 由哪一分模型產生。 滿足這樣的條件: ,且 ,即其 個元素中,有且只有一個為1,其余為0。 表示樣本 由分模型 抽樣得到。可以看出, 一共有 種可能的狀態。 的邊緣分布由混合系數給出: 。也可寫成如下形式:考慮由以下方式產生樣本
:記高斯混合模型的參數為
, , ,則這個過程可由如下的graphical model表示[1]:高斯混合模型的graphical model變量
稱為隱變量(latent variable),包含 取值的樣本稱為完全數據(complete data),只含有 取值的樣本稱為不完全數據(incomplete data),給定
后 的條件概率密度為:或者寫成如下形式:
的邊緣分布為聯合概率分布 對 的所有可能狀態求和:也可由下面的式子得到:
這表明
的邊緣分布就是高斯混合的形式。4. 后驗概率 & 響應度
根據貝葉斯定理(Bayes' theorem - Wikipedia),觀測到
后,其來自第 個分模型的后驗概率(posterior responsibility)為:上式中,
和 為概率, 和 為概率密度。將上式定義為:
,稱為第 個分模型對 的響應度(responsibility)[2]。對于樣本集
,記 對應的隱變量為 , ,則第 個分模型對 的響應度為:5. 對數似然函數 & 最大似然估計
現在有一個樣本集
,我們假設 是由一個高斯混合模型產生的,要估計這個模型的參數: , , 。樣本集
(不完全數據)的似然函數(likelihood function)為:似然函數中的連乘求導比較麻煩,取自然對數將其轉換成對數的和,得到對數似然函數(the log of the likelihood function):
其中,
最大似然估計(maximum likelihood estimation),即通過求似然函數的最大值來估計概率模型的參數。用最大似然估計來計算高斯混合模型的參數,形成如下的優化問題:
采用拉格朗日乘子法來求極值,拉格朗日函數為:
先將
對 求梯度。因為所以,
注意上式中
即為響應度 ,所以有:令
,則 ,左乘
,整理得定義
,則 可理解為被分配到第 個分模型(聚類)的“有效“的樣本數。對
中各元素求偏導:接下來涉及矩陣求導(Matrix calculus - Wikipedia),要復雜一些,這里不做推導,按參考文獻[1]Chapter 9的公式(9.19),給出
的結果:對
求偏導并令其為0:注意到上式左右兩邊乘以
可湊出 ,所以有上式對
求和得又
所以
,進而 。綜上,對數似然函數
的極值點滿足的條件為:需要注意的是,上式并未給出高斯混合模型的解析解/閉式解(analytical soluiton/closed-form solution),因為響應度
由式(4)給出,而參數 未知,故 無法計算。不過,根據(6)式可使用迭代算法來計算模型參數。
6. EM算法計算高斯混合模型的參數見后續。
參考文獻
[1] Christopher M. Bishop. Pattern Recognition and Machine Learning, Springer, 2006.
[2] 李航,統計學習方法,清華大學出版社,2012年。
總結
以上是生活随笔為你收集整理的高斯-赛得尔迭代式 c++_高斯混合模型(Gaussian Mixture Model)与EM算法原理(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BODY background=自适应大
- 下一篇: react router 级联路由_前端