精华内容
下载资源
问答
  • 过拟合现象

    千次阅读 2016-01-14 20:44:25
    过拟合现象

    过拟合现象

    为了得到一致假设而使假设变得过度复杂称为过拟合。想像某种学习算法产生了一个过拟合的分类器,这个分类器能够百分之百的正确分类样本数据(即再拿样本中的文档来给它,它绝对不会分错),但也就为了能够对样本完全正确的分类,使得它的构造如此精细复杂,规则如此严格,以至于任何与样本数据稍有不同的文档它全都认为不属于这个类别。简言之,就是与样本拟合的很好,但是不能很好的预测实际的情况。
    线性回归的过拟合现象:
    线性回归
    逻辑回归的过拟合现象:
    逻辑回归

    解决方案

    减少特征量

    • 人工检查变量,决定哪些更加重要,哪些应该舍弃。
    • 模型选择算法:为了自动的完成“人工检查变量”

    正则化

    正则化思想是保留所有的特征量,只改变参数 θ \theta θ的大小,通过惩罚一些参数得到更为简单的假设函数。

    以线性回归为例:
    我们可以把代价函数写成这样:
    J ( θ ) = 1 2 m Σ i = 1 m ( h θ ( x ( i ) − y ( i ) ) 2 ) + λ Σ j = 1 n θ j 2 J(\theta)= \frac{1}{2m}\Sigma_{i=1}^m(h_\theta(x^{(i)}-y^{(i)})^2) +\lambda\Sigma_{j=1}^n\theta_j^2 J(θ)=2m1Σi=1m(hθ(x(i)y(i))2)+λΣj=1nθj2
    注: θ j \theta_j θj的序号从1开始而不是从0开始, λ \lambda λ叫做正则化参数是一个整数。 λ \lambda λ的目的是为了平衡两个目标。

    • 第一个目标就是我们想要训练,使假设更好地拟合训练数据。
    • 第二个目标是我们想要保持参数值较小

    求解

    仍然有两种方法:

    • 梯度下降
    • 代数方法: θ = ( X τ X + λ X ) − 1 X τ Y \theta = (X^{\tau} X+\lambda X)^{-1} X^{\tau} Y θ=(XτX+λX)1XτY ( E 为 单 位 矩 阵 ) (E为单位矩阵) (E

    更多信息/快速联系博主

    在这里插入图片描述

    展开全文
  • 一、什么是过拟合,为什么要避免过拟合 图1.1 Overfit&Normal 上图是一张使用线性回归拟合二维样本数据的matlab输出图片,其中Normal曲线是使用使用了带参数空间限制的最小二乘法进行求解的模型,Overfit曲线...

    一、什么是过拟合,为什么要避免过拟合

    图1.1 Overfit&Norma

    图1.1 Overfit&Normal
    上图是一张使用线性回归拟合二维样本数据的matlab输出图片,其中Normal曲线是使用使用了带参数空间限制的最小二乘法进行求解的模型,Overfit曲线是使用最小二乘法直接求解得到的。 可以看到虚线输出的模型可能并不是我们现实生活中所想要的模型,当我们得到Overfit所学的模型后,用于实际回归任务中,可能对于验证集、测试集、预测集效果并不好。它会产生这样一种现象:**一个假设在训练数据上能够获得比其他假设更好的拟合,但是在训练数据外的数据集上却不能很好的拟合数据**。此时我们就叫这个假设出现了**过拟合**的现象。

    在这里插入图片描述

    图1.2 随着多项式维数的增加交叉验证集经验误差的变化
    如图1.2所示,以多项式拟合举例,其随着多项式维数的增加,模型在训练集上的表现越来越好,但在交叉验证集上的误差却越来越大,这显然不是我们想要的,因为其泛化能力和鲁棒性也越来越差。

    二、过拟合产生的原因

    在这里插入图片描述

    图2.1 Bias/Variance

    偏差/方差欠拟合/过拟合有着密不可分的关系,我们现在讨论如图2.1中右下角的低偏差高方差即只有过拟合现象的原因。
    1.数据集样本数过少
    如图2.1右下图所示,当样本较少且不是簇型的时候,此时的模型可能因四周“对称”带来的误差累积为0,也就是对测试样本拟合的很“完美”,但若再增加一个样本,则可能模型的误差会增加很多,拟合效果会很差。
    2.算法模型为了更好的拟合样本集,使其模型的拟合能力超过远远超过了问题复杂度,也就是学习模型过于复杂
    对于线性回归问题来说,也就是多项式次数过高的问题;对于神经网络来说,网络结构过于复杂,单层节点数过多等也可能造成过拟合,以做过的一个图像识别项目举例,如图2.2所示,原学习目标是想检测完整的轿车,但分类器训练的结果却是将后视镜部分当作了轿车,原因是当时训练的stage过多,将轿车的细化特征学习过多以至于出现过拟合现象。
    在这里插入图片描述

    图2.2 图像识别中的过拟合现象

    3.样本中数据噪声干扰过大,大到模型过分记住了噪声特征,而忽略了真实的输入输出间的关系。

    三、如何降低过拟合

    1.(针对问题1)解决过拟合的根本方法是增加数据集的规模,理论上只要样本数足够多,即使模型足够复杂,有一定的噪声,模型也会收敛到一个比较好的结果。
    实际中由于数据集采集成本过高,通常使用一些退而求其次的方法来制造数据集,比如在图像处理中,可以利用反转、平移、切割、调整光亮,使用不同滤波来扩充数据集。
    而在模型的训练阶段,为了节省数据成本,我们会采取诸如留一法、交叉验证法、自助法等用于数据采样。
    2.(针对问题2)对于模型过于复杂,我们可以做的事情很多。
    2.1使模型本身简单化
    对于线性回归我们可以降低多项式的次数,对于神经网络我们可以减少隐藏层层数,节点数等,对于决策树,我们可以进行剪枝操作等。

    2.2正则化
    正则化是解决过拟合最常用的方法之一,最为常用的用为L1正则化与L2正则化。L0可以最自然的实现“稀疏约束”,但其求解性质不太良好,利用L1范数是L0范数的最优凸近似,又有较好的求解特性(可利用近端梯度下降求解),因此可以得到较为稀疏的解,利用L2范数进行正则化则可以大大降低计算量,拥有计算方便的特性。
    在这里插入图片描述

    图2.3 高斯核模型L2约束的最小二乘学习法运用(改变带宽与正则化参数)

    2.3 对于神经网络,我们可以采用增加Drop层(在每层中随机选取一些节点使其不工作),或是添加Batch Normalization来减轻过拟合现象。

    2.4进行特征选择与稀疏学习,常见的特征选择可分为分为1)过滤式,2)包裹式,3)嵌入式稀疏表示可以使大多数问题变得线性可分,且稀疏样本可以给存储带来方便,稀疏表示可以通过字典学习等方式得到,它可以将样本转化为合适的稀疏表示,从而使学习任务得以简化,模型复杂度降低。
    3.(针对问题三)在进行数据训练进行之前进行数据清洗,即在回归任务中删除异常的噪声点,在分类任务中将错误的label进行纠正。

    以上为个人在机器学习、深度学习以及代码实现中关于过拟合现象的一些浅薄认识,如有不妥之处肯请各位包涵指正。

    展开全文
  • 前面一文讲述的了过拟合现象产生的原因,现在讲述过拟合现象如何解决: 1 增加训练数据 这是解决过拟合现象的根本办法,若没有过多的训练数据,我们可以自己增加一些假数据来在增加数据的数量,从而让模型的泛化能力...

    前面一文讲述的了过拟合现象产生的原因,现在讲述过拟合现象如何解决:

    1 增加训练数据

    这是解决过拟合现象的根本办法,若没有过多的训练数据,我们可以自己增加一些假数据来在增加数据的数量,从而让模型的泛化能力增强。

    2 控制模型的复杂度

    过于复杂的模型容易造成过拟合现象。对于模型的设计而言,我们应该选择简单、合适的模型解决复杂的问题。

    3 降低特征的数量

    对于一些特征工程而言,可以降低特征的数量——删除冗余特征,人工选择保留哪些特征。这种方法也可以解决过拟合问题。

    4 L1 / L2 正则化

    L1 正则化

    在原始的损失函数后面加上一个L1正则化项,即全部权重|w|的绝对值的和,再乘以λ/n。则损失函数变为:
    在这里插入图片描述
    对应的梯度(导数):
    在这里插入图片描述
    其中 sgn(w)只是简单地取 w各个元素地正负号。
    在这里插入图片描述
    梯度下降时权重 w更新变为:
    在这里插入图片描述
    当 w=0时,|w|是不可导的。所以我们仅仅能依照原始的未经正则化的方法去更新w。
    当 w>0时,sgn( w )>0, 则梯度下降时更新后的 w变小。
    当w<0 时,sgn( w)>0, 则梯度下降时更新后的 w 变大。
    从这里的式子可以看出的是 ,添加L1正则后,w的值总是向着0靠近,这也就是说,使得网络中的权重变为0,也就是相当于减轻了网络的复杂度
    这也就是L1正则化会产生更稀疏(sparse)的解的原因。此处稀疏性指的是最优值中的一些参数为0。L1正则化的稀疏性质已经被广泛地应用于特征选择机制,从可用的特征子集中选择出有意义的特征。

    L2 正则化

    L2正则化通常被称为权重衰减
    在这里插入图片描述
    对应的梯度(导数):
    在这里插入图片描述
    能够发现L2正则化项对偏置 b 的更新没有影响,可是对于权重 w的更新有影响:
    在这里插入图片描述
    在这里插入图片描述
    这个式子是小于1 的
    因此在梯度下降过程中,权重 w将逐渐减小,趋向于0但不等于0。这也就是权重衰减的由来
    L2正则化起到使得权重参数 w 变小的效果,为什么能防止过拟合呢?因为更小的权重参数 w 意味着模型的复杂度更低,对训练数据的拟合刚刚好,不会过分拟合训练数据,从而提高模型的泛化能力。

    5 dropout机制

    Dropout是在训练网络时用的一种技巧(trike),相当于在隐藏单元增加了噪声。Dropout 指的是在训练过程中每次按一定的概率(比如50%)随机地“删除”一部分隐藏单元(神经元)。所谓的“删除”不是真正意义上的删除,其实就是将该部分神经元的激活函数设为0(激活函数的输出为0),让这些神经元不计算而已。
    如下图是基础网络:
    在这里插入图片描述
    下面所述的式子是使用dropout后的网络
    在这里插入图片描述

    Dropout为什么有助于防止过拟合呢?

    (a)在训练过程中会产生不同的训练模型,不同的训练模型也会产生不同的的计算结果。随着训练的不断进行,计算结果会在一个范围内波动,但是均值却不会有很大变化,因此可以把最终的训练结果看作是不同模型的平均输出。

    (b)它消除或者减弱了神经元节点间的联合,降低了网络对单个神经元的依赖,从而增强了泛化能力。

    6 Early stopping

    对模型进行训练的过程即是对模型的参数进行学习更新的过程,这个参数学习的过程往往会用到一些迭代方法,如梯度下降(Gradient descent)。Early stopping是一种迭代次数截断的方法来防止过拟合的方法,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。

    为了获得性能良好的神经网络,训练过程中可能会经过很多次epoch(遍历整个数据集的次数,一次为一个epoch)。如果epoch数量太少,网络有可能发生欠拟合;如果epoch数量太多,则有可能发生过拟合。Early stopping旨在解决epoch数量需要手动设置的问题。具体做法:每个epoch(或每N个epoch)结束后,在验证集上获取测试结果,随着epoch的增加,如果在验证集上发现测试误差上升,则停止训练,将停止之后的权重作为网络的最终参数。

    为什么能防止过拟合?当还未在神经网络运行太多迭代过程的时候,w参数接近于0,因为随机初始化w值的时候,它的值是较小的随机值。当你开始迭代过程,w的值会变得越来越大。到后面时,w的值已经变得十分大了。所以early stopping要做的就是在中间点停止迭代过程。我们将会得到一个中等大小的w参数,会得到与L2正则化相似的结果,选择了w参数较小的神经网络。

    Early Stopping缺点:没有采取不同的方式来解决优化损失函数和过拟合这两个问题,而是用一种方法同时解决两个问题 ,结果就是要考虑的东西变得更复杂。之所以不能独立地处理,因为如果你停止了优化损失函数,你可能会发现损失函数的值不够小,同时你又不希望过拟合。

    展开全文
  • (一)过拟合现象 有时我们发现,模型在训练集上效果很好,但是在测试集上效果不好,这种现象称为拟合 (二)解决办法 1.增加样本数据量 2.数据增强,人为扩展数据量 3.正则化: 正则化之所以能够降低拟合的原因...

    遇到问题:用YOLO训练自己的数据集,在训练集图片上,测试效果很好,换成测试集图片或者其他图片,测试效果极差。而且10000次就开始收敛了,然后又继续训练到50000次,这个过程Loss值一直稳定0.1左右,不再下降——经过查阅资料,最大可能性就是过拟合了。
    (一)过拟合现象
    有时我们发现,模型在训练集上效果很好,但是在测试集上效果不好,这种现象称为过拟合

    (二)解决办法
    1.增加样本数据量
    2.数据增强,人为扩展数据量
    3.正则化: 正则化之所以能够降低过拟合的原因在于,正则化是结构风险最小化的一种策略实现。 给loss function加上正则化项,能使得新得到的优化目标函数h = f+normal,需要在f和normal中做一个权衡,如果还像原来只优化f的情况下,那可能得到一组解比较复杂,使得正则项normal比较大,那么h就不是最优的,因此可以看出加正则项能让解更加简单,通过降低模型复杂度,得到更小的泛化误差,降低过拟合程度。
    4.Dropout: 在前向传播时,某个神经元的激活值以一定的概率p停止工作,随机地删除网络中的一般隐藏的神经元,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征,从而解决过拟合问题 一般取值为0.3或0.5 。
    5.early stopping 在训练中计算模型在验证集上的表现,

    展开全文
  • BP神经网络预测中“过拟合现象控制研究,杨锡鎏,周翠英,针对BP神经网络在预测建模中存在的“过拟合”问题,改进了前人定义的逼近误差表达式,使其物理意义更明确;重新定义了逼近度的表�
  • 白话剖析过拟合现象

    2021-03-17 14:31:49
    在深度学习过程中,我么经常会遇到过拟合现象,接下来就为大家讲述过拟合现象的原因 什么是拟合 拟合是指训练误差和测试误差之间的差距太大。换句换说,就是模型复杂度高于实际问题,模型在训练集上表现很好,但...
  • 1、什么是过拟合 为了使训练数据与训练标签一致,而对模型过度训练,从而使得模型出现过拟合(over-fitting)现象。具体表现为,训练后的模型在训练集中正确率很高,但是在测试集中的变现与训练集相差悬殊,也可以...
  • 过拟合现象及解决方案.docx
  • 先解释下什么是过拟合现象,一般数据集会分为训练集,验证集,和测试集,如果在训练集上的正确率和验证集上的差值较大(即方差大),就可以认定训练过程出现了过拟合现象。关于过拟合现象的解决,网络上和书籍中都...
  • 基于深度学习过拟合现象的分析.pdf
  • 过拟合   在进行数据挖掘或者机器学习模型建立的时候,因为在统计学习中,假设数据满足独立同分布,即当前已产生的数据可以对未来的数据进行推测与模拟,因此都是使用历史数据建立模型,即使用已经产生的数据去...
  • 基于粗糙集特征选择的过拟合现象及应对策略
  • 过拟合现象及解决

    2021-11-07 16:30:30
    很多算法都存在拟合问题,正则化技术可以减少过度拟合现象,以使得算法更好的起作用 最左边的属于欠拟合,最右边的属于拟合 逻辑回归,最右边拟合(很多高阶项加入) 原因:可能是特征变量过多 解决方法: ...
  • 用一个例子与感受一下欠拟合: 注意升维 #演示一下欠拟合场景 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression #np.linspac
  • 分类问题中过拟合现象解决办法

    千次阅读 2018-04-08 10:58:19
    1、丢弃一些不能帮助我们正确预测的特征。 可以是手工选择保留哪些特征 或者使用一些模型选择的算法来帮忙(例如 PCA) 2、归一化。 保留所有的特征,但是减少参数的大小(magnitude)第一件要做的事是选择网络...
  • 1.过拟合现象 拟合(overfitting)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。具体表现就是最终模型在训练集上效果好...
  • 原问题地址:matlab 分式拟合,matlab 微分方程组的参数拟合_催眠神兔的博客-CSDN博客 微分方程式: x'=dx/dt=a*0.0321*(b-x)-d*x-dy/dt, y'= dy/dt=0.25*p1*exp(-p1*t)*x , 四个待求参数:a、b、d、p1 t、x、y...
  • BP神经网络中的过拟合现象

    万次阅读 2016-04-19 21:28:45
    毕设:基于BP神经网络的网络病毒预测模型 过拟合
  • 1、误差:学习器的实际预测输出与样本的真实输出之间的差异 学习器在训练集上的误差称为:训练/经验误差 学习器在新样本上的误差称为...过拟合:学习器将训练样本“学的太好”,已经把训练样本自身的一些小特点学习当做
  • 拟合和欠拟合现象及解决方案

    千次阅读 2020-04-10 21:52:57
    过拟合和欠拟合拟合:(under-fitting)也称为欠学习,它的直观表现是算法训练得到的模型在训练集上表现差,没有学到数据的规律。引起欠拟合的原因有:模型本身过于简单,例如数据本身是非线性的但使用了线性...
  • 过拟合问题实战 1.构建数据集 我们使用的数据集样本特性向量长度为 2,标签为 0 或 1,分别代表了 2 种类别。借助于 scikit-learn 库中提供的 make_moons 工具我们可以生成任意多数据的训练集。 import matplotlib....
  • 过拟合以及如何防止过拟合

    千次阅读 2019-02-22 21:20:43
    什么是过拟合 过拟合即模型在训练过程中对模型参数进行拟合的过程中,由于训练数据集存在抽样误差(噪声),复杂的模型在训练的过程中会将抽样误差也一同进行拟合。这就导致训练好的模型在训练集上的表现很好,在...
  • 过拟合,简单来说,训练数据分数很高,测试/评估数据分数不高 欠拟合,训练数据分数不高,测试/评估数据分数也不高 实际现象: 以上说的是表象,我们再深入的分析一下实际现象呢,可以方便评估的指标就是偏差与...
  • 过拟合(over-fitting)是所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越,导致在验证数据集以及测试数据集中表现不佳的现象。就像上图中右边的情况。 过拟合的模型缺少泛化能力,过度的拟合了...
  • 文章目录使用最小二乘法做多项式拟合 使用最小二乘法做多项式拟合 # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt class PolynomialModel(object): def __init__(self, degree): ...
  • 在所有的机器学习算法的使用中,都必须避免拟合和欠拟合现象的产生,这就是偏置/方差折中问题的主要研究对象。维基百科中给出这种问题的详细说明: 偏置是一种误差, 这种误差主要来自于学习模型或算法中的错误...
  • 在统计学中,过拟合现象是指在拟合一个统计模型时,使用过多参数。对比于可获取的数据总量来说,一个荒谬的模型只要足够复杂,是可以完美地适应数据。拟合一般可以视为违反奥卡姆剃刀原则。当可选择的参数的自由度...
  • 神经网络中的过拟合

    2020-12-02 15:17:26
    神经网络中的过拟合定义问题 定义 过拟合(overfitting):是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。 具体表现就是...
  • 什么是过拟合过拟合也就是泛化能力差。 怎么判断是不是过拟合? 训练时准确率高,验证时准确率低。 过拟合产生的原因: 1.神经网络的学习能力强,复杂度过高。 2.训练时间太久。 3.激活函数不合适。 4....
  • ML-过拟合现象及其解决方法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,905
精华内容 13,162
关键字:

过拟合现象