• 机器为什么可以学习(1)---测试和训练过程


    1、课程内容

      数据来源于同一分布,且hypothesis 集合有限的情况下,学习是可能的,由PAC准则保证,那么在感知机模型中假设空间是无限的,那么无限hypothesis情况下学习为什么依然还成立?

      主要内容

      (1)、复习了在确定了某个固定的h(x)后,霍夫丁不等式保证了通过抽样可以从局部信息反应整体信息,在多hypothesis的情况下,霍夫丁不等式的概率上限扩大了M倍,M为hypothesis set的规模;一旦hypothesis set的规模时无穷时,霍夫丁不等式就失效了

      (2)、分析推导了在无限大规模的hypothesis set上霍夫丁不等式成立的依据,就是在给定数据规模下,从数据的角度对集合进行分类:从分析线段集合的分类情况到hypothesis set集合的分类

      (3)、分析hypothesis set的分类时,引入dichotomy set,给定输入数据后选定的hypothesis set产生的所有dichotomy的种类的集合,并且引入成长函数mH(N)来表征dichotomy set的规模,并且计算了一维输入下单向激光,间隔激光以及凸函数的成长函数值分别为N的一次函数、二次函数和指数函数,并且引入了break point k点来描述成长函数的关键点,表示从输入数据规模为k时开始,成长函数值小于2N,大于K的都是break point,但是只关注最小点,小于k的数据规模称之为被hypothesis set shatted的数据集;

      (4)、使用mH(N)来替代无线多hypothesis 函数情况下的的可行性,即当成长函数是多项式级别时可以很好的替换M->∞的情况,但是当时指数型时不可以;

      (5)、接下来分析是不是成长函数是多项式增长速率时,是不是一定可以使得在hypothesis set规模为无穷时霍夫丁不等式成立。

      

    2、复习,统计学习流程

      

      上述的流程中分为两部分,一部分是选择一个Ein最小的g作为f,另一个过程就是测试这个g以测试数据集上的表现:

      

      学习的两个核心问题:

      

      对于这两个核心问题,hypothesis 集合的大小对这两问题的有什么关键的作用?

      

      对于小的M来说,第一个问题的答案很好,有多hypothesis的霍夫曼不等式可以M越小,那么发生坏事情(Ein和Eout不接近)的概率就越小,但是对于第二个问题来说,M越小选择就越少,可能不会使得Ein很小;

      

      对于大的M来说,同样有霍曼夫不等式可知,发生坏事情的概率变大,但是对于第二问题来说,选择足够多。也就是说选择M的大小是对上面的核心问题是有很大影响的,那么当M无限大的时候会是什么情况?能不能使用一个有限的mH替代霍夫曼中的M,使得M在无穷时霍夫丁不等式依然成立。

      

    2、M从哪里来?

      多hypothesis下的霍夫丁不等式:其中M是hypothesis的个数;

      

      M通过union bound得到,某样本在所有的hypothesis上发生不好的概率上限P[B1 or B2 or .......BM]是:

      

      通过以上分析可知,M来自于union bound操作,现分析一下union bound是否合理?

      对于假设空间中的假设函数有很多是类似的,那么就是说Ein(h1) ≈ Ein(h2),在训练数据集上发生不好的概率应该也是有关系的h1不好的话,h2不好的概率也很大,也就是说union bound的上限扩的太大了;

         

      over-estimating就造成了union bound失败,怎么解决这个over-estimating的问题?找到重叠的部分,对相似的hypothesis进行按组分类:

      

    3、hypothesis的分类

      待分类的线段集合:

      

      对于该集合的线段有无穷多个,那么针对该线段空间可以怎么分类?假如数据集只有一个数据输入x1

      

      此时从数据x1的角度来说,整个线段空间只用两种不同的分类:

      

      假设数据只有两个的情况下:

      

      当只有两个数据的时候那么总共会有4中分类:

      

      同理,当有3个数据时,总共有8种分类,因此可以发现这样的规律,对于0/1分类来说,每个点要不是O要不是X因此在有N个数据时线段集合的函数分类最多为2N次方个;

      总之,当输入数据有N个时,假设空间中的无限个函数可以分成种类为effective(N),则有:

      (1)、effective(N) <= 2N

      (2)、无限种类的线段可以分成有限的种类

      (3)、因此多线段的霍夫丁不等式可以进一步的精确为:

      

      如果effective(N)可以替代N,并且effective(N)要远小于2N,那么在无限个hypothesis空间下的学习就是可能的,上面讨论了针对线段的分类也就是2D空间上的hypothesis的分类问题,那么3维或者更高维的怎么进行分类?

      对于更高维的hypothesis进行分类引入一个名词dichotomy(二分法):表示一个h(x)将所有的输入数据划分为O或者X的情况就是一个dichotomy,那么假设空间hypothesis set集合为下列集合

      

      那么输入数据为x1,x2,......,xN,来说定义dichotomy set:

      

      该定义表示在假设空间内的函数可以作用在数据上得到的dichotomy的种类数量;

      那么dichotomy set与上面提到的hypothesis set的区别是:

      

      hypothesis set的取值范围为整个实数空间上的点,其规模可能谁无限的,dichotomy set则是取值上指定大小的输入数据上有hypothesis set中的函数生成的结果的种类集合,其规模上限最大为2N,选择dichotomy set的大小作为替代霍夫丁不等式中M的候选者;

      

      分析dichotomy set的性质:

      (1)、dichotomy set的大小跟输入数据的大小N有关系

      (2)、规模为N的不同的样本在同一个hypothesis set上产生的dichotomy set的大小可能不同,取其最大值,引入成长函数:

      

      函数与输入数据的大小、hypothesis set有关系,并且大小有限存在上限值2N,表示在这个数据集上hypothesis set中的函数可以被分成几类;

    5、成长函数的计算

      (1)、一维输入单向的成长函数计算(growth function of positive ray)

      

      这种情况下,N个输入将整个线段分为了N + 1段,因此dichotomy set的规模的最大值就是N+1;

      因此此时mH(N) = N + 1;在N很大时可以知道(N+1) << 2N

      (2)、一维输入下间隔的成长函数(growth function of postive interval)

      

      在这个情况下,依然有N+1个间隔,只是需要从这N+1个间隔中选取两个间隔,以及两个点都取在同一个区间内,因此总共有

      mH(N) = N2/2 + N/2 + 1,同样在N很大时mH(N) << 2N

      (3)、凸函数的成长函数

      

      假设输入数据规模为N,假设N个数据分布在一个圆上:

      

      这个时候dichotomy set的规模最大可以到达2N,也就是mH(N) = 2N, 此时我们说hypothesis set中的函数可以产生出每一个dichotomy的情况,也就是说当输入为N时,当mH(N) = 2N我们就称这个hypothesis set可以shatted这个dichotomy set;

    6、break point

      几种成长函数的值:

      

      当使用mH(N)替换M到霍夫丁不等式时,前面两个都是多项式级别的增长,对于霍夫丁不等式来说很好,但是后面的convex sets时成长函数是指数级别的,增长速度很快,NOT GOOD!

      

      在之前的使用的感知机模型中,成长函数是多多项式的还是指数形式的?

      break point 的意义:输入规模为n时,hypothesis set上产生的dichotomy set的规模小于2n,那么就称这个点是一个break point,出现break point就表示霍夫丁不等式在这个hypothesis set和数据集上时有可能成立的。

      

      四种成长函数的break point:

      

      根据上面的例子得出的推论:

      (1)、如果数据和hypothesis没有break point那么mH(N) = 2N,对于所有的规模输入都成立;

      (2)、如果break point存在,且break point 为N = k时,成长函数的成长速率为mH(N) = O(Nk-1)

    那么当break point存在时,成长函数是不是就是一个多项式级别的函数?下节课继续讨论。

  • 相关阅读:
    springIOC 原理
    jeesite异步分页
    yum
    乐观锁原理
    equlas(),hashcode(),hashset,hashmap
    链接收藏
    java单词
    jeesite优化
    SailingEase .NET Resources Tool (.NET 多语言资源编辑器)转
    C#基本语法
  • 原文地址:https://www.cnblogs.com/daguankele/p/6345103.html
Copyright © 2020-2023  润新知