7 - VC維度(VC Dimension)-- 衡量模型與樣本的複雜度

  • VC Dimension的定義

    咱們知道dichotomies數量的上限是成長函數,成長函數的上限是邊界函數:算法

    邊界函數的上限就是N^(k-1)了:函數

    因而咱們獲得了上限(成長函數)的上限(邊界函數)的上限。。。學習

    因此VC Bound能夠改寫成:測試

    複習結束,下面咱們定義VC Dimension:大數據

    用中文講,對於某個備選函數集H,VC Dimension就是它所能shatter的最大數據個數N。spa

    VC Dimension = minimum break point - 1。教程

    因此在VC Bound中,(2N)^(k-1)能夠替換爲(2N)^(VC Dimension)。事件

    VC Dimension與學習算法A,輸入分佈P,目標函數f均無關。數學


  • PLA的VC Dimension

    1D的PLA最多shatter2個點,因此VC Dimension = 2;it

    2D的PLA最多shatter3個點,因此VC Dimension = 3

    因此dD的PLA,VC Dimension會不會等於d+1?

    要證實這一點,只需證實:

    ------------------------------------------------------------------------------------------------------------

    (1) 證實VC Dimension≥d+1,只需證實H能夠shatter某些d+1個輸入。

    咱們刻意構造一組d+1個輸入:

    第一列灰色的1是對每一個輸入提升1維的操做,這個是一個d+1維的方陣,對角線所有是1,因此該矩陣可逆。

    對於任意一種輸出,咱們總能找到一個備選函數使得:

    即這一組輸入的全部dichotomies都被窮盡了,因此VC Dimension≥d+1得證。

    ------------------------------------------------------------------------------------------------------------

    (2) 證實VC Dimension≤d+1,只需證實H不能shatter任何d+2個輸入

    在2D情形下構造一組4個輸入:

    因此 x4 = x3 + x2 - x1。

    若是前3個輸出是:

     

    那麼第4個輸出是多少?

     

    因爲:

    因此:

    ------<1>

    若是有一個備選函數W,使得其在x1,x2,x3上的輸出的符號與方程<1>中的符號相同:

    那麼必定有:

    因此H不能shatter 2+2=4個輸入。

    推廣到d維:

    任何d+2個數據做爲輸入,即便升了一維以後,輸入矩陣的行數(d+2)依然大於列數(d+1),因此矩陣各行是線性相關的,即x(d+2)能用x(d+1),......,x2,x1的線性組合來表示。

    咱們假設H能夠shatter d+2個輸入,那麼咱們必定能找到一個W,使得x(d+1),......,x2,x1對應的輸出的符號與他們在線性表達式中的係數符號相同:

    因此:

    以前的假設是錯的,H不能shatter d+2個輸入

    因此VC Dimension≤d+1得證。

    綜合(1)(2),對於d-D PLA,其VC Dimension=d+1。


  • VC Dimension的物理意義

    在教程中這麼說:

    即VC Dimension是備選函數集H的「能力」。「能力」越大,H對數據的劃分就越細緻。

    例如,從Positive Ray到Positive Interval,自由變量從1個變成了2個,VC Dimension從1變成了2,H變得更強大。

    在VC Dimension與備選函數集大小M基本正相關:


  • 深刻理解VC Dimension

    VC Bound:

    因此GOOD事件:| E-in(h) - E-out(h) ≤ ε |能夠改寫成:

    即:

    咱們最終但願E-out越小越好,因此上面的不等式中能夠只關心上界。

    咱們把根號項看作一種懲罰,它拉大了E-in與E-out之間的距離,這個懲罰與「模型複雜度」有關,模型越複雜,懲罰越大:

    一圖勝千言,能夠看出隨着模型複雜度的增長,E-in與E-out兩條曲線漸行漸遠。

    若是VC Dimension太大,模型複雜度增長,E-in與E-out偏離;

    若是VC Dimension過小,雖然E-in≈E-out,但H不夠給力,很難找到不犯錯(或不多犯錯)的h。

    基本上,天下沒有免費的麪包!

    -----------------------------------------------------------------------------------------------------------

    VC Bound提升了數據複雜度。

    用一個簡單的數學題就能說明:

    你幫老闆分析股票數據,老闆說E-in與E-out差距最大爲ε=0.1;置信度爲90%,即δ=0.1;所用模型的VC Dimension = 3。你用程序算了一番,發現:

    因而你向老闆彙報,請給我29300條數據做爲訓練集、29300條做爲測試集,我就能達到你的要求,若是想萬無一失,200000條數據是起碼的。原本被老闆逼死的節奏,如今要把老闆逼死了,哪來這麼多數據?

    本題中:

    need N ≈ 10000 * VC Dimension

    而實際應用中,須要的數據量在10倍VC Dimension左右。

    爲何VC Bound會這麼寬鬆,以致於過多估算數據量?

    由於VC Bound對數據分佈、目標函數、備選函數集、學習算法都沒有要求,它犧牲了部分精確性,換來了無所不包的通常性。這使得VC Bound具備哲學意義上的指導性。

相關文章
相關標籤/搜索