概率統計16——均勻分布、先驗與后驗


 

相關閱讀:

最大似然估計(概率10)

重要公式(概率4)

概率統計13——二項分布與多項分布

貝葉斯決策理論(1)基礎知識 | 數據來自於一個不完全清楚的過程……

均勻分布

  簡單來說,均勻分布是指事件的結果是等可能的。擲骰子的結果就是一個典型的均勻分布,每次的結果是6個離散型數據,它們的發生是等可能的,都是1/6。均勻分布也包括連續形態,比如一份外賣的配送時間是10~20分鍾,如果我點了一份外賣,那么配送員會在接單后的10~20分鍾內的任意時間送到,每個時間點送到的概率都是等可能的。

  很多時候,均勻分布是源於我們對事件的無知,比如面對中途踏上公交車的陌生人,我們會判斷他在之后任意一站下車的可能性均相等。正是由於不認識這個人,也不知道他的目的地是哪里,因此只好認為在每一站下車的概率是等可能的。如果上車的是一個孕婦,並且接下來公交車會經過醫院,那么她很可能是去醫院做檢查,她在醫院附近下車的概率會遠大於其他地方。雖然不認識這名孕婦,但孕婦的屬性為我們提供了額外的信息,讓我們稍稍變的“有知”,從而打破了分布的均勻性。

  根據“均勻”的概念,如果隨機變量X在[a, b]區間內服從均勻分布,則它的密度函數是:

  這里的區間是(a,b)還是[a,b]沒什么太大關系。

  均勻分布記作X~U(a, b),當a ≤ x ≤ b時,分布函數是:

  由此可知X~U(a, b)在隨機變量是任意取值時的分布函數:

  假設某個外賣配送員送單的速度在10~15分鍾之間,那么這個配送員接單后在13分鍾之內送到的概率是多少?

  我們同樣對這名配送員缺乏了解,也不知道他的具體行進路線,因此認為他在10~15分鍾之間送到的概率是等可能的,每個時間點送到的概率都是dx/(15-10),因此在13分鍾內送到的概率是:

  其實也沒必要每次都用積分,直接用概率分布的公式就可以了:

先驗與后驗

  某個城市有10萬人,其中有一個是機器人偽裝的。現在有關部門提供了一台檢測儀,當檢測儀認為被檢測對象是機器人時就會發出刺耳的警報。但這台檢測儀並不完美,仍有1%的錯誤率,也就是說有1%的概率把一個正常人判斷成機器人,也有1%的概率把機器人誤判為正常人。對於全城的任何一個居民來說,如果檢測儀將他判斷為機器人,那么他真是機器人的概率是多大?

  我們用隨機變量θ表示一個居民的真實身份,X表示檢測結果(有警報和正常兩種結果),上面的問題可以用以下概率表示:

  我們根據上面的式子來解釋先驗概率和后驗概率。

  先驗概率(prior probability),是指根據以往經驗和分析得到的概率,與試驗結果無關。這里的“以往經驗”可能是一批歷史數據的統計,也可能是主觀的預估。值得注意的是,主觀預估絕非瞎猜,實際上主觀預估也是一種不精確的統計分析。比如我們估計一個外賣配送員的交通工具是電瓶車,雖然是一個主觀的猜測,但准確率相當高,畢竟在方圓五公里之內,電瓶車是最靈活快捷的交通工具。上面的P(θ=機器人)是一個先驗概率,它是事先知道的,不管有沒有檢測儀,檢測結果怎么樣,我們都事先認定這個城市中有一個機器人偽裝成人類的概率是10萬分之一,至於是怎么知道的就是另外一回事了,可能是接到群眾的舉報,也可能是有關部門提供的消息。

  10萬人中有一個是機器人偽裝的,先驗概率是P(θ= 機器人) = 1/100000。是否有可能有另一個先驗概率,比如10萬人中有1/100是機器人偽裝的?當然可以。按照這個邏輯,先驗概率可以是0~1之間的任何數值。

  這里的參數θ代表居民的身份,有兩個取值,機器人和人類,P(θ)表示θ是某個取值的概率,既然是概率,那么θ也必然服從某個分布,這個分布就稱為先驗分布。

  簡單而言,先驗概率是對隨機變量θ的取值的預估,先驗分布是關於先驗概率的概率分布(即P(θ)中θ取值的分布)。如果θ的取值是連續型的,它的先驗分布就是連續型分布。

 

  后驗概率(posterior probability),是在相關結果或者背景給定並納入考慮之后的條件概率。比如一個熊孩子持續三分鍾沒有動靜,以此為前提,這個熊孩子在“干大事”的概率就是一個后驗分布,表示為P(干大事|三分鍾沒動靜)。對P(θ=機器人|X=警報)來說,檢測結果已經有了,是X=警報,在此基礎上求接受檢測的居民是否真是機器人的概率,因此這是一個后驗概率。

  

  似然函數(likelihood function)用來描述已知隨機變量輸出結果時,未知參數的可能取值。關於似然的概念前面已經詳細介紹過,可參考 最大似然估計(概率10)

  

  最后看看問題的答案。貝葉斯公式告訴我們:

校正先驗

  假設有兩枚硬幣C1和C2,它們投出正面的概率分別是0.6和0.3。現在取其中一枚連投10次,得到的結果是前5次正面朝上,后5次反面朝上,試驗中選擇的最可能是哪枚硬幣?

  

  我們把參數θ看成硬幣的選擇,只有兩枚硬幣,也許在現實中它們長的不一樣,大多數人會選擇更漂亮的C1,但是在題目中,實驗前我們對兩枚硬幣都缺乏了解,基於“無知”的原則,認為選擇C1和C2的概率是等可能的,即P(θ=C1)= P(θ=C2)=0.5。有了先驗概率后,可以代入貝葉斯公式計算后驗概率:

  這里data是10次投硬幣的結果,無論選擇那枚硬幣,投擲的結果都符合伯努利分布:

  P(data)則需要借助全概率公式:

  現在可以分別計算實驗前選擇C1硬幣或C2硬幣的概率:

  這個數字符合直覺。對於分類來說,在比較C1和C2的后驗概率時,二者的分母都是P(data),也就是說P(data)並沒有起到實際作用,因此對於分類器來說無需計算P(data):

  

  貝葉斯公式告訴我們,先驗概率是在實驗前對原因的預估,后驗概率是在試驗后根據結果反推原因,或者說是根據結果對最初預估的修正。既然如此,一次修正得到的並不一定是最佳結果,可以嘗試多次修正,前一個樣本點的后驗會被下一次估計當作先驗。我們根據這種思路重新計算一下C1的后驗概率。

  一共拋了10次硬幣,用{x1, x2, …, x10}代表每次拋硬幣的結果,x1~x5是正面,x6~x10是反面,仍然在實驗前認為選擇C1和C2的概率是等可能的,下面是已知信息:

  與之前不同,這次我們每次只看一枚硬幣,以此來計算θ的后驗概率:

  后驗信息代表一次歷史經驗,比試驗前的“無知”稍強一些。接下來,我們用后驗概率作為下一次迭代的先驗概率:

  繼續迭代,直到x10為止,將最終得到的先驗概率就是最終結果。

p_1_c1, p_0_c1 = 0.6, 0.4  # P(1|c1) = 0.6, P(0|c1) = 0.4, 1和0分別代表正反
p_1_c2, p_0_c2 = 0.3, 0.7  # P(1|c2) = 0.3, P(0|c2) = 0.7


def posterior_theta(p_c1, p_c2, x):
    '''
    計算θ的后驗概率
    :param p_c1: c1的先驗概率P(C1)
    :param p_c2: c2的先驗概率P(C2)
    :param x: 硬幣的結果
    :return: 后驗概率P(C1|x)和P(C2|x)
    '''
    p_x_c1 = p_1_c1 if x == 1 else p_0_c1
    p_x_c2 = p_1_c2 if x == 1 else p_0_c2
    # 計算后驗概率P(C1|x)
    p_c1_x = p_c1 * p_x_c1 / (p_x_c1 * p_c1 + p_x_c2 * p_c2)
    p_c2_x = 1 - p_c1_x
    return p_c1_x, p_c2_x


data = [1, 1, 1, 1, 1, 0, 0, 0, 0, 0]  # 5正5反
p_c1, p_c2 = 0.5, 0.5  # 初始先驗P(C1) = P(C2) = 0.5
for x in data:
    # 用后驗作為下一個樣本點的先驗
    p_c1, p_c2 = posterior_theta(p_c1, p_c2, x)
    print('P(C1)={0}, P(C2)={1}'.format(p_c1, p_c2))

  P(C1)=0.6666666666666667, P(C2)=0.33333333333333326

  P(C1)=0.8, P(C2)=0.19999999999999996

  P(C1)=0.888888888888889, P(C2)=0.11111111111111105

  P(C1)=0.9411764705882353, P(C2)=0.05882352941176472

  P(C1)=0.9696969696969696, P(C2)=0.030303030303030387

  P(C1)=0.948148148148148, P(C2)=0.05185185185185204

  P(C1)=0.9126559714795006, P(C2)=0.08734402852049938

  P(C1)=0.8565453785027182, P(C2)=0.14345462149728183

  P(C1)=0.7733408854904177, P(C2)=0.22665911450958232

  P(C1)=0.6609783156833076, P(C2)=0.33902168431669244

  上面的迭代過程是一個將樣本點逐步增加到學習器的過程,前一個樣本點的后驗會被下一次估計當作先驗。可以說,貝葉斯學習是在逐步地更新先驗,逐步通過新樣本對原有的分布進行修正。

  

  在實際應用中當然不會每次僅僅增加一個樣本點。下面的例子更好地說明了這個逐步更新先驗的過程。

  為了提高產品的質量,公司經理考慮增加投資來改進生產設備,預計投資90萬元,但從投資效果來看,兩個顧問給出了不同的預言:

  θ1顧問:改進生產設備后,高質量產品可占90%

  θ2顧問:改進生產設備后,高質量產品可占70%

  根據經理的以往經驗,兩個顧問的靠譜率是P(θ1)=0.4, P(θ2)=0.6。這兩個概率是先驗概率,是經理的主觀判斷。似乎θ2更靠譜一些,但是這次,θ2顧問意見太保守了,為了得到更准確的信息,經理進行了小規模的試驗,結果第一批制作的5個產品全是令人興奮的高質量產品。

  用D1表示本次實驗的5個產品,可以得到下面的結論:

  在第一次試驗后,經理針對本次實驗對兩個顧問的靠譜率做出了修正,認為P(θ1)=0.700, P(θ2)=0.300,這個概率更符合本次實驗的結果,或者說試驗結果改變了經理的主觀看法。

  當然5個產品說明不了太大問題,於是經理又試制了10個產品(用D2表示),結果有9個是高質量的,根據這個結果繼續對顧問的靠譜率進行修正:

  兩個顧問的靠譜率在D2中再次得到修正。

  


  出處:微信公眾號 "我是8位的"

  本文以學習、研究和分享為主,如需轉載,請聯系本人,標明作者和出處,非商業用途! 

  掃描二維碼關注作者公眾號“我是8位的”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM