標籤:blog http 使用 ar strong 資料 問題 sp log
最大似然估計 :
這個我們大學學習機率一直用到的東西,其實非常牛逼!
什麼是最大似然估計?
問題:給定一組觀察資料還有一個參數待定的模型,如何來估計這個未知參數呢?
觀察資料(x1,y1)......(xn,yn) 待定模型參數為θ,模型為f(x;θ)。這時候可以藉助觀察資料來估計這個θ。這就是最大似然函數估計。
舉個例子:
假設我們有一個袋子,裡面裝著白球和黑球,但是我們不知道他們分別有多少個,這時候需要我們估計每次取出一個球是白球的機率是多少?如何估計呢? 可以通過連續有放回的從袋子裡面取一百次,看看是白球還是黑球。假設取100次裡面 白球佔70次,黑球30次。設抽取是白球的機率為P。 那麼一百次抽取的總機率為 p(x;p)
p(x;p)=p(x1,x2.......x100;θ)=p(x1;θ)*p(x2;θ)........p(x100;θ)
=p70*(1-p)30
那麼這時候我們希望可以使這個機率最大。
求導:logp(x;p)=logp70*(1-p)30 另導數為0則可以求出p=0.7(同理可以用到連續變數裡面,這時候就是機率密度函數的乘積so easy)
是不是很簡單,對!就是這麼簡單!其實最大似然估計就是在給定一組資料和一個待定參數模型,如何確定這個模型未知參數,使得這個確定後的參數模型產生的已知資料機率最大。當然這裡我只是舉了一個只有一個未知參數的估計方法,多個未知參數的做法是一樣的,就是求似然函數求導取最大值。其實並不是所有似然函數都可以求導的,當似然函數無法求導時就需要根據定義求使得L(θ)最大的θ。
EM演算法 :
相信大家對似然函數已經手到擒來了。那麼我們就來看看高深的。
一個機率模型有時候既含有觀察變數,有含有隱變數。如果只有觀察變數那麼我們可以用最大似然法(或者貝葉斯)估計未知參數,但是如果還含有隱變數就不能如此簡單解決了。這時候就需要EM演算法。
大家可能對這種問題不是很明白,也不太明白隱變數是什麼意思。我舉個例子(引用統計學習方法的例子):
有3枚硬幣分別記為A,B,C,並且出現正面機率分別為p ,q ,k.規則如下:先拋硬幣A,如果為正面就選擇B,否則選擇C,然後再將選擇的硬幣(B或者C拋),然後觀測結果。正面為1 反面為0.獨立重複實驗10次結果如下:1,1,1,0,0,0,1,1,1,0。我們並不知道拋A硬幣時為正面還是方面,只知道最後的結果,問如何估計p,q,k的值?
如果我們知道拋的是哪個硬幣就可以使用最大似然估計來估計這些參數,但是我們不知道。因為有p的原因,所以無法估計,這個p就是隱變數
log(Θ)=Σlogp(x;Θ)=Σlogp(x,p;Θ),Θ就是要求的q,k 待定參數,x為觀測資料,因為這個p導致我們無法求解MaxΣlogp(x;Θ)。
還比如說調查 男生 女生身高的問題。身高肯定是服從高斯分布。以往我們可以通過對男生抽樣進而求出高斯分布的參數,女生也是,但是如果我們只能知道某個人的高度,卻不能知道他是男生或者女生(隱含變數),這時候就無法使用似然函數估計了。這個時候就可以使用EM方法。
分為E和M兩步:
E步:
首先通過隨機賦值一個我們要求的參數,然後求出另外一個隱含參數的後驗機率。這是期望計算過程,我們首先通過隨便賦予模型參數的初始值p,q,k,求出各個資料到模型的結果。
M步
用求出來的隱含參數的後驗機率進行對傳統的似然函數估計,對要求參數進行修正。迭代直到前後兩次要求的參數一樣為止
其實可以這麼簡單理解:就是在無監督聚類的時候,我們不知道模型的參數(比如為高斯分布),這時候我們就隨便賦值給模型的待定參數(u和ó)。然後我們就可以計算出各個資料分別屬於那一類。然後我們用這些分類好的資料重新估計u和ó。
參考 : http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html
機器學習---從最大似然估計法到EM演算法