EM算法--应用到三个模型: 高斯混合模型 ,混合朴素贝叶斯模型,因子分析模型...
主要是對Ng教授的machinelearning視頻學習和參考jerryLead講義整理(特別鳴謝~):
由“判別模型、生成模型與樸素貝葉斯方法 ”一節(jié)得知:
判別模型求的是條件概率p(y|x),
生成模型求的是聯(lián)合概率p(x,y) ? .即 =?p(x|y) ? p(y)?
常見的判別模型有線性回歸、對數(shù)回歸、線性判別分析、支持向量機、boosting、條件 隨機場、神經網絡等。
常見的生產模型有隱馬爾科夫模型、樸素貝葉斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine等。
所以這里說的高斯混合模型,樸素貝葉斯模型都是求p(x,y)聯(lián)合概率的。(下面推導會見原因)
套路小結:?凡是生產模型,目的都是求出聯(lián)合概率表達式,然后對聯(lián)合概率表達式里的各個參數(shù)再進行估計,求出其表達式。
下面的EM算法,GMM等三個模型都是做這同一件事:設法求出聯(lián)合概率,然后對出現(xiàn)的參數(shù)進行估計。
?一、EM算法:
作用是進行參數(shù)估計。
應用:(因為是無監(jiān)督,所以一般應用在聚類上,也用在HMM參數(shù)估計上)所以凡是有EM算法的,一定是無監(jiān)督學習.因為EM是對參數(shù)聚集
給定訓練樣本是?樣例獨立,
我們想要知道每個樣例隱含的類別z,使是p(x,z)最大,(即?如果將樣本x(i)看作觀察值, 潛在類別z看作是隱藏變量, 則x可能是類別z, 那么聚類問題也就是參數(shù)估計問題,)
故p(x,z)最大似然估計是:
所以可見用到EM算法的模型(高斯混合模型,樸素貝葉斯模型)都是求p(x,y)聯(lián)合概率,為生成模型。
?
對上面公式,直接求θ一般比較困難,因為有隱藏變量z存在,但是一般確定了z后,求解就容易了。
EM是一種解決存在隱含變量優(yōu)化問題的有效方法。竟然不能直接最大化?(θ),我們可建立?的下界(E步),再優(yōu)化下界(M步),見下圖第三步,取的就是下界
? (總式)
解釋上式:
對于每一個樣例 i,讓Qi表示該樣例隱含變量 z 的某種分布,Qi滿足的條件是 (如果 z 是連續(xù)性的,那么Qi是概率密度函數(shù)(因子分析模型就是如此),需要將求和符號換成積分符號即:因子分析模型是如此,這個會用在EM算法的M步求。
比如要將班上學生聚類,假設隱藏變量z是身高,那么就是連續(xù)的高斯分布。 如果按照隱藏變量是男女,那么就是伯努利分布(即兩點分布:)了。
上總式第1到第2步是分子分母同乘一個數(shù),
第2到3步是:用了jasen不等式:?(凸函數(shù)圖形上表示反為凹函數(shù),記住。)
如圖:? 。因為第2步log是凹函數(shù) :,所以f(E(x)) >= E[f(x)].這樣就完成了第3步(詳情見對應講義。)
?
至此推導完上面3步公式,下面所有模型都是對上面第3步公式進行參數(shù)估計的!!!
?
下面 對第三步的Q(z)進行推導:
(見講義)
所以Q(Z)最終表示:?,其中z只受參數(shù)θ影響。
所以EM算法:
(承上啟下:在m步中,最終是對參數(shù)θ進行估計,而這一步具體到高斯混合模型,則θ有三個參數(shù):mu,phi,sigma代替,即高斯混合模型要推導三個參數(shù),下面會講)
至此,這就是EM算法所有推導,EM算法推導也只能推導這些步,具體再將這些公式推導下去,就要結合模型了。
?
總結:
如果將樣本看作觀察值, 潛在類別看作是隱藏變量, ? 那么聚類問題也就是參數(shù)估計問題,只不過聚類問題中參數(shù)分為隱含類別變量和其他參數(shù)。
對應到EM上,E步估計隱含變量,M步估計其他參數(shù),交替將極值推向最大。
例子:在Mitchell的Machine Learning書中也舉了一個EM應用的例子,將班上學生的身高都放在一起,要求聚成兩個類。這些身高可以看作是男生身高的高斯分布和女生 身高的高斯分布組成。因此變成了如何估計每個樣例是男生還是女生,然后在確定男女生情 況下,如何估計均值和方差,里面也給出了公式。
?
?
二、混合高斯模型:
將EM算法融到高斯混合模型,將上面EM算法的E步、M步的公式再具體推導下去。
?
整個模型簡單描述為:
對于每個樣例 ,我們先從k個類別中按多項式分布抽取一個,
然后根據所對應的 k 個多值高斯分布中的一個,生成樣例,整個過程稱作混合高斯模型。
(即對樣例x, 最終目的是生成樣例x。(??)即對樣例x,從k個類別抽取一個z,從根據z生成x。)
?
特別地,混合高斯模型的
(1)隱含類別標簽?,被認為滿足多項式分布,即? (這里只受?參數(shù)(即phi)影響)
(2)樣例被認為滿足 高斯分布,即???(所以μ和Σ分別為樣例x的均值和協(xié)方差)
? ?補充:服從的多項式分布概率公式為:,即類似C(n,x)*p6^x*(1-p6)^(n-x) 類型
所以 上面(1)(2)可知混合高斯模型中,?這里的仍是隱含隨機變量。模型細化多了三個變量?,μ和Σ。(即是phi,mu,sigma).?
其中?j就是樣本類別中 ?= j的比率。μj是類別為 j 的樣本特征均值,Σj是類別為 j 的樣例的特征的協(xié)方差矩陣(Σj是一個矩陣!!)。
?
所以由上面(1)(2)合并得,最大似然估計p(x, z),對數(shù)化后如下:
??? ? ? ?
?
? (對比一、EM算法里的總式:?,只是參數(shù)θ由原化成三個?,μ和Σ)
注意第二步有兩個迭加號。第二個迭加號是z(i)=1 直到k個類別。z只有k個類別。
?
?
參考一、中EM算法推導:
所以混合高斯模型:
從EM算法步驟的? ?變成:?(其中M步三個參數(shù)的右邊公式在下面會進行推導。這里直接先給出參數(shù)結果。)
?
1. E步: ??每個樣例i的隱含類別z(i)為j的概率 ?可以通過條件概率計算得到。即
? (E)
(這里貝葉斯公式,分子是z=j一種類別情況,分母是z={1~k}k中類別的累加)
1)對上式的分子第一項:(由上面加黃色背景段文字可知)服從高斯分布:,
故?=?? ?。(其中Σ即是)
2)對(E)式分子第二項(又上面可知) 服從 多項式分布:
? ? ? ? ? ?所以分子直接代入即可,所以?可以求得。
?
2.M步:
先給出最終結果為:?,推導如下:
先看EM算法的M步:
? ? ? ? ? ? ? ? ???(M)
? 下面對三個參數(shù)phi,mu,sigma(?,μ和Σ)分別進行求導:
(i)對μi 求導得(固定?i,Σi):
? ? ?? <--??它是由 (據Ng說求的過程不重要?)等于0時所得
? ? ? ? ??
(ii)對?i求導(固定μi,Σi):
?
? ? ? ? ? ? ? ? ? 推導過程用了SVM中的拉格朗日乘子方法:
因為?i是 隱性隨機變量z的多項式分布概率值,又有約束條件? ?
又由上面(M)步公式:
(why?????)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?所以聯(lián)合上兩式,直接構成拉格朗日乘子:
, ??
?
(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 是否出現(xiàn)在文本i 里}?
我們要對(值是0或1) 進行建模,是隱含隨機變量,這里取兩個值:2個聚類。
? ? 所以對混合貝葉斯模型,假設??服從參數(shù)?有伯努利分布(兩點分布),即:?圖中x換成?即可)。
? ? ?故每個文本按某概率屬于聚類1或者聚類2
? ? ?
? ?同高斯混合模型,混合貝葉斯模型的聯(lián)合概率是:
又 ? ? 由貝葉斯公式可知:
? ? ?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,表示出現(xiàn)在文本里或者沒有出現(xiàn)。
?
?
EM算法步驟:
1.E步:
?這里三個參數(shù)phi,mu,sigma,改成,,與?j|z
? ? ? ? ? ? ? ?將上面(i)(ii)式帶入即可求得
2.M步:
對比貝葉斯原公式:
? ? = ?? ?
? ??這里Wi表示文本來自于類1,分子Σ表示:類1且包含詞j的文檔個數(shù),分布表示類1的文檔總數(shù)。所以全式表示:類1包含詞j的比率。
? ? ?? EM算法不能做出絕對的假設0或者1,所以只能用Wi表示,最終Wi的值會靠近0或1,在數(shù)值上與0或1無分別。
? =?? (分子的橫斜是多余的,忽略)
全式表示:類0包含詞j的比率
? ? ?
? ? ? ???j|z? ? ? ? ?=??
3.迭代上面12步驟,收斂,求出參數(shù)估計,帶回聯(lián)合概率,將聯(lián)合概率排序,由聯(lián)合概率最高值 ,可得知哪個文本是輸入哪個類了。
?
?
?
四、因子分析
? ? ? 轉至下篇博文?
?
?
轉載于:https://www.cnblogs.com/lifegoesonitself/archive/2013/05/19/3087143.html
總結
以上是生活随笔為你收集整理的EM算法--应用到三个模型: 高斯混合模型 ,混合朴素贝叶斯模型,因子分析模型...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决[warn] _default_ V
- 下一篇: JAVA线程池管理及分布式HADOOP调