1. 程式人生 > >轉--Approximate Inference(近似推斷,變分推斷,KL散度,平均場, Mean Field )

轉--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):
013
這裡我們是在除了x_j之外的其他x_i上求期望,也就是這個東西:這裡寫圖片描述,它是關於x_j的函式。
下面講一下10.1.1的可分解分佈,也就是剛才說過的,假設多元分佈可分解為多個一元分佈的乘積,即用015去近似p(x)。由於各個變數之間是解耦的,所以我們可以每次只關注單個變數的最優化,也就是用所謂座標下降(coordinate descent)的方式來做最優化。具體做法,就是把最小化KL散度轉化為最大化L(q)(參見公式(10.2)到(10.4)),然後把公式(10.5)代入(10.3),每次把L(q)其中一個q_j當做變數,而把其他q_i當做常數,對L(q)進行最優化:
016
這裡:017
前面講過,KL散度也可以寫成:這裡寫圖片描述,可以看到,(10.6)最後得到的這個019,恰好是負KL散度的形式。我們知道,KL散度為0也就是最小的時候,兩分佈恰好相同,因此每一步的最優化結果可得到:020
也就是每一步更新的結果,可得到分解出來的變數的分佈為:
021
就是兩邊都取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)作為近似計算的目標,也就是下面這個關係:
這裡寫圖片描述
其中:
023
這裡ln(p(X))只是個常數,所以極小化KLD和極大化L得到的結果是一樣的,但對L做最優化可直接用聯合概率分佈去做、而不用歸一化。:我們想要得到的簡單分佈具有什麼樣的形式?我們喜歡的一種簡單分佈是可分解分佈,就是說,我們可以假設各個隱變數Z_i之間是獨立的,因此可拆成各隱變數分佈的乘積:
024
那麼,各個隱變數的L可寫為:
這裡寫圖片描述
其中
這裡寫圖片描述
這裡這裡寫圖片描述表示:
028
這是對Z_j之外的其他所有隨機變數求期望,也叫做mean field。極大化L相當於極小化這裡寫圖片描述,顯然這裡寫圖片描述取和這裡寫圖片描述完全相同的形式時,KLD極小,同時L極大。所以我們有最優解:
029
這裡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 .
軟體所-張巍[email protected] 21:26:42
問個問題:用分解的分佈去近似原始分佈,精度怎麼保證,有沒有直觀點的解釋。
Wilbur_中博(1954123) 21:28:32
@軟體所-張巍 的問題是好問題啊。。一般來說,似乎是把變分近似看作在MAP和貝葉斯推斷(用整個分佈)之間的一種trade-off?
huajh7(284696304) 21:29:54
給個圖 :
030
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
031
分母就是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問題?
========================討論結束=================================
接著主要講幾個變分推斷的例子,試圖闡述清楚變分推斷到底是如何應用的。首先是二元高斯分佈的近似。我們假設二元高斯分佈是可分解的,也就是兩變數之間獨立。
二元高斯分佈這裡寫圖片描述
其中033

可分解形式為:這裡寫圖片描述
我們想用q(z)去近似p(z),用前面推匯出來的(10.9):
這裡寫圖片描述
因為是求z1的分佈,所以按(10.9),我們在z2上求期望,得到(10.11)。然後,我們就可以祭出第二章修煉的法寶——配方法,從(10.11)得到高斯分佈:
這裡寫圖片描述
其中
這裡寫圖片描述
同樣,z2的分佈也可如法炮製:
這裡寫圖片描述
其中
039
它們是完全對稱的。因為m1裡有z2的期望,而m2裡又有z1的期望,所以我們可以設一個初始值,然後迭代求解。但實際上這兩個式子恰好有解析解:這裡寫圖片描述041,我們可把它們代入(10.13)和(10.15)驗證一下。
下面我們重點看一下引數推斷問題,但其核心思想實際上和前面講的例子區別不大。同樣還是先看一下高斯分佈:
我們想推斷後驗高斯分佈的均值這裡寫圖片描述和精度這裡寫圖片描述
假如我們觀察到N個數據這裡寫圖片描述,那麼似然函式就是:
045
另外引入先驗分佈,均值服從高斯分佈、精度服從Gamma分佈:
046
其實這個問題我們前面第二章就講過,不用變分推斷也能直接求出來,但這裡用變分推斷實際上增加了更多的靈活性,因為如果先驗和似然的形式不是高斯-Gamma的形式,而是更加複雜,那麼我們也可以利用變分推斷來算引數,這是非常方便的。我們這裡只是用我們熟悉的高斯分佈來舉例子,把這個弄明白,以後再推廣到其他例子上就容易多了。
利用mean field形式(10.9),我們可計算出047的分佈:
048
可以看到,047服從高斯分佈形式050,且通過配方,可得到該分佈引數為:
051
注意到,樣本越多也就是N越大時,均值會趨向於樣本均值這裡寫圖片描述,同時精度趨向於無窮大。同樣可用(10.9)計算這裡寫圖片描述的分佈,得到:
這裡寫圖片描述
它服從Gamma分佈形式055,可以看到,(10.27)和(10.30)裡,仍然有和另一分佈相關的期望需要計算,所以我們可以設定初始值,然後迭代計算。迭代過程和收斂後的結果圖書上10.4所示:
056
再看一個例子,是用變分推斷計算線性迴歸的引數。線性迴歸的引數w,有似然和先驗如下:
057
2.3.6講過,058的共軛先驗是Gamma分佈:
059

這裡寫圖片描述
其概率圖模型為圖10.8:
這裡寫圖片描述
利用變分推斷來計算w和這裡寫圖片描述,同樣是假設它們有可分解形式:
這裡寫圖片描述
再用(10.9)(這個絕對是看家法寶)來搞,得到:
這裡寫圖片描述
可看到它服從Gamma分佈:
這裡寫圖片描述

所以我們仍然可以迭代計算:給初始值,每一步都算出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[email protected] 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
這只是理想的情況,概率模型的缺點,在於它需要精確地刻劃細節。