Coursera 机器学习基石 第4讲 学习的可行性
这一节讲述的是机器学习的核心、根本性问题——学习的可行性。学过机器学习的我们都知道,要衡量一个机器学习算法是否具有学习能力,看的不是这个模型在已有的训练数据集上的表现如何,而是这个模型在训练数据外的数据(一般我们称为测试数据)上性能的好坏,我们把这个性能称为泛化能力(generalization ability),机器学习中,我们的目标是寻找高泛化能力的模型;有些模型虽然在训练数据集上分类效果很好,甚至正确率达到100%,但是在测试数据集上效果很差,这样的模型泛化能力很差,这种现象也叫过拟合(Overfitting)。
如果我们能够获取测试数据,我们就可以据此估计一个模型的泛化能力了。可问题是,很多时候,我们只有一个训练集,而额外再获取sample是十分困难的事,例如医学上为一个病人做临床诊断都需要花费大量人力和财力。关于如何估计一个模型的泛化能力,这个我以后 会讲, 而这一节 我主要想讨论一个更有意思的问题,我们能否利用训练误差来估计泛化误差?
这里,我们把训练误差称作in sample error,即样本内误差,记为$E_{in}=\frac{1}{N}\sum_{i=1}^N I[h(x)\neq f(x)]$,其中$N$为训练集样本数,$h(x)$为假设,$f(x)$为target function。
样本外误差称作out sample error,定义为$E_{out}=E_{x\sim P}[I( h(x)\neq f(x))]$
样本外误差其实就是我们常说的期望损失
机器学习问题中,目标函数$f$和分布$P$一般都是未知的,也就是说,只给定训练数据集的前提条件下,$E_{out}$我们没法知道(除非加上一些假设)。那么在没办法知道样本外误差的情况下,我们如何选择一个模型呢?最容易想到的办法自然是 从假设集中挑选出训练误差小的假设, 直观上这很容易理解, 在训练数据集上表现好的模型,在训练集外的数据也应该表现好,可真的如此吗?答案是否。
我们先来看一个例子,然后再把学习问题与这个问题进行类比。
假设我们有一个罐子,罐子里装着很多橘色或者绿色的弹珠,如果我们想知道橘色珠子的比例是多少(记为$\mu$),该如何做?

当然你会说 ,这还不简单,一个一个数过去不就清楚了吗?但问题是,如果这个罐子很大,比如有1万个弹珠,你还会一个一个去数吗?显然是不可行的。学过统计的我们都知道还有一个办法,那就是抽样(sampling)。比如抽出10个弹珠,然后计算这个样本中橘色弹珠的比例(记为$\nu$)来作为整个罐子中橘色弹珠比例的估计。那么$\nu$是否告诉我们关于$\mu$一些有用信息?

首先,$\mu$一定等于$\nu$吗? 不一定,因为我们有可能抓起一把弹珠,而这把弹珠全部都是绿的。不过我们有很大把握说$\nu$是和$\mu$很接近的。数学上,刻画$\mu$和$\nu$有多接近,是由一个著名的不等式来规范的,这个不等式称为Hoeffding's inequality。

式中,$\epsilon$是一个误差限,$N$是样本大小。Hoeffding不等式告诉了我们这样一个事实:当样本集越大时,$\nu$和$\mu$相差很大的概率越小。也就是说,$\nu=\mu$这件事大概是对的,因为随着样本的增大,这个概率的上限将会越来越小;差不多是对的,因为我们可以缩小让$\nu$和$\mu$很接近。数学上,我们把这个性质称作PAC(probably approximately correct,可能近似正确)。如果N很大,我们就可以用$\nu$来估计$\mu$。

介绍完Hoeffding不等式,让我们看看这个问题与学习问题的联系。

球罐模型中,我们不知道的是橘色弹珠的比例,而对应到学习问题中我们想知道的是总体上一个假设和目标函数是否接近。样本空间中的每一个样本点$x\in\mathcal{X}$对应于球罐中的每一个弹珠,当假设h(x)和f(x)不一样时,我们就把球漆成橘色;一样时,我们就把球漆成绿色。从球罐中抽取的石子儿对应到学习问题中的训练集D,同样是iid采样的。球罐模型的目的是用抽样计算出的比例估计真实的比例,而学习问题中我们的目的是用in sample error估计out sample error。
做了此番类比,于是我们就能套用Hoeffding不等式得出类似的结论:

对于一个固定的h来说,如果N很大,那么Ein和Eout相差很大的概率就很小,也就是二者很接近。同样,这条不等式的成立与$\epsilon,N,E_{out}$无关,Ein=Eout是PAC的。如果Ein很小,且$E_{in}\approx E_{out}$,那么我们有很大的把握说 Eout也很小,从而得出h与f很相似(专业一点来说,就是$h=f$ 是PAC的)。同理,如果Ein很大,那么Eout也可能很大,那么我们就说$h\neq f$是PAC的。但也有一个例外情况,Ein很小,Eout很大,也就是常说的过拟合。
PRML里面提到,增大样本数能够减小过拟合现象,以前一直没有搞懂原因,如今学了Hoeffding不等式和PAC框架有点明白了。增大样本数N,能够缩小Hoeffding不等式右侧概率的上限,提高了in sample error与out sample error接近的概率,从而我们用得到的in sample error对out sample error估计的时候更加准确。
Coursera 机器学习基石 第4讲 学习的可行性的更多相关文章
- Coursera机器学习基石 第1讲:The Learning Problem
这门课的授课老师是个台湾人,师从Caltech的Yaser S. Abu-Mostafa,他们共同编撰了<Learning From Data>这本书.Yaser S. Abu-Mosta ...
- Coursera机器学习基石 第2讲:感知器
第一讲中我们学习了一个机器学习系统的完整框架,包含以下3部分:训练集.假设集.学习算法 一个机器学习系统的工作原理是:学习算法根据训练集,从假设集合H中选择一个最好的假设g,使得g与目标函数f尽可能低 ...
- 机器学习基石第一讲:the learning problem
博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) Andrew Ng的Machine Learning比較简单,已经看完.林田轩的机器 ...
- (转载)林轩田机器学习基石课程学习笔记1 — The Learning Problem
(转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can M ...
- 机器学习基石(台湾大学 林轩田),Lecture 1: The Learning Problem
课程的讲授从logo出发,logo由四个图案拼接而成,两个大的和两个小的.比较小的两个下一次课程就可能会解释到它们的意思,两个大的可能到课程后期才会解释到它们的意思(提示:红色代表使用机器学习危险,蓝 ...
- 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总
大家好,我是Mac Jiang,非常高兴您能在百忙之中阅读我的博客!这个专题我主要讲的是Coursera-台湾大学-機器學習基石(Machine Learning Foundations)的课后习题解 ...
- 机器学习基石11-Linear Models for Classification
注: 文章中所有的图片均来自台湾大学林轩田<机器学习基石>课程. 笔记原作者:红色石头 微信公众号:AI有道 上一节课,我们介绍了Logistic Regression问题,建立cross ...
- 机器学习基石10-Logistic Regression
注: 文章中所有的图片均来自台湾大学林轩田<机器学习基石>课程. 笔记原作者:红色石头 微信公众号:AI有道 上一节课介绍了Linear Regression线性回归,用均方误差来寻找最佳 ...
- 机器学习基石8-Noise and Error
注: 文章中所有的图片均来自台湾大学林轩田<机器学习基石>课程. 笔记原作者:红色石头 微信公众号:AI有道 上一节课,我们主要介绍了VC Dimension的概念.如果Hypothese ...
随机推荐
- Linux学习笔记之(2)~linux目录树概览和说明
献给知道mono,了解Jexus,对.net混搭技术感兴趣的朋友. linux目录树如下: 详解:/bin: 系统有很多放置执行档的目录,但/bin比较特殊.因为/bin放置的是在单人维护模式下还能够 ...
- C# 处理XML的基本操作
文章部分代码引用参考文章, 文末参考文章已标注 ,本篇文章建立在两篇参考文章基础上,可以先阅读参考文章 XML 相关类 XDocument XmlDocument XmlReader XmlWrit ...
- Asp.net MVC5系列——第一个项目
转自http://www.cnblogs.com/wolf-sun/p/3888160.html 概述 在这一部分我们添加一个新的控制器HelloWorldController类,以便使用视图来向客户 ...
- Kettle系列文章二(安装配置Kettle+SqlServer+简单的输入输出作业)
一.下载 Kettle下载地址:https://community.hitachivantara.com/docs/DOC-1009855 下拉到DownLoad,点击红框中的链接进行下载.. 二.解 ...
- MySQL中文问题
-- 设置客户端显示字符集 mysql>set names utf8; -- 建表时设置表的字符集和引擎 CREATE TABLE table ( `abc` char(32) NOT NULL ...
- MySQL 5.7 解压版 安装教程(图文详细)[Windows]
最近在学习中用到了MySQL数据库,在安装过程中遇到了不少问题,在翻了大半天百度后,问题基本都解决了,所以写一篇MySQL 5.7 解压版的图文详细安装教程. 至于为什么我会选择解压版而不是安装版,一 ...
- c#之静态构造函数和单例模式
1.静态构造函数:在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类 public class A { ; : private static A instance_; publi ...
- 无限滚动条的css布局理解
一.需求描述 做一个waymo的滚动条,在页面中显示两张图,一共4张图,无限滚动播放. .car{ width: 600px; height: 157px; margin: 100px auto; b ...
- 原生JS编写getByClass、addClass、removeClass、hasClass
前言: 年后换了工作,在现在的公司写交互主要使用JS原生:刚刚入门前端的时候写交互一直用的原生JS,虽然用的不怎么样.后来去之前的公司之后,leader主张把jQuery用好,JS原生自然就熟练了:一 ...
- 【Udacity】数据的集中程度:众数、平均数和中位数
重视Code Review 极致--目标是成为优秀的开发者 Data tells a story!(数据会讲故事) 分析过程对于建模非常的重要,可以帮助我们减少实际上不相关的特征被错误的加入到模型中, ...