【Training versus Testing】林轩田机器学习基石

接着上一讲留下的关子,机器学习是否可行与假设集合H的数量M的关系。

机器学习是否可行的两个关键点:

1. Ein(g)是否足够小(在训练集上的表现是否出色)

2. Eout(g)是否与Ein(g)足够接近(在训练集上的表现能否迁移到测试集上)

(1)如果假设集合数量小(M小),可知union bound后,Ein与Eout是接近的;但由于可选择的假设集合少,Ein(g)效果可能不佳;

(2)如果假设集合数量大(M大),有可能Ein(g)会获得更多的选择,测试集上效果更好;但由于M数量过大,训练集和测试集的表现差距可能比较大;

因此,这里存在一个trade-off,如何选择合适的M非常重要。因此有了如下的目标:

如何把union bound产生的M用mH来代替,把无限变成有限,找到合适的trade-off的M取值。

要想把M用mH来代替,回顾一下M是如何来的。

union bound是把假设集合中的所有假设出现BAD event的概率直接加起来,P(A+B)≤P(A)+P(B) 这种形式得来的。

这里就有一个缺陷,如果这些BAD event有重叠的部分,那么union bound就大大地不准确了,就是这个bound太大了。如下图所示:

上面的抽象描述还不够直观,下面举了一个具体的例子。

H = {all lines in R²} 假设集合是二维平面上所有的直线。显然直线有无数条,因此这里的M是正无穷大。

接下来换了一个视角,不看线而是来看平面上的一个点。

如果问题是binary classification,那么以某个点的视角来看,一条线要么把其划分为+1要么划分为-1。

这样一来,无限多个假设集合在x1这个点看来,就变成两类了。

以此类推,可以得到binary classification的Effective Number of Lines:

对于binary classification来说,就找到了替代M的方式,即无限缩减为有限了。

下面给这种假设集合的分类起一个正规的名字Dichotomies: Mini-hypotheses

这里就可以用某个假设集合在N个样本点下的dichotomies的数量来代替M。

但是这里有一个限制,就是dichotomies的在H,N的取值,是取决于具体取了哪N个样本点的。

现在只想与N有关,不想与哪N个样本点有关;因此再次定义了一个Growth Function:

Growth Function的核心意思是说:在所有可能的N个点当众,Growth Function取的那N个点是可以让dichotomies最大的N个点(如果是binary classification)。

这样,相当于与具体哪N个点无关了,只要保证这个N个点能产生的Growth Function值最大,记为mH(N):

m 表示取代M

H 表示是假设集合的一个函数

N 表示与样本点的数量有关(但是与哪N个点解耦了)

接下来,分析了几个Growth Functions的例子,

有的是polynomial的;有的是exponential的,如果是多项式的就不错了,如果是幂指数的那还是随着N的增大太大了。

以binary classification来说,2的N次幂确实是upper bound;

但是我们可以清晰地看到,在2D perceoptrons中,如果N大于等于4,显然mH(4)无法达到16(见上上个图)。

给这里的‘N=4’起一个名字——Break Point of H。

如果对于假设集合H,我们能找到某个Break Point(其值记为k),是否可以猜测,mH(N)可以被N的k-1次幂bound住呢?(即,mH(N)是N的多项式形式,多项式最大的幂是k-1)

时间: 2024-12-25 05:01:56

【Training versus Testing】林轩田机器学习基石的相关文章

台大林轩田·机器学习基石记要

台大林轩田·机器学习基石记要 昨天开始看林轩田的机器学习基石,从今天起开始去粗取精 第一讲比较基础,一些概念自己早已经理解了,所以不再做笔记,有点印象的是讲到了ML.DL.AI的一些联系与区别,ML主要是想从数据中学习/逼近一个理想的函数f(x) 第二讲讲到了PLA,感知器学习算法,并且证明了线性可分时感知器收敛定理(与Haykin的Neural Networks and Learning Machines证明相同,另外补充的是学习速率不一定为1,只要非负即可,但是这个地方还有一些疑问,在Hay

【The VC Dimension】林轩田机器学习基石

首先回顾上节课末尾引出来的VC Bound概念,对于机器学习来说,VC dimension理论到底有啥用. 三点: 1. 如果有Break Point证明是一个好的假设集合 2. 如果N足够大,那么Ein跟Eout的表现会比较接近 3. 如果算法A选的g足够好(Ein很小),则可能从数据中学到了东西 ================================================== 现在正式引出VC Dimension的概念:啥叫VC Dimension: VC Dimensi

【Linear Regression】林轩田机器学习基石

这一节开始讲基础的Linear Regression算法. (1)Linear Regression的假设空间变成了实数域 (2)Linear Regression的目标是找到使得残差更小的分割线(超平面) 下面进入核心环节:Linear Regression的优化目标是minimize Ein(W) 为了表达简便,首先需要把这种带Σ符号的转换成matrix form,如下: 1~2:多个项的平方和可以转换成向量的平方 2~3:把每个列向量x都横过来,组成一个新的X矩阵 最后转换成了最终的min

【Feasibility of Learning】林轩田机器学习基石

这一节的核心内容在于如何由hoeffding不等式 关联到机器学习的可行性. 这个PAC很形象又准确,描述了“当前的可能性大概是正确的”,即某个概率的上届. hoeffding在机器学习上的关联就是: 如果样本数量足够大,那么在训练集上获得的学习效果是可以平移到测试集上的.即如下, 这里保证的仅仅是“训练集的效果平移到测试集”,平移的仅仅是效果,没说效果好坏:如果训练效果是垃圾的,那么测试效果也基本是垃圾的. 如果假设空间是有限的,那么结果又如何呢?如下, 如果假设空间是有限的,根据公式推导:当

【Perceptron Learning Algorithm】林轩田机器学习基石

直接跳过第一讲.从第二讲Perceptron开始,记录这一讲中几个印象深的点: 1. 之前自己的直觉一直对这种图理解的不好,老按照x.y去理解. a) 这种图的每个坐标代表的是features:features的值是有物理意义的. b) 而圈圈和叉叉是为了标注不同的样本(正样本 负样本),即label:为了后续的很多简便表示,这里正样本取+1,负样本取-1 2. Perceptron Learning策略的几何意义:表示临界线(面)的法向量旋转方向 由于label设为了+1和-1,可以直接用w+

【Hazard of Overfitting】林轩田机器学习基石

首先明确了什么是Overfitting 随后,用开车的例子给出了Overfitting的出现原因 出现原因有三个: (1)dvc太高,模型过于复杂(开车开太快) (2)data中噪声太大(路面太颠簸) (3)数据量N太小(知道的路线太少) 这里(1)是前提,模型太复杂: (1)模型越复杂,就会捕获train data中越多的点(这当中当然包括更多的噪声点) (2)数据量N太小,根据VC Dimension理论,Eout会增大 这里的noise包括两类: 1. stochoastic noise:

【Regularization】林轩田机器学习基石

正则化的提出,是因为要解决overfitting的问题. 以Linear Regression为例:低次多项式拟合的效果可能会好于高次多项式拟合的效果. 这里回顾上上节nonlinear transform的课件: 上面的内容说的是,多项式拟合这种的假设空间,是nested hypothesis:因此,能否想到用step back的方法(即,加一些constraints的方法把模型给退化回去呢?) 事实上,是可以通过加入constraint使得模型退化回去的:但是,再优化的过程中涉及到了“判断每

【作业4】林轩田机器学习基石

作业四的代码题目主要是基于ridge regression来做的,并加上了各种cross-validation的情况. 由于ridge regression是有analytic solution,所以直接求逆矩阵就OK了,过程并不复杂.只有在做cross-validation的时候遇上了些问题. #encoding=utf8 import sys import numpy as np import math from random import * # read input data ( tra

【Linear Models for Binary Classification】林轩田机器学习基石

首先回顾了几个Linear Model的共性:都是算出来一个score,然后做某种变化处理. 既然Linear Model有各种好处(训练时间,公式简单),那如何把Linear Regression给应用到Classification的问题上呢?到底能不能迁移呢? 总结了如下的集中Linear Model的error functions的表达式: 这里都提炼出来了ys这一项,y表示需要更正的方向{+1,-1},s表示需要更正的幅度(score) 三种error function可以这么理解: (