林軒田-機器學習基石 課堂筆記(五)Training versus Testing

1、 Recap and Preview

第一堂課我們告訴大家learning想做的事情,就是有一個未知的f,我們的演算法能找出一個g,使這個g≈f,保證Eout≈0。

第二堂課我們引入了PLA算法,可以將線性可分的樣本正確的進行分類處理,並針對線性不可分的情況提出了噪音的概念和Pocket算法,這些算法目的都是讓Ein≈0。

第三堂課我們介紹了機器學習的種類,知道目前我們的訓練樣本屬性爲batch & supervised & binary classification。

第四堂課我們主要介紹了機器學習的可行性。雖然由NFL定理,ML看似是不可行的,但根據之後統計學知識的分析,我們發現,如果hypothesis數量M有限且樣本數據足夠大,那麼機器學習一般情況下是可行的,即在合適的情況下,Ein≈Eout。

因此我們機器學習的主要目標就具體爲下面兩個核心問題:

①Ein≈Eout

②Ein≈0

從而我們需要考慮到M與這兩個問題之間的關係:

我們發現,選擇一個合適的M是非常重要的。M很小時,Bad Sample出現的概率非常小,可以滿足①,但由於假設空間過小,我們不一定能找到一個合適的方案滿足②;M很大時,雖然因此會有很多選擇方案使得滿足②,但因此Bad Sample出現的概率會增大。如果M無限大,學習一定是無效的嘛?答案是否定的。比如之前學習的感知機,即使劃分直線的方案有無限多,但是PLA依然可以很好的做出正確分類。

我們知道假設空間H的大小爲M,通過上述公式,當M 無限大時,無法有效進行機器學習。這主要是由於我們通過union bound計算出的上界過分大了。實際上,由於假設下發生的壞事情是有很多幾乎重疊的,其實我們可以得到更小的上界,因此我們想辦法建立一個有限的mH代替無限的M,其中mH的值與h有關。

2、Effective Number of Lines


上面說到,當M=∞時,Bad events會很大,Ein和Eout也不接近。但這種union bound的形式得到的上界過分大,實際情況並不如此,很多情況下的h都是有交集的,例如:


所以我們需要找到重疊部分,將無限的M變成有限的數。比如:

①一個平面上如果只有一個點x1,則直線的種類有兩種:將x1劃分爲+1或者將x1劃分爲-1



②一個平面上有兩個點x1、x2,則直線的種類有四種:



③一個平面上有三個點x1、x2、x3,則直線的種類有八種:

PS:有時還可能小於八種(出現線性不可分的情況)



④一個平面上有四個點x1、x2、x3、x4,最多有十四種


我們發現,有效直線的數量總是<=2^N(N爲點的個數)。如果用effective(N)代替M,有effective(N)<=2^N,Hoeffding不等式可表示爲:



如果可以使得effective(N)<<2^N,即右邊等式接近於0,那麼即使M無限大,直線的種類也是有限的,此時學習是可能的。


3、Effective Number of Hypotheses

引入兩個概念:

①dichotomy(二分),相當於所說的有效假設的集合。輸入規模爲N時dichotomy的上界爲2^N。


②growth function(成長函數),記爲mH(H),表示由N個點組成的所有集合中對應dichotomy最大的集合的值,其上界爲2^N。例如之前的例子:



例1:一維的Positive Rays


可知如果直線上存在N個點,則有N+1種方式,可以得出它的成長函數爲mH(N)=n+1。



例2:一維的Positive Intervals



可知如果直線上存在N個點,則要找出兩個位置來區分這些點,利用排列組合,在N+1個位置中插入兩個位置即可,再加上全爲-1的情況,它的成長函數爲mH(N)=1/2(N^2+N)+1。



例3:二維的Convex Set(任意凸多邊形內部爲+1,外部爲-1)


(左圖是Convex的,滿足要求;右圖不是Convex的,不滿足)

顯然可知,如果圖上存在N個點,將它們按照如下的凸分佈時,其成長函數爲mH(N)=2^N。



4、Break Point

由之前的內容我們討論出了四組情況下的成長函數



我們發現positive rays和positive intervals的成長函數都是polynomial的,因此用mH代替M時,情況就比較好;但是convex sets的成長函數等於M,是exponential的,因此不能保證機器學習的可行性,情況比較壞。對於2D perceptrons,下面我們來分析它的成長函數的情況。

首先引入一個概念— —Break Point(突破點):對於某種假設空間H,如果m(k)<2^k, 則k是它的突破點。

PS:如果k是Break Point,那麼k+1、k+2...都是Break Point。

顯然我們得出四組情況下的Break Point


我們猜測成長函數的成長速度可能與break point存在某種關係。沒有Break Point時,例如convex sets,它的成長函數是2的N次方;但有Break Point時,例如positive rays,Break Point k=2,成長函數是O(N);positive intervals,Break Point k=3,成長函數是O(N^2)。因此我們可以假設如果Break Point存在且爲k,那麼成長函數的增長速度大概與N^(k-1)有關,比如2D perceptron的break point k=4,搞不好它的成長函數就在O(N^3)左右,如果能用多項式形式的成長函數代替M,就滿足了機器學習可行的條件。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章