主要是對Ng教授的machinelearning視頻學習和參考jerryLead講義整理(特別鳴謝~):
由“判別模型、生成模型與朴素貝葉斯方法 ”一節得知:
判別模型求的是條件概率p(y|x),
生成模型求的是聯合概率p(x,y) .即 = p(x|y) ∗ p(y)
常見的判別模型有線性回歸、對數回歸、線性判別分析、支持向量機、boosting、條件 隨機場、神經網絡等。
常見的生產模型有隱馬爾科夫模型、朴素貝葉斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine等。
所以這里說的高斯混合模型,朴素貝葉斯模型都是求p(x,y)聯合概率的。(下面推導會見原因)
套路小結: 凡是生產模型,目的都是求出聯合概率表達式,然后對聯合概率表達式里的各個參數再進行估計,求出其表達式。
下面的EM算法,GMM等三個模型都是做這同一件事:設法求出聯合概率,然后對出現的參數進行估計。
一、EM算法:
作用是進行參數估計。
應用:(因為是無監督,所以一般應用在聚類上,也用在HMM參數估計上)所以凡是有EM算法的,一定是無監督學習.因為EM是對參數聚集
給定訓練樣本是
樣例獨立,
我們想要知道每個樣例隱含的類別z,使是p(x,z)最大,(即 如果將樣本x(i)看作觀察值, 潛在類別z看作是隱藏變量, 則x可能是類別z, 那么聚類問題也就是參數估計問題,)
故p(x,z)最大似然估計是:

所以可見用到EM算法的模型(高斯混合模型,朴素貝葉斯模型)都是求p(x,y)聯合概率,為生成模型。
對上面公式,直接求θ一般比較困難,因為有隱藏變量z存在,但是一般確定了z后,求解就容易了。
EM是一種解決存在隱含變量優化問題的有效方法。竟然不能直接最大化ℓ(θ),我們可建立ℓ的下界(E步),再優化下界(M步),見下圖第三步,取的就是下界
(總式)
解釋上式:
對於每一個樣例 i,讓Qi表示該樣例隱含變量 z 的某種分布,Qi滿足的條件是 (如果 z 是連續性的,那么Qi是概率密度函數(因子分析模型就是如此),需要將求和符號換成積分符號即:
因子分析模型是如此,這個會用在EM算法的M步求。
比如要將班上學生聚類,假設隱藏變量z是身高,那么就是連續的高斯分布。 如果按照隱藏變量是男女,那么就是伯努利分布(即兩點分布:
)了。
上總式第1到第2步是分子分母同乘一個數,
第2到3步是:用了jasen不等式:
(凸函數圖形上表示反為凹函數,記住。)
如圖:
。因為第2步log是凹函數 :
,所以f(E(x)) >= E[f(x)].這樣就完成了第3步(詳情見對應講義。)
至此推導完上面3步公式,下面所有模型都是對上面第3步公式進行參數估計的!!!
下面 對第三步的Q(z)進行推導:
(見講義)
所以Q(Z)最終表示:
,其中z只受參數θ影響。
所以EM算法:

(承上啟下:在m步中,最終是對參數θ進行估計,而這一步具體到高斯混合模型,則θ有三個參數:mu,phi,sigma代替,即高斯混合模型要推導三個參數,下面會講)
至此,這就是EM算法所有推導,EM算法推導也只能推導這些步,具體再將這些公式推導下去,就要結合模型了。
總結:
如果將樣本看作觀察值, 潛在類別看作是隱藏變量, 那么聚類問題也就是參數估計問題,只不過聚類問題中參數分為隱含類別變量和其他參數。
對應到EM上,E步估計隱含變量,M步估計其他參數,交替將極值推向最大。
例子:在Mitchell的Machine Learning書中也舉了一個EM應用的例子,將班上學生的身高都放在一起,要求聚成兩個類。這些身高可以看作是男生身高的高斯分布和女生 身高的高斯分布組成。因此變成了如何估計每個樣例是男生還是女生,然后在確定男女生情 況下,如何估計均值和方差,里面也給出了公式。
二、混合高斯模型:
將EM算法融到高斯混合模型,將上面EM算法的E步、M步的公式再具體推導下去。
整個模型簡單描述為:
對於每個樣例
,我們先從k個類別中按多項式分布抽取一個
,
然后根據
所對應的 k 個多值高斯分布中的一個,生成樣例
,整個過程稱作混合高斯模型。
(即對樣例x, 最終目的是生成樣例x。(??)即對樣例x,從k個類別抽取一個z,從根據z生成x。)
特別地,混合高斯模型的
(1)隱含類別標簽
,被認為滿足多項式分布,即
(這里
只受∅參數(即phi)影響)
(2)樣例
被認為滿足 高斯分布,即 
(所以μ和Σ分別為樣例x的均值和協方差)
補充:
服從的多項式分布概率公式為:
,即類似C(n,x)*p6^x*(1-p6)^(n-x) 類型
所以 上面(1)(2)可知混合高斯模型中, 這里的
仍是隱含隨機變量。模型細化多了三個變量∅,μ和Σ。(即是phi,mu,sigma).
其中∅j就是樣本類別中
= j的比率。μj是類別為 j 的樣本特征均值,Σj是類別為 j 的樣例的特征的協方差矩陣(Σj是一個矩陣!!)。
所以由上面(1)(2)合並得,最大似然估計p(x, z),對數化后如下:

(對比一、EM算法里的總式:
,只是參數θ由原化成三個∅,μ和Σ)
注意第二步有兩個迭加號。第二個迭加號是z(i)=1 直到k個類別。z只有k個類別。
參考一、中EM算法推導:
所以混合高斯模型:
從EM算法步驟的
變成:
(其中M步三個參數的右邊公式在下面會進行推導。這里直接先給出參數結果。)
1. E步: 每個樣例i的隱含類別z(i)為j的概率 可以通過條件概率計算得到。即

(E)
(這里貝葉斯公式,分子是z=j一種類別情況,分母是z={1~k}k中類別的累加)
1)對上式的分子第一項:
(由上面加黃色背景段文字可知)服從高斯分布:
,
故
=
。(其中Σ即是
)
2)對(E)式分子第二項
(又上面可知) 服從 多項式分布:
所以分子直接代入即可,所以
可以求得。
2.M步:
先給出最終結果為:
,推導如下:
先看EM算法的M步:
(M)
下面對三個參數phi,mu,sigma(∅,μ和Σ)分別進行求導:
(i)對μi 求導得(固定∅i,Σi):
<-- 它是由
(據Ng說求的過程不重要?)等於0時所得
(ii)對∅i求導(固定μi,Σi):

推導過程用了SVM中的拉格朗日乘子方法:
因為∅i是 隱性隨機變量z的多項式分布概率值,又有約束條件
又由上面(M)步公式:
(why?????)
所以聯合上兩式,直接構成拉格朗日乘子:

, 
(iii)Σ的推導:
也類似,不過稍微復雜一些,畢竟是矩陣。結果在之前的混合高斯模型中已經給出。
3.迭代:對上面E,M步進行迭代,最后一定會收斂(證明見講義)

如圖,最終收斂成2個類,這里的樣例收斂於橢圓,原因是高斯分布的二維幾何圖形是一個橢圓,(具體幾何圖形見下面因子分析,有詳解)
拓展:
混合高斯模型GMM與K-means比較:
相同點:都是可用於聚類的算法;都需要指定K值。
不同點:對GMM來說,引入了概率;GMM可以給出一個樣本屬於某類的概率是多少。所以高斯混合模型既可以做聚類,也可做概率密度估計
三、混合朴素貝葉斯模型
混合高斯的例子:文本聚類: 要對一系列的文本聚類成若干主題。(用svm寫文本分類是最好的)
news.google.com就是文本聚類一個應用
怎樣在文本新聞問題用到EM算法呢?
----->混合朴素貝葉斯模型。混合朴素貝葉斯模型有2個:多值伯努利事件模型(文本聚類就是用此);多項式事件模型。
模型描述為:
給定m個樣本的訓練集合是
, 每個文本
屬於(0,1)^n。即每個文本是n維 0或1的向量。
故
= { wordj 是否出現在文本i 里}
我們要對
(值是0或1) 進行建模,
是隱含隨機變量,這里取兩個值:2個聚類。
所以對混合貝葉斯模型,假設
服從參數∅有伯努利分布(兩點分布),即:
圖中x換成∅即可)。
故每個文本按某概率屬於聚類1或者聚類2
同高斯混合模型,混合貝葉斯模型的聯合概率是:

又 由貝葉斯公式可知:
p(
|
) =
p(
|
) (i)
p(
= 1 |
= 0) =
(ii)
把上面的z全部換成y,就得到常見的朴素貝葉斯公式:
一般會前面兩個等式右邊的x=1,或省去=1,即寫成∅i|y=1 = p(xi | y =1) ∅i|y=0 = p(xi | y =0) ,默認x取了1
其中p(y=1)表示類別1(例如類別1表示垃圾郵件)的在所有文本的概率。這里xi表示一個單詞,取值只有0或者1,表示出現在文本里或者沒有出現。
EM算法步驟:
1.E步:
這里三個參數phi,mu,sigma,改成
,
,與∅j|z
將上面(i)(ii)式帶入即可求得
2.M步:
對比貝葉斯原公式:
=
這里Wi表示文本來自於類1,分子Σ表示:類1且包含詞j的文檔個數,分布表示類1的文檔總數。所以全式表示:類1包含詞j的比率。
EM算法不能做出絕對的假設0或者1,所以只能用Wi表示,最終Wi的值會靠近0或1,在數值上與0或1無分別。
=
(分子的橫斜是多余的,忽略)
全式表示:類0包含詞j的比率
∅j|z =
3.迭代上面12步驟,收斂,求出參數估計,帶回聯合概率,將聯合概率排序,由聯合概率最高值 ,可得知哪個文本是輸入哪個類了。
四、因子分析
轉至下篇博文
