當前位置:
首頁 > 最新 > 概率論之概念解析:極大似然估計

概率論之概念解析:極大似然估計

【導讀】本文是數據科學家Jonny Brooks-Bartlett概率論基礎概念系列博客中的「極大似然估計」一章,主要講解了極大似然估計的若干概念。分別介紹了參數、直觀理解極大似然估計、極大似然估計計算方法、極大似然估計與最小二乘法的區別、極大似然與極大概率的區別,作者層層遞進、由淺及深地帶我們揭開極大似然估計的神秘面紗,如果你對其概念和演算法仍然有所迷惑,那麼這篇文章或將給你帶來更深的理解。專知內容組編輯整理。

Probability concepts explained: Maximum likelihood estimation

簡介

這次我將介紹參數估計的極大似然法,並且使用一個簡單的例子來解釋這一方法。某些內容需要一些基礎的概率概念,例如聯合概率和事件獨立的定義。我已經寫了有關這些預備知識的博客,https://medium.com/@jonnybrooks04/probability-concepts-explained-introduction-a7c0316de465,如果你覺得需要補習的話可以先閱讀一下。

什麼是參數?

通常在機器學習中,我們使用一個模型來描述我們看到的數據。例如,我可能用一個隨機森林模型來分析用戶是否可能取消服務的訂閱(被稱作客戶流失模型churn modelling),或者使用一個線性模型,根據公司在廣告上的花費來預測他們的收益(這將是線性回歸的一個例子)。每個模型都有自己的一組參數,最終決定了模型的質量。

對於線性模型,可以寫成。在這個例子中,x可以代表廣告花費,y可以代表產生的收益,m和c是模型的參數,這些參數不同的取值會得到不同的線(看下面這幅圖)。

所以,參數決定了模型的形狀。只有當我們選擇了一個具體的參數值後,才得到了一個描述給定現象的實例化模型。

極大似然估計的直觀解釋

極大似然估計是估計模型參數的一種方法。通過最大化模型得到最終的參數值。

上面的定義看起來有些晦澀,所以我們用一個例子來輔助理解。

假設我們有10個觀測數據點,例如,每個數據點可以表示時間的長度,代表某個學生解答某個具體的考試題所消耗的時間(ms)。這10個數據點可以用下圖來表示:

我們首先必須明確採用什麼模型能很好地描述這些數據,這是非常重要的。起碼我們得對使用什麼模型有一個好想法,這一想法經常來源於某些領域的專業知識,不過我們不在這裡討論。

對於這些數據,我們假設可以用一個高斯(正態)分布來描述。看看上面這個圖感覺高斯分布似乎很合理,因為10個點中很多都聚集在中間,少部分點散布在左右(對10個數據點做這種草率的決定是不推薦的,不過這些數據是我生成的,所以我們就暫且按照高斯分布來講解)。

高斯分布具有兩個參數:均值和標準差σ。不同的參數取值會導致不同的曲線。我們想知道什麼曲線最有可能生成我們看到的這些數據點(看下面的圖)?極大似然估計是尋找最匹配曲線的均值和方差的一個方法。

這10個數據點和可能服從的高斯分布,f1均值為10,方差為2.25,也可以標記為和,極大似然方法的目標是找到一組參數值,最大化生成這些數據點的概率。

我們生成數據點的真實分布為,就是上圖的藍色曲線。

計算極大似然估計

現在我們對什麼是極大似然估計有了直觀的理解,然後繼續學習怎樣計算這些參數值。我們得到的這些值被稱為極大似然估計(MLE)。

我們將再一次用一個例子進行演示。假設這次我們有三個數據點,並且可以用高斯分布來進行描述。這些點是9,9.5和11,我們該怎麼計算高斯分布的均值和方差σ這些參數值的極大似然估計呢?

我們想要計算的是看到所有這些數據的總概率,例如所有觀測到的數據點的聯合分布。為了做到這一點,我們需要計算條件概率,但這一點可能很難做到。因此我們在這裡做了第一個假設:這個假設是每個生成的數據獨立,這一假設讓數學計算大大簡化。如果這些事件(i.e.生成這些數據的過程)是獨立的,此時觀測到所有這些數據的總概率等於獨立觀測到每個數據點的概率之積(i.e.邊際分布的乘積)。

觀測到用高斯分布生成的某個單獨數據點x的邊際概率,可以由下式得到:

中間的分號是用來強調標記後面的是概率分布的參數,從而不會與條件分布混淆(條件分布通常中間是條豎線)

觀測到這三個數據點的總概率(聯合概率)為

我們現在只需要弄清楚什麼均值和方差σ的值可以得到給定表達式的最大值。

如果你在數學課上學過微積分,那麼你很可能意識到有一種方法可以幫助我們得到函數的最大值點(或最小值點)。這種方法叫微分。我們現在要做的只是得到函數的導數,讓導函數為0然後解方程,求解感興趣的參數。現在我們就得到了參數的MLE值。假設讀者都知道怎麼使用微分求解函數,所以我只是簡要講解這些步驟,如果你想要更詳細的解釋可以在評論區告訴我。

對數似然

上面的總概率表達式求導起來很麻煩,所以總是對概率公式進行求對數,以簡化求解,因為自然對數是單調遞增函數。這意味著當x的值增大y的值也會增大(見下圖)。這很重要,因為這保證了概率函數的對數的最大值點和原始概率函數的最大值點是同一個點。因此我們可以使用簡單的對數似然而不是原始似然。

函數的單調性,左邊是y=x,右邊是自然對數y=ln(x),這些函數都是單調的,因為隨著x增加y都在增大。

一個非單調函數的例子,當x從左到右,y的值先增大後減小再增大

對原始表達式取對數,得到:

使用對數計演算法則,這個表達式可以簡化為:

這個函數可以求導得到最大值,在這個例子中我們將得到均值的MLE,對均值求偏導得到:

令左邊為0,重排表達式得到

於是我們就得到了的極大似然估計。我們可以對σ做同樣的操作,但是我會把這個留作熱心讀者的作業。

結束語

答案很簡單,不是!在現實世界的場景中,對數似然函數的導數很可能是難以分析的(例如函數的導數不能求解)。因此迭代方法如EM演算法(Expectation-Maximization)用來求解模型的參數。總的想法還是一樣的。

其實,大部分人想要讓概率和似然可以互相替換,但是統計學家和概率理論家硬把兩者區分開來,區分的理由是。

其實這兩個表達也是等價的!所以這意味著什麼呢?首先,表示使用均值為和方差為σ的模型觀測到這些數據的概率。我們可以把這個概念推廣到任何模型上。另一方面,意味著:給定我們觀測到的值,參數和σ的得到特定的似然。

這個等式意味著,給定參數得到觀測數據的概率等價於給定觀測數據得到參數的似然。儘管這兩個式子是等價的,但是似然和概率從基礎上來講是不同的問題——一個問的是數據,另一個問的是參數值。這也是為什麼我們的方法叫極大似然而不是極大概率。

最小二乘法是機器學習中另一個估計模型的參數值的常用方法。和上面的例子一樣,當模型假設是高斯的,極大似然估計和最小二乘法等價。數學求導過程可以看這個幻燈片:

https://web.archive.org/web/20111202153913/http://www.cs.cmu.edu/~epxing/Class/10701/recitation/recitation3.pdf

我們可以通過理解兩個方法的目標來解釋他們。對最小二乘估計,我們想要找到一條線,來最小化全部數據點和回歸線的平方距離(可以看下面的圖)。對於極大似然估計,我們想要最大化數據的總概率。當假設為高斯分布時,數據點離均值近的時候得到最大概率。由於高斯分布是對稱的,這等價於最小化數據點和均值之間的距離。

如果你對本文有任何不清楚的地方,或者我上面的內容有什麼錯誤,可以留下你的評論。在下一個帖子我準備講述貝葉斯推斷以及它是怎樣被用來參數估計的。

感謝您的閱讀。

https://towardsdatascience.com/probability-concepts-explained-maximum-likelihood-estimation-c7b4342fdbb1

https://towardsdatascience.com/@jonnybrooks04?source=post_header_lockup

-END-

專 · 知

人工智慧領域主題知識資料查看獲取【專知薈萃】人工智慧領域26個主題知識資料全集(入門/進階/論文/綜述/視頻/專家等)

同時歡迎各位用戶進行專知投稿,詳情請點擊

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 專知 的精彩文章:

手把手教你用蘋果Core ML和Swift開發人臉目標識別APP

TAG:專知 |