机器学习:过拟合与正则化

过拟合的定义:
过拟合是指模型过度拟合训练集, 学到训练集中过多的噪音或随机波动,导致模型泛化能力差的情况。它表现为在训练集上表现良好,在测试集上表现差。

解决方法:
1.重新清洗数据,导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。

2.数据集扩增(data augmentation)
  2.1从数据源头采集更多数据
  2.2复制原有数据并加上随机噪声
  2.3重采样

3.采用dropout方法。dropout方法在训练时删除一定比例的神经元, 让这些神经元不工作。

4.采用正则化方法。在目标函数或代价函数后面加上一个正则项,一般有L1正则与L2正则等。

L0与L1范数的区别:
两者都可以实现稀疏性,但L0范数很难优化求解(NP-hard问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。
总结:L1范数和L0范数可以实现稀疏,但L1具有比L0更好的优化求解特性而被广泛应用。

L1与L2范数的区别:
L2范数是指向量各元素的平方和然后求平方根。可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0。
L2范数的好处:
学习理论的角度: L2范数可以防止过拟合,提升模型的泛化能力。
优化计算的角度: L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题。

L1正则化(?1-norm)
对于线性回归模型,使用L1正则化的模型建叫做Lasso回归。
Lasso是在RSS(残差平方和)最小化的计算中加入一个l1范数作为约束,使得某些待估系数收缩到0,训练出一个稀疏模型,从而防止过拟合,也可用于特征选择。
Lasso回归复杂度调整的程度由参数λ来控制,λ越大对线性模型的惩罚力度就越大,从而最终获得一个变量较少的模型。

L2正则化(?2-norm)
使用L2正则化的模型叫做Ridge回归。
L2范数最小化可以使得参数向量W的每个元素都接近于0,但不等于0。参数小实际上就限制了多项式某些分量的影响。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。
总结:通过L2范数可以实现对模型空间的限制,从而在一定程度上避免了过拟合,还可以让优化求解变得稳定和快速。

在(w1, w2)平面上可以画出目标函数的等值线,而约束条件则成为平面上半径为C的一个 norm ball 。等高线与 norm ball 首次相切的地方就是最优解。整个目标函数(损失函数+正则项)有最优解当且仅当两个解空间相切。

因为L1函数有很多『突出的角』(二维情况下四个),原损失函数解集与这些角相切的机率会远大于与其它部分相切的机率,而在这些角上会有很多坐标分量等于0,所以L1正则化可以产生稀疏模型,进而可以用于特征选择。
正则化项的系数λ与L1图形成正比,λ越小则相切点越接近原点,从而最优解w中各非零元素可以取到很小的值。

L2正则项的函数图形是圆,与方形相比,被磨去了棱角,相切点在坐标轴上的机率小了很多,这就解释了为什么L2正则化不能产生稀疏性的原因。

参数λ越大则正则化强度越大,对参数的限制能力也越强,最后求得代价函数最值时各参数也会变得很小,从而避免模型过拟合的强度也增大。

时间: 2024-10-10 15:43:26

机器学习:过拟合与正则化的相关文章

Coursera公开课笔记: 斯坦福大学机器学习第七课“正则化”

Coursera公开课笔记: 斯坦福大学机器学习第七课"正则化" NLPJob 斯坦福大学机器学习第七课"正则化"学习笔记,本次课程主要包括4部分: 1) The Problem of Overfitting(过拟合问题) 2) Cost Function(成本函数) 3) Regularized Linear Regression(线性回归的正则化) 4) Regularized Logistic Regression(逻辑回归的正则化) 以下是每一部分的详细解读

避免过度拟合之正则化(转)

避免过度拟合之正则化 “越少的假设,越好的结果” 商业情景: 当我们选择一种模式去拟合数据时,过度拟合是常见问题.一般化的模型往往能够避免过度拟合,但在有些情况下需要手动降低模型的复杂度,缩减模型相关属性. 让我们来考虑这样一个模型.在课堂中有10个学生.我们试图通过他们过去的成绩预测他们未来的成绩.共有5个男生和5个女生.女生的平均成绩为60而男生的平均成绩为80.全部学生的平均成绩为70. 现在有如下几种预测方法: 1 用70分作为全班成绩的预测 2 预测男生的成绩为80分,而女生的成绩为6

避免过度拟合之正则化

避免过度拟合之正则化 “越少的假设,越好的结果” 商业情景: 当我们选择一种模式去拟合数据时,过度拟合是常见问题.一般化的模型往往能够避免过度拟合,但在有些情况下需要手动降低模型的复杂度,缩减模型相关属性. 让我们来考虑这样一个模型.在课堂中有10个学生.我们试图通过他们过去的成绩预测他们未来的成绩.共有5个男生和5个女生.女生的平均成绩为60而男生的平均成绩为80.全部学生的平均成绩为70. 现在有如下几种预测方法: 1 用70分作为全班成绩的预测 2 预测男生的成绩为80分,而女生的成绩为6

机器学习中使用「正则化来防止过拟合」到底是一个什么原理?为什么正则化项就可以防止过拟合?

原文:http://www.zhihu.com/question/20700829 27 个回答 46赞同反对,不会显示你的姓名 ALAN Huang,什么都会一点点 欣然.王志.马克 等人赞同 Orangeprince 的回答非常学院派,也非常系统. 过拟合表现在训练数据上的误差非常小,而在测试数据上误差反而增大.其原因一般是模型过于复杂,过分得去拟合数据的噪声和outliers. 正则化则是对模型参数添加先验,使得模型复杂度较小,对于噪声以及outliers的输入扰动相对较小. 以正则化项和

[深度之眼机器学习训练营第四期]过拟合与正则化

基本概念 机器学习模型面临的两个主要问题是欠拟合与过拟合.欠拟合,即模型具有较高的偏差,说明模型没有从数据中学到什么,如下左图所示.而过拟合,即模型具有较高的方差,意味着模型的经验误差低而泛化误差高,对新数据的泛化能力差,如下右图所示. 通常,欠拟合是由于模型过于简单或使用数据集的特征较少导致的.相反,过拟合则是模型过于复杂或特征过多引起的.欠拟合的问题比较容易解决,而过拟合的问题则有些棘手.一般而言,解决过拟合的方法包括降维和正则化. 正则化损失函数 正则化是通过向损失函数中添加惩罚项以限制参

容量、欠拟合、过拟合和正则化

1.训练误差和泛化误差 机器学习的主要挑战是我们的模型要在未观测数据上表现良好,而不仅仅是在训练数据上表现良好.在未观测数据上表现良好称为泛化(generalization). 通常情况下,我们在训练数据上训练模型时会计算一些被称为训练误差(training error)的误差度量,目标是降低训练误差.由于模型要投入到实际使用,所以我们希望泛化误差(generalization,或者被称为测试误差)也尽可能的小.泛化误差被定义为新输入的误差期望. 如果训练数据和测试数据是同分布的,我们将这个共享

机器学习——过拟合问题

下面主要总结线性回归与逻辑回归下的过拟合问题. [过拟合问题的定义] [过拟合问题的解决方法] 怎样解决过拟合问题呢?两个方法: 1. 减少feature个数(人工定义留多少个feature.算法选取这些feature) 2. 正则化(留下所有的feature,但对于部分feature定义其parameter非常小) 下面我们将对线性回归与逻辑回归的正则化进行详细的讲解. [一.线性回归的正则化] 过拟合现象如图(右)所示 试想在不改变特征数的条件下,如何使这些特征更好的拟合数据呢??由图(中)

TensorFlow 过拟合与正则化(regularizer)

所谓过拟合,就是当一个模型过于复杂后,它可以很好的处理训练数据的每一个数据,甚至包括其中的随机噪点.而没有总结训练数据中趋势.使得在应对未知数据时错误里一下变得很大.这明显不是我们要的结果. 我们想要的是在训练中,忽略噪点的干扰,总结整体趋势.在应对未知数据时也能保持训练时的正确率. 上图中第一种情况,模型过于简单,未能很好的反应数据的总体趋势. 第三种情况就属于过拟合的情况.虽然完美的反应了练习数据的状况,但是明显被噪点影响了. 第二种情况是我们想要的理想状况. 为了避免过拟合,通常使用的方法

机器学习之拟合和过拟合问题

过拟合:当某个模型过度的学习训练数据中的细节和噪音,以至于模型在新的数据上表现很差,我们称过拟合发生了,通俗点就是:模型在训练集中测试的准确度远远高于在测试集中的准确度. 过拟合问题通常发生在变量特征过多的时候.这种情况下训练出的方程总是能很好的拟合训练数据,也就是说,我们的代价函数可能非常接近于0或者就为0,使其拟合只局限于训练样本中,无法很好预测其他新的样本. 欠拟合:在训练数据和未知数据上表现都很差 解决过拟合问题的方法主要有: 1. 减少特征数量,通过人工或者算法选择哪些特征有用保留,哪