iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 8
2

昨天我們說到posterior, prior跟likelihood。要找最大的後驗機率(posterior),我們利用貝氏定理拆解,使posterior正比於likelihood與prior,如此一來,我們就可以去計算直觀上看起來沒有頭緒的問題了!

而先驗機率(prior)這個東西,其實是我們使用者來假設的,對,隨便你假設,所以這個很玄,事實上你要假設什麼都行,他可以是用來表現你對於這個問題的理解,或是其他你想的到的因素。反正就是隨便你假設!

可是這樣我們到底要假設什麼才好??那接下來我們就介紹常常會用到的一個先驗,叫做共軛先驗(conjugate prior),也就是如果後驗與先驗是同一個指數族,那就稱那個先驗,共軛先驗。

什麼意思?就是如果後驗跟先驗長得差不多就是了!長得差不多基本上就是說他們的式子,下面都一樣,只有上面的指數次方不一樣而已。

為什麼要大費周章做這種假設呢?因為好算!

假設今天你循序的拿到很多資料,而你希望使用新的資料時,都可以考慮到舊的資料,以這邊的觀點來看,就是說你第一次算出來的後驗,就會是你第二次要用的先驗,以此類推。那萬一你的先驗跟後驗長得不一樣,就會十分難計算,每一次都要重新算一次會變成什麼樣子,很難寫成公式讓電腦去算!可是如果你的先驗跟後驗長得一樣,那每一次都只有指數項在變動而已,就會非常好算了!!這就是為什麼我們要用共軛先驗!

接下來我們就來看幾個常見的機率分佈以及他的共軛先驗應該要是什麼!機率分佈,當然跟隨機變數一樣,就是分成離散與連續,那這邊就分別介紹一個給大家!

離散型 Bernoulli Distribution


這是一個二元分佈,也就是說我們的隨機變數x,不是零就是一,只有兩種可能,那我們是 1 的機率就是 mu,mu就是那個長得很像u,不過左邊尾巴更長的東西。怎麼知道 x = 1的機率是mu呢? 把上面那個式子的 x 用 1 代入就是了!

那麼我們在這個分佈下拿到的資料就是一組 D= {0,1,0,1,1,1,0,0,....}的東西。我們可以把1當成丟銅板得到正面、0當成得到背面,我們要找的就是 mu ,也就是 x = 1 的機率,可以想像成丟銅板得到正面的機率。

也就是找左邊的那個東西,我們馬上就可以利用貝氏定理,改成找右邊兩個!一個是likelihood、一個是prior。

那麼在這個問題中我們的likelehood是什麼呢?

那個你可能沒看過得符號,是連乘的意思,每一筆資料就是一個Xn。那我們現在的mu得到這我們手上這組資料的機率,寫出來就是這個式子!

而我們的likelihood又正比於
N是data總數,m是x = 1的次數,這個叫做Binomial distribution

所以我們應該要用什麼先驗乘上這個likelihood,會得到跟先驗長得差不多的後驗呢??

我們使用Beta Distribution

其中
這個叫做Gamma function,n是正整數的時候定義是長這樣!因為我們這邊的a跟b是幾次,所以就是用這個定義。

接著我們把likelihood跟prior相乘,可以寫乘Bin跟Beta相乘,經過一些簡單的代數運算可以得到(就是把Gamma寫成階乘的形式,再把N取m也寫成階乘形式,做個整理就可以得到了)我們的後驗機率!

發現這樣得到的後驗機率還是一個Beta分佈!可以看到他就是一個很簡單的式子,那這樣之後我們要計算的時候,每一次資料的更新,我們都只需要簡單的改一下式子的參數就好了,就會便得真的很好算!至於a跟b要用多少,則是另一個問題(model selection)!

而從最後的式子可以發現,a跟b的效用在N越來越大之後,會越來越沒用,反過來看我們可以知道先驗機率在data少的時候是可以幫助我們得到一個我們認為比較合理的結果!

例如我丟銅板兩次,兩次都正面,若我們只看likelihood,我們的mu就會是正面百分之百,可是就常理來看我們會覺得這不合理,所以我們加入prior,這樣就不會在資料量少的時候出現這種不合理的情況了!也就是下圖的狀況

(圖片出自:pattern recognition and machine learning p73)

而如果X不是二元的情況,也是類似的想法,用Dirichlet distribution就可以得到類似的結果哦!
這個就留給大家自己推導看看了!

連續型 Gaussian Distribution

高斯分佈也被稱為常態分佈(normal distribution),所以我們以N來簡寫他,他的式子長這樣

那個很像o又多一條的叫做sigma(那個表示全部加起來的sigma就是這個sigma的大寫)我們這邊 sigma的平方 是變異數,mu是平均。

在這邊的資料會得到一組都是實數的值,那我們的likelihood就是

在這邊要讓後驗跟先驗一樣的話,非常簡單的也用高斯分佈就可以了!高斯分佈乘高斯分佈還會是一個高斯分佈,大家有興趣的話也可以自己乘開整理看一下!這邊就不多做推導。

高斯分佈有非常非常多的應用,當然也可以連結到我們已經滿熟悉的Curve fitting問題,明天就讓我們從機率的角度再看一次這個問題,希望大家可以對從機率的角度看機器學習可以更有感覺。


上一篇
機率 - 基礎概念
下一篇
機率 - 再探Curve Fitting
系列文
機器學習你也可以 - 文組帶你手把手實做機器學習聖經30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言