斯坦福大学公开课机器学习:advice for applying machine learning | diagnosing bias vs. variance(机器学习:诊断偏差和方差问题)
当我们运行一个学习算法时,如果这个算法的表现不理想,那么有两种原因导致:要么偏差比较大、要么方差比较大。换句话说,要么是欠拟合、要么是过拟合。那么这两种情况,哪个和偏差有关、哪个和方差有关,或者是不是和两个都有关,搞清楚这点很重要。能判断出现的情况是这两种中的哪一种,是一个很有效的指示器,指引着可以改进算法的最有效的方法和途径。
下面深入地探讨一下有关偏差和方差的问题,并且能弄清楚怎样评价一个学习算法、能够判断一个算法是偏差还是方差有问题。因为这个问题对于弄清如何改进学习算法的效果非常重要。
如下图,用两个很简单的假设来拟合数据,比如说用一条直线,那么不足以拟合这组数据(欠拟合,左图),而如果你用两个很复杂的假设来拟合时,那么对训练集来说则会拟合得很好,但又过于完美(过拟合,右图)。而像这样的中等复杂度的假设(中间的图),比如某种二次多项式的假设,次数既不高也不低,这种假设对数据拟合得刚刚好。此时对应的的泛化误差,也是三种情况中最小的。

前面已经掌握了训练集、验证集和测试集的概念(斯坦福大学公开课机器学习:advice for applying machine learning | model selection and training/validation/test sets(模型选择以及训练集、交叉验证集和测试集的概念)),接下来就能更好地理解偏差和方差的问题。具体来说沿用之前所使用的训练集误差和验证集、误差的定义,也就是平方误差。即对训练集数据进行预测,或对验证集数据进行预测,所产生的平均平方误差。下面我们来画出如下这个示意图,横坐标上表示的是多项式的次数(中间图),因此横坐标越往右的位置,表示多项式的次数越大。那么我们来画这幅图对应的情况,d可能等于1的情况,是用很简单的函数来进行拟合。而在右边的这个图中,水平横坐标表示有更多更大的d值.表示更高次数的多项式。因此这些位置对应着使用更复杂的函数,来拟合训练集时所需要的d值。先画训练集误差,随着我们增大多项式的次数,我们将对训练集拟合得越来越好。所以如果d等于1时,对应着一个比较大的训练误差。而如果我们的多项式次数很高时,我们的训练误差就会很小,甚至可能等于0,因为可能非常拟合训练集。所以,当我们增大多项式次数时,不难发现训练误差明显下降(紫红色曲线)。这里写上J下标3来表示训练集误差。接下来再看交叉验证误差,如果我们观察测试集误差的话,我们会得到一个和交叉验证误差非常接近的结果。所以,我们知道如果d等于1的话,意味着用一个很简单的函数来拟合数据。也就是说,我们会得到一个较大的交叉验证误差(红色曲线标注1)。而如果我们用一个中等大小的多项式次数来拟合时,在前一张幻灯片中我们用的d等于2,那么我们会得到一个更小的交叉验证误差。因为我们找了一个能够更好拟合数据的次数。同样地,反过来,如果次数d太大,比如说d的值取为4,那么我们又过拟合了,我们又会得到一个较大的交叉验证误差。因此,如果你平稳地过渡这几个点,你可以绘制出一条平滑的曲线,就像这样,我用Jcv(θ)来表示(红色曲线)。同样地,如果你画出Jtest(θ),你也将得到一条类似的曲线,这样一幅图也同时能帮助我们更好地理解偏差和方差的概念。

具体来说,假设我们得出了一个学习算法,但这个算法并没有表现地如预期那么好。即交叉验证误差或者测试集误差都很大。那么我们应该如何判断此时的学习算法是高偏差的问题还是高方差的问题呢?交叉验证误差比较大的情况,对应着曲线中的左右两端(下图Jcv(θ)对应的曲线)。左端对应的就是高偏差的问题,也就是我们使用了一个过于小的多项式次数,比如d等于1。但实际上我们需要一个较高的多项式次数来拟合数据。相反地,右端对应的是高方差问题。也就是说,多项式次数d对于我们的数据来讲太大了。具体地说,第一、高偏差的情况,对应欠拟合的情况:交叉验证误差和训练误差都会很大。因此,如果你的算法有偏差问题的话,那么训练集误差将会比较大。同时你可能会发现交叉验证集误差也很大。两个误差可能很接近,或者可能验证误差稍大一点,所以如果你看到这样的组合情况,那就表示你的算法正处于高偏差的问题。第二、如果算法处于高方差的问题,那么Jtrain(训练误差)会很小。也就意味着,训练集数据拟合得非常好。而交叉验证集误差或者说交叉验证集对应的代价函数的值,将会远远大于训练集误差(双大于符号是一个数学符号,表示远远大于,用两个大于符号表示)。因此如果存在这种组合的情况,预示着学习算法可能正处于高方差和过拟合的情况。同时,区分这两种不同情形的关键依据是,如果算法处于高偏差的情况,那么你的训练集误差会很大。因为你的假设不能很好地拟合训练集数据。而当你处于高方差的问题时,你的训练误差通常都会很小,并且远远小于交叉验证误差。

斯坦福大学公开课机器学习:advice for applying machine learning | diagnosing bias vs. variance(机器学习:诊断偏差和方差问题)的更多相关文章
- 斯坦福大学公开课机器学习: advice for applying machine learning | regularization and bais/variance(机器学习中方差和偏差如何相互影响、以及和算法的正则化之间的相互关系)
算法正则化可以有效地防止过拟合, 但正则化跟算法的偏差和方差又有什么关系呢?下面主要讨论一下方差和偏差两者之间是如何相互影响的.以及和算法的正则化之间的相互关系 假如我们要对高阶的多项式进行拟合,为了 ...
- 第19月第8天 斯坦福大学公开课机器学习 (吴恩达 Andrew Ng)
1.斯坦福大学公开课机器学习 (吴恩达 Andrew Ng) http://open.163.com/special/opencourse/machinelearning.html 笔记 http:/ ...
- 斯坦福大学公开课:iOS 7应用开发 笔记
2015-07-06 第一讲 课务.iOS概述 -------------------------------------------------- 开始学习斯坦福大学公开课:iOS 7应用开发留 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 10—Advice for applying machine learning 机器学习应用建议
Lecture 10—Advice for applying machine learning 10.1 如何调试一个机器学习算法? 有多种方案: 1.获得更多训练数据:2.尝试更少特征:3.尝试更多 ...
- Coursera 机器学习 第6章(上) Advice for Applying Machine Learning 学习笔记
这章的内容对于设计分析假设性能有很大的帮助,如果运用的好,将会节省实验者大量时间. Machine Learning System Design6.1 Evaluating a Learning Al ...
- Machine Learning - 第6周(Advice for Applying Machine Learning、Machine Learning System Design)
In Week 6, you will be learning about systematically improving your learning algorithm. The videos f ...
- (原创)Stanford Machine Learning (by Andrew NG) --- (week 6) Advice for Applying Machine Learning & Machine Learning System Design
(1) Advice for applying machine learning Deciding what to try next 现在我们已学习了线性回归.逻辑回归.神经网络等机器学习算法,接下来 ...
- Advice for applying Machine Learning
https://jmetzen.github.io/2015-01-29/ml_advice.html Advice for applying Machine Learning This post i ...
- 斯坦福第十课:应用机器学习的建议(Advice for Applying Machine Learning)
10.1 决定下一步做什么 10.2 评估一个假设 10.3 模型选择和交叉验证集 10.4 诊断偏差和方差 10.5 归一化和偏差/方差 10.6 学习曲线 10.7 决定下一步做什么 ...
随机推荐
- python之路--JavaScript
一. JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,希望这门语言能成为国际化标准,于是决定将Jav ...
- fiddler 笔记-设置断点
设置断点后,可以修改httprequest的任何信息包括:host,cookie或都表单中的数据 1 Fiddler--rules--Automatic Breakpoint --before Req ...
- chrome中 GET /undefined 404
Chrome中调试网站,会出现 这是由 crxMouse Chrome™ 手势 引起的,关闭即可
- Lodop打印旋转180度 倒着打
方法1:打印出来后,直接把纸张倒过来.如果本身是白纸,打印机出纸内容是倒着的,可以打出来后手动倒着把纸张正过来.如果本身不是白纸,需要打印的纸张上有背景,调整进纸方向.(如果是卷纸,卷纸背景是反的,查 ...
- Web API2 使用默认Identity
当您选择个人账户在Web API项目模板,项目包含一个令牌授权服务器验证用户凭证和问题.下面的图显示了相同的凭证流的Web API组件. 发送一个未经授权的请求 首先,运行应用程序并单击按钮调用的AP ...
- 【Tensorflow】Tensorflow入门教程
基本使用 使用 TensorFlow, 你必须明白 TensorFlow: 使用图 (graph) 来表示计算任务. 在被称之为 会话 (Session) 的上下文 (context) 中执行图. 使 ...
- qt 在窗口上画框
在窗口w上面画个黄色的框:在窗口上添加一个label,然后在label上画框 QLabel label(&w); label.setScaledContents(true); QPixmap ...
- LEGB规则
链接:https://www.cnblogs.com/GuoYaxiang/p/6405814.html 命名空间 大约来说,命名空间就是一个容器,其中包含的是映射到不同对象的名称.你可能已经听说过了 ...
- BZOJ5296 [CQOI2018] 破解D-H协议 【数学】【BSGS】
题目分析: 裸题. 代码: #include<bits/stdc++.h> using namespace std; typedef long long ll; ; #define mp ...
- HDU1506 Largest Rectangle in a Histogram(算竞进阶习题)
单调栈裸题 如果矩形高度从左到右是依次递增,那我们枚举每个矩形高度,宽度拉到最优,计算最大面积即可 当有某个矩形比前一个矩形要矮的时候,这块面积的高度就不能大于他本身,所以之前的所有高于他的矩形多出来 ...