PRML讀書筆記-我對機器學習的認識
最近有時間把Christopher M Bishop的《Pattern Recognition and Machine Learning》(PRML)溫習了一遍,這本書可以說是機器學習的經典學習之作。以前在上機器學習這麼課的時候,很多細節還沒聯絡到,結果在讀論文中就顯得捉襟見肘。本文打算理清楚這本書的脈絡,也順便為學習機器學習的人打下一個學習路線圖。
1. 排除兩塊內容
現排除第五章的內容神經網路,之所以把神經網路先單列出來,原因一是一個比較獨立的研究脈絡,二是因為這部分因為深度學習的原因太熱了,所以我認為在學習機器學習中把神經網路單列出來學習,在交大的研究生課程安排中,神經網路是機器學習的後續課程。
對於第6,7章,也不在下面的學習路線中,因為這部分是關於核技巧方面的,主要是就是高斯過程迴歸,高斯過程分類以及SVM等內容。
2. 一個概率圖框架為中心視角
排除了上面幾章的內容,PRML書中可以用下面的學習路線圖覆蓋,通過這個圖可以理清楚了各個內容的不同角色。
---------------------概率圖視角---------------------------------------
第三章 線性迴歸--- ---有向(貝葉斯網路)-Inference(posterior)-》P(Z|X)-分析近似10章變分法
| | |
|--基礎模型--第八章 圖模型--| (兩個重要的問題)
| | | |
第四章 線性分類--- (一般性的框架) ---無向(一般概率圖)-》 learn (MLE) -》 P(X)-數值取樣 11章蒙特卡洛
-----------------------------------------------------------------
說明:
(1)一般模型中都會有隱變數因此,,因此對於P(X)的採用MLE學習的另一個技巧,便是第九章 EM演算法。條件是在M步時,要可以被計算。
(2)至於為什麼近似,Exact Inference is hard we resort to approximation
3. 隱變數技巧
下面我們看看另外一個視角:隱變數技巧。隱變數不僅可以使得模型的表達能力豐富起來,而且通常對於隱變數往往富有一定的實際意義。
---------------------------隱變數視角--------------------------
|-加法 mixture -gaussian mixture
|--離散隱變數--第14章 結合模型(combine models)--結合方式
隱變數技巧--》| |-乘法 distributed models-RBM
| |線性--》PCA
| --第12 章連續隱變數- |
|非線性-》流形
----------------------------------------------------------
說明:
(1)這裡所謂的結合模型中,在PRML中最後一章僅僅提到了以加法的方式進行模型集合,也就是mixture of experts,在論文Hinton G E. Training products of experts by minimizing contrastive divergence[J]. Neural computation, 2002, 14(8): 1771-1800. 提出了product of experts 模型,也就是以乘法的方式進行結合,RBM就是一種特殊的product of experts 模型,而高斯混合模型便是加法模型的代表。
(2)隱變數的技巧是機器學習中一種技巧。
4. 例子說明
下面分別從上面兩個視角來分析RBM模型,貝葉斯線性迴歸和序列模型。
4.1 RBM模型
RBM模型是一個無向2層對稱的圖模型,從隱變數的視角來看,它是一個以乘法方式結合的distributed models。當然隱變數的引入增加了模型的複雜性和表達能力,但是也為學習,推斷帶來了問題。對於RBM的引數學習,因為是無向圖,所以採用MLE最大化P(X),但是由於此時P(X,Z)難以評估,所以
很難計算,沒有在RBM的學習中不能像高斯混合模型那樣可以採取EM演算法。因此只能採取最為標準的做法,求取P(X)的梯度,結果梯度公式如下:
參見 Asja,Fischer; Christian Igel 2012。
然而對於計算後面的model部分的積分需要知道模型的概率分佈,評估模型的概率分佈需要計算一個標準化的分母,難以計算。因此就需要依賴近似,由於p(v|h),p(h|v)都是可以分析公式表達,因此採用Gibbs sampler來數值逼近積分。當然後來Hinton G E. Training products of experts by minimizing contrastive divergence[J].發現對於這一部分,Gibbs sampler 不需要多部的迭代,一次迭代就可以了,從而使的訓練RBM的時間代價大大降低了,後來(A fast learning algorithm for deep belief nets,2006)提出了貪婪式的訓練多層DBN(stacked RBM),每層都是訓練RBM,從而使的深度學習煥發新的活力(Reducing the dimensionality of data with neural networks,2006)。
4.2 貝葉斯線性迴歸Bayesian Linear Regression BLR
這個模型是最為基礎的,這個模型在PRML中,利用直接推斷,變分法推斷,MCMC取樣都是可以做的;因此便於比較不同演算法得到的結果。之前,本來打算在這裡以LDA主題模型來舉例,雖然LDA的EM演算法, 變分法,以及Gibbs sampling 都是可以做的,但是模型太複雜,所以果斷放棄了,以BLR模型作為例子說明。
BLR是一個有向圖模型,是一個典型的貝葉斯網路(雖然簡單一點)。如果以一個貝葉斯的視角來看,其中的隱變數便是線性引數w,以及各種超引數α,β.....,在貝葉斯的處理視角之下,這些都會賦予一個先驗分佈。當然,有些模型書中也提到,有不同層次上的貝葉斯網路。有的是僅僅對引數w賦予一個先驗分佈,而對於其他的引數(hyperparameter)僅僅是作為模型引數,就是假設是一個渡固定的數值,然後再通過learn evidence function,其實說白了就是MLE,來尋找最佳的超引數α,β....。相比於把線性引數w,以及各種超引數α,β.....全部作為放入到貝葉斯網路中,這樣的做法顯然簡化了模型,降低了貝葉斯網路的複雜性。這個技巧也在多處的論文中出現。
從隱變數的角度來看,由於BLR模型相對簡單,其中並沒有隨機隱變數,僅僅是一些引數w,以及各種超引數α,β..的環境隱變數。
4.3 序列模型:隱馬爾可夫鏈HMM與條件隨機CRF
隱馬爾可夫鏈HMM這個模型是一個有向圖模型,典型的貝葉斯網路,只不過這個網路是一個線性鏈(linear chains),因此可以進行分析上推斷,要知道對於一般網路,並不存在通用的實用的inference演算法。因為HMM是一個有向圖模型。但是(1)在PRML書中,以及李航《統計學習》中並沒有把其當作一個貝葉斯網路來進行處理,對所有的引數比如發射概率,轉移矩陣概率都是模型的引數,而不是通過賦予一個先驗分佈,從而納入到貝葉斯網路框架之中。因此對於模型而言,關鍵的便是通過MLE最大化P(X)來學習模型的引數,因為這裡的有隱變數,因此在PRML,以及《統計學習》中都是通過EM演算法做的。(2)其實,HMM是一個典型的線性鏈式的貝葉斯網路,因此對於通過對其引數賦予先驗分佈,進而從貝葉斯的角度,來對模型進行推斷是一個非常自然的想法。我在論文Sharon Goldwater, Thomas L Griffiths 論文 A Fully Bayesian Approach to Unsupervised Part-of-Speech Tagging,中作者採用了Bayesian HMM 重新做了POS任務。作者在文中還詳細羅列了Bayesian HMM 相比普通的HMM的優點:(a)可以使用先驗知識,例如在POS中語言的認知可以加入到先驗分佈之中,而且(b)貝葉斯的推斷,是通過一個後驗分佈推斷引數,相比MLE點估計,會更加準確。對於貝葉斯的推斷,作者在文中使用了Gibbs sample抽樣實現了數值取樣推斷模型。最後作者比較了Gibbs sample+Bayesian HMM和普通的HMM +EM,在POS任務效果更加好。另外,對於本論文的作者Thomas L Griffiths,第一次接觸這個學者,是在讀Gibbs sample in LDA這篇文章,作者推導了LDA的各種的條件分佈,然後基於Gibbs sample 進行取樣,記得Github上有Java版的實現程式碼,其推導十分嚴謹,並且有程式碼輔助,是學習LDA的一個捷徑。在近似推斷方面可以看出Thomas L Griffiths是一個堅定的數值取樣學派,而LDA的開山之作《Latent Dirichlet Allocation 》的作者David M. Blei,看了作者部分文章以後,發現這個人是在近似推斷方面是一個變分法的堅定學派,在《Latent Dirichlet Allocation 》之中,便是通過變分法進行推斷了,David M. Blei還寫了一個關於變分法的入門講義pdf,網上可以搜到。所以回看我們概率圖視角,做機器學習推斷是不可避免的,有的是變分法近似,有的是數值取樣近似,也有的是EM演算法試一試。至於選擇哪一種,就看你的問題哪一個比較簡單了。但是好像有的人對這些方面各有偏愛。
再說一下條件隨機場CRF,相比與HMM,這也是一個序列模型,在很多的NLP任務中,CRF都是state of art 的演算法,畢竟人家可以方便的特徵工程嘛。但是這種日子被深度學習取代了,在NLP方面,RNN(遞迴神經網路)要比CRF表現更好,見我之前博文《RNN去做語義理解》。先不說這麼遠,CRF的模型架構上是一個典型的無向的鏈式概率圖模型,因此,(回看我們概率圖的視角),CRF的關鍵問題便是如何進行學習了P(X),好在求其該模型直接求其梯度並沒有太大的困難,具體可以參見李航的《統計學習》。
5 結束語
這篇文章,從概率圖,隱變數兩個視角對PRML中各個章節進行了串聯,並以RBM,BLR,序列模型(HMM&CRF)具體說明這種串聯。