變分法和變分貝葉斯推斷

本文轉載的原文鏈接:變分法和變分貝葉斯推斷
另一篇CSDN鏈接學習:變分貝葉斯推斷(Variational Bayes Inference)簡介

變分法是17世紀末發展起來的一門數學分支,是泛函分析裏面的一個領域,在普通的最優化問題中,往往求解得到的是一個最優值解,而在一個變分問題中,求解得到的是一個最優函數解,因此變分問題可以看成是泛函的一個極值問題。最經典的一個變分問題就是最速下降曲線問題:在重力作用下一個粒子沿着該路徑可以在最短時間從點A到達不直接在它底下的一點B。在所有從A到B的曲線中必須極小化代表下降時間的表達式。該問題由從約翰·伯努利(Johann Bernoulli)1696年提出,並由此發展成了變分法這門數學分支。在統計機器學習裏變分法也起着至關重要的作用,比如在最大熵問題中,可以利用變分法推導出正態分佈。在統計機器學習裏面還有一個重要的概念叫做變分貝葉斯推斷(Variational Bayesian Inference)。很多統計機器學習問題裏面,往往需要去近似求解不可觀測變量或者叫隱變量(latent variable)的後驗概率分佈,而變分貝葉斯推斷關注的就是如何求解一個近似後驗概率分佈,因此在統計機器學習裏面應用比較廣泛。下面會首先介紹變分法的相關知識,然後再介紹變分貝葉斯推斷的相關知識。

變分問題在數學上的定義通俗地可以理解爲泛函的極值問題。通常函數可以表示成自變量到因變量的映射關係:y=f(x),泛函一般可以理解爲函數的函數:J(f(x)),一般稱J(f(x))爲f(x)的泛函,但是泛函要求f(x)滿足一定的邊界條件,並且具有連續的二階導數。這樣的f(x)稱爲可取函數。通常一個最優化問題中,求解的是一個最優數值解,而在變分問題中,往往求解的是一個最優函數解。比如在求解最大熵的問題上,最終求解得到的就是一個概率分佈,在該概率分佈下使得熵最大,由於概率分佈本身可以看成一個函數,因此可以把最大熵求解問題看成是一個變分求解問題。變分法相當於把微積分從變量推廣到函數上。在普通的微積分中可以通過對變量求導數,然後令導數爲0來求解一個極值問題,通過變分法一樣可以通過導數爲0的條件求解無約束極值問題,以及引入拉格朗日乘子來求解有約束極值問題。下面將通過一個求解最大熵分佈的例子來展示,通過變分法是如何來求解一個函數的極值問題的。

首先給出一個概率質量分佈函數f(x),定義該分佈下的信息熵爲:

由於是概率分佈,因此可以加入一些約束條件:

由於有三個約束條件,因此可以引入三個拉格朗日乘子:,得到新的目標函數:

然後根據變分法原理,可以令:

定義被積函數:

可以把被積函數F(f(x),x)看成是函數f(x)的泛函,所以根據變分法有:

因此可以得到:

其中C是λ的待定係數。

然後運用約束條件(1),並令

再把f(x)代入約束條件(1)可以得到:

可以得到:

然後利用約束條件(2),又有:

再根據yf(y)是奇函數的性質,故:

再利用約束條件(3),有:

再把求解得到的代入f(x)的表達式得到:

可以看到f(x)就是一個正態分佈的表達式,再考慮二階變分:

因此可以得出當概率質量分佈f(x)爲正態分佈時,信息熵最大。插一句題外話,大自然真的很神奇,我們初中就知道根據熱力學第二定律,一切自然過程總是沿着無序性增大的方向進行的,而熵就是衡量無序性的一個標準,這也解釋了爲什麼大自然偏愛正太分佈的原因,因爲在正太分佈下無序性最大。大自然是懶惰的,它不想耗費更多的能量去構建一個更加有序的世界,所以就有了人類:)

變分貝葉斯推斷

通常在研究貝葉斯模型中,需要去求解一個後驗概率(Posterior)分佈,但是由於求解過程的複雜性,因此很難根據貝葉斯理論求得後驗概率分佈的公式精確解,所以一種方法是用一個近似解來替代精確解,並使得近似解和精確解的差別不會特別大。一般求解近似解的方法有兩種:第一種是基於隨機採樣的方法,比如用蒙特卡洛採樣法去近似求解一個後驗概率分佈;第二種就是變分貝葉斯推斷法。變分貝葉斯法是一類用於貝葉斯估計和機器學習領域中近似計算複雜積分的技術。它關注的是如何去求解一個近似後驗概率分佈。

通過變分貝葉斯推斷可以求解得到一個近似的後驗概率分佈去逼近真實的後驗概率分佈。假設真實後驗概率分佈爲:P(Z|X),我們希望用一個近似後驗概率分佈Q(Z):去逼近P(Z|X)。爲了描述近似的後驗概率分佈和真實後驗概率分佈的逼近程度,引入KL散度(Kullback-Leibler Divergence),在概率論或信息論中,KL散度又稱相對熵(relative entropy),是描述兩個概率分佈P和Q逼近程度的一種方法。但是KL散度並不是一種距離度量標準,因爲它是非對稱的。定義KL散度數學表達式爲:

通過最小化KL散度值就可以推導出變分貝葉斯推斷中的ELOB(Evidence Lower Bound)。具體過程如下:

令:

可以得到:

由於目標是最小化KL(Q||P),同時logP(X)是一個不依賴隱變量Z的常數,因此最小化KL(Q||P)等價於最大化L(Q)。由於KL散度值是大於等於0的(當且僅當Q分佈和P分佈相等時等於0),因此可以推得L(Q)是logP(X)的一個下界,其實還可以對L(Q)再做一個轉變:

即得到通常意義上的ELOB(Evidence Lower Bound)。因此,可以通過最大這個下界來達到最小化KL(Q||P)的目的,這樣做的一個好處在於,如果直接優化KL(Q||P),由於真實後驗分佈往往事先不知道,而且如果用貝葉斯公式來計算P(Z|X)的複雜度特別高,因此不好直接優化KL(Q||P)。爲了優化L(Q),需要引入一種叫做平均場的方法(mean field theory),即假設每個隱變量之間服從獨立同分布:

因此,L(Q)等式後半部分(針對L(Q)的原始公式表達式)可以表示爲:

L(Q)的前半部分可以表示爲:

最終得到L(Q)的表達式爲:

其中爲信息熵,由於,並且KL散度值也總是大於等於0,因此要最大化L(Q),只需要令,即:

至此,就得到了Q(Z)的分佈形式。但是很多時候,我們不僅需要得到一個近似後驗概率分佈Q(Z),我們真正需要的是一個訓練好的生成模型P(Z,X),特別是在深度學習裏面,因此我們往往優化的是:

寫在最後

雖然變分貝葉斯推斷很美,所以很多人在遇到帶隱變量的模型時都會下意識的去引入變分貝葉斯推斷來求解模型參數,其實如果隱變量是低維並且離散的話,完全沒有必要去引入變分貝葉斯推斷去估計模型的參數。而且,在深度學習裏面,變分貝葉斯的訓練並不簡單,需要花很多精力去調參數,所以在可以求精確解的條件下就沒有必要去求一個下界解。這是最近做實驗得到的一些結論。

References:

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

[2] http://blog.csdn.net/aws3217150/article/details/57072827

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章