在進入本篇文章之前,讓我們來串聯一下之前幾篇文章我們都說了些什麼。第一篇文章中,我們說machine learning目標在於在樣本空間內找到一個g來近似於目標函數f(數學表達g ≈f ,即Eout(h)≈0)。第二篇文章,我們使用了某一具體的感知機算法,來找到在訓練集中能使Ein(g)≈0的hypothesis。第三篇文章,對machine learning進行了分類,並指出batch supervised binary classficition是machine learning 核心的問題。看看我們所學的,我們有了Ein(g)≈0 ,想要證明Eout(h)≈0,那麼我們可以證明Eout(h)≈Ein(g)。所以在第四篇文章,我們着手於證明這個表達式,但是最後我們只能說在特定的情況下(hypothesis個數有限,訓練集內樣本個數很多很多的時候,有這個表達上的成立,也就是說機器根據訓練集確實能學習到一些規則,這些規則可以用到服從相同概率分佈的樣本上,在這個程度上,機器學習有理論支撐,靠譜的!),但是很多問題,hypothesis set內個數是無窮的,這樣的證明顯然是不夠的,而且其實在上篇文章證明中,我們忽視了重要的問題(證明上線的時候,忽視了bad data 的overlap,導致最終計算的上限偏大,這也是爲什麼我們可以進一步縮小上限,試圖不以hypothesis 個數來表達上限,而且最好是找到一個有限值來表達上限!)那麼我們就開始對之前的證明進行改造吧!
在本篇文章將引入成長函數和break point 概念,爲之後證明成長函數代替M和遠小於2N做準備。
從訓練集看,hypothesis 種類個數有限的!
之前的證明裏,忽視了對於不同的hypothesis 來說bad data可能overlap ,因此最終計算得來的上限偏大,這裏的關鍵問題就是不同的hypothesis 卻有着相同的bad data ,這說明這些不同的hypothesis 其實很相似,進而導致他們的bad data 差不多。從這裏出發,我們希望對hypothesis 進行分類,由於訓練集樣本個數有限,因此分類的可能性是確定的,倒推回去我們知道hypothesis 種類也是有限的。我們使用不同類別的hypothesis 的bad data來計算上限,此時他們的bad data 就不會出現overlap ,我們的上限將能被更精確地表達出來!
下面來具體看看在二維感知機問題上,對不同的訓練集來說,hypothesis 種類的個數是多少。
這裏比較特別,同樣是三個樣本,可是樣本的不同,導致hypothesis 種類個數呈現不同,在之後的證明裏,爲了忽視具體的樣本的差別,我們取最大的hypothesis 類別個數。
所以我們需要證明兩件事,第一件之前的上限中的M爲什麼可以被現在的hypothesis 種類個數代替,第二件事hypothesis 種類個數代替要遠小於2N,才能表明當N很大時,上限近似於0,進而Eout(h)≈Ein(g)。
爲便於我們的證明,引入幾個符號。
mh(N) 表示給定訓練集後,根據訓練集所確定來的不同種類的hypothesis個數,也稱作成長函數。
先來看看幾個簡單的給定訓練集的成長函數值:
break point :第一個樣本可能產生所有結果個數不等於成長函數值的訓練集大小。
引入break point定義,是因爲成長函數的表達與break point有關,且是多項式形式。