本章的思路在於揭示VC Dimension的意義,簡單來講就是假設的自由度,或者假設包含的feature vector的個數(通常狀況下),同時進一步說明了Dvc和,Eout,Ein以及Model Complexity Penalty的關係。算法
一回顧機器學習
由函數B(N,k)的定義,能夠獲得比較鬆的不等式mh(N)小於等於N^(k-1)(取第一項)。函數
這樣就能夠把不等式轉化爲僅僅只和VC Dimension和N相關了,從而得出以下結論:學習
1 mh(N)有break point k,那麼其就是多項式級別的,咱們認爲假設數量不算多,是個好的假設;spa
2 N 足夠大,這樣咱們便算有了好的抽樣數據集(假設不含不少Noise);blog
=〉這兩點由上述不等式能夠推導這樣的機器學習算法有好的泛化能力,其在全集上會有和在D上一致的表現;input
3 若是算法選擇的是小的Ein it
=>最終咱們能夠推斷機器能夠學習,由於其在全集數據集錯誤率會較低。io
二什麼是VC Dimension model
下面給出了VC Dimension的定義,
一樣,將Dvc替換k,獲得mh(N)<=N^(Dvc)
三 VC Dimension 和 Feature 數量的關係,在PLA算法中
接下來回顧了PLA在2d狀況下,因爲其Dvc=3,因此按照算法咱們選小的Ein就可以保證機器學習算法的運行,可是這是2維的狀況,對於多維呢?也就是說增長feature咋辦?
這裏又拋出了一個結論:Dvc = d+1, d爲feature vector的維度。
要證實這個等式,能夠將它分爲兩塊證實,
1 證實 Dvc >= d+1;
2 證實 Dvc <= d+1;
首先證實等式1:
由於Dvc >= d+1, 那麼咱們必然能夠shatter 某一類的d+1的inputs,這個是VC Dimension的定義。這裏用線性代數的方法表達了X矩陣的每一行是一個x向量的轉置。這個有意構造的X便可以被shatter。首先,shatter的本質是H對X的每一個判斷都是對的即等於y,因此有以下不等式:
X*W = Y,咱們注意到X是可逆的,因此W = X^(-1) * Y,因此咱們只要讓feature vector等於X的逆矩陣乘以Y就能給徹底shatter X,言外之意,只要咱們構造的inputs其有逆矩陣就可以被shatter!
下面證實等式二,Dvc<=d+1,也就是說對於d+2的inputs,其必定不能被shatter,一樣咱們構造一個X,此次是任意的,其包含d+2個inputs,咱們發現這個矩陣的列爲d+1而行爲d+2,由線性代數的知識,咱們知道這d+2個向量的某一個能夠表示爲另外d+1個向量的線性組合,假設這個向量爲Xd+2,那麼便有了以下等式:
w^Txd+2 = a1w^Tx1 + a2w^Tx2 + ... + ad+1w^Txd+1,
咱們只要構造這樣這組w,保證每一項是正的,例如假設a1是負的,那麼咱們構造w使得w^Tx1也是負的,這樣就使得最終的值爲正,從而咱們無法分類其爲負的狀況,由於其值始終是正的。換句話說,由於d+2是前d+1的線性組合,這樣一個限制致使了最終的結果。因此對於d+2咱們沒法徹底分類,也即便Dvc<=d+1。
四 VC Dimension的直觀理解
那麼VC Dimension本質上究竟是什麼呢?
下圖給了答案
自由度的概念,體如今咱們可以包含多少feature w,可以有多少假設H的數量,以及咱們最終的分類能力Dvc,也就是說Dvc本質上大致上是H的分類能力,一樣能夠理解爲feature的個數,假設的個數,由於它們都是互相成正比的。
再次回到之前那個泛化不等式:
將它左右變形,求出Eout的的界限,咱們比較關注上限,可知咱們最終的機器學習算法其在總體的錯誤率和N,H,S的表達式(Model 複雜度的懲罰)有關。下圖很直觀的給出了它們之間的關係:
這個圖說了:
1 Dvc越高 -> Ein降低(shatter能力變強)-> model complexity的penalty提升,致使Eout先降後升
2 Dvc越低 -> Ein升高 -> model complexity的penalty下降,Eout最終也是會上升
因此最好狀況的Eout是咱們選取Dvc在中間的狀況,這樣Ein和penalty都不高,即最終的Eout也不會過高。這也就是爲何,咱們不可以盲目增長feature也不能有太少feature的緣由。
五總結
本章主要描述了VC Dimension並給出了較爲直觀的解釋,咱們不能盲目增長VC Dimension也不能過低,而應該去中間值,這樣既保證Ein不高也保證model complexity的penalty不高。