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具备哲学意义上的指导性。

相关文章
相关标签/搜索