科普|貝葉斯機率模型一覽

雷鋒網按:本文出自美圖數據研究院

什麼是貝葉斯概率模型?

機器學習狹義上是指代統計機器學習,如圖 1 所示,統計學習根據任務類型可以分為監督學習、半監督學習、無監督學習、增強學習等。

科普|贝叶斯概率模型一览

圖 1

在每類任務中,又可以將各類模型歸結為概率模型和非概率模型,以下以監督學習為例說明。

概率模型(生成模型)通過函數 F 來描述 X 和 Y 的聯合概率或者條件概率分佈,如 P(X|Y);非概率模型(判別模型)通過函數 F 來直接描述 X 到 Y 的映射,如 Y=f(X)。判別模型的優化目標五花八門,但都符合人類認知;而在概率模型中,所有模型的優化目標是統一的,即最大化觀測數據在概率模型中出現的概率。這兩者在部分模型表現形式上又可以互相解釋,如神經網絡等。

貝葉斯概率模型的誕生

所有概率模型描述的都是在系統參數 w 下觀測變量對 X,Y 的聯合概率分佈或條件概率分佈,即 P(Y,X|w) 。設計好概率模型後,剩下的問題就是如何通過大量的觀測數據來決定參數 w, 這時出現了貝葉斯理論。

頻率學派主張大數定律,對參數的最佳選擇是使觀測變量概率最大的值;而貝葉斯學派提出了貝葉斯公式和主觀概率,他們認為參數可以是一個分佈,並且最初可以通過主觀經驗設置。頻率學派的人對此是無法接受的,他們認為參數應該是一個確定的值不應該有隨機性。

舉個例子,有個檢測太陽是否爆炸的探測器,它有 0.3 左右的概率撒謊。當探測器說出太陽爆炸時,兩個學派的人答案是不一樣的。

科普|贝叶斯概率模型一览

圖 2

如圖 3 所示這裡太陽的狀態是系統參數 w,探測器回答是觀測變量 data。以頻率學派的理論來討論,如果參數只能是一個確定的值,那麼應該選取出錯概率最小的那個參數,那太陽應該是爆炸了;如果以貝葉斯學派來討論,將參數視為分佈,並根據我們的經驗賦予先驗,得到的後驗認為太陽應該是沒有爆炸的,只有當探測器多次回答「yes」,後驗分佈才會相信太陽爆炸了。

科普|贝叶斯概率模型一览

圖 3

貝葉斯學派和概率學派在小數據量的場景下的推論結果常常是有一定區別的,因此它有存在的必要。

構建貝葉斯概率模型

接下里通過構建貝葉斯概率模型案例直觀地感受貝葉斯概率模型的核心概念、構建思想和優勢。

CKF(Collaborative Kalman filter)

科普|贝叶斯概率模型一览

圖 4

如圖 4 所示,這種基於頻率學派模型存在兩個比較大的缺陷:

  • 無法增量訓練。理論上每新增一條用戶行為,模型就要重新估計一遍參數;

  • 無法處理用戶興趣漂移。粗暴的做法是設置時間衰減,但是衰減的函數和力度都需要人工把握,模型對超參數很敏感,而且每個用戶的興趣漂移能力應該是不同的,這點無法建模。

根據以上提到的兩大缺陷,通過貝葉斯將該模型進行改造。首先將參數都變成分佈的,把用戶向量 u 和物品向量 w 都賦予維納過程:

科普|贝叶斯概率模型一览

給 u 和 w 賦予一個方差很大的先驗分佈。輸入數據時計算後驗。將後驗通過維納過程得到下一刻的先驗:

科普|贝叶斯概率模型一览

每個用戶的興趣漂移能力不同:

*這裡通過維納過程算下一刻先驗,實質上在上一刻後驗的基礎上加一個方差 α。從而保證狀態始終有一個漂移能力,如果這個 α 等於 0,就會出現隨著推理的進行 u 的分佈只會越來越集中,這樣即便後面用戶興趣漂移了,由於先驗分佈集中,似然函數無法調整。所以這裡的 α 控制的是興趣漂移的能力。

再設一層概率分佈,令 α 也為一個維納過程,讓每個用戶的興趣漂移能力可以自適應去調整和變化:

經過貝葉斯改造之後,CFK 模型有以下優勢:

  • 訓練過程中是增量進行的;

  • 無參化,數據越來越多時,後驗方差會越來越小,分佈越來越集中,實現先驗與數據的自動權衡;

  • 漂移參數自適應,當用戶興趣發生漂移時,狀態會跟隨著漂移。

Bayesian Neural Networks

Bayesian Neural Networks 是指通過後驗推理擴展標準網絡。通過優化標準神經網絡訓練(從概率學派的角度來看)等同於權重的最大似然估計。

科普|贝叶斯概率模型一览

圖 5

它存在以下三大缺陷:

  • 無法增量訓練;

  • 網絡結構等需要超參數設置;

  • 無法衡量預測不確定性。

科普|贝叶斯概率模型一览

針對以上問題的解決方案是引入正則化,從貝葉斯學派的角度來看,這相當於在權重上引入先驗。從概率學派的角度來看這不是正確的做法,儘管它在實踐中確實很有效。改造後它有以下優勢:

  • 可以進行增量訓練;

  • 非參數模型,無參並非沒有超參數,而是把超參數隱藏到更深層,以達到更弱的參數敏感性;

  • 可以刻畫預測的不確定性;

  • 先驗與數據自動權衡。

如何更新模型?

變分推理 Variational inference

問題描述:觀測變量 X={x1,x2,……,xn}, 隱變量 Z={z1,z2,……zm},已知 P(X,Z) 或 P(X | Z),求後驗分佈 P(Z | X)。由於後驗分佈有時很難獲得解析解,在受限制函數空間中搜索與後驗分佈函數近似的函數,這裡需要一個函數相似性的度量(泛函):

那麼如何獲得近似解 q(Z) 呢?

Step 1: 通過調整 q(Z), 最小化 q(Z) 與 後驗 p(Z|X) 的 KL 散度 KL(q||p)

Step 2: 將最小優化散度 KL(q||p)的問題轉化為最大化 L(q)

科普|贝叶斯概率模型一览

*MinKL(q||p) 等價於 MaxL(q)

考慮概率分佈 q(Z)是受限制的類別,我們的⽬標是充分限制 q(Z)可以取得的概率分佈的類別範圍,使得這個範圍中的所有概率分佈都是可以處理的概率分佈。同時還要使得這個範圍充分⼤、充分靈活,從⽽它能夠提供對真實後驗概率分佈的⼀個⾜夠好的近似。

Step 3: 利用平均場理論限制函數空間,將 q(Z)簡化為互不相關的幾個組:

Step 4: 將分組簡化後的q(Z)代入以上公式,將其它組視為常來,輪流優化

科普|贝叶斯概率模型一览

所有模型的變分推理,都是在交替計算該公式。該公式與模型無關,當對 P(X,Z)賦予具體形式,便可算出 q 的更新公式:

科普|贝叶斯概率模型一览

在對 q(Z)分組的原則及 q(Z)函數族的選取原則有兩個小建議:

1.在概率模型中同一層次的隱變量分在一組,在算積分的時候可以使其它層次的對應的條件概率因為不含有改組內的變量而被當做常量,不需計算。

2.q(Z) 的函數族選取條件分佈的共軛分佈族,在計算期望的積分時需要建條件分佈與 q(z)相乘,選取條件分佈的共軛分佈族保證相乘完的形式還是原來的簡單形式。

概率反向傳播 Probabilistic Backpropagation

概率反向傳播是貝葉斯神經網絡的更新方式,已知:

科普|贝叶斯概率模型一览

求後驗分佈 q(ω,Υ,λ)。

Step 1:利用 KL 逼近 w 的後驗

w 的後驗分佈可以寫成

,其中 f(w)是與 w 相關的似然,設待求後驗為高斯分佈

在算關於 w 的後驗過程中,不含有 w 的函數部分都可以看成常數忽略掉。因為 w 與另外兩個方差 γ 和 λ 在不同層次,所以 f(w)中不含有這兩個參數。

*這裡雖然是搜索最優函數,但因為限制了函數空間的形式,所以其實是在搜索最優參數 m 和 v

通過最小化 KL 散度 KL(q^new||s),可以得到直接得到如下的最優值:

科普|贝叶斯概率模型一览

一般來講這裡需使用變分推理,是因為這裡的 Z 比較難求(需要求這個積分):

但是這裡通過 Z 的近似形式來替代,它約等於最後一層神經元響應的分佈:

Step 2:前向傳播,得到 Z^L 的均值和方差

前向過程本質上是一個概率分佈的傳播過程,但是由於都是高斯分佈,所以可以簡化成分佈參數的傳播過程。

科普|贝叶斯概率模型一览

Step 3:

利用該公式反向傳播,更新參數

科普|贝叶斯概率模型一览

最後 Z 將變成含有各層參數的高斯函數,從而可以進行反向梯度計算並更新各層分佈的參數,這樣就解決了貝葉斯神經網絡的模型更新問題。

本文主要介紹了機器學習中的概率模型及貝葉斯理論在概率模型中的應用,這也是人工智能目前比較活躍的方向,相信會有越來越多的工作在這方面進行探索,期待新的發展。我們也會把貝葉斯神經網絡應用於實際的業務中,後續的文章中將會與各位交流一些實踐經驗。


分享到:


相關文章: