--- disqus: ierosodin --- # Conjugate prior and posterior > Organization contact [name= [ierosodin](ierosodin@gmail.com)] ###### tags: `machine learning` `學習筆記` ==[Back to Catalog](https://hackmd.io/@ierosodin/Machine_Learning)== ## Frequentist and bayesian 我們再次提到 frequentist 與 bayesian,已經知道, frequentist 只看過去的數據,來決定一切,因此一個機率很低的事件,可能因為過去沒有發生過,而被認為是不可能發生。但就 bayesian 而言,又可能因為一個太差的 prior,導致結果離現實差距太大。 回想前面的 naive baye's classifier,我們只考慮了離散的情況,這樣同樣會有沒發生過而被認為不可能發生的問題,解決的一種方法,即為給予一個 distribution 的 prior,這樣機率就不只是離散的了。 然而當有了 distribution 後,我們必須計算 distribution 上每個 ${P(\theta)}$ 的 likelihood,最後還要做 normalize 得到 posterior,這樣的運算太麻煩且太大,因此我們希望找到一個分佈,是 prior 與 posterior 的形式相同的,可以直接由 prior 加上新的 data 得到 posterior,即稱為 conjugate。 ## Gamma function 在介紹 conjugate 前,必須先認識 gamma function,定義: ${\Gamma(x)\ =\ \int_0^\infty p^{x-1}e^{-p}dp}$ 性質: 1. ${\Gamma(x)\ =\ (x-1)\Gamma(x-1)}$ * proof: * ${\int_o^\infty p^{x-1}e^{-p}dp\ =\ -p^{x-1}e^{-p}|_0^\infty\ +\ (x-1)\int_0^\infty p^{x-2}e^{-p}dp\ =\ (x-1)\Gamma(x-1)}$ 2. ${\int_0^\infty p^{a-1}(1-p)^{b-1}dp\ =\ \frac{\Gamma(a)\Gamma(b)}{\Gamma(a+b)}}$ * proof: * ${\because \int_0^\infty \beta(p,a,b)dp\ =\ 1 \\ \Rightarrow\ \int_0^\infty p^{a-1}(1-p)^{b-1}\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}dp\ =\ \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}\int_0^\infty p^{a-1}(1-p)^{b-1}dp\ =\ 1 \\ \Rightarrow \int_0^\infty p^{a-1}(1-p)^{b-1}dp\ =\ \frac{\Gamma(a)\Gamma(b)}{\Gamma(a+b)}}$ * 定義 ${\frac{\Gamma(a)\Gamma(b)}{\Gamma(a+b)}}$ 為 beta function * ${\beta(p,a,b)}$ 為一種機率分佈 (定義) 3. ${\Gamma(1)\ =\ 1}$ ## Beta distribution 這裡要介紹的 conjugate 方法為 beta distribution,定義: ${\beta(p|a,b)\ =\ \int_0^\infty p^{a-1}(1-p)^{b-1}\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}dx}$ ### mean and variance ${\begin{split} E(x)\ &=\ \int_0^\infty x\cdot x^{a-1}((1-x)^{b-1}\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}dx \\ &=\ \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}\int_0^\infty x^{(a+1)-1}(1-x)^{b-1}dx \\ &=\ \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \frac{\Gamma(a+1)\Gamma(b)}{\Gamma(a+1+b)} \\ &=\ \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \frac{a\Gamma(a)\Gamma(b)}{(a+b)\Gamma(a+b)} \\ &=\ \frac{a}{a+b} \end{split}}$ ${\begin{split} &Var(x)\ =\ E(x^2)\ -\ E^2(x) \\ &\begin{split} E(x^2)\ &=\ \int_0^\infty x^2\cdot x^{a-1}((1-x)^{b-1}\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}dx \\ &=\ \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}\int_0^\infty x^{(a+2)-1}(1-x)^{b-1}dx \\ &=\ \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \frac{\Gamma(a+2)\Gamma(b)}{\Gamma(a+1+b)} \\ &=\ \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \frac{(a+1)a\Gamma(a)\Gamma(b)}{(a+b+1)(a+b)\Gamma(a+b)} \\ &=\ \frac{a(a+1)}{(a+b)(a+b+1)} \end{split} \\ &\begin{split} Var(x)\ &=\ E(x^2)\ -\ E^2(x) \\ &=\ \frac{a(a+1)}{(a+b)(a+b+1)}\ -\ \frac{a^2}{(a+b)^2} \\ &=\ \frac{a(a+1)(a+b)-a^2(a+b+1)}{(a+b)^2(a+b+1)} \\ &=\ \frac{a((a^2+ab+a+b)-(a^2+ab+a))}{(a+b)^2(a+b+1)} \\ &=\ \frac{ab}{(a+b)^2(a+b+1)} \end{split} \end{split}}$ ## Conjugate 我們現在假設 prior 為一個 beta distribution,因此其分佈為: ${p^{a-1}(1-p)^{b-1}\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}}$ 其中,${a}$ 與 ${b}$ 分別為先前 knowledge 中,成功與失敗的次數(以擲硬幣作為例子),而 ${p}$ 為成功的機率。 而 likelihood 則是要用來更新 prior 的 data 分佈,為一個 binomial distribution: ${\left(\begin{array}{c} N \\ m\\ \end{array}\right) p^m(1-p)^{(N-m)}}$ 其中,N 為試驗的次數,m 為成功的次數。 由 bayes therem 我們可以得出 posterior: ${P(\theta|event)\ =\ \frac{likelihood*prior}{marginal}\ =\ \frac{\left(\begin{array}{c} N \\ m\\ \end{array}\right) p^m(1-p)^{(N-m)} p^{a-1}(1-p)^{b-1}\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}} {\int_0^1 \left(\begin{array}{c} N \\ m\\ \end{array}\right) \theta^m(1-\theta)^{(N-m)} \theta^{a-1}(1-\theta)^{b-1}\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}d\theta}\ =\ \frac{p^{m+a-1}(1-p)^{N-m+b-1}}{\int_0^1 \theta^{m+a-1}(1-\theta)^{N-m+b-1}d\theta}}$ 又由 ${\begin{split} \int_0^1\beta(\theta|m+a,N-m+b)d\theta\ &=\ \int_0^1 \theta^{m+a-1}(1-\theta)^{N-m+b-1}\frac{\Gamma(a+N+b)}{\Gamma(m+a)\Gamma(N-m+b)}d\theta \\ &=\ \frac{\Gamma(a+N+b)}{\Gamma(m+a)\Gamma(N-m+b)}\int_0^1 \theta^{m+a-1}(1-\theta)^{N-m+b-1}\ =\ 1 \\ &\Rightarrow\ \int_0^1 \theta^{m+a-1}(1-\theta)^{N-m+b-1}\ =\ \frac{\Gamma(m+a)\Gamma(N-m+b)}{\Gamma(a+N+b)} \end{split}}$ ${\begin{split} \therefore P(\theta|event)\ &=\ \frac{likelihood*prior}{marginal}\ =\ \frac{p^{m+a-1}(1-p)^{N-m+b-1}}{\int_0^1 \theta^{m+a-1}(1-\theta)^{N-m+b-1}d\theta} \\ &=\ \frac{p^{m+a-1}(1-p)^{N-m+b-1}}{\frac{\Gamma(m+a)\Gamma(N-m+b)}{\Gamma(a+N+b)}} \\ &=\ \frac{\Gamma(a+N+b)}{\Gamma(m+a)\Gamma(N-m+b)}p^{m+a-1}(1-p)^{N-m+b-1} \\ &=\ \beta(p|a+m,b+N-m) \end{split}}$ 由結果我們可以發現,當有新的一筆資料要來更新 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\ =\ \left(\begin{array}{c} N \\ m_1 m_2 m_3 ... m_k\\ \end{array}\right) \prod_i p_i^{m_i}}$ 則 dirichlet distribution 為:${Dir(a)\ =\ \frac{\Gamma(a_1+a_2+a_3+...+a_k) }{\Gamma(a_1)\Gamma(a_2)\Gamma(a_3)...\Gamma(a_k)}\prod_i p_i^{a_k-1}}$