[FML]学习笔记二 PAC Learning Model
对于一个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的更多相关文章
- Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- [FML]学习笔记三 Rademacher Complexity
该章节证明用到的不等式:Hoeffding不等式,McDiarmid不等式以及jensen不等式 Hoeffding's: McDiarmid不等式是Hoeffding不等式的一个推广,用f(S)代替 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- Django学习笔记二
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...
- kvm虚拟化学习笔记(二)之linux kvm虚拟机安装
KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...
- (转载)林轩田机器学习基石课程学习笔记1 — The Learning Problem
(转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can M ...
- 微信小程序学习笔记二 数据绑定 + 事件绑定
微信小程序学习笔记二 1. 小程序特点概述 没有DOM 组件化开发: 具备特定功能效果的代码集合 体积小, 单个压缩包体积不能大于2M, 否则无法上线 小程序的四个重要的文件 *js *.wxml - ...
- MongoDB学习笔记二- Mongoose
MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...
- WPF的Binding学习笔记(二)
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
随机推荐
- pyqt5表格qtablewidget
表格用到控件QTableWidget,还有一个类似的叫QTableView的. 设置单元格里的内容用方法:setItem(0,0,str) 第一个0表示第一行, 第二个0表示第一列, 第三个参数是写入 ...
- 【转】对ARM堆栈的理解
对ARM堆栈的理解 堆栈严格来说应该叫做栈,栈(Stack)是限定仅在一端进行插入或删除操作的线性表.因此,对栈来说,可以进行插入或删除操作的一端端称为栈顶(top),相应地,另一端称为栈底(bott ...
- div 居中进行总结
1.margin:auto ;让元素居中,需要确定元素的宽度,并且需要是块元素 eg: div { width:200px; height:200px; background:#222; margin ...
- cf C. Levko and Array Recovery
http://codeforces.com/contest/361/problem/C 这道题倒着一次,然后正着一次,在正着的一次的时候判断合不合法就可以. #include <cstdio&g ...
- Android 状态栏通知Notification、NotificationManager简介
Notification(通知)一般用在电话,短信,邮件,闹钟铃声,在手机的状态栏上就会出现一个小图标,提示用户处理这个通知,这时手从上方滑动状态栏就可以展开并处理这个通知: 在Android系统中, ...
- 简单拨号器(Android)
感受: 1.了解了intent中的action和Uri. 2.了解了向下一个活动传递数据. 3.了解了内容提供器. 4.了解自定义适配器. 4.其实T9拨号器和简单计算器原理一样.
- C++程序面试笔迹六
1.const和static的作用 用最熟悉的语言: 2.阶乘求和 如:1!+2!+3!+4!+……+n!=sum? 3.删除掉字符串中相同的字母只留有一个 如: akkkjjtyy——> ...
- java.lang.NoClassDefFoundError 异常
在项目实施过程中,当访问某一个功能时,出现异常为 java.lang.NoClassDefFoundError com/xxx/yyy/Zzzz > ,检查发现这个类实际已经存在于应用服务器 ...
- Appium 点击Android屏幕
用driver.tap(1, 10, 10, 800); 点击屏幕,经常提示:An unknown server-side error occurred while processing the co ...
- css如何使背景图片水平居中
CSS中定位背景图片的属性是:background-position,用法background-position 属性设置背景图像的起始位置. 你要水平居中可以: div{background-pos ...