Learning From Data Lecture 5 训练与测试

segment 1: 从训练到测试

将机器学习与人类学习做个比喻:在参加期末考试之前,你通过做复习题来提高对相关知识的掌握,以期高期末考试成绩。

  • 脑中掌握的知识的相当于算法选择出的假说h
  • 复习题相当于输入空间X
  • 复习题的答案相当于y

训练的过程相当于:

  • 通过做复习题并对照答案,你知道自己没有掌握哪些内容,相当于机器学习中的Ein(h)。
  • 然后以此为基础调整自己对知识的掌握,即调整h。

测试的过程相当于:

  • 参加期末考试,获得一个针对期末考试的Ein(h),用以估计g与f的差距。

区别在于:

  • 期末考试结果(Ein)与知识掌握情况(Eout)之间的误差大于容忍程度ε的概率只受两个因素影响,即容忍程度ε和期末考试的问题数量N。
  • 练习题的结果(Ein)与知识掌握情况(Eout)之间的误差大于容忍程度ε的概率还额外受到M的影响(可以理解为知识的复杂程度)。

我们的目的是将这个可能无穷大的M转变为一个有限的量。这样学习就变得可行了。

回顾M的来由:

假说集合H由多个h构成。

我们知道针对每一个假说h,假说在样本内外的误差大于容忍值的概率都有一个上限。

hoffeding

如果这些假说都是独立的,且假说集合H中一共有M个假说h。

那么最糟糕的情况是将这些概率上限联合起来,便获得:

multibinhoffding

这里的一个重要假设前提是:这些假说是相互独立的。

如果我们称假说h1的|Ein(h1)-Eout(h1)|>ε为坏事件B1

如此类推,则上面假设前提的含义便是B1,B2...BM是互斥的。

然而,实际上,B1,B2...BM是可能相互有重叠的。

如下面韦恩图所示:

QQ截图20131214105849

以感知器假说集合为例:

假设我们尝试学习得到的目标函数f如下所示:

target function

假设我们目前获得的一个假说h为:

hypothesis1 function1

则该假说的样本外误差Eout(h)为下图绿色部分所示:

hypothesis1 function2

要计算Ein(h),我们需要看的到这个h的样本是怎样的。

假设图中的点是获得h时所依据的样本,则Ein(h)为红色点的数量除以点的总数量。

hypothesis1 function3

考虑两个2维感知器,将刚才的感知器同绿色的感知器比较。

直观感觉上,因为他们非常接近,两者之间的重叠非常大。

hypothesis1 function4

实际上,两个感知器假说的样本外误差Eout之间的差别ΔEout不大,为下图中黄色部分所示。

而Ein之间的差别ΔEin则是黄色区间内点的数量除以样本内所有点的数量,差别很可能也很小。

eoutbetweendifferenhypothesis.png

我们关心的实际上是:

cared about

两个假说的样本内外误差之间的差距并不大,即,两个假说之间有大量的重叠。

即得到一个好消息:我们可以替换掉通过联合获得的可能是无限大的M。

下面要介绍我们尝试用于替换掉M的量。

这个量将被用于表达任何你选用的假说集合的复杂程度。

之前,在我们考虑假说集合的时候,是从整个输入空间出发的。

仍然以感知器为例:

因为输入空间是连续且无限的,任何一个点上的区别都会导致出两个不同的感知器,因此假说集合中假说的数量M也是无穷的。

如果我们现在将注意力只专注于样本,只考虑样本中的数据点。

那么只要是对样本中的点分类的结果一致的多个感知器,对样本中的数据而言,实际上是一样的。

考虑对于给定的样本,可以构造多少个二分法(dichotomies),每一种二分法都决定了将样本内的哪些数据点分类为+1,哪些分类为-1。

思考这样的二分法的数量有多少?

假设我们输入空间如下所示,点代表样本内的N个数据点,蓝色的线代表目标函数f,蓝色区域内的数据点为+1,红色区域内的点为-1:

1

假设我们现在有一张不透明的纸,纸的大小同输入空间一样大,纸上只有在样本中数据点的位置上是透明的。

2

假设我们将这张不透明的纸放在输入空间上,透过这张纸上的洞来看输入空间,则为如下结果:

我们只能看到被标记为+1或-1的样本内数据点,却无法看见目标函数f。

3

我们可以构造出无限多个2维感知器,将样本内数据分类成上面的情况,这些感知器在对样本内数据的分类结果上都是一致的。

即,如果仍然是透过这张不透明的纸来看被这些不同感知器分类的输入空间,看到的结果都是一致的。

4

只有当感知器将样本内的N个数据点分类结果不一致时,我们才会观测到变化。

5

定义二分法为迷你假说(mini-hypotheses):迷你的含义是,这些假说之间的区别只是针对样本内的数据点而言,而非针对整个输入空间,因此数量可能会是有限个。

  • 一个假说为 h : X → {− 1,+1 }
    假说是一个函数,将输入空间中的数据点映射至二元值域{-1,+1}
  • 二分法为 h : {x1, x2, · · · , xN} → {−1,+1}
    即将样本空间中的数据点映射至二元值域{-1,+1}

假说集合H的大小M可以是无限的。

而二分法的数量则是有限的,最大值为2N(对于每个数据点,一个二分法可能将其分为+1,也可能分为-1,且一共有N个点)。

我们希望能用这个2N来替代M

下面引入一个成长函数(growth function)的概念:

定义成长函数为:

  • 对于一个给定的假说集合H,计算这个假说集合H应用于一个包含N个数据点的样本时,最大可能的二分法数量。

growth function

对于2维感知器而言,设想一个极端的例子,让样本内所有的数据点都拍成一条直线,则最多只有2N中可能的二分法数量,远小于2N

但是最糟糕的情况仍然是2N

成长函数返回的是这个最糟糕情况下的上限2N

由此定义,对于2维感知器的假说集合,必然有:

example

以2维感知器的成长函数:

  • N=3时,最糟糕的情况是存在2^3=8种不同的二分法。
  • N=4时,2^4=16,但是即便是最糟糕的情况下,也只能生成14种二分法。

segment2 例子

例1:

假说集合正射线(positive ray)h(x) = sign(x-a)。

假说集合中的假说以不同的a取值加以区别。

正射线假说接受的输入为单个变量x,假说采用一个阀值a,如果x>a则返回+1,否则返回-1。

positive ray

假设样本空间有N个数据点,可以知道最多只有N+1种可能的二分法,即mH(N)=N+1。

例2:

假说集合正区间(positive interval)。

在区间中的数据点被分为+1,区间外的被分为-1。

不同的区间对应不同的假说h

positiveinterval_thumb.png

假设样本空间有N个数据点,可以知道对应的成长函数为:

positiveintervalgrowthfunction_thumb.png

例3:

假说集合凸集合(convex sets),不在是1维的,而是2维的。

下图是一个凸集合的例子:

convex set

如果二维平面上的数据点落在凸集合中,则被标为+1,否则反之。

设想一种极端的情况,假设所有的点都被放在一个圆的圆周上。

对于任何一种可能的情况(数据点+1,-1的所有可能性),链接所有+1的数据点均可构成一个凸多边形,只令凸集合包含的范围略微大于此多边形即可。

convex set 2

因此2N种二分法总是可以找到的,即mH(N) = 2N

注意到在正射线和正区间这两种假说集合中,二分法的数量均小于样本数据的最大可能情况。

  • 如果我们发现,对于某个样本而言,如果我们的假说集合所对应的二分法数量与样本数据的最大可能情况相等,便称我们的假说集合“打碎”(shattered)了样本数据。

下图是三种假说集合的成长函数比较:

compare

如果我们能用成长函数mH(N)替代原先不等式中的M,如果mH(N)是二项式形式,则N足够大时,或者对ε的要求不是太严苛,学习便是可能的。


segment 3 转折点

转折点(break point)的定义为:

  • 如果包含k个数据点的数据集均不能被假说集合H“打碎”,则称k是假说集合H的转折点。

如果假说集合H确实存在一个转折点k, 则必有:

  • mH(k)<2k

对于2维感知器,根据之前的讨论知道k=4。

对于包含数据点>k个的数据集,必然也不能被假说集合H“打碎”。

  • 对于正射线假说集,其转折点为2
  • 对于正区间假说集,其转折点为3
  • 对于凸集合假说集,其转折点不存在。

下节将进一步讨论的重要结论:

  • 如果存在转折点,则mH(N)必然是N的多项式。
  • 如果不存在转折点,则mH(N)=2N

课程地址:

http://work.caltech.edu/telecourse.html

Leave a Reply

Your email address will not be published. Required fields are marked *