機器學習基石 Lecture6: Theory of Generalization
機器學習基石 Lecture6: Theory of Generalization
Restriction of Break Point
上一個lecture裡講到關於對於給定數量
的資料集,在上面通過對不同假設函式進行分類的類別上限可以用一個growth function
來表示。而這個函式有一個Break Point,在這個點
開始,
大於
時的結果會小於
。下面是幾種不同假設空間的growth function:
那麼當知道了第一個Break Point
之後對
時的情況進行推導時會發生什麼呢?
比如假設當前
而對應的
,那麼在計算
過程如下。首先明確,**Break Point
的意思是,對於任意的
個樣本點,都不能被分成
種不同的dichotomies。**對應圖示如下:
當前的3個樣本點被分為了3種不同的dichotomies。而且沒有哪兩個樣本的組合被分配成了
種dichotomies,也就是這樣的分配是合理的。但是如果再新增一種成為如下形式:
那麼可以看到
這兩個樣本點被分成了4種不同的dichotomies,這樣就與break point
的假設不符合。因此新新增的這種形式應該去掉。而另換了一種第四種之後發現依然符合設定,但是接著無論如何新增第五種,都找不到一個符合條件的分類形式。也就是說
。
這樣我們就有一個想法,即如果能夠找到一個break point
,那麼可能能夠得到
maximum possible
given k
的結論。也就是期望得到growth function有一個多項式級別的上界。
Bounding Function: Basic Cases
我們繼續定義一個邊界函式
,表示的是當break point =
的時候,最大可能的
。它有兩個特性:1.任意
個元素不能夠完成
種分類組合。2.這個值與假設函式
的細節無關,因為表示的是上界。
根據我們目前已知的性質可以簡單的來填一個對應的表格:
右半邊表示的是
相當於沒有限制,因此可以直接寫出。而對角線上的部分可以根據break point的定義來填上,只要小於
即表示的是break point,而
正好表示的是上限,因此減一即可。
Bounding Function: Inductive Cases
下面我們可以計算出
,簡單地編寫一個對應的程式碼判斷即可計算出結果是11。可以根據前三項有單個分類和一對錶示來區分不同的類別,有一種的是紫色,有兩種的是橘色:
這樣就可以分成兩個部分,如下圖所示:
可以得到如下關係:
以此類推得到一個遞推關係:
而以此得到了一個可以簡單歸納法證明的不等式(不等號其實為等號):
這個不等式得到的結果顯示,對於給定的
,上限函式
的上限是個多項式。因此推出
的上限是個多項式。可以進行簡單的驗證:
A Pictorial Proof
回到我們最初的不等式,我們想要的是希望資料集內部錯誤率
能夠與外部錯誤率
相等(PAC)。想要的可能是下圖上部的不等式。不過實際上得到的是下部分的不等式。
下面可以簡要介紹其中多出的常數是如何出現的。
步驟1:使用另一個數據集上的錯誤率來替代集外錯誤率:
也就是利用這兩個資料集上錯誤率相差較大的概率,來放縮作為資料集內部錯誤率
與外部錯誤率
相差的上限。
有限多種, 無限多種,因此需要替換外部錯誤率。(什麼意思???概率上不好算???)
步驟2:將假設空間
使用類別進行展開:
這樣無窮大的假設空間
就使用了有限大的dichotomies數量
來取代。而這個數的上限為
。
步驟3:使用一個不放回形式的Hoeffding不等式:
也就是對
的部分進行計算得到最終的結果。對應的結果固定了一個假設函式
,使用的是一個只有
個樣例的不放回的抽樣。因此得到了相對應的結果。這個結果叫做 VC bound。
好,假裝這三步都很懂,本節結束。