机器学习(2)之过拟合与欠拟合

关键字全网搜索最新排名

【机器学习算法】:排名第一

【机器学习】:排名第二

【Python】:排名第三

【算法】:排名第四

过拟合与欠拟合

上一篇(机器学习(1)之入门概念),我们介绍了机器学习所解决的问题,以及哪些种类的机器学习方法。本文我们主要从模型容量的选择出发,讲解欠拟合和过拟合问题。机器学习的主要挑战任务是我们的模型能够在先前未观测的新输入上表现良好,而不是仅仅在训练数据集上效果良好。这儿,将在先前未观测输入上的表现能力称之为泛化(generalization)。

首先定义几个关于误差的概念,通常情况下,通过训练数据集训练模型后在训练数据上进行的一些误差计算称之为训练误差(training error),通常我们的目前是降低训练误差(为防止过拟合我们通常加一个正则化项,后面会提到)。上述这个问题其实就是一个优化问题,但是优化问题不同于机器学习问题,在进行机器学习建模时我们不仅希望我们的训练误差很小,同时我们的最终目的是使得测试误差(test error)很小,也就是泛化误差(generalization error)很小。通常,我们度量测试数据集在模型中的性能来评估模型的泛化误差。例如,在线性回归中我们通过最小化训练误差最小化来训练模型

但是我们真正关注的是测试误差

由于训练数据集和测试数据集是独立同分布产生于同一个数据生成过程的,这个假设使得我们可以寻找训练误差和测试误差之间的关系。假设我们有概率分布p(x,y),从中进行重复采样生成训练数据集和测试数据集。对于同一个参数W,训练数据集和测试数据集的误差期望是相等的,唯一的区别便是数据集的名称不同而已。但是实际的机器学习应用中,我们不会提前确定固定的参数然后从中进行采样的。以下是决定机器学习算法效果的决定性因素:

  1. 降低训练误差
  2. 缩小训练误差与测试误差之间的差距

其实上述的两个因素真好对应于我们今天所说的欠拟合(underfitting)和过拟合(overfitting)。欠拟合发生在模型不怕能在训练数据集上获得足够小的误差。过拟合发生在训练误差和测试误差之间的差距太大。

通过调整模型的容量,我们可以控制模型是否偏向于过拟合或者欠拟合。通俗而言,模型容量就是指其拟合各种函数的能力。容量低的模型不能或者很难拟合训练数据集;容量很高可能会因为学习了一下干扰特征而出现过拟合。

模型选择

接下来通过多项式函数拟合问题为例说明这个问题(引用:《统计学习方法》(P12))。

给定训练数据集:

其中,xi世输入x的观测值,yi是相应的输出y的观测值,i=1,2,3,...,N。多项式函数拟合的任务是假设给定数据由M次多项式函数生成,选择最有可能产生这些数据的M次多项式。如图所示的10个点数据,用0---9次多项式进行拟合,图中画出了需要用多项式函数曲线拟合的数据。

M次多项式函数拟合问题的例子

设M次多项式为:

解决这一问题的思路可以是这样的,首先确定模型的复杂度;然后在给定模型复杂度的情况下,按照经验风险最小化的策略求解参数,经验风险最小化具体如下

进一步转化为:

对各个参数求导后为

最终求的多项式的系数。

上图中我们给出了M=0,1,3,9时多项式的拟合效果。当M=0时,这就是一条曲线,数据拟合效果很差;当M=1时,多项式是一条直线,拟合效果也很差;当M=9时,多项式通过每个数据点,训练误差为零,从训练数据的拟合效果而言,效果很好。但是因为训练数据本身存在噪声,这种拟合对于未知数据的预测能力往往不是最好的,该现象也就是之前提到的过拟合现象,而M=0,1时存在欠拟合现象。而当M=3时,多项式曲线对训练数据拟和效果足够好,模型也比较简单是一个不错的选择。

训练误差和测试误差与模型复杂度的关系训练误差和测试误差曲线趋势表现的非常不一致。在图的左侧,训练误差和泛化误差都很高,处于欠拟合期;当我们增加模型容量也就是增加模型复杂度时,训练误差减小,但是训练误差和泛化误差之间的差距变大,最终这个间距的大小超过了训练误差的下降,从而进入了过拟合期。

合理的选择模型的复杂度和模型容量,通常采用正则化和交叉验证。

参考资料:

  1. 统计学习方法
  2. 斯坦福大学machine learning
  3. 机器学习

原文发布于微信公众号 - 机器学习算法与Python学习(guodongwei1991)

原文发表时间:2017-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏闪电gogogo的专栏

《统计学习方法》笔记一 统计学习方法概论

  输入与输出所有可能取值的集合成为输入空间与输出空间。每个具体的输入是一个实例,通常由特征向量表示,所有特征向量存在的空间成为特征空间。

852
来自专栏互联网大杂烩

机器学习之梯度下降

梯度下降法是求解无约束最优化问题的一种常用的方法,方法实现简单。 梯度下降背后的思想是:开始时我们随机选择一个参数的组合(θ0,θ1,...,θn),计算代价...

802
来自专栏计算机视觉战队

每日一学——线性分类笔记(下)

Softmax分类器 SVM是最常用的两个分类器之一,而另一个就是Softmax分类器,它的损失函数与SVM的损失函数不同。对于学习过二元逻辑回归分类器的读者来...

4227
来自专栏JasonhavenDai

统计学习方法之概论1.基础概念2.统计学习三要素3.模型评估与模型选择、正则化和交叉验证4.分类问题、标注问题、回归问题5.学习小结

1.基础概念 统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科,也称统计机器学习。统计学习是数据驱动的学科,是一门概率论、统...

2983
来自专栏PaddlePaddle

激活函数

深度学习基础理论-CNN篇 激活函数 ? 激活函数(activation function)层又称非线性映射层,顾名思义,激活函数的引入为的是增加整个网络的...

2959
来自专栏数据科学与人工智能

【机器学习】参数和非参数机器学习算法

什么是参数机器学习算法并且它与非参数机器学习算法有什么不同? 本文中你将了解到参数和非参数机器学习算法的区别。 让我们开始吧。 ? 学习函数 机器学习可以总结...

3545
来自专栏SIGAI学习与实践平台

【实验】理解SVM的核函数和参数

支持向量机(SVM)在很多分类问题上曾经取得了当时最好的性能,使用非线性核的支持向量机可以处理线性不可分的问题。仅仅通过一个简单的核函数映射,就能达到如此好的效...

1351
来自专栏老秦求学

Deep Learning Tutorial 李宏毅(一)深度学习介绍

大纲 深度学习介绍 深度学习训练的技巧 神经网络的变体 展望 深度学习介绍 深度学习介绍 深度学习属于机器学习的一种。介绍深度学习之前,我们先大致了解一下机器学...

44910
来自专栏专知

深度学习和普通机器学习之间有何区别?

【导读】文章标题是个很有趣的问题,深度学习作为机器学习的子集,它和普通机器学习之间到底有什么区别呢?作者使用了一种很普通的方式来回答这个问题。 本质上,深度学习...

3875
来自专栏张俊红

提升方法-Adaboost算法

总第85篇 01|基本概念: 提升方法的基本思想:对于任何一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比任何一个专家单独的判断好。 先来看...

2754

扫码关注云+社区

领取腾讯云代金券