這篇文章中我想由beta分布-二項分布這組常用的共軛分布來介紹Bayesian概念學習(concept learning)。在開始之前,我想先回答兩個問題。
第一,機器學習中為什么要引入概率?
在機器學習中,我們通過已知的信息希望能夠推斷出一些未知的信息,但在推斷過程中有時并不能唯一確定目標值,這時便可以使用概率來體現各個可能目標值的可能性。例如,KNN(K Nearest Neighbors)分類問題中,已知平面中的N個點Xi和它們的類別Yi,希望根據這些信息來推斷平面上其他點X的歸類,做法是觀察離X最近的K個已知的Xi,若這K個Xi中有2個屬于類別A,則我們說X屬于類別A的概率為2/K。通過引入概率,可以避免只給出一個確定值而造成偏頗,同時又由概率值大小告訴我們可能性大小,可以讓我們有進一步判斷的根據。
第二,什么是概念學習?
很多時候我們在學習的時候只有正項的反饋,比如孩子認識花朵的過程,父母會告訴他“XX是一朵花”,而很少會主動告訴他“XX不是一朵花”,再比如我們中學時學習解數學題的方法M時,老師總是教我們“XX題要用方法M來解”,而較少教我們“XX不要用方法M來解”,這里的“花”和“可以用方法M來解的題”就可以看做是一個“概念”。在給定一些屬于這個概念C的一些實例(正項的反饋)時,我們希望由此來估計這個概念到底可以包含哪些實例。
Bayesian概念學習就是解決在僅給出正項實例時的學習問題。
我們可以將概念C理解為包含它所有實例的集合,那么給定的正項實例就可以看做是集合C中的一些元素,我們希望由部分元素來推斷集合C到底是什么。假如已知集合C包含4,8,16這三個元素,那么集合C可能是什么?有很多種可能性,它可能是全體偶數,所有4的倍數,所有整數,也可能是{2,4,8,16},還有可能是{4,5,8,16},或者全體偶數再并上55。但從集合C作為一個概念來講,它是全體偶數、所有4的倍數或是所有整數都有其合理性,但后三種情況不太合理,雖然我們不能說這些情況不可能發生。于是在不考慮已知實例的情況下,集合C可能的選擇是有一個概率分布的,上面舉的前3種情況概率值較高,而后三種情況概率值較低,這個概率分布稱為這個概念C的先驗(prior)。在先驗和已知的數據下,我們進行推斷,這就是Bayesian概念學習。
在一般的問題中,概念C所有可能的選擇可能具有同一個形式,并帶有某個參數c,則概念C的先驗分布就可以看做是參數c的概率分布,二者是同一個意思,下面用beta-binomial這組共軛分布來具體闡釋一下。
假設我們投擲硬幣,出現正面(1)的概率是c,則出現負面(0)的概率是1-c,則每次投擲硬幣的結果服從Bernoulli分布Ber(c)。另外我們有數據D,D包含了N次投擲硬幣得到的結果,即D={X_1,...X_N},而每個Xi都服從Ber(c)。在這個例子中,概念就是投擲這個硬幣可能出現的情況,即在已有數據D的情況下我們希望推斷出以后(下一次或以后多次)投擲硬幣出現的情況,即出現正面的概率,而這是與c的取值是息息相關的。首先,在給定c的情況下,數據發生的概率(稱作likelihood)為
N1、N0為D中出現1和0的次數,N1+N0=N。在已知投擲總次數N的情況下,給出X_1,...,X_N的具體的值和給出N1對估計c的作用是一樣的,這里N1的值叫做c的充分統計量,而N1服從二項分布Bin(N,c),即
在計算有了D之后c的可能性之前,我們希望給c一個先驗,在先驗中表達我們對它的理解。首先c是Bernoulli分布的參數,它的取值范圍是[0,1],為了簡化計算,我們取c的先驗具有和likelihood一樣的形式,一個很自然的選擇就是令它服從某個beta分布Beta(a,b),即
這也就是為什么beta分布是二項分布的共軛分布。
則在給定數據之后對c的估計(稱之為posterior,后驗),由Bayes法則可得
則我們對c的估計有下面幾個常用的值
分別對應于c的極大后驗估計、極大似然估計和后驗均值估計。這幾類估計值的使用范圍都很廣泛,值得一提的是如果我們僅用數據D來估計下一時刻投擲結果X=1的概率為
即X服從Ber(E[c|D])分布,也即,用數據來估計未來值時,和代入后驗均值的效果是相同的,并且積分的過程也會解決一部分overfitting的問題。
這時候會有一個問題,我們在將先驗定為共軛分布時主要為了使后驗分布計算方便,那這樣的設置是否合理呢?一個可行的解決辦法是取先驗分布為共軛分布的線性組合,這至少可以在取均值估計時同時兼顧合理性與運算簡便性。另一組常用的共軛分布Dirichlet-multinomial的情況非常相似,不再贅述。
Reference:
Machine Learning-A Probabilistic Perspective, Kevin P. Murphy, 2012.