林軒田機器學習基石課程學習筆記7 — The VC Dimension

红色石头發表於2018-07-24

前幾節課著重介紹了機器能夠學習的條件並做了詳細的推導和解釋。機器能夠學習必須滿足兩個條件:

  • 假設空間H的Size M是有限的,即當N足夠大的時候,那麼對於假設空間中任意一個假設g,E_{out}\approx E_{in}
  • 利用演算法A從假設空間H中,挑選一個g,使E_{in}(g)\approx0,則E_{out}\approx0

這兩個條件,正好對應著test和trian兩個過程。train的目的是使損失期望E_{in}(g)\approx0;test的目的是使將演算法用到新的樣本時的損失期望也儘可能小,即E_{out}\approx0

正因為如此,上次課引入了break point,並推匯出只要break point存在,則M有上界,一定存在E_{out}\approx E_{in}

本次筆記主要介紹VC Dimension的概念。同時也是總結VC Dimension與E_{in}(g)\approx0E_{out}\approx0,Model Complexity Penalty(下面會講到)的關係。

一、Definition of VC Dimension

首先,我們知道如果一個假設空間H有break point k,那麼它的成長函式是有界的,它的上界稱為Bound function。根據數學歸納法,Bound function也是有界的,且上界為N^{k-1}。從下面的表格可以看出,N(k-1)比B(N,k)鬆弛很多。

則根據上一節課的推導,VC bound就可以轉換為:

這樣,不等式只與k和N相關了,一般情況下樣本N足夠大,所以我們只考慮k值。有如下結論:

  • 若假設空間H有break point k,且N足夠大,則根據VC bound理論,演算法有良好的泛化能力
  • 在假設空間中選擇一個矩g,使E_{in}\approx0,則其在全集資料中的錯誤率會較低

下面介紹一個新的名詞:VC Dimension。VC Dimension就是某假設集H能夠shatter的最多inputs的個數,即最大完全正確的分類能力。(注意,只要存在一種分佈的inputs能夠正確分類也滿足)。

shatter的英文意思是“粉碎”,也就是說對於inputs的所有情況都能列舉出來。例如對N個輸入,如果能夠將2^N種情況都列出來,則稱該N個輸入能夠被假設集H shatter。

根據之前break point的定義:假設集不能被shatter任何分佈型別的inputs的最少個數。則VC Dimension等於break point的個數減一。

現在,我們回顧一下之前介紹的四種例子,它們對應的VC Dimension是多少:

d_{vc}代替k,那麼VC bound的問題也就轉換為與d_{vc}和N相關了。同時,如果一個假設集H的d_{vc}確定了,則就能滿足機器能夠學習的第一個條件E_{out}\approx E_{in},與演算法、樣本資料分佈和目標函式都沒有關係。

二、VC Dimension of Perceptrons

回顧一下我們之前介紹的2D下的PLA演算法,已知Perceptrons的k=4,即d_{vc}=3。根據VC Bound理論,當N足夠大的時候,E_{out}(g)\approx E_{in}(g)。如果找到一個g,使E_{in}(g)\approx 0,那麼就能證明PLA是可以學習的。

這是在2D情況下,那如果是多維的Perceptron,它對應的d_{vc}又等於多少呢?

已知在1D Perceptron,d_{vc}=2,在2D Perceptrons,d_{vc}=3,那麼我們有如下假設:d_{vc}=d+1,其中d為維數。

要證明的話,只需分兩步證明:

  • d_{vc}\geq d+1
  • d_{vc}\leq d+1

首先證明第一個不等式:d_{vc}\geq d+1

在d維裡,我們只要找到某一類的d+1個inputs可以被shatter的話,那麼必然得到d_{vc}\geq d+1。所以,我們有意構造一個d維的矩陣X能夠被shatter就行。X是d維的,有d+1個inputs,每個inputs加上第零個維度的常數項1,得到X的矩陣:

矩陣中,每一行代表一個inputs,每個inputs是d+1維的,共有d+1個inputs。這裡構造的X很明顯是可逆的。shatter的本質是假設空間H對X的所有情況的判斷都是對的,即總能找到權重W,滿足X\ast W=yW=X^{-1}\ast y。由於這裡我們構造的矩陣X的逆矩陣存在,那麼d維的所有inputs都能被shatter,也就證明了第一個不等式。

綜上證明可得d_{vc}=d+1

三、Physical Intuition VC Dimension

上節公式中W又名features,即自由度。自由度是可以任意調節的,如同上圖中的旋鈕一樣,可以調節。VC Dimension代表了假設空間的分類能力,即反映了H的自由度,產生dichotomy的數量,也就等於features的個數,但也不是絕對的。

)

例如,對2D Perceptrons,線性分類,d_{vc}=3,則W={w_0,w_1,w_2},也就是說只要3個features就可以進行學習,自由度為3。

介紹到這,我們發現M與d_{vc}是成正比的,從而得到如下結論:

四、Interpreting VC Dimension

下面,我們將更深入地探討VC Dimension的意義。首先,把VC Bound重新寫到這裡:

根據之前的泛化不等式,如果|E_{in}-E_{out}|>\epsilon,即出現bad壞的情況的概率最大不超過\delta。那麼反過來,對於good好的情況發生的概率最小為1-\delta,則對上述不等式進行重新推導:

\epsilon表現了假設空間H的泛化能力,\epsilon越小,泛化能力越大。

至此,已經推匯出泛化誤差E_{out}的邊界,因為我們更關心其上界(E_{out}可能的最大值),即:

上述不等式的右邊第二項稱為模型複雜度,其模型複雜度與樣本數量N、假設空間H(d_{vc})、\epsilon有關。E_{out}E_{in}共同決定。下面繪出E_{out}、model complexity、E_{in}d_{vc}變化的關係:

通過該圖可以得出如下結論:

  • d_{vc}越大,E_{in}越小,\Omega越大(複雜)
  • d_{vc}越小,E_{in}越大,\Omega越小(簡單)

  • 隨著d_{vc}增大,E_{out}會先減小再增大

所以,為了得到最小的E_{out},不能一味地增大d_{vc}以減小E_{in},因為E_{in}太小的時候,模型複雜度會增加,造成E_{out}變大。也就是說,選擇合適的d_{vc},選擇的features個數要合適。

下面介紹一個概念:樣本複雜度(Sample Complexity)。如果選定d_{vc},樣本資料D選擇多少合適呢?通過下面一個例子可以幫助我們理解:

通過計算得到N=29300,剛好滿足\delta=0.1的條件。N大約是d_{vc}的10000倍。這個數值太大了,實際中往往不需要這麼多的樣本數量,大概只需要d_{vc}的10倍就夠了。N的理論值之所以這麼大是因為VC Bound 過於寬鬆了,我們得到的是一個比實際大得多的上界。

值得一提的是,VC Bound是比較寬鬆的,而如何收緊它卻不是那麼容易,這也是機器學習的一大難題。但是,令人欣慰的一點是,VC Bound基本上對所有模型的寬鬆程度是基本一致的,所以,不同模型之間還是可以橫向比較。從而,VC Bound寬鬆對機器學習的可行性還是沒有太大影響。

五、總結

本節課主要介紹了VC Dimension的概念就是最大的non-break point。然後,我們得到了Perceptrons在d維度下的VC Dimension是d+1。接著,我們在物理意義上,將d_{vc}與自由度聯絡起來。最終得出結論d_{vc}不能過大也不能過小。選取合適的值,才能讓E_{out}足夠小,使假設空間H具有良好的泛化能力。

註明:

文章中所有的圖片均來自臺灣大學林軒田《機器學習基石》課程

更多AI資源請關注公眾號:AI有道(ID:redstonewill)

相關文章