1. 程式人生 > >機器學習基石筆記-Lecture 5-7 VC dimension

機器學習基石筆記-Lecture 5-7 VC dimension

func contain containe attach 一個數 實的 man 分享 alt

為了引出VC維做了很長的鋪墊。。VC維:用來描述假設空間的表達能力。

第四節講到對有限的假設空間,只要N足夠大,不管A如何選g,訓練數據如何選取,g的訓練錯誤率和真實的錯誤率都很接近。

現在先解決無限假設空間的問題。

希望找到一個 m_H 來替代無限大的M。

技術分享

系數M的來源是因為對bad data的概率值進行了累加。

技術分享

但是其實一些h在同一個data上是重疊的,union bound將概率放大了。這樣就希望對h進行一些劃分,找出在data上表現類似的h,歸為一類。

技術分享

這裏舉出了二維感知機分類的例子,來說明平面上只存在有限個h類。

技術分享

技術分享

然後引出 成長函數和 break point的概念。

dichotomy: 二分

技術分享 假設空間對N個有限的樣本的各種劃分產生相應的分割平面的個數,有上界2^N。

技術分享

成長函數:

技術分享

幾種成長函數

技術分享

如果想用成長函數替代M,希望m_H(N)不要隨N增長的太快。

技術分享

shatter:

數據集D被假設空間H打散(shatter),當且僅當對D的每個劃分,存在H中的某假設與此劃分一致。即當D的每種可能劃分可由H中的某個假設來表達時,稱H打散D。

如果一個數據集合沒有被假設空間打散,那麽必然存在某種劃分可被定義在數據集中,但不能由假設空間表示。

H的這種打散數據集合的能力是其在這些數據上定義目標函數的表示能力的度量。可以說被打散的X的子集越大,H的表示能力越強。

break point:

對二維感知機來說,當N=4時,無法被shatter,break point = 4.

技術分享

bounding function 上界函數

當break point 為k時,成長函數能不能被一個多項式上界限制住?

一堆證明後…… B(N,k) = O(N^(k-1))

技術分享

成長函數mH(N)<= 上限函數B(N,k) <= 多項式函數poly(N),只要成長函數有Break Point存在,那麽該成長函數就是一個多項式。

然後推導出了VC bound。。。

技術分享

如果假設空間存在有限的break point,那麽m_H(2N)會被最高冪次為k–1的多項式上界給約束住。隨著N的逐漸增大,指數式的下降會比多項式的增長更快,所以此時VC Bound是有限的。更深的意義在於,N足夠大時,對H中的任意一個假設h,Ein(h)都將接近於Eout(h),這表示學習可行的第一個條件是有可能成立的。

至此,如要問題是可學習的,那麽需要:

  1. 好的假設空間,即存在break point
  2. 好的數據,使Ein與Eout接近
  3. 好的算法,找到一個Ein很小的g

VC dimension:

技術分享

d_vc 定義為 比 break point 小一的數。是能夠被H shatter的最大的樣本空間的樣本數量。 由vc bound可知 VC維有限的假設是好假設。

如果我們將假設集合的數量|H|比作假設集合的自由度,那麽VC維就是假設集合在做【二元分類】的有效的自由度,即這個假設空間能夠產生多少Dichotomies的能力(VC維說的是,到什麽時候,假設集合還能shatter,還能產生最多的Dichotomies)。

技術分享

vc維可以近似地認為等於假設空間的參數個數。

如果要做一個好的預測,那麽需要解決下面兩個問題。

技術分享

從vc維的角度來描述,如果它比較小,那麽發生預測偏差很大的壞事情的可能性也就很小,那這有利於Ein接近Eout;但是,這是我們的假設空間的表達能力受到了限制,這樣Ein可能就沒有辦法做到很小。

如果它比較大,那麽假設空間的表的能力很強,Ein可以很小,但是發生壞的預測的可能性就很大。

模型復雜度:

技術分享

技術分享

技術分享

圖示說明,d_vc超過某一值後,模型的復雜度越高,它的泛化能力越差,即在out of sample上表現更差。對應的是過擬合。

樣本復雜度:

描述在假設模型給定下,需要多少數據才能保證這個假設在大概率下是好的。

技術分享

總結:如果假設空間的VC維是有限的,並且有足夠多的數據,我們的算法又可以找到一個假設使得訓練錯誤率很低的話,我們就可以學習到有效的模型或知識。

機器學習基石筆記-Lecture 5-7 VC dimension