之前我们讨论了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的更多相关文章

  1. 理解机器为什么可以学习(四)---VC Dimension

    前面一节我们通过引入增长函数的上限的上限,一个多项式,来把Ein 和 Eout 的差Bound住,这一节引入VC Bound进一步说明这个问题. 前边我们得到,如果一个hypethesis集是有bre ...

  2. 理解机器为什么可以学习(三)---Theory of Generalization

    前边讨论了我们介绍了成长函数和break point,现在继续讨论m是否成长很慢,是否能够取代M. 成长函数就是二分类的排列组合的数量.break point是第一个不能shatter(覆盖所有情形) ...

  3. 理解机器为什么可以学习(二)---Training versus Testing

    前边由Hoeffding出发讨论了为什么机器可以学习,主要就是在N很大的时候Ein PAC Eout,选择较小的Ein,这样的Eout也较小,但是当时还有一个问题没有解决,就是当时的假设的h的集合是个 ...

  4. 理解机器为什么可以学习(一)---Feasibility of learning

    主要讲解内容来自机器学习基石课程.主要就是基于Hoeffding不等式来从理论上描述使用训练误差Ein代替期望误差Eout的合理性. PAC : probably approximately corr ...

  5. 《深入理解计算机系统V2》学习指导

    <深入理解计算机系统V2>学习指导 目录 图书简况 学习指导 第一章 计算机系统漫游 第二章 信息的表示和处理 第三章 程序的机器级表示 第四章 处理器体系结构 第五章 优化程序性能 第六 ...

  6. Java虚拟机内存溢出异常--《深入理解Java虚拟机》学习笔记及个人理解(三)

    Java虚拟机内存溢出异常--<深入理解Java虚拟机>学习笔记及个人理解(三) 书上P39 1. 堆内存溢出 不断地创建对象, 而且保证创建的这些对象不会被回收即可(让GC Root可达 ...

  7. Deep learning for visual understanding: A review 视觉理解中的深度学习:回顾 之一

    Deep learning for visual understanding: A review 视觉理解中的深度学习:回顾 ABSTRACT: Deep learning algorithms ar ...

  8. (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射

    http://blog.csdn.net/yerenyuan_pku/article/details/71894172 在实际开发中我们不可能只是对单表进行操作,必然要操作多表,本文就来讲解多表操作中 ...

  9. 《深入理解 Java 虚拟机》学习 -- 类加载机制

    <深入理解 Java 虚拟机>学习 -- 类加载机制 1. 概述 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的 J ...

随机推荐

  1. safenet 超级狗 加密狗

    1.CS程序可以工作正常: 2.BS程序,服务器验证狗,IIS设置32位兼容方法1: dog.SetLibPath,设置查找依赖dll路径: 方法2:默认系统目录 C:\Windows\SysWOW6 ...

  2. jquery-weui picker组件实现只选择年月

    var date = new Date() var month = date.getMonth()+1 //获取当前月份 $('#selectTime').picker({ toolbarTempla ...

  3. Python之HTML的解析(网页抓取一)

    http://blog.csdn.net/my2010sam/article/details/14526223 --------------------- 对html的解析是网页抓取的基础,分析抓取的 ...

  4. LeetCode Merge Sorted Array 合并已排序的数组

    void merge(int A[], int m, int B[], int n) { int *a=A,*b=B; ,j=; ||m==){ //针对特殊情况,比如A或B中无元素的情况 & ...

  5. Dll注入:X86/X64 远程线程CreateRemoteThread 注入

    远线程注入原理是利用Windows 系统中CreateRemoteThread()这个API,其中第4个参数是准备运行的线程,我们可以将LoadLibrary()填入其中,这样就可以执行远程进程中的L ...

  6. C基础的练习集及测试答案(40-50)

    40.(课堂)打印杨辉三角型前10行 #if 0 40.(课堂)打印杨辉三角型前10行 思路分析: 一.打印十行杨辉三角得第十行长度为十,所以建立一个长度为十的数组,作为每行的数据存储 二.按 0-9 ...

  7. World Wind Java开发之二 使用Winbuilders设计图形用户界面(转)

    http://blog.csdn.net/giser_whu/article/details/40892955 在eclipse中使用WindowsBuildes可以像在VS中一样,拖拽用户图形界面. ...

  8. 【转】VS2010发布、打包安装程序(超全超详细)

    1. 在vs2010 选择“新建项目”→“ 其他项目类型”→“ Visual Studio Installer→“安装项目”: 命名为:Setup1 . 这是在VS2010中将有三个文件夹, 1.“应 ...

  9. komodo-edit

    sudo add-apt-repository ppa:mystic-mirage/komodo-edit sudo apt-get update sudo apt-get install komod ...

  10. ES6 Proxy拦截器详解

    Proxy 拦截器 如有错误,麻烦指正,共同学习 Proxy的原意是"拦截",可以理解为对目标对象的访问和操作之前进行一次拦截.提供了这种机制,所以可以对目标对象进行修改和过滤的操 ...