期望傳播演算法EP詳細介紹(expectation propagation)以及演算法舉例
一、前言
在機器學習問題中,從觀測變數推測潛變數或者說計算潛變數的後驗分佈 是非常重要的一類問題,關於什麼是潛變數,可以參考我之前一篇文章的第二節。
很多時候,因為潛變數z的維度很高,在z為離散時導致分母裡這個求和很難算,又或者是在連續時因為分母積分符號裡的表示式很複雜,導致這個積分沒有解析解。從而導致後驗分佈很難得到,這個時候我們就要採取近似的辦法來算後驗(近似推理approximate inference)。
approximate inference常用的思路有兩種,一種叫做stochastic approximate,就是通過蒙特卡洛取樣的方法來做,另一種叫deterministic approximations,思想是用簡單的分佈 來近似後驗。stochastic approximate通過取樣的方法優點是隻要取樣數夠多,精度就高,缺點是計算量大;deterministic approximations的優點是計算簡單,缺點是不夠精確。這裡我們重點介紹deterministic approximations的兩種演算法。
期望傳播演算法是deterministic approximations方法的一種,常見的deterministic approximations方法還有變分推理(variational inference)。
二、expectation propagation(EP)演算法
上一節說過,deterministic approximations是用簡單的分佈 來近似後驗分佈,在EP演算法中,我們假設q服從指數族分佈這一簡單的形式。我們通過KL散度來度量q分佈和目標分佈p之間的距離。
當q是指數族分佈的時候,q可以被表示為(參見PRML2.4節),這裡η是q分佈的引數(如果是高斯的話就是均值和方差)。

把q的這個形式代入KL散度。因為p是固定的,而我們要優化q,所以只保留與q有關的項,其他都放到常數項裡,從而有

對上式關於η求導,得到

又有(參見PRML2.4節)

可以得到

上式是同一個東西關於不同分佈的期望,因此我們只要匹配這兩個分佈的充分統計量,就可以做到讓上式成立,例如,若q是高斯分佈,只要讓q和p的均值和方差匹配就行了。這通常叫做moment matching,關於moment matching的理論證明我具體也不太明白,後面再看一些材料後再補上說明。這裡記住就行。
後面我們用θ來表示模型的引數和潛變數,用D來表示已經觀測到的資料。
在很多概率圖模型中,潛變數的真實後驗分佈可以寫成多個因⼦乘積的形式

我們除了假設q是指數族分佈形式,還假設用來近似後驗分佈的這個q也能寫成多個因⼦的乘積

直接優化下式不可行,因為散度左邊那項是真實的後驗分佈,形式複雜。

所以我們選擇讓q的每個因⼦ 分別近似p中相應的因⼦
來整體近似q和p。
那麼如何讓q的每個因⼦分別近似p中相應的因⼦呢?在優化 的時候, 我們⽤剩下的q因⼦(10.205式中的
)

乘以真實後驗分佈中的對應項 來替代真實後驗分佈

,然後通過最小化這個“後驗分佈”和q分佈的 KL距離就好了。

因為此時KL散度兩邊剩下的q因⼦是相同的,唯一不同的是 和
,此時就能做到單獨優化
.然後我們可以通過依次優化每一個
,反覆迭代來優化。下面就是EP的具體演算法流程
- 初始化每個
- 選擇某一個
來優化,用式子10.205(
)來表示q除去
後的結果,我們想要在保持
不變的情況下單獨優化
。這就相當於使得10.198的KL散度最小。由於我們假設了q是指數族分佈形式,由10.187可知,最小化10.198相當於讓
和
這兩個分佈的均值和方差匹配。於是我們就可以得到
,計算得到
後,我們可以計算得到優化後的


注意本來 是下面的形式,K是正則化項


由於我們使用了moment matching,我們可以對零階矩也進行匹配,從而得到


就是10.206
3.重複第二步直到收斂。
4.最後我們可以計算模型的似然,這個似然可以用來對模型做評估(越大越好)

三、舉例(clutter problem)
所謂的clutter problem,就是說我們有一個觀測到的資料集D,裡面的每個資料都是從一個高斯分佈裡取樣出來的,除了高斯分佈,在取樣的時候還額外有高斯噪聲,所以這個資料集其實是混合高斯的。
我們假設本身那個高斯是如下形式:

然後我們就是想根據觀測到的資料infer這個θ,我們對噪聲沒有興趣。
並且我們知道θ有先驗分佈如下

10.209的w、a和10.210的b都是假設已知,目標就是根據D估計θ。
D和θ的聯合分佈可以寫成如下形式,這就是第二節中我們說的因子相乘的形式。其中p(θ)對應

從取樣過程可知,上式連乘符號裡面每一項都對應了一個有兩個component的高斯混合(本身的高斯和噪聲高斯),再算上N個連乘,全部寫成相加的形式就有 個高斯混合了,這樣的式子形式太過複雜,如果我們想通過最大化似然函式之類的方法來估計θ顯然不行。因此我們需要藉助approximate inference的方法。這裡我們採用EP演算法來做。
我們假設我們用來近似的q函式有如下指數分佈形式(注意它不一定是個高斯,只不過是寫成了高斯的形式。因為v可能是負數)
一、前言
搞懂這個演算法要求讀者對概率圖模型中的sum-product演算法有一定了解,這裡預設讀者是知道的。不明白的請先移步PRML第八章。
在機器學習問題中,從觀測變數推測潛變數或者說計算潛變數的後驗分佈 是非常重要的一類問題,關於什麼是潛變數,可以參考我之前一篇文章的第二節。
很多時候,因為潛變數z的維度很高,在z為離散時導致分母裡這個求和很難算,又或者是在連續時因為分母積分符號裡的表示式很複雜,導致這個積分沒有解析解。從而導致後驗分佈很難得到,這個時候我們就要採取近似的辦法來算後驗(近似推理approximate inference)。
approximate inference常用的思路有兩種,一種叫做stochastic approximate,就是通過蒙特卡洛取樣的方法來做,另一種叫deterministic approximations,思想是用簡單的分佈 來近似後驗。stochastic approximate通過取樣的方法優點是隻要取樣數夠多,精度就高,缺點是計算量大;deterministic approximations的優點是計算簡單,缺點是不夠精確。這裡我們重點介紹deterministic approximations的兩種演算法。
期望傳播演算法是deterministic approximations方法的一種,常見的deterministic approximations方法還有變分推理(variational inference)。
二、expectation propagation(EP)演算法
上一節說過,deterministic approximations是用簡單的分佈 來近似後驗分佈,在EP演算法中,我們假設q服從指數族分佈這一簡單的形式。我們通過KL散度來度量q分佈和目標分佈p之間的距離。
當q是指數族分佈的時候,q可以被表示為(參見PRML2.4節),這裡η是q分佈的引數(如果是高斯的話就是均值和方差)。

把q的這個形式代入KL散度。因為p是固定的,而我們要優化q,所以只保留與q有關的項,其他都放到常數項裡,從而有

對上式關於η求導,得到

又有(參見PRML2.4節)

可以得到

上式是同一個東西關於不同分佈的期望,因此我們只要匹配這兩個分佈的充分統計量,就可以做到讓上式成立,例如,若q是高斯分佈,只要讓q和p的均值和方差匹配就行了。這通常叫做moment matching,關於moment matching的理論證明我具體也不太明白,後面再看一些材料後再補上說明。這裡記住就行。
後面我們用θ來表示模型的引數和潛變數,用D來表示已經觀測到的資料。
在很多概率圖模型中,潛變數的真實後驗分佈可以寫成多個因⼦乘積的形式

我們除了假設q是指數族分佈形式,還假設用來近似後驗分佈的這個q也能寫成多個因⼦的乘積

直接優化下式不可行,因為散度左邊那項是真實的後驗分佈,形式複雜。

所以我們選擇讓q的每個因⼦ 分別近似p中相應的因⼦
來整體近似q和p。
那麼如何讓q的每個因⼦分別近似p中相應的因⼦呢?在優化 的時候, 我們⽤剩下的q因⼦(10.205式中的
)

乘以真實後驗分佈中的對應項 來替代真實後驗分佈

,然後通過最小化這個“後驗分佈”和q分佈的 KL距離就好了。

因為此時KL散度兩邊剩下的q因⼦是相同的,唯一不同的是 和
,此時就能做到單獨優化
.然後我們可以通過依次優化每一個
,反覆迭代來優化。下面就是EP的具體演算法流程
- 初始化每個
- 選擇某一個
來優化,用式子10.205(
)來表示q除去
後的結果,我們想要在保持
不變的情況下單獨優化
。這就相當於使得10.198的KL散度最小。由於我們假設了q是指數族分佈形式,由10.187可知,最小化10.198相當於讓
和
這兩個分佈的均值和方差匹配。於是我們就可以得到
,計算得到
後,我們可以計算得到優化後的


注意本來 是下面的形式,K是正則化項


由於我們使用了moment matching,我們可以對零階矩也進行匹配,從而得到


就是10.206
3.重複第二步直到收斂。
4.最後我們可以計算模型的似然,這個似然可以用來對模型做評估(越大越好)

三、舉例(clutter problem)
所謂的clutter problem,就是說我們有一個觀測到的資料集D,裡面的每個資料都是從一個高斯分佈裡取樣出來的,除了高斯分佈,在取樣的時候還額外有高斯噪聲,所以這個資料集其實是混合高斯的。
我們假設取樣過程服從如下形式,等號右邊那項是噪聲:

然後我們就是想根據觀測到的資料infer這個θ。
並且我們知道θ有先驗分佈如下

10.209的w、a和10.210的b都是假設已知,目標就是根據D估計θ。
D和θ的聯合分佈可以寫成如下形式,這就是第二節中我們說的因子相乘的形式。其中p(θ)對應

從取樣過程可知,上式連乘符號裡面每一項都對應了一個有兩個component的高斯混合(本身的高斯和噪聲高斯),再算上N個連乘,全部寫成相加的形式就有 個高斯混合了,這樣的式子形式太過複雜,直接估計θ不行,我們可以看下面這個貝葉斯公式,我們想估計θ的後驗,分子容易搞定,但是分母難算,一來被積分項的解析形式可能很複雜,二來潛變數θ可能維度很高,導致積分或者求和困難。所以導致了θ的後驗很難算。
因此我們需要藉助approximate inference的方法。這裡我們採用EP演算法來做。
我們假設我們用來近似的q函式有如下指數分佈形式(注意它不一定是個高斯,只不過是寫成了高斯的形式。因為v可能是負數)

然後對應每個因子如下形式(因為N個指數分佈族形式的相乘還能得到一個指數分佈族)

其中 等於θ的先驗,也就是10.210。
首先我們初始化q,我們不妨就使得每個因子是單位高斯(n=1,2,...,N),對應的有

這樣的初始化其實就等於讓q等於θ的先驗。
接下來我們優化其中某一個因子 ,將這個因子從q中除去,我們得到剩下的因子乘積
的引數如下:

接下來使用10.206計算

然後匹配 和
的均值和方差,從而得到

並且根據10.207我們可以更新

由此我們完成了對 的更新,然後可以依次選擇其他的因子來更新,直到收斂。
四、圖(graph)上的EP演算法
在上述的EP演算法中,我們的每個因子都是和θ(整個潛變數和模型引數的集合)有關的,當我們假設每個因子只和θ的一些子集有關時,EP演算法其實就是概率圖模型(PGM)中的Loopy belief propagation演算法。介紹Loopy belief propagation可能需要對概率圖模型中的sum-product演算法有一定了解,因此這裡就不再詳細介紹了
三、和variational inference的區別
EP演算法和VI演算法主要有兩個不同,第一個不同在於優化的KL散度,EP演算法優化p和q的KL散度,而VI優化q和p的KL散度(KL散度不對稱)
第二個不同,EP演算法不保證收斂,但是當假設q是指數族分佈形式時,如果最後結果收斂,那麼最終的解一定是一個駐點(一階導數為0的點)。而VI演算法通過不斷迭代來最大化似然函式的下界,它的每次迭代都是能保證下界是增加的。