这章的内容对于设计分析假设性能有很大的帮助,如果运用的好,将会节省实验者大量时间。

Machine Learning System Design
6.1 Evaluating a Learning Algorithm
6.1.1 Deciding What to Try Next
机器学习诊断法:一种测试法,通过执行这种测试,能够深入了解某种算法是否有用。诊断法也会告诉你,要想改进一种算法的效果需要什么样的尝试。能够判断一种学习算法能不能work,并且改善该算法性能的一个测试。

诊断法的执行和实现是需要时间的,有时候需要大量的时间,但这样做可以更有效地利用时间。


下面的内容将会讨论如何评价学习算法,再介绍一些诊断法,从而选择更有意义的方法实现达到改进机器学习系统性能的目的。

6.1.2 Evaluating a Hypothesis
怎样用学过的算法来评估假设函数,并以此来讨论如何避免过拟合和欠拟合问题。
如何判断一个假设函数是过拟合的。下面给出了评估假设函数的标准方法。

将数据分为2部分:训练集和测试集。一种典型的分法是7:3。如果数据有某种规律或者顺序的话,最好随机抽取70%作为训练集,剩下的30%作为测试集。

按照以下步骤训练和测试学习方法。分别以线性回归和逻辑回归为例。

线性回归:

1.由训练集得到Θ,前提是最小会训练误差J(Θ)。

2.利用测试集计算测试误差。

逻辑回归:

1.由训练集得到Θ,前提是最小会训练误差J(Θ)。

2.利用测试集计算测试误差。

这里“利用测试集计算测试误差”有2种方法(计算公式见图):

1)直接由公式计算Jtest(Θ)。

2)先计算单个测试示例的误分类率(0/1错分率),用误分类率来定义测试误差。

6.1.3 Model Selection and Train/Validation/Test Sets
讨论模型选择问题以及如何将数据分为3组:训练集、验证集和测试集。
训练集误差是不能正确预测出假设是否能很好地拟合新样本。

一般的模型选择问题步骤:
1.对所有模型分别求训练误差的最小值,从而得到多个对应不同模型的参数向量Θ。
2.针对每个模型分别求测试误差的最小值Jtest(Θ),确定多项式次数d。
3.选择测试误差最小的模型作为最后的模型。

但是,如果将上述得到的模型再作用于训练集上,是不能预测出这个假设推广到新样本上的效果。因为这些参数能够很好地拟合训练集,但对于其他新样本而言就不一定那么好。因此,用测试集来拟合参数不能公平地预测出假设函数在遇到新样本时的表现。

通常将数据集分为3个部分:训练集、交叉验证集(验证集、CV)和测试集。

训练误差、交叉验证误差、测试误差。

下面用训练误差、交叉验证误差、测试误差来求出适合的模型。

1.对所有模型分别求训练误差的最小值,从而得到多个对应不同模型的参数向量Θ。
2.针对每个模型分别求交叉验证误差的最小值Jcv(Θ),确定多项式次数d。
3.选择交叉验证误差Jcv(Θ)最小的模型作为最后的模型。

4.利用测试集评价模型的表现。

一句话,训练集求出特定的模型参数、交叉验证集求出最优的模型、测试误差衡量模型的泛化效果。

6.2 Bias vs. Variance
6.2.1 Diagnosing Bias vs. Variance
讨论有关偏差(欠拟合)和方差(过拟合)的问题,并弄清楚怎样评价一个学习算法,弄清一个问题是和偏差有关还是和方差有关,从而改进学习算法的效果。

对于一个具体的问题,对于这个问题,假设是整式多项式。下图画着训练误差和交叉验证误差大小随假设的次数变化的规律:

训练误差随着拟合公式的次数的增大不断增大而减小。交叉验证误差随着拟合公式的次数的增大先减小后增大,中间有个极值。

偏差对应图中最左侧,训练误差(Jtrain(Θ))将会较大,交叉验证误差(Jcv(Θ))≈Jtrain(Θ)。

方差对应图中最右侧,训练误差(Jtrain(Θ))将会较小,交叉验证误差(Jcv(Θ))»Jtrain(Θ)。

做道题:

6.2.2 Regularization and Bias/Variance

深入探讨偏差和方差问题,探讨正则化如何影响偏差和方差。

如何选择合适的λ。

先看对J(Θ)、Jtrain(Θ)、Jcv(Θ)和Jtest(Θ)的定义:

对于特定J(Θ)(除了λ,其他都不变),选择合适的λ:

1.设置λ为一系列值(可以以等步长增加),比如0、0.01、0.02...10.24。

2.对于每个特定的λ,利用训练集分别计算minΘ(i)J(Θ(i))对应的Θ(i)值。

3.利用交叉测试集计算不同λ下推出的Θ对应的Jcv(Θ),挑选最小的Jcv(Θ)对应的Θ和λ。图中是Jcv(5))。

4.利用测试集对挑选出的Θ的性能进行评估。

做道题:

答案:D

偏差与方差和λ的关系(训练误差Jtrain(Θ)和交叉验证误差Jcv(Θ)随λ变化情况):

λ由小到大变化,Jtrain(Θ)不断增大(开始是十分拟合训练集,慢慢变得不太拟合,最后完全走样)。Jcv(Θ)先减小后增大(开始不太拟合验证集,正则化合适的时候,泛化能力变强,开始拟合验证集,但随着λ增大,又开始走样)。其实,图中坐标系右边对应的是偏差情况,左边对应的是方差情况,中间有个合适值,这个合适的λ就是所求。这里的图像是理想化的,实际会有一些噪音的存在。

6.2.3 Learning Curves
可以绘制学习曲线来检查学习算法,从而改进算法的表现或效果。
样本数量少,训练误差小,但交叉误差大。样本越多,适应新数据的能力越强(泛化能力增强),但训练样本越难完美拟合。总体来说,交叉验证误差和训练误差随训练集m的变化情况如图所示:

下面来看一下当算法处于高偏差或者高方差的时候,学习曲线的样子。
处于高偏差,训练误差随着训练样本的增加而增大,后期平缓;交叉验证误差会减小,经过一个值后开始平缓,但还是较大。训练误差和交叉验证误差最终会较大,并且相互接近。增大训练样本数量对改变高偏差没有作用。

处于高方差,训练误差随着样本的增加而增大,但总体还是很小;交叉验证误差会减小。前期,交叉验证误差和训练误差之间的差距(gap)较大,但随着训练样本的明显增多,训练误差和交叉验证误差还是会相互靠近,之间的差距不断减小。增加样本数量对改变高方差有明显作用。

做道题:

答案:处于高方差的情况。

6.2.4 Deciding What to Do Next Revisited
前面已经学习了如何评价一个算法,模型选择问题,偏差和方差的问题。讨论这些诊断法是如何帮助判断哪些方法可能有助于改进学习算法的效果。
回到前面的问题,用线性回归模型分析房价。

1.适合于处于高方差的情况。交叉验证误差应该比训练误差大得多。
2.适合于处于高方差的情况。
3.适合于处于高偏差的情况。
4.类似于增加特征,适合于处于高偏差的情况。
5.适合于处于高偏差的情况。
6.适合于处于高方差的情况。

下面总结前面的内容,并看看它们与神经网络的联系。介绍一些为神经网络选择结构或者连接形式的技巧和经验。
小的神经网络隐藏层数量较少或者隐藏单元数量较少,缺点是容易欠拟合,优点是计算量较少。
大的神经网络隐藏层数量较多,隐藏单元较多,缺点是容易过拟合,计算量较大,但性能要好。使用一个经过正则化的大型神经网络的效果要比一个小的神经网络更加好。可以使用正则化手段来解决过拟合。关于隐藏层数量的选择和隐藏单元的选择,可以用同一交叉验证集进行验证,选择误差最小的情况。

以上学习了偏差、方差以及学习曲线为代表的诊断法如何帮助高效地使用学习算法。

做道题:

答案:增加隐藏层或者隐藏单位类似于增加假设的参数Θ次数。具体参考"7.2.1 Diagnosing Bias vs. Variance"的内容。

习题:

high bias

CD

BD

CD

BCD

Coursera 机器学习 第6章(上) Advice for Applying Machine Learning 学习笔记的更多相关文章

  1. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 10—Advice for applying machine learning 机器学习应用建议

    Lecture 10—Advice for applying machine learning 10.1 如何调试一个机器学习算法? 有多种方案: 1.获得更多训练数据:2.尝试更少特征:3.尝试更多 ...

  2. 斯坦福大学公开课机器学习:advice for applying machine learning | diagnosing bias vs. variance(机器学习:诊断偏差和方差问题)

    当我们运行一个学习算法时,如果这个算法的表现不理想,那么有两种原因导致:要么偏差比较大.要么方差比较大.换句话说,要么是欠拟合.要么是过拟合.那么这两种情况,哪个和偏差有关.哪个和方差有关,或者是不是 ...

  3. 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 ...

  4. (原创)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 现在我们已学习了线性回归.逻辑回归.神经网络等机器学习算法,接下来 ...

  5. Advice for applying Machine Learning

    https://jmetzen.github.io/2015-01-29/ml_advice.html Advice for applying Machine Learning This post i ...

  6. [Python & Machine Learning] 学习笔记之scikit-learn机器学习库

    1. scikit-learn介绍 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上.值得一提的是,scikit-learn最 ...

  7. 【原】Coursera—Andrew Ng机器学习—Week 6 习题—Advice for applying machine learning

    [1] 诊断的作用 [2]过拟合 [3] [4] 高偏差bias,欠拟合underfitting 高方差variance,过拟合overfitting [5]参数λ Answer:  λ太大,则参数都 ...

  8. 斯坦福第十课:应用机器学习的建议(Advice for Applying Machine Learning)

    10.1  决定下一步做什么 10.2  评估一个假设 10.3  模型选择和交叉验证集 10.4  诊断偏差和方差 10.5  归一化和偏差/方差 10.6  学习曲线 10.7  决定下一步做什么 ...

  9. 斯坦福大学公开课机器学习:advice for applying machine learning | model selection and training/validation/test sets(模型选择以及训练集、交叉验证集和测试集的概念)

    怎样选用正确的特征构造学习算法或者如何选择学习算法中的正则化参数lambda?这些问题我们称之为模型选择问题. 在对于这一问题的讨论中,我们不仅将数据分为:训练集和测试集,而是将数据分为三个数据组:也 ...

随机推荐

  1. 解决dragsort鼠标拖动与onclick事件共存

  2. Visual Assist X破解安装及设置

    本文提供的插件版本为Visual Assist X 10.9.2248,支持Visual Studio 2010~2017各版本,本人亲测均可正常使用. 一. 插件下载: 点击下载链接,找到对应软件下 ...

  3. 【bzoj4806~bzoj4809】 象棋四连发 DP-高精度-匈牙利算法-dfs

    都是经典题了吧..我好无聊.. 4806 4806-1801是双倍经验..DP方程看代码吧.. /* http://www.cnblogs.com/karl07/ */ #include <cs ...

  4. SDUT OJ 数据结构实验之排序四:寻找大富翁

    数据结构实验之排序四:寻找大富翁 Time Limit: 200 ms Memory Limit: 512 KiB Submit Statistic Discuss Problem Descripti ...

  5. 网页footer背景(stick footer布局)

    今天遇到了一个有意思的问题,想在网站的foot里面加入一张背景图片,并且在footer的底部写下一些内容于是乎在footer添加了background,并设置了footer的大小 先说一下开始的做法: ...

  6. 使用TortoiseSVN新建及合并分支图文教程

    打开trunks目录,在trunks目录下新建两个文本文件A.java,B.java:   打开A.java输入以下内容: B.java文件可以随机输入些,本例中主要用于观察后续是否变化. 两个文件编 ...

  7. mysql 5.7.22 解压缩安装

    1.下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 直接点击下载项 下载后: 2.可以把解压的内容随便放到一个目录,我的是如 ...

  8. 远程诊断DoIP

    目录 远程诊断DoIP Part 1: General information and use case definition DoIP诊断网络架构 诊断连接场景 DoIP之通信建立 DoIP中的一些 ...

  9. 012 Android Palette颜色选择器的使用

    1.页面总体使用线性布局(LinearLayout) 2.将Toolbar(顶部菜单栏)拖入design模式下的设计界面中 3.颜色选择器需要在build.gradle中手动的添加 compile ' ...

  10. Modular Inverse (拓展欧几里得求逆元)

    The modular modular multiplicative inverse of an integer a modulo m is an integer xsuch that a-1≡x ( ...