正则化项是如何缓解过拟合的(减少过拟合的方法)

2024-07-22 07:26:01 7

正则化项是如何缓解过拟合的(减少过拟合的方法)

本文目录

减少过拟合的方法

1增大数据量 2early stoping 通过在模型的训练的过程中同时通过验证集测试模型的准确率,如果模型在测试集上效果上升但是验证集上的效果下降就停止训练,防止过拟合。 3加入正则化项 正则化项包括L1正则化和L2正则化,其中L1正则化让参数等于零,L2正则化会让参数更加平均 因为L1正则化是加入的是权重的绝对值,把这个L1加入损失函数之后,如果使用梯度下降的算法更新权重,我前哪们会对损失函数求每个参数的倒数,对正则化项求导之后如果原来的w大于零那么 w(新的)=w(老的)-(损失函数求导部分+λ sgn(w))。sgn(w)就大于零让新的w减小,如果原来的w小于零那么拿悔枯sgn(w)就是负的让变大,所以总体来说就是会导致w一直靠近零,这样就就导致权重稀疏。 如果是L2正则 w(新的)=w(老的)-(损失函数求导部分+(λ w(老的)))=(1-λ)w(老的)-损失函数求导部分。这样就相当于一直让w变小(无论正负),但是方向不是不会趋于零。

4dropout 随机失活就是让神经网络当中隐藏层的神经单元随机的不被激活,这样的理由是对于神经网络来说我们也是更倾向于每个神经元都是同等重要的,但是在训练的过程中会导致某些神经元上的权重极大,随机失活就会告诉神经网络不要集中于网络中的某几个主要节点,应该面面俱到,这样的本质也是和正则化一样的。如果将权重集中在某些特征当中容易造成过拟合,如果数据的分布情况变了就会导致模型整体的预测能力下降。 5 决策树剪枝 决策树损失函数里加入叶子节点的个数和树的颗数 从底层开始对于每一个中间节点计算剪枝钱的损失函数和剪枝后的损失函数。如果剪枝后的损失小于剪枝前的损失那么就把两个叶子节点上的样本样本合并赋予给这个中间节点,如果是回归树就用所有样本的均值,如果消洞是分类树就采用投票多数的样本作为该叶子节点的预测值。

正则化为什么能防止过拟合

在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却不工作。

为了防止overfitting,可以用的方法有很多,下文就将以此展开。有一个概念需要先说明,在机器学习算法中,我们常常将原始数据集分为三部分:

这个validation data是什么?它其实就是用来避免过拟合的,在训练过程中,我们通常用它来确定一些超参数(比如根据validation data上的accuracy来确定early stopping的epoch大小、根据validation data确定learning rate等等)。那为啥不直接在testing data上做这些呢?因为如果在testing data做这些,那么随着训练的进行,我们的网络实际上就是在一袭弊数点一点地overfitting我们的testing data,导致最后得到的testing accuracy没有任何参考意义。因此,training data的作用是计算梯度更新权重,validation data如上所述,testing data则给出一个accuracy以判断网络的好坏。

避免过拟合的方法有很多:

L2正则化就是在代价函数后面再加上一个正则化项:

C0代表原始的代价函数,后面拍首那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。另外还有一个系数1/2,1/2经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整。

L2正则化项是怎么避免overfitting的呢?我们推导一下看看,先求导:

可以发现L2正则化项对b的更新没有影响,但是对于w的更新有影响:

在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为 1−ηλ/n ,因为η、λ、n都是正的, 所以 1−ηλ/n小于1,它的效果是减小w,这也就是权重衰减(weight decay)的由来。当然考虑到后面的导数项,w最终的值可能增大也可能减小

另外,需要提一下,对于基于mini-batch的随机梯度下降,w和b更新的公式跟上面给出的有点不同:

对比上面w的更新公式,可以发现后面卜亏那一项变了,变成所有导数加和,乘以η再除以m,m是一个mini-batch中样本的个数。

到目前为止,我们只是解释了L2正则化项有让w“变小”的效果,但是还没解释为什么w“变小”可以防止overfitting?一个所谓“显而易见”的解释就是:更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合刚刚好(这个法则也叫做奥卡姆剃刀),而在实际应用中,也验证了这一点,L2正则化的效果往往好于未经正则化的效果。

过拟合的时候,拟合函数的系数往往非常大,为什么?如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大

而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况

L1、L2正则化知识详解

正则化是一种回归的形式,它将系数估计(coefficient estimate)朝零的方向进行约束、调整或缩小。也就是说,正则化可以在学习过程中降低模型复杂度和不稳定程度,从而避免过拟合的危险。

如果随机变量的概率密度函数分布为:

还有涉及极大似然估计、概率论相关的先验和后验相关概率, 为了控制篇幅, 本文就不详细介绍, wiki百科和百度百科都讲得很清楚。

正则化通过降低模型的复杂性, 达到避免过拟合的问题。 正则化是如何解决过拟合的问题的呢?从网上找了很多相关文章, 下面列举两个主流的解释方式。

如果发生过拟合, 参数θ一般是比较大的值, 加入惩罚项后, 只要控制λ的大小,当λ很大时,θ1到θn就会很小,即达到了约束数量庞大的特征的目的。

原因二:从贝叶斯的角度来分析, 正则化是为模型参数估计增加一个先验知识,先验知识会引导损失函数最小值过程朝着约束方向迭代。 L1正则是拉普拉斯先验,L2是高斯先验。整个最优化问题可以看做是一个最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计消核。 给定训练数据, 贝叶斯方法通过最大化后验概率估计参数θ:

下面我们从最大后验估计(MAP)的方式, 推导下加入L1和L2惩罚项的Lasso和岭回归的公式。 首先我们看下 最小二乘公式的推导 (公拿埋掘式推导截图来自知乎大神)

为了帮助理解,我们来看一个直观的例子:假定x仅有两个属性,于是无论岭回归还是Lasso接触的w都只有两个分量,即w1,w2,我们将其作为两个坐标轴,然后在图中绘制出两个式子的第一项的”等值线”,即在(w1,w2)空间中平方误差项取值相同的点的连线。再分别绘制出L1范数和L2范数的等值线,即在(w1,w2)空间中L1范数取值相同的点的连线,以及L2范数取值相同的点的连线(如下图所示)。

岭回归与Lasso的解都要在平方误差项与正则化项之间折中,即出现在图中平方误差项等值线与正则化项等值线相交处。而由上图可以看出,采用L1范数时平方误差项等值线与正则化项等值线的交点常出现在坐标轴上,即w1或w2为0,而在采用L2范数时,两者的交点常出现在某个象限中,即w1或w2均非0。

这说明了岭回归的一个明显缺点:模型的可解释性。它将把不重要的预测因子的系数缩小到趋近于 0,但永不达到 0。也就是说,最终的模型会包含所有的预测因子。但是,在 Lasso 中,如果将调整因子 λ 调整得足够大,L1 范数惩罚可以迫使一些系数估计值完全等于 0。因此,Lasso 可以进行变量选择,产生稀疏模型。注意到w取得稀疏解意味着初始的d个特征中仅有对应着w的非零分量的特征才会出现在最终模型中,于是求解L1范数正则化的结果时得到了仅采用一部分初始特征的模型;换言之,基于L1正则化的学习方法就是一种嵌入式特征选择方法,其特征选择过程和学液吵习器训练过程融为一体,同时完成。

拟合函数过参数化怎么办

如果您的拟合函数过参数化,可能会出现过拟合现象,即模型过度拟合样本数据,导致对新数据的预测效果较差。为了解让滑决过拟伍滑肆合问题,可以采用以下方法:1. 简化模型参数:减少模型的参数数目,可以让模型更加简单,缓解过拟合问题。可以通过手动减少模型特征的方法,也可以通过自动化选择特征的方法来实现。2. 增加数据量:增加样本量可以使模型更加通用,减少模型对特定数据的过度拟合。可以通过抽样、合成样本等方法来增加数据量。3. 正则化:通过增加正腔轿则项限制模型的复杂度,进而使模型更加平滑,缓解过拟合现象。比较流行的正则化方法有L1和L2正则化。4. 交叉验证:通过交叉验证等方法,可以评估模型的泛化能力,进而选择出适合的模型。需要注意的是,过拟合并不是一种绝对坏的现象。如果您的样本量较小或特征较复杂,过拟合也可能是在当前条件下最好的拟合方案。因此,在选择减少过拟合策略时,需要根据实际情况来选择合适的方法以平衡预测准确性和泛化能力。

通过正则化解决过拟合问题

过拟合是机器学习中的常见问题,它是指模型在训练数据集上表现良好,但是用于未知数据时性能不佳 如果一个模型出现了过拟合问题,我们也说此模型有高方差,这有可能是因为使用了相关数据中过多的参数,从而使得模型变得国于复杂。同样,模型也可能面临欠拟合(高偏差)问题。 如果我们多次重复训练一个模型,如使用训练数据集中不同的子集,方差可以用来衡量模型对特定样本实例预测的一致性。可以说模型对训练数据中的随机性是敏感的 相反,当我们在不同的训练数据集上多次重建模型时,偏差可以从总体上衡量预测值与实际值之间的差异;偏差并不是由样本的随机性导致的,它衡量的是系统误差 偏差-方差权衡就是通过正则化调整模型的复杂度。正则化是解决共线性(特征间高度相关)的一个很有用的方法,它可以过滤掉数据中的噪音,并最终防止过拟合 **由于过拟合本质是过多的特征被启用导致的,导致模型泛化性变差,所以防止过拟合要降低特征的数量,可以通过使w个数减少,问题就变成让W向量中项的个数最小化,方法就是让w变成或趋近于0,因为神芦向量中0元素对应的x是没有任何权重的 。 L2范数是指向量各元素的平游改带方和然后求平方根。我们让L2范数的正则项最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,这里是有很大的区别的哦 正则化背后的概念是引入额外的信息(偏差)来对极端参数权重做出惩罚。最常用的正则化形式被称为L2正则化,有时也称作L2收缩或权重衰减 特征缩放之所以重要,其中一个原因就是正则化。为了使得正则化起作用,需要确保所有特征保持统一 使用正则化方法时,我们只需在逻辑斯蒂回归的代歼宽价函数中加入正则化项,以降低回归系数带来的副作用 通过正则化系数,保持权值较小时,我们就可以控制模型与训练数据的拟合程度

过拟合及其解决方式

过拟合经常发生:

先看范例:

运行结果:

模型在训练集上的精度是98.5%, 在测试集上的精度是90.0%,显然发生过拟合了。

解决办法:

加入Dropout层 ,模型修改为:

运行结果:

加入权重正则化 ,模型修改为

运行结果:

模型在训练集上的精度是86.3%, 在测试集上的精度是87.4%,显然增加过Dropout+L2后,模型燃敏过拟合好了,但又发生了欠拟合悉搜 把Epochs增加为:20,其运行结果:

模型在训练集上的精度是88.02%,皮陆枝 在测试集上的精度是88.7%

结论:

什么是过拟合如何避免过拟合问题

过拟合 :所选模型的复杂度比真模型更高;学习时选择的模型所包含的参数过多,对已经数据预测得很好,但是对未知数据预测得很差的现象. 过拟合一般特点 :高方差,低偏差; 导致过拟合原因: 训练斗乱猛数据不够,模型进行过度训练(overtraining)等 如何避免过拟合: 1) Early stopping (适当的stopping criterion): Early stopping便是一种迭代次数截断的方法来防止过拟合的方法,即在模型对训练数据集迭代收敛之前停止迭代来防陪模止过拟合 2) 数据集扩增 : 数据机扩增即需要得到更多的符合要求的数据,即和已有的数据是独立同分布的,或者近似独立同分布的。一般方法有:从数据源头采集更多数据,复制原有数据并加上随机噪声,重采样,根据当前数据集估计数据分布参数,使用该分布产生更多数据等 3)正则化方法: 一般有L1正空桥则与L2正则等 4)Dropout: 正则是通过在代价函数后面加上正则项来防止模型过拟合的。而在神经网络中,有一种方法是通过修改神经网络本身结构来实现的,其名为Dropout

正则化项是如何缓解过拟合的(减少过拟合的方法)

本文编辑:admin

更多文章:


android sdk platform tools(android sdk platform-tools只有最新的怎么更新历史版本)

android sdk platform tools(android sdk platform-tools只有最新的怎么更新历史版本)

本文目录android sdk platform-tools只有最新的怎么更新历史版本android sdk 中platform-tools里的adb应用程序打不开怎么办安装sdk出现Skipping ’Android SDK Tools,

2024年7月22日 01:10

后缀名为js的是什么文件(offlineStrings.js是什么文件)

后缀名为js的是什么文件(offlineStrings.js是什么文件)

本文目录offlineStrings.js是什么文件.js是什么的扩展名.js文件是什么文件文件名后缀为js的是什么东西啊js 如何是什么文件offlineStrings.js是什么文件1、这个文件的后缀名是js,即 javaScript

2024年7月23日 13:38

蒂芙尼的钻石手镯可以回收吗,怎么样?蒂芙尼的香水怎么样

蒂芙尼的钻石手镯可以回收吗,怎么样?蒂芙尼的香水怎么样

本文目录蒂芙尼的钻石手镯可以回收吗,怎么样蒂芙尼的香水怎么样继LV空气马甲后又出LV飞机包,时尚界还有什么设计让你感到迷惑这个蒂芙尼银手镯是不是真的蒂芙尼笑脸项链价格代购差别怎么那么大有哪位大神帮我鉴别一下我买的蒂芙尼笑脸项链的真假蒂芙尼的

2024年6月24日 12:38

电脑数控编程怎么学(数控怎么学)

电脑数控编程怎么学(数控怎么学)

本文目录数控怎么学如何学数控数控编程是怎么学习的怎么学习数控编程如何学好数控编程数控怎么学前期专业知识技能的储备对于零基础的人来说,直接一开始就去学习编程是不友好的,不管是IT编程还是数控编程或者是自动化编程,在编程之前都有一个共同点,了解

2024年7月24日 14:04

utilize的名词(drink与utilize的区别)

utilize的名词(drink与utilize的区别)

本文目录drink与utilize的区别utilizing utilize用法上的区别drink与utilize的区别喝的和维生素。drink,饮料常用释义英VitaminChelpsyourbodyutilizetheironpresen

2024年7月8日 00:58

结构体怎么用sort排序(C语言中结构体数据排序)

结构体怎么用sort排序(C语言中结构体数据排序)

本文目录C语言中结构体数据排序sort函数结构体排序的问题c++ sort 函数能对类或者结构体进行排序吗sort()对结构体排序C语言中结构体数据排序设结构体名为AAA,结构体数组声明为struct AAA a;(N为宏定义常量),身份证

2024年7月22日 22:12

womanizer(《womanizer》 mv什么意思)

womanizer(《womanizer》 mv什么意思)

本文目录《womanizer》 mv什么意思布兰妮womenizer歌词中文意《womanizer》 mv什么意思《womanizer》(好色之徒),MV是音乐电视的意思。MV的提法是近几年开始的,大家感觉“MTV”范畴有些狭窄,因为“音乐

2024年6月29日 18:39

revere(revere是什么牌子)

revere(revere是什么牌子)

本文目录revere是什么牌子revere和respect的区别revere是什么意思revere是什么牌子revere是康宁餐具旗下的金属锅具品牌。revere品牌logo是保罗∙里维尔驰骋战场的画面。精湛的铸造工艺,锐意进取的精神,是r

2024年5月11日 15:54

红旗linux怎么安装(如何安装下载的红旗linux系统)

红旗linux怎么安装(如何安装下载的红旗linux系统)

本文目录如何安装下载的红旗linux系统(红旗6.0)LINUX安装的详细步骤是什么样啊怎样安装红旗Linux 8.0我想安装红旗Linux6.0,已经下载了,但是不知咋安装红旗LINUX操作系统怎么安装请问,红旗Linux7要怎么安装呢如

2024年6月27日 20:59

嵌入式去培训四个月有用吗(嵌入式就业培训 4个月真能找到工作吗)

嵌入式去培训四个月有用吗(嵌入式就业培训 4个月真能找到工作吗)

本文目录嵌入式就业培训 4个月真能找到工作吗培训四个月的嵌入式 真的能找到工作吗达内4个月学习嵌入式靠谱吗嵌入式就业培训 4个月真能找到工作吗看你的基础,嵌入式需要有C语言基础,较强的学习能力,较好的英语水平,4个月也学不到多少东西,也可以

2024年7月1日 19:02

适合新手的java接单(java程序员怎么接私活!)

适合新手的java接单(java程序员怎么接私活!)

本文目录java程序员怎么接私活!什么项目适合JAVA初学者做有没有适合java初学者的小项目,综合性比较强的,web后端,推荐几个,面试用有哪些适合新手练手的Java项目java在哪里接单寻求JAVA简单项目 个人承接嘎嘎!说明!!是我来

2024年7月9日 15:43

酒店service接口(有哪位朋友知道酒店服务的十大敬语和Service的具体含义如题 谢谢了)

酒店service接口(有哪位朋友知道酒店服务的十大敬语和Service的具体含义如题 谢谢了)

本文目录有哪位朋友知道酒店服务的十大敬语和Service的具体含义如题 谢谢了酒店接站服务是什么意思酒店里的Turndown service 指什么controller和service的对应关系酒店外包服务什么意思杭州新侨饭店的酒店服务fu

2024年6月2日 01:36

地方门户源码(谁可以提供“PHP版的163K地方门户源码” 功能要全面一点)

地方门户源码(谁可以提供“PHP版的163K地方门户源码” 功能要全面一点)

本文目录谁可以提供“PHP版的163K地方门户源码” 功能要全面一点网人地方门户系统怎么修改源码修改成我们县城的名字,但是数据库里和asp原文件里都没有啊,求教请问,有好一点的地方门户源码没有,帮忙介绍一下,做网站用的,求地方门户网站源码谁

2024年7月9日 07:27

outputstream类的方法(OutputStream的flush方法什么调用)

outputstream类的方法(OutputStream的flush方法什么调用)

大家好,关于outputstream类的方法很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于OutputStream的flush方法什么调用的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下

2024年8月31日 10:00

格式刷的作用和用法(如何在excel表里面使用格式刷格式刷的作用是什么)

格式刷的作用和用法(如何在excel表里面使用格式刷格式刷的作用是什么)

本文目录如何在excel表里面使用格式刷格式刷的作用是什么格式刷有啥作用格式刷的作用及使用方法如何在excel表里面使用格式刷格式刷的作用是什么格式刷相当与把单元格的格式复制出去,粘贴到另一个单元格.多次使用的话,双击格式刷按钮,就可以连续

2024年7月4日 06:30

os系统主题(为什么升级后不保留原corloros11主题)

os系统主题(为什么升级后不保留原corloros11主题)

本文目录为什么升级后不保留原corloros11主题iQOO7怎么换主题-iQOO7怎么切换经典桌面一加手机3氢OS2.5怎么更换手机主题图标8.1怎么才能像win7那样高仿 mac os 主题os系统为什么换不了主题funtouchos1

2024年7月13日 06:50

checkbox设置不可编辑(复选框显示checkbox不能编辑)

checkbox设置不可编辑(复选框显示checkbox不能编辑)

本文目录复选框显示checkbox不能编辑C# listView中第一列可以设置为CheckBox,怎样使这一列的CheckBox置灰不可编辑jquery easyui中DataGrid中怎么设置checkbox为不可用状态C# 如何使Ch

2024年7月20日 05:31

c语言解释器(c语言python有什么区别)

c语言解释器(c语言python有什么区别)

本文目录c语言python有什么区别C语言是由什么语言编写而成的C语言是不是万能的C语言主要是干什么的学习C语言好不好c语言python有什么区别Python和C语言的区别:1、语言类型:Python是一种基于解释器的语言,解释器会逐行读取

2024年7月14日 15:19

device info(deviceinfohw查不到屏幕)

device info(deviceinfohw查不到屏幕)

本文目录deviceinfohw查不到屏幕tb_deviceInfo是什么意思DeviceInfo在手机中是什么意思deviceinfohw查不到屏幕解决方法:1、首先找到桌面找到服务并点击。2、接着点击择快捷服务后方的更多的选项进入。3、

2024年7月21日 01:34

ios开发岗位职责(服务一个5000万用户的app需要多少成本)

ios开发岗位职责(服务一个5000万用户的app需要多少成本)

本文目录服务一个5000万用户的app需要多少成本研发岗位职责程序员主要工作内容是什么设计研发部门岗位职责制作app需要什么人才服务一个5000万用户的app需要多少成本开发一款App最首要的任务就是需要组建一个项目团队,市场分析、产品定位

2024年6月8日 23:42

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1154
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1151
标签列表

热门搜索