網易公開課,第12,13課
notes,7a, 7b,8html
從這章開始,介紹無監督的算法
對於無監督,固然首先想到k means, 最典型也最簡單,有須要直接看7a的講義算法
Mixtures of Gaussiansdom
若是要理解Mixtures of Gaussians,那先回去複習一下Gaussians Discriminant Analysis,高斯判別分析函數
首先高斯判別分析是生成算法, 學習
因此不會直接擬合p(y|x), 而是擬合p(x|y)p(y), 即p(x,y)優化
p(y)符合伯努力分佈,若是是多元分類,即多項式分佈
p(x|y)符合多項高斯分佈spa
這個問題就解了blog
那麼對於混合高斯,區別只是,對於一系列數據點,y是未知的,即非監督
下面看看形式化的定義,get
既然y是未知,因此換個名字,z,隱隨機變量(latent random variables, meaning that they’re hidden/unobserved.)
z符合多項式分佈,參數φj表示z=j的機率,因此φ必定>=0, 而且全部φ的和爲1
x|z,符合多項高斯分佈
和高斯判別分析其實,只是把y替換成z,表示z是未知,不可見的
而且 也是每一個多項高斯分佈都不一樣的,這點和高斯判別也有些不同
那麼它的最大似然估計爲,
最大似然時,之因此只考慮x,沒有像高斯判別那樣考慮p(x, y),是由於y不可見
可是怎麼理解?
能夠想象一維數據,有不少數據點,分別表明多個高斯分佈混合着一塊兒
而高斯分佈必定是中間的點比較密集,這裏的p(x)會比較高
假設咱們的數據點是有表明性的,因此擬合出p(x)高的高斯分佈,會更合理一些
對於這個如何求解?
直接用梯度降低很難求解,由於在log裏面求和。。。求導試試看
固然這裏若是z已知,那麼就很簡單,直接變成高斯判別分析問題,可是問題如今z未知。
解決這個問題的方法,就是EM算法,Expectation Maximization Algorithm
這個算法其實思路很簡單,可是如何推導和證實他的收斂和有效,比較複雜
因此先看看思路和實現,再來看推導
思路很簡單,既然不知道z,而且若是知道就能夠解這個問題,那麼咱們就先隨便猜z,而後再迭代
具體以下,
E步驟,咱們任意初始化參數 ,就能夠算出每一個xi對應的zi,其實只要算出上面的這個概念分佈就能夠
具體算的公式以下,
M步驟,
用上面猜的z來從新計算參數,這裏看到爲什麼只要算出w就ok,由於就已經足夠算出新的參數
至於爲什麼是這個公式,由於從上面高斯判別分析,能夠獲得,
只是簡單的把部分替換成w
經過不停的E,M步驟的迭代,最終必定能夠收斂到局部最優,和k-means同樣,能夠多試些初始值,來找到全局最優
可是爲什麼這麼簡單的方法會有效,如何理解EM?繼續
The EM algorithm
上面看到使用EM來擬合混合高斯問題,但這只是EM的一個特例
這章會推導出EM的通常形式,他能夠解決各類含有隱變量的預估問題(estimation problems with latent variables.)
Jensen's inequality
先介紹一下Jensen不等式
首先經過下面的圖理解一下,當f是凸函數的時候
E[f(x)] >= f(E[x])
對於凸函數,若是x是隨機變量,分佈均勻,那麼x的均值必定比較接近谷底,因此這個不等式必定成立的
當f是嚴格凸函數的時候,即 時,普通凸函數,二階導數可能爲0,好比某一段爲直線
若是要E[f(x)] = f(E[x]),當且僅當 x = E[x], 即x是個常量
須要注意,這個不等式對於concave,凹函數也是知足的,但不等式的方向相反
EM algorithm
下面來看看EM算法,
對於m個獨立的訓練數據點,似然函數以下,
這裏是通用形式,因此參數就是 ,這裏沒有假設z和x|z的分佈,能夠是任意分佈
解的思路,
E-step, construct a lower-bound on
先隨便初始化參數,構建這個分佈的下界,即最差的case
而後經過下界的分佈,獲得z
M-step, optimize that lower-bound
用E-step獲得的z來最優化參數
以下圖,在迭代過程當中,下界的分佈會不斷的逼近真實分佈
首先,假設Q爲z的某種分佈,Q(zi)爲zi出現的機率,那麼有 ,而且Q(zi)>=0
而後爲了使用Jensen不等式,對(1)分子分母同時乘上Q(zi),這樣就產生了指望E
先看下指望的定義,
那麼對應於上面的公式,其中
因此,
再來看Jensen不等式,E[f(x)] >= f(E[x]),其中f就是log,因此獲得上面(3)
咱們須要在M-step中去最優化這個下界,但問題是如今Q分佈尚未肯定,如何肯定哪一種Q分佈會最好
咱們雖然給出在參數時的下界,可是咱們但願這個下界是能夠儘可能逼近
的,因此但願(3)中最好能夠取到等式,這樣下界就等於
這時候再看Jensen不等式中,對於=取值的條件,即,
因爲,因此讓分子和分母對全部的z求和,應該仍是等於c,好比2+4 /1+2,仍然爲2,獲得
因此獲得Q的分佈,就是z的後驗機率
因此,最終獲得的general EM算法爲,
能夠對比一下,以前混合高斯的EM,體會一下特例和通用的差異
那麼這個算法是收斂的嗎?即證實下面的式子,第t+1次迭代的>=第t次迭代
過程以下,
(5)由於在M-step,要在固定Q狀況下,最優化,因此優化完,必定比原來的
要大
(6)由於在取下界的時候,選擇Q使得
因此得證
EM和k-means都是必定會收斂到局部最優的
從另一個角度來看EM,實際上是一種座標上升算法,
Mixture of Gaussians revisited
看完通用的EM算法,再會過頭來看看混合高斯算法,應該會更清晰一些
對於E-step很簡單,
後面的求解過程就是分別對,,求導而後求解,就能夠獲得上面的已經列出的公式,具體過程能夠參考講義,這裏就不列了
文本聚類- Mixtures of Naive Bayes Model
這個沒有講義,只能截圖
對於naive bayes是文本分類,而由於這裏的訓練集是不知道y的,因此就是文本聚類問題
獲得m個文本,每一個文本是n維向量,其中每維取{0,1}表明該word是否在文本中出現
而隱變量z,也是取值{0,1},表示分兩類,那麼z就符合伯努力分佈
p(x|z),符合naive bayes分佈
這裏給出,E-step和M-step的公式
固然其中M-step是經過最大化P(x|z),求解出來的
其實想一想,EM和K-mean的基本思路是差很少的
首先對於數據集,選定特徵後,是可分的,即若是把數據畫出來,是能夠看到明顯彙集的
因此隨意設定初值後,不斷迭代,好比混合高斯,老是能夠漸漸收斂到局部最優的,不一樣於k-mean的是 EM能夠給出具體的密度函數p(z|x) 對於隱變量z,其實K-mean,若是設k=2,即兩類,至關於產生z取值{0,1}