机器学习(四)正则化与过拟合问题 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_{ heta}(x)$加入了一个二次项,此时曲线拟合地比较好。

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

 

 

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

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

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

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

如何解决过拟合问题呢?

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

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

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

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

(2)正则化

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

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

 

2.代价函数 Cost Function

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

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

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

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

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

 

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

(1)梯度下降法

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

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

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

(2)正规方程

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

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

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

(1)梯度下降法

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

对应的习题:

 

(2)高级优化算法

这里需要注意,在针对$ heta_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

原文地址:https://www.cnblogs.com/rgvb178/p/5936323.html