良心教程,非常通俗。
原文鏈接:https://www.jiqizhixin.com/articles/2018-01-09-6
什么是參數?
在機器學習中,我們經常使用一個模型來描述生成觀察數據的過程。例如,我們可以使用一個隨機森林模型來分類客戶是否會取消訂閱服務(稱為流失建模),或者我們可以用線性模型根據公司的廣告支出來預測公司的收入(這是一個線性回歸的例子)。每個模型都包含自己的一組參數,這些參數最終定義了模型本身。
我們可以把線性模型寫成 y = mx + c 的形式。在廣告預測收入的例子中,x 可以表示廣告支出,y 是產生的收入。m 和 c 則是這個模型的參數。這些參數的不同值將在坐標平面上給出不同的直線(見下圖)。
參數值不同的三個線性模型。
因此,參數為模型定義了一個藍圖。只有將參數選定為特定值時,才會給出一個描述給定現象的模型實例。
最大似然估計的直觀解釋
最大似然估計是一種確定模型參數值的方法。確定參數值的過程,是找到能最大化模型產生真實觀察數據可能性的那一組參數。
上述的定義可能聽起來還是有點模糊,那么讓我們通過一個例子來幫助理解。
假設我們從某個過程中觀察了 10 個數據點。例如,每個數據點可以代表一個學生回答特定考試問題的時間長度(以秒為單位)。這 10 個數據點如下圖所示:
我們觀察到的 10 個(假設的)數據點。
我們首先要決定哪個模型最適合描述生成數據的過程,這一步至關重要。至少,我們應該對使用哪種模型有一個不錯的想法。這個判斷通常來自於一些領域內專家,但我們不在這里討論這個問題。
對於這些數據,我們假設數據生成過程可以用高斯分布(正態分布)進行充分描述。對以上數值目測一番就可以得知,高斯分布是合理的,因為這 10 個點的大部分都集中在中間,而左邊和右邊的點都很少。(因為我們只使用了 10 個數據點,做出這樣的草率決定是不明智的,但考慮到我是用某個確定的分布函數生成這些數據點,我們就湊合着用吧)。
回想一下高斯分布有兩個參數:均值μ和標准差σ。這些參數的不同值會對應不同的曲線(就像上面的直線一樣)。我們想知道「哪條曲線最可能產生我們觀察到的數據點」?(見下圖)。用最大似然估計法,我們會找到與數據擬合得最好的 μ、σ 的值。
10 個數據點和可能得出這些數據的高斯分布。f_1 是均值為 10、方差為 2.25(方差等於標准偏差的平方)的正態分布,也可以表示為 f_1∼N(10, 2.25)。其它曲線為 f_2∼N(10, 9)、f_3∼N(10, 0.25)、f_4∼N(8,2.25)。最大似然的目標是找到最有可能生成已知觀察數據分布的參數值。
我生成這 10 個數據的真實分布是 f_1~N(10, 2.25),也就是上圖中的藍色曲線。
計算最大似然估計
現在我們對最大似然估計有了直觀的理解,我們可以繼續學習如何計算參數值了。我們找到的參數值被稱為最大似然估計(maximum likelihood estimates,MLE)。
我們同樣將用一個例子來演示這個過程。假設這次有三個數據點,我們假設它們是從一個被高斯分布充分描述的過程生成的。這些點是 9、9.5 和 11。那么如何用最大似然估計逼近這個高斯分布的參數 μ 和 σ 呢?
我們要計算的是同時觀察到所有這些數據的概率,也就是所有觀測數據點的聯合概率分布。因此,我們需要計算一些可能很難算出來的條件概率。我們將在這里做出第一個假設,假設每個數據點都是獨立於其他數據點生成的。這個假設能讓計算更容易些。如果事件(即生成數據的過程)是獨立的,那么觀察所有數據的總概率就是單獨觀察到每個數據點的概率的乘積(即邊緣概率的乘積)。
從高斯分布中生成的單個數據點 x 的(邊緣)概率是:
在表達式 P(x; μ, σ) 中的分號是為了強調在分號后的符號都是概率分布的參數。所以千萬不要把這個與條件概率相混淆。條件概率一般會用豎線來表達,比如說 P(A| B)。
在我們的例子中,同時觀察到這三個數據點的總(聯合)概率是:
我們只要找出能夠讓上述表達式最大化的μ、σ值就可以了。
如果你在數學課上學過微積分,那么你可能會意識到有一種技巧可以幫助我們找到函數的最大值(和最小值)。我們所要做的就是求出函數的導數,把導函數設為零然后重新變換方程,使其參數成為方程的未知數。然后就這樣,我們將得到參數的 MLE 值。我將串講一下這些步驟,但我假設讀者知道如何對常用函數進行微分。
對數似然函數
上述的總概率表達式實際上是很難微分,所以它幾乎總是通過對表達式取自然對數進行簡化。這完全沒問題,因為自然對數是一個單調遞增的函數。這意味着,如果 x 軸上的值增加,y 軸上的值也會增加(見下圖)。這一點很重要,因為它確保了概率的最大對數值出現在與原始概率函數相同的點上。因此,我們可以用更簡單的對數概率來代替原來的概率。
原函數的單調性,左邊是 y = x,右邊是(自然)對數函數 y = ln(x)。
這是一個非單調函數的例子,因為從左至右 f(x) 會上升,然后下降,然后又上升。
取初始表達式的對數能得到:
我們可以用對數的運算法則再一次簡化這個表達式,得到:
這個表達式可以通過求導得到最大值。在這個例子中,我們要找到平均值 μ。為此我們對函數求μ的偏導數,得到:
最后,設置等式的左邊為零,然后以μ為未知數整理式子,可以得到:
、
這樣我們就得到了 μ 的最大似然估計。我們可以用同樣的方法得到σ的最大似然估計,這留給有興趣的讀者自己練習。
最大似然估計小結
最大似然估計總是能精確地得到解嗎?
簡單來說,不能。更有可能的是,在真實的場景中,對數似然函數的導數仍然是難以解析的(也就是說,很難甚至不可能人工對函數求微分)。因此,一般采用期望最大化(EM)算法等迭代方法為參數估計找到數值解,但總體思路還是一樣的。
為什么叫「最大似然(最大可能性)」,而不是「最大概率」呢?
好吧,這只是統計學家們賣弄學問(但也是有充分的理由)。大多數人傾向於混用「概率」和「似然度」這兩個名詞,但統計學家和概率理論家都會區分這兩個概念。通過觀察這個等式,我們可以更好地明確這種混淆的原因。
這兩個表達式是相等的!所以這是什么意思?我們先來定義 P(data; μ, σ) 它的意思是「在模型參數μ、σ條件下,觀察到數據 data 的概率」。值得注意的是,我們可以將其推廣到任意數量的參數和任何分布。
另一方面,L(μ, σ; data) 的意思是「我們在觀察到一組數據 data 之后,參數μ、σ取特定的值的似然度。」
上面的公式表示,給定參數后數據的概率等於給定數據后參數的似然度。但是,盡管這兩個值是相等的,但是似然度和概率從根本上是提出了兩個不同的問題——一個是關於數據的,另一個是關於參數值的。這就是為什么這種方法被稱為最大似然法(極大可能性),而不是最大概率。
什么時候最小二乘參數估計和最大似然估計結果相同?
最小二乘法是另一種常用的機器學習模型參數估計方法。結果表明,當模型向上述例子中一樣被假設為高斯分布時,MLE 的估計等價於最小二乘法。
直覺上,我們可以通過理解兩種方法的目的來解釋這兩種方法之間的聯系。對於最小二乘參數估計,我們想要找到最小化數據點和回歸線之間距離平方之和的直線(見下圖)。在最大似然估計中,我們想要最大化數據同時出現的總概率。當待求分布被假設為高斯分布時,最大概率會在數據點接近平均值時找到。由於高斯分布是對稱的,這等價於最小化數據點與平均值之間的距離。
有隨機高斯噪聲的回歸線
上一部分討論了機器學習和統計模型中參數估計的最大似然法。在下文我們將討論貝葉斯推理的參數估計,並解釋該方法如何可作為最大似然法的推廣,以及兩者等價的條件。
閱讀本文需要理解一些基本的概率論知識,例如邊緣概率和條件概率。此外,了解高斯分布有助於理解,但並不是必要的。
貝葉斯定理
在介紹貝葉斯推理之前,理解貝葉斯定理是很有必要的。貝葉斯定理的意義在於使我們能利用已有的知識或信念(通常稱為先驗的)幫助計算相關事件的概率。例如,如果想知道在炎熱和晴朗的天氣中賣出冰淇淋的概率,貝葉斯定理可以使用「在其它類型天氣中可能賣出冰淇淋數量」的先驗知識。
數學定義
貝葉斯定理的數學定義如下:
其中,A 和 B 是事件,P(A|B) 是給定事件 B 發生時,事件 A 發生的條件概率,P(B|A) 同理。P(A) 和 P(B) 分別是事件 A 和事件 B 的邊緣概率。
示例
假定一副撲克牌里有 52 張牌,其中 26 張是紅色的,26 張是黑色的。那么當牌是紅色的時候,牌上數字為 4 的概率是多少?
我們將牌為數字 4 設為事件 A,將牌為紅色設為事件 B。因此我們需要計算的概率是 P(A|B)=P(4|red),接下來,我們使用貝葉斯定理計算這個概率值:
1. P(B|A) = P(red|4) = 1/2
2. P(A) = P(4) = 4/52 = 1/13
3. P(B) = P(red) = 1/2
然后根據貝葉斯定理可得到:P(4|red)=P(red|4)·P(4)/P(red)=1/13。
為什么貝葉斯定理能結合先驗信念?
僅僅看數學公式很難理解這一點。我們將再次借用冰淇淋和天氣的例子。
令 A 為賣出冰淇淋的事件,B 為天氣的事件。我們的問題是「給定天氣的類型,賣出冰淇淋的概率是多少?」用數學符號表示為 P(A=ice cream sale | B=type of weather)。
貝葉斯定理右邊的 P(A) 被稱為先驗概率。在我們的例子中即 P(A = ice cream sale) 是賣出冰淇淋的邊緣概率(其中天氣是任何類型)。一般而言,這個概率都是已知的,因此其被稱為先驗概率。例如我通過查看數據了解到 100 個人中有 30 個買了冰淇淋,因此 P(A = ice cream sale)=30/100=0.3,而這都是在了解任何天氣的信息之前知道的。
注意:先驗知識本身並不是完全客觀的,可能帶有主觀成分,甚至是完全的猜測。而這也會對最終的條件概率計算產生影響,我將在后面解釋。
貝葉斯推理
定義
首先,(統計)推理是從數據中推導群體分布或概率分布的性質的過程。最大似然法也是同樣的,如可以通過一系列的觀察數據點確定平均值的最大似然估計。
因此,貝葉斯推理不過是利用貝葉斯定理從數據中推導群體分布或概率分布的性質的過程。
使用貝葉斯定理處理數據分布
以上例子使用的都是離散概率,有時可能需要使用連續的概率分布。即賣出冰淇淋的概率可能不只是 0.3,還可能是 0.25 或 0.4 以及其它任何可能值,每個概率對應一個先驗信念,因而是一個函數 f(x),如下圖所示。該分布被稱為先驗分布(prior distribution)。
上圖中的兩個分布曲線都可以作為上述例子的先驗分布,其中兩者的峰值都在 x=0.3 處。在 x≠0.3 處,f≠0,意味着我們並不完全確定 0.3 就是賣出冰淇淋的真實概率。藍線表示先驗概率的值更可能在 0-0.5 之間,而黃線表示先驗概率可能在 0-1 之間的任何值。相對而言,黃線表示的先驗分布比藍線的「更加不確定」。
在處理模型的時候,大部分都需要用到概率分布的形式。
貝葉斯定理的模型形式
模型形式的貝葉斯定理將使用不同的數學符號。
我們將用Θ取代事件 A。Θ是我們感興趣的事件,它代表了參數的集合。因此如果要估計高斯分布的參數值,那么Θ代表了平均值μ和標准差σ,用數學形式表示為Θ = {μ, σ}。
我們用 data 或 y={y1, y2, …, yn} 取代事件 B,它代表了觀察數據的集合。
其中 P(Θ) 是先驗分布,它代表了我們相信的參數值分布,和上述例子中代表賣出冰淇淋的概率分布類似。等式左邊的 P(Θ|data) 稱為后驗分布,它代表利用觀察數據計算了等式右邊之后的參數值分布。而 P(data| Θ) 和似然度分布類似。
因此我們可以使用 P(data|Θ) 更新先驗信度以計算參數的后驗分布。
等等,為什么忽略了 P(data)?
因為我們只對參數的分布感興趣,而 P(data) 對此並沒有任何參考價值。而 P(data) 的真正重要性在於它是一個歸一化常數,它確保了計算得到的后驗分布的總和等於 1。
在某些情況下,我們並不關心歸一化,因此可以將貝葉斯定理寫成這樣的形式:
其中 ∝ 表示符號左邊正比於符號右邊的表達式。
貝葉斯推斷示例
現在我們來展示一個貝葉斯推斷的示例。該示例要算出氫鍵鍵長。你無需知道什么是氫鍵(hydrogen bond),我只是用它舉例。
我用上圖因為它有助於拆分密集文本,且與我們要展示的示例有某種關聯。不要擔心,無需理解上圖也可以理解貝葉斯推斷。
假設氫鍵是 3.2Å—4.0Å。該信息將構成我的先驗知識。就概率分布而言,我將將其形式化為均值 μ = 3.6Å、標准差 σ = 0.2Å 的高斯分布(見下圖)。
氫鍵鍵長的先驗分布
我們現在選取一些數據(由均值為 3Å 和標准差為 0.4Å 的高斯分布隨機生成的 5 個數據點),代表了氫鍵的測量長度(圖 3 中的黃色點)。我們可以從這些數據點中推導出似然度分布,即下圖中黃色線表示的似然度分布。注意從這 5 個數據點得到的最大似然度估計小於 3Å(大約 2.8Å)。
氫鍵長度的先驗分布(藍線),和由 5 個數據點導出的似然度分布(黃線)。
現在我們有兩個高斯分布。由於忽略了歸一化常數,因此已經可以計算非歸一化的后驗分布了。高斯分布的一般定義如下:
我們需要將上述的兩個分布乘起來,然后得到下圖的粉線所示的后驗分布。
藍色分布和黃色分布的乘積得到粉色的后驗分布。
現在我們得到了氫鍵鍵長的后驗分布,可以從中推導出統計特征。例如,我們可以使用分布的期望值估計鍵長,或者計算方差以量化對結果的不確定度。對后驗分布的最常用的統計計算是眾數,它被用於估計感興趣參數的真實值。在這個例子中,后驗分布是一個高斯分布,因此平均值等於眾數(以及中位數),而氫鍵長度的 MAP 估計在分布的峰值處,大約 3.2Å。
結語
為什么我經常使用高斯分布?
你將注意到在我所有涉及分布的實例中,我使用了高斯分布。其中一個原因是它使數學變的更容易。但是對貝葉斯推理實例來說,它需要計算 2 個分布的乘積。此外,因為高斯分布有一個特殊的屬性,使其易於計算分布的乘積。對於高斯似然函數來說,高斯分布與它自己共軛,因此如果我把一個高斯似然函數乘以一個高斯先驗分布,我將得到一個高斯后驗函數。事實是后驗和先驗都來自相同的分布族(均為高斯),這意味着它們可被稱為共軛分布。在這種情況下,先驗分布被稱為共軛先驗。
在很多推理情景中,似然和先驗被選擇,從而得到的分布是共軛的,因為它使數學變的更簡單。數據科學中的一個實例是隱狄利克雷分配(LDA),它是一個無監督學習算法,可以發現若干個文本文檔(語料庫)中的主題。
當我們獲取新數據,會發生什么?
貝葉斯推理的最大優勢之一是使用它無需有大量數據。事實上貝葉斯框架允許你有數據后實時、迭代地更新你的信念。其工作如下:你有一個關於什么的先驗信念(比如參數值),接着你接收到一些數據。你可以通過計算后驗分布更新你的信念,就像上面我們做的那樣。隨后,甚至有更多的數據進來。因此我們的后驗成為新的先驗。我們可以通過從新數據中獲得的似然更新的新的先驗,並再次獲得一個新后驗。這一循環可無限持續,因此你可以不斷更新你的信念。
卡爾曼過濾器(及其變體)是很好的一個實例。它在很多場景中使用,可能數據科學中最醒目就是其在自動駕駛汽車上的應用。在我的數學蛋白質晶體學博士學位期間,我曾使用一種名為 Unscented 卡爾曼過濾器的變體,並為實現它們的開源軟件包做出了貢獻。為了更好地視覺描述卡爾曼過濾器,請查看 Tim Babb 的這篇文章:http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/。
把先驗用作 regulariser
我們在上述氫鍵長度實例中產生的數據表明,2.8Å是最佳估計。但是,如果我們的估計只依據數據,則存在過擬合的風險。如果數據收集過程出現差錯,這將是一個嚴重的問題。我們可以在貝葉斯框架中使用先驗解決這一問題。在我們的實例中,使用一個以 3.6Å為中心的高斯先驗得到了一個后驗分布,給出的氫鍵長度的 MAP 估計為 3.2Å。這表明我們的先驗在估計參數值時可以作為 regulariser。
先驗與似然上的權重數量取決於兩個分布之間的相對不確定性。在下圖中我們可以看到這一點。顏色與上面一樣,藍色表征先驗分布,黃色表征似然分布,粉紅表征后驗分布。左圖中我們看到藍線不如黃線那么延展。因此后驗要遠比似然更相似於先驗。右圖中則情況相反。
因此如果我們願意增加參數的正則化,我們可以選擇縮小與似然性相關的先驗分布。
什么時候 MAP 估計與最大似然估計相等?
當先驗分布均勻之時,MAP 估計與 MLE 相等。下圖是均勻分布的一個實例。
均勻分布
我們可以看到均勻分布給 X 軸(水平線)上的每個值分布相同的權重。直觀講,它表征了最有可能值的任何先驗知識的匱乏。在這一情況中,所有權重分配到似然函數,因此當我們把先驗與似然相乘,由此得到的后驗極其類似於似然。因此,最大似然方法可被看作一種特殊的 MAP。
本文由機器之心編譯出品,原文來自Medium,作者Jonny Brooks-Bartlett,轉載請查看要求,機器之心對於違規侵權者保有法律追訴權。