机器学习中,我们根据训练集训练一个模型,来对测试数据进行预测。通常我们并不关心模型在训练集上的好坏(即训练误差,in sample error),举个简单例子,我们想要根据前六个月股市行情训练一个模型来对未来股市走向进行预测,即使我们的算法在过去的数据上做的再精准都没有任何意义,我们希望模型在未来某一天能够预测的准,这样我们才能赚大钱。因此我们更着重于其在从未见过的数据(测试集)上的正确率(即泛化误 差,generalization error、out sample error)。因为泛化误差从整体上告诉我们 模型表现的好坏,这是我们事先不知道的一个参数, 正是由于不知道,所以我们才要估计它, 这也是机器学习的核心任务。初看起来,这个问题有点无从下手, 因为我们没办法知道输入空间的分布,因此也没办法估计泛化误差。不过,别忘了我们手头上有一笔训练数据,我们要根据这笔资料从假设集中挑一个假设出来,对 测试数据进行分类。一个很自然的想法是,我们可以挑训练误差最小的那个假设,这点很容易理解,训练误差小的假设泛化误差也应该比较小,也就是说我们挑出来 的假设和真实的target function比较接近。那么这个想法是正确的吗? 一定意义上来说,是对的。不然也不会有经验风险最小化(ERM)算法了。ERM是说从假设集中挑一个使得训练误差最小的那个假设h。数学上定义如下:

\[ \min \frac{1}{m}\sum_{i=1}^m I[h(x^{(i)}\neq y^{(i)}]\]
其中,m为训练样例的个数。

面说明为什么这个方法可行。统计学里,大数定理家族有个著名的不等式——Hoeffding's
equality。这个不等式的背景是,假设有一组独立同分布的随机变量$Z_1,\ldots,Z_m$,它们都服从Bernoulli分布,
即$P(Z_i=1)=\phi,
P(Z_i=0)=1-\phi$。我们想通过这组变量的均值$\hat{\phi}\frac{1}{m}\sum_{i=1}^m
Z_i$来估计参数$\phi$的值。Hoeffding不等式从概率意义上刻画了估计值和参数值的接近程度:
\[ P(|\hat{\phi}-\phi|<\epsilon)\leq 2\exp{-2\epsilon^2 m} \]

中,$\epsilon>0$是一个误差限,$m$是训练集中的样例个数。这个不等式告诉我们,我们的估计和真实值得差距相差很大的概率很小,也就
是说二者接近的概率很大。因此我们可以说,$\hat{\phi}=\phi$是PAC(probably approximate
correct,可能近似正确)的。PAC这个术语很有意思,他不能打包票说二者一定是等的,他只能保证大多数情况下是这样;而这个“等”只是越等,即相
差很近但不一定完全一样,例如我投一百次硬币,最后的频率可能是0.51或者是0.49,接近0.5但不会相等。有了Hoeffding不等式的理论基
础,我们想把这个刻画参数估计和真实值接近程度的方法套用到学习问题上去。
为了能够套用Hoeffding不等式到学习问题上,我们需要做出一些
假设:
给定一个假设h,我们认为h在一个样例x上与类标号y是否一致是一个服从Bernoulli分布的随机变量,也记为Z,即$Z=I[h(x)\neq
y]=\mu$,这里$\mu$可以认为是泛化误差。我们进一步假设训练集的样本是独立同分布采样的,那么$Z_1,Z_2,...,Z_m$是一组
iid且服从Bernoulli分布的随机变量,它们的平均即训练误差(记为$\nu$)实际上就是对泛化误差$\mu$的一个估计。
根据Hoeffding不等式有:
\[P(|\nu-\mu|<\epsilon)\leq 2\exp{-2\epsilon^2 m} \]

据PAC理论,$\nu$和$\mu$离得很近,而且随着样本数的增加,它们的距离会越来越靠近,
如果此时训练误差$\nu$很小,那么我们可以说泛化误差$\mu$也很小是一个PAC的事件,泛化误差很小说明什么?说明我们的假设h和目标函数f真的
长得很像($h= f$ is PAC)。
至此,我们就证明了ERM确实是可行的, 那么我们就能高枕无忧了吗?今天我们选取一个假设,它的训练误差很低甚至接近于0,就能说它的泛化误差一定很低吗? 答案是否定的。 如果这个命题成立,也不会有所谓的overfitting了。
Hoeffding
不等式只告诉我们,我们抽一个样本,有很大概率抽到一个好的样本(这里好的样本指的是
训练误差和泛化误差很接近);而抽到一个坏的样本(两个误差相差很远,特指过拟合的情况,训练误差很小而泛化误差很大)的概率有一个上限且很小,
但并不等于说抽到一个bad sample就是不可能的(实际上有可能,只是概率非常小),如果不幸抽到了bad sample,
那么恭喜你,你可以去买彩票了。那么如何避免这种overfitting的产生呢?
其中一个选择是增加样例数,随着样例数的增加,Hoeffding不等式右侧的上限值会越来越小, 于是乎我们抽到bad sample的概率也就越来越小了,我们更有把握说我们的模型不容易过拟合了。

面说到的bad sample是相对于一个hypothesis而言的,对于每个不同的hypothesis,可能的bad sample都不同。
那么给定一个训练集,我们在假设空间中的选择是有限制的,因为我们不知道哪个假设在这个数据集上会overfit,因此在选择假设的过程可能会踩到雷。有
的时候,踩到雷是不可避免的,因为我们没有选择数据集的权利。但我们可以做的事情是 估计踩到雷的概率上限是多少。这里我们只假设
假设空间有限,且大小为K。“踩到雷”这件事从集合论的角度来讲就是 至少存在一个假设$h_i\in
\mathcal{H}$,使得$|\nu_{h_i}-\mu|>\epsilon$发生。我们记事件$A_i=|\nu_{h_i}-
\mu|>\epsilon$。利用联合界定理,我们可以推导其概率上限为
\[ P(\exists h\in
\mathcal{H},|\nu_h-\mu|>\epsilon) = P(\bigcup_{i=1}^{K} A_i) \leq
\sum_{i=1}^K P(A_i)\leq 2K\exp(-2\epsilon^2 m) \]
在假设空间有限的情况下,通过增加样本集大小m,就能减少我们在假设集上踩到雷的几率,从而估计的失真度,减少过拟合现象。

总结一下:这篇文章中我们证明了在加上一些统计学假设(训练集是独立同分布抽样) 且 假设空间是有限的情况下, PAC理论保证了学习是可行的。对于假设空间是无限的情况(比如线性分类器),需要用到VC-dimension来证明其可行性。

为什么机器能够学习——PAC Learnability的更多相关文章

  1. 机器不学习:CNN入门讲解-为什么要有最后一层全连接

    哈哈哈,又到了讲段子的时间 准备好了吗? 今天要说的是CNN最后一层了,CNN入门就要讲完啦..... 先来一段官方的语言介绍全连接层(Fully Connected Layer) 全连接层常简称为 ...

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

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

  3. Query意图分析:记一次完整的机器学习过程(scikit learn library学习笔记)

    所谓学习问题,是指观察由n个样本组成的集合,并根据这些数据来预测未知数据的性质. 学习任务(一个二分类问题): 区分一个普通的互联网检索Query是否具有某个垂直领域的意图.假设现在有一个O2O领域的 ...

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

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

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

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

  6. PAC学习理论:机器学习那些事

    参考翻译,有大量删除和修改,如有异议,请拜访原文.一定要看英文原文!!!. 本文转载于:深度译文:机器学习那些事 英文[原题]A Few Useful Things to Know About Mac ...

  7. Generalizing from a Few Examples: A Survey on Few-Shot Learning 小样本学习最新综述 | 三大数据增强方法

    目录 原文链接:小样本学习与智能前沿 01 Transforming Samples from Dtrain 02 Transforming Samples from a Weakly Labeled ...

  8. 【腾讯Bugly干货分享】深度学习在OCR中的应用

    本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5809bb47cc5e52161640c5c8 Dev Club 是一个交流移动 ...

  9. Deep Learning(深度学习)学习笔记整理

    申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2.初级(浅层)特征表示 既然像素级的特征表示方法没有作用,那怎样的表 ...

随机推荐

  1. golang学习之奇葩的time format

    golang格式化时间时,比如如下格式进行格式化输出: fmt.Println(time.Now().Format("2007年03月")) 程序直接输出: 16007年02月 很 ...

  2. nodejs获取客户机ip

    /** * Created by chaozhou on 2015/11/24. */ var getIp = function(req){ var ipStr = req.headers['x-fo ...

  3. AMD 规范与CMD 规范概要

    命名冲突和文件依赖,是前端开发过程中的两个经典问题.通过模块化开发来解决. AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMD CMD 规范在这 ...

  4. OpenStack系列

    一.概述 云计算介绍 OpenStack各组件详解和通信流程 二.keystone系列 三.glance系列 四.nova系列 虚拟化介绍 kvm介绍 五.neutron系列 六.horizon系列 ...

  5. webstorm添加自定义代码块

    widnow下使用alt+ctrl+s 调出setting面板 mac下使用command+,(逗号)调出Preferences面板 搜索live template选中js,在javascrpt 模板 ...

  6. 关于moucedown 的3种触发方式

    与 click 事件不同   mousedown 按下鼠标就可以触发 click 只能用鼠标左键触发, 而mousedown 可以由单击.中键.或右击 触发 根据对event.which 的判断,可以 ...

  7. 讲解JavaScript两个圆括号、自调用和闭包函数

    一.JavaSript圆括号的使用 先来看一组通过函数声明来定义的函数: 先附代码: 运行结果如下: 这里我们可以看出: Ø  若没有加圆括号,则返回的是这个函数的内容 Ø  若加上圆括号,则返回的是 ...

  8. SpringCloud+Git+Maven+Docker+Jenkins自动化构建

    1.JDK安装-OpenJDK安装 yum list java-1.8* yum install -y java-1.8.0-openjdk-devel.x86_64 PS: JDK安装有两种方法:一 ...

  9. idea配置maven后提示 commond not found

    1.昨天换公司笔记本安装idea后,配置完maven后,发现自己配置的 responsity 里面没有jar包,还是在默认的.m2文件夹里面,之后发现原来是 配置的setting.xml里面的目录 这 ...

  10. 使用Mist部署Contract到Rinkeby以太坊网络

    本文使用MyEthWallet新建一个账号,并导入到Mist中,然后部署Contract到Rinkeby网络使用MyEthWallet新建账号的好处是除了JSON文件之外,还能得到一张它生成的pdf( ...