理解机器为什么可以学习(五)---Noise and Error
之前我们讨论了VC Dimension,最终得到结论,如果我们的hypetheset的VC Dimension是有限的,并且有足够的资料,演算法能够找到一个hypethesis,它的Ein很低的话,那么我们就大概学到了东西。
看看之前的learning flow:
我们有一个target function,能够产生一堆的sample,x 由某一个分布产生,未来的测试也有同一个分布产生。
演算法想办法从资料和假设集里找到一个好的假设。好的假设集是VC Dimension是有限的,好的假设是Ein是低的。
那么,我们现在讨论假设数据是有噪声的,之前的推导还是有效的吗?
1. Noise and Probabilistic Target
之前的讨论没有考虑噪声,但是无论是X还是Y,都是有可能带来噪声的。
那么之前的目标函数就变为目标分布:
目标部分告诉我们最好的分布是什么,杂讯是多少。
P(x)代表哪些X比较重要.
那么,现在的learning flow变为:
2. Error Measure
之前我们一直在寻找g和f接近,现在我们进行一个量化来表示g和f一不一样。
之前的g有三个特性:
(classification错误也叫做0/1 Error)
两种错误衡量方式:
错误大小和P(y|X)有关,和衡量错误的方法有关:
那么,有了错误衡量的概念之后,我们的学习曲线就需要告诉演算法使用怎样的错误衡量方式。
3. Choice of Error Measure
其实就是说的准确率和召回率。
假设做一个指纹辨识系统,
那么超市打折就希望较少的false reject,所以就可以把false reject的惩罚权重调大一些。
CIA进入许可就希望比较小的false accept,所以就可以把false accept的惩罚权重调大一些。
所以,不同的应用需要不同的错误衡量方式。在设计演算法的时候就需要考虑到错误衡量方式。
但真正的量化错误衡量方式往往不容易,所以需要寻找替代:
那么,有了替代Err的概念之后,演算法可以转变为:
4. Weighted Classification
不同的错误有不同的权重。
改变了Ein之后,之前的PLA和Pocket相应有什么影响呢?
Pocket可以让Ein01尽可能的小,但是新的衡量方式也有保证么?
这样考虑,复制权重次数即可对应。
实际上并不需要真正的去复制,而是下述的虚拟复制。
理解机器为什么可以学习(五)---Noise and Error的更多相关文章
- 理解机器为什么可以学习(四)---VC Dimension
前面一节我们通过引入增长函数的上限的上限,一个多项式,来把Ein 和 Eout 的差Bound住,这一节引入VC Bound进一步说明这个问题. 前边我们得到,如果一个hypethesis集是有bre ...
- 理解机器为什么可以学习(三)---Theory of Generalization
前边讨论了我们介绍了成长函数和break point,现在继续讨论m是否成长很慢,是否能够取代M. 成长函数就是二分类的排列组合的数量.break point是第一个不能shatter(覆盖所有情形) ...
- 理解机器为什么可以学习(二)---Training versus Testing
前边由Hoeffding出发讨论了为什么机器可以学习,主要就是在N很大的时候Ein PAC Eout,选择较小的Ein,这样的Eout也较小,但是当时还有一个问题没有解决,就是当时的假设的h的集合是个 ...
- 理解机器为什么可以学习(一)---Feasibility of learning
主要讲解内容来自机器学习基石课程.主要就是基于Hoeffding不等式来从理论上描述使用训练误差Ein代替期望误差Eout的合理性. PAC : probably approximately corr ...
- 《深入理解计算机系统V2》学习指导
<深入理解计算机系统V2>学习指导 目录 图书简况 学习指导 第一章 计算机系统漫游 第二章 信息的表示和处理 第三章 程序的机器级表示 第四章 处理器体系结构 第五章 优化程序性能 第六 ...
- Java虚拟机内存溢出异常--《深入理解Java虚拟机》学习笔记及个人理解(三)
Java虚拟机内存溢出异常--<深入理解Java虚拟机>学习笔记及个人理解(三) 书上P39 1. 堆内存溢出 不断地创建对象, 而且保证创建的这些对象不会被回收即可(让GC Root可达 ...
- Deep learning for visual understanding: A review 视觉理解中的深度学习:回顾 之一
Deep learning for visual understanding: A review 视觉理解中的深度学习:回顾 ABSTRACT: Deep learning algorithms ar ...
- (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射
http://blog.csdn.net/yerenyuan_pku/article/details/71894172 在实际开发中我们不可能只是对单表进行操作,必然要操作多表,本文就来讲解多表操作中 ...
- 《深入理解 Java 虚拟机》学习 -- 类加载机制
<深入理解 Java 虚拟机>学习 -- 类加载机制 1. 概述 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的 J ...
随机推荐
- safenet 超级狗 加密狗
1.CS程序可以工作正常: 2.BS程序,服务器验证狗,IIS设置32位兼容方法1: dog.SetLibPath,设置查找依赖dll路径: 方法2:默认系统目录 C:\Windows\SysWOW6 ...
- jquery-weui picker组件实现只选择年月
var date = new Date() var month = date.getMonth()+1 //获取当前月份 $('#selectTime').picker({ toolbarTempla ...
- Python之HTML的解析(网页抓取一)
http://blog.csdn.net/my2010sam/article/details/14526223 --------------------- 对html的解析是网页抓取的基础,分析抓取的 ...
- LeetCode Merge Sorted Array 合并已排序的数组
void merge(int A[], int m, int B[], int n) { int *a=A,*b=B; ,j=; ||m==){ //针对特殊情况,比如A或B中无元素的情况 & ...
- Dll注入:X86/X64 远程线程CreateRemoteThread 注入
远线程注入原理是利用Windows 系统中CreateRemoteThread()这个API,其中第4个参数是准备运行的线程,我们可以将LoadLibrary()填入其中,这样就可以执行远程进程中的L ...
- C基础的练习集及测试答案(40-50)
40.(课堂)打印杨辉三角型前10行 #if 0 40.(课堂)打印杨辉三角型前10行 思路分析: 一.打印十行杨辉三角得第十行长度为十,所以建立一个长度为十的数组,作为每行的数据存储 二.按 0-9 ...
- World Wind Java开发之二 使用Winbuilders设计图形用户界面(转)
http://blog.csdn.net/giser_whu/article/details/40892955 在eclipse中使用WindowsBuildes可以像在VS中一样,拖拽用户图形界面. ...
- 【转】VS2010发布、打包安装程序(超全超详细)
1. 在vs2010 选择“新建项目”→“ 其他项目类型”→“ Visual Studio Installer→“安装项目”: 命名为:Setup1 . 这是在VS2010中将有三个文件夹, 1.“应 ...
- komodo-edit
sudo add-apt-repository ppa:mystic-mirage/komodo-edit sudo apt-get update sudo apt-get install komod ...
- ES6 Proxy拦截器详解
Proxy 拦截器 如有错误,麻烦指正,共同学习 Proxy的原意是"拦截",可以理解为对目标对象的访问和操作之前进行一次拦截.提供了这种机制,所以可以对目标对象进行修改和过滤的操 ...