机器学习(四)正则化与过拟合问题 Regularization / The Problem of Overfitting
文章内容均来自斯坦福大学的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
(四)正则化与过拟合问题 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的更多相关文章
- Ng第七课:正则化与过拟合问题 Regularization/The Problem of Overfitting
7.1 过拟合的问题 7.2 代价函数 7.3 正则化线性回归 7.4 正则化的逻辑回归模型 7.1 过拟合的问题 如果我们有非常多的特征,我们通过学习得到的假设预测可能能够非常好地适应训练 ...
- 机器学习之正则化(Regularization)
1. The Problem of Overfitting 1 还是来看预测房价的这个例子,我们先对该数据做线性回归,也就是左边第一张图. 如果这么做,我们可以获得拟合数据的这样一条直线,但是,实际上 ...
- 机器学习之五 正则化的线性回归-岭回归与Lasso回归
机器学习之五 正则化的线性回归-岭回归与Lasso回归 注:正则化是用来防止过拟合的方法.在最开始学习机器学习的课程时,只是觉得这个方法就像某种魔法一样非常神奇的改变了模型的参数.但是一直也无法对其基 ...
- CNN学习笔记:正则化缓解过拟合
CNN学习笔记:正则化缓解过拟合 过拟合现象 在下图中,虽然绿线完美的匹配训练数据,但太过依赖,并且与黑线相比,对于新的测试数据上会具有更高的错误率.虽然这个模型在训练数据集上的正确率很高,但这个模型 ...
- machine learning(13) -- solving the problem of overfitting:regularization
solving the problem of overfitting:regularization 发生的在linear regression上面的overfitting问题 发生在logistic ...
- 斯坦福大学公开课机器学习: advice for applying machine learning | regularization and bais/variance(机器学习中方差和偏差如何相互影响、以及和算法的正则化之间的相互关系)
算法正则化可以有效地防止过拟合, 但正则化跟算法的偏差和方差又有什么关系呢?下面主要讨论一下方差和偏差两者之间是如何相互影响的.以及和算法的正则化之间的相互关系 假如我们要对高阶的多项式进行拟合,为了 ...
- 机器学习中正则化项L1和L2的直观理解
正则化(Regularization) 概念 L0正则化的值是模型参数中非零参数的个数. L1正则化表示各个参数绝对值之和. L2正则化标识各个参数的平方的和的开方值. L0正则化 稀疏的参数可以防止 ...
- 【机器学习】正则化的线性回归 —— 岭回归与Lasso回归
注:正则化是用来防止过拟合的方法.在最开始学习机器学习的课程时,只是觉得这个方法就像某种魔法一样非常神奇的改变了模型的参数.但是一直也无法对其基本原理有一个透彻.直观的理解.直到最近再次接触到这个概念 ...
- 吴恩达机器学习笔记19-过拟合的问题(The Problem of Overfitting)
到现在为止,我们已经学习了几种不同的学习算法,包括线性回归和逻辑回归,它们能够有效地解决许多问题,但是当将它们应用到某些特定的机器学习应用时,会遇到过拟合(over-fitting)的问题,可能会导致 ...
随机推荐
- [转]收集Oracle UNDO诊断信息脚本
使用该脚本可收集与undo相关的信息,在undo表空间出问题时可使用该脚本来诊断. 使用方法: 1.将脚本拷贝到服务器,创建文件保存,文件名可随意取,例如:diag.out 2.以sys用户登录数据库 ...
- 工具 | Axure基础操作 No.3
下午了,再来补一些学习,今天东西不多哦,感觉慢慢上手了. 1.设置元件禁用状态 2.设置单选按钮唯一选中 注意这里在浏览器中就只能唯一选中了. 3.设置图片上的文字 4.图片的切割和裁剪 5.嵌入多媒 ...
- phalcon框架与Volt 模块引擎 使用简介
———— 近期工作中web页面使用由C语言编写的Volt模板引擎,相比之前由js动态加载页面速度更快,更利于百度数据的抓取,现根据文档整理一下使用思路 (Volt是一个超快速和设计者友好的模板语言 ...
- mybatis传单个参数,和<if>标签同时使用的问题
// Mapper.java EmerEvent selectByAlarmId(Integer alarmId); // Mapper.xml <select id="selectB ...
- Linux中文件函数(一)
一.stat.fstat.fstatat.lstat函数 函数的原型为: #include <sys/stat.h> int stat(const char *restrict pathn ...
- RAC初体验(环境搭建)
实施阶段: 1.主机配置 2.安装Clusterware 3.安装Oracle Database 4.配置Listener 5.创建ASM 6.创建Database 一.主机配置 1.网络设置 I ...
- mqtt使用一
最近做的一个项目用到了mqtt协议,我需要从第三方订阅主题接受消息,还需要自己搭建,mqtt服务器去发布主题.下面就详细介绍一下环境的搭建和使用. 1.mqtt介绍 MQTT是一个基于客户端-服务器的 ...
- OAuth2.0 与 oauth2-server 库的使用
作者:baiyi链接:https://www.jianshu.com/p/83b0f6d82d6c來源:简书 OAuth2.0 是关于授权的开放网络标准,它允许用户已第三方应用获取该用户在某一网站的私 ...
- Currency Helper
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; /// <summary> /// 货币 ...
- Hadoop2学习路程-HDFS
什么是Hadoop HDFS? Hadoop 分布式文件系统是世界上最可靠的文件系统.HDFS可以再大量硬件组成的集群中存储大文件. 它的设计原则是趋向于存储少量的大文件,而不是存储大量的小文件. 即 ...