概率圖模型導論


引言

  機器學習中的許多常見問題是彼此獨立數據點的分類。例如,給定圖像,預測它是包含貓還是狗,或者給出手寫字符的圖像,預測它是0到9中的哪個數字。然而,事實證明,許多問題不適合上述框架。例如,給定一個句子“我喜歡機器學習”,用它的詞性(名詞,代詞,動詞,形容詞等)標記每個單詞,這個任務無法通過獨立處理每個單詞來解決 ,由於“學習”可以是名詞或動詞。對於更復雜的文本處理,例如從一種語言翻譯成另一種語言,文本翻譯等,這項任務更重要。

  如何使用標准分類模型來處理這些問題是一個挑戰。一個用於此類問題的強大框架是概率圖形模型(probabilistic graphical models ,PGM)。在本文中,我將介紹該框架的一些基本內容。

  在討論如何將概率圖模型應用於機器學習問題之前,我們需要了解PGM框架。 概率圖模型(或簡稱圖模型)由圖形結構組成, 圖的每個節點與隨機變量相關聯,並且圖中的邊用於解釋隨機變量之間的關系。

  根據圖形是有向還是無向,我們可以將圖形模式分為兩類 :

  • 貝葉斯網絡
  • 馬爾可夫網絡

貝葉斯網絡:定向圖形模型

  貝葉斯網絡的典型例子是所謂的“學生網絡”,它看起來像這樣:

此圖表描述了在大學課程中注冊的學生的設置。 圖中有5個隨機變量:

Difficulty (課程的難度): 取值0(低難度)和1(高難度)
Intelligence(智力水平): 取值0(低)和1(高)
Grade(學生的上課成績) : 取值1(好成績),2(平均成績)和3(成績差)
SAT (SAT考試成績): 取0(低分)和1(高分)
Letter(完成課程后學生從教授那里得到推薦信的質量) : 取0(不是好信)和1(好信)

  圖中的邊包含變量的依賴關系。學生的“成績”取決於課程的“難度”和學生的“智力”。反過來,“成績”決定了學生是否從教授那里得到了一封好的推薦信。此外,除了影響“成績”之外,學生的“智力”還影響他們的“SAT”分數。值得注意的是,箭頭的方向告訴我們因果關系 :“智力”影響“SAT”分數,但“SAT”分數不影響“智力”。

  最后,我們可以看到每個節點關聯的表,這些被稱為條件概率分布(conditional probability distributions ,CPD)。

條件概率分布(CPD)

  “Difficulty”和“Intelligence”的CPD相當簡單,因為這些變量不依賴於任何其他變量。 這些表給出了變量的概率,取值0或1。 可以注意到,每個表中的值必須總和為1。

  對於“SAT”的CPD,每行對應於其父節點(“ Intelligence”)可能的取值,每列對應於“SAT”可以采用的值。 每個單元格具有條件概率$p(SAT = s | Intelligence = i)$,也就是說,假設“Intelligence”的值是$i$,“SAT”的值是$s$的概率是多少。例如,我們可以看到$p(SAT =s^1| Intelligence =i^1)$是0.8,也就是說,如果學生的智力很高,那么SAT得分高的概率也是0.8。 另一方面,$p(SAT =s^0| Intelligence =i^1)$,如果學生的智力高,則SAT得分低的概率為0.2。

  每行中值的總和為1.這是有道理的,因為鑒於Intelligence =i¹,SAT分數可以是s⁰或s¹,因此兩個概率必須加起來為1.同樣,“Letter”的CPD 條件概率$p(Letter = l | Grade = g)$。 因為“等級”可以取三個值,所以我們在此表中有三行。
  根據上述知識,“Grade”的CPD易於理解。 因為它有兩個父節點,條件概率將是p的形式$p(Grade=g | Difficulty=d, SAT=s)$,也就是說,在“Difficulty”的值為 “g'和”SAT“的值為“s”的條件下,“Grade”為g的概率是多少。 

  貝葉斯網絡的基本要求是圖必須是有向無環圖(directed acyclic graph,DAG)。

馬爾可夫網絡:無向圖形模型

  為了簡潔起見,我們直接看抽象圖,邊表示變量之間的相互作用。 我們看到,雖然A和B直接相互影響,但A和C沒有。

潛在的函數
  就像我們有貝葉斯網絡的CPD一樣,我們也用表格來整合馬爾可夫網絡中節點之間的關系。 但是,這些表格和CPD之間存在兩個重要差異。

  首先,這些值不需要總和為1,也就是說,表並沒有定義概率分布,它只告訴我們具有某些值的可能。 其次,沒有條件。 它與相關的變量的聯合分布成比例,而不是CPD中的條件分布。

  結果表稱為“因子”或“潛在函數”,並使用希臘符號φ表示。 例如,我們可以使用以下函數來捕獲三個變量A,B和C之間的關系,如果A和B是不同的,則C可能為1 ,如果A和B相同,則C可能為0:

 

  通常,我們為圖中的每個最大團定義一個潛在的函數。

  圖形結構和表格表達了隨機變量上的聯合概率分布。

  我們可能遇到的一個問題是,為什么我們需要有向圖和無向圖?原因在於,對於某些問題,將它們表示為有向圖更為自然,例如上面的學生網絡,其中很容易描述變量之間的因果關系 :學生的智力影響SAT分數,但是SAT分數不會影響學生的智力。

  對於其他類型的問題,比如圖像,我們希望將每個像素表示為一個節點,並且我們知道相鄰像素相互影響,但像素之間沒有因果關系;相反,它們可能是對稱的。因此,在這種情況下,我們使用無向圖形模型。

問題
  到目前為止,我們一直在討論圖形和隨機變量和表格,你可能會想到這一切的重點是什么?我們究竟想做什么?機器學習在哪里 - 數據,培訓,預測等?本節將解決這些問題。

  讓我們回到學生網絡。假設我們有圖形結構,我們可以根據我們對世界的了解創建圖形結構(在機器學習中稱為“領域知識”)。但我們沒有CPD表,只有它們的大小。我們確實有一些數據 :對於大學里的十個不同的班級,我們可以衡量他們的難度。

  此外,我們有關於每個課程中每個學生的數據 - 他們的智力,他們的SAT成績是什么,他們得到什么成績,以及他們是否收到了教授的好信。根據這些數據,我們可以估算CPD的參數。例如,數據可能表明智力較高的學生通常會獲得良好的SAT成績,我們也許可以從中學習$p(SAT = s^1 | Intelligence = i^1)$很高。這是學習階段。我們很快就會看到我們如何在貝葉斯網絡和馬爾可夫網絡中進行這種參數估計。

  現在,對於新數據點,您將觀察到一些變量,這些變量並不是完整的。例如,在下圖中,你將了解課程的難度和學生的SAT分數,並且您想要估計學生獲得好成績的概率。

  

  雖然我們沒有直接向我們提供該信息的CPD,但我們可以看到學生的高SAT分數表明該學生可能是聰明的,因此,如果難度較高,則成績良好的概率很高。該過程很低,如上圖中的紅色箭頭所示。我們可能還想同時估計多個變量的概率,比如學生獲得好成績的概率和好的信件是什么?

  具有已知值的變量稱為“觀察變量”,而未觀察到值的變量稱為“隱藏變量”或“潛在變量”。傳統上,觀察變量用灰色節點表示,而潛在變量用白色節點表示,如上面的圖像。我們可能有興趣找到一些或所有潛在變量的值。

  回答這些問題類似於機器學習的其他領域的預測 - 在圖形模型中,這個過程被稱為“推理”。

  雖然我們使用貝葉斯網絡來描述上面的術語,但它也適用於馬爾可夫網絡。在我們進入學習和推理算法之前,讓我們將我們剛才看到的想法形式化 - 給定一些節點的價值,我們可以獲得其他節點的信息?

條件獨立

  到目前為止,我們一直在討論的圖形結構實際上捕獲了有關變量的重要信息。具體來說,它們定義了變量之間的一組條件獨立性,即形式的語句 - “如果觀察到A,則B獨立於C”。讓我們看一些例子。

  在學生網絡中,假設知道學生的SAT成績很高。你對她的成績有什么看法?正如我們之前看到的那樣,SAT分數高表明學生是聰明的,因此,你會期望學生取得一個好成績。如果學生的SAT成績低,該怎么辦?在這種情況下,你不會期望學生取得一個好成績。

  現在,除了她的SAT成績外,你還知道學生很聰明。如果SAT成績很高,那么你會期望得分很高。如果SAT成績很低怎么辦?你仍然期望一個好成績,因為你知道學生是聰明的,你會認為她只是在SAT上表現不佳。因此,如果我們看到學生的智力,知道SAT分數並不能告訴我們什么。把這作為一個有條件的獨立聲明,我們會說 - “如果觀察到智力,那么SAT和成績是獨立的。”

  我們從圖中這些節點連接的方式獲得了這種條件獨立信息。如果它們的連接方式不同,我們會得到不同的條件獨立信息。

  讓我們看另一個例子。

  如果你知道這個學生很聰明。你對這門課程的難度有什么看法?簡單,對吧?現在,如果我告訴你學生在課程上成績不好你會怎么想?這表明課程很難,因為聰明的學生成績都變現的不好。因此,我們可以給出我們的條件獨立聲明如下 - “如果未觀察到等級,那么智力和難度是獨立的。”

  因為這說明了受條件約束的兩個節點之間的獨立性,所以它們被稱為條件獨立性。請注意,這兩個示例具有相反的語義 :

  • 在第一個示例中,如果觀察到連接節點,則獨立性成立;
  • 在第二個示例中,如果未觀察到連接節點,則獨立性成立。

  這種差異是因為節點的連接方式,即箭頭的方向。

  在馬爾可夫網絡中,我們可以使用類似的方法,但由於沒有方向邊(箭頭),條件獨立語句相對簡單 - 如果節點A和B之間沒有路徑,那么路徑上的所有節點都是未被觀察到的,然后A和B是獨立的。換句話說,如果存在從A到B的至少一條路徑,其中所有中間節點都未被觀察到,則A和B不是獨立的。

貝葉斯網絡的應用:Monty Hall Problem

 

  主人向你展示了三扇關閉的門,其中一扇門后面有一輛車,而其他門后面則是羊。 你可以選擇一扇門。 然后,主機打開剩余的一扇門,並顯示它不是汽車。 現在,你可以選擇將門從最初選擇的門切換到主機未打開的門。 你換了嗎?

  主持人似乎沒有透露任何信息,你或許會認為換與不換的贏得車的概率都是$1/2$,然而, 事實證明,這種直覺並不完全正確。 讓我們使用 圖模型來理解這一點。

讓我們從定義一些變量開始:

  • D:車門。
  • F:你的第一選擇。
  • H:主持人打開的門。
  • I:F = D?

  D,F和H取值1,2或3,I取0或1.D和I是未觀察到的,F是可以觀察到的. 在主持人打開其中一扇門之前,H是未被觀察到的。 因此,我們為我們的問題獲得以下貝葉斯網絡:

  注意箭頭的方向:D和F是獨立的,主持人選擇的門H也取決於D和F.到目前為止,你對D一無所知。(這是 類似於學生網絡中的結構,在那里了解學生的智慧並沒有告訴你關於課程難度的任何信息。)

  現在,主人拿起一扇門H並打開它。 所以,現在觀察到H.

  觀察H並沒有告訴我們關於我的任何事情,也不確定我們是否選擇了正確的門。  但是,它確實告訴我們一些關於D的事情! (再次,與學生網絡類比,如果你知道學生是聰明的,並且成績很低,它會告訴你關於課程難度的一些信息。)

  讓我們用數字來看。 變量的CPD表如下(這是在沒有觀察到變量的情況下)。

  D和F的表格很簡單 :我們以相同的概率選擇其中一扇門。

  I表格:當D和F相同時I = 1,而當D和F不同時I = 0。

  H的表格:如果D和F相等,則主持人以相同的概率從其他兩個門中選擇一個門,而如果D和F不同,則主持人選擇第三個門。

現在,讓我們假設我們選擇了一扇門,即現在觀察到F,比如說F = 1。 給定F,I和D的條件概率是多少?

 

我們可以得到:

 

  到目前為止,我們選擇正確門的可能性是$1/3$。

  現在,主人打開除F之外的其中一扇門,所以我們觀察H.假設H = 2。 讓我們計算給定F和H的I和D的新條件概率。

 

概率分布:

  因此,當我們一無所知 : 我們的第一選擇仍然是正確的概率$1/3$,這就是我們的直覺告訴我們的。 但是,我們現在知道汽車在門3后面的概率為2/3,而不是1/3。

  因此,如果我們切換,我們得到的車概率為2/3; 如果我們不這樣做,我們會以概率1/3獲得汽車。

  我們可以在不使用圖形模型的情況下得到相同的答案,但圖形模型為我們提供了一個可以很好地擴展到更大問題的框架。

小結
  至此,我們研究了圖模型中的一些基本術語,包括貝葉斯網絡,馬爾可夫網絡,條件概率分布,潛在函數和條件獨立性。 我們還研究了Monty Hall問題的圖模型應用。

  下邊,我將介紹參數估計和推理,並給出另一個應用案例。

參數估計
貝葉斯網絡
  估計貝葉斯網絡的CPD表中的數字僅等於計算該事件在我們的訓練數據中發生的次數。也就是說,為了估計$p(SAT = s^1 | Intelligence = i^1)$,我們只計算$SAT = s^1$和$Intelligence = i^1$的數據點的概率,這些點是離散的,很容易計算。

馬爾可夫網絡
  遺憾的是,對於馬爾可夫網絡,上述計數方法沒有統計學證明(因此會導致次優參數)。因此,我們需要使用更復雜的技術。大多數技術背后的基本思想是梯度下降 :我們定義描述概率分布的參數,然后使用梯度下降來找到這些參數的值,以最大化觀測數據的可能性。

  最后,既然我們有模型的參數,我們想在新數據上使用它們來進行推理與驗證!

推理
  概率圖模型中的大部分文獻都側重於推理。 原因有兩方面:

  • 能夠根據我們已經知道的內容進行預測。
  • 推理在計算上很難! 在某些特定類型的圖中,我們可以相當有效地執行推理,但在一般圖上,它是難以處理的。 因此,我們需要使用近似算法來犧牲准確性以提高效率。

我們可以通過推理解決幾個問題:

  • 邊際推斷(Marginal inference):查找特定變量的概率分布。 例如,給定具有變量A,B,C和D的圖,其中A取值1,2和3,求$p(A = 1)$,$p(A = 2)$和$p(A = 3)$的值。
  • 后驗推斷(Posterior inference):給定一些觀察到的變量$v_E$(E代表證據)取值e,找出一些隱藏變量v_H的后驗分布$p(v_H | v_E = e)$。
  • 最大后驗推斷(Maximum-a-posteriori (MAP) inference):給定一些觀察到的變量$v_E$,其取值e,尋找其他變量的最高概率$v_H$的值。

  在下文中,我將介紹一些用於回答這些問題的流行算法,包括精確算法和近似算法。 所有這些算法都適用於貝葉斯網絡和馬爾可夫網絡。

變量消除
使用條件概率的定義,我們可以將后驗分布寫為:

 

讓我們看看如何使用一個簡單的例子來計算上面的分子和分母。 考慮具有三個變量的網絡,聯合分布定義如下:

 

   假設我們想要計算$p(A | B = 1)$,這意味着我們想要計算$p(A = 0 | B = 1)$和$p(A = 1 | B = 1)$的值,它們應該總和為1。 使用上面的等式,我們可以寫成:

 

  分子是$A = 0$和$B = 1$的概率。我們不關心C的值。所以我們將C的所有值相加,由於 $p(A = 0,B) = 1,C = 0)$和$p(A = 0,B = 1,C = 1)$是相互排斥的事件,因此它們的並集$p(A = 0,B = 1)$只是各個概率的總和。

  我們添加第3行和第4行來得到$p(A = 0,B = 1)= 0.15$。類似地,添加行7和8給出$p(A = 1,B = 1)= 0.40$。此外,我們可以通過對包含$B = 14$的所有行(即,行3,4,7和8)求和來計算分母,以得到$p(B = 1)= 0.55$。我們可以計算:

$$p(A = 0 | B = 1)= 0.15 / 0.55 = 0.27$$

$$p(A = 1 | B = 1)= 0.40 / 0.55 = 0.73$$

  如果你仔細研究上面的計算,你會注意到我們做了一些重復的計算 - 添加第3和第4行,以及第7和第8行兩次。計算$p(B = 1)$的更有效方法是簡單地計算$p(A = 0,B = 1)$和$p(A = 1,B = 1)$。這是變量消除的基本思想。

  通常,當你有很多變量時,你不僅可以使用分子的值來計算分母,而且如果仔細觀察,分子本身將包含重復的計算。您可以使用動態編程來有效地使用預先計算的值。

  我們一次對一個變量求和,從而消除它,所以求出多個變量的過程相當於一次一個地消除這些變量。因此,名稱“變量消除”。

  擴展上述過程以解決邊際推斷或MAP推理問題也很簡單。類似地,很容易概括上述想法以將其應用於馬爾可夫網絡。

  變量消除的時間復雜度取決於圖形結構以及消除變量的順序。在最壞的情況下,它時間復雜度呈指數遞增。

信仰傳播
  我們剛剛看到的VE算法只給出了一個最終分布。 假設我們想要找到所有變量的邊際分布。 我們可以做更聰明的事情,而不是多次運行變量消除。

  假設你有一個圖形結構。 要計算邊際,需要將聯合分布與所有其他變量相加,這相當於匯總整個圖形中的信息。 這是從整個圖中聚合信息的另一種方法 - 每個節點查看其鄰居,並在本地近似變量的分布。

  然后,每對相鄰節點彼此發送“消息”,其中消息包含本地分布。 現在,每個節點查看它接收的消息,並聚合它們以更新其變量的概率分布。

 

  在上圖中,C聚合來自其鄰居A和B的信息,並向D發送消息。然后,D將此消息與來自E和F的信息聚合在一起。

  這種方法的優點是,如果保存在每個節點上發送的消息,則消息的一個正向傳遞和一個反向傳遞將為所有節點提供有關所有其他節點的信息。

  如果圖形不包含循環,則此過程在前向和后向傳遞之后收斂。如果圖形包含循環,則此過程可能會或可能不會收斂,但它通常可用於獲得近似答案。

近似推斷
  由於精確推斷對於大型圖形模型而言可能非常耗時,因此已經為圖形模型開發了許多近似推理算法,其中大多數算法屬於以下兩類之一:

抽樣方法
  這些算法使用抽樣估計概率。舉一個簡單的例子,考慮以下情況 - 給出一個硬幣,你如何確定擲硬幣時獲得頭部的概率?最簡單的事情就是將硬幣翻轉100次,然后找出你得到頭部的投擲比例。

  這是一種基於抽樣的算法來估計頭部的概率。對於概率圖形模型中的更復雜問題,可以使用類似的過程。基於采樣的算法可以進一步分為兩類。在第一個中,樣本彼此獨立,如上面的硬幣投擲示例中所示。這些算法稱為蒙特卡羅方法。

  對於許多變量的問題,生成高質量的獨立樣本很困難,因此,我們生成相關樣本,即每個新樣本是隨機的,但接近最后一個樣本。這種算法稱為馬爾可夫鏈蒙特卡羅(MCMC)方法,因為樣本形成“馬爾可夫鏈”。一旦我們有樣本,我們可以用它們來回答各種推理問題

變分方法
  變分方法不是使用采樣,而是嘗試分析地近似所需的分布。 假設你寫出用於計算利息分布的表達式 - 邊際概率分布或后驗概率分布。

  通常,這些表達式中的積分在計算上很難准確評估。 近似這些表達式的一種好方法是求解替代表達式,並以某種方式確保此替換表達式接近原始表達式。 這是變分方法背后的基本思想。

  當我們嘗試估計復雜概率分布p_complex時,我們定義一組單獨的概率分布P_simple,它們更容易使用,然后從P_simple中找到最接近p_complex的概率分布p_approx。

應用:圖像去噪
  假設你有以下圖片:

現在假設它被隨機噪聲破壞了,所以你的嘈雜圖像看起來如下:

  目標是去除圖像噪聲。讓我們看看我們如何使用概率圖模型來做到這一點。

  第一步是考慮我們觀察到的和未觀察到的變量是什么,以及我們如何將它們連接起來形成圖形。讓我們將噪聲圖像中的每個像素定義為觀察到的隨機變量,並將實況圖像中的每個像素定義為未觀察到的變量。因此,如果圖像是M×N,則存在MN個觀測變量和MN個未觀測變量。讓我們將觀察到的變量表示為$X_{ij}$,將未觀察到的變量表示為$Y_{ij}$。每個變量取值+1和-1(分別對應於黑色和白色像素)。給定觀察到的變量,我們希望找到未觀察到的變量的最可能值。這對應於MAP推斷。

  現在,讓我們使用一些領域知識來構建圖結構。顯然,噪聲圖像中位置$(i,j)$處的觀測變量取決於實際圖像中位置$(i,j)$處的未觀測變量。這是因為大部分時間它們是相同的。

  對於原始圖像,相鄰像素通常具有相同的值 -在顏色變化的邊界處不是這樣的,但在單色區域內,此屬性成立。因此,如果它們是相鄰像素,我們連接$Y_{ij}$和$Y_{kl}$。

  因此,我們的圖形結構如下所示:

 

  白色節點表示未觀測到的變量$Y_{ij}$,灰色節點表示觀測變量$X_{ij}$。 每個$X_{ij}$連接到相應的$Y_{ij}$,每個$Y_{ij}$連接到它的臨近節點。

  這是馬爾可夫網絡,因為圖像的像素之間沒有因果關系,因此,在這里定義貝葉斯網絡中的箭頭方向是不合適的。

  我們的MAP推理問題可以用數學方法,如下:

  我們使用了一些在最大對數似然計算中常見的標准簡化技術。 我們將使用X和Y(沒有下標)分別表示所有$X_{ij}$和$Y_{ij}$值的集合。

  現在,我們需要根據圖形結構定義聯合分布$P(X,Y)$。 假設$P(X,Y)$由兩種因子組成:$\phi(X_{ij},Y_{ij})$和$\phi(Y_{ij},Y_{kl})$,對應於圖中的兩種邊。 接下來,我們定義如下因素:

  $\phi(X_{ij},Y_{ij})= exp({w_e* X_{ij} ,Y_{ij})$,其中$w_e$是大於零的參數。

  當$X_{ij}$和$Y_{ij}$相同時,該因子取大值,當$X_{ij}$和$Y_{ij}$不同時取小值。

  $\phi(Y_{ij},Y_{kl})= exp(w_s*Y_{ij} ,Y_{kl})$,其中$w_s$是大於零的參數,如前所述。該因子有利於$Y_{ij}$和$Y_{kl}$的相同值。  

  因此,我們的聯合分發由下式給出:

 

  其中第二乘積中的$(i,j)$和$(k,l)$是相鄰像素,Z是歸一化常數。

  將其代入我們的MAP推理方程給出:

  使用參數估計技術從地面實況和噪聲圖像對獲得w_e$和$w_s$的值。這個過程在數學上是相當復雜的,因此,我們不會在這里深入研究它。我們假設我們已經獲得了以下這些參數的值 :$ w_e = 8$和$w_s = 10$。

  這個例子的主要焦點是推理。鑒於這些參數,我們想要解決上面的MAP推理問題。我們可以使用置信傳播的變體來做到這一點,但事實證明,對於具有這種特定結構的圖,有一種更簡單的算法稱為迭代條件模式(ICM)。

  基本思想是在每一步中,選擇一個節點$Y_{ij}$,查看$Y_{ij} = -1$和$Y_{ij} = 1$的MAP推理表達式的值,並選擇具有更高值的節點。重復此過程一定數量的迭代或直到收斂通常合理地工作。

  去除之后的圖像:

 

  當然,你可以在圖形模型和外部使用更多花哨的技術來生成更好的東西,但是從這個例子中可以看出,帶有簡單推理算法的簡單馬爾可夫網絡已經為你提供了相當不錯的結果。python代碼

總結:

   我們研究了概率圖模型中的一些核心思想。圖模型提供了一種可解釋的方式來模擬許多真實世界的任務,其中存在依賴關系。使用圖形模型為我們提供了一種以原則方式處理此類任務的方法。

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM