機器學習(5)——貝葉斯學習(二)
在上一節的分析中,我們的討論基本上都是以一個輸入變數來討論,但是在實際的情況中,存在不止一個輸入變數,那麼我們如何從多個不同量和觀察來推導概率呢?這一章中我們將基於這個問題來進行相關的討論。
在開始之前,先介紹一個概念——貝葉斯網路(Bayesian Networks),它能夠很好的在複雜空間表示和操作概率量。
一:聯合分佈(Joint Distribution)
1.1條件獨立性
這裡我先用一段英文的描述來講解一些什麼是條件獨立性:
X is conditionally independent of Y given Z if the probability distribution governing X is independent of the value of Y given Z the value of Z; that is it. We call it conditional independent(條件獨立).
我們這裡在使用一句公式來描述這個特徵:
說的通俗一點就是
這裡我們在使用另外一種方式來證明一下:
因為條件獨立,我們可以得到如下的公式:
根據概率論的鏈式法則,我們得到如下的公式:
結合上邊的公式我們可以得到:
這樣就又一次的驗證了我們說的那句話。
但是在現實生活中,特別是在機器學習這方面,我們如果要運用到這個條件獨立的特性,即找到兩個條件獨立的屬性,是非常困難的,但是我們做了相應的轉變,將其轉變為在滿足Z的條件下,找到條件獨立的兩個屬性——X,Y,這種相對就容易多了。
1.2聯合分佈
這裡我們列出瞭如下的一個場景:
Lightning | Storm | Probability |
---|---|---|
T | T | 0.25 |
T | F | 0.40 |
F | T | 0.05 |
F | F | 0.30 |
上邊是一個關於閃電和打雷發生的概率表。
這裡我們只列出的兩個屬性Lightning、Storm。在我們討論的這個過程中,這兩個事件發生是不相關的(有些人說,打雷和暴風雨是相關的,但是這個要注意,你們說的相關是指物理上的相關性
但是這裡我們思考一下,如果我們繼續新增屬性的話,會發生社麼樣的事情?我們需要考慮的情況越來越多,非常不利於分析。如果我們仍然新增的是這種只有發生和不發生的條件的話,那我們的所需要考慮的情況就得滿足
這裡我們基於前邊的場景,新增一種屬性——thunder。由於情況比較多,這裡不用表格的形式來分析,我們用一張圖來描述我們的情況:
這裡我們先列出如下的一個公式:
這個公式是一個代表性的公式:公式左邊的含義是——在發生暴風雨的情況下,打雷但是沒有閃電的概率;公式右邊的含義是——沒有發生暴風雨的情況下,打雷但是沒有發生閃電的情況。這裡我們是不是可以得出——打雷、閃電的發生與暴風雨無關呢?如果你不相信的話,你可以計算下其它的情況,你會發現這個情況是屬實的。
接下來請看如下的圖表:
請看左邊,我們將事件分成不同的層級去考慮。圖中右邊的子圖,被我們稱為信念網路(Belief Network)。理解這個圖形的時候,一定要注意,這裡的箭頭並不代表因果關係,即:暴風雨導致了閃電、閃電導致了打雷。箭頭只是表示統計相關性,與它們背後實際發生的過程並沒有任何的關係(這個可能對於大部人來說可能會下意識的會產生這種想法,所以這裡特別說明一下),這個我們在前邊已經提到過。
特別說明:在信念網路(Belief Network)中箭頭只是表示相關性,而這個相關性是統計相關性。也可以表示條件獨立性。
1.3 從聯合分佈中取樣
下圖是一個信念網路的圖形,
如果我們按照如圖所示的信念網路進行取樣的話,我們應該滿足什麼情況呢?正確的取樣順序就是右側中從上到下所示。那麼針對這種圖形我們取樣的標準是什麼呢?——拓撲關係,這種是處理圖形的標準做法之一,他的運算非常的快,但是它需要依賴某種特性。1:它必須是一個有向無環圖。
這裡我們在討論一下聯合分佈的個概率:
我們來分析一下這個過程中我們需要考慮的情況:1:我們可以從聯合分佈的節點出發,指定每個節點的概率,即所謂的條件概率表。2:我們也可以從每個節點的條件概率表的值出發,計算我們想要的任何組合,任何變數聯合組合的概率。就如上邊公式的左右兩邊,分別對應兩種不同的情況——變數的某些分配聯合概率等於所有單個值的乘積。
標註一下,這裡我們需要進一步的討論一下關於種類的問題,筆者暫時正在研究,線性跳過。
為什麼從聯合分佈中取樣是一個好主意?
- 因為他是分佈的兩個用途之一:通過給定一個值,我們可以告知這個值發生的概率,就像概率函式一樣;如果你有一個不錯的分佈,我們可以根據這個分佈生成值。
- 如果分佈能夠代表某個過程的話,我們能夠通過機器來模擬這個過程。
- 近似推理:如果我們知道一個分佈,我們可以根據這個分佈推斷出每個事件的概率,就如前邊講到的求
P(Storm) 的問題;我們同時可以做出一些其他類似的推理。以前邊的打雷為例:我們想知道同時發生打雷和閃電的概率?同時發生暴風雨和打雷的概率?等等。這個是針對機器來說的。 - 圖形化。這樣我們就可以以一個更加直觀的方式來感受這個分佈。這一部分實際上是從人的角度得出的結論,因為從本質上講的話,它實際還是第三點中說的近似推理。
1.4 推理規則(Inferencing Rule)
邊緣化(Marginalization)規則,我們可以通過對一些其它變數求和,然後求出它們的聯合概率:
為了幫助大家理解這個規則,我們這裡展示一張圖:
邊緣化規則講的是,如果我們要求
鏈式規則(Chain Rule):
關於鏈式規則我們要說明一點:當兩個事件條件獨立的時候,我們可以將
上圖上提出了一個問題,就是什麼時候
貝葉斯規則(Bayes Rule):
這個已經在前邊講解到了,不再做進一步的說明。
二:樸素貝葉斯
2.1手工推理
2.2樸素貝葉斯(Naive Bayes Rule)
我們在上一節中,通過相關的公式完成了對應概率的推導,但是在計算機中我們怎麼實現著一個過程呢?