一文讀懂機器學習中的貝葉斯統計學

資料派THU發表於2019-05-06

你有沒有問過自己,以前從未發生過的事件發生的概率是多少?

在本文中,我們將深入探討貝葉斯統計的神祕世界以及它的一些原則,Bernstein-von Mises定理和Cromwell規則,以及用它們分析現實世界的機器學習問題。

“貝葉斯統計之所以困難,是因為思考是困難的”

 - Don Berry

一文讀懂機器學習中的貝葉斯統計學

如果你想深入瞭解貝葉斯統計背後的數學原理,那麼這篇文章不是你要找的(儘管未來我將發表關於這個的文章)。本文主要是給剛剛接觸這個概念的人介紹貝葉斯方法。

想象一下,你正在設計一座核電站。你的任務是使用資料來確定工廠是否正常運轉。這看起來似乎是一個相對簡單的任務,直到你意識到你實際上沒有任何關於核電站發生核洩露時的資料。你怎麼能預測這樣的事情呢?

如果你是一個精明的機器學習專家,你可能會提出某種無監督的方法,如(受限制的)波耳茲曼機,它能夠了解“正常”的發電廠是什麼樣的,從而知道什麼時候發生了錯誤(事實上,這是正人們預測核電廠正常執行情況的一種方式)。

然而,如果我們從更廣泛的意義上考慮這個問題,當我們沒有什麼負面例子可以比較時,我們該怎麼辦?出現這種情況有幾個原因:

  • 低概率情景:該事件發生的概率如此之低,以至於在(有限的)樣本資料中根本沒有觀察到該事件的發生。

  • 資料稀疏情景:觀察已經發生,但很少。

  • 災難情景:失敗的結果將是災難性的,它只能發生一次,例如,太陽的毀滅。

傳統的統計方法不適用於這類問題,我們需要不同的方法。

一個更普遍的問題是,我們如何處理極低(但嚴格非零)或極高(接近1但嚴格非1)的概率?讓我們首先看一下由數學家Pierre-Simon Laplace提出的為研究著名問題而制定的一些規則。

日出問題

想象一下,有一天早上你醒來,太陽決定休息一天。這不僅(最有可能地)會毀了你的一天,打亂你的生物鐘,還會直接改變你對太陽的感覺。你可能會更有可能預測也許第二天太陽也不會升起。或者,如果太陽剛剛度過了糟糕的一天,然後第二天又回來了,那麼你對太陽會再休息一天的期望就會比之前高很多。

這裡發生了什麼?基於新的證據,我們改變了對事件發生概率的看法。這是所有貝葉斯統計的關鍵,並使用一個稱為貝葉斯規則的方程來正式描述。

貝葉斯規則 

貝葉斯規則告訴我們,我們必須從某一事件發生的固有概率開始(事前)。我們稱之為先驗概率。逐漸地,當我們獲得新的觀察結果和證據時,我們會在這些證據和判斷我們當前情況的可能性的基礎上更新我們的信念。這種更新的信念被稱為後驗概率(事後)。 

回到我們的日出問題,每天我們都觀察到太陽升起,並且每一次太陽升起的時候,我們都更確定它會在第二天再次升起。然而,如果有一天我們發現太陽沒有升起,這將極大地影響我們基於新證據的後驗概率。 

這可以用下面的數學形式來表示,乍一看令人生畏,但可以抽象出來:我們更新的信念是基於我們最初的信念和基於我們當前的信念(可能性)的新證據。可能性是指我擁有的新證據,我的信念正確的可能性有多大?如果我相信明天太陽不升起的概率是一百萬分之一,然後它發生了,我的信念(我的模型)是錯的可能性會非常高,然後後驗概率將被更新來預測它更有可能會再次發生。 

一文讀懂機器學習中的貝葉斯統計學貝葉斯理論這是一個非常棒的想法,它存在於許多不同的地方,尤其是涉及到人類和他們的信仰時。例如,假設你的朋友告訴你,你最喜歡的一位名人去世了。一開始,你可能會感到沮喪,並且有點懷疑。隨著你的一天,你讀報紙,它告訴你,這位名人去世了,這種信念將進一步加強。也許你會在電視上看到他們家人哀悼的新聞,你的信念會更加堅定。然而,如果你看到電視上被採訪的人說他死亡的謠言正在被擴散,你對朋友告訴你的話的可信度就會被降低。

這是科學的一個重要方面,理論通過實驗和模擬得到證實,做這些實驗和驗證這些理論的人越多,這些理論就越強大和可信。然而,比如有宗教信仰的人可能認為他們不需要經驗證據(至少是同類的)來相信某些東西,我們稱之為信仰。

有趣的是,在我們日常生活中如此普遍的事情對統計學和機器學習如此重要,但它確實如此,我們將討論原因。然而,首先我們需要研究一些貝葉斯定理中出現的概率非常低的問題。

Cromwell 規則

Oliver Cromwell是英國曆史上的一位傑出人物,1658年在蘇格蘭國教大會上他曾說過一句名言: 

“我懇求你,在基督的內心中,認為你可能會被誤解。“ 

這個句子的使用導致了Dennis Lindley 定義的Cromwell規則,該規則提出了這樣的想法:如果一個人由等於零(我知道這些事件不是真的)或一(我知道這些事件是正確的)的先驗概率開始,那無論向你展示什麼證據,你的信念將不會被動搖。 

這向我們展示了在觀察可以以經驗觀察的事物時絕對主義觀點的危險性。如果我堅信自己是正確的,那麼任何人說的或做的都不能使我信服。這是無知的高度,而不是我們想要融入機器學習模型的東西。如果我們回頭看貝葉斯定理我們就能明白為什麼會這樣,如果先驗概率是0,那麼乘以任何數之後後驗概率仍然是0。 

原則上(見Cromwell規則),任何可能性都不應將其概率設為零,因為在現實世界中,任何事情都不應被嚴格假定為不可能(儘管它可能是不可能的)——即使與所有觀察結果和當前理論相悖。 

神經網路就是一個理想的例子。當你初始化一個神經網路時,你的節點以一些固有值開始。如果將這些節點的權值都賦值為零,則節點將無法自行更新,因為梯度下降演算法的所有迭代都將乘以零。相反,執行隨機初始化(通常對使用者不可見)通常可以防止出現這樣的問題。 

貝葉斯定理的另一個有趣的性質是源自當我們觀察無窮次觀察之後會發生什麼,通常被稱為Bernstein-von Mises定理。 

Bernstein-von Mises定理

簡而言之,Bernstein-von Mises定理告訴我們,當我們獲得更多的資料時,我們的後驗估計將漸進地獨立於我們最初(先前)的信念——當然,前提是它遵循Cromwell規則。這在某種程度上類似於頻率統計中的律數定律,它告訴我們,當我們獲得越來越多的資料時,樣本的均值最終將等於總體的均值。 

那麼貝葉斯統計與普通統計之間的最大區別是什麼?為什麼機器學習專家和資料科學家需要貝葉斯統計?

貝葉斯統計與頻率統計 

對於那些不知道貝葉斯和頻率論是什麼的人,讓我詳細說明一下。頻率論方法是從頻率的角度看資料。例如,假設我有一枚兩面都是正面的偏置硬幣。我拋10次硬幣,得到10次正面。如果我取所有拋硬幣的平均結果,得到1,表示下一次拋硬幣正面的概率是100%,反面的概率是0%,這是一種頻率論的思維方式。 

現在用貝葉斯的觀點。一開始我的先驗概率是0.5,因為我假設硬幣是均勻的。但是,不同的是我如何選擇更新我的概率的方式。每次拋完硬幣後,我都會看看我的下一個觀察結果在我目前的信念(我有一枚均勻的硬幣)下出現的可能性有多大。漸進的,當我拋到更多的正面,我的概率會趨向於1,但它永遠不會明確地等於1。 

貝葉斯方法和頻率方法的根本區別在於隨機性存在的位置。在頻率論領域內,資料被認為是隨機的,引數(如均值、方差)是固定的。在貝葉斯領域中,引數是隨機的,資料是固定的。

我現在非常想強調一點。 

它不被稱為貝葉斯(Bayesian),因為你使用的是貝葉斯定理(這在頻率論的觀點中也很常用)。 

它被稱為貝葉斯(Bayesian),因為方程中的項有不同的潛在含義。從理論的差異來講,最終你會得到一個非常有意義的實際區別:雖然之前僅有一個引數作為估計器的結果(資料是隨機的,引數是固定的),現在你有一個分佈引數引數是隨機的,資料是固定的),所以你需要整合它們以獲得在資料上的分佈。這是貝葉斯統計背後的數學變得比普通統計更混亂的原因之一,我們必須使用馬爾可夫鏈Monte Carlo方法對分佈進行抽樣,以估計難以處理的積分的值。其他巧妙的技巧,如無意識統計學家定律(多麼偉大的名字,對吧?)又名LOTUS,可以在數學方面提供幫助。 

那麼哪種方法更好呢? 

這些方法本質上是同一枚硬幣的兩面(雙關語),它們通常會給出相同的結果,但實現方法略有不同。不是一個比另一個好。事實上,我在哈佛的課堂上甚至有教授經常爭論哪個更好。普遍的共識是,“這取決於問題本身”,如果你能把它當成一個共識的話。就我個人而言,我發現貝葉斯方法更直觀,但其背後的數學要比傳統的頻率方法複雜得多。

現在你(希望)已經理解了其中的區別,也許下面的笑話會讓你發笑。

一文讀懂機器學習中的貝葉斯統計學貝葉斯與頻率論的笑話什麼時候應該使用貝葉斯統計?

貝葉斯統計包含了一類可以用於機器學習的特定模型。通常,人們基於一個或多個原因使用貝葉斯模型,例如: 

  • 擁有相對較少的資料點

  • 對事物如何運作有強烈的直覺(來自已有的觀察/模型)

  • 具有高度不確定性,或強烈需要量化特定模型或模型比較的不確定性水平

  • 想要宣告關於替代假設的可能性,而不是簡單地接受或拒絕零假設 

看了這個清單,你可能會認為人們總是想在機器學習中使用貝葉斯方法。然而,事實並非如此,我懷疑貝葉斯機器學習方法的相對薄弱是因為: 

  • 大多數機器學習都是在“大資料”的背景下完成的,而貝葉斯模型的特徵——先驗——實際上並沒有發揮多大作用。

  • 在貝葉斯模型中取樣後驗分佈計算量大且速度慢。 

我們可以清楚地看到,頻率分析和貝葉斯方法之間存在著許多協同作用,尤其是在當今世界,大資料和預測分析已經變得如此突出。我們為各種系統提供了大量的資料,我們可以不斷地對系統進行資料驅動的推斷,並隨著越來越多的資料可用而不斷更新它們。由於貝葉斯統計為“知識”的更新提供了一個框架,實際上它在機器學習中被大量使用。 

一些機器學習技術,如高斯過程和簡單線性迴歸,都有貝葉斯和非貝葉斯版本。也有純頻率的演算法(如支援向量機隨機森林)和純貝葉斯的演算法(如變分推理、期望最大化)。學習什麼時候使用這些工具,以及為什麼使用這些工具,可以讓你成為一名真正的資料科學家。

你是貝葉斯主義者還是頻率方法主義者? 

就我個人而言,我並不屬於任一陣營,這是因為有時我在一個擁有數千個特性的資料集上使用統計資料/機器學習,而我對這些特性一無所知。因此,我沒有先驗的信念,貝葉斯推理似乎是不合適的。然而,有時我處理很少的特徵並且我對它們很瞭解,我想把它加入我的模型-在這種情況下,貝葉斯方法將給我更多我相信的確定的區間/結果。

我應該去哪裡學習更多關於貝葉斯統計的知識? 

有幾個很棒的線上課程深入研究機器學習的貝葉斯統計。我推薦的最好的資源是我在哈佛上的AM207課程:高階科學計算(隨機優化方法,用於推理和資料分析蒙特卡羅方法)。你可以在這裡找到所有的課程資源,筆記,甚至Jupyter筆記。 

這裡還有一個很棒的視訊,講的是貝葉斯域和頻率之間的轉換(在視訊的11分鐘處)。

視訊連結:

https://www.youtube.com/watch?time_continue=674&v=kLmzxmRcUTo

如果你想成為一名真正偉大的資料科學家,我建議你牢牢掌握貝葉斯統計以及它如何被用來解決問題。這是一個艱難的過程,也是一個陡峭的學習曲線,但這是一個讓你從其他資料科學家中脫穎而出的好方法。在與同事進行資料科學訪談的討論中,貝葉斯建模經常出現,所以請記住這一點!

原文標題:

Will the Sun Rise Tomorrow? Introduction to Bayesian Statistics for Machine Learning

原文連結:

https://towardsdatascience.com/will-the-sun-rise-tomorrow-introduction-to-bayesian-statistics-for-machine-learning-6324dfceac2e

相關文章