对于一个concept class C,如果存在一个算法A和一个多项式poly(.,.,.,.),有对于任意的ε>0、δ>0以及X的任意分布D和任何target concept C,当sample size m>=poly(1/ε,1/δ,n,size(c))时,不等式:

都成立,那么就说这个concept class C是PAC-learnable的。

(1).n:x的维度。

(2).size(c):

O(n):an upper bound on the cost of the computational representation of any element xЄX。对于一个维度为n的用数组表示的x来说要计算的话时间复杂度最高就是O(n)。

size(n):the maximal cost of the computation representation of cЄC。同O(n)的解释,可以看做就是c的大小。

如果算法A的样本复杂度关于1/δ,1/ε,n,size(c)的大小是多项式的,那么就说C是efficiently PAC-learnable的。当这样的A存在的时候,该算法A被叫做concept class C的PAC learning algorithm。

对于PAC-learnability还有一些要注意的地方:

(1).PAC对于x的任意分布D都是成立的。

(2).虽然对分布没有限定,training sample和testing sample都要产生与同一个分布D。

(3).PAC所解决的是一个concept class C的可学习性问题,并不针对一个特别的concept c(通常target c也是未知的但C是已知的)。

一个例子:

如图,X=R^2,concept class C是在R^2上的所有边与坐标轴平行的矩阵,目标是求得一个concept C使得矩阵内部的点都为1(蓝点),矩阵外部的点都为2(红点)。对于这个问题设计了一个非常简单的算法,算法返回包含了所有label为1的点的最小的矩阵。

假设算法返回的矩阵为R',我们沿R的四个边做四个矩形为r1,r2,r3,r4,并令它们的probability mass等于ε/4,如果我们要使R(R')也就是R'的gerneralization error大于ε,那么R'不能和四个矩阵都有交集,否则R-R'=R(R')必小于ε。也就是R'至少要和一个矩阵ri没有交集。

于是有:

(1):由于Rs与ri没有交集等价于没有蓝点落在ri中,又ri在target concept R中,所以没有红点落在ri中,综合下也就是没有点落在ri中,每个点落在ri的概率为ε/4,那么对于每个ri,m个点都不落在其中的概率为(1-ε/4)^m,有四个ri。

(2):为exp^(-x)的泰勒展开缩放。

由此得:

也就是样本大小m在满足上述不等式时能够保证concept space是PAC Learnable的。这里对于1/δ是ln复杂度,对于1/ε是线性复杂度,总的来说是efficiently PAC-learnable的。

上面矩阵的例子是对于PAC在一种特殊情况下的证明,下面我们试着推广至更多的情况:

1.finite H,consistent case

假设H为X至Y的一个有限空间函数集,对于任何目标concept cЄH以及独立同分布的样本集S,算法A都能返回一个与S一致的hypothesis hS,也就是Rhat(hS)=0.那么有对于任意的ε,δ>0:

如果:

都成立。

改写上式得到相应的generalization bound:

证明:我们要限制出现某个h和sample一致(consistent),但是error大于ε的情况发生的概率:

最后一步根据P(A∧B)=P(A|B)*P(B)<P(A|B)。

又有:

带入可得:

设不等式右边等于δ得证。

2.finite H,inconsistent case

H是一个有限的假设空间,对于任意δ>0,以至少1-δ的概率,有:

证明:Corollary(1):

固定ε>0,S为大小为m的i.i.d分布的样本集,那么对于任意hypothesis h:X->{0,1},下面的不等式都成立:

证明:直接使用Hoeffiding不等式可得。

Corollary(2):

单个hypothesis的generalization bound:

H是一个有限的假设空间,那么对于任意的δ>0,以至少1-δ的概率有:

证明:假设corollary(1)不等式右边等于δ可得。

定理证明:

最后一步运用Corollary(1),设不等式右边等于δ原式得证。

注意到,这里得到的bound要求我们在empirical error和H的大小中寻求一个平衡,一个大的H虽然会增加第二项的值但是会同时减少empirical error。当然,当empirical error差不多时,要尽量选择大小更小的hypothesis set,这也符合了Occam剃刀原则。

[FML]学习笔记二 PAC Learning Model的更多相关文章

  1. Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  2. [FML]学习笔记三 Rademacher Complexity

    该章节证明用到的不等式:Hoeffding不等式,McDiarmid不等式以及jensen不等式 Hoeffding's: McDiarmid不等式是Hoeffding不等式的一个推广,用f(S)代替 ...

  3. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  4. Django学习笔记二

    Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...

  5. kvm虚拟化学习笔记(二)之linux kvm虚拟机安装

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  6. (转载)林轩田机器学习基石课程学习笔记1 — The Learning Problem

    (转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can M ...

  7. 微信小程序学习笔记二 数据绑定 + 事件绑定

    微信小程序学习笔记二 1. 小程序特点概述 没有DOM 组件化开发: 具备特定功能效果的代码集合 体积小, 单个压缩包体积不能大于2M, 否则无法上线 小程序的四个重要的文件 *js *.wxml - ...

  8. MongoDB学习笔记二- Mongoose

    MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...

  9. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

随机推荐

  1. Jetty开发(2)

    部署web应用 配置了部署模块的Jetty服务器实例能够在webapps目录下热部署web应用.在webapps目录下标准的War包和jetty的配置文件能够被热部署进服务器需要符合下述规则: exa ...

  2. Nexus Root Toolkit教程——刷机

    Nexus Root Toolkit是Nexus系列设备专属解锁.root.刷机.修复工具.本教程以Nexus7二代刷安卓5.0 Lollipop系统为实例演示刷机过程. 标签: 安卓5.0刷机教程 ...

  3. 剑指offer中二进制中1的个数

    容易想到的是将n一位一位的和1进行比较,产生如下代码 但是这样的话会出下面的问题 那么就是原数据不动,将1依次移动进行比较有如下的代码 一种更简单的方法是: 这样做的思路是 总而言之

  4. Mysql 新建用户以及授权远程连接操作

    1:以root身份登陆mysql终端 mysql -uroot -pmysql 2:创建wx用户,注意密码要加单引号 mysql> create user wx identified by 'w ...

  5. LeetCode_Binary Tree Inorder Traversal

    Given a binary tree, return the inorder traversal of its nodes' values. For example: Given binary tr ...

  6. hdu1573:数论,线性同余方程组

    题目大意: 给定一个N ,m 找到小于N的  对于i=1....m,满足  x mod ai=bi  的 x 的数量. 分析 先求出 同余方程组 的最小解x0,然后 每增加lcm(a1...,am)都 ...

  7. 掌握 Java 8 Lambda 表达式

    Lambda 表达式 是 Java8 中最重要的功能之一.使用 Lambda 表达式 可以替代只有一个函数的接口实现,告别匿名内部类,代码看起来更简洁易懂.Lambda 表达式 同时还提升了对 集合 ...

  8. c++命名空间using

    #include<iostream> namespace run1 { ; } namespace run2 { ; void show() { std::cout << x ...

  9. js面向对象的五种写法

    第一种: //第1种写法 function Circle(r) { this.r = r; } Circle.PI = 3.14159; Circle.prototype.area = functio ...

  10. vuex 模块

    今天,在我编写系统中一个模块功能的时候,由于我使用vuex存储数据的状态,并分模块存储.我是这样在存储文件中定义state,getters,actions,mutations的,我打算在不同模块文件都 ...