一,本文將基於“獨立重復試驗---拋硬幣”來解釋貝葉斯理論中的先驗概率、似然函數和后驗概率的一些基礎知識以及它們之間的關系。
本文是《A First Course of Machine Learning》的第三章的學習筆記,在使用貝葉斯方法構造模型並用它進行預測時,總體思路是:在已知的先驗知識(先驗概率分布)的條件下,根據實際觀察到的數據(現有的訓練樣本)盡可能最大化似然函數,然后,使用邊界似然函數(marginal likelihood)選擇最合適的模型參數,將該模型參數代入后驗概率分布中,使用后驗概率分布的期望進行未知樣本的預測。簡潔地講就是:
- ①先驗知識 就是 我們預先對模型參數的一些了解
- ②在給定的樣本數據下,找一個概率分布函數或者概率密度函數(似然函數),使得這些已發生的事件(得到的樣本數據),出現的概率是最大的(參考:使用最大似然法來求解線性模型(2)-為什么是最大化似然函數?)。
- ③基於先驗概率分布 和 似然函數 計算后驗概率分布,再使用后驗概率分布 來預測未知數據。
其實②很好理解,假設現在已經觀測到了一批樣本數據,我為這批數據選擇了三個概率密度函數(概率分布函數),p1(data),p2(data),p3(data)
p1(data)認為這批數據出現的概率是0.6,p2(data)認為這批數據出現的概率是0.8,p3(data)認為這批數據出現的概率是0.95
由於我們得到了這批樣本數據,表示:這批數據所代表的事件已經實際發生了,顯然p3(data)是最合適的概率分布函數(密度函數),那么使用p3(data)中的參數來計算后驗概率分布,並由此得到的預測模型是最”准確“的。
二,拋硬幣示例
首先為拋硬幣制定一個規則。押一塊錢,拋10次硬幣,出現正面的次數小於等於6次就額外贏得一塊錢,否則就是輸掉押的一塊錢。定義隨機變量X和Y如下:
隨機變量Y表示,出現正面的次數,隨機變量X表示拋10次硬幣輸贏的結果,當Y<=6時,X=1,表示贏了;當Y>6時,X=0表示輸了。
當贏了之后,一塊錢就變成了2塊錢。輸了之后,一塊錢就變成了0,定義函數f(X)表示賭博之后的結果:
正常情況下,根據常識:
- 拋硬幣出現正面的概率等於出現反面的概率等於0.5,即p(正面)=p(反面)=0.5
- 第一次拋硬幣的結果 不會影響 第二次拋硬幣的結果。假如我拋了10次硬幣,即做了10次實驗,這10次實驗的結果是相互獨立的
- 我可以不斷地重復地拋硬幣,因此它是一個可重復的試驗,結合上面第2點,也就是一個獨立可重復試驗。
根據概率論知識:上述拋硬幣實驗服從二項分布B(N,p),N是進行的實驗的次數,p是發生某種結果的概率,在這里p就是出現正面的概率,p=0.5
對於二項分布,所謂二項,即:做一次實驗后,它只會出現二種結果,比如上面的拋硬幣,要么 出現正面,要么出現反面,沒有其他第三種結果。二項分布常用來對獨立可重復實驗進行概率建模。它的概率分布函數如下:一共拋了N次硬幣,Y表示出現硬幣正面的次數,r 表示拋一次硬幣 出現 正面的概率
根據我們的假設,N=10,P=0.5。得到P(y<=6)=0.8281. 這意味着我們有0.8218的概率贏錢。贏到的錢數期望是:E{f(x)}=2*0.8281+0*(1-0.8281)=1.6562
也就是說,在拋硬幣出現正面和反面概率相同(都是0.5)的情況下,根據游戲規則,拋10次硬幣進行一次游戲,押1塊錢,最終能得到1.6562塊錢。基於這個信息,這個游戲是值得玩的。
經過上面的拋硬幣示例分析,哪些信息是先驗信息呢?---最重要的先驗信息就是:拋一次硬幣,出現正面和反面的概率是一樣的,都是0.5
如果我們把 r 也視為一個隨機變量,那么N次獨立重復的拋硬幣實驗的概率分布函數,可寫成如下的條件概率的形式:
現在,換種思路,萬一有人對硬幣做了手腳,使得拋一次硬幣,出現正面的概率 與 出現反面的概率 不一樣呢?
現在,在 r 未知的情況下(有人對硬幣做了手腳了), 我們拿到了一組數據(樣本信息),有個人拋了10次硬幣,其中出現了9次正面,一次反面。我們有多少理由相信,r=0.5?即拋一次硬幣出現正面的概率和出現反面的概率還是相等的?
根據二項概率分布,可表示為:
我們的目標是:在現有的觀測結果下---拋了10次硬幣,其中出現了9次正面,一次反面:
讓P(Y=y|r,N)取最大值。那么 r 究竟等於多少,才能使得P(Y=y|r,N)最大呢?也即 r 究竟取多少,才能使得拋了10次硬幣,其中出現了9次正面,一次反面 發生的概率是最大的?這也是最大化似然函數的原理。
為了更方便地計算最大值,對上面的概率分布取對數log,用L表示,得到下式:
L稱為似然函數。最大化P(Y=y|r,N) 與 最大化 LogP(Y=y|r,N) 等價,因為log函數是單調遞增函數,不影響最大化結果,取對數是為了計算上的方便。
將 L 對 r 求偏導數,並且令偏導數等於0,其中N=10,y=9。解得 r = 0.9
換句話說,拋了10次硬幣,9次正面向上,1次向下。我們有理由相信:拋硬幣出現正面的概率 和 出現反面的概率是不相等的。從觀測的樣本數據結果來看,通過最大化似然函數,我們認為:拋一次硬幣出現正面的概率是0.9,出現反面的概率是0.1。也即 r = 0.9
在 r = 0.9 的條件下,
因此,在這種情況下,我們押1塊錢,最終的結果是只剩下0.0256塊錢了:
E(f(X))=
根據上面的計算結果可知:由於觀察到10次拋硬幣結果,有9次出現了正面。如果按照規則:拋10次硬幣,出現正面的次數小於等於6次,才算我們贏,那這游戲不能玩了。
三,總結
在上面我們解釋了兩個重要的概念:一個是先驗信息,另一個是似然函數。所謂先驗信息,就是在進行一次試驗之前,我們所掌握的一些信息。比如拋硬幣試驗,我們掌握的先驗信息是:
- 硬幣出現正面的概率和出現反面的概率相等,都為0.5
又或者是:
- 出現正面的概率和出現反面的概率不相等,出現正面的概率要大於出現反面的概率
而似然函數則是指,我們現在擁有了一些樣本數據,或者說是進行了一些實驗,觀測到了一些數據。在觀測到的這些數據之后,如果基於這些觀測到的數據,為這些數據尋找一個合適的模型,確定出該模型中的各個參數的值。比如上面的10次拋硬幣試驗,9次正面,1次反面,我們采用的模型是二項分布,模型中的參數 r 等於0.9 最為合適。
下一篇文章,將在先驗信息 和 似然函數 的基礎上,求解 后驗概率分布,並使用后驗概率分布函數的期望 對 未知的數據 進行預測。而這就是貝葉斯推斷的基本原理。
相關文章:
使用最大似然法來求解線性模型(2)-為什么是最大化似然函數?
使用最大似然法來求解線性模型(4)-最大化似然函數背后的數學原理
原文:http://www.cnblogs.com/hapjin/p/6653920.html
參考:《A FIrst Course of machine learning》