最大似然估計
一 基本知識
1 .1概率理解——貝葉斯派與頻率派
-
頻率派:概率是一個確定的值,模型中的參數也是一個確定的值。樣本數據是由確定的概率分布生成的,因此數據是隨機的。多次重復試驗,使用事件發生的頻率近似代替概率 。
對於一個模型或者也可說一個分布中的參數,我們相信它是固定不變的,是固有的屬性。而我們觀察(采樣)到的數據是這個分布中的一個獨立同分布樣本。
也就是說,不管怎么采樣,我們根據采樣的數據然后對參數的估計都應該是不會變的。如果根據數據估計出來的參數和真實模型不符合,只可能是引入了噪聲而已。
另一個問題,很明顯,需要大量數據我們才能得到一個更好的結果,但如果觀測樣本有限呢?那我們認為概率依然是確定的,是你的觀測的問題。
-
貝葉斯派: 把參數θ視作隨機變量,而樣本X是固定的,其着眼點在參數空間,重視參數θ的分布,固定的操作模式是通過參數的先驗分布結合樣本信息得到參數的后驗分布。 從觀察者的角度出發,觀察者根據觀測得到的事實,不斷更新修正對模型的認知。
1.2統計和概率
概率(probabilty)和統計(statistics)看似兩個相近的概念,其實研究的問題剛好相反。
概率研究的問題是,已知一個模型和參數,怎么去預測這個模型產生的結果的特性(例如均值,方差,協方差等等)。 舉個例子,我想研究怎么養豬(模型是豬),我選好了想養的品種、喂養方式、豬棚的設計等等(選擇參數),我想知道我養出來的豬大概能有多肥,肉質怎么樣(預測結果)。
統計研究的問題則相反。統計是,有一堆數據,要利用這堆數據去預測模型和參數。仍以豬為例。現在我買到了一堆肉,通過觀察和判斷,我確定這是豬肉(這就確定了模型。在實際研究中,也是通過觀察數據推測模型是/像高斯分布的、指數分布的、拉普拉斯分布的等等),然后,可以進一步研究,判定這豬的品種、這是圈養豬還是跑山豬等等(推測模型參數)。
概率是已知模型和參數,推數據。統計是已知數據,推模型和參數
版權聲明:本文為CSDN博主「nebulaf91」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u011508640/article/details/72815981
1.3 貝葉斯公式
我們可以將\(P(\theta |X)\)進行貝葉斯概率進行展開
上式中$ P (\theta|X)$稱作后驗概率 , \(P(\theta)\)稱作先驗概率。\(P(X|\theta)\)叫做似然度,\(P(X)\)是邊緣概率,與待估計參數\(\theta\)無關,又叫做配分函數
這個式子就有迭代的含義,即,給一個基於經驗的先驗概率\(P(\theta)\) ,然后基於觀測值 \(L(\theta|X)\)與\(P(X)\) 來不斷修正對\(P(\theta)\)的認知,最終得到基於事實的后驗概率\(P(\theta|X)\)。
在上式中,事實上\(\theta_k\)的取值是無限多的。計算是不容易的。
在上式中,\(P(X)\)保證結果是在\((0,1)\)之間,這也就是為什么被稱為配分函數。
貝葉斯概率是怎樣根據觀測得到的數據對先驗概率進行修正呢?就是來看觀測的數據在所有可能性中占比是更大還是更小。
二 極大似然
2.1 問題求解
2.1.1 問題描述
假設我們需要調查我們學校學生的身高分布。我們先假設學校所有學生的身高服從正態分布 \(N(\mu,\delta^2)\) 。(注意:極大似然估計的前提一定是要假設數據總體的分布,如果不知道數據分布,是無法使用極大似然估計的),這個分布的均值 \(\mu\) 和方差 \(\delta^2\)未知,如果我們估計出這兩個參數,那我們就得到了最終的結果。那么怎樣估計這兩個參數呢?
學校的學生這么多,我們不可能挨個統計吧?這時候我們需要用到概率統計的思想,也就是抽樣,根據樣本估算總體。假設我們隨機抽到了 200 個人(也就是 200 個身高的樣本數據,為了方便表示,下面“人”的意思就是對應的身高)。然后統計抽樣這 200 個人的身高。根據這 200 個人的身高估計均值 \(\mu\) 和方差 \(\delta^2\) 。
用數學的語言來說就是:為了統計學校學生的身高分布,我們按照概率密度\(p(x|\theta)\) 獨立 抽取了 200 個(身高),組成樣本\(X=x_1,x_2,\cdots,x_N\)其中\(x_i\)表示抽到的第\(i\)個人的身高,這里 N 就是 200,表示樣本個數),我們想通過樣本集 \(X\)來估計出總體的未知參數 \(\theta\)。這里概率密度\(p(x|\theta)\)服從高斯分布\(N(\mu,\delta^2)\),其中的未知參數是 \(\theta=[\mu,\delta]^T\) 。
2.1.2 估算參數
我們先回答幾個小問題:
問題一:抽到這 200 個人的概率是多少呢?
由於每個樣本都是獨立地從 \(p(x|\theta)\) 中抽取的,換句話說這 200 個學生隨便捉的,他們之間是沒有關系的,即他們之間是相互獨立的(樣本之間是相互獨立的)。
假如抽到學生 A(的身高)的概率是\(p(x_A|\theta)\),抽到學生B的概率是 \(p(x_B|\theta)\),那么同時抽到男生 A 和男生 B 的概率是 \(p(x_A|\theta) \times p(x_A|\theta)\) ,同理,我同時抽到這 200 個學生的概率就是他們各自概率的乘積了,即為他們的聯合概率,用下式表示:
n 為抽取的樣本的個數,本例中 \(n=200\),這個概率反映了,在概率密度函數的參數是 \(\theta\) 時,得到 X 這組樣本的概率。上式中等式右側只有 \(\theta\) 是未知數,所以 L 是 \(\theta\)的函數。
這個函數反映的是在不同的參數 \(\theta\) 取值下,取得當前這個樣本集的可能性,因此稱為參數 \(\theta\)相對於樣本集 X 的似然函數(likelihood function),記為 \(L(\theta)\)。
對 L 取對數,將其變成連加的,稱為對數似然函數,如下式:
*Q:這里為什么要取對數?*
- 取對數之后累積變為累和,求導更加方便
- 概率累積會出現數值非常小的情況,比如1e-30,由於計算機的精度是有限的,無法識別這一類數據,取對數之后,更易於計算機的識別(1e-30以10為底取對數后便得到-30)。
問題二:學校那么多學生,為什么就恰好抽到了這 200 個人 ( 身高) 呢?
在學校那么學生中,我一抽就抽到這 200 個學生(身高),而不是其他人,那是不是表示在整個學校中,這 200 個人(的身高)出現的概率極大啊,也就是其對應的似然函數 \(L(\theta)\)極大,即
這個\(\hat{\theta}\)叫做 \(\theta\) 的極大似然估計量,即為我們所求的值。
問題三:那么怎么極大似然函數?
求 \(L(\theta)\) 對所有參數的偏導數,然后讓這些偏導數為 0,假設有 \(n\)個參數,就有 \(n\)個方程組成的方程組,那么方程組的解就是似然函數的極值點了,從而得到對應的 \(\theta\)了
2.2似然函數
對於這個函數:\(P ( x ∣θ )\)
輸入有兩個:\(x\)表示某一個具體的數據; $ \theta$表示模型的參數。
-
如果 \(\theta\)是已知確定的,\(x\)是變量,這個函數叫做概率函數(probability function),它描述在固有屬性\(\theta\)下,對於不同的樣本點\(x\),其出現概率是多少。
-
如果\(x\)是已知確定的, \(\theta\)是變量,這個函數叫做似然函數(likelihood function), 它描述對於不同的模型參數,出現\(x\)這個樣本點的概率是多少。
版權聲明:本文為CSDN博主「nebulaf91」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u011508640/article/details/72815981
極大似然估計你可以把它看作是一個反推。多數情況下我們是根據已知條件來推算結果,而極大似然估計是已經知道了結果,然后尋求使該結果出現的可能性極大的條件,以此作為估計值。
比如說,
- 假如一個學校的學生男女比例為 9:1 (條件),那么你可以推出,你在這個學校里更大可能性遇到的是男生 (結果);
- 假如你不知道那女比例,你走在路上,碰到100個人,發現男生就有90個 (結果),這時候你可以推斷這個學校的男女比例更有可能為 9:1 (條件),這就是極大似然估計。
極大似然估計,只是一種概率論在統計學的應用,它是參數估計的方法之一。說的是已知某個隨機樣本滿足某種概率分布,但是其中具體的參數不清楚,通過若干次試驗,觀察其結果,利用結果推出參數的大概值。
https://zhuanlan.zhihu.com/p/266677860
2.3 極大似然估計要解決的問題
- 給定一個數據分布 \(P_{data(x)}\)
- 給定一個由參數 \(\theta\) 定義的數據分布 \(P_G(x;\theta)\)
- 我們希望求得參數\(\theta\) 使得\(P_G(x;\theta)\) 盡可能接近 \(P_{data(x)}\)
可以理解成:
\(P_G(x;\theta)\) 是某一具體的分布(比如簡單的高斯分布),而 \(P_{data(x)}\)是未知的(或者及其復雜,我們很難找到一個方式表示它),我們希望通過極大似然估計的方法來確定 \(\theta\) ,讓\(P_G(x;\theta)\)能夠大體表達\(P_{data(x)}\)
2.4 最大似然估計 MLE的理解
在“模型已定,但模型參數未知”的情況下,基於觀測的數據來估計模型參數的一種思想或者方法。換句話說,解決的是取怎樣的模型參數可以使得產生已得觀測數據的概率最大的問題
\(P(\theta|X)\)即事件\(X\)發生后,這個概率值\(\theta\)是多少。
事實上,這個\(\theta\)的取值可以是任意的,也就是說似然函數\(L_x(\theta)\)是關於\(\theta\)的一個函數。我們習慣於將似然函數寫作\(L(\theta| X)\) ,表示\(X\)發生后的似然值\(\theta\) ,這里的\(\theta\)不是概率,而是一個確定的值,是我們想要的是數據分布的固有屬性。我們觀測到的\(X\)是在事件固有屬性\(\theta\)支配下發生的,也就是\(P(X|\theta)\),於是根據事件固有的屬性我們有下式成立。
也就是說我們希望得到\(\theta\)值就是樣本的固有屬性。但我們只能根據我們觀測的數據去推斷。
-
我們選擇相信我們所觀測到的現象就是事物表現出來的屬性(即\(P(\theta|X)=P(X|\theta)\)) 。我們其實知道這個是不准確的,即($P(\theta|X) \neq P(X|\theta) $),比如投擲硬幣,由於時間或者各種因素我們只能觀測10次,通過這十次我們計算出正面朝上的頻率是\(7/10\),我們便認為投硬幣正面朝上的概率就是\(70\%\)。
這里面其實有一個假設,那就是樣本是獨立本都是獨立地從
中抽取的,換句話說我們投擲骰子其每次試驗結果是相互獨立的,他們之間是沒有關系的,是相互獨立的。
這就是頻率派的思想,認為存在這樣的固有屬性,我們觀測得到的結果就是由於這個固有屬性產生的結果,且當獨立重復試驗次數n次后我們可以用觀測得到的樣本的頻率去表示事物本身的概率。
-
我們第二個假設是人為規定當前觀測情形下的最大似然值\(L(\theta|X)\)就是這個概率\(\theta\)(\(\theta = arg _{*\theta}\ \ max L(\theta|X)\) )。怎么理解,就我們相信自己的觀測結果出現就是事物本質的直接表現,認為只有事物出現這個觀測的概率最大,所以我才能觀測得到,也就是說我們觀測的結果就是分布概率的直接體現。既然有無數種分布可以選擇,那讓觀測得到樣本結果出現的可能性最大
2.5 極大似然的步驟
- 從 \(P_{data}\) 采樣m個樣本 \(\{x^1,x^2,\dots,x^m\}\)
- 計算采樣樣本的似然函數 \(L=\Pi_{i=1}^m P_G(x^i;\theta)\)
- 計算使得似然函數 \(L\) 最大的參數 \(\theta: \theta^* = arg \ \underset{\theta}{max} L=arg \ \underset{\theta}{max} \Pi_{i=1}^m P_G(x^i;\theta)\)
這里再啰嗦一下極大似然估計為什么要這么做:
\(P_{data}\) 可以理解成是非常復雜的分布,不可能用某個數學表達精確表示,因此我們只能通過抽象,使用一個具體的分布模型 \(P_G(x;\theta)\)近似 \(P_{data}\)
所以,求 \(P_G(x;\theta)\) 的參數 \(\theta\)的策略就變成了:
我們認為來自 \(P_{data}\)的樣本 \(\{x^1,x^2,\dots,x^m\}\) 在 \(P_G(x;\theta)\)分布中出現的概率越高,也就是 \(L=\Pi_{i=1}^m P_G(x^i;\theta)\)越大 , \(P_G(x;\theta)\)和 \(P_{data}\) 就越接近。
因此,我們期待的就是使得 $L=\Pi_{i=1}^m P_G(x^i;\theta) $最大的 \(\theta\).
即: $ \theta^* = arg \ max_\theta L=arg \ max_\theta \Pi_{i=1}^m P_G(x^i;\theta)$
三 極大似然與最大后驗
3.1最大后驗估計 MAP——貝葉斯派
由上式\((1)\)我們知道似然函數\(L(\theta|X)\)等於在固有屬性\(\theta\) 下 \(X\)的發生概率 \(P(X|\theta)\) ,將其帶入(2),得到
在(3)式中,\(L(\theta | X)\) 稱為 似然度。
在(3)式中,我們要求的就是\(\theta\) ,不妨將其記為一個關於\(\theta\)的函數\(f_x(\theta)\)
和上面類似我們是想求\(\theta\) , 我們使用\(f_x(\theta)\)取得最大值時的\(\theta\)來代替。我們可以觀察式子的右端,分母\(P(X)\)是與\(\theta\)無關的,我們想要求最大值,只需求\(L(\theta|X) \cdot P(\theta)\)的最大值即可。也就得到了我們的最大后驗估計MAP。
3.2最大似然估計MLE 與最大后驗估計 MAP的聯系
$ P(w)$是先驗概率,也就是我們根據經驗對於可能的分布的一個猜測。
可以看到,當假設分布服從常數分布時,$ logP(w)$是一個常數,可以忽略不計,最大后驗估計退化為最大似然估計。還有就是我們不認為存在先驗概率時,最大后驗估計退化為最大似然估計。
當假設分布服從正態分布和拉普拉斯分布,分別得到L2正則化項和L1正則化項
四 極大似然估計與 回歸問題的極小平方和
應用一 :回歸問題中的極小化平方和 (極小化代價函數)
假設線性回歸模型具有如下形式: \(h(x)=\sum_{i=1}^d \theta_jx_j+\epsilon=\theta^Tx+\epsilon\),
其中 \(x \in R^{1\times d},\theta \in R^{1 \times d}\) , 誤差 \(\epsilon \in R\), \(X=(x_1,\cdots,x_m)^T\in R ^{m\times d},y \in R^{m\times d}\) 如何求 \(\theta\)呢?
- 最小二乘估計:最合理的參數估計量應該使得模型能最好地擬合樣本數據,也就是估計值和觀測值之差的平方和最小,其推導過程如下所示:
求解方法是通過梯度下降算法,訓練數據不斷迭代得到最終的值。
- 極大似然法:最合理的參數估計量應該使得從模型中抽取 m 組樣本觀測值的概率極大,也就是似然函數極大。
假設誤差項\(\epsilon \in N(0,\sigma ^2)\) ,則 \(y_i \in N(\theta x_i,\sigma ^2)\) (建議復習一下正態分布的概率密度函數和相關的性質)
這里的假設很重要,我們假設誤差服從以0為中心的正態分布
對於似然函數,我們是求最大,對於二乘估計,我們是求最小
令 \(J(\theta)=\frac{1}{2} \sum_{i=1}^m(y_i - \theta^Tx_i)^2\)
則\(arg \ \underset{\theta}{max} H(\theta)=arg \ \underset{\theta}{min} J(\theta)\) ,
即將極大似然函數等價於極小化代價函數。
這時可以發現,此時的極大化似然函數和最初的最小二乘損失函數的估計結果是等價的。但是要注意這兩者只是恰好有着相同的表達結果,原理和出發點完全不同。
五 極大似然估計 與 極小化 交叉熵 KL散度
KL散度:
衡量P,Q這兩個概率分布差異的方式:
\(KL(P||Q)=\int_x p(x)(log \ p(x)-log\ q(x))\)
極大似然估計的本質
找到 \(\theta\) 使得 \(P_G(x;\theta)\) 與目標分布 \(P_{data}(x)\) 的KL散度盡可能低,也就是使得兩者的分布盡可能接近,實現用確定的分布 \(P_G(x;\theta)\) 極大似然 \(P_{data(x)}\)
感謝
感謝b站up主王木頭的視頻講解
nebulaf91的博客http://blog.csdn.net/u011508640/article/details/72815981