过拟合详解:监督学习中不准确的「常识」 

导语:本文为Mehmet Süzen撰写文章的译文,稍有删改。文章清晰地阐释和区分过度拟合及过度拟合等概念,对于本领域学习者正确理解专业术语多有帮助。正如作者在原文末所指出的:对待简单的概念,我们也应抱着积极求学的态度,了解其成立的基础。

前言

大多数从业者对”过拟合“这一概念存在误解。在数据科学界,始终存在一种类似于民间说法的观点:

“利用交叉验证可以防止过拟合。在样本外对模型进行验证,如果不存在泛化误差,则模型不存在过拟合

这个说法显然是不对的:交叉验证并不能阻止模型过拟合。样本外的良好预测性能并不能保证模型不存在过拟合。在这个说法中,前部分说的概念其实是“过度训练”。不幸的是,这种快速传播的说法不仅仅在业界传播还在一些学术论文中出现。这是专业术语上的一种混淆,我们觉得有必要澄清“过拟合”这个专业术语的概念。

在本文,我们会给出直观的解释:为什么模型验证即获取最小的泛化误差与过拟合的检测不能在一个模型上同时得到解决。在明确一些概念介绍后,我们会举例说明,以帮助大家理解过度拟合,过度训练和典型的最终模型的建立步骤。

监督学习需要满足的条件

数学最基本的任务之一是找到函数的解法:如果将其限制在n维实数域,则方程和答案均出于Rn。假设数据集中有p个数据点,分别命名为 xi,这些是方程的部分解。建模的目的是为了找到数据集的解,这意味着我们需要找到mm个未知参数a∈Rm。以数学的表达方式而言,构建一个方程:f(x,a)。这个方程被称为回归方程,插值方程或者监督学习方程,取决于你阅读的文献。这是反问题的一种形式,虽然我们不知道参数,但我们有部分变量的信息。最主要的问题在于不适定性,是指解答不适定,实际存在很多可以解释样本的函数f(x,a)。对于方程f(x,a)=0,需要满足两个要求:

  1. 普适性:模型验证,模型不能仅在样本集中使用

  2. 最小复杂度:模型选择,模型应该满足奥卡姆剃刀原理。

模型的普适性可以用拟合优度来衡量,表明模型能够在怎样的程度上解释样本。为达到最小复杂度,模型之间需要相互比较。

迄今为止,我们还未统一检测普适性并选择最佳模型的方法,需要数据科学家或者量化从业者通过个人经验进行判断。

模型验证

验证模型普适性的一个方法是提出可以衡量模型对于样本集的解释的度量标准。模型验证的主要目标为估计模型误差。比如,均方根误差(RMDS)是一个可以使用的度量标准。如果RMSD很低,表明拟合效果好,理想情况下RMDS应该接近于0。但如果我们只用样本集去衡量,不足以证明模型具有普适性,需要使用样本外数据进行检测参数aa。进一步,改进的方法是使用交叉验证,将样本集分为kk部分,我们可以获得kk个RMDS的平均值,如图1所示。

image

图1:监督学习的模型验证和分类示意

模型选择:过拟合检测

当考虑满足“最小模型复杂度”时,过拟合是需要进行考虑的因素。多个模型进行比较来判断是否过拟合。Douglas Hawkins在他经典论文The Problem of Overfitting 中写道:

模型的过拟合常见的担忧,过拟合很难被辨识,因为它不是一个绝对的问题,需要比较才能得出。如果两个模型拟合优度相同但其中一个模型更加复杂,那么这个模型就过拟合了。

关键因素是“复杂模型”的含义是什么?我们如何定量确定“模型的复杂度”?不幸的是,这是没有确定的方法。大家公认的方法是:当一个模型有更多参数的时候,模型也就更加复杂。但是这个说法也是非正式的,通常也不准确。我们可以求助于复杂度的不同衡量方式,例如,函数f1(a,x)=axf2(a,x)=ax2,两个函数有相同的参数数量,但是f2f2更加复杂,因为函数是非线性的。关于如何判定复杂度,这里有很多可以讨论的,但本文不做进一步介绍。为了下面的范例演示,我们认为模型参数越多,非线性度越强,则模型越复杂。

范例操作

上文已经直观地介绍为什么模型验证与过拟合判定不能同时完成的原因。在接受上文假设后,我们开始构造样本集和模型,以直观说明。

一般步骤为构建一个样本集,由某个模型生成,并将模型作为标准。然后利用样本集生成其他模型,我们构建如下形式的模型,但再添加一些高斯噪音

image

图2:生成的样本集及非随机部分示意

利用模型生成100个数据点,形成足够大的样本集,如图2所示。构造g(x)g(x)h(x)h(x)应用于样本集的训练,分别是三次和五次多项式,如下所示:

过度训练

过度训练是指模型的拟合优度随着某一客观变量偏离最佳值而下降。比如,神经网络中的训练集样本大小。观察g(x)训练结果,存在一个最佳的训练样本数量,使样本外数据的拟合优度最佳。

image

图3:当g(x)的训练样本集数量超过40

image

图4:当h(x)的训练样本集数量超过30

低泛化误差的过拟合

计算10倍交叉验证g(x)f(x)均方根误差,分别是0.13和0.12,结果显示:更加复杂的模型得到的拟合优度与相对简单的模型是一致的。我们不能通过均方根误差来或者是过度训练的曲线来判断过拟合,如图4。模型之间需要被比较,参考图3与图4曲线与均方根误差值。

选择使用哪个模型?

我们找到了具有良好拟合优度的最低复杂度的模型,但是我们应该采用哪个模型进行使用呢?在模型选择部分我们找到构造了模型,既然g(x)h(x)具有相同拟合优度,那我们显然应该选择g(x),并在图3中显示的最佳数量样本上进行训练。

结论

如本文实例所示,良好的拟合优度并不能保证模型没有过拟合,当人们谈论到”过拟合“时,他们说的往往是”过度训练“。

深度学习是一门实践学科,只有不断做实验才能有所进步。BigQuant人工智能量化投资平台 集成了众多深度学习/机器学习开源框架,包括TensorFlow、Keras、XGBoost、Theano、Caffe等,可以直接在BigQuant上开启你的深度学习之旅!

 原文链接:《过拟合详解:监督学习中不准确的“常识”

本文由BigQuant人工智能量化投资平台原创推出,版权归BigQuant所有,转载请注明出处。 

宽邦科技
宽邦科技

提供金融行业人工智能平台和服务解决方案,研发了全国首个人工智能量化投资平台BigQuant,拥有全栈人工智能平台和大规模机器学习和深度学习框架与算法,为券商、银行、保险、资管等金融机构以及更多企业提供AI技术方案和业务解决方案,实现机构及企业的AI转型和升级。

理论机器学习过拟合
3
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

均方根误差技术

平方平均数(Quadratic mean),简称方均根(Root Mean Square,缩写为 RMS),是2次方的广义平均数的表达式,也可叫做2次幂平均数。常用于计算误差

插值技术

数学的数值分析领域中,内插或称插值(英语:interpolation)是一种通过已知的、离散的数据点,在范围内推求新数据点的过程或方法。求解科学和工程的问题时,通常有许多数据点借由采样、实验等方法获得,这些数据可能代表了有限个数值函数,其中自变量的值。而根据这些数据,我们往往希望得到一个连续的函数(也就是曲线);或者更密集的离散方程与已知数据互相吻合,这个过程叫做拟合。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

奥卡姆剃刀技术

奥卡姆剃刀,又称“奥坎的剃刀”,拉丁文为lex parsimoniae,意思是简约之法则,是由14世纪逻辑学家、圣方济各会修士奥卡姆的威廉提出的一个解决问题的法则,他在《箴言书注》2卷15题说“切勿浪费较多东西,去做‘用较少的东西,同样可以做好的事情’。

噪音技术

噪音是一个随机误差或观测变量的方差。在拟合数据的过程中,我们常见的公式$y=f(x)+\epsilon$中$\epsilon$即为噪音。 数据通常包含噪音,错误,例外或不确定性,或者不完整。 错误和噪音可能会混淆数据挖掘过程,从而导致错误模式的衍生。去除噪音是数据挖掘(data mining)或知识发现(Knowledge Discovery in Database,KDD)的一个重要步骤。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

交叉验证技术

交叉验证,有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证的目标是定义一个数据集到“测试”的模型在训练阶段,以便减少像过拟合的问题,得到该模型将如何衍生到一个独立的数据集的提示。

XGBoost技术

XGBoost是一个开源软件库,为C ++,Java,Python,R,和Julia提供了渐变增强框架。 它适用于Linux,Windows,MacOS。从项目描述来看,它旨在提供一个“可扩展,便携式和分布式的梯度提升(GBM,GBRT,GBDT)库”。 除了在一台机器上运行,它还支持分布式处理框架Apache Hadoop,Apache Spark和Apache Flink。 由于它是许多机器学习大赛中获胜团队的首选算法,因此它已经赢得了很多人的关注。

推荐文章
暂无评论
暂无评论~