變分推斷(Variational Inference)


變分

對於普通的函數f(x),我們可以認為f是一個關於x的一個實數算子,其作用是將實數x映射到實數f(x)。那么類比這種模式,假設存在函數算子F,它是關於f(x)的函數算子,可以將f(x)映射成實數F(f(x)) 。對於f(x)我們是通過改變x來求出f(x)的極值,而在變分中這個x會被替換成一個函數y(x),我們通過改變x來改變y(x),最后使得F(y(x))求得極值。

變分:指的是泛函的變分。打個比方,從A點到B點有無數條路徑,每一條路徑都是一個函數吧,這無數條路徑,每一條函數(路徑)的長度都是一個數,那你從這無數個路徑當中選一個路徑最短或者最長的,這就是求泛函的極值問題。有一種老的叫法,函數空間的自變量我們稱為宗量(自變函數),宗量變化了一點點而導致了泛函值變化了多少,這其實就是變分。變分,就是微分在函數空間的拓展,其精神內涵是一致的。求解泛函變分的方法主要有古典變分法、動態規划和最優控制。

變分推斷

image

推了這么多公式,讓我們先喘口氣,來看看這些公式究竟在做什么?
對於一類數據x(無論是音頻還是圖片),對它們進行編碼后得到的特征數據往往服從某種分布q(z),z為隱變量,q(z)這個隱含分布我們無法得知,但是我們可以通過現有數據X來推斷出q(z),即P(z|x)。KL散度是用來衡量兩個分布之間的距離,當距離為0時,表示這兩個分布完全一致。P(x)不變,那么想讓KL(q(z)||P(z|x))越小,即讓ELOB越大,反之亦然。因為KL≥0,所以logP(x)≥ELOB。這個結論還可以通過下面的公式同樣得到:

image

這段公式推導的關鍵在於中間的不等式部分,即Jensen不等式:

image

變分貝葉斯(Variational Bayes)

變分貝葉斯學習算法通常也是變分貝葉斯期望最大(Variantional Bayesian Expectation Maximization)VBEM算法,是廣義化的EM算法。

變分貝葉斯是一類用於貝葉斯估計和機器學習領域中近似計算復雜(intractable)積分的技術。它主要應用於復雜的統計模型中,這種模型一般包括三類變量:觀測變量(observed variables, data),未知參數(parameters)和潛變量(latent variables)。在貝葉斯推斷中,參數和潛變量統稱為不可觀測變量(unobserved variables)。變分貝葉斯方法主要是兩個目的:

  1. 近似不可觀測變量的后驗概率,以便通過這些變量作出統計推斷。近似求P(Z|D)

  2. 對一個特定的模型,給出觀測變量的邊緣似然函數(或稱為證據,evidence)的下界。主要用於模型的選擇,認為模型的邊緣似然值越高,則模型對數據擬合程度越好,該模型產生Data的概率也越高。

對於第一個目的,蒙特卡洛模擬,特別是用Gibbs取樣的MCMC方法,可以近似計算復雜的后驗分布,能很好地應用到貝葉斯統計推斷。此方法通過大量的樣本估計真實的后驗,因而近似結果帶有一定的隨機性。與此不同的是,變分貝葉斯方法提供一種局部最優,但具有確定解的近似后驗方法。

從某種角度看,變分貝葉斯可以看做是EM算法的擴展,因為它也是采用極大后驗估計(MAP),即用單個最有可能的參數值來代替完全貝葉斯估計。另外,變分貝葉斯也通過一組相互依然(mutually dependent)的等式進行不斷的迭代來獲得最優解。

問題描述

重新考慮一個問題:1)有一組觀測數據D,並且已知模型的形式,求參數與潛變量(或不可觀測變量)Z={Z1,...,Zn}的后驗分布: P(Z|D)。

正如上文所描述的后驗概率的形式通常是很復雜(Intractable)的,對於一種算法如果不能在多項式時間內求解,往往不是我們所考慮的。因而我們想能不能在誤差允許的范圍內,用更簡單、容易理解(tractable)的數學形式Q(Z)來近似P(Z|D),即 P(Z|D)≈Q(Z)。

由此引出如下兩個問題:

  1. 假設存在這樣的Q(Z),那么如何度量Q(Z)與P(Z|D)之間的差異性 (dissimilarity).

  2. 如何得到簡單的Q(Z)?

對於問題一,幸運的是,我們不需要重新定義一個度量指標。在信息論中,已經存在描述兩個隨機分布之間距離的度量,即相對熵,或者稱為Kullback-Leibler散度

對於問題二,顯然我們可以自主決定Q(Z)的分布,只要它足夠簡單,且與P(Z|D)接近。然而不可能每次都手工給出一個與P(Z|D)接近且簡單的Q(Z),其方法本身已經不具備可操作性。所以需要一種通用的形式幫助簡化問題。那么數學形式復雜的原因是什么?在“模型的選擇”部分,曾提到Occam’s razor,認為一個模型的參數個數越多,那么模型復雜的概率越大;此外,如果參數之間具有相互依賴關系(mutually dependent),那么通常很難對參數的邊緣概率精確求解。

幸運的是,統計物理學界很早就關注了高維概率函數與它的簡單形式,並發展了平均場理論。簡單講就是:系統中個體的局部相互作用可以產生宏觀層面較為穩定的行為。於是我們可以作出后驗條件獨立(posterior independence)的假設。即,∀i,p(Z|D)=p(Zi|D)p(Z−i|D)

Kullback-Leibler散度

在統計學中,相對熵對應的是似然比的對數期望,相對熵 D(p||q)度量當真實分布為 P而假定分布為Q時的無效性。

image

image

為了極大化L(q),我們需要選擇合適的函數q,使其便於計算。要注意到L(q)並非普通的函數,而是以函數q為自變量的函數,這就是泛函。泛函可以看成是函數概念的推廣,而變分方法是處理泛函的數學領域,和處理函數的普通微積分相對。變分法最終尋求的是極值函數:它們使得泛函取得極大或極小值。


Gibbs Sampling這一類Monte Carlo算法,它們的做法就是通過抽取大量的樣本估計真實的后驗分布。而變分推斷不同,與此不同的是,變分推斷限制近似分布的類型,從而得到一種局部最優,但具有確定解的近似后驗分布。

image

求解過程(極大化L(q))

根據以上假設,我們來最大化下界L(q),因為假設qi(Zi)分布之間都是獨立的,所以我們依次輪流來優化,以qj(Zj)為例(為了簡單起見,縮寫為qj)。


image

這里我們定義一個新分布lnp~(X,Zj)為

image

我們發現它剛好是除去與qj分布相關的zj之后原似然的期望值,有

image

然后看式(5)的最后部分,就是qj(Zj)和p~(X,Zj)的KL散度的負值,這里我們固定qi≠j不變,那么最大化L(q)就變成了最小化這個KL散度,而KL 散度的最小值在qj(Zj)=lnp~(X,Zj)時取到。所以,最優解q∗j(Zj)為

image

另加的這個C是為了歸一化整個分布,有image然后依次更新其他Zj,最終相互迭代達到穩定。


變分下界

我們也可以直接衡量模型的下界。在實際應用中,變分下界可以直接判斷算法是否收斂,也可以通過每次迭代都不會降低這一點來判斷算法推導和實現的部分是否存在問題。

image




平均場理論(Mean Field Method)

數學上說,平均場的適用范圍只能是完全圖,或者說系統結構是well-mixed,在這種情況下,系統中的任何一個個體以等可能接觸其他個體。反觀物理,平均場與其說是一種方法,不如說是一種思想。其實統計物理的研究目的就是期望對宏觀的熱力學現象給予合理的微觀理論。物理學家堅信,即便不滿足完全圖的假設,但既然這種“局部”到“整體”的作用得以實現,那么個體之間的局部作用相較於“全局”的作用是可以忽略不計的。

根據平均場理論,變分分布Q(Z)可以通過參數和潛在變量的划分(partition)因式分解,比如將Z划分為Z1…ZM

image

注意這里並非一個不可觀測變量一個划分,而應該根據實際情況做決定。當然你也可以這么做,但是有時候,將幾個潛變量放在一起會更容易處理。

通俗理解平均場

假設有一個很大很大的教室,里面坐着很多很多的學生,這些學生都在晨讀,你是其中的一員。你聽到的聲音是所有學生發出的聲音到擬這個位置的疊加,顯然這個求和很復雜,因為你的聽覺感受與聲源到你的距離有關。為了簡化這個求和,我們把所有學生在你這個位置產生的聲音效果看作是噪音。如果這個教室真的足夠大,大到我們可以忽略邊界效應。現在,換一個場景,如果所有學生保持戰斗隊列(繼續晨讀),你現在是一位老師,在教室里巡視。然后無論你走到哪里,你的聽覺感受都是一樣的。這個噪音在任何位置都一樣,無論往前走還是往右走一步都一樣,這就是平移不變性。這個時候,噪音和一個均勻外場產生的效果一樣,這個噪音就是平均場。

平均場方法的合理性

在量子多體問題中,用一個(單體)有效場來代替電子所受到的其他電子的庫侖相互作用。這個有效場包含所有其他電受到的其他電子的庫侖相互作用。這個有效場包含了所有其他電子對該電子的相互作用。利用有效場取代電子之間的庫侖相互作用之后,每一個電子在一個有效場中運動,電子與電子之間的運動是獨立的(除了需要考慮泡利不相容原理),原來的多體問題轉化為單體問題。

於是,對於某個划分Zi,我們可以先保持其他划分Z−i不變,然后用以上關系式更新Zi。相同步驟應用於其他划分的更新,使得每個划分之間充分相互作用,最終達到穩定值。

具體更新邊緣概率(VB-marginal)步驟如下:

image

平均場估計下邊緣概率的無意義性 (VB-marginals)

注意到Q(Z)估計的是聯合概率密度,而對於每一個Qi(Zi),其與真實的邊緣概率密度Pi(Zi)的差別可能是很大的。不應該用Qi(Zi)來估計真實的邊緣密度,比如在一個貝葉斯網絡中,你不應該用它來推測某個節點的狀態。而這其實是很糟糕的,相比於其他能夠使用節點狀態信息來進行局部推測的算法,變分貝葉斯方法更不利於調試。

比如一個標准的高斯聯合分布P(μ,x)和最優的平均場高斯估計Q(μ,x)。Q選擇了在它自己作用域中的高斯分布,因而變得很窄。此時邊緣密度Qx(x)變得非常小,完全與Px(x)不同。

image

泛函的概念

上文已經提到我們要找到一個更加簡單的函數D(Z)來近似P(Z|D),同時問題轉化為求解證據logP(Z)的下界L(Q),或者L(Q(Z))。應該注意到L(Q)並非普通的函數,而是以整個函數為自變量的函數,這便是泛函。我們先介紹一下什么是泛函,以及泛函取得極值的必要條件。

泛函

設對於(某一函數集合內的)任意一個函數y(x),有另一個數J[y]與之對應,則稱J[y]為y(x)的泛函。泛函可以看成是函數概念的推廣。 這里的函數集合,即泛函的定義域,通常要求y(x) 滿足一定的邊界條件,並且具有連續的二階導數.這樣的y(x)稱為可取函數。

泛函不同於復合函數

例如g=g(f(x)); 對於后者,給定一個x值,仍然是有一個g值與之對應; 對於前者,則必須給出某一區間上的函數y(x),才能得到一個泛函值J[y]。(定義在同一區間上的)函數不同,泛函值當然不同, 為了強調泛函值J[y]與函數y(x)之間的依賴關系,常常又把函數y(x)稱為變量函數。

image

image







參考文獻:

http://blog.csdn.net/GZHermit/article/details/66472671

http://blog.huajh7.com/2013/03/06/variational-bayes/

http://crescentmoon.info/2013/10/03/%E5%8F%98%E5%88%86%E6%8E%A8%E6%96%AD%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B01%E2%80%94%E2%80%94%E6%A6%82%E5%BF%B5%E4%BB%8B%E7%BB%8D/


免責聲明!

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



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