引入
上一小節中,“理解為什么機器可以學習——Hoeffding不等式”中,我們介紹了有限假設空間中的概率邊界。在這篇文章中,我們將推廣至無限假設空間中,進而引入VC理論。
面臨待解決的問題
上一節,我們證明了PAC學習的樣本復雜度隨假設空間對數增長,但是以假設空間的個數|H|來刻畫樣本復制度存在缺點:
- 對于|H|很大的情形,會使一個很弱的邊界,即出現錯誤的概率很大
- 對于無限假設空間的情形無法應用
所以,我們要考慮H的復雜度的另一種度量方式,稱為H的Vapnik-Chervonenkis維度(簡稱VC維),我們用VC(H)代替|H|得到樣本復雜度的邊界。
打散(shatter)一個數據集合
VC維衡量假設空間復雜度的方法不是用不同假設的數量|H|,而是用給定X中能被H徹底區分的不同實例的數量(舉個例子,比如2D空間有兩個數據,如果是用感知機模型的話,可以將這兩個數據分成兩個正例、兩個負例、一正一負或一負一正,我們知道在這種情況下,感知機的假設空間是無窮的,但是實際上導致最終分類的只有4中不同結果)。
Dichotomy,一分為二的劃分
想象我們現在有一個假設集合,這個假設集合將N個點的數據分成正例和負例的不同組合(用圈和叉來表示),于是我們就將假設將數據分成不同正負例的組合稱為Dichotomy。Hypotheses和Dichotomies的區別如下圖所示,Dichotomies最多有2的N次方種可能。于是,我們就打算用Dichotomies的有效數量來取代有限假設空間的Hoeffding不等式中的M。

成長函數Growth Function
由于這里我們定義的Dichotomy是依賴具體的N個輸入數據的,為了移除這里的影響,我們現定義成長函數mH(N),用它來表示對于不同的數據集的Dichotomy的最大值。

以2D的Perceptron舉例來說,針對不一樣的輸入點的個數N,可能有不同的有效分離平面,不一定是2的N次方種。

shatter
一數據集D被假設空間H打散(shatter),當且僅當對D的每個劃分,存在H中的某假設與此劃分一致(即當D的每種可能劃分可由H中的某個假設來表達時,稱H打散D)。
注意:
如果一個數據集合沒有被假設空間打散,那么必然存在某種劃分可被定義在數據集中,但不能由假設空間表示。
H的這種打散數據集合的能力是其在這些數據上定義目標函數的表示能力的度量。可以說被打散的X的子集越大,H的表示能力越強。

Break Point of H
基于上面的介紹我們可以回頭看看Hoeffding不等式,我們想要用成長函數mH(N)來代替假設空間的數量|H|,而如果mH(N)和e的負冪次相乘,那么得到一個很小的數,這就對出錯的概率作了一個限制;而如果mH(N)是一個冪指數的話,就無法限制錯誤率。

下面,我們定義一個新的概念——Break Point。如果數據集中的數據個數k是,假設空間H無法打散這個數據集,那么就說k是H的Break Point。比如,2D的Perceptron的情形,當N=4時,數據集應該可以有16種類別情形,而實際上,假設空間的有效個數只是14,那么4就是這個H的Break Point。

Bounding Function
上限函數Bounding Function B(N,k)是Break Point為k時,成長函數mH(N)的最大值,利用上限函數可以不去管假設空間里的具體細節,這樣,只要上限函數是多項式的形式的話,就可以解決問題。
這里我們經過計算歸納,得到了上限函數的列表和規律:

經過一番努力,我們可以得到 成長函數mH(N)<= 上限函數B(N,k) <= 多項式函數poly(N),只要成長函數有Break Point存在,那么該成長函數就是一個多項式。
VC Bound
這里給出VC bound的結論

這個結論通俗來講就是,數據夠多的時候,機器學習算法真的可以學到有用的知識。
小結
上面我們可以知道,要學到有用的東西需要下面幾個條件:
- 好的假設空間,即mH(N)存在Break Point
- 好的數據,即數據足夠多,使得訓練誤差和真實誤差很接近
- 好的算法,即算法可以選出一個訓練誤差很小的假設
- 好的運氣,因為之前說明的是一個概率問題,所以要有一點點運氣,惡劣的情況才不會發生
VC維
定義
定義在輸入空間X上的假設空間H的VC維,是可被H打散的X的最大有限子集的大小(數據量的大小)。如果X的任意有限大的子集可被H打散,則VC(H)為無窮大。
結合上面的介紹,我們知道VC維和Break Point的關系是:VC維 = 'minimum k' - 1。通俗一點,比VC維大就是Break Point。
終于,我們可以得出結論,VC維是有限的假設就是好的假設。
VC維和學習的關系
- VC維和具體的學習算法A沒有關系
- VC維和輸入數據的概率分布P沒有關系
- VC維和目標函數f沒有關系
總結
我們終于一步一步地得到學習器能從數據中學習到有用的知識的限制條件,也明白了為什么機器能學習,其實就是從訓練資料中選擇一個錯誤率小的假設,該假設也能保證在更多的測試數據中存在較小的錯誤率。
在下一小節中,我要將VC維的內容收收尾,介紹一下VC維的物理意義,討論一下PLA算法的VC維。
參考資料
機器學習, Tom M.Mitchell ,機械工業出版社
機器學習基石課程,林軒田,臺灣大學
轉載請注明作者Jason Ding及其出處
Github主頁(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡書主頁(http://www.lxweimin.com/users/2bd9b48f6ea8/latest_articles)