1. 程式人生 > >先驗概率、後驗概率、似然函式與機器學習中概率模型(如邏輯迴歸)的關係理解

先驗概率、後驗概率、似然函式與機器學習中概率模型(如邏輯迴歸)的關係理解

看了好多書籍和部落格,講先驗後驗、貝葉斯公式、兩大學派、概率模型、或是邏輯迴歸,講的一個比一個清楚 ,但是聯絡起來卻理解不能

 

基本概念如下

 

  • 先驗概率:一個事件發生的概率 \[P(y)\]
  • 後驗概率:一個事件在另一個事件發生條件下的條件概率 \[P(y|x)\]
  • 貝葉斯公式:聯合概率公式直接能推匯出來的,代表什麼意義?不放在具體問題中代表不了任何意義 \[P(y|x) = \frac{{P(x|y)P(y)}}{{P(x)}}\]

拿一個實際的例子,如果用陰天預測是否下雨

 

  • 先驗概率:下雨的概率 \[P(rain)\]
  • 後驗概率:已經知道陰天,下雨的概率 \[P(rain|cloudy)\]
  • 貝葉斯公式:表現了後驗概率與先驗概率的關係 \[P(rain|cloudy) = \frac{{P(cloudy|rain)P(rain)}}{{P(cloudy)}}\] 
    • 把注意力集中在分子,公式可以理解為:陰天會下雨的概率(後驗概率),不僅跟下雨那天的確是陰天的概率(條件概率)有關,還跟下雨本身的概率(先驗概率)有關,如果下雨本身概率很低(先驗概率=0),即便下雨一定陰天(條件概率=1),那麼下雨的概率還是會很低(後驗概率=0) \[P(rain|cloudy) = \frac{{P(cloudy|rain)P(rain)}}{{P(cloudy)}}\] 
    • 把注意力集中在分母,公式可以理解為:陰天會下雨的概率(後驗概率),不僅跟下雨並且是陰天的概率有關,還跟不下雨也是陰天的概率有關 \[P(rain|cloudy) = \frac{{P(cloudy|rain)P(rain)}}{{P(cloudy|rain)P(rain) + P)(cloudy|norain)P(norain)}}\]
  • 似然函式:根據貝葉斯公式得出的先驗概率與後驗概率的關係引數 \[{P(cloudy|rain)}\] 由於已經知道是陰天了,忽略P(cloudy) \[P(rain|cloudy) \propto P(cloudy|rain)P(rain)\]

在很多文獻中,將x與y分別描述為“因”和“果”,P(因)即為先驗概率,P(因|果)即已經知道結果求原因的概率為後驗概率,這裡產生了第一個混淆點,在很多現實的例子裡,“因”“果”是什麼?因為陰天所以下雨?還是因為要下雨所以陰天?

 

在上面的例子裡,顯然只能解釋為後者,即這天要下雨是“原因”,陰天是下雨的“結果”,下雨可能引發陰天,也可能引發不陰天。這個理解本身就很彆扭。

 

在英文中,P(y)先驗概率、P(y|x)後驗概率、P(x|y)似然函式、P(x)分別的名稱為:prior、posterior、likelihood、evidence,最後的P(x)連中文名稱都沒有,但我個人認為這個才是理解這些概念的關鍵。

 

先說說概率論兩大學派,頻率學派和貝葉斯學派,頻率學派認為事件出現的概率是一定的,貝葉斯學派認為事件的概率也是存在分佈的

 

  • 頻率學派:認為事件概率是確定的,所以重複實驗解決一切問題,代表演算法是最大似然估計MLE,這裡常舉的例子是硬幣的例子,如果拋10次硬幣,10次正面向上,則頻率學派認為P(拋硬幣正面向上)就為1.0。
  • 貝葉斯學派:認為事件概率本身是有分佈的,所以引入先驗概率(分佈)的概念,代表演算法是最大後驗概率估計MAP,如果認為硬幣很可能是均勻的,如果拋10次硬幣,10次正面向上,則貝葉斯學派認為P(拋硬幣正面向上)是一個介於0.5-1.0之間的數。

 

這裡是怎麼跟上面的先驗概率、後驗概率、似然函式聯絡起來的呢,注意頻率學派和貝葉斯學派都是引數估計的方法,所以要估計的不是正面或者反面向上,而是模型的引數,P(拋硬幣正面向上)其實只是模型引數的一個表現。如果用“因果論”來解釋,模型引數即為因,拋硬幣結果為正面向上即為果。這裡為了避免混淆,許多文獻令模型引數為θ,區別於之前使用的y。

 

  • 先驗概率: \[P(\theta )\] 
  • 後驗概率: \[P(\theta |x)\]
  • 似然函式: \[P(x|\theta )\]

基於這樣的定義,推導兩個學派的估計方法

 

  • 頻率學派:使用最大似然估計,即 \[\mathop {\arg \max }\limits_\theta  (P({x_1},{x_2},...,{x_{10}}|\theta ))\] 像硬幣實驗一樣的獨立重複實驗可化簡為 \[\mathop {\arg \max }\limits_\theta  (\prod\limits_i {P({x_i}|\theta )} )\] 直觀理解也很好理解,如果拋10次硬幣都是正面向上,那麼最可能的估計當然就是這枚硬幣只有可能正面向上(說不定兩面都是正面)

 

  • 貝葉斯學派:使用最大後驗概率估計,即 \[\mathop {\arg \max }\limits_\theta  (P(\theta |{x_1},{x_2},...,{x_{10}})) \propto P({x_1},{x_2},...,{x_{10}}|\theta )P(\theta )\] 正好比最大似然估計多了一項P(θ),即對應先驗分佈,直觀理解即硬幣可能兩面都是正面,也可能一面重一些,也可能是均勻的,各種情況的(先驗)概率不同,各種情況下10次拋硬幣結果都正面朝上的(條件)概率也不同

 

目前還比較順利,但回到剛才陰天下雨的問題,在機器學習任務中,我們一般是希望通過陰天來判斷是否會下雨,那麼模型對應的(表現)就是P(rain|cloudy),這裡用“因”到底應該對應模型引數?還是下雨?

 

接下來再看一個機器學習的典型模型——邏輯迴歸,在《統計學習方法》等文獻中,邏輯迴歸模型如下(x為輸入特徵向量、θ為引數向量、y為預測結果)  \[P(y = 1|x) = \frac{1}{{1 + {e^{ - \theta x}}}}\] \[P(y = 0|x) = 1 - P(y = 1) = \frac{1}{{1 + {e^{\theta x}}}}\] P(y=1|x)與P(y=0|x)是該模型對於後驗概率的估計,可以化簡為 \[P(y|x) = {(\frac{1}{{1 + {e^{ - \theta x}}}})^y}{(1 - \frac{1}{{1 + {e^{ - \theta x}}}})^{1 - y}}\] 然後是用最大似然估計推導邏輯迴歸引數估計的過程 \[\mathop {\max }\limits_\theta  \prod\limits_i {{{(\frac{1}{{1 + {e^{ - \theta {x_i}}}}})}^{{y_i}}}{{(1 - \frac{1}{{1 + {e^{ - \theta {x_i}}}}})}^{1 - {y_i}}}} \] 

這推導表面上順利的不得了,大家都這麼寫,仔細想想不對啊!似然函式是P(a|b)的話,後驗分佈應該是P(b|a),兩個怎麼成了一回事?x、y、θ擠到一塊,哪個是哪個?

 

所以個人認為用“因”“果”描述先驗後驗,不太合適。英文將P(x)描述為evidence,evidence有顯性的意思在裡面,如果用“顯示的”“隱藏的”來描述,看是不是能順暢點。

 

在陰天下雨模型中,我們知道今天是陰天,要推斷的是是否要下雨,陰天是“顯示的”,下雨是“隱藏的”,那麼先驗概率自然是P(下雨),後驗概率則為P(下雨|陰天)。

 

在硬幣模型中,我們知道10次拋硬幣結果是正面,要推斷的是拋硬幣結果模型,拋硬幣結果是“顯”,模型是“隱”,那麼先驗分佈為P(模型),後驗分佈為P(模型|10次拋硬幣結果是正面)。

 

在邏輯迴歸模型中,模型的功能是根據輸入x預測輸出y,自然x是已知的,是“顯”,y是要預測的,是“隱”,所以模型將決策函式假設為後驗概率P(y|x)。但是在引數估計的過程中,輸入的是訓練資料,訓練資料的x、y都是已知的,而模型引數θ才是未知的,所以x、y是“顯”,θ是“隱”,所以此時的似然函式不是P(x|y),也不是P(θ|x),而是P(θ|x,y),這樣,最大似然估計的式子就可以推匯出來了!

 

回頭看邏輯迴歸的模型,其實假設的也不是P(y|x),而是P(y|x,θ)。

 

所以其實預測和引數估計是兩個過程,一個是概率過程,根據模型求概率(資料),一個是統計過程,根據資料(展現出來的概率)求模型,兩個過程正好相反,這裡是第二個混淆點。

 

舉另一個例項,如果需要根據一個人是否咳嗽判斷他是否有肺炎,那麼“是否咳嗽”就是“顯”,“是否有肺炎”就是“隱”;如果需要根據一個人是否有肺炎判斷他平時是否咳嗽,那麼“是否有肺炎”就是“顯”,“是否咳嗽”就是“隱”,這哪有什麼絕對的因果關係嘛。

 

菜雞見解,還請大神多多斧正!

 

 

 

 

 

參考文獻:

https://blog.csdn.net/u011508640/article/details/72815981 

https://www.cnblogs.com/ldphoebe/p/5041813.html

https://blog.csdn.net/zjuPeco/article/details/77165974

https://www.zhihu.com/question/24261751

https://www.zhihu.com/question/27398304