ML的一些基礎知識
1.極大似然估計
極大似然估計,通俗理解來說,就是利用已知的樣本結果信息,反推最具有可能(最大概率)導致這些樣本結果出現的模型參數值!
換句話說,極大似然估計提供了一種給定觀察數據來評估模型參數的方法,即:“模型已定,參數未知”。
我們這樣想,一當模型滿足某個分布,它的參數值我通過極大似然估計法求出來的話。比如正態分布中公式如下:
如果我通過極大似然估計,得到模型中參數\(\mu\)和\(\sigma\)的值,那么這個模型的均值和方差以及其它所有的信息我們是不是就知道了呢。確實是這樣的。
極大似然估計中采樣需滿足一個重要的假設,就是所有的采樣都是獨立同分布的。
下面我通過倆個例子來幫助理解一下最大似然估計
但是首先看一下似然函數\(\rho(x|\theta)\) 的理解:來自下面博客:
詳解最大似然估計(MLE)、最大后驗概率估計(MAP),以及貝葉斯公式的理解 - CSDN博客blog.csdn.net
對於這個函數:\(\rho(x|\theta)\) 輸入有兩個:x表示某一個具體的數據;\(\theta\)表示模型的參數
如果 \(\theta\)是已知確定的,\(x\)是變量,這個函數叫做概率函數(probability function),它描述對於不同的樣本點\(x\),其出現概率是多少。
如果 \(x\) 是已知確定的, 是 \(\theta\)變量,這個函數叫做似然函數(likelihood function), 它描述對於不同的模型參數,出現這\(x\) 個樣本點的概率是多少。
這有點像“一菜兩吃”的意思。其實這樣的形式我們以前也不是沒遇到過。例如,\(f(x,y)=x^y\) , 即x的y次方。如果x是已知確定的(例如x=2),這就是 \(f(y)=2^y\), 這是指數函數。 如果y是已知確定的(例如y=2),這就是\(f(x)=x^2\),這是二次函數。同一個數學形式,從不同的變量角度觀察,可以有不同的名字。
例子一
別人博客的一個例子。
假如有一個罐子,里面有黑白兩種顏色的球,數目多少不知,兩種顏色的比例也不知。我 們想知道罐中白球和黑球的比例,但我們不能把罐中的球全部拿出來數。現在我們可以每次任意從已經搖勻的罐中拿一個球出來,記錄球的顏色,然后把拿出來的球 再放回罐中。這個過程可以重復,我們可以用記錄的球的顏色來估計罐中黑白球的比例。假如在前面的一百次重復記錄中,有七十次是白球,請問罐中白球所占的比例最有可能是多少?
很多人馬上就有答案了:70%。而其后的理論支撐是什么呢?
我們假設罐中白球的比例是p,那么黑球的比例就是1-p。因為每抽一個球出來,在記錄顏色之后,我們把抽出的球放回了罐中並搖勻,所以每次抽出來的球的顏 色服從同一獨立分布。
這里我們把一次抽出來球的顏色稱為一次抽樣。題目中在一百次抽樣中,七十次是白球的,三十次為黑球事件的概率是P(樣本結果|Model)。
如果第一次抽象的結果記為x1,第二次抽樣的結果記為x2....那么樣本結果為(x1,x2.....,x100)。這樣,我們可以得到如下表達式:
P(樣本結果|Model)
= P(x1,x2,…,x100|Model)
= P(x1|Mel)P(x2|M)…P(x100|M)
= p70(1-p)30.
好的,我們已經有了觀察樣本結果出現的概率表達式了。那么我們要求的模型的參數,也就是求的式中的p。
那么我們怎么來求這個p呢?
不同的p,直接導致P(樣本結果|Model)的不同。
好的,我們的p實際上是有無數多種分布的。如下:
那么求出 p70(1-p)30為 7.8 * 10^(-31)
p的分布也可以是如下:
那么也可以求出p70(1-p)30為2.95* 10^(-27)
那么問題來了,既然有無數種分布可以選擇,極大似然估計應該按照什么原則去選取這個分布呢?
答:采取的方法是讓這個樣本結果出現的可能性最大,也就是使得p70(1-p)30值最大,那么我們就可以看成是p的方程,求導即可!
那么既然事情已經發生了,為什么不讓這個出現的結果的可能性最大呢?這也就是最大似然估計的核心。
我們想辦法讓觀察樣本出現的概率最大,轉換為數學問題就是使得:
p70(1-p)30最大,這太簡單了,未知數只有一個p,我們令其導數為0,即可求出p為70%,與我們一開始認為的70%是一致的。其中蘊含着我們的數學思想在里面。
2.貝葉斯
學習機器學習和模式識別的人一定都聽過貝葉斯公式(Bayes’ Theorem):
\(P(A|B)=\frac{P(B|A)P(A)}{P(B)}\)【式1】
后驗概率=\(\frac{似然度}{先驗概率標准化常量}\)
貝葉斯公式看起來很簡單,無非是倒了倒條件概率和聯合概率的公式。
把B展開,可以寫成:
\(P(A|B)=\frac{P(B|A)P(A)}{P(B|A)P(A)+P(B|-A)P(-A)}\)【式2】(-A表示”非A”)
這個式子就很有意思了。
想想這個情況。一輛汽車(或者電瓶車)的警報響了,你通常是什么反應?有小偷?撞車了? 不。。 你通常什么反應都沒有。因為汽車警報響一響實在是太正常了!每天都要發生好多次。本來,汽車警報設置的功能是,出現了異常情況,需要人關注。然而,由於虛警實在是太多,人們漸漸不相信警報的功能了。
貝葉斯公式就是在描述,你有多大把握能相信一件證據?
我們假設響警報的目的就是想說汽車被砸了。把A計作“汽車被砸了”,B計作“警報響了”,帶進貝葉斯公式里看。我們想求等式左邊發生\(A|B\)的概率,這是在說警報響了,汽車也確實被砸了。汽車被砸引起(trigger)警報響,即\(B|A\)。但是,也有可能是汽車被小孩子皮球踢了一下、被行人碰了一下等其他原因(統統計作-A),其他原因引起汽車警報響了,即\(B|-A\)。那么,現在突然聽見警報響了,這時汽車已經被砸了的概率是多少呢(這即是說,警報響這個證據有了,多大把握能相信它確實是在報警說汽車被砸了)?想一想,應當這樣來計算。用警報響起、汽車也被砸了這事件的數量,除以響警報事件的數量(這即【式1】)。進一步展開,即警報響起、汽車也被砸了的事件的數量,除以警報響起、汽車被砸了的事件數量加上警報響起、汽車沒被砸的事件數量(這即【式2】)。
可能有點繞,請稍稍想一想。
再思考【式2】。想讓\(P(A|B)=1\),即警報響了,汽車一定被砸了,該怎么做呢?讓\(P(B|∼A)P(∼A)=0\)即可。很容易想清楚,假若讓\(P(∼A)=0\),即杜絕了汽車被球踢、被行人碰到等等其他所有情況,那自然,警報響了,只剩下一種可能——汽車被砸了。這即是提高了響警報這個證據的說服力。
從這個角度總結貝葉斯公式:做判斷的時候,要考慮所有的因素。 老板罵你,不一定是你把什么工作搞砸了,可能只是他今天出門前和太太吵了一架。
再思考【式2】。觀察【式2】右邊的分子,\(P(B|A)\)為汽車被砸后響警報的概率。姑且仍為這是1吧。但是,若\(P(A)\)很小,即汽車被砸的概率本身就很小,則\(P(B|A)P(A)\)仍然很小,即【式2】右邊分子仍然很小,\(P(A|B)\) 還是大不起來。 這里,\(P(A)\)即是常說的先驗概率,如果A的先驗概率很小,就算\(P(B|A)\))較大,可能A的后驗概率\(P(A|B)\)還是不會大(假設\(P(B|∼A)P(∼A)\)不變的情況下)。
從這個角度思考貝葉斯公式:一個本來就難以發生的事情,就算出現某個證據和他強烈相關,也要謹慎。證據很可能來自別的雖然不是很相關,但發生概率較高的事情。 發現剛才寫的代碼編譯報錯,可是我今天狀態特別好,這語言我也很熟悉,犯錯的概率很低。因此覺得是編譯器出錯了。 ————別,還是先再檢查下自己的代碼吧。