這時咱們會發現各類各樣的參數估計方法,例如極大似然估計、最大後驗估計、貝葉斯推斷、最大熵估計,等等。雖然方法各不相同,但實際上背後的道理大致同樣。想要了解它們之間的聯繫與區別,只要舉一個最簡單的例子就能夠了:觀測到一堆從某個高斯分佈產生的數值,請估該計高斯分佈的參數之一—均值。下圖就是咱們的實驗數據:從一個0均值一維高斯分佈中產生的1000個點,橫座標是數據的序號(1:1000),縱座標是樣本點的值。算法
怎樣的參數是最好的?使得觀測數據出現的機率(即所謂likelihood,似然)最大的參數就是最好的。這個樸素的思想,就是極大似然估計(Maximum Likelihood Estimation, MLE)。對一個獨立同分布(i.d.d)的樣本集來講,整體的似然就是每一個樣本似然的乘積。例如本例中的似然(Likelihood)顯然是:函數
在實際中,由於連乘計算起來比較麻煩,而且機率都很小,不免越乘越接近0最終引起數值bug,所以多對其取log, 獲得log似然( log likelihood):工具
log並不改變似然函數的凸性,所以可令其對u取極值,顯然獲得:post
這就完成了對高斯分佈均值的極大似然估計。值得一提的是,該例的log似然實在是太簡單,因此這個極值能夠直接求導獲得;在更多的狀況下,咱們須要經過梯度降低法等最優化算法來求解。而絕大部分最優化的工具包都默認求函數的最小值,所以別忘了把你的log似然乘以-1變成負log似然(Negative Log Likelihood),在你把它塞給一個最優化工具包以前。優化
MLE簡單又客觀,可是過度的客觀有時會致使過擬合(Over fitting)。在樣本點不多的狀況下,MLE的效果並很差。爲此,貝葉斯學派發明瞭最大後驗估計(Maximum a Posterior)。先看一個最簡單的機率圖模型,藉此來複習一下先驗、似然、後驗:3d
likelihood:對一個待估參數θ來講,它產生觀測樣本x的機率密度函數p(x|θ)叫作x的似然;blog
prior:θ自己是一個未觀測到的變量,既然未觀測到,也就是能夠當作一個隨機變量,假設其服從以α爲參數的機率分佈p(θ|α),叫作θ的先驗;ip
posterior:在觀測到x以後,咱們對θ的認識獲得了加強,將它的機率分佈修正爲p(θ|α,x),這個就叫作θ的後驗;簡單套用一下貝葉斯公式,能夠獲得後驗分佈:get
即先驗和似然的乘積。在本文的例子中,假設咱們預先知道均值u自己服從一個高斯分佈,其均值爲u0,方差爲σ0,那麼觀測到數據樣本以後,u的後驗分佈爲:it
接下來就和MLE徹底同樣了:求一個u使得後驗機率最大便可。方便起見,把u0固定成0,變化σ0作幾組對比實驗:
橫軸是參數估計所用到的樣本數,縱軸是估計值與真實值之間的偏差。σ0取了0.0一、0.一、1等三個值,做爲方差,值越小先驗的強度越大。
可見:
1) MLE在數據較少時不許確
2) 先驗強的MAP(圖中紅線、黃線)能夠在少許數據時就達到較好的結果
3) 先驗弱的MAP(圖中藍線)退化爲MLE
還有一點在圖中看不出來:假如咱們預先知道的關於u的信息是不對的,即選擇了一個強但偏離實際的先驗(例如把u0設置成5, σ0設置成0.01)會怎樣?其實那樣的話結果甚至還不如MLE,這也是貝葉斯學派廣爲詬病的硬傷之一:憑什麼去選擇先驗?大部分時候,咱們選一個方便計算但不包含太多信息的共軛先驗(什麼是共軛先驗?下回分解)。
其實MAP不只讓頻率學派的人不領情,甚至不能令苛刻的貝葉斯學派滿意。
一來,MAP只取後驗分佈的峯值(衆數,mode),而mode每每不具備很強的表明性(特別是在多峯的函數中);
二來,MAP有一個獨特的缺點,對參數形式敏感。若是咱們要估計方差,就會發現,將方差做爲參數獲得的解,並非將標準差做爲參數獲得的解的平方。而MLE可不會這樣。
那麼與其將後驗分佈的峯值拿來湊合,還不如將整個後驗分佈求出來,用一個分佈來描述待估的參數。這就是Inference。
但是咱們剛纔在MAP中不是已經求出了整個後驗分佈麼?是的,這是由於例子太簡單了。在絕大部分超過三個節點的機率圖模型中,都沒法求出精確的後驗分佈,咱們須要藉助於各類各樣的近似手段,因而纔有了拉普拉斯近似、變分推斷、Gibbs採樣…等等等等,內容龐雜,下回再表。
前例中的估計無不創建在這樣一個基礎上:已知分佈的形式,求分佈的參數。可是若是並不知道分佈的形式,還能估計麼?答案是不只能夠,而且靠譜。這就是鼎鼎有名的最大熵法。關於怎麼樣從最大的熵原理推導出最大熵估計,已經有足夠多的介紹,在這裏就不說了。
咱們要說的是,其實最大熵估計也是一種MLE。
首先,咱們不知道樣本的分佈形式,可是它做爲一個機率分佈,必定會知足
1)到處非負
2)和爲1
因而,能夠隨意構造一個這樣的函數:
其中
指數保證了非負,Z保證了歸一化,所以f(x)能夠構形成任意一個關於x的函數--茫茫大海中,總會有一個f(x)使得p(x)接近樣本的真實分佈。
如今咱們來對這個分佈作MLE,其log似然是:
這個log似然對λ來講是凸的,所以使用簡單的優化算法(好比梯度降低),就能夠求得一個最優的λ,把λ代入p(x)的通項公式中,就能夠獲得分佈的具體形式。特別的,當咱們取f(x)=(x,x2)時,所得結果就是一個高斯分佈。從另外一方面來講,估計的結果嚴重依賴於選擇怎樣的f(x),這一點和MAP有些相似。
-這個結果和最大熵估計徹底等價。也就是說,最大熵估計等同於對如下形式的模型的MLE:
而這種形式的模型,被統一稱做「對數線性模型」(log linear model)。它是logistic迴歸、最大熵模型、以及以條件隨機場(CRF)爲表明的各類機率無向圖的的基礎。