1. 程式人生 > >引數估計:最大似然、貝葉斯與最大後驗

引數估計:最大似然、貝葉斯與最大後驗

來源:https://guangchun.wordpress.com/

中國有句話叫“馬後炮”,大體上用在中國象棋和諷刺人兩個地方,第一個很厲害,使對方將帥不得動彈,但這個跟我們今天說的基本沒關係;第二個用途源於第一個,說事情都發生了再採取措施,太遲了。但不可否認,我們的認知就是從錯誤中不斷進步,雖然已經做錯的不可能變得正確,但“來者尤可追”,我們可以根據既往的經驗(資料),來判斷以後應該採取什麼樣的措施。這其實就是有監督機器學習的過程。其中涉及的一個問題就是模型中引數的估計。

為什麼會有引數估計呢?這要源於我們對所研究問題的簡化和假設。我們在看待一個問題的時候,經常會使用一些我們所熟知的經典的模型去簡化問題,就像我們看一個房子,我們想到是不是可以把它看成是方形一樣。如果我們已經知道這個房子是三間平房,那麼大體上我們就可以用長方體去描述它的輪廓。這個畫房子的問題就從無數的可能性中,基於方圓多少裡大家都住平房的經驗,我們可以假設它是長方體,剩下的問題就是確定長寬高這三個引數了,問題被簡化了。再如學生考試的成績,根據既往的經驗,我們可以假設學生的成績是正態分佈的,那麼剩下的問題就是確定分佈的期望和方差。所以,之所以要估計引數,是因為我們希望用較少的引數去描述資料的總體分佈。而可以這樣做的前提是我們對總體分佈的形式是知曉的,只需要估計其中引數的值;否則我們要藉助

非引數的方法了。

引數估計的方法有多種,這裡我們分析三種基於概率的方法,分別是最大似然估計(Maximum Likelihood)、貝葉斯估計(Bayes)和最大後驗估計(Maximum a posteriori)。我們假設我們觀察的變數是,觀察的變數取值(樣本)為,要估計的引數是的分佈函式是(我們用條件概率來顯式地說明這個分佈是依賴於取值的)。實際中,x和都可以是幾個變數的向量,這裡我們不妨認為它們都是標量。

  • 最大似然估計 ML

“似然”的意思就是“事情(即觀察資料)發生的可能性”,最大似然估計就是要找到的一個估計值,使“事情發生的可能性”最大,也就是使最大。一般來說,我們認為多次取樣得到的

是獨立同分布的(iid),這樣

由於一般都比較小,且N一般都比較大,因此連乘容易造成浮點運算下溢,所以通常我們都去最大化對應的對數形式

具體求解釋時,可對右式對求導數,然後令為0,求出值即為

最大似然估計屬於點估計,只能得到待估計引數的一個值。(1) 但是在有的時候我們不僅僅希望知道,我們還希望知道取其它值得概率,即我們希望知道整個在獲得觀察資料後的分佈情況. (2) 最大似然估計僅僅根據(有限的)觀察資料對總體分佈進行估計,在資料量不大的情況下,可能不準確。例如我們要估計人的平均體重,但是抽樣的人都是小孩,這樣我們得到的平均體重就不能反映總體的分佈,而我們應該把“小孩之佔總人口20%”的先驗考慮進去。這時我們可以用貝葉斯方法。

  • 貝葉斯估計 Bayes

使用Bayes公式,我們可以把我們關於的先驗知識以及在觀察資料結合起來,用以確定的後驗概率

其中是累積因子,以保證和為1。要使用Bayes方法,我們需有關於的先驗知識,即不同取值的概率。比如表示下雨,表示不下雨,根據以往的經驗我們大體上有,在這種知識不足的時候,可以假設是均勻分佈的,即取各值的概率相等。

在某個確定的取值下,事件x的概率就是,這是關於的函式,比如一元正態分佈
。與上一節中的一樣,我們認為各次取樣是獨立的,可以分開來寫,這樣我們就可以得到的一個表示式,不同的對應不同的值。

根據獲得的,我們邊可以取使其最大化的那個取值,記為。可能有人已經看出問題來了:我們做了很多額外功,為了求得一個,我們把取其它值的情況也考慮了。當然在有的時候分佈是有用的,但是有的時候我們取並不需要知道,我們只要那個。最大後驗估計這個時候就上場了。

  • 最大後驗估計 MAP

最大後驗估計運用了貝葉斯估計的思想,但是它並不去求解,而是直接獲得。從貝葉斯估計的公式可以看出,是與無關的,要求得使最的的,等價於求解下面的式子:

與最大似然估計中一樣,我們通常最大化對應的對數形式:

這樣,我們便無需去計算,也不需要求得具體的部分,便可以得到想要的

總結一下:三種方法各有千秋,使用於不同的場合。當對先驗概率的估計沒有信心,可以使用最大似然估計(當然也可以使用其它兩種)。貝葉斯估計得到了後驗概率的分佈,最大似然估計適用於只需要知道使後驗概率最大的那個

另外一方面,我們可以感覺到,最大似然估計和Bayes/MAP有很大的不同,原因在於後兩種估計方法利用了先驗知識,如果利用恰當,可以得到更好的結果。其實這也是兩大派別(Frequentists and Bayesians)的一個區別。