機率論是人類描述宇宙的最基本的工具之一。它與統計分類尤爲相關,可推導出大量重要結果,提高人類對外部世界的認知。本文做者 Peter Mills 將爲你們扼要介紹機率論與貝葉斯定理,及其在統計分類上的應用,幫助你們改善與簡化分類模型。
從貝葉斯學習入門統計分類,我將會提供將貝葉斯定理和機率論應用於統計分類的若干應用實例。本文還將覆蓋基礎機率論以外的其餘重要知識,好比校準與驗證(calibration and validation)。算法
這篇文章雖然針對初學者,但也須要你具有大學一年級和部分二年級的數學知識,尤爲是線性代數,以及一些單變量和多變量微積分的知識。若是一些等式看起來使人困惑,嘗試將精力集中於解決實際問題的過程。網絡
比起只是閱讀或者瀏覽等式,經過學習一些例子能夠學到更多機率和統計分類的知識。所以,咱們在文章結尾準備了幾個問題供你們學習。app
機率論基礎知識回顧機器學習
扔出一個骰子,有六種可能的結果,每一種結果的機率都是 1/6。函數
i 表明骰子頂面的數字。因爲至少會有一面朝上,則:工具
(1)學習
其中 n=6 表明全部可能結果的總數。測試
如今扔出兩個骰子,獲得 36 對結果中任意一個的聯合機率爲:優化
i 爲第一個骰子的數字,j 爲第二個骰子的數字。編碼
若是忽略第二個骰子的數字,那麼獲得第一個骰子的某個結果(好比 6)的機率爲:
(2)
這就是所謂的先驗機率。
從這裏開始會變得複雜起來,當給定一個骰子上的數字時,另外一個骰子獲得一個肯定數字的機率是多少?在這個例子中,兩個事件是不相關的,所以這個機率值老是 1/6,但該例子中的狀況不是所有。
再考慮 21 點遊戲的例子。當上一張牌值十分(10 或者 JQK)的時候,下一張牌值十分的機率是多少?
假設牌堆上只剩 34 張牌幷包括 7 張十分的牌,如今當前事件發生的機率將依賴於過去事件的結果。若是上一張牌值十分,有 6/34=3/17 的機會獲得值十分的牌,反之,則機率只有 7/34。
因爲上一張牌值十分的機率也是 7/34,那麼兩個事件都發生的聯合機率爲:
P_i 是上一張牌值十分的機率,而 P(j|i) 是下一張牌也值十分的條件機率。
定義了先驗機率、聯合機率和條件機率以後,如今能夠開始介紹貝葉斯定理了。注意這些定義對 i 和 j 是對稱的,所以:
(3)
這是貝葉斯定理的對稱形式。
連續型機率
向連續型機率或者機率密度的推廣是很直觀的。假設有一個連續型隨機變量 x 服從機率分佈 P(x)。那麼 x 位於 x_0 和 x_0+dx 之間的機率爲:
(4)
當隨機變量是連續的時候,加和變成了積分,從而式 (2) 將變成:
P(x,y) 是 x 和 y 的聯合機率,對全部 x 求積分就能夠獲得 y 的邊緣機率。
在統計分類中處理的機率問題都有肯定的形式。一種是標量的和離散的,另外一種是向量的和連續的:
(6)
其中 i 是類別或者類別標籤,而x是屬性或者特徵的向量。
一般基於貝葉斯定理的統計分類是爲了估計聯合機率 P(x,i) 或者條件機率 P(i|x),類別一般經過最大似然的計算得出:
(7)
其中 c 是類別的最大似然估計,即條件機率的最大值。
注意對於給定的測試點,P(x) 都是相等的,所以使用聯合機率或者條件機率會產生相同的結果。特徵空間中的條件機率 P(x|i),對描述每個獨立分類的分佈一樣重要:就是說,去掉全部其它的類別標籤,只留下 i,剩下的分佈就是所須要的。
只須要去掉取極限符號,就能夠用式 (4) 中的機率密度的定義導出一種最古老、最複雜的統計分類方法。在測試點x上取一個半徑,而後數出在那個半徑距離內的訓練樣本在一個類別或者另外一個類別中的數量。
這個方法的問題在於有時其封閉內不包含任何樣本,有時候又特別多。所以,與其固定距離,不如固定樣本數量,而去測量距離。這就是 k 最近鄰分類器(k-nearest-neighbors (KNN) classifier),其中 k 是每一類別中的最近鄰樣本數。
二元分類器
二元分類器比較特別,由於不少例子均可以在特徵空間上畫出一個超平面來分離兩個類別。超平面就是比其嵌入的空間少一個維度的子空間。對於一個二維特徵空間來講,其超平面(邊界)就是一條線,而在三維空間中就是一個平面。
大多數二元分類器的結果不是返回兩個整數,而是一個連續的決策函數。條件機率的差值能夠做爲決策函數的一種方便的形式:
(8)
爲了方便,咱們將類別的值設爲-1 和+1。
惋惜,大多數統計分類器並不能返回一個能很好地估計這個量的決策函數,所以本文將大篇幅介紹校準決策函數的方法,以使其能作出很好的估計。
考慮一對形狀相同的一維高斯函數,兩者寬度 h 相等,指望值分別是-b 和+b。則條件機率的差別定義爲:
通過參數調整後將變成如下形式:
(9)
即一對大小相同的一維高斯函數的決策函數是一個雙曲正切函數。
這個例子看起來可能並不重要,然而,tanh 函數實際上在深度學習中隨處可見。在統計分類中,它一般被用以校準決策函數以更好地估計條件機率。
tanh 決策函數被應用於 LIBSVM 的庫,例如在我本身的機器學習庫 libAGF 中就應用了這個方法。這個例子展現了,條件機率的差別 R,比起反曲函數(sigmoidal),一般更接近類別的決策邊界。
考慮 logistic 迴歸的例子。在 logistic 迴歸中,決策函數爲:
(10)
其中 v 是一個向量,a 是常數。
函數的參數經過最小化代價函數(如最小方差)進行擬合:
(11)
爲了進行擬合或訓練,須要用訓練數據。訓練數據即在特徵空間中與類別的值 {x_i:y_i} 一一映射的有序向量對的集合。其中 yi 取值-1 或+1,即*y*ᵢ ∈ {-1, +1}。
訓練數據表示真實值(「ground truth』』),能夠經過多種方法得到。在一個陸地分類問題中:衛星測量地面多個頻帶發出的電磁輻射,並利用這些數據將地面按類型分類,好比田野、森林、城市、水域等等。
若是能用一個算法利用描述地表類型的不一樣參數輸出陸地表面的輻射值,那麼它就是可建模的。在這個例子中,獲得的訓練數據規模多是極大的,雖然並不須要很精確。
或者訓練數據由真實儀器測量獲得,可是須要手動分類。用一個簡單的 app 展現圖片,每個像素都能用鼠標點擊選取顏色進行分類。
式 (10) 和 (11) 提供了完整統計分類過程的簡要展現。(11) 給出了訓練階段,該階段模型被導出。在這個例子中,模型包含了一個函數參數的小集合,屬於參量統計學的範圍。
與之相反,非參量統計模型如 KNN 在每一次分類中都使用全部的訓練數據。對於 logistic 分類器,擬合是非線性的,這是另外一種常見的機器學習技巧。
非線性優化一般假定問題不存在閉合型解析解,使用迭代的數值計算算法。這個領域很寬泛,這裏咱們就不深刻討論了。大家能夠在問題集中查閱更多信息。
校準
使用連續決策函數進行二元分類的優點在於它容許必定程度上的校準(calibration),考慮如下分類器:
隨着分類閾值 f_0 的改變,咱們能調整分類器的敏感度,這一點在醫療診斷中尤其重要。
注意:在 f=f_0 的狀況下函數並無獲得定義。爲了修正誤差,在數值計算階段出現該問題時應該返回一個隨機值。
假定使用服從於先驗類別分佈 P'(i) 的數據訓練一個分類器,且真實的整體分佈爲 P(i)。若 f 能精確地估計 R,那麼咱們就會發現 f_0 的值(即樣本統計量)能夠精確逼近至整體變量值:
爲了更進一步解釋,下面能夠考慮混淆矩陣(confusion matrix)。混淆矩陣第 i 行、第 j 列的元素告訴咱們:對於全部的測試數據,有多少測試樣本的標註爲第 i 個類別,但分類器返回的預測類別爲 j。
經過將測試樣本按數量分割,混淆矩陣可使用一個聯合機率近似表達出來。考慮以下二元分類器:
其中:
完美的分類器應該返回一個對角矩陣:只有當i=j 時,一個元素纔是非零的。
根據這五個參數,你能夠寫下簡單二元分類器全部可能的技術得分。受試者工做特性(ROC)曲線的受試者經過在分類閾值變更的狀況下繪製兩個此類技術得分的對比圖得出。如下是命中率:
誤報率:
上圖繪製出 (9) 中一維 logistic 分類器的 ROC 曲線,h=1,具有不一樣的 b 值。該分類器被認爲是對條件機率的完美估計量。
一個更復雜的校準實踐能夠轉換決策函數,使之正確展示條件函數的不一樣。考慮如下公式,該公式從前兩部分展現的背景材料中嚴格地導出:
(13)
其中δ是狄拉克δ函數:
一個校準好的(well-calibrated)條件機率估計量應該遵照該公式。
驗證
一旦導出了一個分類,就須要在測試數據上驗證它。測試數據應該和訓練數據不一樣,不然技術得分(skill score)將過度樂觀。這就是所謂的交叉驗證。混淆矩陣能表示一個給定數據集的離散分類器準確率的全部細節,能夠用來組成任何可能的技術得分。在這裏我要介紹兩個在文獻中比較少見的度量方法,經過下面的介紹,你將會明白其重要性。
最基本的技術得分是精確度:
用最大似然分類算法能夠最大化精確度。精確度有其侷限性,能夠經過如下的替代度量下降其侷限性。
第一個是不肯定性係數。這個度量基於香農的信息容量,因此咱們首先須要定義信息熵。對於離散機率,信息熵爲:
該公式告訴咱們在先驗分佈是 P_i 的狀況下,表示事件 i 須要多少信息。這個度量能夠推廣到多變量分佈。其條件熵的表達式爲:
一旦定義了這兩個量,就能夠寫出不肯定性係數(uncertainty coefficient):
(14)
這告訴咱們單個分類結果 j 中有多少信息能使咱們得到真正的類別值 i。這使它成爲優秀的技術得分,由於最低可能的值爲 0,意味着該分類器不提供任何真正類別值的信息;最高可能的值爲 1,意味着該分類器提供了真正類別值的所有信息。
對於二元分類器而言,我還推薦皮爾森相關係數(Pearson correlation coefficient):
(15)
最後,對於返回連續決策函數(continuum decision function)而不是離散的二值分類器,咱們能夠經過計算 ROC 曲線下面積來度量全部可能閾值的平均技術得分(average skill)。
對於完美的判別器而言,ROC 曲線應該在單位正方形中,在 F=0 時,H=1,而且曲線一直停留在 H=1,所以該區域面積爲 1。區域爲 0 的分類器也是完美分類器,可是它的斷定徹底和正確的是相反的,沒有判別值的分類器將在面積爲 0.5 的對角線內。
注意:好比,示例曲線下的面積如何隨着類別之間的距離增長而變大。
多類別分類
咱們剛纔用了大量時間討論二元分類器。假設咱們可使用的惟一一個合適的統計分類器是二元分類器,咱們如何才能將其泛化到超過兩個類別的分類問題中呢?如今咱們使用機率論來推導出答案。
假設咱們經過屢次將類別分紅兩個集合來設計二元分類器集合。編碼矩陣 A 表明分割方式:矩陣第 i 行表明在第 j 列使用-1/+1 來分隔第 i 個二元分類器,也就是說第 j 個類別標籤被轉換成用於訓練的-1/+1 和表明徹底被排除的 0。
多類別問題的條件機率與二元分類器條件機率之間的關係以下:
(16)
從新排列以後,咱們能夠將其轉換成線性系統:
(17)
其中,Ri 表明第 i 個二元分類器的條件機率的差分。
例如,使用「一對多」方法進行多類別分類。這裏,咱們比較每一個類別和其餘類別。編碼矩陣以下(與狄拉克δ函數相似):
(18)
前面假設二元分類器的條件機率獲得正確評估。不然,咱們須要給獲得的多類別機率加上約束條件。忽視第二個參數,條件機率與單變量機率具備一樣的屬性。首先,它們的總和都應該爲 1:
(19)
其次,它們都是正值:
(18) 中的等式約束「歸一化約束」(normalization constraint)最容易執行。一種方法就是引入一個「鬆弛」變量:
(20)
其中 Qp = b 是無約束問題的線性系統,𝜆是鬆弛變量。
使用「一對多」方法進行多類別分類時,咱們依次對比每一個類別和其餘全部類別,咱們只須要作這些。結果是,一旦歸一化約束獲得執行,則全部其餘類別也都會就位,該解只有正值元素。
注意:因爲方程組是由多個因素決定的,因此它須要做爲一個最小二乘問題來解決,並且還有一個注意事項:歸一化必須與最小二乘最小化分開進行。
也就是說,咱們首先用 (17) 構造正規方程(normal equations),而後將其置入 (20)。想了解正規方程,請查看我以後的文章《Mastering Singular Value Decomposition》。
問題
問題清單幫助你學習貝葉斯知識和機率論,以及得出與統計分類有關的有用公式。它們還能夠幫你思考該領域的一些基礎問題。
1. 爲何 (10) 中適合 logistic 分類器的算法必須是非線性的?這有什麼好處呢?
2. 進行在線研究,找出適合 logistic 分類器的非線性優化算法。
3. 導出公式 (12)(這很是難)。你認爲這對於校訂類別分佈的重要性如何?請解釋緣由。
4. 如何計算圖中的 ROC 曲線?填寫公式 (8) 到 (9) 之間缺乏的步驟,並計算 ROC 曲線。
5. 導出公式 (13)。
6. 列出不定係數和相關係數(用於二元分類器)做爲分類技術的度量的優點。(a)當類別標籤從新排列,(b)測試數據中的類別標籤分佈被改變時會發生什麼?以及會對結果產生什麼影響?
7. 從皮爾森相關係數的通式中得出公式 (15)。注意:這可不是可有可無的事。
8. 相關係數一般狀況下不適用於多類別分類問題,爲何?哪一種問題是例外?
9. 從公式 (16) 中得出公式 (17)。提示:完成該推導須要 P(i|x̄) 的什麼屬性?
10. (18) 中的「一對多」編碼矩陣可使用公式 (17) 的簡化版。請解釋緣由。
11. 寫下「一對多」多類別分類器的編碼矩陣。
12. 從網絡上找出一些統計分類數據或者本身建立,如經過對圖像中的像素進行分類建立統計分類數據。經過對每一個類別擬合多維度高斯分佈來執行統計分類。
Σ表明協方差矩陣(covariance matrix),𝜇表明平均值,D 表明數據特徵的維度。不要忘記評估你的結果的準確率,即將數據分爲測試集和訓練集。
結論
但願你們可以學會貝葉斯統計分類。數學模型不是封閉的系統,它們能夠擴展、再利用和從新鏈接。
機率論和貝葉斯定理的應用和咱們可使用它們解決的問題只會被咱們的想象力所限制。這裏,咱們展現了多種方法,使用這些工具幫助複雜的計算學習算法獲取立錐之地。
原文連接:https://blog.statsbot.co/bayesian-learning-for-statistical-classification-f2362d620428
機器之心編譯
參與:劉曉坤、路雪
本文爲機器之心編譯,轉載請聯繫本公衆號得到受權。