---
# System prepended metadata

title: Conjugate prior and posterior
tags: [machine learning, 學習筆記]

---

---
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}}$