Andrew Ng機器學習公開課筆記 -- Mixtures of Gaussians and the EM algorithm

網易公開課,第12,13課
notes,7a, 7b,8html

從這章開始,介紹無監督的算法
對於無監督,固然首先想到k means, 最典型也最簡單,有須要直接看7a的講義算法

 

Mixtures of Gaussiansdom

若是要理解Mixtures of Gaussians,那先回去複習一下Gaussians Discriminant Analysis,高斯判別分析函數

首先高斯判別分析是生成算法, 學習

image

因此不會直接擬合p(y|x), 而是擬合p(x|y)p(y), 即p(x,y)優化

image

p(y)符合伯努力分佈,若是是多元分類,即多項式分佈
p(x|y)符合多項高斯分佈spa

而後用最大似然法,學習出imagehtm

image
這個問題就解了blog

 

那麼對於混合高斯,區別只是,對於一系列數據點,y是未知的,即非監督
下面看看形式化的定義,get

既然y是未知,因此換個名字,z,隱隨機變量(latent random variables, meaning that they’re hidden/unobserved.)

image image image
z符合多項式分佈,參數φj表示z=j的機率,因此φ必定>=0, 而且全部φ的和爲1

image

x|z,符合多項高斯分佈

和高斯判別分析其實,只是把y替換成z,表示z是未知,不可見的
而且image 也是每一個多項高斯分佈都不一樣的,這點和高斯判別也有些不同

那麼它的最大似然估計爲,

image

最大似然時,之因此只考慮x,沒有像高斯判別那樣考慮p(x, y),是由於y不可見
可是怎麼理解?
能夠想象一維數據,有不少數據點,分別表明多個高斯分佈混合着一塊兒
而高斯分佈必定是中間的點比較密集,這裏的p(x)會比較高
假設咱們的數據點是有表明性的,因此擬合出p(x)高的高斯分佈,會更合理一些

image

對於這個如何求解?
直接用梯度降低很難求解,由於在log裏面求和。。。求導試試看

固然這裏若是z已知,那麼就很簡單,直接變成高斯判別分析問題,可是問題如今z未知。

解決這個問題的方法,就是EM算法,Expectation Maximization Algorithm

這個算法其實思路很簡單,可是如何推導和證實他的收斂和有效,比較複雜

因此先看看思路和實現,再來看推導

思路很簡單,既然不知道z,而且若是知道就能夠解這個問題,那麼咱們就先隨便猜z,而後再迭代

具體以下,

image

E步驟,咱們任意初始化參數image ,就能夠算出每一個xi對應的zi,其實只要算出上面的這個概念分佈就能夠

具體算的公式以下,

image ,其中分別符合多項式和多項高斯分佈,代入公式很容易算出

M步驟

image

用上面猜的z來從新計算參數,這裏看到爲什麼只要算出w就ok,由於就已經足夠算出新的參數

至於爲什麼是這個公式,由於從上面高斯判別分析,能夠獲得,

image

只是簡單的把部分替換成w

經過不停的E,M步驟的迭代,最終必定能夠收斂到局部最優,和k-means同樣,能夠多試些初始值,來找到全局最優

可是爲什麼這麼簡單的方法會有效,如何理解EM?繼續

 

The EM algorithm

上面看到使用EM來擬合混合高斯問題,但這只是EM的一個特例

這章會推導出EM的通常形式,他能夠解決各類含有隱變量的預估問題(estimation problems with latent variables.)

 

Jensen's inequality

先介紹一下Jensen不等式

image

首先經過下面的圖理解一下,當f是凸函數的時候
E[f(x)] >= f(E[x])

對於凸函數,若是x是隨機變量,分佈均勻,那麼x的均值必定比較接近谷底,因此這個不等式必定成立的

image

當f是嚴格凸函數的時候,即image 時,普通凸函數,二階導數可能爲0,好比某一段爲直線
若是要E[f(x)] = f(E[x]),當且僅當 x = E[x], 即x是個常量

須要注意,這個不等式對於concave,凹函數也是知足的,但不等式的方向相反

 

EM algorithm

下面來看看EM算法,

對於m個獨立的訓練數據點,似然函數以下,
這裏是通用形式,因此參數就是image ,這裏沒有假設z和x|z的分佈,能夠是任意分佈

image
這個直接解是很困難的,因此用EM算法解

解的思路,

E-step, construct a lower-bound on image
先隨便初始化參數,構建這個分佈的下界,即最差的case
而後經過下界的分佈,獲得z

M-step, optimize that lower-bound
用E-step獲得的z來最優化參數

以下圖,在迭代過程當中,下界的分佈會不斷的逼近真實分佈

image

 

首先,假設Q爲z的某種分佈,Q(zi)爲zi出現的機率,那麼有image ,而且Q(zi)>=0

image

而後爲了使用Jensen不等式,對(1)分子分母同時乘上Q(zi),這樣就產生了指望E

先看下指望的定義,

參考,(EM算法)The EM Algorithm

image 

那麼對應於上面的公式,其中

image ,爲g(z)

image ,爲p

因此,

image 就是, image

再來看Jensen不等式,E[f(x)] >= f(E[x]),其中f就是log,因此獲得上面(3)

因此這樣就產生了image的下界,

image

咱們須要在M-step中去最優化這個下界,但問題是如今Q分佈尚未肯定,如何肯定哪一種Q分佈會最好

咱們雖然給出在參數image時的下界,可是咱們但願這個下界是能夠儘可能逼近image的,因此但願(3)中最好能夠取到等式,這樣下界就等於image

這時候再看Jensen不等式中,對於=取值的條件,即,

image

因爲image,因此讓分子和分母對全部的z求和,應該仍是等於c,好比2+4 /1+2,仍然爲2,獲得

image

因此獲得Q的分佈,就是z的後驗機率

image

因此,最終獲得的general EM算法爲,

image

能夠對比一下,以前混合高斯的EM,體會一下特例和通用的差異

那麼這個算法是收斂的嗎?即證實下面的式子,第t+1次迭代的image>=第t次迭代

image

過程以下,

image

(4)給出image 的下界

(5)由於在M-step,要在固定Q狀況下,最優化image,因此優化完,必定比原來的image要大

(6)由於在取下界的時候,選擇Q使得

image

因此得證

EM和k-means都是必定會收斂到局部最優的

從另一個角度來看EM,實際上是一種座標上升算法,

image

在E-Step,咱們固定image 來,求解最優的Q

在M-Step,咱們固定Q來,求解最優的image

 

Mixture of Gaussians revisited

看完通用的EM算法,再會過頭來看看混合高斯算法,應該會更清晰一些

對於E-step很簡單,

通用的EM,表示爲image

而對於混合高斯算法,爲image ,這個很天然,不須要解釋

而後對於M-step,須要最大化下面的式子以求出image

image

後面的求解過程就是分別對,image,求導而後求解,就能夠獲得上面的已經列出的公式,具體過程能夠參考講義,這裏就不列了

 

文本聚類- Mixtures of Naive Bayes Model

這個沒有講義,只能截圖

對於naive bayes是文本分類,而由於這裏的訓練集是不知道y的,因此就是文本聚類問題
獲得m個文本,每一個文本是n維向量,其中每維取{0,1}表明該word是否在文本中出現

而隱變量z,也是取值{0,1},表示分兩類,那麼z就符合伯努力分佈

p(x|z),符合naive bayes分佈

image

這裏給出,E-step和M-step的公式

固然其中M-step是經過最大化P(x|z),求解出來的

image

 

其實想一想,EM和K-mean的基本思路是差很少的
首先對於數據集,選定特徵後,是可分的,即若是把數據畫出來,是能夠看到明顯彙集的

image

因此隨意設定初值後,不斷迭代,好比混合高斯,老是能夠漸漸收斂到局部最優的,不一樣於k-mean的是 EM能夠給出具體的密度函數p(z|x) 對於隱變量z,其實K-mean,若是設k=2,即兩類,至關於產生z取值{0,1}

相關文章
相關標籤/搜索