`

防止过拟合以及解决过拟合

 
阅读更多

过拟合:为了得到一致假设而使假设变得过度复杂称为过拟合“一个过配的模型试图连误差(噪音)都去解释(而实际上噪音又是不需要解释的),导致泛化能力比较差,显然就过犹不及了。” 这句话很好的诠释了过拟合产生的原因,但我认为这只是一部分原因,另一个原因是模型本身并不能很好地解释(匹配)数据,也就是说观测到的数据并不是由该模型产生的。“统计学家说:我们让数据自己说话。言下之意就是要摒弃先验概率。而贝叶斯支持者则说:数据会有各种各样的偏差,而一个靠谱的先验概率则可以对这些随机噪音做到健壮。事实证明贝叶斯派胜利了,胜利的关键在于所谓先验概率其实也是经验统计的结果。” 事实上贝叶斯本身就是一个基于统计的模型……然而,文中以树后的箱子为例,阐述似然也有选择简单模型的倾向。我对此有疑义。似然是选择与观测最匹配的结果。根据当前的观测结果,显然一个箱子的模型是最符合观测的,也就是说,如果树两边的箱子高矮不一,颜色不同,那么两个箱子的模型就是最匹配的。因此,似然只是选择与观测最匹配的模型,而并没有选择简单模型的倾向。否则,就不会有那么严重的过拟合现象发生。文中还提到:“反之,如果背后的模型是一条直线,那么根据该模型生成一堆近似构成直线的点的概率就大得多了。” 这里的表述有问题,既然已经把模型看成是直线了,那么根据直线模型生成一堆近似构成直线的点的概率是接近1的。同理,我们既然已经认为可以用N-1阶模型去拟合,那么根据N-1阶模型生成的N个点当然就是符合N-1阶模型的,而不需要她去符合直线。 那么问题究竟应该怎样描述呢? 根据作者的意思问题应该这样来描述,一个多项式在平面上随机生成的一堆 N 个点偏偏恰好近似构成一条直线的概率很小很小,然而一条直线在平面上随机生成的一堆N个点(考虑随机误差)能拟合成一个N-1阶曲线的概率是1(一定能用一个N-1阶多项式来拟合)。换句话说,曲线上(N-1阶多项式)随机生成的点能被拟合成直线的概率接近于0,而直线上随机生成的点能被拟合成曲线的概率接近1。因此,若一堆点即能用直线去拟合,也能用N-1阶多项式拟合(必然),那么,他属于直线模型的概率更大。


二. 过拟合的产生
究其原因,产生过拟合是因为:
1.由于对样本数据,可能存在隐单元的表示不唯一,即产生的分类的决策面不唯一.随着学习的进行, BP算法使权值可能收敛过于复杂的决策面,并至极致.
2.权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征.



三.过度拟合解决方法
1.权值衰减. 
在每次迭代过程中以某个小因子降低每个权值,这等效于修改E的定义,加入一个与网络权值的总量相应的惩罚项,此方法的动机是保持权值较小,避免weight decay,从而使学习过程向着复杂决策面的反方向偏

2.适当的stopping criterion

3.验证数据
  一个最成功的方法是在训练数据外再为算法提供一套验证数据,应该使用在验证集合上产生最小误差的迭代次数,不是总能明显地确定验证集合何时达到最小误差.Typically 30% of training patterns;Validation set error is checked each epoch;Stop training if validation error goes up

4.Cross-validation with some patterns
交叉验证方法在可获得额外的数据提供验证集合时工作得很好,但是小训练集合的过度拟合问题更为严重

k-fold交叉方法:
把训练样例分成k份,然后进行k次交叉验证过程,每次使用不同的一份作为验证集合,其余k-1份合并作为训练集合.每个样例会在一次实验中被用作验证样例,在k-1次实验中被用作训练样例;每次实验中,使用上面讨论的交叉验证过程来决定在验证集合上取得最佳性能的迭代次数n*,然后计算这些迭代次数的均值,作为最终需要的迭代次数。

5. 减少特征

人工选择,预留一些特征

利用算法选取一些比较好的特征

6. 正则化

这里有点疑问,正则化是为了防止过拟合还是为了解决过拟合。对部分无用的feature,定义其parameter(p3,p4)非常大,这样会导致训练结果w3,w4非常小,几乎为0,降低模型复杂度。这里也有个问题就是lamba很大会导致所有的wi都为0。矩阵分解中经常会用到。

 

分享到:
评论

相关推荐

    LR的公式推导和过拟合问题解决方案.docx

    解决过拟合的方法主要有两种: 1. 降维:通过主成分分析(PCA)等技术减少特征维度,降低模型复杂度,防止过拟合。 2. 正则化:通过在损失函数中添加正则项,如L1和L2正则化,对模型参数进行约束。在LR中,正则化的...

    《动手学深度学习》PyTorch实现(过拟合、欠拟合及其解决方案)

    笔记整理 代码整理 L2 范数正则化(regularization) %matplotlib inline import torch import torch.nn as nn import numpy as np import sys sys.path.append(/home/kesci/input) import d2lzh1981 as d2l ...

    过拟合与模型选择

    在机器学习领域,过拟合(Overfitting)与模型选择是两个至关重要的概念,对构建高效...通过学习,你可以掌握如何在实际项目中识别和解决过拟合问题,以及如何根据具体情况选择合适的模型,从而提升你的机器学习技能。

    为什么正则化能够解决过拟合问题?

    为防止模型过拟合,提高模型的泛化能力,通常会在损失函数的后面添加一个正则化项。 L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓惩罚是指对损失函数中的某些参数做一些约束, 使得参数的

    一种机器学习中防止过拟合的Dropout优化算法.pdf

    总的来说,防止过拟合的Dropout优化算法通过在神经网络中应用伊辛模型,为提高模型的泛化性能提供了一个新的思路。这种优化方法有望在实际的深度学习应用中,特别是在资源有限或数据集较小的情况下,提升模型的预测...

    正则化_过拟合.docx

    #### 二、过拟合的解决方法 1. **数据增强**:通过对现有数据进行变形、旋转、缩放等方式增加训练数据量,减少过拟合的风险。 2. **特征选择**:通过减少特征的数量来简化模型,避免过拟合。 3. **早停法(Early ...

    Tensorflow 实现dropout解决过拟合.zip

    本篇文章将深入探讨如何使用TensorFlow实现Dropout来防止过拟合。 Dropout是由Hinton等人在2012年提出的,它的基本思想是在模型训练过程中随机关闭一部分神经元,以此来减少神经网络中的依赖关系,增加模型的泛化...

    欠拟合和过拟合出现原因及解决方案.docx

    "欠拟合和过拟合出现原因及解决方案" 机器学习中的两个基本问题是欠拟合(underfitting)和过拟合(overfitting),它们是导致模型泛化能力不高的两种常见原因,都来源于模型学习能力与数据复杂度之间的失配。 欠...

    Pytorch学习笔记——过拟合、欠拟合及其解决方案

    控制模型复杂度的一种方法是正则化,它通过添加惩罚项来防止权重过大,减少过拟合的风险。 4. 训练数据集的大小也至关重要。如果数据量过小,模型容易过拟合,因为它可以轻易地记住训练数据的所有细节,而无法泛化...

    过拟合现象及解决方案.docx

    综上所述,针对过拟合问题,我们可以采取多种策略,包括但不限于模型验证与保存、交叉验证、增加数据、正则化、Dropout、提前停止、结合多种模型、剪枝、多任务学习、特征选择以及Batch Normalization等。...

    基于卷积神经网络的图像识别过拟合问题分析与研究.pdf

    为解决该问题,本文建立了卷积神经网络,并对多种抑制过拟合的方法进行了分析和比较,包括添加L2正则项、dropout处理、数据增强及多种方法综合使用的综合法。 本文的主要贡献在于: 1. convolutional neural ...

    SVMRFE_过拟合_SVMrfe_特征筛选_分类算法_matlab

    本资源" SVMRFE_过拟合_SVMrfe_特征筛选_分类算法_matlab"专注于解决这个问题,它提供了一个基于支持向量机(SVM)的递归特征消除(RFE)方法,用于特征筛选,以优化分类算法的性能。 过拟合是指模型在训练数据上...

    避免过拟合的方法.docx

    为了解决这个问题,我们可以采取一系列策略来缓解过拟合,以下将详细探讨这些方法。 1. **早期停止(Early Stopping)**:早期停止是一种简单而有效的防止过拟合的策略。在训练过程中,我们会定期评估模型在验证集上...

    卷积神经网络过拟合问题研究.pdf

    基于卷积神经网络的牙形石自动化鉴定是通过研究过拟合解决策略,将过拟合解决方法加入到卷积神经网络中,解决了牙形石自动化鉴定过程中的过拟合问题。实验结果表明,优化后的模型鉴定准确率较高,有助于提高牙形石...

    Pytorch 实现dropout解决过拟合.zip

    本教程将深入探讨如何在PyTorch框架中实现Dropout来防止过拟合。 首先,理解过拟合的原因至关重要。过拟合通常是由于模型过于复杂,过度学习了训练数据中的噪声或特定细节,导致对新数据的泛化能力下降。Dropout是...

    过拟合问题1

    解决过拟合的方法主要有两种:特征选择和正则化。 1. 特征选择:可以通过人工选择重要特征或使用特征选择算法(如主成分分析PCA、层次分析法等)来减少特征数量。这样可以降低模型的复杂性,使其更专注于关键信息。...

    ch09-过拟合.zip

    本压缩包“ch09-过拟合.zip”中包含的是《TensorFlow深度学习》第9课关于过拟合问题的代码源,旨在帮助读者理解和解决这一关键问题。 过拟合的原因主要有以下几点: 1. **数据量不足**:如果训练数据量不够,模型...

    曲线拟合c++代码

    在实际应用中,我们还需要考虑如何选择合适的多项式次数,防止过拟合或欠拟合。可以使用交叉验证、AIC(赤池信息准则)或BIC(贝叶斯信息准则)等方法来评估模型的复杂性和性能。 总的来说,曲线拟合在C++中的实现...

    机器学习算法-基于机器学习回归算法实现过拟合.zip

    过拟合是机器学习中常见的问题,需要通过各种方法来避免和解决。在这个“机器学习算法-基于机器学习回归算法实现过拟合”的主题中,我们将深入探讨回归算法以及如何处理过拟合现象。 回归算法主要包括线性回归、...

    面向深度学习过拟合问题的神经网络模型.pdf

    为了进一步降低过拟合,研究人员提出了基于样本先验信息调整超平面阈值的改进型支持向量机,以及通过引入调整项改进的模糊孪生支持向量机模型,这些方法可以显著降低特定应用场景中如光纤入侵信号识别的过拟合现象。...

Global site tag (gtag.js) - Google Analytics