机器学习(四)正则化与过拟合问题 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)的问题,可能会导致 ...
随机推荐
- idea操作 clone项目、 import项目所有注解全部报错
操作:从现有的git上边clone项目,前提是开发工具,开发环境都一样错误类型:所有的注解全部报错 原因: 是选择了Create from existing source 一路Next下去,Maven ...
- Oracle 体系结构二 内存结构
Oracle实例由共享内存块(SGA)以及大量的后台进程构成. SGA必须包含的数据结构: 数据库缓冲区缓存 日志缓冲区 共享池 可选的数据结构: 大池 JAVA池 流池 其他缓冲区缓存池 用户会话还 ...
- win10 pro 永久激活
win10 专业版永久激活 转自雨林木风 查看激活状态 ·"Windows+R"打开"运行"窗口,输入"slmgr.vbs -xpr"并点击 ...
- 本地打jar包到本地的Maven出库
1.命令行输入 mvn install:install-file -DgroupId=jar包的groupId -DartifactId=jar包的artifactId -Dversion=jar包的 ...
- HTML5中的拖拽与拖放(drag&&drop)
1.drag 当拖动某个元素时,将会依次触发下列事件: 1)dragstart:按下鼠标键并开始移动鼠标时,会触发该事件 2)drag:dragstart触发后,随即便触发drag事件,而且在元素被拖 ...
- Mysql慢查询开启和查看 ,存储过程批量插入1000万条记录进行慢查询测试
首先登陆进入Mysql命令行 执行sql show variables like 'slow_query%'; 结果为OFF 说明还未开启慢查询 执行sql show varia ...
- .net第三方数据库物理卡号同步功能实现
本地数据库用的是Oracle,第三方数据库是SQL Server,连接字符串保存在web.config里面. 第三方数据库为增量,每次读取要记录读取的最大位置.我是保存在本地txt文件里面. //保存 ...
- seleniun 爬取淘宝网
import re from selenium import webdriver from selenium.common.exceptions import TimeoutException fro ...
- apache上.htaccess转向nginx上配置.htaccess伪静态规则
nginx上配置.htaccess伪静态规则 在apache上.htaccess转向,只要apache编译的时候指明支持rewrite模块即可. 但是换到nginx上方法会有不同,有人说把.htacc ...
- Cmake3.6.1 下载
下载地址:https://github.com/Kitware/CMake/releases?after=v3.6.2