训练和测试的区别(五)
来源:互联网 发布:淘宝毛呢短裤 编辑:程序博客网 时间:2024/04/28 09:35
一、
下面我们讲的是:为什么需要机器学习?
上节课中,我们讲了机器学习的大致的训练过程是这样的:
1.从样本出发,把样本传给机器。
2.机器从一群的假设函数中找到一个最好的h使得E(in)(h)最小,这样的话,由于如果假设函数集合较小的话,我们认为E(in)(h)≈E(out)(h),也就是说
此时E(out)(h)也是最小的
那么有一个问题是,既然我们想找到一个E(in)(h)最小的假设函数,干脆我们直接让机器记忆所有的样本集合算了,这样的话假设函数的E(in)(h)一定是0,但是这不是我们想要的,我们其实目的是为了让E(out)(h)最小,但是由于我们不知道E(out)(h)最小,所以我们只能用E(in)(h)来代替,我们要让机器找出来的E(in)(h)最小的那个假设函数g在E(out)(h)也要近似最小,这就需要机器学习了。
此时,我们可以把机器学习的核心总结为两个问题:
1.我们是否能确认E(in)≈E(out)
2.我们怎么找到最小的E(in)
那么我们来看一下我们的假设函数集的数目M和以上两个问题的关系:
如果M很小的话,我们第一个问题可以大的概率保证,但是第二个问题,M很小的话,我们的算法选择假设函数范围就变小,找到一个很小的E(in)(h)的可能性就很低
如果M很大的话,我们的第二个问题就有大的几率保证,M很大,选择的空间越多,找到E(in)(h)很小的几率就会很大,但是对于第一个问题就不行了,M很大,那么
根据,我们知道此事发生坏事情(也就是算法找到的假设函数的E(in)和E(out)差别很大)的几率就会很大
这也就是说我们要找到一个合适的M。
但是如果M是无限大怎么办呢?
二、把无限大的M专为有限
我们首先来看一下有限的情况下霍夫丁不等式的推导过程:也就是这个不等式
1.我们说对于一个假设函数来说是不好的事情,也就是其|E(in)-E(out)|>ε
2.为了使得我们的算法找到最好的h,我们就计算一下,我们的算法对于所有的假设函数发生不好的事情的几率的上限
那么我们就得到这个概率的上限是
那么,当我们的M无线多的时候,那么我们的这个上界就没有意义了
注意上面的那个上界,我们为什么可以用它做上界,根据概率知识我们知道,我们计算上界的时候认为我们的每一个假设函数的发生不好的事情都是不重叠的。
但是实际情况并不是这样的,如果我们的两个假设函数h_1和h_2很接近,所以其E(out)(h_1)≈E(out)那么对于大部分的样本集合二者的E(in)(h_1)=E(in)(h_2)
也就是说有很多情况下发生坏事情是重叠的,而不是分离的。
我们现在要做的就是把假设函数进行分类。
假设我们的样本集合只有一个样本,那么我们的线可以分为两类,为什么?
如图所示,这种情况下我们把线只分为了两类:一类是把这个样本分为类A,一类线是把样本分为了B类
再考虑如果只有两个样本集合的情况,我们应该把线分为几类呢?
分别如图情况的是四种线。
那么同样如果是三个样本的情况呢?
三个样本的情况下是8种线,但是需要注意,难道只要是三个点我们就一定能够把线分为8种吗?
不是的,如果三个点在一条直线上的话,如图
如图所示,圆圈画出的情况,我们是找不到这样的直线的,也就是说我们只能把直线分为6种
那么继续,我们如果只有四个样本的情况呢?
如图所示,4个样本的时候,我们第一想法是把线分为16种(图中只画了一半,其余是对称的),但是注意在上图圆圈圈到的地方,我们其实是找不到这样的直线的,也就是说我们最多只能找到14种,再加上如果某三个点在一条直线上,或者四个点都在一条直线上的情况,那么可以划分的种类就更少了,所以四个点的时候最多可以划分为14种直线。
总结一下:
也就是说线的种类是一定小于2的N次方的。
那么,我们把其划分的种类数量叫做,这个也就是指的是有效的种类
也就是说,那么我们就可以得到(假设可以这样替换):
当N无线大的时候,不等式右边的值就是趋近于0了(求极限)。
三、最小化假设函数种类
根据我们刚才讲的,其实就是找到到底有多少种样本集合的组合
这种组合我们把它叫做使用假设函数集合对样本集合作用之后的结果叫做dichotomy:
这样我们就可以使用这个dichotomy来替换假设函数集合
因为我们找到的这样的dichotomy依赖于我们的样本集合,我们需要把这个依赖去掉,去掉的方式就是找到最多的情况
我们把这个函数叫做成长函数。
下面我们开始讨论:
如果我们的样本集合是在一维的情况下:
这种情况下我们找到一个门限值,门限值的左侧就是-1,门限值的右侧就是+1.
那么我们很简单得出一共有N+1种门限值:
注意N+1是远小于2的N次方的当N足够大时。
下面我们把这个一维的情况稍微改变一下:
那么此时我们成长函数是:
这个多项式一样比2的N次方小当N足够大时。
另外一种情况:回到二维的平面,如果我们把一个平面的凸平面作为我们的划分样本集合的假设函数,那么我们一共有多少种样本的组合方式呢?也就是我们的成长函数是多少?下图是凸平面的例子:
我们的目的是找出最多的情况,那么我们就给出一个极端的情景:
我们把样本点全都放在一个圆形的边缘上:
当我们要对样本集合进行分组是,我们只需要找到一个凸多边形就行,然后把这个凸多边形往外扩展一点点,就把原来凸多边形的点包括在多边形内部,那么这样的话我们的成长函数是,也就是说所有的情况我们都可以找到。
总结下:
注意最后一项,就是刚才我们说的情况,我们只是得到它的成长函数小于2的N次方,但是我们并没有得到一个固定的公式去表示它的成长函数。
那么我们的目的就是找到这个成长函数,来代替原来霍夫不等式中的无限大的假设函数集合。
具体我们找到一个这样的一个成长函数需要等到下一节进行证明。
现在我们先看一下以前我们说的perceptrons中的情况,我们知道当N为4的情况下,我们就无法找到2的N次方的情况,那么我们可以肯定的是4以后的N我们都肯定也无法得出2的N方的情况,所以我们把这个N=4位其break point 。
那么我们来观察一下
注意第一种的break point的是2,那么它的成长函数是一个O(N)的,第二种的情况它的break point是3,那么它的成长函数是O(N平方),那么我可以找到这样的规律,perception的break point是4,是不是其成长函数就是O(N的三次方)呢?
下一节我们再进行 讨论。
- 训练和测试的区别(五)
- [转]训练集和测试集的含义和区别?
- 神经网络训练样本和测试样本的区别
- 神经网络训练样本和测试样本的区别
- yolo的训练和测试
- yolo的训练和测试
- caffe随记(七)---训练和测试自己的图片
- caffe 进行简单的训练和测试
- 训练和测试自己的图片
- 训练和测试自己的图像集
- 训练集和测试集的划分
- BatchNorm层训练和测试的注意事项
- caffe 训练和测试
- 偏差,方差,训练误差,测试误差的区别
- 偏差,方差,训练误差,测试误差的区别
- 偏差,方差,训练误差,测试误差的区别
- 逻辑思维训练(五)
- faster-rcnn训练和测试自己的数据(VGG/ResNet)以及遇到的问题
- 【代码笔记】iOS-单例
- 在eclipse中调试服务器中的项目
- HDOJ 1041 Computer Transformation
- Apache Shiro 简介
- TableView分割线顶不到头 解决
- 训练和测试的区别(五)
- (转载)C++ ofstream和ifstream详细用法
- 配置Java jdk(备忘)
- Openwrt永久修改MAC地址源代码
- ZooKeeper+Wildfly(jboss)+SolrCloud搭建
- 天声人語 20151225 両陛下と戦争の悲しみ
- BTS PenTesting Lab - A1 Injection
- AMF解析遇上XXE,BurpSuite也躺枪
- 日经春秋 20151225