细品 - 过拟合与模型选择*

欠拟合和过拟合

  欠拟合是指模型不能很好的捕获到数据特征,不能很好的拟合数据,学习能力底下。解决方法:增加模型的复杂度

    

  过拟合是指模型不仅仅学习了数据集中的有效信息,也学习到了其中的噪音数据,使得模型在训练集上的表现非常好,但是对于测试集的预测效果很差。解决方案:

  (1) 导致过拟合的一个原因可能是由于数据不纯、包含大量的噪声数据,这时候我们需要重新清洗数据。

  (2) 增加训练数据的样本量

  (3) 采用正则化方法,降低模型参数复杂度(参数大小和参数量),从而降低模型复杂度

  (4) 神经网络中常采用dropout方法:在训练的时候让神经元以一定的概率不工作。

    

  如何判断你的模型是欠拟合还是过拟合?通常的做法就是将你的训练数据集拆分成训练集和验证集,通过观察训练误差和验证误差的情况来判断模型对训练数据的拟合情况。

正则化

  监督学习问题无非就是在规则化参数的同时最小化误差。最小化误差是为了让我们模型更好的拟合数据,而规则化参数是为了防止模型对数据的过分拟合。前面我们也提到,当我们的模型处于过拟合时,我们可以通过在模型损失函数上添加正则化项,用于控制模型参数的复杂度,从而得到更为简单的参数,获得更为理想的模型。可见,正则化的一个根本目的就是使我们可以选择出那种既能够很好的拟合数据,相对来说又最简单的模型。

  线性回归正则化后的表达式为:

    

这里的代表正则化系数,是我们常说的正则化项,正则化项常用的形式有哪些呢?

  该范数表示的是参数向量中非0元素的个数。这时候我们可以试想我们用范数正则化一个参数矩阵的话,就相当于让中值为0元素非常多,也就是让参数矩阵稀疏。

      

该范数表示的是参数向量中各元素绝对值之和范数也称为稀疏规则算子。我们试想用范数正则化一个参数向量的话,就相当于让中每一个元素都很小甚至是等于0。

      

那问题来了Question1:范数为什么可以实现稀疏?

  加入范数后的代价函数可以表示为无约束形式

      

  最小化又等价于约束问题下最小化

      

  这里我们假设参数向量只有两个元素,我们可以在一个平面上画出的等高线图以及约束条件的表示,如图

      

  我们知道等高线越向外损失越大(凸函数),约束在图上可以表示为如图的正方形,两图形的第一个交点就是代价函数取最小时的情形。两图形第一个交点相交于正方形顶角上的概率远远大于相交于其他位置的概率(很明显)。顶点坐标只有一个参数不为0,另一个参数为0,也就是更加容易产生稀疏。在更高维的情况下也是如此,因此会使得参数更多的为0,只是又较少的一部分不为0。的这种特性使它可以应用于特征选择。

  前面我们也提了范数也可以实现稀疏,那问题又来了Question2:为什么实现稀疏上基本上是使用范数而很少使用范数呢?这主要有两个原因:

  (1) 范数很难优化求解

  (2) 范数是范数的最优凸近似,并且范数更容易优化求解

  范数是参数向量中各元素的平方和再开平方。在防止过拟合问题上范数被广泛的应用。

    

  那么问题来了Question1:是什么使得它可以非常好的解决过拟合问题呢?我们再来试想:若我们最小化正则项,会使得参数向量发生什么样的变化? 会使得参数向量的每一个元素都很小,都接近于0,而非等于0(与最大的不同),这样就成功的降低了模型参数复杂度,从而避免了过拟合现象的出现。那么问题又来了Question2:为什么会使得参数元素都趋向于0,而非等于0呢?我们像那样给出代价函数的约束等价问题:

      

该约束问题在图形上的表示,如下:

    

不同,的约束条件表示为一个圆形,两个图形的第一个交点大多不会出现在非坐标轴上,因为要想交于坐标轴那么的圆心也必须在坐标轴上,这种情况是很少发生的,故不会拥有的那种使得参数大部分都是0的特性。而最小化正则就会使得参数元素都很小,也就是都趋于0。

总结:会趋向于产生少量的特征,而其他特征的参数(权值)都为0,可以用来做特征选择; 而会选择更多的特征,这些特征的参数都趋于0,广泛应用与过拟合问题。

补充:其实除了有防止过拟合的特性,它还可以使得梯度下降的求解过程变得稳定而迅速,这又是如何实现的呢?

我们前面给出了加入正则项后的线性回归代价函数的表示形式:

    

    

我们对其求导后得到了梯度下降的权值更新公式:

    

这时我们发现中的是第j个参数的符号,是个定值; 而中的是变得。故,正则化后的参数更新速度会随着参数的更新而变动,参数大更新快,参数小更新慢,所以它会进一步优化梯度下降的求解。

时间: 2024-10-04 05:51:34

细品 - 过拟合与模型选择*的相关文章

MXNET:欠拟合、过拟合和模型选择

当模型在训练数据集上更准确时,在测试数据集上的准确率既可能上升又可能下降.这是为什么呢? 训练误差和泛化误差 在解释上面提到的现象之前,我们需要区分训练误差(training error)和泛化误差(generalization error):前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望. 假设训练数据集和测试数据集里的每一个样本都是从同一个概率分布中相互独立地生成的.基于该独立同分布假设,给定任意一个机器学习模型及其参数和超参数,它的训练误差的期望

模型评估与模型选择

机器学习算法 原理.实现与实战——模型评估与模型选择 1. 训练误差与测试误差 机器学习的目的是使学习到的模型不仅对已知数据而且对未知数据都能有很好的预测能力. 假设学习到的模型是$Y = \hat{f}(X)$,训练误差是模型$Y = \hat{f}(X)$关于训练数据集的平均损失: $$R_{emp}(\hat{f}) = \frac{1}{N}\sum_{i=1}^NL(y_i,\hat{f}(x_i))$$ 其中$N$是训练样本容量. 测试误差是模型$Y = \hat{f}(X)$关于测

机器学习之模型评估与模型选择(学习笔记)

时间:2014.06.26 地点:基地 -------------------------------------------------------------------------------------- 一.训练误差和测试误差 机器学习或者说统计学习的目的就是使学习到的模型不仅对已知数据而且对未知数据都都很好的预测能力.不同的学习方法会得出不同的模型.在评判学习方法的好坏时,常用的是: 1.基于损失函数的模型的训练误差                          2.模型的测试误

小白学习之pytorch框架(6)-模型选择(K折交叉验证)、欠拟合、过拟合(权重衰减法(=L2范数正则化)、丢弃法)、正向传播、反向传播

下面要说的基本都是<动手学深度学习>这本花书上的内容,图也采用的书上的 首先说的是训练误差(模型在训练数据集上表现出的误差)和泛化误差(模型在任意一个测试数据集样本上表现出的误差的期望) 模型选择 验证数据集(validation data set),又叫验证集(validation set),指用于模型选择的在train set和test set之外预留的一小部分数据集 若训练数据不够时,预留验证集也是一种luxury.常采用的方法为K折交叉验证.原理为:把train set分割成k个不重合

机器学习(ML)七之模型选择、欠拟合和过拟合

训练误差和泛化误差 需要区分训练误差(training error)和泛化误差(generalization error).前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似.计算训练误差和泛化误差可以使用之前介绍过的损失函数,例如线性回归用到的平方损失函数和softmax回归用到的交叉熵损失函数. 直观地解释训练误差和泛化误差这两个概念.训练误差可以认为是做往年高考试题(训练题)时的错误率,泛化误差则可以通过真正参加高

模型选择

继续上节内容介绍学习理论,介绍模型选择算法,大纲内容为: 交叉验证 特征选择 回顾上节的偏差方差权衡现象,若选择过于简单的模型,偏差过高,可能会导致欠拟合:若选择过于复杂的模型,方差过高,可能会导致过拟合,同样模型的一般适用性不好. 模型复杂度:多项式的次数或参数的个数. (1)尝试选择多项式的次数 (2)尝试选择参数 τ:局部加权线性回归带宽参数 C:支持向量机中的权衡参数 ------------------------------------------------------------

ISLR系列:(4.1)模型选择--- Subset Selection

Linear Model Selection and Regularization 此博文是 An Introduction to Statistical Learning with Applications in R 的系列读书笔记,作为本人的一份学习总结,也希望和朋友们进行交流学习. 该书是The Elements of Statistical Learning 的R语言简明版,包含了对算法的简明介绍以及其R实现,最让我感兴趣的是算法的R语言实现. [转载时请注明来源]:http://www

机器学习——模型选择、参数选择

当我们使用正则化的线性回归方法预测房价时,发现得到的模型应用于新的数据上时有很大误差,这时,我们可以选择一些解决方案,例如: 上图中的这六种解决方案都有相应的条件,如图中蓝色字体所示. [一.回归模型选择] 我们引入一类数据集,叫做cross validation set,即交叉验证数据集.将所有数据按6:2:2 分为training set , cross validation set , testing set三类,如下图所示: [模型选择的步骤] 建立d个假设模型,如下图所示(d=10),

模型选择的一些基本思想和方法

原文:http://cos.name/2015/08/some-basic-ideas-and-methods-of-model-selection/ 作者:高涛  编辑:王小宁 0. 引言 有监督学习是日常使用最多的建模范式,它有许多更具体的名字,比如预测模型.回归模型.分类模型或者分类器.这些名字或来源统计,或来源于机器学习.关于统计学习与机器学习的区别已经有不少讨论,不少人认为机器学习侧重于目标预测,而统计学习侧重于机制理解和建模.个人更加直观的理解是,统计学习侧重于从概率分布来描述数据生