最大似然估計詳解
一、引入
極大似然估計,我們也把它叫做最大似然估計(Maximum Likelihood Estimation),英文簡稱MLE。它是機器學習中常用的一種參數估計方法。它提供了一種給定觀測數據來評估模型參數的方法。也就是模型已知,參數未定。
在我們正式講解極大似然估計之前,我們先簡單回顧以下兩個概念:
- 概率密度函數(Probability Density function),英文簡稱pdf
- 似然函數(Likelyhood function)
1.1 概率密度函數
連續型隨機變數的概率密度函數(pdf)是一個描述隨機變數在某個確定的取值點附近的可能性的函數(也就是某個隨機變數值的概率值,注意這是某個具體隨機變數值的概率,不是一個區間的概率)。給個最簡單的概率密度函數的例子,均勻分布密度函數。
對於一個取值在區間[a,b]上的均勻分布函數\(I_{[a,b]}\),它的概率密度函數為:
\]
其影像為:
其中橫軸為隨機變數的取值,縱軸為概率密度函數的值。
也就是說,當\(x\)不在區間\([a,b]\)上的時候,函數值為0,在區間\([a,b]\)上的時候,函數值等於\(\frac{1}{b-a}\),函數值即當隨機變數\(X=a\)的概率值。這個函數雖然不是完全連續的函數,但是它可以積分。而隨機變數的取值落在某個區域內的概率為概率密度函數在這個區域上的積分。
Tips:
- 當概率密度函數存在的時候,累計分布函數是概率密度函數的積分。
- 對於離散型隨機變數,我們把它的密度函數稱為概率品質密度函數
- 對概率密度函數作類似福利葉變換可以得到特徵函數。特徵函數與概率密度函數有一對一的關係。因此,知道一個分布的特徵函數就等同於知道一個分布的概率密度函數。(這裡就是提一嘴,本文所講的內容與特徵函數關聯不大,如果不懂可以暫時忽略。)
1.2 似然函數
官方一點解釋似然函數是,它是一種關於統計模型中的參數的函數,表示模型參數的似然性(likelyhood)。 相信看著這句話的同志們都挺懵的,這是在說什麼鬼話,啥叫關於參數的函數??啥叫似然性??
咱們這就來解釋:
「似然性」它 與 (“或然性”或 「概率性」或」概率「)意思相近,都是指事件發生的可能性。但是 似然性 和 概率 在統計學中還是有明確的區分。
- 概率:在參數已知的情況下,預測觀測結果;
- 似然性:在觀測結果已知的情況下,對參數進行估值和猜測。
按照上面的說法,其實我們很容易聯想到的就是條件概率。我們也可以將似然函數理解為條件概率的逆反。
在已知某個參數B時,事情A會發生的概率為
\]
又貝葉斯定理可得
\]
我們可以反過來構造來表示似然性的方法:已知有事情A發生,運用似然函數 \(L(B|A)\),我們估計參數B的不同值的可能性。形式上,似然函數也是一種條件概率函數,但是我們關注的變數改變了
\]
注意: 這裡並不要求似然函數滿足歸一性:即
\]
(在1.3的例子中會作出解釋)
一個似然函數乘以一個正的常數之後仍然是似然函數。對所有的\(\alpha>0\),都可以有似然函數:
\]
其中,\(\alpha = \frac{P(B)}{P(A)}\)
1.3 似然函數的舉例
以經典的投擲硬幣試驗為例子。已知擲出一枚硬幣,正面朝上和反面朝上的概率相同,正面向上概率為\(p_{H}\)。比如說,連續扔兩次都是正面向上的概率是0.25,如果我們用條件概率表示就是:
  但是,一般來說我們更關心的是在**已知一系列投擲結果的同時,關於單獨投擲一次硬幣時正面向上的概率(即$p_{H}$)的值**。
實際上我們無法從一系列的結果中來直接逆推真實的值$p_{H}$,但是我們可以去估計$p_{H}$是某個值的可能性是多少。比如,當這個硬幣正面向上和反面向上的可能性是不同的且$p_{H}$未知,此時如果我們想要求投擲三次硬幣,其中兩次是正面的概率是無法求出的。現在如果我們實際去投擲三次硬幣,結果中兩次正面向上,一次反面向上,我們能否逆推出$p_{H}$呢?如果不能,那麼我們能不能推出$p_{H}=0.5的可能性?或者p_{H}=0.6的可能性是多少$ 再退一步,就算我們不能直接求出這兩個值的可能性,我們能否間接比較出這兩個值的可能性大小?
==順著上面的思路,我們先將上面的例子進行數學化表示::==
比如投擲一次硬幣,正面朝上的概率有$p_{H}$代表,它就是這個例子的**參數**。我們用事件A來代表三次硬幣中兩次是正面的這個事實。使用聯合概率計算可知:
$$P(A|p_{H}) = 3 \times p_{H}^2 \times (1 – p_{H})\]
- 假設 \(p_{H} = 0.5\),則三次投擲中兩次是正面的概率為\(P(A|p_{H}=0.5) = 0.375\)
- 再假設 \(p_{H} = 0.6\),則三次投擲中兩次是正面的概率為\(P(A|p_{H}=0.6) = 0.432\)
顯然,如果\(p_{H}=0.6\)的話,我們看到兩個正面的機會比較高。而根據試驗我們已經知道三次實驗中,確切的是有兩枚硬幣正面向上。雖然我們不知道實際上\(p_{H}\)的值具體是多少,可能是0.62 or 0.58 等等,但是我們至少知道 \(p_{H}\)是0.6的可能性比是0.5的可能性還要高。因此我們合理的估計 \(p_{H}\)比較可能是0.6而不是0.5。
因此,我們進一步理解了似然性的概念:
似然性代表某個參數為特定值的可能性。由上面例子知,在觀察到事件A的情況下,參數\(p_{H}\)在不同值的可能性或似然性為:
\]
所以當我們投擲硬幣三次,其中兩次是正面,則\(p_{H}=0.5\)的似然性是\(L(p_{H}=0.5|A) = P(A|p_{H}=0.5) = 0.375\)。而\(p_{H}=0.6\)的似然性是\(L(p_{H}=0.6|A) = P(A|p_{H}=0.6) = 0.432\)。注意,\(L(p_{H}=0.5|A) = 0.375\)並不是說已知A發生了,則\(p_{H}為0.5\)的概率是0.375。似然性和概率具有不同的意義,上面已經談過。 如果單獨看0.375和0.432數字是沒有意義的。因為似然性並不是概率,也並不是介於0-1之間的,而所有可能的p_{H}的似然性加起來也不是1,所以單獨看0.375或者0.432這個數字是沒有意義的。似然性是把各種可能的\(p_{H}\)值放在一起去比較,來得知哪個\(p_{H}\)值的可能性比較高。而似然函數除了用於計算似然性之外,還用來了解當參數\(p_{H}\)變化時,似然性怎麼變換,由此來尋找最大可能性的\(p_{H}\)的值會是多少。
\]
由該式子可知,我們知道當\(p_{x}= \frac{2}{3}\)時,其值最大(可以通過求導來計算),也就是說最大似然性發生在了\(p_{H}= \frac{2}{3}\)。所以當我們投擲了三次硬幣得到兩次正面,最合理的猜測應該是 \(p_{H} = \frac{2}{3}\)。
因此,我們得出結論:
對同一個似然函數,其所代表的模型中,某項參數值具有多種可能,但如果存在一個參數值,使得概似函數值達到最大的話,那麼這個值就是該項參數最為「合理」的參數值。
二、 最大似然估計
最大似然估計是似然函數最初的應用。上面已經提到,似然函數取得最大值表示相應的參數能夠使得統計模型最為合理。從這樣一個想法出發,最大似然估計的做法是:首先選取似然函數 (一般是概率密度函數或概率品質函數),整理之後求最大值點。實際應用中一般會取似然函數的 對數 作為求最大值的函數,這樣求出的最大值點和直接求最大值點得到的結果是相同的。似然函數的最大值點不一定唯一,也不一定存在。與矩法估計比較,最大似然估計的精確度較高,資訊損失較少,但計算量較大。
2.1 例1:離散分布、離散有限參數空間舉例
2.2 例2:離散分布,連續參數空間舉例
三、最大似然估計的瓶頸
極大似然估計假設連續數據服從正態分布,雖然由於中心極限定理在樣本量足夠大的時候這一假設都能夠滿足,但當樣本量過小且數據不服從正態分布時,估計誤差會比較大。另一個缺點就是當樣本服從的概率分布過於複雜時演算法的計算也非常複雜而且耗時(可以了解一下EM演算法和准極大似然估計,這兩種演算法都是基於簡化計算的思想而發明的)
四、總結
在了解最大似然估計方法後,我們就會對機器學習的經典演算法有更深的理解,樸素貝葉斯、決策樹等等演算法,在進行參數估計是都會使用到最大似然估計。上面有提到最大似然估計的瓶頸,但是它也有自己的優勢:一致性、漸進正態性、泛函不變性。在初期學習時,我們學的是如何套用這種演算法;學到深處,我們要考慮如何通過具體場景、具體問題,選擇合適的演算法來提高性能,這也是融會貫通的一種表現吧。
Reference:
極大似然估計-機器之心
最大似然估計-維基百科
似然函數-維基百科