參考:
StackExchange
Variational Inference: A Review for Statisticians
這個(gè)問題是變分推斷(variational inference)的一個(gè)基礎(chǔ)問題。很奇怪的是,我沒有在中文社區(qū)發(fā)現(xiàn)這個(gè)問題的詳細(xì)解釋。一句話總結(jié),如果求解過程出現(xiàn)了不可約掉的積分,該過程就是不可直接計(jì)算的(intractable),或者說沒有閉式解。而機(jī)器學(xué)習(xí)所有解決該問題的辦法,就是巧妙地去掉積分。
下面通過一個(gè)例子,來解釋這個(gè)問題。
問題描述
符號(hào)定義:表示觀察變量,
表示隱變量,它們的聯(lián)合概率密度為
。
目標(biāo):求解條件概率。在貝葉斯框架下,這一過程叫做推斷,而
叫做后驗(yàn)概率。
后驗(yàn)概率密度:
其中被稱為“證據(jù)”(evidence)
下面的例子用來說明,證據(jù)的積分形式通常沒有閉式解。
例子:混合高斯模型的后驗(yàn)概率估計(jì)
設(shè)有個(gè)混合分支,分支的均值集合為
,這些均值服從高斯分布
,其中參數(shù)
表示方差。采樣
次得到
。
每個(gè)觀察數(shù)據(jù)的產(chǎn)生過程如下:從類別
中選出一個(gè)分支,記為
,其數(shù)學(xué)形式為one-hot(一個(gè)長為
的向量,其中一位是1,其余位是0)。從(另一個(gè))高斯分布
采樣,得到
。連續(xù)采樣n次。
即:
聯(lián)合概率密度為:
隱變量。
證據(jù)為:
。
上式中,每一個(gè)都無法從連乘項(xiàng)里分離出來,所以計(jì)算該積分的復(fù)雜度為
,為K的指數(shù)級(jí)別的復(fù)雜度。所以一般沒有閉式解(intractable)。
(想象某個(gè)場景,在10個(gè)混合分支中,采樣100個(gè)點(diǎn),計(jì)算該積分的復(fù)雜度高達(dá)!)
ELBO(證據(jù)下界)
對(duì)目標(biāo)求解,一味蠻干是行不通的。通行的做法有兩種,要么通過蒙特卡洛法近似,要么通過變分推斷近似。這里介紹后一種。
我們利用容易處理的“代理人”函數(shù)近似
。
其中KL表示相對(duì)熵,由定義,
由此可見,
定義
。
最大化ELBO就是最小化,成功避開計(jì)算
。
拿掉積分!
上面的混合高斯的例子,應(yīng)用變分方法,我們得到
雖然多引入一個(gè)參數(shù),但是不用求積分,只要算乘法和加減就夠了。生活一下子美好了有木有!
求積分為啥這么難

至今的算法中,求微分(導(dǎo)數(shù))的一大堆,求積分的寥寥可數(shù)。計(jì)算機(jī)和人類一樣不擅長算積分啊!