文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准。感谢博主Rachel Zhang 的个人笔记,为我做个人学习笔记提供了很好的参考和榜样。


§ 4.正则化与过拟合问题 Regularization/The Problem of Overfitting

1 过拟合问题 The problem of overfitting

首先,Andrew Ng还是对之前几节中提到过的房屋面积-房价问题进行分析:

在图1中我们不难发现,随着房屋面积增大,房屋价格的增加趋于平缓。而此时图中的曲线相对来说并没有很好地拟合训练数据,这种情况称为欠拟合(Underfitting) / 高偏差(High bias)。

而在图2中,$h_{\theta}(x)$加入了一个二次项,此时曲线拟合地比较好。

在图3中,则又是另一个极端的情况——用四次(高阶)多项式,通过五个(较少的)训练样本,拟合成为了一条通过了所有训练样本的曲线,这条曲线上下波动得很厉害。这样的假设模型虽然通过了所有的训练样本,但无法很好地泛化到新的数据样本中,这样的情况称为过拟合(Overfitting) / 高方差(High variance)。

接下来Andrew Ng给出了对"过拟合"的解释:如果有太多的变量,训练出的假设模型过度地拟合了训练数据,此时代价函数的值可能会非常接近于0(例如图3)甚至等于0。但是这样的假设模型很可能实际上无法很好地泛化到新的数据样本中,也难以准确地预测新的数据样本所对应的房屋价格。

关于泛化的解释:指的是一个假设模型能够应用到新样本的能力。

随后举例讲解了在先前讨论过的肿瘤分类问题中欠拟合、相对较好地拟合与过拟合的情况。

下面是一道习题,关键在于考察对过拟合定义的理解——在训练数据中能够准确预测,但是对于之前没有出现过的新数据样本无法准确预测(泛化能力差)。

如何解决过拟合问题呢?

绘制假设模型曲线可以作为决定多项式阶次的一种方法,但是这并不是总是有用的,因为我们可能会遇到有很多变量的假设模型,这么多的变量会使得绘制图像变得十分困难,也很难进行可视化。

(1)减少变量个数 (PS:其缺点是舍弃变量的同时可能也会舍弃一些数据中的有用信息)

-a: 人工选择哪些变量要保留,哪些变量要舍弃,从而减少变量个数

-b: 利用模型选择算法,自动选择或舍弃变量

(2)正则化

-a: 保留所有的变量,但是减少参数$\theta$的数量级或者值

-b: 当我们有很多有用的变量时,正则化能够很好地帮助我们解决过拟合的问题

2.代价函数 Cost Function

为了防止过拟合,我们可以考虑在代价函数中加入一些惩罚项,使得所得出的模型中高次项对应的参数值$\theta$非常小,就像被忽略了一样,这样所得出的模型就能够恰到好处地拟合数据了。

这对应了正则化的基本思想,当参数值比较小时,我们往往可以简化得到一个更简单的假设形式,使得得出的假设模型没那么容易出现过拟合的情况。因此在正则化中,我们会在代价函数的后面加入一个包含参数$\theta$的项,从而使得各个参数的值较小。

$\lambda$代表正则化参数,正则化参数需要平衡训练目标和保持参数较小的目的。

下面这道题目考查了正则化参数对结果的影响:

解释如下:如果正则化参数过大,那么$\theta_1$、$\theta_2$、$\theta_3$、$\theta_4$的值会非常接近于0,只剩下$\theta_0$保持正常,那么假设模型的曲线就会是一条直线,模型无法很好地拟合训练数据,属于欠拟合(高偏差)状态。注意,在这里我们将不对$\theta_0$进行惩罚。

3.正则化线性回归 Regularized linear regression

(1)梯度下降法

随着代价函数的变化,梯度下降法中的具体过程也出现了一些变化:

一般来说,$m$会比较大,而$\alpha$会比较小,因此$(1-\alpha \frac{\lambda}{m})$一般是小于1但是非常接近1的。对应习题如下:

这里相当于用$0.99$乘了$\theta_j$,即把参数压缩了一点。

(2)正规方程

随着代价函数的改变,正规方程中也出现了一些改变:

关于不可逆问题:很多时候其实$(X^T X)$是不可逆的,而正则化后,当$\lambda>0$时,加上新的这部分后是可逆的。因此正则化可以关注过拟合的同时照顾到不可逆的问题。

4.正则化逻辑回归Regularized Logistic Regression

(1)梯度下降法

与正则化线性回归类似,正则化逻辑回归也是在代价函数后加入一个惩罚项:

对应的习题:

(2)高级优化算法

这里需要注意,在针对$\theta_0$的情况下,代价函数是没有关于正则化的那一项的。

笔记目录

(一)单变量线性回归 Linear Regression with One Variable

(二)多变量线性回归 Linear Regression with Multiple Variables

(三)逻辑回归 Logistic Regression

(四)正则化与过拟合问题 Regularization/The Problem of Overfitting

(五)神经网络的表示 Neural Networks: Representation

(六)神经网络的学习 Neural Networks: Learning

(七)机器学习应用建议 Advice for Applying Machine Learning

(八)机器学习系统设计Machine Learning System Design

(九)支持向量机Support Vector Machines

(十)无监督学习Unsupervised Learning

(十一)降维 Dimensionality Reduction

(十二)异常检测Anomaly Detection

(十三)推荐系统Recommender Systems

(十四)大规模机器学习Large Scale Machine Learning

机器学习(四)正则化与过拟合问题 Regularization / The Problem of Overfitting的更多相关文章

  1. Ng第七课:正则化与过拟合问题 Regularization/The Problem of Overfitting

    7.1  过拟合的问题 7.2  代价函数 7.3  正则化线性回归 7.4  正则化的逻辑回归模型 7.1  过拟合的问题 如果我们有非常多的特征,我们通过学习得到的假设预测可能能够非常好地适应训练 ...

  2. 机器学习之正则化(Regularization)

    1. The Problem of Overfitting 1 还是来看预测房价的这个例子,我们先对该数据做线性回归,也就是左边第一张图. 如果这么做,我们可以获得拟合数据的这样一条直线,但是,实际上 ...

  3. 机器学习之五 正则化的线性回归-岭回归与Lasso回归

    机器学习之五 正则化的线性回归-岭回归与Lasso回归 注:正则化是用来防止过拟合的方法.在最开始学习机器学习的课程时,只是觉得这个方法就像某种魔法一样非常神奇的改变了模型的参数.但是一直也无法对其基 ...

  4. CNN学习笔记:正则化缓解过拟合

    CNN学习笔记:正则化缓解过拟合 过拟合现象 在下图中,虽然绿线完美的匹配训练数据,但太过依赖,并且与黑线相比,对于新的测试数据上会具有更高的错误率.虽然这个模型在训练数据集上的正确率很高,但这个模型 ...

  5. machine learning(13) -- solving the problem of overfitting:regularization

    solving the problem of overfitting:regularization 发生的在linear regression上面的overfitting问题 发生在logistic ...

  6. 斯坦福大学公开课机器学习: advice for applying machine learning | regularization and bais/variance(机器学习中方差和偏差如何相互影响、以及和算法的正则化之间的相互关系)

    算法正则化可以有效地防止过拟合, 但正则化跟算法的偏差和方差又有什么关系呢?下面主要讨论一下方差和偏差两者之间是如何相互影响的.以及和算法的正则化之间的相互关系 假如我们要对高阶的多项式进行拟合,为了 ...

  7. 机器学习中正则化项L1和L2的直观理解

    正则化(Regularization) 概念 L0正则化的值是模型参数中非零参数的个数. L1正则化表示各个参数绝对值之和. L2正则化标识各个参数的平方的和的开方值. L0正则化 稀疏的参数可以防止 ...

  8. 【机器学习】正则化的线性回归 —— 岭回归与Lasso回归

    注:正则化是用来防止过拟合的方法.在最开始学习机器学习的课程时,只是觉得这个方法就像某种魔法一样非常神奇的改变了模型的参数.但是一直也无法对其基本原理有一个透彻.直观的理解.直到最近再次接触到这个概念 ...

  9. 吴恩达机器学习笔记19-过拟合的问题(The Problem of Overfitting)

    到现在为止,我们已经学习了几种不同的学习算法,包括线性回归和逻辑回归,它们能够有效地解决许多问题,但是当将它们应用到某些特定的机器学习应用时,会遇到过拟合(over-fitting)的问题,可能会导致 ...

随机推荐

  1. JAVA数据类型能串门不?

    JAVA这几种数据类型,能否串门?入了人家门,就得按人家规矩来,入乡随俗哦,难免发生有自觉的 还有不情愿被动的. 自动类型转换 自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型.在图中,黑 ...

  2. 大专生自学iOS到找到工作的前前后后

    先做个自我介绍,我13年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了.13年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学 ...

  3. UIPanGestureRecognizer 拖动TableView改变其高度

    需求:项目中要求tableView的高度随着手拖动的位置而改变如下图: 关键代码如下: - (void)viewDidLoad{ panGestureRecognizer = [[UIPanGestu ...

  4. Error creating bean with name 'mapper' defined in class path resource [applicationcontext.xml]: Cannot resolve reference to bean 'factory' while setting bean property 'sqlSessionFactory'; nested excep

    Error creating bean with name 'mapper' defined in class path resource [applicationcontext.xml]: Cann ...

  5. C语言的乱七八糟

    Note For C Linux下C编程基础(gcc/gdb/make使用) 一.vi学习 二.初探emacs 三.gcc编译器 3.1 gcc所支持后缀名解释 后缀名 解释 后缀名 解释 .c C原 ...

  6. window下使用Composer安装yii2

    1.在 Windows 中,先下载并运行 Composer-Setup.exe,安装过程需选择php的运行目录,安装完后在windows的cmd下运行composer看看是否安装成功 2.安装完Com ...

  7. 随机返回经典语句接口API

    api接口:https://www.liutianyou.com/api/?type=js&charset=utf-8 可以单独将上面链接,在浏览器中查看效果 ​ 这是get请求,参数:typ ...

  8. Django学习之mysql应用基础

    使用pip 安装mysql pip install mysql 使用命令行打开数据库且选择使用已有的数据库 显示已有数据库show databases; 选择已有数据库 use s23; 显示s23数 ...

  9. A1050

    输入两个字符串,将第一个字符串中包含的第二个字符串的字符去掉(包括空格),然后输出. gets()不能用了,我混搭了string和length(),不用纠结长度还是很好的. 第二个字符串所在HashT ...

  10. C#使用API屏蔽系统热键和任务管理器

    最近做的一个winform类型的项目中需要屏蔽系统热键,在网上搜索了一下,基本上都是调用api来进行hook操作,下面的代码就可以完成功能 using System; using System.IO; ...