概率圖模型(PGM)有必要系統地學習一下嗎?

最近學習機器學習方面的理論知識,然後看到很多論文里會用到概率圖模型。聽有的說這個東西很有用;也有的說用處不是很大,簡單了解一下就行,有概率論和貝葉斯的基本概念就行。看Koller的那本巨著感覺好厚啊。。。就想問一下這個有沒有必要系統的學習?


很高興看到有人提這個問題。概率圖模型(PGM)是我的研究方向(發表的9篇論文中7篇是PGM),也曾做過CMU PGM這門課的TA,對這個方向深深喜愛。

先說說PGM的重要性。概率圖模型大致可以分為兩種,directed graphical model(又稱貝葉斯網路)和undirected graphical model(又稱馬爾可夫隨機場)。貝葉斯網路由Judea Pearl 教授發明於上世界80年代,這項工作獲得了2011年圖靈獎。馬爾可夫隨機場最早被物理學家用於對原子進行建模,其中的代表作Ising model獲得過諾貝爾獎。圖靈獎+諾貝爾獎,PGM的重要性可見一斑。另外,PGM是將人工智慧(AI)的研究熱點從傳統AI(如邏輯、推理、知識表示)轉向機器學習的重要工作(其他起到這一作用的工作有支持向量機、決策樹、boosting等)。

概率圖模型在實際中(包括工業界)的應用非常廣泛與成功。這裡舉幾個例子。隱馬爾可夫模型(HMM)是語音識別的支柱模型,高斯混合模型(GMM)及其變種K-means是數據聚類的最基本模型,條件隨機場(CRF)廣泛應用於自然語言處理(如詞性標註,命名實體識別),Ising模型獲得過諾貝爾獎,話題模型在工業界大量使用(如騰訊的推薦系統)。等等。

PGM優雅的理論。機器學習的一個核心任務是從觀測到的數據中挖掘隱含的知識,而概率圖模型是實現這一任務的一種很elegant,principled的手段。PGM巧妙地結合了圖論和概率論。從圖論的角度,PGM是一個圖,包含結點與邊。結點可以分為兩類:隱含結點和觀測結點。邊可以是有向的或者是無向的。從概率論的角度,PGM是一個概率分布,圖中的結點對應於隨機變數,邊對應於隨機變數的dependency或者correlation關係。給定一個實際問題,我們通常會觀測到一些數據,並且希望能夠挖掘出隱含在數據中的知識。怎麼用PGM實現呢?我們構建一個圖,用觀測結點表示觀測到的數據,用隱含結點表示潛在的知識,用邊來描述知識與數據的相互關係,最後獲得一個概率分布。給定概率分布之後,通過進行兩個任務:inference (給定觀測結點,推斷隱含結點的後驗分布)和learning(學習這個概率分布的參數),來獲取知識。PGM的強大之處在於,不管數據和知識多複雜,我們的處理手段是一樣的:建一個圖,定義一個概率分布,進行inference和learning。這對於描述複雜的實際問題,構建大型的人工智慧系統來說,是非常重要的。

PGM的實用性。關於PGM的實用性,我個人覺得是毋庸置疑的,前面已舉例。也有很多次聽到別人說,概率圖模型在實際中沒什麼用處。此處想到一位教授的話,翻譯成中文:「PGM在你的問題上不work,並不代表它本身不work,而是你沒有把它弄work。" :) 所以系統的學習還是很有必要的。推薦CMU Eric Xing教授每年開的10708 PGM課程 10708 Probabilistic Graphical Models。 既包含了PGM最基本、最核心的內容,也講述了很多advanced topic。而且有視頻。


PGM 有必要系統地學習

PGM 的原理經過若干大牛的歸納後已經並不那麼複雜,看看怎麼建模,怎麼 Learn,怎麼 Inference,就能掌握原理的精髓。但是,PGM 可以把這幾年機器學習的主流發展方向串起來,會講很多正在流行的模型,這為這門不是那麼系統的學科搭了一個框架,又講可以講理論,又可以講在圖像、語音的應用,實在是對入門同學的福音。當你開始看PGM的時候,你就快接觸到 State-of-the-art Machine Learning了。

Machine Learning 又發展了這麼多年,出現了這麼多研究,是時候大家再寫寫書,想想辦法把東西總結總結了,書名總不能還叫 Machine Learning 吧,所以換個框架,從 PGM 寫起,真是極好的。


說說反面觀點吧。

PGM實在是太大,我就說說我接觸到的一些關於Topic Modeling的皮毛吧。

Topic Modeling是PGM的子集,多數是應用於文本處理上。之前David Blei發過一篇文章,把PLSA(也是一種topic model,暫時理解成簡單版本的LDA吧)擴展成bayesian的版本。擴展出來的東西叫做LDA,不用管它全名是什麼,暫時放在腦子裡的緩存區就好了。

那篇文章出來之後,LDA拯救了無數CS的PhD,幫助他們順利畢業,比較出名的幾個組有UIUC的Chengxiang Zhai和Jiawei Han的學生,以Qiaozhu Mei為代表(雖然他的paper多數是關於PLSA的,但是PLSA也是PGM的一種)。

通俗一些講,LDA就是給定一堆文檔,和一個主題數K,自動聚類出這些文檔的各個主題。比如說,給定一堆人民日報,那麼LDA的輸出會給出
主題一:國家主席,常委,匯見,歌唱家,Simple, Naive
主題二:工作,指導,蒞臨,江西,省長
主題三:油價,迎接,人民,上漲
等等

注意到每個主題都是由一些文章里出現的詞所代表,也就是說這些主題的意義是需要人去進一步分析的。比如說對主題一,可以歸納(由聰明的你)出它的主題是:記者招待會,之類。

但是對於LDA的研究有那麼幾個致使問題,直接導致我感覺這裡的文章確實是大家調侃的那樣——灌灌水還不錯,沒有人在現實里應用。

1)純粹無監督學習,公說公的效果好,婆說婆的效果好。效果的標準就是看聚類
2)少有的一點標準幾乎都是log-likelihood,看誰的高(一般在paper中寫的都是負值,所以看誰的低)。
3)最常用的學習演算法是gibbs sampling,而這是一個sequential演算法,很難寫成分散式演算法,因此大數據幾乎沒有辦法使用LDA。
4)另一種學習演算法variational inference雖然可以並行化,但是推導困難,從發的文章看,應該沒有多少人能完全推下來(否則幹嘛大家還用gibbs sampling)。

對於2,補充一點,雖然可以爭論說log-likelihood也是個標準,可是通常這個標準跟人們想要用LDA實現的東西南轅北轍。比如說,人們通常希望LDA給出可讀的文章,但是David Mimno等人發現,loglikelihood跟可讀性不相關[1]。(於是很明顯,他們又給出了一個直接maximize可讀性的文章)。

對於1,其實近期出現的論文多數已經開始從無監督開始轉向有監督了。比較明顯的例子是,如何用人們發的Tweets來預測他們的location。Twitter本身提供很多數據都有location信息,於是這就成了ground truth,比如說在紐約的人會常常發類似"Times Square"之類的詞。

那麼,有人[2]把這個融進了LDA里,加入了一個變數,location,這樣,對於沒有location信息的tweet(想像你平常發推都打開地理信息但是今天去了夜店不想你媽知道於是關掉了,那麼這條tweet就沒有地理信息了),就可以通過你發的內容來分析出你現在在哪裡。

可是有個問題在於,這樣每多一個feature,就需要加一個變數到LDA的model里,以至於到後來model可以變得極其極其複雜。而且由於前面提到的問題3和4,幾乎沒有人能很容易地將這些加上變數後的model的推導演算法寫出來且並行化實現出來。因些這就構成了對LDA實用性的最大挑戰。

另一個壞消息是,即使這麼fancy的model在比較後發現,常常可以用很簡單的方法就實現同樣的效果。舉個例子,有一個model在LDA的基礎上增加了時間信息,也就是說,不光你可以知道一堆文章的主題,而且你還可以知道這些主題隨著時間怎麼變化。比如,二戰之類的內容在1941年到1960年的書本中非常常見,但現在逐漸減少。所以如果你在1941年到現在出版的書上跑一下這個model的話,它會告訴你二戰相關的主題熱度在逐漸遞減。

悲劇的是,使用原始的LDA,簡單的把1941到現在每年的書單獨跑一次,結果都跟這個改近後的Model沒差。

這就夠讓研究者們鬱悶了。你辛辛苦苦改近發動機想要你fancy的小奧拓跑快一點,結果發現鄰居在沒有改裝的QQ上跑得跟你一樣快,你怎麼想?

我就是其中一個鬱悶的人。所以,他媽的,我現在不搞了。

[1]David Mimno, Hanna M. Wallach, Edmund Talley, Miriam Leenders, and Andrew McCallum. 2011. Optimizing semantic coherence in topic models. In Proceedings of the Conference on Empirical Methods in Natural Language Processing (EMNLP "11). Association for Computational Linguistics, Stroudsburg, PA, USA, 262-272.
[2]Yin, Z., Cao, L., Han, J., Zhai, C., Huang, T. (2011). Geographical topic discovery and comparison. Presented at the WWW "11: Proceedings of the 20th international conference on World wide web, ACM. doi:10.1145/1963405.1963443


我覺得圖模型有個很明顯的特點,就是你無法像用random forest這種模型那樣把它當個黑盒子,只要改改參數跑跑包就行了。來,讓我用例子說說我自己的故事。

Okay,假設我們現在有個任務,要做physician targeting【1】,目的是找到合適的醫生賣葯。這是一個廣告業常見業務,不難理解。可以模型化成最簡單的binary classification問題。定位醫生,肯定也要用到病人的信息。用圖模型的好處如下,1)全局信息同時處理:我可以用二分圖構建一個龐大的醫生病人網路,one shot model,一把全搞定,joint estimation。2)易於解釋: patient info,physician info,patient physician link全用,巴拉巴拉忽悠客戶,忽悠老闆,大家都很高興。

第一步,我寫出所有變數的joint distribution,這沒問題,假設的簡單一點,都能搞。這就算是把model 的structure搭建出來了。

第二步,訓練,也叫參數估計,如果我要用conditional random field(以下簡稱CRF),這是個discriminative model。這個model有個麻煩的地方,後驗概率的分母要自己積分,要能積出來close form才能寫出目標函數,才能訓練。這都要自己搞,要自己寫梯度演算法,不是import 個package就完事了的。有沒有好奇為什麼大家特別喜歡研究高斯CRF,就算feature 明顯是離散的,甚至categorical的也假設成高斯?因為假設成Poisson分母可能就積不出來了呀。這幫Phd student發paper不會告訴你何故他一上來就假設高斯,他最多就告訴你怎麼把你的問題近似成高斯,吼吼。好吧,我不想瞎搞近似,我用Markov random field(MRF),這是個generative的model,也能用,參數估計簡單一點,自己寫寫目標函數,把參數最大似然估計估計,模型訓練好了。

第三步,統計叫inference,機器學習叫predict,通過MRF模型,我得到了六萬多個physician的label的joint 後驗distribution,我現在要找到每個醫生的邊緣概率分布才能對每個醫生做預測對吧。那怎麼辦呀,我不能暴力積分呀,這麼多變數。那就利用網路的結構吧,我的圖環loop比較少,嗯,說明很多變數是條件獨立的,嗯,要好好利用。來吧,那就belief propagation吧,嗯,我個人更喜歡他的一個等價形式,factor graph以及sum product message passing,容易做程序設計。自己算好message,這裡面又要找到好多積分的close form 否則不能用,哎。。。學術界大愛高斯,好推導,容易close form。這幫人。。。不黑了,大家都是這麼過來的。

Anyway了,最後我總算算出了邊緣概率密度。噢耶。然而全這麼搞了一套下來,python 代碼兩千行,四個月。好處是圖模型容易解釋,ppt做著也漂亮,而且有門檻,不是別人安裝個tensorflow就能說自己是deep learning xxx的那種感覺。壞處呢是基本都要自己寫。github上生成圖模型的包我覺得不好用呀,一般貌似用不上。除非你要解決的問題跟作者的非常接近。

我們再討論一下benchmark,跟random forest比一比。用Random forest (RF)呢,需要從patient level的data裡面給physician做feature。這就有點試錯的意思了。但是RF試錯很容易呀,完全就是個黑盒子,調調參數,改改輸入,多爽。因為只是benchmark么,我就用常規的,易於解釋的,人民群眾能接受的方式做了些feature engineering。嗯,結果是,圖模型在recall非常高(寧可錯殺,不能放過)的情況下,明顯好,recall正常的時候呢,微微好。我靠,但是這是四個月的時間呀。賣得出去嗎?看consultant怎麼吹了吧。

來來來,總結一下。如果你是我們這種諮詢公司的modeler,methodology的fancy程度也許能讓客戶更加滿意。那graphical model學一學也無妨,但我怎麼覺得deep learning 更fancy呢?上手還容易。如果你是學校得PhD student,這東西寫paper還行,可以發一發,發了說不定引用還行,畢竟還有很多人也要靠這個畢業么。

但是,如果你就是在解決問題,工程思維,要最短時間拿出最合理的方案,那這東西還是算了吧。要是只看結果的準確率,我怎麼就沒見Kaggle上哪次是靠圖模型贏得呢?

【1】Physician targeting:簡單理解就是醫藥代表的工作。美國人力成本昂貴,再加上法律法規什麼的,不能直接進科室推銷。一般都是給醫生打電話,寫郵件,開會推銷。對於有些治療罕見疾病的藥品,目標醫生不會太多。所以需要用醫療記錄數據進行定位,提高廣告投送準確率。

【2】我沒有介紹LDA(Latent Dirichlet allocation)是因為在我看來LDA更像一個Bayesian mode,不僅僅是一個圖模型,也不算是個特別典型的圖模型(純屬個人見解)。David Blei的那篇文章只是一開始用Bayes network介紹了一下模型的架構,讓讀者容易理解。那篇文章LDA的inference部分是 Variational Bayes。

##################################################################
感謝大家點贊,看來還是有人看,那我就再多寫一點。

既然開扯了,我索性就把我對LDA的理解寫下來吧。這東西又叫probabilistic topic model。一個典型的用途是文本歸類。文本本來是很長,很繁雜的字元串,裡面有很多很多詞語。LDA可以實現dimensionality reduction。還是舉例子吧。

假設我們有10,000個文本,涵蓋了5000個辭彙,需要對把這麼多文本歸類成10類。每個文本根據詞頻可以總結成一個5000乘以1的向量。換言之,每個文本都是5000維空間里的一個點。直接在這個5000位的空間做聚類,不現實。

那我們假設這10000個文本涉及到50個話題,那麼LDA可以輸出每一個文本在這50個話題上的一個概率分布,probability mass function。注意,這是個非監督學習的過程啊,文本一開始是假設沒有label的。LDA只是把文本抽象成了一個50乘1的向量。這下,每個文本變成了50維空間里的一個點。下來呢,不論是做聚類,還是做分類(最開始如果文本有label的話),是不是都容易了很多呢?

順便一說,上面描述的過程也是個feature learning(representation learning)的過程,讓機器來找數據的規律,做特徵。

上面說了LDA的一個應用,下面說點細節,諸位可能知道LDA是一個generative model,是一個詞語的generator,那根據LDA,這些文本是怎麼生成的呢?

舉個例子:
假設我們有如下三個文本:
Document 1: d1 = I like eating apple
Document 2: d2 = I like jogging
Document 3: d3 = I like eating apple while jogging

三個文本涵蓋6個單詞:
Vocabulary set (詞語集合,字典) : { I, apple, eating, like, jogging, while }

假設只有兩個topic
Topic set: { food, sports }

那麼LDA模型可以用三個unfair coins(正面向上概率不是0.5的硬幣)和兩個six-face weighted dice(六個面,各個面幾率不均等)來描述。

三個硬幣,三個文本,每個文本分配一個硬幣。兩個骰子,對應兩個topic。每個骰子六個面對應六個單詞。

好,我們要生成文本1了啊。文本1有四個單詞,意味著我們要扔四次硬幣,還要扔四次骰子。生成單詞1:第一步,先丟一號硬幣,決定下一步用什麼骰子。第二步,硬幣正面向上用骰子1,反面向上用骰子2;扔骰子決定文本1的第一個單詞。在上面的例子里,對應的結果就是1。把生成單詞1的過程重複4次,就得到文本1了,在上面的例子里,對應的結果就是1432。完事了把硬幣1扔垃圾堆,用不上了,骰子留下,生成文本2還要用得上。

生成文本2,類似的過程,用硬幣2,和兩個骰子。生成完文本,把硬幣2撇了。

文本3,類似,你們懂得。

在上面這個例子里,硬幣向上的概率就可以作為文本的特徵【3】。我把文本從一個6維空間投影到了2維空間。如果硬幣向上的幾率和骰子六個數字的分布被認為是確定值,frequentist統計學,那就等價於PLSI(Probabilistic latent semantic analysis), 這個需要證明,但不難理解。如果硬幣向上的幾率被認為是隨機變數,有一個服從Dirichlet分布的先驗分布,Bayesian,那就是LDA啦。

我寫這個例子,只是希望用一個例子幫助理解Blei教授的那篇文章的建模,要不然不熟悉貝葉斯那一套的哥們一看文章,直接就蒙了。上面這個例子,對應【Blei 03】里的(2)式。
硬幣概率:對應theta
硬幣概率的先驗:對應alpha
骰子概率(2乘以6的矩陣):對應beta
文字:對應w
每個文字的話題:對應z

我絕對不是讓大家死記硬背然後跑去面試官那裡在黑板上寫一堆證明自己懂LDA了啊。

總結一下,我剛才舉的例子,是不是一個用模型(模型么,顧名思義,就是用一個簡單系統描述複雜系統的工具)來描述文本是如何生成的過程。在Blei教授03年的論文里,他管這個叫document modeling,這就是一個generative model。

R,python,Matlab包都有現成的,自己搜吧。經典的LDA比較成熟,如果您是在做科研,要改進這個model,那就有點費勁了。

【3】嚴格的說,Blei的文章里用的是這個概率的一個近似,他文章里的gamma。因為這個概率不好解,他用variational method。
【Blei 03】http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf
#################################

慚愧慚愧,我本來以為這種問題沒什麼人看,一開始寫的很亂。我今天把答案又潤色了一番,盡量改掉病句,加中文翻譯。語文水平有限,您湊合著看。回頭我再找幾個圖豐富豐富。


要是你還在念書,最好系統學,按部就班看Koller公開課,戰線比較長,但是她的時間線真的很紮實,接觸別的的圖模型心裡更有底氣:Coursera - Free Online Courses From Top Universities。公開課有一點不好就是隔一段時間反芻起來特別不方便,這時就可以祭出她那本兇器,整門公開課其實就是這本書的目錄加摘要,講的順序和裡面用得例子是一模一樣的,可以當做是完整版的教案:http://www.amazon.cn/Probabilistic-Graphical-Models-Principles-and-Techniques-Koller-Daphne/dp/0262013193/ref=sr_1_1?ie=UTF8qid=1452571603sr=8-1keywords=Probabilistic+Graphical+Models%3A+Principles+and+Techniques

要是你已經工作了,我覺得還是不要拿寶貴的時間系統學了,從你工作中用到的一個圖模型入手,看論文,一點一點走遍圖模型,一個模型一個模型地拓撲展開。工作中會用到的模型基本上都是全息的,比如你學個條件隨機場,你就得跟隱馬對比吧,那你就要分別知道馬爾科夫隨機場跟貝葉斯網路,然後你就會想知道馬爾科夫隨機場(條件隨機場)跟貝葉斯網路(隱馬)有啥區別。要想知道區別在哪你就得知道貝葉斯網路獨立性怎麼判斷、馬爾科夫隨機場獨立性怎麼判斷、貝葉斯怎麼inference、馬爾科夫怎麼inference、貝葉斯怎麼優化、馬爾科夫怎麼優化,要知道貝葉斯怎麼優化你還得知道EM,而EM書上一般都是從最大熵講的。。。然後你就知道這些都是啥東西了,他們之間是什麼關係,這樣你就知道概率圖模型里都有些啥了,心裡就有個譜。我也在用這種方式學,我覺得這個思路比無中生有開始講要流暢得多。

反正無論哪種方式,儘早心裡有個譜是十分重要的。但並不意味著非要系統地學才能心裡有個譜,其實如果是系統地學的話往往學到最後才知道整件事情的脈絡。


PGM確實是一個大坑,和很多領域關係都很大。比如LDA一般用在文本、圖像分類上,CRF一般用於圖像上,HMM一般做語音這種時序數據,而近來比較火的Deep Learning例如DBN、DBM的基本結構RBM也是一種Graphical Model(雖然現在大家都去用CNN了,那個是純粹的神經網路結構)。

涉及的領域這麼雜,所以短時間內不太容易一下上手吃透,我建議是先瀏覽一下Michael Jordan寫的那篇經典的Graphical Models,了解一些像Inference、clique等基本概念。我的感覺是如果你之前懂Bayesian的話,Directed Graphical Models會很容易上手理解,但是Undirected Graphical Models就不是那麼直觀了。不過當你明白這些都只是些人為的定義時,就不用那麼糾結了。圖的結構是個人都會畫,不過怎麼解釋它,怎麼優化,這就是內功了。

Coursera上的那門PGM是Koller大牛上的,我也聽過一部分,不過個人感覺沒有Hinton那門Neural Networks對我啟發大。還有吐槽一下Koller她的口音不是特別好聽,還有就是ppt一半內容都是上課時候臨時畫的,不是特別好看,不過總體來說課還是不錯的。


個人覺得還是要好好學習一下的。現在的很多流行的 model,比如 deep belief network, restricted Boltzmann machine 等等都是可以用 PGM 描述的。Koller 在 Coursera 的課不錯,涵蓋了她那本書的基礎部分。不過要是說看書的話,我推薦 Jordan 的 An Introduction to Probabilistic Graphical Models(沒有出版,不過可以搜到,在此就不貼鏈接了). Koller 的書起點太高,過於 formal;相比起來 Jordan 的更直觀易懂一些。


概率圖模型(PGM)有必要學習一下嗎?
PGM是機器學習的重要分支之一,不學會感覺人生不夠完整。

概率圖模型(PGM)有必要系統地學習一下嗎?看情況。
PGM包含的東西很多,系統地學習需要付出相當的時間成本,而在業界,相當多的工作並不需要用到PGM,所以建議根據自己的實際需求去評估投入產出比。

PGM的實用性?
毋庸置疑。我們組主要是解決IT運行管理(ITOM)中智能服務(Service Intelligence)的問題,我負責的很重要的項目之一就是IT運營中Alert/ Incident的根源性原因分析(Root Causl Analaysis),PGM是解決這一問題的核心演算法。從目前客戶的反饋看,模型效果令人滿意。

我用過的概率圖模型(PGM)的學習材料
1. Judea Pearl: Networks of Plausible Inference
2. Daphne Koller: Probabilistic Graphical Models: Principles and Techniques
3. 10708 Probabilistic Graphical Models
4. Coursera | Probabilistic Graphical Models


PGM至少是一種機器學習的框架,無論是Bayesian network的inference在CTR預估上的應用, 還是markov network的HMM,CRF在自然語言上面的應用。如果可以將問題抽象出數據,隱含變數的圖模型,然後應用inference的演算法,比如MCMC,variational inference可以直接算出基於數據的隱含變數的含義。
另外如果不知道結構是如何,structure learning,也是PGM的方向,比如markov logic network。
補充我們之前的一本教材&書不厚,但是入門和升級都包括中。
最後給自己的git打個廣告,我梳理了一下Bayesian Learning所需要的一些基礎知識點:
https://github.com/ReactiveCJ/BayesianLearning


很有必要,我再次推薦周志華《機器學習》中的概率圖模型有專門一章。

建議重點搞懂下面幾個模型:

1. HMM 隱馬爾科夫模型 | 我愛自然語言處理

2. CRF 模型

3. LDA 模型

能把這幾個模型看下來,學會了,恭喜你,入門了


我覺得機器學習中的概率圖跟人工智慧中的agent地位差不多。能夠幫你搭起框架,建立整體圖景,是一個基本的思考工具。另外,感覺Eric Xing和Koller的公開課跟書沒法比。才讀了一部分,感覺不讀會後悔。


PGM很formal, 讀起來很優雅,但是真具體到某些具體問題上效果吧就比較難說了~~但是PGM是機器學習的一大柱石,很多機器學習模型,包括最近在很多方向幾乎一統江湖的DNN的很多模型,也都要用到PGM。
P.S. TM只能算是PGM的一個小分支,而且裡面關於那個topic也不是正常的topic,更多的是一種聚類上的定義。TM這幾年其實看機器學習會議上的文章大家已經開始在解決LDA固有的一些問題,number of topics, bag-of-words, 固定的vocabulary, etc. 關於複雜度和並行化的處理:去年KDD的best paper (from google)是利用metropolis-hastings對LDA做的演算法上的優化,今年lightLDA貌似做的更好。在遇到一些複雜問題時,還是不失為一種不錯的解決方法吧。


概率圖模型,簡單說就是用graph來表示各參數的關係,用圖的一些理論來簡化公式上的推導吧。簡單的說,就是概率圖將原本公式表達的一長串列式,可視化了!(多麼火的詞啊)
你用windows肯定比用dos在某些方面更加直觀啊。
我對機器學習略知皮毛而已,可以直接鄙視我。。。
知識來源是C. Bishop的Pattern Recognition and Machine Learning.


推薦Eric Xing的視頻課程,在CMU官網上有



難道我們不應該去追求一個可能一以貫之的內涵嗎?
世間的現象紛繁複雜,難道不想知道有沒有可能建立一些基本的框架把更多的東西解釋進去嗎?
有些東西我們可以觀測到,有些東西我們不能觀測到,有些東西之間有著內在聯繫。這樣的現象不僅存在於自然界,更廣泛存在於人類社會中。大到經濟市場的波動,小到人們身體運作呈現的現象,難道我們不應該尋求一種框架把它們收錄進去嗎?
古人喜歡說昨夜我雲夜觀星象,難道不覺得這星象和社會運動之間存在的聯繫很微妙嗎?也許有些事情之間的本構關係難以發現,但我們都知道會有這種聯繫。我們想要發掘出這種聯繫,我認為概率圖模型
至少概率圖模型提供了這樣的一種可能性。那麼如果志向在於揭開世界奧秘的話,我覺得即便是為了這種可能性,都值得認真學習。因為即便後來發現你想錯了,也會給你提供很多靈感。


這篇文章我想能幫到你:
Stanford教授Daphne Koller 概率圖模型 — 終極入門 第三講 馬爾可夫網路 (Markov Networks)


只說一下koller那本書。。。
那本書沒看上去那麼令人生畏。。。
你知道老外寫textbook的德行。。。一堆基礎知識一堆栗子半本書就下去了。。。
那本書我看了差不多一半了。。。帶著問題看的。。。為了解決我的問題不知不覺就看了一半左右了。。。真沒多大壓力。。。搞清思路之後大段內容都是可以跳過的。。。
看看挺好的。。。書講得比較細緻清楚。。。很多東西不看書可能覺得似是而非。。。看看書就明白多了。。。


機器學習里能和深度學習有來有回的現在也就只有概率圖了,而且作為一個優雅的模型,工程化上可解釋性好太多


我找到一本中文書,可以看看:概率圖模型學習理論及其應用_趙悅_清華大學出版社 - 下載頻道 - CSDN.NET
另外LDA漫遊指南也不錯:LDA漫遊指南_馬晨 - 下載頻道 - CSDN.NET


推薦閱讀:

TAG:人工智慧 | 移動通信 | 機器學習 | 概率圖模型 |