極大似然估計的理解與應用


極大似然估計是概率論中一個很常用的估計方法,在機器學習中的邏輯回歸中就是基於它計算的損失函數,因此還是很有必要復習一下它的相關概念的。

背景

先來看看幾個小例子:

  • 獵人師傅和徒弟一同去打獵,遇到一只兔子,師傅和徒弟同時放槍,兔子被擊中一槍,那么是師傅打中的,還是徒弟打中的?
  • 一個袋子中總共有黑白兩種顏色100個球,其中一種顏色90個,隨機取出一個球,發現是黑球。那么是黑色球90個?還是白色球90個?

看着兩個小故事,不知道有沒有發現什么規律...由於師傅的槍法一般都高於徒弟,因此我們猜測兔子是被師傅打中的。隨機抽取一個球,是黑色的,說明黑色抽中的概率最大,因此猜測90個的是黑色球。

他們有一個共同點,就是我們的猜測(估計),都是基於一個理論:概率最大的事件,最可能發生

其實我們生活中無時無刻不在使用這種方法,只是不知道它在數學中是如何確定或者推導的。而在數理統計中,它有一個專業的名詞:

極大似然估計(maximum likelihood estimation, MLE),通俗的說就是 —— 最像估計法(最可能估計法)

數學過程

極大似然原理與數學表示

官方一點描述上面的過程,即:有n個實驗結果,\({ A }_{ i }\)\({ A }_{ n }\),如果\({ A }_{ j }\)發生了,則意味着\({ A }_{ j }\)發生的概率最大。

即,一次試驗就發生的事件,這個事件本身發生概率最大

PS

舉個例子,我們在學校衡量學習成績的標准就是考試成績,高考更是一考定終身的感覺。高考成績的好壞,則可以當做一個學生能力的體現,雖然有的人考試緊張考砸了,有的人超常發揮了,但是從概率上來說,高考的成績基本可以判斷這個人的(學習)能力。基於極大似然的解釋就是,我們高考的成績很大程度上反應了平時的學習能力,因此考得好的(當前發生的事件),可以認為是學習好的(所有事件發生概率最大的)。

再抽象一點,如果事件發生是關於 \(\theta\) 參數的,那么一次事件放生時,樣本為\({x}_{1},...{x}_{k}\),那么\(\hat { \theta } ({x}_{1},...{x}_{k})\)就是\(\theta\)的估計值。當\(\theta=\hat { \theta } ({x}_{1},...{x}_{k})\)時,當前樣本發生的概率最大。

PS

再舉個射箭的例子,在《權力的游戲》中有個場景,老徒利死的時候,屍體放在穿上,需要弓箭手在岸邊發射火箭引燃。但是當時的艾德慕·徒利公爵射了三箭都沒中,布林登·徒利實在看不下去了,通過旗幟判斷風向,一箭命中!
因此箭能否射中靶心,不僅跟弓箭手的瞄准能力有關,還跟外界的風向有關系。假設不考慮人的因素,但看風向...同樣的瞄准和力度,風太大不行、太小也不行....那我們給風的大小設置一個值為\(\theta\)。假設一名弓箭手射出了三只箭,分別是8環、6環、7環(即\({x}_{1}=8\),\({x}_{2}=6\),\({x}_{3}=7\)),當天風的大小為88。那么我們認為只有\(\theta=88\),發生上面事件的概率最大。

極大似然估計法

如果總體X為離散型

假設分布率為\(P=p(x;\theta )\),x是發生的樣本,\(\theta\)是代估計的參數,\(p(x;\theta)\)表示估計參數為\(\theta\)時,發生x的的概率。

那么當我們的樣本值為:\({x}_{1},{x}_{2},...,{x}_{n}\)時,

\[L(\theta )=L({ x }_{ 1 },{ x }_{ 2 },...,{ x }_{ n };\theta )=\prod _{ i=1 }^{ n }{ p({ x }_{ i };\theta ) } \]

其中\(L(\theta)\)成為樣本的似然函數。

假設

\[L({ x }_{ 1 },{ x }_{ 2 },...,{ x }_{ n };\hat { \theta } )=\underset { \theta \in \Theta }{ max } L({ x }_{ 1 },{ x }_{ 2 },...,{ x }_{ n };\theta ) \]

\(\hat{\theta}\) 使得 \(L(\theta)\) 的取值最大,那么 \(\hat {\theta}\)就叫做參數 \(\theta\) 的極大似然估計值。

如果總體X為連續型

基本和上面類似,只是概率密度為\(f(x;\theta)\),替代p。

解法

  1. 構造似然函數\(L(\theta)\)
  2. 取對數:\(lnL(\theta)\)
  3. 求導,計算極值
  4. 解方程,得到\(\theta\)

解釋一下,其他的步驟很好理解,第二步取對數是為什么呢?

因為根據前面你的似然函數公式,是一堆的數字相乘,這種算法求導會非常麻煩,而取對數是一種很方便的手段:

  • 由於ln對數屬於單調遞增函數,因此不會改變極值點
  • 由於對數的計算法則:\(ln{ a }^{ b }=blna\)\(lnab=lna+lnb\) ,求導就很方便了

例子這里就不舉了,感興趣的話,可以看看參考的第二篇里面有好幾個求解極大似然估計的例子。

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM