机器为什么可以学习(4)---错误和噪声

1、课程主要内容

  上节课中学习了VC维的相关只是,在hypothesis set的VC维有限,且输入数据N够大,并可以找到一个足够小的Ein,那么学习就是可能的。

  

  但是在实际的情况中,数据来源不都是理想的,必然存在着错误和噪声,本次课程讨论在错误和噪声存在的情况下,机器为什么还可以学习?

  

  在噪声和错误存在的请款下,vc bound如何进行放缩使得学习在理论上是可行。

2、噪声存在下的学习

  

  在之前的学习流程图中,在分布的部分加上了噪声,这个时候会对之前的推导有什么影响?

  噪声来源:

  数据部分和标签部分都有可能产生噪声,比如标签的误标等,数据采集的误差等;

  之前介绍vc bound的关键使用了弹珠和罐子的例子,以弹珠表示每个具体的数据实例,罐子表示整个数据空间,通过在罐子中进行抽样来预测整个罐子的情况;

  

  对应到学习上:此处弹marble弹珠前加上了确定的修饰,表示弹珠的真实颜色和采样数据颜色相同没有噪声

  

  存在噪声时,弹珠的颜色就因为噪声的原因可能为不确定的:

  

  存在“变色龙”弹珠时,我们怎么办?还是可以采取抽样的办法,不过遇到特殊的弹珠时,需要记下抽样时刻的颜色,也就是针对在某一采样时间下,采出的样本来反应整体;

  此时,对于VC bound 来说,不光是数据x来源与同一个分布,此时y还要来源一个关于x的条件概率,整体来说就是(x,y)符合联合概率分布f(x,y):

  

  目标分布函数p(y|x)????

  

3、error measure

  在学习完成后使用测试集对训练的模型进行性能测试;之前的推导过程中,我们使用在样本以外的数据集上的错误:

  

  更一般的来说,针对某个模型自然的就要考虑到:

  抽样样本之外,对某个具体的点来衡量:

  

  对于二元分类问题:

  

  以上的错误衡量常被称为0/1错误;

  单点衡量经常使用整个数据集上出错的点的平均:

  

  对于样本内可以使用:

  

  几种常用的错误衡量方式:

  0/1错误:

  

  平方误差:

  

  不同错误衡量下的最优的mini target 的选择办法:

  

时间: 2024-10-28 15:34:21

机器为什么可以学习(4)---错误和噪声的相关文章

机器学习基石笔记9——机器可以怎样学习(1)

转载请注明出处:http://www.cnblogs.com/ymingjingr/p/4271742.html 目录 机器学习基石笔记1——在何时可以使用机器学习(1) 机器学习基石笔记2——在何时可以使用机器学习(2) 机器学习基石笔记3——在何时可以使用机器学习(3)(修改版) 机器学习基石笔记4——在何时可以使用机器学习(4) 机器学习基石笔记5——为什么机器可以学习(1) 机器学习基石笔记6——为什么机器可以学习(2) 机器学习基石笔记7——为什么机器可以学习(3) 机器学习基石笔记8

机器学习基石笔记10——机器可以怎样学习(2)

转载请注明出处:http://www.cnblogs.com/ymingjingr/p/4271742.html 目录 机器学习基石笔记1——在何时可以使用机器学习(1) 机器学习基石笔记2——在何时可以使用机器学习(2) 机器学习基石笔记3——在何时可以使用机器学习(3)(修改版) 机器学习基石笔记4——在何时可以使用机器学习(4) 机器学习基石笔记5——为什么机器可以学习(1) 机器学习基石笔记6——为什么机器可以学习(2) 机器学习基石笔记7——为什么机器可以学习(3) 机器学习基石笔记8

理解机器为什么可以学习(四)

前面一节我们通过引入增长函数的上限的上限,一个多项式,来把Ein 和 Eout 的差Bound住,这一节引入VC Bound进一步说明这个问题. 前边我们得到,如果一个hypethesis集是有break point的,那么最终mh会被一个多项式bound住,如果break point 为k的话,那么这个多项式为N^(k - 1). Bound的不等式这里系统的列一下就是: 也就是说,机器可以学习的即可条件: 要有好的假设集,也就是需要存在break point 训练数据集要足够的大 要有一点儿

JavaScript高级程序设计学习笔记--错误处理与调试

try-catch语句 只要代码中包含finally子句,则无论try或catch语句块中包含什么代码--甚至return语句,都不会阻止finally子句的执行,来看下面这个函数: function testFinally(){ try{ return 2; }catch(error){ return 1; }finally{ return 0; } } 调用这个函数会返回0(PS:但我实际执行的时候会先返回0,再返回2) 抛出错误 与try-catch语句相配的还有一个throw操作符,用于

让机器教人学习更有效:Becoming the Expert - Interactive Multi-Class Machine Teaching

这是CVPR2015的一篇非常有趣的文章,论文研究了如何让机器自动地教导学生进行学习目标的分类.论文研发了一种机器学习方法,通过人机交互的过程中,不断的优化机器指导的方法和技巧,从而提高人学习目标分类的效率.如下图所示: 机器教导人学习的过程 1.机器首先展示一张图片A给人看,不告诉图片中物体的真实类别: 2.人对该图片进行判断,给出一个类别答案Ry: 3.机器根据人的判断结果对算法模型M进行更新优化: 4.接着机器将图片A的真实类别Ty告诉人: 5.重复以上步骤,直到学习结束. 实验的结果是论

LR学习路错误总结

函数: lr_output_message(lr_eval_string("<page>")); sockets里面的参数是<> http里面是{} 关于Winsocket协议手动关联,用socketTool录制脚本,发送TCP请求A,请求B,请求A的返回值在请求B中将会用到. 最终脚本如下: data.ws data.ws中的urmid的值是需要在请求B中传递,故做关联获取该值. 函数lrs_save_searched_string()这个函数主要是在收到的字

Django学习——collectstatic错误

Error fetching command 'collectstatic': You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.Command 'collectstatic' skipped 去掉一斜杠 Django学习——collectstatic错误 原文地址:https://www.cnblogs.com/wangshicheng/p/11441

理解机器为什么可以学习(二)

前边由Hoeffding出发讨论了为什么机器可以学习,主要就是在N很大的时候Ein PAC Eout,选择较小的Ein,这样的Eout也较小,但是当时还有一个问题没有解决,就是当时的假设的h的集合是个数是有限的,那么本文继续讨论h个数为无限的情况.http://www.cnblogs.com/futurehau/p/6235348.html 其实之前的问题可以分类两个方面: 一方面:Ein 是否约等于 Eout 另一方面:Ein时候足够小. 所以,选择合适的M是很重要的,现在加入M为无限大的情况

机器学习基石笔记11——机器可以怎样学习(3)

十一.Linear Models for Classification 用于分类的线性模型. 11.1 Linear Models for Binary Classification 用于二元分类的线性模型. 目前叙述的算法模型主要有3类:线性二元分类,线性回归,logistic回归,这三个模型的最主要的相同点在假设函数和错误函数中都出现了线性得分函数(linear scoring function),如公式11-1所示.     (公式11-1) 三类模型与得分s之间的关系如图11-1所示.