Try   HackMD

Conjugate prior and posterior

Organization contact [ierosodin(ierosodin@gmail.com)]

tags: machine learning 學習筆記

Back to Catalog

Frequentist and bayesian

我們再次提到 frequentist 與 bayesian,已經知道, frequentist 只看過去的數據,來決定一切,因此一個機率很低的事件,可能因為過去沒有發生過,而被認為是不可能發生。但就 bayesian 而言,又可能因為一個太差的 prior,導致結果離現實差距太大。

回想前面的 naive baye's classifier,我們只考慮了離散的情況,這樣同樣會有沒發生過而被認為不可能發生的問題,解決的一種方法,即為給予一個 distribution 的 prior,這樣機率就不只是離散的了。

然而當有了 distribution 後,我們必須計算 distribution 上每個

P(θ) 的 likelihood,最後還要做 normalize 得到 posterior,這樣的運算太麻煩且太大,因此我們希望找到一個分佈,是 prior 與 posterior 的形式相同的,可以直接由 prior 加上新的 data 得到 posterior,即稱為 conjugate。

Gamma function

在介紹 conjugate 前,必須先認識 gamma function,定義:

Γ(x) = 0px1epdp

性質:

  1. Γ(x) = (x1)Γ(x1)
    • proof:
    • opx1epdp = px1ep|0 + (x1)0px2epdp = (x1)Γ(x1)
  2. 0pa1(1p)b1dp = Γ(a)Γ(b)Γ(a+b)
    • proof:
    • 0β(p,a,b)dp = 1 0pa1(1p)b1Γ(a+b)Γ(a)Γ(b)dp = Γ(a+b)Γ(a)Γ(b)0pa1(1p)b1dp = 10pa1(1p)b1dp = Γ(a)Γ(b)Γ(a+b)
    • 定義
      Γ(a)Γ(b)Γ(a+b)
      為 beta function
    • β(p,a,b)
      為一種機率分佈 (定義)
  3. Γ(1) = 1

Beta distribution

這裡要介紹的 conjugate 方法為 beta distribution,定義:

β(p|a,b) = 0pa1(1p)b1Γ(a+b)Γ(a)Γ(b)dx

mean and variance

E(x) = 0xxa1((1x)b1Γ(a+b)Γ(a)Γ(b)dx= Γ(a+b)Γ(a)Γ(b)0x(a+1)1(1x)b1dx= Γ(a+b)Γ(a)Γ(b)Γ(a+1)Γ(b)Γ(a+1+b)= Γ(a+b)Γ(a)Γ(b)aΓ(a)Γ(b)(a+b)Γ(a+b)= aa+b

Var(x) = E(x2)  E2(x)E(x2) = 0x2xa1((1x)b1Γ(a+b)Γ(a)Γ(b)dx= Γ(a+b)Γ(a)Γ(b)0x(a+2)1(1x)b1dx= Γ(a+b)Γ(a)Γ(b)Γ(a+2)Γ(b)Γ(a+1+b)= Γ(a+b)Γ(a)Γ(b)(a+1)aΓ(a)Γ(b)(a+b+1)(a+b)Γ(a+b)= a(a+1)(a+b)(a+b+1)Var(x) = E(x2)  E2(x)= a(a+1)(a+b)(a+b+1)  a2(a+b)2= a(a+1)(a+b)a2(a+b+1)(a+b)2(a+b+1)= a((a2+ab+a+b)(a2+ab+a))(a+b)2(a+b+1)= ab(a+b)2(a+b+1)

Conjugate

我們現在假設 prior 為一個 beta distribution,因此其分佈為:

pa1(1p)b1Γ(a+b)Γ(a)Γ(b)

其中,

a
b
分別為先前 knowledge 中,成功與失敗的次數(以擲硬幣作為例子),而
p
為成功的機率。

而 likelihood 則是要用來更新 prior 的 data 分佈,為一個 binomial distribution:

(Nm)pm(1p)(Nm)

其中,N 為試驗的次數,m 為成功的次數。

由 bayes therem 我們可以得出 posterior:

P(θ|event) = likelihoodpriormarginal = (Nm)pm(1p)(Nm)pa1(1p)b1Γ(a+b)Γ(a)Γ(b)01(Nm)θm(1θ)(Nm)θa1(1θ)b1Γ(a+b)Γ(a)Γ(b)dθ = pm+a1(1p)Nm+b101θm+a1(1θ)Nm+b1dθ

又由

01β(θ|m+a,Nm+b)dθ = 01θm+a1(1θ)Nm+b1Γ(a+N+b)Γ(m+a)Γ(Nm+b)dθ= Γ(a+N+b)Γ(m+a)Γ(Nm+b)01θm+a1(1θ)Nm+b1 = 1 01θm+a1(1θ)Nm+b1 = Γ(m+a)Γ(Nm+b)Γ(a+N+b)

P(θ|event) = likelihoodpriormarginal = pm+a1(1p)Nm+b101θm+a1(1θ)Nm+b1dθ= pm+a1(1p)Nm+b1Γ(m+a)Γ(Nm+b)Γ(a+N+b)= Γ(a+N+b)Γ(m+a)Γ(Nm+b)pm+a1(1p)Nm+b1= β(p|a+m,b+Nm)

由結果我們可以發現,當有新的一筆資料要來更新 prior 時,我們只需要知道成功及失敗的次數,即可利用 beta distribution 來得到我們的 posterior。

從這裡我們又可以來探討 frequentist 與 bayesian 的差異,可以發現,成功與失敗分別為 (1,1) 與 (100,100) 時,對於 frequentist 來說,這個硬幣的機率都是 0.5,但是對於 bayesian 來說,當資料量越大,則對於分佈的信心就越高(可以想成高斯分佈的 variance 就越小)

beta distribution 的極值?

Dirichlet distribution

為 multinomial 對應 binomial 的 beta distribution,其中 multinomial:

P = (Nm1m2m3...mk)ipimi

則 dirichlet distribution 為:

Dir(a) = Γ(a1+a2+a3+...+ak)Γ(a1)Γ(a2)Γ(a3)...Γ(ak)ipiak1