我們先對前面得到的生長函數和VC bound 做一點小的修改。
1,VC 維的定義
VC Demension: 對於假設空間H,滿足生長函數m(N) = 2^N 的最大的N, 記爲dvc(H).
可知,dvc(H) 比H 的最小突破點k 小1,即 dvc(H) = k-1.
2維感知機的VC維是3.
2,感知機的VC維
我們已經知道,2維感知機的VC維是3.
對於d 維感知機,我們猜測它的VC 維是 d+1 ?
對此,我們只要證明 dvc >= d+1 && dvc <= d+1.
(1) 證明 dvc >= d+1
對於d 維空間的任意輸入數據x1, 都增加一個分量x10, 取值恆爲1.
即 x1 = (1, x11, x12, ... , x1d)。 (x1 是一個向量)
取組特殊的輸入數據:
對於上面的d+1 個輸入數據,我們可以求得向量w :
也就是說,這樣的d+1 個輸入數據可以被d 維感知機打散(shattered), 所以有 dvc >= d+1.
(2) 證明 dvc <= d+1
對於d 維空間的輸入數據:
也就是說,不可能存在d+2 個線性獨立的輸入數據。其中,線性組合中的係數可能爲正、負或零,但是不全爲零。
等式兩邊都乘以 w 向量:
假設這d+2 個數據都可以被打散。那麼我們可以對 w*x 隨意取值(-1 或 +1),上式都應該能夠滿足。然而,對於這樣的情況:當係數a 爲正數時,w*x 取+1,反之w*x 取-1,式子右邊一定大於0;此時式子左邊就無法取-1,與假設矛盾。
所以d 維感知機無法打散 d+2 個點,也就是說VC 維最大隻能是 d+1.
綜合(1)(2),證得 dvc = d+1.
3,VC 維的物理意義
VC維可以反映假設H 的強大程度(powerfulness),VC 維越大,H也越強,因爲它可以打散更多的點。
通過對常見幾種假設的VC 維的分析,我們可以得到規律:VC 維與假設參數w 的自由變量數目大約相等。
例如,對於2維感知機,w = (w0, w1, w2),有三個自由變量,dvc = 3.
4,VC 維的解釋
VC 維反映了假設H 的強大程度,然而VC 維並不是越大越好。
通過一些列數學推導,我們得到:
上面的”模型複雜度“ 的懲罰(penalty),基本表達了模型越複雜(VC維大),Eout 可能距離Ein 越遠。
下面的曲線可以更直觀地表示這一點:
模型較複雜時(dvc 較大),需要更多的訓練數據。 理論上,數據規模N 約等於 10000*dvc(稱爲採樣複雜性,sample complexity);然而,實際經驗是,只需要 N = 10*dvc.
造成理論值與實際值之差如此之大的最大原因是,VC Bound 過於寬鬆了,我們得到的是一個比實際大得多的上界。
即便如此,VC Dimension & VC bound 依然是分析機器學習模型的最重要的理論工具。