變分貝葉斯初探

原題:A Beginner's Guide to Variational Methods: Mean-Field Approximation
給初學(xué)者的變分法指導(dǎo):平均場(chǎng)近似

作者:Eric Jang
譯者:尹肖貽
變分貝葉斯(Variational Bayeisan,后文簡(jiǎn)稱VB)方法是統(tǒng)計(jì)機(jī)器學(xué)習(xí)領(lǐng)域中,一類很常見技術(shù)。通過應(yīng)用VB方法,我們能夠重新形式化統(tǒng)計(jì)推斷問題(即,將給定一隨機(jī)變量的值,推斷另一些隨機(jī)變量的值),而將其作為優(yōu)化問題(即,找到參數(shù)值,使目標(biāo)函數(shù)最小化)。

這種推斷-優(yōu)化的二元性,賦予我們強(qiáng)大的能力。我們既可以使用最新、最好的優(yōu)化算法來解決統(tǒng)計(jì)機(jī)器學(xué)習(xí)問題,也可以反過來,使用統(tǒng)計(jì)技術(shù)來最小化函數(shù)。

這篇文章是關(guān)于變分方法的入門教程。 我將推導(dǎo)出最簡(jiǎn)單的VB方法的優(yōu)化目標(biāo),稱為平均場(chǎng)近似。 這個(gè)目標(biāo),也稱為變分下界,與變分自動(dòng)編碼器(VAE)中使用的技術(shù)完全相同(我將在后續(xù)文章中相信介紹它,堪稱入木三分)。

目錄

1.問題的前提和符號(hào)約定
2.問題的表述
3.平均場(chǎng)近似的變分下界
4.前傳KL與反傳KL
5.與深度學(xué)習(xí)的聯(lián)系

1.前提和符號(hào)約定

本文假設(shè)讀者熟悉隨機(jī)變量、概率分布和數(shù)學(xué)期望等概念。如果你忘了這些概念,可以在這里進(jìn)行復(fù)習(xí)。機(jī)器學(xué)習(xí)和統(tǒng)計(jì)領(lǐng)域的符號(hào)約定沒有被嚴(yán)格地標(biāo)準(zhǔn)化,因此在這篇文章中,我們約定如下符號(hào),確定的符號(hào)將對(duì)理解文意很有幫助:

  • 大寫字母X表示隨機(jī)變量;
  • 大寫字母P(X)表示該變量的概率分布;
  • 小寫字母x \sim P(X)表示通過一些生成過程,x為采樣(\sim)概率分布P(X)中的值;
  • 小寫字母p(X)X分布的(概率)密度函數(shù),它是X的度量空間上的標(biāo)量函數(shù);
  • p(X = x)(簡(jiǎn)寫p(x))表示在特定值x處的密度函數(shù)值。

許多學(xué)術(shù)論文將術(shù)語“變量”、“分布”、“密度”,甚至“模型”互換使用。這種做法本身不一定導(dǎo)致錯(cuò)誤,因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=X" alt="X" mathimg="1">、P(X)p(X)都可以通過一對(duì)一的對(duì)應(yīng)關(guān)系相互指代。但是,將這些術(shù)語混合在一起,容易讓人感到困惑。因?yàn)樗鼈兊闹复懂牳鞑幌嗤ū热鐚?duì)函數(shù)進(jìn)行抽樣沒有意義,對(duì)分布積分同樣沒有意義)。

我們將系統(tǒng)建模為隨機(jī)變量的集合,其中一些變量(X)是“可觀察的”,而其他變量(Z)是“隱藏的”。 【譯者按:后文稱二者為“觀察變量”和“隱變量”】我們可以通過下圖繪制這種關(guān)系:

ZX,通過條件分布P(X|Z)這條邊,將兩個(gè)變量聯(lián)系在一起。

說一個(gè)更形象的例子:X可能代表“圖像的原始像素值”,而Z是二值變量。如果X是貓的圖像,Z = 1

P(Z=1)=1 (這一定是貓)

P(Z=1)=0 (這一定不是貓)

P(Z=1)=0.1 (有點(diǎn)像貓)

貝葉斯定理給出了任意一對(duì)隨機(jī)變量之間的一般關(guān)系:
p(Z|X) = \frac{p(X|Z)p(Z)}{P(X)}
其中的各項(xiàng)與如下常見名稱相關(guān)聯(lián):

p(Z|X)是后驗(yàn)概率:“給定圖像,這是貓的概率是多少?” 如果我們可以從z\sim P(Z|X)進(jìn)行采樣,我們可以用它作一個(gè)貓分類器,告訴我們給定的圖像是否是貓。

p(X|Z)是似然概率:“給定Z的值,計(jì)算出該圖像X在該類別下的‘可能’程度({是貓/不是貓})” 如果我們可以從x\sim P(X|Z)進(jìn)行采樣,那么我們就可以生成貓的圖像和非貓的圖像,就像生成隨機(jī)數(shù)一樣容易。如果你想了解更多相關(guān)信息,請(qǐng)參閱我的關(guān)于生成模型的其他文章: [1], [2]。

p(Z)是先驗(yàn)概率。它指代我們所知道的關(guān)于Z的任何先前信息——例如,如果我們認(rèn)為所有圖像中,有1/3是貓,那么p(Z=1)=\frac{1}{3}并且p(Z=0)=\frac{2}{3}。

隱變量作為先驗(yàn)概率

這部分是為了感興趣的讀者準(zhǔn)備的。請(qǐng)直接跳到下一部分,繼續(xù)學(xué)習(xí)本教程。

前面貓的示例提供了觀察變量、隱變量和先驗(yàn)的理解角度,是傳統(tǒng)的一個(gè)示例。 但是請(qǐng)注意,我們定義隱變量/觀察變量之間的區(qū)別有些隨意,你可以自由地將圖形模型按需求進(jìn)行分解。

我們可以通過交換等式的項(xiàng)來重寫貝葉斯定理:
\frac{p(Z|X)p(X)}{p(Z)} = p(X|Z)
現(xiàn)在的“后驗(yàn)概率”是P(X|Z)。

從貝葉斯統(tǒng)計(jì)框架,隱變量可以解釋為附加到觀察變量的先驗(yàn)信念。 例如,如果我們認(rèn)為X是多元高斯,則隱變量Z可以表示高斯分布的均值和方差。 另外,參數(shù)P(Z)上的分布是P(X)的先驗(yàn)分布。

你也可以自由選擇XZ代表的值。 例如,Z可以代之以“均值、方差的立方根、以及X+Y,其中Y\sim N(0,1)”。 雖然有點(diǎn)突兀、奇怪,但只要相應(yīng)地修改P(X|Z),結(jié)構(gòu)仍然有效。

你甚至可以往系統(tǒng)中“添加”變量。先驗(yàn)本身可能通過P(Z|\theta)依賴于其他隨機(jī)變量,P(Z|\theta)具有它們自己的P(\theta)的先驗(yàn)分布,并且那些先驗(yàn)仍然是有先驗(yàn)的,依此類推。任何超參數(shù)都可以被認(rèn)為是先驗(yàn)的。 在貝葉斯統(tǒng)計(jì)中,先驗(yàn)是無窮遞歸的?!咀g者按:1.英文中俗語“turtles all the way down”表示問題無限循環(huán)、遞歸,作者用了"priors all the way down"來詼諧地表達(dá)先驗(yàn)系統(tǒng)的遞歸性。2.先驗(yàn)的層次越深,對(duì)結(jié)果的影響越

2.問題的表述(形式化)

我們感興趣的關(guān)鍵問題是隱變量Z的后驗(yàn)推斷或密度函數(shù)。后驗(yàn)推斷的一些典型例子:

  • 給定監(jiān)控錄像X,嫌疑人是否出現(xiàn)?
  • 給定推特X,作者的心情是否憂郁?
  • 給定歷史股票價(jià)格X_{1:t-1},X_t會(huì)是什么?

我們通常假設(shè),我們已知如何計(jì)算似然分布P(X|Z)和先驗(yàn)分布P(Z)【譯者按:原文為“function”函數(shù),應(yīng)為訛誤,后文類似情況以符號(hào)為準(zhǔn)】。

然而,對(duì)于像上面的復(fù)雜任務(wù),我們常常不知道如何從P(Z|X)采樣或計(jì)算p(Z|X)。或者,我們可能知道p(Z|X)的形式,但相應(yīng)的計(jì)算十分復(fù)雜,以至于我們無法在合理的時(shí)間內(nèi)對(duì)其評(píng)估【譯者按:“評(píng)估”的意思是給定似然函數(shù),求出該函數(shù)在某一點(diǎn)上的值】。 我們可以嘗試使用像MCMC這樣的基于采樣的方法求解,但這類方法很難收斂。

3.平均場(chǎng)近似的變分下界

變分推斷背后的想法是這樣的:對(duì)簡(jiǎn)單的參數(shù)分布Q(Z|X)(就像高斯分布)進(jìn)行推斷。對(duì)這個(gè)函數(shù),我們已經(jīng)知道如何做后驗(yàn)推斷,于是任務(wù)變成了調(diào)整參數(shù)\phi使得Q_\phi盡可能接近P?!咀g者按:“推斷”在這里指的是從觀察變量X的概率分布導(dǎo)出隱變量Z的概率分布】

這在視覺上如下圖所示:藍(lán)色曲線是真實(shí)的后驗(yàn)分布,綠色分布是通過優(yōu)化得到的擬合藍(lán)色密度的變分近似(高斯分布)。


兩個(gè)分布“接近”意味著什么? 平均場(chǎng)變分貝葉斯(最常見的類型)使用反向KL散度作為兩個(gè)分布之間的距離度量。

KL(Q_\phi(Z|X)||P(Z|X)) = \sum_{z \in Z}{q_\phi(z|x)\log\frac{q_\phi(z|x)}{p(z|x)}}

反向KL散度測(cè)量出將P(Z)“扭曲(distort)”成Q_\phi(Z)所需的信息量(以nat為單位或以2為底的對(duì)數(shù)bits為單位)。我們希望最小化這個(gè)量?!咀g者按:1.“扭曲”的意思是,把P(Z)Q_\phi(Z)貼合在一起,即通過某種映射引發(fā)函數(shù)圖像的形變,使二者圖像一致;2.許多研究產(chǎn)生式模型的論文會(huì)比較不同方法下的散度值?!?/p>

根據(jù)條件分布的定義,p(z|x) = \frac{p(x,z)}{p(x)}。 讓我們將這個(gè)表達(dá)式代入原來的KL表達(dá)式,然后使用分配律:
\begin{align} KL(Q||P) & = \sum_{z \in Z}{q_\phi(z|x)\log\frac{q_\phi(z|x)p(x)}{p(z,x)}} && \text{(1)} \\ & = \sum_{z \in Z}{q_\phi(z|x)\big(\log{\frac{q_\phi(z|x)}{p(z,x)}} + \log{p(x)}\big)} \\ & = \Big(\sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}}\Big) + \Big(\sum_{z}{\log{p(x)}q_\phi(z|x)}\Big) \\ & = \Big(\sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}}\Big) + \Big(\log{p(x)}\sum_{z}{q_\phi(z|x)}\Big) && \text{note: $\sum_{z}{q(z)} = 1 $} \\ & = \log{p(x)} + \Big(\sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}}\Big) \\ \end{align}
為了使KL(Q||P)相對(duì)于變分參數(shù)\phi最小化,我們只需要最小化\sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}},因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Clog%7Bp(x)%7D" alt="\log{p(x)}" mathimg="1">對(duì)于\phi來說是常數(shù)。 讓我們重新寫這個(gè)數(shù)量作為對(duì)分布Q_\phi(Z|X)的期望。
\begin{align} \sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}} & = \mathbb{E}_{z \sim Q_\phi(Z|X)}\big[\log{\frac{q_\phi(z|x)}{p(z,x)}}\big]\\ & = \mathbb{E}_Q\big[ \log{q_\phi(z|x)} - \log{p(x,z)} \big] \\ & = \mathbb{E}_Q\big[ \log{q_\phi(z|x)} - (\log{p(x|z)} + \log(p(z))) \big] && \text{(via $\log{p(x,z)=p(x|z)p(z)}$) }\\ & = \mathbb{E}_Q\big[ \log{q_\phi(z|x)} - \log{p(x|z)} - \log(p(z))) \big] \\ \end{align} \\
最小化上面的式子等價(jià)于最大化負(fù)的式子:
\begin{align} \text{maximize } \mathcal{L} & = -\sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}} \\ & = \mathbb{E}_Q\big[ -\log{q_\phi(z|x)} + \log{p(x|z)} + \log(p(z))) \big] \\ & = \mathbb{E}_Q\big[ \log{p(x|z)} + \log{\frac{p(z)}{ q_\phi(z|x)}} \big] && \text{(2)} \\ \end{align}
在文獻(xiàn)中,\mathcal{L}被稱為變分下界。如果我們能夠估計(jì)p(x|z)、p(z)q(z|x),我們就可以計(jì)算它。我們可以繼續(xù)調(diào)整式子里各項(xiàng)的順序,使之更符合直覺:
\begin{align*} \mathcal{L} & = \mathbb{E}_Q\big[ \log{p(x|z)} + \log{\frac{p(z)}{ q_\phi(z|x)}} \big] \\ & = \mathbb{E}_Q\big[ \log{p(x|z)} \big] + \sum_{Q}{q(z|x)\log{\frac{p(z)}{ q_\phi(z|x)}}} && \text{Definition of expectation} \\ & = \mathbb{E}_Q\big[ \log{p(x|z)} \big] - KL(Q(Z|X)||P(Z)) && \text{Definition of KL divergence} && \text{(3)} \end{align*}
如果說采樣z\sim Q(Z|X)是將觀察變量x“編碼”為隱變量z的過程,則采樣x\sim Q(X|Z)是從z重建觀察變量x的“解碼”過程。

由此得出\mathcal{L}是預(yù)期的“解碼”似然(即變分分布Q_\phi能在多大程度上將樣本Z解碼回樣本X),再減去變分近似的分布與先驗(yàn)Z之間的KL散度【譯者按:原文是“加上”,應(yīng)該是減去】。如果我們假設(shè)Q(Z|X)是條件高斯的,那么先驗(yàn)Z通常被指定為平均值0、標(biāo)準(zhǔn)偏差1的對(duì)角高斯分布。

為什么\mathcal{L}稱為變分下界? 將\mathcal{L}代入Eq. (1),我們有:
KL(Q||P) = \log{p(x)} - \mathcal{L}
\log{p(x)} = \mathcal{L} + KL(Q||P) \text{(4)}
Eq. (4)的含義,用大白話說就是,真實(shí)分布下的數(shù)據(jù)點(diǎn)x的對(duì)數(shù)似然\log{p(x)},等于\mathcal{L},加上KL(Q||P)用來捕獲在該特定值xQ(Z|X=x)P(Z|X=x)之間距離的差。

由于KL(Q||P)\geq 0\log{p(x)}必大于(或等于)\mathcal{L}。因此\mathcal{L}\log{p(x)}的下界。 \log{p(x)}也被稱為證據(jù)下界(ELBO),通過調(diào)整公式:
\mathcal{L} = \log p(x) - KL(Q(Z|X)||P(Z|X)) = \mathbb{E}_Q\big[ \log{p(x|z)} \big] - KL(Q(Z|X)||P(Z))

注意,\mathcal{L}本身包含近似后驗(yàn)和先驗(yàn)之間的KL散度,因此\log p(x)中總共有兩個(gè)KL項(xiàng)。

4.前向KL與反向KL

KL散度函數(shù)不是對(duì)稱距離函數(shù),即KL(P||Q)\neq KL(Q||P)(當(dāng)Q≡P時(shí)除外)第一個(gè)被稱為“前向KL”,而后者是“反向KL””。 我們?yōu)槭裁匆褂梅聪騅L呢?因?yàn)橥茖?dǎo)的目標(biāo)要求我們近似p(Z|X),所以【在p(Z|X)q(Z|X)不能同時(shí)得到最優(yōu)形式的情況下】我們要優(yōu)先確保p(Z|X)的形式準(zhǔn)確。

我很喜歡Kevin Murphy在PML教科書中的解釋,我在這里嘗試重新說明一下:

讓我們首先考慮正向KL。正如上述推導(dǎo),我們可以將KL寫為,權(quán)重函數(shù)p(z)加權(quán)下,“懲罰”函數(shù)log{\frac{p(z)}{q(z)}}的期望。
\begin{align*} KL(P||Q) & = \sum_z p(z) \log \frac{p(z)}{q(z)} \\ & = \mathbb{E}_{p(z)}{\big[\log \frac{p(z)}{q(z)}\big]}\\ \end{align*}
只要P(Z)>0,懲罰函數(shù)在任何地方都會(huì)給總KL帶來損失。對(duì)于P(Z)>0,\lim_{q(Z) \to 0} \log \frac{p(z)}{q(z)} \to \infty。 這意味著前向KL將在Q(Z)未能“掩蓋”P(Z)時(shí),將會(huì)很大。

因此,當(dāng)我們確保前向KL最小化時(shí)P(Z)>0時(shí),Q(Z)>0。 優(yōu)化的變分分布Q(Z)被稱為“避免零(zero-avoiding)”(密度P(Z)為零時(shí)Q(Z)避免為零)。


最小化反向KL則具有相反的性質(zhì):

\begin{align*} KL(Q||P) & = \sum_z q(z) \log \frac{q(z)}{p(z)} \\ & = \mathbb{E}_{q(z)}{\big[\log \frac{q(z)}{p(z)}\big]} \end{align*}

如果P(Z)=0,我們必須確保分母 P(Z)=0的地方,加權(quán)功能的Q(Z)=0,否則KL會(huì)爆炸。這被稱為“必設(shè)零(zero-forcing)”:


總而言之,最小化前向KL會(huì)“拉伸”變分分布Q(Z)覆蓋整個(gè)P(Z),像一個(gè)篷布。與此相對(duì),最小化反向KL“擠壓”Q(Z),使之落在P(Z)之“下”。

在機(jī)器學(xué)習(xí)問題中,使用平均場(chǎng)近似時(shí),留意反向KL的后果很重要。 如果我們將單峰分布擬合到多模態(tài)分布,我們最終會(huì)得到更多的假陰性的樣例(也就是說,P(Z)實(shí)際上存在概率,但我們依據(jù)Q(Z)認(rèn)為沒有可能性)。

5.與深度學(xué)習(xí)的聯(lián)系

變分法對(duì)于深度學(xué)習(xí)非常重要。 我將在后面再寫文章詳細(xì)說明。這是“太長(zhǎng)不看版”:

  • 深度學(xué)習(xí)非常擅長(zhǎng)使用大量數(shù)據(jù),在非常大的參數(shù)空間上進(jìn)行優(yōu)化(特別是使用了梯度下降算法)。
  • 變分貝葉斯為我們提供了一個(gè)框架,可以用來重寫統(tǒng)計(jì)推斷問題,變成優(yōu)化問題。

結(jié)合深度學(xué)習(xí)和變分貝葉斯方法,我們可以對(duì)極其復(fù)雜的后驗(yàn)分布進(jìn)行推斷。 事實(shí)證明,像變分自動(dòng)編碼器這樣的現(xiàn)代技術(shù),可以優(yōu)化得到上文中形式完全相同的平均場(chǎng)變分下界!

感謝閱讀,敬請(qǐng)期待!

補(bǔ)充說明:為啥叫“平均場(chǎng)近似”

鑒于標(biāo)題,我們值得給出“平均場(chǎng)近似”這個(gè)名字背后的一些動(dòng)機(jī)。

從統(tǒng)計(jì)物理學(xué)的觀點(diǎn)來看,“平均場(chǎng)”是指忽略二階效應(yīng),將困難的優(yōu)化問題放松到更簡(jiǎn)單的問題。例如,在圖模型的情境中,我們可以把估計(jì)馬爾可夫隨機(jī)場(chǎng)的配分函數(shù)(partition function)問題,轉(zhuǎn)為最大化吉布斯自由能(對(duì)數(shù)配分函數(shù)減去相對(duì)熵)的問題。這顯著地簡(jiǎn)化了全概率測(cè)量空間的全局優(yōu)化的形式(參見M. Mezard和A. Montanari,Sect 4.4.2)。

整體分解:
p(x_1, ..., x_N) = p(x_1)p(x_2|x_1)...p(x_N|x_1,...,x_{N-1})
平均場(chǎng)近似的分解:
p(x_1, ..., x_N) = p(x_1)p(x_2)...p(x_N)

從算法的觀點(diǎn)來看,“平均場(chǎng)”是指用于計(jì)算馬爾可夫隨機(jī)場(chǎng)邊緣概率的樸素平均場(chǎng)算法(naive mean field algorithm)。回想一下,樸素平均場(chǎng)算法的固定點(diǎn)【即最終解】是吉布斯變分問題的平均場(chǎng)近似的最優(yōu)點(diǎn)。這種方法是“均值”,因?yàn)樗羌妓共蓸悠鞯钠骄?期望/ LLN版本,因此忽略了二階(隨機(jī))效應(yīng)(參見,M.Wainwright和M. Jordan,(2.14)和(2.15))。

【譯者按:
1.上述說明主要針對(duì)配分函數(shù)而言的。
2.VAE的隱空間為標(biāo)準(zhǔn)高斯分布,協(xié)方差矩陣為對(duì)角單位陣,而不考慮非對(duì)角元素的影響。這體現(xiàn)了“平均場(chǎng)”的思想。
3.VAE的實(shí)驗(yàn)效果顯示,產(chǎn)生圖像較為模糊或“平均”,不夠銳利,也許正是平均場(chǎng)近似的結(jié)果】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容