百度
360搜索
搜狗搜索

正则化l1与l2的区别,正则化详解详细介绍

本文目录一览: L1正则化和L2正则化

在这里我们首先需要明白 结构风险最小化 原理:
我们所谓的正则化,就是在原来 Loss Function 的基础上,加了一些正则化项,或者叫做模型复杂度惩罚项。以我们的线性回归为例子。
优化目标(损失函数):
加上L1正则项(lasso回归): 加上L2正则项(Ridge回归): 下面我们需要理解加了正则化项之后,对于目标函数求解的时候,最终解有什么变化。
我们从图像角度来理解:
假设X是一个二维样本,那么要求解的参数也 也是二维的。下图叫做原函数曲线等高线图。目标函数在图中的等高线(同颜色)每一组 , ? 带入值都想同,这里代表着多组解。
下面看L1和L2正则项加入后的函数图像:
对比两幅图我们可以看出来:
下面看这几步:
L2正则化(岭回归)的证明类似。不过结论是L1正则化比L2正则化更加容易获得稀疏解。
我们总结一下,正则化之所以能够降低的原因在于,正则化是结构风险最小化的一种策略实现。
给 loss function 加上正则项,新得到的目标函数 h = f+normal,需要在 f 和 normal 中做一个 trade-off。如果还是像原来只优化 f,那么normal就比较大, h 就不能得到最优解。因此可以看出加正则项可以让解更加简单,符合奥卡姆剃刀理论;同时也符合在偏差和方差(方差表示模型的复杂度)分析中,通过降低模型复杂度,得到更小的泛化误差,降低过拟合。
看一下L1正则化和L2正则化的区别:
L1正则化就是在 loss function 后面加上L1范数,这样比较容易求到稀疏解。L2 正则化是在 LF 后面加 L2范数 平方,相比L1正则来说,得到的解比较平滑(不是稀疏),但是同样能够保证解中接近于0(不等0)的维度比较多,降低模型的复杂度。

L1和L2损失函数与正则的区别

作为损失函数:
L1 也被称为最小绝对值偏差(LAD),最小绝对值误差(LAE)。它是使目标值与预测值的绝对值总和最小化

L2范数损失函数,也被称为最小平方误差(LSE)。它是目标值和预测值平方差的最小化。

作为损失函数 L1和L2的区别如下:

作为正则化:
在机器学习中,正规化是防止过拟合的一种重要技巧。从数学上讲,它会增加一个正则项,防止系数拟合得过好以至于过拟合。L1与L2的区别只在于,L2是权重的平方和,而L1就是权重的和。如下:

他们的性质和区别:

内置特征选择是L1范数被经常提及的有用的性质,而L2范数并不具备。这是L1范数的自然结果,它趋向于产生稀疏的系数(在后面会解释)。假设模型有100个系数,但是仅仅只有其中的10个是非零的,这实际上是说“其余的90个系数在预测目标值时都是无用的”。L2范数产生非稀疏的系数,因此它不具备这个性质。
??稀疏性指的是一个矩阵(或向量)中只有少数的项是非零的。L1范数具备性质:产生许多0或非常小的系数和少量大的系数。
??计算效率。L1范数没有一个解析解,但是L2范数有。这就允许L2范数在计算上能高效地计算。然而,L1范数的解具备稀疏性,这就允许它可以使用稀疏算法,以使得计算更加高效。

l1正则和l2正则的区别

L1,L2正则都可以看成是 条件限制,即
∥w∥≤c
∥w∥2≤c
当w为2维向量时,可以看到,它们限定的取值范围如下图:
所以它们对模型的限定不同
而对于一般问题来说,L1 正则往往取到正方形的顶点,即会有很多分量为0,具有稀疏性,有特征选择的作用

正则化项L1和L2的直观理解及L1不可导处理

正则化(Regularization)

机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作 ?1-norm 和 ?2-norm ,中文称作 L1正则化 和 L2正则化 ,或者 L1范数 和 L2范数 。

L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)。下图是Python中Lasso回归的损失函数,式中加号后面一项α||w||1即为L1正则化项。

下图是Python中Ridge回归的损失函数,式中加号后面一项α||w||22即为L2正则化项。

一般回归分析中回归w表示特征的系数,从上式可以看到正则化项是对系数做了处理(限制)。 L1正则化和L2正则化的说明如下:

L1正则化是指权值向量w中各个元素的 绝对值之和 ,通常表示为||w||1

L2正则化是指权值向量w中各个元素的 平方和然后再求平方根 (可以看到Ridge回归的L2正则化项有平方符号),通常表示为||w||2

一般都会在正则化项之前添加一个系数,Python中用α表示,一些文章也用λ表示。这个系数需要用户指定。

那添加L1和L2正则化有什么用? 下面是L1正则化和L2正则化的作用 ,这些表述可以在很多文章中找到。

L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择

L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合

稀疏模型与特征选择

上面提到L1正则化有助于生成一个稀疏权值矩阵,进而可以用于特征选择。为什么要生成一个稀疏矩阵?

稀疏矩阵指的是很多元素为0,只有少数元素是非零值的矩阵,即得到的线性回归模型的大部分系数都是0.

通常机器学习中特征数量很多,例如文本处理时,如果将一个词组(term)作为一个特征,那么特征数量会达到上万个(bigram)。在预测或分类时,那么多特征显然难以选择,但是如果代入这些特征得到的模型是一个稀疏模型,表示只有少数特征对这个模型有贡献,绝大部分特征是没有贡献的,或者贡献微小(因为它们前面的系数是0或者是很小的值,即使去掉对模型也没有什么影响),此时我们就可以只关注系数是非零值的特征。这就是稀疏模型与特征选择的关系。

L1和L2正则化的直观理解

这部分内容将解释 为什么L1正则化可以产生稀疏模型(L1是怎么让系数等于零的) ,以及 为什么L2正则化可以防止过拟合 。

L1正则化和特征选择

假设有如下带L1正则化的损失函数:

J=J0+α∑w|w|(1)

其中J0是原始的损失函数,加号后面的一项是L1正则化项,α是正则化系数。注意到L1正则化是权值的 绝对值之和 ,J是带有绝对值符号的函数,因此J是不完全可微的。机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。当我们在原始损失函数J0后添加L1正则化项时,相当于对J0做了一个约束。令L=α∑w|w|,则J=J0+L,此时我们的任务变成 在L约束下求出J0取最小值的解 。考虑二维的情况,即只有两个权值w1和w2,此时L=|w1|+|w2|对于梯度下降法,求解J0的过程可以画出等值线,同时L1正则化的函数L也可以在w1w2的二维平面上画出来。如下图:

图1? L1正则化

图中等值线是J0的等值线,黑色方形是L函数的图形。在图中,当J0等值线与L图形首次相交的地方就是最优解。上图中J0与L在L的一个顶点处相交,这个顶点就是最优解。注意到这个顶点的值是(w1,w2)=(0,w)。可以直观想象,因为L函数有很多『突出的角』(二维情况下四个,多维情况下更多),J0与这些角接触的机率会远大于与L其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。

而正则化前面的系数α,可以控制L图形的大小。α越小,L的图形越大(上图中的黑色方框);α越大,L的图形就越小,可以小到黑色方框只超出原点范围一点点,这是最优点的值(w1,w2)=(0,w)中的w可以取到很小的值。

类似,假设有如下带L2正则化的损失函数:

J=J0+α∑ww2(2)

同样可以画出他们在二维平面上的图形,如下:

图2? L2正则化

二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此J0与L相交时使得w1或w2等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。

L2正则化和过拟合

拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』。

那为什么L2正则化可以获得值很小的参数?

以线性回归中的梯度下降法为例。假设要求的参数为θ,hθ(x)是我们的假设函数,那么线性回归的代价函数如下:

J(θ)=12m∑i=1m(hθ(x(i))?y(i))(3)

那么在梯度下降法中,最终用于迭代计算参数θ的迭代式为:

θj:=θj?α1m∑i=1m(hθ(x(i))?y(i))x(i)j(4)

其中α是learning rate. 上式是没有添加L2正则化项的迭代公式,如果在原始代价函数之后添加L2正则化,则迭代公式会变成下面的样子:

θj:=θj(1?αλm)?α1m∑i=1m(hθ(x(i))?y(i))x(i)j(5)

其中 λ就是正则化参数 。从上式可以看到,与未添加L2正则化的迭代公式相比,每一次迭代,θj都要先乘以一个小于1的因子,从而使得θj不断减小,因此总得来看,θ是不断减小的。

最开始也提到L1正则化一定程度上也可以防止过拟合。之前做了解释,当L1的正则化系数很小时,得到的最优解会很小,可以达到和L2正则化类似的效果。

正则化参数的选择

L1正则化参数

通常越大的λ可以让代价函数在参数为0时取到最小值。下面是一个简单的例子,这个例子来自 Quora上的问答 。为了方便叙述,一些符号跟这篇帖子的符号保持一致。

假设有如下带L1正则化项的代价函数:

F(x)=f(x)+λ||x||1

其中x是要估计的参数,相当于上文中提到的w以及θ. 注意到L1正则化在某些位置是不可导的,当λ足够大时可以使得F(x)在x=0时取到最小值。如下图:

图3 L1正则化参数的选择

分别取λ=0.5和λ=2,可以看到越大的λ越容易使F(x)在x=0时取到最小值。

L2正则化参数

从公式5可以看到,λ越大,θj衰减得越快。另一个理解可以参考图2,λ越大,L2圆的半径越小,最后求得代价函数最值时各参数也会变得很小。

Reference

过拟合的解释:

https://hit-scir.gitbooks.io/neural-networks-and-deep-learning-zh_cn/content/chap3/c3s5ss2.html

正则化的解释:

https://hit-scir.gitbooks.io/neural-networks-and-deep-learning-zh_cn/content/chap3/c3s5ss1.html

正则化的解释:

http://blog.csdn.net/u012162613/article/details/44261657

正则化的数学解释(一些图来源于这里):

http://blog.csdn.net/zouxy09/article/details/24971995

原文参考:blog.csdn.net/jinping_shi/article/details/52433975

https://www.zhihu.com/question/38426074

L0, L1, L2 正则化

需要正则化的原因:

监督机器学习问题无非就是“minimize your error while regularizing your parameters”,也就是在规则化参数的同时最小化误差。最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数是防止我们的模型过分拟合我们的训练数据。参数太多,会导致我们的模型复杂度上升,容易过拟合,也就是我们的训练误差会很小。但训练误差小并不是我们的最终目标,我们的目标是希望模型的测试误差小,也就是能准确的预测新的样本。所以,我们需要保证模型“简单”的基础上最小化训练误差,这样得到的参数才具有好的泛化性能(也就是测试误差也小),而模型“简单”就是通过规则函数来实现的。

同时, 规则化也符合奥卡姆剃刀(Occam's razor)原理。这名字好霸气,razor!不过它的思想很平易近人:在所有可能选择的模型中,我们应该选择能够很好地解释已知数据并且十分简单的模型

一般来说,监督学习可以看做最小化上面的目标函数.??其中,第一项L(yi,f(xi;w)) 衡量我们的模型(分类或者回归)对第i个样本的预测值f(xi;w)和真实的标签yi之前的误差。因为我们的模型是要拟合我们的训练样本的嘛,所以我们要求这一项最小,也就是要求我们的模型尽量的拟合我们的训练数据。但正如上面说言,我们不仅要保证训练误差最小,我们更希望我们的模型测试误差小,所以我们需要加上第二项,也就是对参数w的规则化函数Ω(w)去约束我们的模型尽量的简单.

机器学习的大部分带参模型都和上面的这个公式不但形似,而且神似。是的,其实大部分无非就是变换这两项而已。对于第一项Loss函数,如果是Square loss,那就是最小二乘了;如果是Hinge Loss,那就是著名的SVM了;如果是exp-Loss,那就是牛逼的 Boosting了;如果是log-Loss,那就是Logistic Regression了;还有等等。不同的loss函数,具有不同的拟合特性,这个也得就具体问题具体分析的

规则化函数Ω(w)也有很多种选择,一般是模型复杂度的单调递增函数,模型越复杂,规则化值就越大。比如,规则化项可以是模型参数向量的范数。然而,不同的选择对参数w的约束不同,取得的效果也不同,但我们在论文中常见的都聚集在:零范数、一范数、二范数、迹范数、Frobenius范数和核范数等等。

L0范数与L1范数:

L0范数是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。这太直观了,太露骨了吧,换句话说,让参数W是稀疏的。?L1范数是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)

为什么不用L0,而要用L1呢?

个人理解一是因为L0范数很难优化求解(NP难问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解

一句话总结:

L1范数和L0范数可以实现稀疏,L1因具有比L0更好的优化求解特性而被广泛应用

参数稀疏的好处:

1. 特征选择:?一个关键原因在于它能实现特征的自动选择。一般来说,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确yi的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0

2. 可解释性:另一个青睐于稀疏的理由是,模型更容易解释。例如患某种病的概率是y,然后我们收集到的数据x是1000维的,也就是我们需要寻找这1000种因素到底是怎么影响患上这种病的概率的。假设我们这个是个回归模型:y=w1*x1+w2*x2+…+w1000*x1000+b(当然了,为了让y限定在[0,1]的范围,一般还得加个Logistic函数)。通过学习,如果最后学习到的w*就只有很少的非零元素,例如只有5个非零的wi,那么我们就有理由相信,这些对应的特征在患病分析上面提供的信息是巨大的,决策性的。也就是说,患不患这种病只和这5个因素有关,那医生就好分析多了。但如果1000个wi都非0,医生面对这1000种因素,累觉不爱。

L2范数:

?除了L1范数,还有一种更受宠幸的规则化范数是L2范数: ||W||2。在回归里面,有人把它的回归叫“岭回归”(Ridge Regression),有人也叫它“权值衰减weight decay”。这用的很多吧,因为它的强大功效是改善机器学习里面一个非常重要的问题:过拟合。至于过拟合是什么,上面也解释了,就是模型训练时候的误差很小,但在测试的时候误差很大,也就是我们的模型复杂到可以拟合到我们的所有训练样本了,但在实际预测新的样本的时候,糟糕的一塌糊涂。

L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的规则项||W||2最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,这里是有很大的区别的哦。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。为什么越小的参数说明模型越简单?我也不懂,我的理解是:限制了参数很小,实际上就限制了多项式某些分量的影响很小(看上面线性回归的模型的那个拟合的图),这样就相当于减少参数个数。

L1和L2的区别:

一句话总结就是:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已

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正则化的学习方法就是一种嵌入式特征选择方法,其特征选择过程和学习器训练过程融为一体,同时完成。

正则项浅析

知识预备:范数 http://blog.csdn.net/shijing_0214/article/details/51757564
我们经常会听到正则项这个概念,通过查阅资料并且结合自己的理解对正则项做了一个简单的总结,首先,从问题出发: (1)正则项存在的意义是什么,为什么要使用正则项?正则项是如何防止过拟合的? (2)有哪几种正则项,如何表示,它们的相同点和不同点是什么? (3)不同正则项的使用场景是什么,如何选取正则项呢? 下面就来一一的进行分析吧~~~~
先引入问题 : 就拿斯坦福机器学习课程的例子来说,通过房子的面积来预测房价,建立回归方程来拟合样本数据

阅读更多 >>>  菜鸟教程正则表达式,菜鸟教程正则表达式在线测试

(一)为什么要使用正则项? 其实正则项是对参数的控制。那么为什么要控制参数呢,控制参数有什么好处呢? (1)实现参数的稀疏,这样可以简化模型,避免过拟合。在一个模型中重要的特征并不是很多,如果考虑所有的特征都是有作用的,那么就会对训练集进行充分的拟合,导致在测试集的表现并不是很好,所以我们需要稀疏参数,简化模型。 (2)尽可能保证参数小一些,这又是为啥呢?因为越是复杂的模型,它会对所有的样本点进行拟合,如果在这里包含异常的样本,就会在小区间内产生很大的波动,不同于平均水平的高点或者低点,这样的话,会导致其导数很大,我们知道在多项式导数中,只有参数非常大的时候,才会产生较大的导数,所以模型越复杂,参数值也就越大。为了避免这种过度的拟合,需要控制参数值的大小。
(二)正则项的分类 正则项有三种:L0、L1、L2
L0正则化的值是模型参数中非零参数的个数。 L1正则化表示各个参数绝对值之和。 L2正则化标识各个参数的平方的和的开方值。
1、L0正则化 保证参数稀疏化来防止过拟合,可以用非零参数,来进行特征选择。但是L0正则化不好求,因此采用L1正则化。L1正则化是L0正则化的最优凸近似,比L0容易求解,并且可以实现稀疏的效果。
2、L1正则化 L1正则化也叫lasso,它往往是替代L0正则化来防止过拟合的。为啥用L1范数,因为L1范数就是各个参数的绝对值相加,我们已知,参数的值的大小和模型的复杂度是成正比的,因此复杂模型,L1范数就会大,导致损失函数大。下面定量的分析: 在原始的代价函数后面加上一个L1正则化项,即所有权重w的绝对值的和,乘以λ/n。如下:
?同样计算导数得:
上式中sgn(w)表示w的符号。那么权重w的更新规则为:?
现在来观察正则求导项,可知当w为正时,更新后的w变小;当w为负时,更新后的w变大。 因此它的效果就是让w往0靠,使网络中的权重尽可能为0,也就相当于减小了网络复杂度,防止过拟合。 另外,上面没有提到一个问题,当w为0时怎么办?当w等于0时,|w|是不可导的,所以我们只能按照原始的未经正则化的方法去更新w,这就相当于去掉η λ sgn(w)/n这一项,所以我们可以规定sgn(0)=0,这样就把w=0的情况也统一进来了。
3、L2正则化 L2正则化也是防止过拟合的,原因和L1一样一样的,就是形式不同。L2范数是各参数的平方和再求平方根。对于L2的每个元素都很小,但是不会为0,只是接近0,参数越小说明模型越简单,也就越不容易产生过拟合。L2正则化也叫做“岭回归”。
来让我们看看具体的例子,对于房屋价格预测我们可能有上百种特征,与刚刚所讲的多项式例子不同,我们并不知道 哪些是高阶多项式的项。所以,如果我们有一百个特征,我们并不知道如何选择关联度更好的参数,如何缩小参数的数目等等。因此在正则化里,我们要做的事情,就是把减小我们的代价函数(例子中是线性回归的代价函数)所有的参数值,因为我们并不知道是哪一个或哪几个要去缩小。因此,我们需要修改代价函数,在这后面添加一项,就像我们在方括号里的这项。当我们添加一个额外的正则化项的时候,我们收缩了每个参数。
为什么加了一项就让参数尽量小呢,因为只要你想让J最小,那么θ肯定尽可能的去小。
注意:这里我们没有去惩罚 θ0,实践中只会有较小的差异
λ 要做的就是控制惩罚项与均方差之间的平衡关系。 λ越大说明,参数被打压得越厉害,θ值也就越小
现在进行定量的分析:
L2正则化就是在代价函数后面再加上一个正则化项:
C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。另外还有一个系数1/2,1/2经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整。L2正则化项是怎么避免overfitting的呢?我们推导一下看看,先求导:
在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为 1-ηλ/n ,因为η、λ、n都是正的,在样本量充足的时候,1-ηλ/n小于1,它的效果是减小w,这也就是权重衰减的由来。当然考虑到后面的导数项,w最终的值可能增大也可能减小。
(三)lasso回归和ridge回归 下面我们来看两个对比图 (1)lasso 注意到L1正则化是权值的绝对值之和,J是带有绝对值符号的函数,因此J是不完全可微的。机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。考虑二维的情况,即只有两个权值w1和w2,此时L=|w1|+|w2|,对于梯度下降法,求解J的过程可以画出等值线,同时L1正则化的函数L也可以在w1w2的二维平面上画出来。如下图:
在图中,当J等值线与L首次相交的地方就是最优解。上图中J与L在L的一个顶点处相交,这个顶点就是最优解。注意到这个顶点的值是(w1,w2)=(0,w)。可以直观想象,因为L函数有很多突出的角(二维情况下四个,多维情况下更多),J与这些角接触的机率会远大于与L其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。
(2)ridge 同理,假设有如下带L2正则化的损失函数,同样可以画出他们在二维平面上的图形,如下:
图2 L2正则化二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此J与L相交时使得w1或w2等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。
总结 :L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。在所有特征中只有少数特征起重要作用的情况下,选择Lasso比较合适,因为它能自动选择特征。而如果所有特征中,大部分特征都能起作用,而且起的作用很平均,那么使用Ridge也许更合适。
参考文章: http://blog.csdn.net/vividonly/article/details/50723852 http://blog.sina.com.cn/s/blog_8267db980102wryn.html http://www.mamicode.com/info-detail-517504.html http://www.2cto.com/kf/201609/545625.html http://blog.csdn.net/zouxy09/article/details/24971995/

正则化详解

机器学习模型需要拥有很好地泛化能力来适应训练集中没有出现过的新样本。在机器学习应用时,我们经常会遇到过度拟合(over-fitting)的问题,可能会导致训练出来的模型效果很差。接下来,我们将谈论的正则化(regularization)技术,它可以改善或者减少过度拟合问题,以使学习算法更好实现。
机器学习中一个重要的话题便是模型的泛化能力,泛化能力强的模型才是好模型,对于训练好的模型,若在训练集表现差,不必说在测试集表现同样会很差,这可能是欠拟合(under fitting)导致;若模型在训练集表现非常好,却在测试集上差强人意,则这便是过拟合(over fitting)导致的,过拟合与欠拟合也可以用 Bias 与 Variance 的角度来解释,欠拟合会导致高 Bias ,过拟合会导致高 Variance ,所以模型需要在 Bias 与 Variance 之间做出一个权衡。
使用简单的模型去拟合复杂数据时,会导致模型很难拟合数据的真实分布,这时模型便欠拟合了,或者说有很大的 Bias, Bias 即为模型的期望输出与其真实输出之间的差异 ;有时为了得到比较精确的模型而过度拟合训练数据,或者模型复杂度过高时,可能连训练数据的噪音也拟合了,导致模型在训练集上效果非常好,但泛化性能却很差,这时模型便过拟合了,或者说有很大的 Variance,这时模型在不同训练集上得到的模型波动比较大, Variance 刻画了不同训练集得到的模型的输出与这些模型期望输出的差异 。
举例:

Bias反映的是模型的期望与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。
我们通过公式来直观了解一下,文字没有数学符号解释的清楚:
用图形解释方差与偏差:

举一个例子,一次打靶实验,目标是为了打到10环,但是实际上只打到了7环,那么这里面的Error就是3。具体分析打到7环的原因,可能有两方面:一是瞄准出了问题,比如实际上射击瞄准的是9环而不是10环;二是枪本身的稳定性有问题,虽然瞄准的是9环,但是只打到了7环。那么在上面一次射击实验中,Bias就是1,反应的是模型期望与真实目标的差距,而在这次试验中,由于Variance所带来的误差就是2,即虽然瞄准的是9环,但由于本身模型缺乏稳定性,造成了实际结果与模型期望之间的差距。
简单的模型会有一个较大的偏差和较小的方差,复杂的模型偏差较小方差较大。

解决欠拟合的方法: 1、增加新特征,可以考虑加入进特征组合、高次特征,来增大假设空间; 2、尝试非线性模型,比如核SVM 、决策树、DNN等模型; 3、如果有正则项可以较小正则项参数; 4、Boosting ,Boosting 往往会有较小的 Bias,比如 Gradient Boosting 等. 解决过拟合的方法: 1、交叉检验,通过交叉检验得到较优的模型参数; 2、特征选择,减少特征数或使用较少的特征组合,对于按区间离散化的特征,增大划分的区间; 3、正则化,常用的有 L1、L2 正则。而且 L1正则还可以自动进行特征选择; 4、如果有正则项则可以考虑增大正则项参数; 5、增加训练数据可以有限的避免过拟合; 6、Bagging ,将多个弱学习器Bagging 一下效果会好很多,比如随机森林等. DNN中常见的方法: 1、早停策略。本质上是交叉验证策略,选择合适的训练次数,避免训练的网络过度拟合训练数据。 2、集成学习策略。而DNN可以用Bagging的思路来正则化。首先我们要对原始的m个训练样本进行有放回随机采样,构建N组m个样本的数据集,然后分别用这N组数据集去训练我们的DNN。即采用我们的前向传播算法和反向传播算法得到N个DNN模型的W,b参数组合,最后对N个DNN模型的输出用加权平均法或者投票法决定最终输出。不过用集成学习Bagging的方法有一个问题,就是我们的DNN模型本来就比较复杂,参数很多。现在又变成了N个DNN模型,这样参数又增加了N倍,从而导致训练这样的网络要花更加多的时间和空间。因此一般N的个数不能太多,比如5-10个就可以了。 3、DropOut策略。所谓的Dropout指的是在用前向传播算法和反向传播算法训练DNN模型时,一批数据迭代时,随机的从全连接DNN网络中去掉一部分隐藏层的神经元。 在对训练集中的一批数据进行训练时,我们随机去掉一部分隐藏层的神经元,并用去掉隐藏层的神经元的网络来拟合我们的一批训练数据。使用基于dropout的正则化比基于bagging的正则化简单,这显而易见,当然天下没有免费的午餐,由于dropout会将原始数据分批迭代,因此原始数据集最好较大,否则模型可能会欠拟合。
正则化的目的是限制参数过多或者过大,避免模型更加复杂。例如,使用多项式模型,如果使用 10 阶多项式,模型可能过于复杂,容易发生过拟合。因此需要在目标函数添加一些额外的惩罚项,即正则项。添加惩罚项可看成是对损失函数中的某些参数做一些限制,根据惩罚项的不同可分为:L0范数惩罚、L1范数惩罚(参数稀疏性惩罚)、L2范数惩罚(权重衰减惩罚)。 L0范数惩罚:为了防止过拟合,我们可以将其高阶部分的权重 w 限制为 0,这样,就相当于从高阶的形式转换为低阶。为了达到这一目的,最直观的方法就是限制 w 的个数,但是这类条件属于 NP-hard 问题,求解非常困难。因此机器学习中经常使用L1、L2正则化。L1正则化项也称为Lasso,L2正则化参数也称为Ridge。 L1范数:权值向量w中各个元素的绝对值之和,L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择。 L2范数:权值向量w中各个元素的平方和然后再求平方根,L2正则化可以防止模型过拟合;一定程度上,L1也可以防止过拟合。
上面我们得到了带约束的优化问题A2,在实际的求解中,带约束的优化问题往往较难求解,大多都是转化为无约束优化问题去求解。接下来自然而然的我们采用拉格朗日乘子法将约束转化到目标函数上去,也就将约束优化问题A2转化为一个无约束的优化问题。那么这个无约束优化问题的形式是什么样的呢?这里直接先把最终的结论摆上来:
稀疏性对很多机器学习建模问题来说是非常重要的,也是非常好的一个性质。既然有很多系数等于0了,那么说明与之对应的输入是没有用了,这些输入就可以舍去,相当于起到了 降维和feature selection的作用。特殊要说明的是用L1正则化来降维和PCA降维是不同的,可以理解为L1正则化是用了数据的标签来做的,而PCA无需数据的标签。所以L1正则化实际上是带有监督学习性质的降维方法。
拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是抗扰动能力强。
λ可以控制L图形的大小,λ越小,L的图形越大(上图中的黑色方框和圆);λ越大,L的图形越小,最后求得代价函数最值时各参数也会变得很小。从另一方面看,由公式5可以看到,λ越大,θj衰减得越快。
机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系? 机器学习防止欠拟合、过拟合方法
【学界】有约束转无约束,拉格朗日松弛观点下的L1正则化稀疏性探讨
斯坦福机器学习课程 第三周 (4)正则化:解决过拟合问题
拉格朗日乘子法如何理解?
机器学习中正则化项L1和L2的直观理解

关于L1正则化和L2正则化说法错误的是()。

关于L1正则化和L2正则化说法错误的是()。

A.L1正则化的功能是使权重稀疏

B.L2正则化的功能是防止过拟合

C.L1正则化比L2正则化使用更广泛

D.L1正则化无法有效减低数据存储量

正确答案:L1正则化比L2正则化使用更广泛

网站数据信息

"正则化l1与l2的区别,正则化详解"浏览人数已经达到17次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:正则化l1与l2的区别,正则化详解的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!