PRML讀書會第十章 Approximate Inference(近似推斷,變分推斷,KL散度,平均場, Mean Field )


主講人 戴瑋

(新浪微博: @戴瑋_CASIA

Wilbur_中博(1954123) 20:02:04 

我們在前面看到,概率推斷的核心任務就是計算某分布下的某個函數的期望、或者計算邊緣概率分布、條件概率分布等等。 比如前面在第九章尼采兄講EM時,我們就計算了對數似然函數在隱變量后驗分布下的期望。這些任務往往需要積分或求和操作。 但在很多情況下,計算這些東西往往不那么容易。因為首先,我們積分中涉及的分布可能有很復雜的形式,這樣就無法直接得到解析解,而我們當然希望分布是類似指數族分布這樣具有共軛分布、容易得到解析解的分布形式;其次,我們要積分的變量空間可能有很高的維度,這樣就把我們做數值積分的路都給堵死了。因為這兩個原因,我們進行精確計算往往是不可行的。
為了解決這一問題,我們需要引入一些近似計算方法。

近似計算有隨機和確定兩條路子。隨機方法也就是MCMC之類的采樣法,我們會在講第十一章的時候專門講到,而確定近似法就是我們這一章講的變分。變分法的優點主要是:有解析解、計算開銷較小、易於在大規模問題中應用。但它的缺點是推導出想要的形式比較困難。也就是說,人琢磨的部分比較復雜,而機器算的部分比較簡單。這和第十一章的采樣法的優缺點恰好有互補性。所以我們可以在不同的場合應用變分法或采樣法。這里我的一個問題是:是否可以結合二者的優點,使得人也不用考慮太多、機器算起來也比較簡單?
變分法相當於把微積分從變量推廣到函數上。我們都知道,微積分是用來分析變量變化、也就是函數性質的,這里函數定義為f: x -> f(x),而導數則是df/dx;與之相對,變分用到了泛函的概念:F: f -> F(f),也就是把函數映射為某個值,而相應地,也有導數dF/df,衡量函數是如何變化的。比如我們熟悉的信息論中的熵,就是把概率分布這個函數映射到熵這個值上。和微積分一樣,我們也可以通過導數為0的條件求解無約束極值問題,以及引入拉格朗日乘子來求解有約束極值問題。比如說,我們可以通過概率分布積分為1的約束,求解最大熵的變分問題。PRML的附錄D和E有比較詳細的解釋,我們后面也還會看到,這里就不多說了。
變分法這名字聽起來比較可怕,但它的核心思想,就是從某個函數空間中找到滿足某些條件或約束的函數。我們在統計推斷當中用到的變分法,實際上就是用形式簡單的分布,去近似形式復雜、不易計算的分布,這樣再做積分運算就會容易很多。 比如,我們可以在所有高斯分布當中,選一個和目標分布最相似的分布,這樣后面做進一步計算時就容易獲得解析解。此外,我們還可以假設多元分布的各變量之間獨立,這樣積分的時候就可以把它們變成多個一元積分,從而解決高維問題。這也是最簡單的兩種近似。

概率推斷中的變分近似方法,最根本的思想,就是想用形式簡單的分布去近似形式復雜、不易計算的分布。比如,我們可以在指數族函數空間當中,選一個和目標分布最相像的分布,這樣計算起來就方便多了。
顯然,我們這里需要一個衡量分布之間相似性或差異性的度量,然后我們才能針對這個度量進行最優化,求相似性最大或差異性最小的分布。一般情況下,我們會選用KL散度:

或者,當然離散分布就不是積分而是在離散狀態上求和。這個值是非負的,而且只在兩分布完全相同的情況下取0,所以可以看成兩分布之間的距離。但這種度量是不對稱的,也就是,而我們在優化的時候,這兩種度量實際上都可以使用。這樣一來,我們后面也會看到,會造成一些有趣且奇怪的現象。有了這個度量,我們就可以對某個給定的概率分布,求一個在某些條件下和它最相似或距離最小的分布。這里我們看幾個例子,直觀地認識一下KL散度的不對稱性、以及產生這種不對稱性的原因。這是兩個方差不同的一元高斯分布,其中方差較小的是q(紅色曲線),方差較大的是p(藍色曲線):

根據KL散度的公式,我們能否估計一下,是KL(q||p)較大,還是KL(p||q)較大?我們可以看到,在曲線的中間部分,q(x) > p(x),因此,如果光考慮這部分,顯然KL(q||p)會比較大。但是,考慮兩邊 q(x) < p(x) 的部分,我們可以看到,q(x) 很快趨近於0,此時 p(x)/q(x) 會變得很大,比中間部分要大得多(打個比方,0.8/0.4 和 0.01/0.001)。盡管還要考慮 log 前面的 q(x),但當 q(x) 不等於0時,分母趨近於0造成的影響還是壓倒性的。所以綜合考慮,KL(q||p)要小於KL(p||q)。它們的精確值分別為0.32和0.81。另一個例子是,如果兩個高斯分布方差相等,則KL散度也會相等:

這一點很容易理解。再來看一個復雜一點的例子。在這個例子中,q是單峰高斯分布,p是雙峰高斯分布:

這三種情況中,p的兩個峰沒有分開,有一定粘連,而q則分別擬合了p的左峰、右峰(見PRML 4.4節的拉普拉斯近似,上次讀書會也簡單介紹過,可參看上次讀書會的總結),以及擬合p的均值和方差(即單峰高斯分布的兩個參數)。三種擬合情況對應左、中、右三圖。對於這三種情況,KL(q||p)分別為1.17、0.09、0.07,KL(p||q)分別為23.2、0.12、0.07。可以看到,無論是哪一種KL散度,在p的雙峰沒有完全分開的情況下,用單峰高斯q去近似雙峰高斯p得到的最優解,都相當於擬合p的均值和方差。如果p的兩個峰分開的話,情況會如何呢?

和前一個例子一樣,我們分別擬合p的左峰、右峰,以及均值和方差。顯然,這里由於p中間有一段概率密度為0的區域,所以可以想見,KL(q||p)可能會比較大。實際情況也是如此:KL(q||p)分別為0.69、0.69、3.45,KL(p||q)分別為43.9、15.4、0.97。可以看到,如果用KL(p||q)做最優化,結果和雙峰粘連時一樣,仍然是擬合p的均值和方差,也就是所謂的moment-matching;而用KL(q||p)做最優化,結果則會有所變化:會擬合雙峰的其中一峰,也就是所謂的mode-seeking。
我們從前面這幾個例子中,可以總結一個規律:用KL(q||p)做最優化,是希望p(x)為0的地方q(x)也要為0,否則q(x)/p(x)就會很大,剛才例子的右圖在中間部分(5附近)就違背了這一點;反之,如果用KL(p||q)做最優化,就要盡量避免p(x)不為0而q(x)用0去擬合的情況,或者說p(x)不為0的地方q(x)也不要為0,剛才例子的左、中兩圖也違反了這一點。
所以,KL(q||p)得到的近似分布q(x)會比較窄,因為它希望q(x)為0的地方可能比較多;而KL(p||q)得到的近似分布q(x)會比較寬,因為它希望q(x)不為0的地方比較多。
最后看一個多元高斯分布的例子,書上的圖10.3:

即有了前面的講解,我們可以猜一下,哪些圖是KL(q||p)得到的最優解,哪些圖是KL(p||q)得到的最優解。
由於KL(q||p)至少可以擬合到其中的一個峰上,而KL(p||q)擬合的結果,其概率密度最大的地方可能沒什么意義,所以很多情況下,KL(q||p)得到的結果更符合我們的需要。到這里有什么問題嗎。。理解理解。。KL散度這東西。

============================討論=================================

飛羽(346723494) 20:24:23 
KL(q||p) 就是相當於用q去擬合p?
Yuli(764794071) 20:25:31 
KL就是KL Divergence(相對熵)吧 用信息論來解釋的話 是用來衡量兩個正函數是否相似  
飛羽(346723494) 20:25:57 
對, 就是相對熵
Wilbur_中博(1954123) 20:27:06 
嗯,我們現在有一個分布p,很多時候是后驗分布,但它形式復雜,所以想用形式比較簡單的q去近似p。其實也可以直接用后驗分布的統計量,比如mode或mean去代替整個分布,進行進一步計算,比如最大后驗什么的。但現在如果用近似分布去做預測的話,性能會好得多。
linbo-phd-bayesian(99878724) 20:27:15 
請問為何KL(q||p)》=0,為何沒有《0啊,有知道的嗎?
飛羽(346723494) 20:28:06 

Wilbur_中博(1954123) 20:29:21 
那個不太難證,利用ln凹函數性質可以證出來。。不過細節我忘記了,呵呵。查一查吧。。應該很多地方都有的。

逸風(421723497) 20:30:44 
PRML P56
Wilbur_中博(1954123) 20:31:50 
總之就是利用KL作為目標函數,去做最優化。。找到和已知復雜分布最相近的一個近似分布。這一章的基本思路就是這樣。具體動機最開始的時候已經提到過了。

逸風(421723497) 20:35:31 
為什么要用KL散度這樣一個不具備對稱性的"距離",而不采用對稱性的測度呢?有什么好處?
Wilbur_中博(1954123) 20:37:15 

似乎沒有特別好的對稱的度量?PRML的公式(10.20)提過一種叫Hellinger distance的度量,是對稱的,但后來也沒有用這個。不知道為什么。不容易優化?有沒有了解原因的朋友。。比如說,為啥不用 (p(x) - q(x) ^ 2 做積分作為度量? 或者其他什么的。
WayneZhang(824976094) 20:41:52 
我感覺是優化求解過程中近似時自然而然導出了KL這個度量。
karnon(447457116) 20:42:24 
KL算的是熵的增益,所以一定是那種形式 ,這取決於你怎么定義"近似", 認為信息增益最少就是"近似"也是一種合理的定義
Wilbur_中博(1954123) 20:43:07 
這里目的是為了找近似分布

========================討論結束=================================

我們在PRML這本書的4.4節,其實看到過一種簡單的近似方法,或者可以說是最簡單的近似方法之一:拉普拉斯近似。它是用高斯分布去近似目標分布的極值點也就是mode。這里並沒有涉及到變分的概念。
它只是要求高斯分布的mode和目標分布的mode位置相同,方法就是把目標分布在mode處做泰勒級數展開到第二階,然后用對應的高斯分布去代替,就是把未知系數給湊出來:
 
這是目標分布在\theta^*(mode)的二階泰勒展開:

一比較就知道高斯分布的兩個參數應該取:

也就是PRML圖10.1的紅線:

棕色部分是目標分布,綠線是我們用變分近似,在高斯分布中選一個和目標函數的KL散度最小的分布。 
反正就均值和方差兩個未知參數,優化起來應該不難。

 

下面開始講10.1.1 可分解分布,這一節非常重要,可以說是本章的基礎和最重點的部分。基本思想就是,我們把近似分布限制在可分解分布的范圍內,也就是滿足(10.5)式:

可以說,這個分布的各組變量Z_i互相之間是獨立的。這樣一來,我們計算這個分布的積分時,就可以變成多個較低維度的積分,就算用數值積分什么的也會簡單很多。 在統計物理當中,這種可分解形式的變分近似方法稱作平均場(mean field)方法,這個名字實際上是很直觀的,和它最后得到的解的形式有關,我們馬上會看到。不過現在不僅在統計物理領域,機器學習很多時候也就管它叫mean field了。現在很火的RBM什么的,求參數時經常能看到這個術語。
上一章曾經講過,最小化KL距離,和最大化下界L(q)是一回事,也就是(10.2)到(10.4)這三個式子:



這和9.4節當中(9.70)到(9.72)實際上是一樣的,區別在於Z不僅是隱變量還把參數吸收了進來。等式左邊那項和我們想求的Z無關,所以可以看成常數,而右邊的p(Z|X)是我們想去近似的,不知道具體形式,所以可以間接通過最大化右邊第一項來達到最小化右邊第二項也就是KL散度的目的。
根據上面的(10.5)式會得到公式(10.6):

我們這里也可以看MLAPP的(21.28)到(21.31):

推導得要詳細得多。。所以多備幾本參考書是必要的。
MLAPP是Machine Learning - A Probabilistic Perspective的縮寫。。群共享里應該有吧。很不錯的機器學習書。
huajh7(284696304) 21:02:10 
插一句。這里優化的目標其實是最大化low bound L(q)  (log P(D)是對數證據,常數,KL(Q||P)=0時,L(Q)最大)。也就是找到一個最合適的q分布,而不是優化參數。 優化過程中,求導,拉格朗日什么,是針對q分布的,也就是泛函。 這是為什么叫變分法:
 
Wilbur_中博(1954123) 21:03:04 
好,謝謝。我看了你的博客http://www.blog.huajh7.com/variational-bayes/,文章寫得很好。你好像畢業論文就是專門做這個的吧? 也許你下次可以再專門講一講你對變分近似的心得體會,呵呵。
簡單說,這里的推導就是每一步只看q_j相關的那些項,和q_j無關的項全都歸到常數里去。比如(21.30)的這部分:

實際上就全扔到常數里去了。哦。。還少了個(21.32):

這里我們是在除了x_j之外的其他x_i上求期望,也就是這個東西:
,它是關於x_j的函數。

下面講一下10.1.1的可分解分布,也就是剛才說過的,假設多元分布可分解為多個一元分布的乘積,即用去近似p(x)。由於各個變量之間是解耦的,所以我們可以每次只關注單個變量的最優化,也就是用所謂坐標下降(coordinate descent)的方式來做最優化。具體做法,就是把最小化KL散度轉化為最大化L(q)(參見公式(10.2)到(10.4)),然后把公式(10.5)代入(10.3),每次把L(q)其中一個q_j當做變量,而把其他q_i當做常數,對L(q)進行最優化:

這里:
前面講過,KL散度也可以寫成:,可以看到,(10.6)最后得到的這個,恰好是負KL散度的形式。我們知道,KL散度為0也就是最小的時候,兩分布恰好相同,因此每一步的最優化結果可得到:
也就是每一步更新的結果,可得到分解出來的變量的分布為:

就是兩邊都取exp然后歸一化。由於是以其他變量的均值作為當前變量分布的形式,所以這種方法也稱作mean-field。這部分內容也可以參見MLAPP的21.3.1,那一節講得感覺比PRML清楚一些。 那個公式是比較頭疼。。不過只要記住只有一個q_j是變量,其他都當成常數,推一推應該也ok。

重新回顧下前面的內容:

變分推斷的核心思想是:用形式比較簡單、做積分運算比較容易的分布,去替代原先形式復雜、不易求積分的分布。因此,這里的主要問題就是:如何找到和原分布近似程度較高的簡單分布。前面我們講了一些變分推斷的背景知識和KL divergence(KLD)的相關知識,還稍微講了講假設分布可分解時是如何推導出mean field形式的。KLD是衡量兩個分布差異大小的方式之一,KLD越大則差異越大,反之則兩分布越相似。因此,我們可以將KL(q||p)作為目標函數,並限定q為較簡單的分布形式,找到這類分布中最接近原分布p的那個分布。我們這里主要關注的近似對象是后驗分布。因為我們前面一直在講如何求后驗分布,但后驗分布求出來的形式往往不那么好用,所以需要用簡單分布去近似。然而,計算p(Z|X)需要計算歸一化因子p(X)。p(X)是邊緣分布,需要對p(Z,X)做積分,而p(Z,X)又不那么容易積分。因此,我們可以直接用未歸一化的p(Z,X)作為近似計算的目標,也就是下面這個關系:

其中:

這里ln(p(X))只是個常數,所以極小化KLD和極大化L得到的結果是一樣的,但對L做最優化可直接用聯合概率分布去做、而不用歸一化。:我們想要得到的簡單分布具有什么樣的形式?我們喜歡的一種簡單分布是可分解分布,就是說,我們可以假設各個隱變量Z_i之間是獨立的,因此可拆成各隱變量分布的乘積:

那么,各個隱變量的L可寫為:

其中

這里表示:

這是對Z_j之外的其他所有隨機變量求期望,也叫做mean field。極大化L相當於極小化,顯然取和完全相同的形式時,KLD極小,同時L極大。所以我們有最優解:

這里p是已知的,所以可對它做積分。對除Z_j以外的隨機變量求期望得到的分布,就是分解出來的q_j的分布。我們每一步迭代都對每一個分解分布q_j進行求解。這種方法也稱做coordinate descent。

============================討論=================================

一夏 呂(992463596) 21:15:06 
10.6后面有,10.7的const沒有必要吧?我當時好像看懂了 做的筆記 現在一下看不懂了。。 后面那個很簡單 是因為  其他的Zi積分為1。我記起來了 ,把后面的lnqi的和拆開,只把j的那一項留着,其他的都可以積分積掉,划到const里,這里主要是吧j的那一項拿出來表示,其他的 不相干的都不管。
huajh7(284696304) 21:25:23 
有必要吧。否則不相等了,這里const表示歸一化常量。實際上需要特別注意const,尤其自己推導的時候,const更多是表示與z_j無關的量,而不是指一個常量。在概率圖中就是不在z_j的馬爾科夫毯上的量。阿邦(1549614810) 21:26:08 
mean filed看koller的最清楚

一夏 呂(992463596) 21:26:57 
注意Z是大寫,所以j的那個積分里 其他的i都積分為1了。
huajh7(284696304) 21:27:48 
const 有必要。exp(E_{i~=j}[..]) 是沒有歸一化的。

一夏 呂(992463596) 21:28:23 
哪里有exp

huajh7(284696304) 21:28:32 
ln .

軟件所-張巍<zh3f@qq.com> 21:26:42 
問個問題:用分解的分布去近似原始分布,精度怎么保證,有沒有直觀點的解釋。
Wilbur_中博(1954123) 21:28:32 
@軟件所-張巍 的問題是好問題啊。。一般來說,似乎是把變分近似看作在MAP和貝葉斯推斷(用整個分布)之間的一種trade-off?
huajh7(284696304) 21:29:54

 給個圖 :


Wilbur_中博(1954123) 21:30:01 
因為一個是用后驗分布的點估計,一個是用整個分布,不錯,這是哪里的圖?
huajh7(284696304) 21:32:23 
variational bayeian 可以說是分布式distributional approximation,也就是wilbur說的,用的是整個分布。 The Variational Bayes Method in Signal Processing這本書的 第9頁。
李笑一(94755934) 21:32:46 
@張巍,我記得變分法能保證收斂到local minimum。一般情況下,最大似然是non convex的,但是變分下界卻是convex,下界的minimum就是下一步要前進的方向。
一夏 呂(992463596) 21:33:23 
但是變分法的前提是把dependence去掉了,這樣才能把總概率拆開成各自概率的積。即使是convex的 ,也只是逼近原先intractable 的形式。10.7的那個我還是覺得const沒必要。
Wilbur_中博(1954123) 21:36:04 
其實就是沒歸一化的,所以要加個const,(10.9)那個也是這樣
一夏 呂(992463596) 21:36:17 
后面那個是求期望,就是上面那個花括號里的
李笑一(94755934) 21:36:30 
@huajh7,圖上看來,EM更好使???
一夏 呂(992463596) 21:37:16 
EM是可解的時候用的,只是有隱變量
秦淮/sun人家(76961223) 21:37:31 
EM是可以求得精確地后驗

Happy(467594602) 21:38:30 
直觀解釋 請參照jordan寫的introduction
huajh7(284696304) 21:38:33 
10.6-10.9 就是利用KL(q||p)=0

分母就是const,VB也可以看成是EM。

一夏 呂(992463596) 21:41:00 
@Happy  jordan的introduction 是他的那本書嗎?
Happy(467594602) 21:41:20 
introduction to variational methods in graphical model
用簡單分布的族 把復雜分布包裹起來 ,然后復雜分布的每一點都有一個簡單分布的參數來近似
一夏 呂(992463596) 21:42:47 
thanks 他還有一本書 是Graphical Models, Exponential Families, and Variational Inference
huajh7(284696304) 21:43:25 
Neal,HintonA view of the EM algorithm that justifies incremental, sparse,and other variants.pdf 這篇文章 說EM,其實就是變分貝葉斯。
Happy(467594602) 21:43:25 
后一本太難了。。
李笑一(94755934) 21:43:26 
@huajh,弱弱的問一下,分母將Z marginalize掉這步只是在推導中出現是吧,編程的時候不會出現實際的過程?
huajh7(284696304) 21:44:06 
寫程序的時候,還是還歸一化的。比如,GMM中的隱變量,全部算出來之后,然后再歸一化。

一夏 呂(992463596) 21:45:37 
如果隱變量很多不是exponential個組合了

huajh7(284696304) 21:46:01 
就轉化為exponential 
Wilbur_中博(1954123) 21:46:01 
mean field的過程中呢?每個Z_j的分布也都要歸一化么?@huajh7 
Happy(467594602) 21:46:16 
我咋記得不用歸一化。。mean-field
一夏 呂(992463596) 21:46:18 
那就很費時間
huajh7(284696304) 21:46:45 
后來會知道。算的是充分統計量。
一夏 呂(992463596) 21:46:46 
如果有64個,每個01分布就是2^64次方
李笑一(94755934) 21:47:33 
恩,partition function永遠是問題
Happy(467594602) 21:47:35 
程序里面沒有歸一化步驟吧,推導中體現了
李笑一(94755934) 21:48:12 
啥叫充分統計量?
huajh7(284696304) 21:48:16 
概率才歸一化啊。
Happy(467594602) 21:48:30 
指數族里面有
huajh7(284696304) 21:48:35 
充分統計量能完全表示一個分布。對

一夏 呂(992463596) 21:49:29 
不用歸一化吧,看10.9 10.10中間那個公式下面那段話
huajh7(284696304) 21:49:42 
為什么是指數族。。。一個最主要的原因就是其充分統計量是可計算的
Happy(467594602) 21:50:03 
這個jordan后面那個書有深入介紹。。
一夏 呂(992463596) 21:51:09 
通常不需要求出分布,而是得到分布的類型和參數
huajh7(284696304) 21:51:33 
@一夏 呂 可能理解不一樣。歸一化不是指計算那個積分(partition function)..
一夏 呂(992463596) 21:51:41 
通常就是指數族,自然服從積分為1
Happy(467594602) 21:52:25 
沒有自然哈 也有歸一化系數

一夏 呂(992463596) 21:53:00 
恩 但是那個是和分布本身有關的,知道了參數就可以推,比如高斯的方差

李笑一(94755934) 21:56:38 
這部分有沒有類似的書寫的不錯的。直接講替代教材得了
Happy(467594602) 21:57:29 
jordan那個不錯,不過主要是針對graphical model的
Wilbur_中博(1954123) 21:58:14 
我除了PRML和MLAPP,還看了一下Bayesian Reasoning and Machine Learning的最后一章
一夏 呂(992463596) 21:58:16 
有看多lda的嗎 那個里面的variational inference和這個方法完全不同
Happy(467594602) 21:58:28 
腫么不同。。
秦淮/sun人家(76961223) 21:58:33 
@一夏 呂 其實是一樣的
huajh7(284696304) 21:58:33 
bishop不喜歡詳細推導的。講清楚就行。這里有篇:

A Tutorial on Variational Bayesian Inference (http://staffwww.dcs.shef.ac.uk/people/c.fox/fox_vbtut.pdf)  還是很清楚的 。LDA 。其實是一樣的。。建立的圖模型上,比較直觀。
秦淮/sun人家(76961223) 21:59:37 
LDA那篇文章就是使用的mean field
一夏 呂(992463596) 21:59:38 
blei用拉格朗日乘子法做的。。
Happy(467594602) 21:59:46 
一樣的啊。。
秦淮/sun人家(76961223) 22:00:02 
不同的優化方法而已……
huajh7(284696304) 22:00:03 
嗯。其實是一樣的。
秦淮/sun人家(76961223) 22:00:12 
本質是一樣的
Happy(467594602) 22:00:21 
直覺一致
秦淮/sun人家(76961223) 22:00:26 
不一樣的是Expectation propagation 那篇
huajh7(284696304) 22:00:37 
對。那個感覺有些難。
一夏 呂(992463596) 22:00:40 
恩 也是搞kl距離  方法各不相同
Happy(467594602) 22:01:52 
對這些有興趣就看jordan的大作吧,這些全部都歸到架構里去了
一夏 呂(992463596) 22:05:45 
http://www.cs.princeton.edu/courses/archive/fall11/cos597C/lectures/variational-inference-i.pdf
推薦這個 blei的講義

一夏 呂(992463596) 22:09:18 
variational inference 是不是只是對指數族的才有用?
Happy(467594602) 22:09:26 
一樣的 統計模型下
一夏 呂(992463596) 22:10:04 
我一般只在貝葉斯學派的文章里見到,一般都用Gibbs sampling
Happy(467594602) 22:10:16 
也不一定。。
一夏 呂(992463596) 22:11:00 
比如rbm就不能用variational inference
Happy(467594602) 22:11:21 
可以啊,mean-field必須可以用

天際一線(1002621044) 22:19:40 
lda 那個話題模型 誰有完整的算法啊
Happy(467594602) 22:23:48 
lda老模型了吧。。程序應該多如牛毛
秦淮/sun人家(76961223) 22:24:22 
對啊,mean field ,expectation propagation ,gibbs sampling,distributed ,online的都有
一堆
_Matrix_(690119781) 22:28:18 
https://github.com/sudar/Yahoo_LDA 這個可能滿足你的要求

陪你聽風(407365525) 22:31:18 
在效果上,variational inference,gibbs sampling兩個誰更好呢

秦淮/sun人家(76961223) 22:38:35 
sampling近似效果好,慢,不好分布式計算
陪你聽風(407365525) 22:39:08 
vb比較容易分布式嗎
huajh7(284696304) 22:40:24 
噗。VB是可以很自然地分布式的。。

李笑一(94755934) 22:42:16 
弱問。。VB為啥自然可以用分布式
huajh7(284696304) 22:45:22 
利用variational message passing 框架下即可。。。節點之間傳遞充分統計量。充分統計量(一階矩,二階矩)的consensus或diffusion是有較多paper的。圖模型中的BP或loopy BP算一種分布式嘛?

李笑一(94755934) 22:48:28 
有個問題,不同問題的vb是否需要自己推導出來?不能隨意套用別人的推導呢?
huajh7(284696304) 22:49:05 
推導框架。如出一轍。。但自己推並不容易的。

李笑一(94755934) 23:04:01 
karnon,一篇jmlr的文章,在一個問題上證了vb 的全局解
Global Analytic Solution of Fully-observed Variational Bayesian Matrix Factorization

看明白了給講講。。。
huajh7(284696304) 23:10:47 
2,3年前就出來了。。這篇估計是combined and extended。
light.(513617306) 23:15:13 
這個是證明了在矩陣分解這個問題上的全局最有,不證明在其他模型上也是這樣。》?
karnon(447457116) 23:15:34 
這就已經很牛了

李笑一(94755934) 23:17:43 
vb對於不同問題有不同的解,我覺得除非熟到一定程度了,否則不可能拿來一個問題就能用vb的
karnon(447457116) 23:21:29 
我看看,我知道最近有些文章研究全局收斂的矩陣分解問題,粗翻了一下,好像說的是把vb轉成一個等價的svd問題?
========================討論結束=================================

接着主要講幾個變分推斷的例子,試圖闡述清楚變分推斷到底是如何應用的。首先是二元高斯分布的近似。我們假設二元高斯分布是可分解的,也就是兩變量之間獨立。
二元高斯分布
其中

可分解形式為:
我們想用q(z)去近似p(z),用前面推導出來的(10.9):

因為是求z1的分布,所以按(10.9),我們在z2上求期望,得到(10.11)。然后,我們就可以祭出第二章修煉的法寶——配方法,從(10.11)得到高斯分布:

其中

同樣,z2的分布也可如法炮制:

其中

它們是完全對稱的。因為m1里有z2的期望,而m2里又有z1的期望,所以我們可以設一個初始值,然后迭代求解。但實際上這兩個式子恰好有解析解:,我們可把它們代入(10.13)和(10.15)驗證一下。
下面我們重點看一下參數推斷問題,但其核心思想實際上和前面講的例子區別不大。同樣還是先看一下高斯分布:
我們想推斷后驗高斯分布的均值和精度
假如我們觀察到N個數據,那么似然函數就是:

另外引入先驗分布,均值服從高斯分布、精度服從Gamma分布:

其實這個問題我們前面第二章就講過,不用變分推斷也能直接求出來,但這里用變分推斷實際上增加了更多的靈活性,因為如果先驗和似然的形式不是高斯-Gamma的形式,而是更加復雜,那么我們也可以利用變分推斷來算參數,這是非常方便的。我們這里只是用我們熟悉的高斯分布來舉例子,把這個弄明白,以后再推廣到其他例子上就容易多了。
利用mean field形式(10.9),我們可計算出的分布:

可以看到,服從高斯分布形式,且通過配方,可得到該分布參數為:

注意到,樣本越多也就是N越大時,均值會趨向於樣本均值,同時精度趨向於無窮大。同樣可用(10.9)計算的分布,得到:

它服從Gamma分布形式,可以看到,(10.27)和(10.30)里,仍然有和另一分布相關的期望需要計算,所以我們可以設定初始值,然后迭代計算。迭代過程和收斂后的結果圖書上10.4所示:

再看一個例子,是用變分推斷計算線性回歸的參數。線性回歸的參數w,有似然和先驗如下:

2.3.6講過,的共軛先驗是Gamma分布:

這樣聯合分布就是:

其概率圖模型為圖10.8:

利用變分推斷來計算w和,同樣是假設它們有可分解形式:

再用(10.9)(這個絕對是看家法寶)來搞,得到:

可看到它服從Gamma分布:

其中

以及:
 

可看到它服從高斯分布:

其中

(10.95)和(10.97)里還有奇怪的東西,從附錄B可知,它們分別是:

所以我們仍然可以迭代計算:給初始值,每一步都算出a_N、b_N和m_N、S_N,代入求解。
掌握了上面的三個例子,我想推廣到其他情況也都沒有太大難度了。其實書中還有一個例子也非常重要,就是10.2所講的用變分推斷計算高斯混合模型的參數。不過我想尼采兄講第九章時已經打下了很好的基礎,再加上剛才講的這一章的例子,看懂這部分應該不難。
后面還有一些有趣的內容,比如Expectation Propagation,是說對做極小化,而不是。因為積分里前面那項變成了p(Z)而不是q(Z),而p(Z)又是復雜分布,所以這里處理方式有所不同。感興趣的朋友可以看看10.7節是如何做的。
我講的內容就到這里。我個人的一點心得體會就是:高斯分布以及其他常用分布的形式、還有第二章講到的配方法一定要掌握好,這是識別分布和直接計算分布參數的最大利器。然后就是這一章的(10.9),也就是用可分解分布去做近似得到的mean field,這也是比較常用的。其實群里有不少對變分推斷很了解的高手,比如@huajh7 ,大家對這一塊有什么問題也可以找他們交流討論。

============================討論=================================

數據挖掘(983272906) 21:44:16 
這種分解有沒有什么限制條件
Wilbur_中博(1954123) 21:45:20 

 這不是分解,是從先驗和似然算聯合分布。可分解的簡單分布形式是(10.91)。
Y(414474527) 21:47:49 
變分推斷怎么應用到實際問題中呢
tzk<tangzk2011@163.com> 21:48:29 
LDA的原始論文用的也是變分呢。。
<(523723864) 21:48:43 
10.9式一定是tractable的嗎?
zeno(117127143) 21:52:58 
平均場假設可以有效減少參數。
Wilbur_中博(1954123) 21:53:54 
@Y 實際問題嗎?我覺得就是作為一種工具,求解模型參數的時候會比較簡單吧。之前在稀疏編碼里看到過一些,我覺得這篇文章不錯:http://ipg.epfl.ch/~seeger/lapmalmainweb/papers/seeger_wipf_spm10.pdf 。另外RBM似乎也有用這個的。
zeno(117127143) 21:54:19 
變分把推斷變為求極值問題,怎么求是另外一門課
Wilbur_中博(1954123) 21:54:43 
@< 我覺得不一定。。還得看p(X,Z)是什么樣的。
@zeno 嗯
<(523723864) 21:55:01 
按照10.9主要是推式子咯,事先不知道qj的分布

Wilbur_中博(1954123) 21:55:57 
嗯,應該是。。但是一般來說都可以想辦法搞出來吧,(10.9)的積分。
karnon(447457116) 21:59:27 
為什么一開始又要用復雜分布呢,建模時用那些復雜的模型,最后到求解時都退化成naive模型,所以事實上,和naive模型一樣
Wilbur_中博(1954123) 22:02:31 
可能一開始就用簡單分布的話,推出后驗分布有連鎖效應,就會越來越差吧。現在搞出后驗分布再用簡單分布去近似,我覺得道理上還是能說得通。
zeno(117127143) 22:03:27 
那為啥有泰勒展開,展開把高次舍棄,不都不是原來函數了嗎
<(523723864) 22:04:21 
關鍵是每次迭代的時候lower bound會不會上去
karnon(447457116) 22:04:22 
如果你要用 taylor展開來近似,那就得證明近似后你的解的性質不變 ,所以不是任何問題都能隨便近似
Wilbur_中博(1954123) 22:04:43 
@< 是,我覺得這個蠻關鍵的

karnon(447457116) 22:06:49 
就是你的解為什么好,它好在哪,近似之后,這些好處是不是還保留着,這在變分法中,完全沒有討論
zeno(117127143) 22:10:58 
要是有kl跟概率差異定量關系就沒問題了,平均場本來就是假設,變分推斷是合理的,kl嘛,不好說,反正不像熟悉的歐式度量,pgm不只變分一種推斷方法,所以也不能建成簡單模型。說實在如果能解決一類小問題效果不錯就已經很好了,mrf,hmm,crf,都能算到pgm中。pgm解決不少問題。

阿邦(1549614810) 23:41:20 
推斷方法不坑,主要還是模型的問題
karnon(447457116) 0:02:10 
我總感覺,一定有基於非概率模型的方法

彈指一瞬間(337595903) 6:31:34 
昨晚大家討論的好熱鬧啊。@karnon:我覺得近似推理對原模型的好處還是保留着的。雖然求解的時候是在簡單模型上做,但是簡單模型的求解目標是去近似原模型的最優而不是簡單模型的最優。這個和一上來就做簡單模型假設是不大一樣的。近似推理可以理解為在最優解附近找一個次優解,但總體目標還是原模型最優解的方向。而簡單模型求解可能目標就不一樣了。相比之下,還是用近似推理來解原問題比較好。(個人理解不一定對,歡迎跟帖
zeno(117127143) 6:52:44 
我喜歡概率模型,概率既能對不確定性建模更能對未知建模。做單選題25%表達的是學生對答案的未知,同樣的題對老師就是已知的。同樣問題用非概率解你需要知道的更多。同樣四道單選題三道不會,其他三道分別選a,b,c。第四道用概率方法根據一定先驗會盡量選d。不用概率方法根本做不了這種問題。
同樣如果知道了答案,肯定不會用概率方法,概率比通常非概率方法麻煩。
karnon(447457116) 7:33:16 
這只是理想的情況,概率模型的缺點,在於它需要精確地刻划細節。

 

PRML讀書會講稿PDF版本以及更多資源下載地址:http://vdisk.weibo.com/u/1841149974


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM