机器学习基石---Why Can Machines Learn(Part2)

knitr::opts_chunk$set(echo = TRUE)

1 前情回顾

  Part1一文的主要内容是:如果training examples独立同分布于数据总体,那么当资料 D 足够多(N足够大),hypothesis set H 不太大 (M不太大),对于任意一个hypothesis h,都有 EinEout 。此时,如果演算法 A 能够找到一个g,使得 Ein(g)0 ,那么可以知道 Eout(g)0 。那么,可以说learning是可行的。即learning的核心问题为:
1. 确保 EinEout
2. 使得 Ein(g)0

central questions

  如果 M 很小,容易得到EinEout;但是演算法的选择很少,不一定能够找到 Ein(g)0 。反之, M 很大,演算法应该可以选到一个好的hypothesis,使得Ein(g)0,但是Bad Data发生的概率会增加, EinEout 不一定满足。由此,希望 M 有限。

2 M可以有限吗

  先回忆 M 的由来:

PD[BadD]=PD[BadDforh1orBadDforh2ororBadDforhM]PD[BadDforh1]++PD[BadDforhM]2exp(2ε2N)++2exp(2ε2N)=2Mexp(2ε2N)

Bad Data For H

  在计算Bad Data发生概率时,用union bound取到该概率的上界。但是如果 M 很大,使得不等式右边大于1,那么此时的不等式无意义,概率显然小于1。union bound会高估P(BadD),因为其假设所有的hypothesis之间没有交集,这是最坏的情况。但是大部分情况下,hypothesis都是存在交集的,即上图中的 Di 列中会有多个bad data。是否可以找到重叠部分,把无数个hypothesis分成有限类?

2.1 Effective Number Of Lines

  以Week2讲的PLA为例,即直线能够分隔两类点。 H=alllinesinR2 ,即平面中的所有直线都是hypothesis。 Y={1,+1} 对于training data的所有 N 个样本,如果h1(x)=h2(x)且与实际的label相同,就把 h1,h2 归为一类。
   N=1 ,直线只有2类: h(x)=1 h(x)=1

one point

   N=2 ,直线只有4类: h(x1)=1h(x2)=1 h(x1)=1h(x2)=1 h(x1)=1h(x2)=1 h(x1)=1h(x2)=1

two point

   N=3 ,直线的种类数和点的排列有关。三个点按照下面方式排列,则直线有8种。
three points -8

  三个点按照下面方式排列,则直线只有6种。

three points -6

   N=4 ,最多有14种直线。

four point

  经过上述分析,1个点最多2种线,2个点最多有4种线,3个点最多有8种线,4个点最多有14 (<24) 种线。用 effective(N) 表示线的种类。如果可以满足:
1. effective(N) 代替 M
2. effective(N)2N
那么可以有:

P[|Ein(g)Eout(g)|>ε]2effective(N)exp(2ε2N)

如果 N 足够大,effective(N)有限,不等式右边约等于0,此时 EinEout ,所以可以说learning是可行的。

2.2 Effective Number Of Hypotheses

  上一节介绍了线的种类,那么对应的有方程的种类吗?类似的某一种线可以把点二分,如果hypothesis可以把点二分,则称为一个dichotomy。容易知道一个dichotomy至少对应一个hypothesis,一个hypothesis能且只能对应一个dichotomy。那么整个hypothesis set最多可以产生多少dichotomy呢?
  定义成长函数:

mH(N)=maxx1,x2,,xNX|H(x1,x2,,xN)|

用成长函数表示整个hypothesis set最多可以产生的dichotomy数目。以下是几种常见的hypothesis set的成长函数:
  1. Positive Rays
阈值右方为 o 类,左方为x类, N 个点共有N+1个空,容易知道 mH(N)=N+1
![positive rays](Picture/Part2/positive rays.png)

  2. Positive Intervals
两个阈值之间的为 o 类,阈值之外为x类。共有 N+1 个空,随机选择两个空,共有 (N+1)N2 个。另外,如果两个阈值在两个点之间,那么所有点都是 x 类,这是一种dichotomy。因此,mH(N)=(N+1)N2+1
![positive intervals](Picture/Part2/positive intervals.png)

  3. Convex Sets
成长函数表示整个hypothesis set最多可以产生的dichotomy数目,该函数的上界为 2N 。任选 k 个点,k个点组成的多边形内的点预测为 o ,外面预测为x。把 N 个点摆成一个圈,则这N个点的任意排列组合都是一个dichotomy, mH(N)=2N ,此时我们称 N 个点被shatter了。

![convex sets](Picture/Part2/convex sets.png)

  所以上述几种情形下的成长函数分别为:
positive rays mH(N)=N+1
positive intervals mH(N)=(N+1)N2+1
convex sets dde mH(N)=2N
2D perceptrons mH(N)<2Ninsomecases

2.3 Break Points

  如果对于 mH(k)<2k ,那么称 k 为是H的break point。并且 k+1,k+2,... 都是break point。例如在2D perceptrons, N=4 时, mH(4)=14<24 ,所以2D perceptrons的break point是4。对上文的四种情形,break point情况如下:

break point

观察上图猜测成长函数和break point可能存在某种关系:
1. convext sets:没有break point,成长函数为 2N
2. positive rays: break point k=2,成长函数为 O(N)
3. positive intervals:break point k=3,它的成长函数为 O(N2)
4. 类似的猜测2D perceptrons成长函数为 O(Nk1)
如果成立,那么就可以用 mH 代替 M ,满足了learning能够学习的第一个条件,EinEout。关于这个猜测的证明,见Part3。

3 Summary

  Part1中我们把learning分成两个核心问题:
1. 确保 EinEout
2. 使得 Ein(g)0
对于问题1,如果hypothesis set的大小 M 不太大,资料个数N又够多的情况下,可以满足 EinEout 。本文通过成长函数 mH ,对 M 个hypothesis划分种类,并且推测mH和break points 有关。
  但是Week5并没有讲 mH 可以代替 M 的内在逻辑性,仅仅是假设类似的h,可能存在相同的bad data,所以 mH 就可以代替 M <script type="math/tex" id="MathJax-Element-99">M</script>了吗?不知道后面会不会有严格的证明和解释。

4 Ref

[1] http://beader.me/mlnotebook/section2/vc-dimension-one.html
[2] http://blog.csdn.net/red_stone1/article/details/71104654
                                           2018-01-22 于杭州

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值