貝葉斯機器學習到底是什麼?看完這篇你就懂了

2021-01-11 網易科技

編者按:不少人都在機器學習的過程中聽說過貝葉斯分類器,但它是如何與機器學習建立聯繫的?作者Zygmunt Zając提供了一些基礎概念,編者也嘗試對其中的一些概念進行簡化說明,讓小白們也能容易地理解貝葉斯在機器學習中所起的作用。

貝葉斯學派與頻率主義學派

簡單說來,貝葉斯學派認為,概率是一個人對於一件事的信念強度,概率是主觀的。

但頻率主義學派所持的是不同的觀念:他們認為參數是客觀存在的, 即使是未知的,但都是固定值,不會改變。

編者參閱了一些資料,嘗試以我們以前課堂上所學的概率論來解釋一下,頻率學派認為進行一定數量的重複實驗後,如果出現某個現象的次數與總次數趨於某個值,那麼這個比值就會傾向於固定。最簡單的例子就是拋硬幣了,在理想情況下,我們知道拋硬幣正面朝上的概率會趨向於1/2。

非常好理解不是麼?但貝葉斯提出了一種截然不同的觀念,他認為概率不應該這麼簡單地計算,而需要加入先驗概率的考慮。

先驗概率也就是說,我們先設定一個假設(或信念,belief)。然後我們通過一定的實驗來證明/推翻這個假設,這就是後驗。隨後,舊的後驗會成為一個新的先驗,如此重複下去。而歸根結底,就得到了這樣一個著名的公式:

P( A | B ) = P( B | A ) * P( A ) / P( B )

(A | B表示A給定B的概率,也就是說,如果B發生,A發生的可能性有多大。反之亦然。)

從數據中推斷模型參數

在貝葉斯機器學習中,我們同樣採用貝葉斯公式從data(D)中推導模型參數(θ)。

P(θ|D) = P(D|θ) * P(θ) / P(data)

值得說明的是,P(data)在通常情況下無法被計算,但這並不會帶來什麼問題。因為我們在推導及求解的過程中,最重要的還是那些含有θ的表達式,而P(data)到底是多少,其實並不需要真的求出來。

P(θ) 為先驗概率,也就是我們對樣本空間中各類樣本所佔比例的可能性推測。通常我們認為,當訓練集包含重組的獨立同分步樣本時,P(θ) 可通過各類樣本出現的頻率進行判斷。關於先驗的其它知識,可以參考Where priors come from的介紹。

P(D|θ) 是樣本D相對於類標記θ的類條件概率,也就是我們理解的「似然」。人們經常會使用可能性來評估模型,如果對實際數據能做出更高可能性的預測,那麼這個模型自然更為有效。

那麼,等式左邊的P(θ|D) 就是我們最終想得到的東西,也就是基於先驗概率與數據所獲得的模型參數所呈現的概率分布。

如果能通過數據採樣來估計概率分布參數,最經典的方法就是最大似然估計(maximum-likelihood estimation,MLE),也就是我們所說的極大似然法。而如果將先驗考慮在內,那麼就是最大後驗概率(MAP)。如果在先驗均勻分布的情況下,這兩者應該相同。

統計建模

我們先將貝葉斯方法分為兩類:一為統計建模,另一個為概率機器學習。後者包括了所謂的非參數方法。

建模通常在數據稀缺且難以獲得時得以應用,比如在社會科學和其它難以進行大規模對照實驗的環境中。想像一下,如果一個數據學家手頭只擁有少量的數據,那麼他會不遺餘力地對算法進行調整,以期讓每個數據都發揮最大的功用。

此外,對於小數據而言,最重要的是量化不確定性,這也正是貝葉斯方法所擅長的。而貝葉斯方法——尤其是MCMC——通常計算量巨大,這又與小數據是共存的。

在名為《Data Analysis Using Regression Analysis and Multilevel/Hierarchical Models》(連結:http://www.stat.columbia.edu/~gelman/arm/ )的書中,介紹了從一個沒有預測變量的線性模型開始,不斷增加到11個預測變量的情況並進行討論。這種勞動密集性模式實際上與我們的機器學習方向背道而馳,我們還是希望能使用數據,讓計算機自動學習。

概率機器學習

我們現在嘗試把「概率」一詞替換「貝葉斯」。從這個角度而言,它與其它分類方法並沒有區別。如果從分類考慮,大多數分類器都能夠輸出概率預測,比如最經典的SVM(支持變量機)。但需要指出的是,這些概率只是源於分類器的信念陳述,而它們是否符合真實的概率則完全是另一回事了,這也就是所謂的校準(calibration)。

貝葉斯非參數模型

接下來我們要說說貝葉斯非參數模型的一些內容,顧名思義,這個名字代表著模型中的參數數量可以隨著數據的增大或減少而自適應模型的變化。這與SVM有些相似,它能在訓練點中選擇支持向量,而貝葉斯非參數模型也能根據數據多少來選擇參數確定模型。比較流行的貝葉斯非參數模型包括高斯回歸過程,還有隱含狄裡克雷分布(LDA)。

高斯回歸過程

高斯回歸過程有點類似於SVM——採用內核並具有類似的可伸縮性。其最大的特點在於回歸特性,分類做為事後的判斷,而對於SVM而言,這個過程是相反的。

此外,GP是從頭開始進行概率判斷,而SVM不是。大多數的常規方法只提供數據點估計,而貝葉斯非參數模型則會輸出不確定性估計。

不過,「悲劇」還沒有結束,像GP這樣的複雜方法通常在假設均勻的情況下操作,而實際上,噪聲實際上可能出現於輸入空間(異方差)上。

高斯回歸過程的流行主要應用於機器學習算法的超參數優化上。數據非常小,也只有幾個參數需要調整。

LDA

Latent Dirichlet Allocation(LDA)是一種非監督機器學習技術,可以用來識別大規模文檔集(document collection)或語料庫(corpus)中潛藏的主題信息。

對於語料庫中的每篇文檔,LDA定義了如下生成過程(generativeprocess):

1.對每一篇文檔,從主題分布中抽取一個主題;

2.從上述被抽到的主題所對應的單詞分布中抽取一個單詞;

3.重複上述過程直至遍歷文檔中的每一個單詞。

軟體

至於軟體,Stan可以說是貝葉斯最為知名的概率性程式語言,它能夠根據你的指定訓練你想要的貝葉斯模型,能用Python、R或其它語言編寫,不過現在Stan有了一個叫NUTS(No-U-TurnSampler)的現代採樣器,它能夠得到比靜態HMC更高的計算效率。

Stan的另一個有趣的地方在於它能自動變分推理。

變分推理是用於近似貝葉斯推理的可縮放技術。推導變分推理算法需要繁瑣的模型特定計算,而自動變分推理(ADVI)算法能夠為中型數據應用於小型建模鋪平道路。

而在Python中,最為有名的是PyMC。它並非是最先進的一個,也沒有經常進行優化或迭代,但它的效果也很不錯。

Infer.NET是微軟的概率編程庫,它主要由C# 或F# 等語言提供,但也能從.NET的IronPython中調用。

此外,還有CrossCat等用於分析高維數據表領域通用的貝葉斯方法。

關注網易智能菌(微信公眾號:smartman163),獲取專業人工智慧資訊與AI報告。

本文來源:雷鋒網 責任編輯: 欽曉武_NK2781

相關焦點

  • 機器學習-貝葉斯估計
    上一節機器學習-概率論的簡單回顧2.2.3 貝葉斯規則將條件概率的定義與乘積和規則相結合,就得到了貝葉斯規則,也稱為貝葉斯定理2.2.3.1實例:醫學診斷假設你是一名40多歲的女性,你決定進行一項名為乳房 x光檢查的乳腺癌醫學檢測如果檢查呈陽性,你得癌症的機率是多少?這顯然取決於測試的可靠性。
  • 網狀Meta分析的步驟,看完這篇就懂了
    最近我覺得文獻差不多了,可以考慮動手了,正好很多小夥伴也想了解,索性就跟大家一起分享下NMA到底怎麼弄的。NMA是什麼?普通Meta分析是合併直接比較的結果,比如你想研究A藥和B藥對C疾病的治療效果,如果有A藥和B藥直接對比的臨床研究,那麼你就可以做普通的Meta分析,直接合併這些臨床研究,得到A藥和B藥的對比結果。
  • 第五人格:勘探員「磁鐵」究竟有什麼用?看完這篇文章你就懂了!
    最近第五人格官方終於公布了新求生者勘探員的技能介紹,這個角色主要的功能就是使用天外隕石製作的磁鐵來攻擊和躲避監管者的,不過說實話官方對於新角色技能的描述每次基本都是一樣的,玩家單獨看每一個字都能看明白,但是這些字連到一起就完全不知道是什麼意思了。
  • 深度學習貝葉斯,這是一份密集的6天速成課程(視頻與PPT)
    選自GitHubBayesian Methods Research Group機器之心整理在 Deep|Bayes 夏季課程中,授課人將討論貝葉斯方法如何結合深度學習,並在機器學習應用中實現更好的結果。近期研究表明貝葉斯方法的利用可以帶來許多好處。學生將學到對理解當前機器學習研究非常重要的方法和技術。
  • 專欄| 貝葉斯學習與未來人工智慧
    機器之心專欄作者:鄧仰東 發射資本人人都喜歡美劇《生活大爆炸》。Sheldon 和朋友們的生活看似單調,但是自有其獨特的精彩。捧腹之餘,理工科出身的觀眾不免也想看看 Sheldon 到底在做怎樣的研究,特別是和我們自己相關的工作。果然,在第四季第 2 集中我們看到了下圖中的公式(用紅框標出)——貝葉斯定理!
  • 貝葉斯定理:AI不只是個理科生
    貝葉斯定理並不好懂,每一個因子背後都藏著深意。它到底是如何「為人民服務」的呢?對於貝葉斯定理,參照上面的公式,首先要了解各個概率所對應的事件。」,再加入實驗結果,看這個實驗到底是增強還是削弱了「先驗概率」,修正後得到更接近事實的「後驗概率」。
  • 想入門機器學習?機器之心為你準備了一份中文資源合集
    機器之心整理參與:機器之心編輯部機器學習日益廣為人知,越來越多的計算機科學家和工程師投身其中。不幸的是,理論、算法、應用、論文、書籍、視頻等信息如此之多,很容易讓初學者迷失其中,不清楚如何才能提升技能。本文作者依據自身經驗給出了一套快速上手的可行方法及學習資源的分類匯總,機器之心在其基礎上做了增益,希望對讀者有所幫助。
  • 貝葉斯定理:AI 不只是個理科生 | 贈書
    貝葉斯定理並不好懂,每一個因子背後都藏著深意。它到底是如何「為人民服務」的呢?對於貝葉斯定理,參照上面的公式,首先要了解各個概率所對應的事件。P(A|B)是在B發生的情況下A發生的概率;也叫作A的後驗概率,是在B事件發生之後,對A事件概率的重新評估。
  • 清華大學朱軍:貝葉斯學習回顧與最新進展| YEF 2020
    1  貝葉斯應對不確定性  為什麼要用貝葉斯做機器學習或者人工智慧?主要因為「不確定性」的存在。 首先是處理對象的不確定性 ,例如無人駕駛,其環境和系統就存在很多我們未知的隨機因素。  沒看到數據之前,模型有先驗(π(θ)),有了數據之後,建模得到的是似然模型(P(D|θ)),有了這兩個因素可以根據貝葉斯定律計算後驗概率(P(θ|D))。  如果追溯歷史,最早在1763年就有文章討論貝葉斯理論,正式發表則是在貝葉斯去世之後。而目前機器領域內有貝葉斯方法和非貝葉斯方法之爭,總體來說在社區內共處得還算融洽。
  • 貝葉斯定理為何能名滿天下?AI從此不再只是個理科生
    貝葉斯定理並不好懂,每一個因子背後都藏著深意。 它到底是如何「為人民服務」的呢? 對於貝葉斯定理,參照上面的公式,首先要了解各個概率所對應的事件。
  • CFA乾貨放送——貝葉斯公式
    學習數學有什麼用呢?高大上的公式跟我什麼關係呢?它除了是個公式還是個公式呀!NO!NO!
  • 清華大學朱軍:貝葉斯學習回顧與最新進展|YEF 2020
    ,解讀他們心目中的經典機器學習與數據挖掘算法,並與大家分享了這些算法的起源、應用與影響。其中,朱軍教授做了題為《貝葉斯學習回顧與展望》報告,總時長為1個小時左右,內容主要分為五個部分:貝葉斯理論應對不確定性、貝葉斯理論和經典算法、可擴展的貝葉斯方法、珠算編程庫以及應用貝葉斯理論的一些例子。下文是本場報告的文字版,由 AI 科技評論編輯。1貝葉斯應對不確定性為什麼要用貝葉斯做機器學習或者人工智慧?
  • 懂貝葉斯定理,學會理解生活
    每當遇到什麼天災人禍,老人們就愛說這話,就像遇到車禍的人,大多數是好人,然而車子真的會選人來撞嗎?顯然是不可能的。在這件事情上,我們大多數人都犯了謬誤,忘記了一個客觀的情況:壞人只佔這世界上的一小部分,絕大多數人都是好人,所以車禍中受傷害的自然是好人多了。我們在理解生活中一些問題時,經常會忘記一些事情的先決條件。
  • 可怕的貝葉斯定理,看完後忍不住感慨數學太重要了
    眾所周知,貝葉斯定理是一種在已知其他概率的情況下求概率的方法:圖片來源:HackYourself既然開講了,那就不要停下來了。那我們怎麼去理解這個傳說中不黃但很暴力的貝葉斯定理呢,貝葉斯定理是如何暴力狂虐數學界的?
  • 大學裡熱門的空乘專業,畢業後想當空姐到底有多難?看完你就懂了
    在這裡我們就來談談空姐這個職業,從大學裡面的空乘專業,看看畢業生想當上空姐到底有多難。大學裡熱門的空乘專業,畢業後想當空姐到底有多難?看完你就懂了如今很多大學都開設了空乘專業,也不管到底能不能實現就業,也不管大學的性質是什麼,反正就是什麼專業熱門就開設什麼專業。而大家對於當空姐也是情有獨鍾,所以只要開設了這個專業,那都是會報滿人的。
  • 從最大似然估計開始,你需要打下的機器學習基石
    選自Medium作者:Jonny Brooks-Bartlett機器之心編譯概率論是機器學習與深度學習的基礎知識,很多形式化的分析都是以概率的形式進行討論。而這些討論或多或少都離不開最大似然估計,因為它是參數估計的基礎之一,也是構建模型的基石。
  • 這套「貝葉斯」算法可讓機器人像人類一樣思考
    科學家開發的這套算法,可讓機器人像人類一樣思考機器人與人對事物的理解方式是不同的,對於人類而言,通過察言觀色,很快就能做出判斷,而機器人的判斷是通過成千上萬的案例對比而總結出來的。因此,也被稱為「機器學習」。
  • 電解電容極性接錯會爆炸,如何避免,看完這篇文章你就懂了
    電解電容極性接錯就會發生爆炸,如何避免正負極接錯,看完這篇文章你就懂了。避免一:電解電容正負極判斷(1)外觀辨別首先拿出一個電解電容,第一種方法是看電解電容膠管,膠管一端印有負極的標示。另外一端正極則不表示。第二種方法是看電解電容引腳。
  • 看完你就懂了
    最近幾周,我有幸在舊金山的舉辦的機器學習大會上與眾多機器學習大牛交談,我和他們聊了很多關於深度學習、神經網絡、數據結構的內容。此外,我還在網上選修了一門機器學習入門課程,正巧剛剛修完。在接下來內容中,我將和大家分享我在這門課程中所學到的機器學習常用算法。機器學習算法分為三類:有監督學習、無監督學習、增強學習。有
  • 體制內單位究竟有什麼魔力?看完這篇就懂了
    那麼,體制內外的工作究竟有什麼區別呢?除了待遇,還有別的因素嗎?今天這篇文章就來具體說一說。1.體制是個啥?我不說什麼官方概念了,就教一招讓大家快速區分:如果單位領導恨你恨的壓根就不想看見你,那也找不到辦法開除你,就叫體制內,其他叫做體制外。所以,穩定是體制內工作最大的代名詞,只要你不犯什麼原則性錯誤,這份工作就是鐵飯碗,你想餓死都不成。