歡迎轉載,可以關注博客:http://blog.csdn.net/cqy_chen
概要
本節主要講解機器學習的一般化理論。上節中講到由於在很多的假設空間中,M會變得越來越大,就會導致機器學習無法工作,我們就想通過一個小的m來替代,提出增長函數。那麼本節在上節的基礎上展開。
斷點的限制
上節中我們知道了集中簡單的情況下的成長函數:
這裏再加入一個概念,shatter (粉碎),就是當我們的假設空間可以完全的拆分資料的時候,稱之爲shatter。比如在二維的PLA中,由於斷點是4,在3個資料點的時候,假設空間是可以shatter這些資料的。但是當有4個點的時候,就不能shatter了。
舉一個簡單例子,這裏我們定義任意兩個點不能被shatter。就會說斷點爲2,如果出現如下三個點,那麼它的假設空間有多大呢?
當我們設定資料量的個數,同時設定斷點爲2。
那麼有如下結論:
N=1的時候,假設空間只有兩種類型。
N=2的時候,假設空間只有3種,因爲任意兩個點不能被shatter。
N=3的時候,假設空間只有4種。
所以我們可以看如果存在斷點,好像就限制了假設空間的成長函數。這裏來猜想下,假設空間的大小
就是假設空間的成長函數應該是一個多項式的,而不是指數的,這樣就可以證明機器學習是可行的了。
簡單條件下的邊界函數
這裏定義一個概念,邊界函數,如
如下舉個簡單例子:
當N=2,k=2的時候,我們證明了假設空間最多隻有3種,當N=3,k=2,假設空間最多隻有4種。
當K=1的時候,那麼B(N,k)=1.以爲1個點都沒法shatter。
如果k>N,就是N還不夠塞牙縫的,那肯定是
當K=N的時候,由於k個點不能被shatter,最大是
所以我們得到如下圖所示:
這裏需要注意下:
比如在2D的pla中,我們知道k=4,當N=4,最多隻有14種,所以,這裏的B(N,K)是一個上界。
一般情況下的邊界函數
現在的核心就是剩下的部分咯。
比如現在要求得B(4,3)。我們可以想想,這是在k=3的情況下,N=4,那麼我們從上面表格中的得到B(3,3)=7。那麼就是在N=3的情況下的假設空間數據上添加了一個點。
能否根據B(3,3)推導B(4,3)呢?
我們先採用傻瓜式的舉例來看看:
那麼得到B(4,3)=11,好像B(4,3)=B(3,3)+B(3,2)
所以我們填寫表格如下;
那麼我們就可以推論:
那麼我們就可以成長函數小於等於邊界函數,邊界函數又小於等多個相加,多個相加又小於等於多項式的函數。
到此,我們證明了成長函數,如果存在斷點,那麼我們能夠得到成長函數是多項式的增長的。那麼機器學習是可行的。
簡單證明
那麼上面已經證明,成長函數是多項式增長的。那麼是否可以直接替換進霍夫丁不等式呢?
第一步
採用
所以我們只需要和一部分驗證的數據
這裏再採用2N個點,N個作爲
第二步
使用
如下圖
第三步
採用無放回的霍夫丁不等式
假設有2N個點,這個時候,採用不放回的抽樣比較。就得到了上面的式子。
所以最後得到:
證明當點夠多的時候,可以選擇誤差最小的點作爲我們分分類器,可以在新的樣本中有相似的表現。
上面的證明比較簡單,詳細的推導過程需要自己去理理。
歡迎轉載,可以關注博客:http://blog.csdn.net/cqy_chen