台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension
紅色石頭的個(gè)人網(wǎng)站:redstonewill.com
前幾節(jié)課著重介紹了機(jī)器能夠?qū)W習(xí)的條件并做了詳細(xì)的推導(dǎo)和解釋。機(jī)器能夠?qū)W習(xí)必須滿足兩個(gè)條件:
- 假設(shè)空間H的Size M是有限的,即當(dāng)N足夠大的時(shí)候,那么對(duì)于假設(shè)空間中任意一個(gè)假設(shè)g,Eout≈EinEout≈Ein。
- 利用算法A從假設(shè)空間H中,挑選一個(gè)g,使Ein(g)≈0Ein(g)≈0,則Eout≈0Eout≈0。
這兩個(gè)條件,正好對(duì)應(yīng)著test和trian兩個(gè)過程。train的目的是使損失期望Ein(g)≈0Ein(g)≈0;test的目的是使將算法用到新的樣本時(shí)的損失期望也盡可能小,即Eout≈0Eout≈0。
正因?yàn)槿绱?#xff0c;上次課引入了break point,并推導(dǎo)出只要break point存在,則M有上界,一定存在Eout≈EinEout≈Ein。
本次筆記主要介紹VC Dimension的概念。同時(shí)也是總結(jié)VC Dimension與Ein(g)≈0Ein(g)≈0,Eout≈0Eout≈0,Model Complexity Penalty(下面會(huì)講到)的關(guān)系。
一、Definition of VC Dimension
首先,我們知道如果一個(gè)假設(shè)空間H有break point k,那么它的成長(zhǎng)函數(shù)是有界的,它的上界稱為Bound function。根據(jù)數(shù)學(xué)歸納法,Bound function也是有界的,且上界為Nk?1Nk?1。從下面的表格可以看出,N(k?1)N(k?1)比B(N,k)松弛很多。
則根據(jù)上一節(jié)課的推導(dǎo),VC bound就可以轉(zhuǎn)換為:
這樣,不等式只與k和N相關(guān)了,一般情況下樣本N足夠大,所以我們只考慮k值。有如下結(jié)論:
若假設(shè)空間H有break point k,且N足夠大,則根據(jù)VC bound理論,算法有良好的泛化能力
在假設(shè)空間中選擇一個(gè)矩g,使Ein≈0Ein≈0,則其在全集數(shù)據(jù)中的錯(cuò)誤率會(huì)較低
下面介紹一個(gè)新的名詞:VC Dimension。VC Dimension就是某假設(shè)集H能夠shatter的最多inputs的個(gè)數(shù),即最大完全正確的分類能力。(注意,只要存在一種分布的inputs能夠正確分類也滿足)。
shatter的英文意思是“粉碎”,也就是說對(duì)于inputs的所有情況都能列舉出來(lái)。例如對(duì)N個(gè)輸入,如果能夠?qū)?span id="ozvdkddzhkzd" class="MathJax_Preview" style="color: inherit; display: none;">2N2N種情況都列出來(lái),則稱該N個(gè)輸入能夠被假設(shè)集H shatter。
根據(jù)之前break point的定義:假設(shè)集不能被shatter任何分布類型的inputs的最少個(gè)數(shù)。則VC Dimension等于break point的個(gè)數(shù)減一。
現(xiàn)在,我們回顧一下之前介紹的四種例子,它們對(duì)應(yīng)的VC Dimension是多少:
用dvcdvc代替k,那么VC bound的問題也就轉(zhuǎn)換為與dvcdvc和N相關(guān)了。同時(shí),如果一個(gè)假設(shè)集H的dvcdvc確定了,則就能滿足機(jī)器能夠?qū)W習(xí)的第一個(gè)條件Eout≈EinEout≈Ein,與算法、樣本數(shù)據(jù)分布和目標(biāo)函數(shù)都沒有關(guān)系。
二、VC Dimension of Perceptrons
回顧一下我們之前介紹的2D下的PLA算法,已知Perceptrons的k=4,即dvc=3dvc=3。根據(jù)VC Bound理論,當(dāng)N足夠大的時(shí)候,Eout(g)≈Ein(g)Eout(g)≈Ein(g)。如果找到一個(gè)g,使Ein(g)≈0Ein(g)≈0,那么就能證明PLA是可以學(xué)習(xí)的。
這是在2D情況下,那如果是多維的Perceptron,它對(duì)應(yīng)的dvcdvc又等于多少呢?
已知在1D Perceptron,dvc=2dvc=2,在2D Perceptrons,dvc=3dvc=3,那么我們有如下假設(shè):dvc=d+1dvc=d+1,其中d為維數(shù)。
要證明的話,只需分兩步證明:
- dvc≥d+1dvc≥d+1
- dvc≤d+1dvc≤d+1
首先證明第一個(gè)不等式:dvc≥d+1dvc≥d+1。
在d維里,我們只要找到某一類的d+1個(gè)inputs可以被shatter的話,那么必然得到dvc≥d+1dvc≥d+1。所以,我們有意構(gòu)造一個(gè)d維的矩陣XX能夠被shatter就行。XX是d維的,有d+1個(gè)inputs,每個(gè)inputs加上第零個(gè)維度的常數(shù)項(xiàng)1,得到XX的矩陣:
矩陣中,每一行代表一個(gè)inputs,每個(gè)inputs是d+1維的,共有d+1個(gè)inputs。這里構(gòu)造的XX很明顯是可逆的。shatter的本質(zhì)是假設(shè)空間H對(duì)XX的所有情況的判斷都是對(duì)的,即總能找到權(quán)重W,滿足X?W=yX?W=y,W=X?1?yW=X?1?y。由于這里我們構(gòu)造的矩陣XX的逆矩陣存在,那么d維的所有inputs都能被shatter,也就證明了第一個(gè)不等式。
然后證明第二個(gè)不等式:dvc≤d+1dvc≤d+1。
在d維里,如果對(duì)于任何的d+2個(gè)inputs,一定不能被shatter,則不等式成立。我們構(gòu)造一個(gè)任意的矩陣XX,其包含d+2個(gè)inputs,該矩陣有d+1列,d+2行。這d+2個(gè)向量的某一列一定可以被另外d+1個(gè)向量線性表示,例如對(duì)于向量Xd+2Xd+2,可表示為:
其中,假設(shè)a1>0a1>0,a2,?,ad+1<0a2,?,ad+1<0.
那么如果X1X1是正類,X2,?,Xd+1X2,?,Xd+1均為負(fù)類,則存在WW,得到如下表達(dá)式:
Xd+2?W=Xd+2?W=a1?X1?Wa1?X1?W+a2?X2?Wa2?X2?W+??+ad+1?Xd+1?Wad+1?Xd+1?W>0>0
因?yàn)槠渲兴{(lán)色項(xiàng)大于0,代表正類;紅色項(xiàng)小于0,代表負(fù)類。所有對(duì)于這種情況,Xd+2Xd+2一定是正類,無(wú)法得到負(fù)類的情況。也就是說,d+2個(gè)inputs無(wú)法被shatter。證明完畢!
綜上證明可得dvc=d+1dvc=d+1。
三、Physical Intuition VC Dimension
上節(jié)公式中WW又名features,即自由度。自由度是可以任意調(diào)節(jié)的,如同上圖中的旋鈕一樣,可以調(diào)節(jié)。VC Dimension代表了假設(shè)空間的分類能力,即反映了H的自由度,產(chǎn)生dichotomy的數(shù)量,也就等于features的個(gè)數(shù),但也不是絕對(duì)的。
例如,對(duì)2D Perceptrons,線性分類,dvc=3dvc=3,則W={w0,w1,w2}W={w0,w1,w2},也就是說只要3個(gè)features就可以進(jìn)行學(xué)習(xí),自由度為3。
介紹到這,我們發(fā)現(xiàn)M與dvcdvc是成正比的,從而得到如下結(jié)論:
四、Interpreting VC Dimension
下面,我們將更深入地探討VC Dimension的意義。首先,把VC Bound重新寫到這里:
根據(jù)之前的泛化不等式,如果|Ein?Eout|>?|Ein?Eout|>?,即出現(xiàn)bad壞的情況的概率最大不超過δδ。那么反過來(lái),對(duì)于good好的情況發(fā)生的概率最小為1?δ1?δ,則對(duì)上述不等式進(jìn)行重新推導(dǎo):
??表現(xiàn)了假設(shè)空間H的泛化能力,??越小,泛化能力越大。
至此,已經(jīng)推導(dǎo)出泛化誤差EoutEout的邊界,因?yàn)槲覀兏P(guān)心其上界(EoutEout可能的最大值),即:
上述不等式的右邊第二項(xiàng)稱為模型復(fù)雜度,其模型復(fù)雜度與樣本數(shù)量N、假設(shè)空間H(dvcdvc)、??有關(guān)。EoutEout由EinEin共同決定。下面繪出EoutEout、model complexity、EinEin隨dvcdvc變化的關(guān)系:
通過該圖可以得出如下結(jié)論:
dvcdvc越大,EinEin越小,ΩΩ越大(復(fù)雜)。
dvcdvc越小,EinEin越大,ΩΩ越小(簡(jiǎn)單)。
隨著dvcdvc增大,EoutEout會(huì)先減小再增大。
所以,為了得到最小的EoutEout,不能一味地增大dvcdvc以減小EinEin,因?yàn)?span id="ozvdkddzhkzd" class="MathJax_Preview" style="color: inherit; display: none;">EinEin太小的時(shí)候,模型復(fù)雜度會(huì)增加,造成EoutEout變大。也就是說,選擇合適的dvcdvc,選擇的features個(gè)數(shù)要合適。
下面介紹一個(gè)概念:樣本復(fù)雜度(Sample Complexity)。如果選定dvcdvc,樣本數(shù)據(jù)D選擇多少合適呢?通過下面一個(gè)例子可以幫助我們理解:
通過計(jì)算得到N=29300,剛好滿足δ=0.1δ=0.1的條件。N大約是dvcdvc的10000倍。這個(gè)數(shù)值太大了,實(shí)際中往往不需要這么多的樣本數(shù)量,大概只需要dvcdvc的10倍就夠了。N的理論值之所以這么大是因?yàn)閂C Bound 過于寬松了,我們得到的是一個(gè)比實(shí)際大得多的上界。
值得一提的是,VC Bound是比較寬松的,而如何收緊它卻不是那么容易,這也是機(jī)器學(xué)習(xí)的一大難題。但是,令人欣慰的一點(diǎn)是,VC Bound基本上對(duì)所有模型的寬松程度是基本一致的,所以,不同模型之間還是可以橫向比較。從而,VC Bound寬松對(duì)機(jī)器學(xué)習(xí)的可行性還是沒有太大影響。
五、總結(jié)
本節(jié)課主要介紹了VC Dimension的概念就是最大的non-break point。然后,我們得到了Perceptrons在d維度下的VC Dimension是d+1。接著,我們?cè)谖锢硪饬x上,將dvcdvc與自由度聯(lián)系起來(lái)。最終得出結(jié)論dvcdvc不能過大也不能過小。選取合適的值,才能讓EoutEout足夠小,使假設(shè)空間H具有良好的泛化能力。
注明:
文章中所有的圖片均來(lái)自臺(tái)灣大學(xué)林軒田《機(jī)器學(xué)習(xí)基石》課程
關(guān)注公眾號(hào)并輸入關(guān)鍵字“jspdf”獲得該筆記的pdf文件哦~
更多AI資源請(qǐng)關(guān)注公眾號(hào):紅色石頭的機(jī)器學(xué)習(xí)之路(ID:redstonewill)
總結(jié)
以上是生活随笔為你收集整理的台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RedMonk 2020 年 Q3 编程
- 下一篇: Turbo C 2.0、Borland