1. 程式人生 > >最大似然估計

最大似然估計

概率與統計 lin 是什麽 簡單的 art 不規則 導數 單調性 人類

在討論最大似然估計之前,我們先來解決這樣一個問題:有一枚不規則的硬幣,要計算出它正面朝上的概率。為此,我們做了 10 次實驗,得到這樣的結果:[1, 0, 1, 0, 0, 0, 0, 0, 0, 1](1 代表正面朝上,0 代表反面朝上)。現在,要根據實驗得到的結果來估計正面朝上的概率,即模型的參數 \(p\)\(0 \le p \le 1\))。

當然,對於投硬幣這種問題,由於模型很簡單,我們可以用大量實驗來近似最終結果,不過,如果事件模型復雜一些,做大量的實驗就顯得不太現實。這個時候,用最大似然估計的思想,則可以通過較少的實驗得出一個相對好的結果。本文就從這個簡單的例子出發,對最大似然估計做一次簡單的描述。

基本思想

似然(likelihood),就是可能性的意思。所謂最大似然估計,顧名思義,就是根據最大的可能性對參數進行估計。那麽什麽是最大的可能性呢?對於上面那個投硬幣的例子,扔 10 次硬幣最可能出現的結果會是什麽?最大似然估計認為,最可能出現的結果就是:[1, 0, 1, 0, 0, 0, 0, 0, 0, 1]。有人可能會納悶,這不就是我們實驗的結果嗎?不錯,最大似然估計有點類似於人類「先入為主」的思維。投 10 次硬幣可能出現的情況有那麽多,為什麽偏偏我們的實驗結果就是這樣的呢?這是否意味著,這個結果出現的概率是最大的?

再舉個例子(該例子改編自文末鏈接):兩位獵人 A 和 B 一起外出打獵,一只野兔從兩人面前竄過,兩人同時開槍,結果 A 獵人射殺了野兔。如果要推測誰的槍法準,你是不是會「先入為主」地認為 A 獵人的槍法好?因為射殺兔子的可能情況有那麽多種(可能是 B 射殺,也可能是 A、B 同時射殺),但偏偏發生的卻是 A 射殺了兔子,那我們當然會傾向於認為 A 的槍法好一些。這種「先入為主」的思想,其實就是最大似然法的思想。簡單地說,就是按照最可能的情況來評估事件。當然,這種思想多少存在誤判的情況(比如,A 這次能射殺兔子純屬偶然),但隨著實驗次數增多,結果也會更加準確(如果兩人多次狩獵,B 偶爾得手,但 A 頻頻得手,那 A 槍法好的可能性就更大了)。

回到硬幣那個例子,同樣的道理,我們認為,出現結果 [1, 0, 1, 0, 0, 0, 0, 0, 0, 1] 的可能性比其他結果要大。

最大似然估計的求解方法

我們先把實驗的結果用數學式子表達出來:\(f(x_1, x_2, \cdots , x_{10}; p)=p(1-p)p\cdots p=p^3(1-p)^7\)

現在要用最大似然估計的思想求出這裏的 \(p\)。前面說過了,\(f(x_1, x_2, \cdots , x_{10}; p)\) 出現的可能性是最大的,也就是說,\(p^3(1-p)^7\) 的值要滿足最大。這樣一來,問題就簡單多了,只要根據函數 \(h(p)=p^3(1-p)^7\)

的單調性,找出使得 \(h(p)\) 的值最大的 \(p\) 即可。為了計算的方便,我們往往會引入對數,即 \(\ln {h(p)}=\ln{p^3(1-p)^7}\),這個函數單調性和 \(h(p)\) 是一致的,因此只需要求出 \(\ln{h(p)}\) 的最大值即可。最大值一般來說出現在導數為 0 的時候,因此,令 \(\frac{d \ln{h(p)}}{dp}=\frac{3}{p}-\frac{7}{1-p}=0\),解得 \(p=\frac{3}{10}\)

換句話說,當 \(p=\frac{3}{10}\) 時,\(f(x_1, x_2, \cdots , x_{10}; p)\) 出現的可能性最大。因此,我們估計出來的模型參數就是 \(p=\frac{3}{10}\)。這個結果也符合我們的預期(10 次實驗中有 3 次正面朝上)。事實上,投硬幣這個簡單的模型並沒法完全體現出最大似然估計的威力,而且,可以證明,在這個例子中,用最大似然估計得出來的結果永遠都是 \(\frac{x}{n}\) (其中,n 是實驗次數,x 是正面朝上的次數)。不過,在其他一些更復雜的模型中,用最大似然法來估計參數,往往是最方便有效的。

下面,我們總結一下最大似然估計的一般步驟(改自文末鏈接):

  1. 寫出似然函數;(即上文中的 \(f(x_1, x_2, \cdots , x_{10}; p)\)
  2. 對似然函數取對數;(因為似然函數往往是眾多概率相乘的形式,對數可以方便運算)
  3. 求導數,令導數為 0,得到似然方程;
  4. 解方程,得到參數。

總結

最大似然法是在已知實驗結果的基礎上,估計模型參數的方法。它的基本思想是,假設實驗結果出現的可能性最大,並依此反推出參數。

表述成數學語言如下:

假設我們觀察到一些實驗結果:\(x_1, x_2, \dots, x_n\),要估計出模型參數 \(\theta_1, \theta_2, \dots, \theta_m\)。根據最大似然法,要讓似然函數 \(f(x_1, x_2, \dots, x_n; \theta_1, \theta_2, \dots, \theta_m)\) 滿足:
\[ f(x_1, x_2, \dots, x_n; \hat \theta_1, \hat \theta_2, \dots, \hat \theta_m)\ge f(x_1, x_2, \dots, x_n; \theta_1, \theta_2, \dots, \theta_m) \]
這裏的 \(\hat \theta_1, \hat \theta_2, \dots, \hat \theta_m\) 就是使得實驗結果出現的可能性最大的參數,也是最大似然法估計出來的參數。

參考

  • 從最大似然到EM算法淺解
  • 概率與統計

最大似然估計