農林漁牧網

您現在的位置是:首頁 > 畜牧業

零基礎機率論入門:邊緣化

2021-12-05由 論智 發表于 畜牧業

邊緣機率條件機率聯合機率是什麼

【編者按】本文是資料科學家Jonny Brooks-Bartlett撰寫的零基礎機率論教程的第四篇,介紹了邊緣化方法。

零基礎機率論入門:邊緣化

介紹

本文將透過解決一個相當簡單的最大似然問題,介紹邊緣化(marginalisation)的概念。本文涉及的一些基本機率概念可以參考本系列的第一篇文章。

什麼是邊緣化

邊緣化是一種透過累加一個變數的可能值以判定另一個變數的邊緣分佈的方法。這聽起來有點抽象,讓我們看一個例子。

假設我們想知道天氣是如何影響英國人的幸福感的,也就是P(幸福感|天氣)。

假定我們具有衡量某人的幸福感所需的定義和裝置,同時記錄了某個英格蘭人和某個蘇格蘭人所處位置的天氣。可能蘇格蘭人通常而言要比英格蘭人幸福。所以我們其實在衡量的是P(幸福感, 國|天氣),即,我們同時考察幸福感和國。

邊緣化告訴我們,我們可以透過累加國家的所有可能值(英國由3國組成:英格蘭、蘇格蘭、威爾士),得到想要計算的數字,即P(幸福感|天氣) = P(幸福感, 國=英格蘭|天氣) + P(幸福感, 國=蘇格蘭|天氣) + P(幸福感, 國=威爾士|天氣)。

這就是了!邊緣化讓我們累加一些機率以得到想要計算的機率。一旦我們計算出了答案(可能是單一值或一個分佈),我們可以得到所需的性質(推斷)。

相關定義

如果這一概念讓你覺得很耳熟,但你以前沒有聽過邊緣化這個詞,那可能是因為你聽過它的另一個名字。有時這一方法稱為對干擾變數積分(integrating out the nuisance variable)。積分本質上是累加一個變數的另一種說法,你正累加的變數稱為“干擾變數”。所以在我們上面提到的例子中,“國”是干擾變數。

如果你正使用機率圖模型,那麼邊緣化是進行精確推斷的一種方法(也就是說,你可以寫下你關注的分佈的精確數值,例如可以基於分佈精確計算的均值)。在這種情形下,邊緣化有時和變數消除是同義詞。

例子:未知骰子

下面的例子取自世界上最好的數學家和計算晶體學家之一Airlie J。 McCoy所寫的Liking likelihood論文。如果你正在尋找一篇基於骰子介紹各種最大似然概念(例如,對數似然、中心極限定理等)的文章,那麼我強烈推薦這篇論文。

假設我們有4枚骰子:4面骰、6面骰、8面骰、10面骰(如下圖所示)。

零基礎機率論入門:邊緣化

從左至右依次為:4面骰、6面骰、10面骰、8面骰

遊戲

我把6面骰和8面骰放在紅盒內,4面骰和10面骰放在藍盒內。

我從紅盒與藍盒中分別隨機選取一枚骰子,然後把它們放在黃盒內。

我從黃盒中隨機選擇一枚骰子,擲骰子並告訴你結果。

進行遊戲之後,結果是3。我們想要回答的問題是:骰子更可能來自紅盒還是藍盒?

零基礎機率論入門:邊緣化

求解

為了求解這一問題,我們需要給定我們擲出了一個3這一條件後,骰子取自紅盒的似然,L(盒=紅|擲骰=3),及相應的L(盒=藍|擲骰=3)。這兩個機率中較高的那個是問題的答案。

那麼我們如何計算L(盒=紅|擲骰=3)和L(盒=藍|擲骰=3)呢?

首先,似然和機率的關係如下:

L(盒|擲骰) = P(擲骰|盒)

我的最大似然文章的結尾部分解釋了這一等式。

這意味著,L(盒=紅|擲骰=3)這一似然等價於給定骰子來自紅盒這一條件,投擲出3點的機率,即P(擲骰=3|盒=紅)。同理,L(盒=藍|擲骰=3) = P(擲骰=3|盒=藍)。

假定我們選擇了一個紅盒中的骰子。它可能是6面骰或8面骰(各自有50/50的機會)。假設我選擇了6面骰。這意味著我必須從黃色盒子中選中6面骰,然後擲出3。這一情形的機率為:

P(擲骰=3, 骰=6面|盒=紅) = 1/2 x 1/6

1/2是因為我有50%的機會從紅盒中隨機選中6面骰,因為盒中還有一枚8面骰。1/6是因為我有一枚6面骰,因此擲出3點的機會是1/6。

注意上面的答案沒有包含從黃盒中選中6面骰的機率。這是因為,在這一情形下,從黃盒中選取6面骰的機率是1(你可能以為它是1/2,因為黃盒內有6面骰和從藍盒中取出來的骰子)。這是因為我們正在計算的是給定骰子取自紅盒的前提下一枚6面骰擲出一個3的條件機率。因此,我們選中黃盒中的另一枚骰子的情形是不可能存在的,因為那一枚骰子原本來自藍盒。所以給定從紅盒中取出骰子這一前提,我們只能從黃盒中選擇6面骰,因而我們從黃盒中選中6面骰的機率是1。

類似地,我們可以計算結果為3,而我們實際上從紅盒中選擇了8面骰的機率:

P(擲骰=3, 骰=8面|盒=紅) = 1/2 x 1/8

現在我們已經基本上完成了計算骰子來自紅盒所需的計算工作。還記得嗎?紅盒只包含6面骰盒8面骰,因此我們只需找出骰子是6面或8面的機率。本系列的第一篇文章已經提過,這一“或”情形下,我們需要將機率相加。因此,骰子來自於紅盒的機率為:

P(擲骰=3|盒=紅) = (1/2 x 1/6) + (1/2 x 1/8) = 7/48

同理,骰子來自於藍盒的機率為:

P(擲骰=3|盒=藍) = P(擲骰=3, 骰=4面|盒=藍) + P(擲骰=3, 骰=10面|盒=藍)= (1/2 x 1/4) + (1/2 x 1/10) = 7/40

P(擲骰=3|盒=藍)高於P(擲骰=3|盒=紅),基於最大似然,我們可以得出結論骰子更可能來自藍盒。

這個例子中的邊緣化在哪裡?

非常善於觀察的人會注意到,在上面的例子中,我沒有用過“邊緣化”這個詞。這是因為我想讓你直觀地理解如何計算從盒子中取出骰子的機率。

如果你看一下上面計算藍盒機率的等式,你會注意到我們把所有可能性(選擇4面骰和10面骰)的機率加在一起。這正是邊緣化!我們累加了這個干擾變數(骰子)。注意,遊戲中我們從來沒有觀察到我們選擇的骰子,而且我們不需要觀察它!我們只需知道結果(擲骰=3)和骰子的所有可能值。這就是為什麼邊緣化如此強大。我們可以計算我們未曾觀察到的事物的機率。只要我們知道可能的干擾變數值,我們就可以使用它進行邊緣化操作,並計算另一個變數的分佈。

記號

下面我會寫下一些更嚇人的公式,不過我會盡量讓它們易於理解的。

回顧一下之前的例子。我們從一個聯合機率開始,P(擲骰, 骰|盒)。邊緣化之後,我們得到了一個條件機率,P(擲骰|盒)。這是邊緣化的主要作用之一。我們可以從聯合機率得到條件機率。

事實上我們也可以從聯合機率得到邊緣機率。如果你見過邊緣化的數學定義,那麼你多半看到的是一個邊緣機率。如果你還沒有見過邊緣化的數學定義,那麼,……你運氣不錯。你馬上就可以見到了。

零基礎機率論入門:邊緣化

上式中大大的∑是累加的數學記號,下面的“y”告訴我們該累加什麼。所以這個等式是說:“如果你想要得到X的邊緣機率(等式左邊),那麼你需要對Y的每個可能值累加X和Y的聯合機率。”

聯合機率有時很難計算,所以我們可以使用本系列的第一篇文章中介紹的乘法法則將等式右邊重寫為以下形式:

零基礎機率論入門:邊緣化

等式的最右側是條件分佈和邊緣分佈的乘積,有時候這更容易計算。

正如我之前提到的的那樣,∑讓我們將所有項累加起來。我沒有提到的是,這個符號只用於“離散”變數。在之前的例子中,我們累加的是離散的干擾變數(例如,UK只包括英格蘭、蘇格蘭、威爾士,骰子的結果是有限的,比如1到6點)。不過,離散值不一定是有窮的。比如,所有正整數1、2、3、……也是離散值。

然而,當我們處理在給定的界限內有無窮的可能值的變數(例如,0到10米之間的距離可能有無窮的值,比如5米、5。1米、5。01米、5。001米、5。0001米……等等)時,我們將這些稱為“連續變數”,同時我們不使用∑符號。相反,我們使用∫。這個符號仍然讓我們把所有項累加起來,不過我們知道干擾變數是連續的,相應地,邊緣化的定義為:

零基礎機率論入門:邊緣化

這和前面提到的離散變數的邊緣化等式意義相同。等式末尾的“dy”告訴我們積分的項(“積分”是我們處理連續變數時所用的“累加”方法的名稱)。

“dy”是必要的原因是如果我們不加以宣告的話,積分的項並不總是顯然的。考慮干擾變數是圓心角的情形。我們知道這個角位於0到360度之間,或者更技術性地說,我們更可能處理弧度而不是角度,這時我們說這個角位於0到2π之間。

零基礎機率論入門:邊緣化

(弧度,圖片來源:維基百科)

所以我們可能嘗試寫下:

零基礎機率論入門:邊緣化

我們知道我們需要計算一個從0直到2π的積分,但我們知道積分的項是X的值還是Y的值嗎?世界各地的數學家正迫不及待地要給我的臉上來一拳,以懲罰我上面的惡行。

為了修正這個問題,我們在結尾加上了“dy”,這樣就很清楚了,我們積分的項是0到2π之間的Y的值,這意味著我們同時知道結果是X的邊緣分佈(見下)。

零基礎機率論入門:邊緣化

致感興趣的讀者,由於相位問題的存在,積分0至2π的角度是X射線晶體學(我的PhD領域)中需要進行的操作。基本上而言,相位問題指我們無法在實驗中測量“相位”,而相位在數學上可以被看作一個角度。因此,為了計算觀測資料的理論分佈,我們需要邊緣化相位。

adam kelleher在他的causality包中使用了邊緣化以消除混淆變數(confounding variables)的影響。他同時像我們之前提到的一樣使用乘法法則以條件分佈和邊緣分佈乘積的形式書寫了邊緣化的定義。詳見他寫的部落格。

結語

機率的鏈式法則

事實上,在上面的計算中我們應用了一個習以為常的機率過程,也就是機率的鏈式法則(不要和求導的鏈式法則混淆了)。機率的鏈式法則為:

P(A, B|C) = P(A|B, C) x P(B|C)

它讓我們將一個聯合機率(等式左側)寫成條件機率和邊緣機率的乘積(等式右側)。

計算聯合機率時大量使用這一鏈式法則,正如我們之前提到的那樣,判定條件機率和邊緣機率可能要容易得多。

還記得我們在上面的計算中使用了下式嗎?

P(擲骰=3, 骰=6面|盒=紅) = 1/2 x 1/6

對比鏈式法則,我們令A = 擲骰,B = 骰,C = 盒。所以這意味著我們可以將上式左側寫為:

P(擲骰=3|骰=6面, 盒=紅) x P(骰=6面|盒=紅)

解釋一下:

P(擲骰=3|骰=6面, 盒=紅)是給定我們選中了一枚6面骰,且這枚骰子曾經在紅盒中這一前提,我們擲出3的機率。結果為1/6。

P(骰=6面|盒=紅)是給定我們從紅盒中取出一枚骰子,這枚骰子是6面骰的機率。結果為1/2。

因此我們得到1/2 x 1/6,這正是我們在上面的例子中從直覺上得出的結果。

這裡我們使用3個變數展示了鏈式法則。如果你看下維基百科上的鏈式法則的定義(看起來更可怕),你可以看到四個變數以及無窮變數的鏈式法則是什麼樣的。

維基百科上的鏈式法則定義看起來挺嚇人的,但基本的想法是一樣的。等式左側是一個聯合機率分佈,等式右邊是條件機率和邊緣機率的乘積。

用於貝葉斯推斷

如果你讀過我之前關於貝葉斯推斷的文章,你會知道貝葉斯理論的模型形式為:

零基礎機率論入門:邊緣化

正如我之前提過的那樣,我們經常不計算分母P(data),也就是歸一化常量,因為在許多情形下它難以計算,而且我們並不總是需要計算它。

不過在某些情形下,我們可以藉助邊緣化精確地計算P(data):

零基礎機率論入門:邊緣化

在某些情形下,我們可以演算這一式子(精確計算或在數值上逼近),因此我們可以得到一個歸一化的後驗分佈。

謝謝你讀到這裡。我知道本文包含了很多數學,但我希望它是有意義的。如果文中有什麼不清楚的地方,或者你希望我介紹什麼內容,或者有什麼地方可以改進的,別猶豫,留言告訴我。

謝謝!