精华内容
下载资源
问答
  • l2正则化系数过高导致梯度消失
    2020-04-05 17:29:22

     

     lamda = 3  # 正则化惩罚系数
     w_grad=(np.dot(self.input.T, grad) + (self.lamda * self.w))/self.batch_size

    这里把正则化系数设置为3

    如果采用4层relu隐藏层的神经网络,将会直接导致梯度消失

    1%| | 2/200 [00:17<28:09, 8.53s/it]loss为0.23035251606429571
    准确率为0.09375
    梯度均值为-1.452481815897801e-11
    2%|▏ | 3/200 [00:26<28:26, 8.66s/it]loss为0.23077135760414888
    准确率为0.1015625
    梯度均值为1.422842658558051e-14
    2%|▏ | 4/200 [00:34<27:49, 8.52s/it]loss为0.23046438461223917
    准确率为0.10546875
    梯度均值为-8.111952281250118e-18
    2%|▎ | 5/200 [00:41<26:23, 8.12s/it]loss为0.2301827048850293
    准确率为0.12109375
    梯度均值为-6.3688796773963155e-21
    3%|▎ | 6/200 [00:49<25:47, 7.98s/it]loss为0.23023365984639205
    准确率为0.125
    梯度均值为-1.2646968613522145e-23
    4%|▎ | 7/200 [00:56<25:00, 7.77s/it]loss为0.23074116618703105
    准确率为0.08984375
    梯度均值为7.443049613238094e-26
    4%|▍ | 8/200 [01:03<24:34, 7.68s/it]loss为0.23025406010680918
    准确率为0.11328125
    梯度均值为5.544761930793375e-29
    4%|▍ | 9/200 [01:11<24:14, 7.62s/it]loss为0.23057808569519062
    准确率为0.08984375
    梯度均值为-2.505663387779514e-30
    5%|▌ | 10/200 [01:19<24:35, 7.76s/it]loss为0.23014966000613057
    准确率为0.10546875
    梯度均值为-1.588181439704063e-31

    梯度均值会越来越低,从e-5一直下降到e-31

    而把lamda改为1后,将会缓解这个情况

    0%| | 0/200 [00:00<?, ?it/s]loss为0.2284026479024262
    准确率为0.13671875
    梯度均值为4.6649560959205905e-05
    0%| | 1/200 [00:07<24:21, 7.34s/it]loss为0.1554314625472287
    准确率为0.4609375
    梯度均值为-0.0002773582179562886
    1%| | 2/200 [00:14<23:59, 7.27s/it]loss为0.18376994316806905
    准确率为0.31640625
    梯度均值为8.423075286773206e-05
    2%|▏ | 3/200 [00:21<23:30, 7.16s/it]loss为0.12577617122257392
    准确率为0.53515625
    梯度均值为0.00047661977909027993
    2%|▏ | 4/200 [00:28<23:09, 7.09s/it]loss为0.12035617394653744
    准确率为0.515625
    梯度均值为1.5361318373022455e-05
    2%|▎ | 5/200 [00:35<22:52, 7.04s/it]loss为0.11590587695113908
    准确率为0.5546875
    梯度均值为4.901066522064529e-05

    lamda值是提升模型泛化能力的,但是不能设置过高,否则也会导致梯度消失,也不能设置过低,将会导致梯度爆炸

    更多相关内容
  • L1正则化和L2正则化

    2019-09-25 16:58:54
    L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。 1、L1正则化和L2正则化定义 L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为 L2正则化是指权值...

    L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。

     

    1、L1正则化和L2正则化定义

    • L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为 
    • L2正则化是指权值向量w中各个元素的平方和然后再求平方根,通常表示为

     

    2、L1正则化和L2正则化的作用

    • L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择
    • L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合

     

    3、稀疏模型与特征选择

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

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

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

     

    4、为什么L1正则化可以产生稀疏模型(L1是怎么让系数等于零的)

    当L曲线(正则化项曲线)和J0曲线(原损失函数曲线)相交的时候,总损失函数J=0,损失最小,也就是在L约束下求J0的最优解。对于L1正则化项来说,如图所示,J0最容易和L的顶点相交,此时,某些权重为0,可以达到稀疏化的目的,也就是特征选择。

     

    5、为什么L2可以防止过拟合?

    我的另一篇博客很详细:https://blog.csdn.net/qq_32172681/article/details/101372318

     

    6、正则化系数选择

    L1正则化参数:通常越大的λ可以让代价函数在参数为0时取到最小值。

    L2正则化参数:λ越大,θj衰减得越快
     

     

    展开全文
  • 深度学习-L2正则化

    2019-03-11 14:22:48
    神经网络可能会存在过拟合,那么建议你首先对模型进行正则化处理。虽然使用更多的训练数据是肯定可以解决过拟合问题的,但问题是我们无法获得更多训练数据,...我们以逻辑回归为例来实现L2正则化,求成本函数J的最小...

    神经网络可能会存在过拟合,那么建议你首先对模型进行正则化处理。虽然使用更多的训练数据是肯定可以解决过拟合问题的,但问题是我们无法获得更多训练数据,即使能获取也太贵了。所以正则化是首选方案。

    正则化方法有很多。L2正则化就是其中一种常见的方法。它的实现主要分为两步。第一步,就是在成本函数后面加点“尾巴”;第二步就是在计算偏导数的时候加点“尾巴”。我们以逻辑回归为例来实现L2正则化,求成本函数J的最小值,
    J = 1 m ∑ i = 0 m L ( y ′ i , y i ) J=\frac{1}{m}\sum_{i=0}^mL(y&#x27;^i,y^i) J=m1i=0mL(yi,yi)

    下式是加了L2正则化尾巴的成本函数。
    J = 1 m ∑ i = 0 m L ( y ′ i , y i ) + λ 2 m ∣ ∣ w ∣ ∣ 2 J=\frac{1}{m}\sum_{i=0}^mL(y&#x27;^i,y^i)+\frac{\lambda}{2m}||w||^2 J=m1i=0mL(yi,yi)+2mλw2

    它是我们定义的成本函数,参数包含一些训练数据和不同数据中个体预测的损失,w和b是逻辑回归的两个参数,w是一个多维度参数矢量,b是一个实数,λ是一个超参数,被称为正则化参数,m是样本数量。

    上面所说的是单神经元网络的正则化,多神经元网络的正则化也是类似的。
    J = 1 m ∑ i = 0 m L ( y ′ i , y i ) + λ 2 m ∑ l = 0 L ∣ ∣ w ∣ ∣ 2 J=\frac{1}{m}\sum_{i=0}^mL(y&#x27;^i,y^i)+\frac{\lambda}{2m}\sum_{l=0}^L||w||^2 J=m1i=0mL(yi,yi)+2mλl=0Lw2

    与单神经元网络不同的是多了一个累加操作,就是把每层的结果再累加起来。通俗来说就是把神经元网络每层的每个权重的平方再统统累加起来(单神经元网络只有一层)。这里的W已经从一个向量变成了矩阵,但本质是没有变的,还是简单地将所有元素的平方累加起来,即所有元素的平方和。

    在成本函数后面加了“尾巴”后,第二步就是在计算偏导数的时候加“尾巴”了。如下所示。
    d W l = 1 m d Z l ∗ d A l − 1 . T + λ m W l dW^l=\frac{1}{m}dZ^l * dA^{l-1}.T+\frac{\lambda}{m}W^l dWl=m1dZldAl1.T+mλWl

    W l = W l − α ∗ d W l = ( 1 − α λ m ) W l − 1 m d Z l ∗ d A l − 1 . T W^l=W^l-\alpha *dW^l=(1-\frac{\alpha\lambda}{m})W^l -\frac{1}{m}dZ^l * dA^{l-1}.T Wl=WlαdWl=(1mαλ)Wlm1dZldAl1.T

    加了尾巴之后,实际上,相当于我们给矩阵W乘以(1-a λ/m)倍的权重,矩阵W减去α λ/m倍的它,也就是用这个系数(1-a λ/m)乘以矩阵W,该系数小于1,因此L2范数正则化也被称为“权重衰减。

    那么为什么L2正则化有利于防止过拟合?
    直观上理解就是,如果正则化λ设置得足够大,权重矩阵W被设置为接近于0的值,直观理解就是把多隐藏单元的权重设为0,于是基本上消除了这些隐藏单元的许多影响。如果是这种情况,这个被大大简化了的神经网络会变成一个很小的网络,小到如同一个逻辑回归单元,这个神经网络就变成了很简单的网络了,所以就避免了过拟合,当然有时候反而会导致了欠拟合。

    上面说权重为0后就变成了简单的神经网络,这只是便于大家理解所说的极端的话。其它的神经元还是起作用的。如果不起作用,那我们为什么要用大型神经网络呢,还不如直接用个小点的神经网络。
    另外还有一点需要说明一下。上面我们只对参数w做了衰减。那为什么不对b也作衰减呢。因为神经网络中w的数量很多,而b一个神经元只有一个,数量很少。所以我们一般懒得去衰减它,因为影响力太小。

    展开全文
  • L1正则化和L2正则化讲解

    千次阅读 2020-10-16 21:29:10
    L1正则化和L2正则化讲解   在机器学习实践过程中,训练模型的时候往往会出现过拟合现象,为了减小或者避免在训练中出现过拟合现象,通常在原始的损失函数之后附加上正则项,通常使用的正则项有两种:L1正则化和L2...

    L1正则化和L2正则化讲解

      在机器学习实践过程中,训练模型的时候往往会出现过拟合现象,为了减小或者避免在训练中出现过拟合现象,通常在原始的损失函数之后附加上正则项,通常使用的正则项有两种:L1正则化L2正则化

      L1正则化L2正则化都可以看做是损失函数的惩罚项,所谓惩罚项是指对损失函数中的一些参数进行限制,让参数在某一范围内进行取值。L1正则化的模型叫做LASSO回归,L2正则化的模型叫做岭回归

    • LASSO回归公式
      m i n 1 2 m Σ i = 1 m ( f ( x ) − y ( i ) ) 2 + λ ∣ ∣ w ∣ ∣ 1 min\frac{1}{2m}\Sigma_{i=1}^{m}\left(f(x) - y^{(i)}\right)^{2}+\lambda||w||_{1} min2m1Σi=1m(f(x)y(i))2+λw1

    • 岭回归公式
      m i n 1 2 m Σ i = 1 m ( f ( x ) − y ( i ) ) 2 + λ ∣ ∣ w ∣ ∣ 2 2 min\frac{1}{2m}\Sigma_{i=1}^{m}\left(f(x) - y^{(i)}\right)^{2}+\lambda||w||_{2}^{2} min2m1Σi=1m(f(x)y(i))2+λw22

    L1正则化项和L2正则化项的说明如下:

      1. L1正则化项是指权重向量 w w w中各元素的绝对值之和,表示为 ∣ ∣ w ∣ ∣ 1 ||w||_{1} w1
      2. L2正则化项是指权重向量 w w w中个元素的平方和,表示为 ∣ ∣ w ∣ ∣ 2 2 ||w||_{2}^{2} w22

    L1正则化和L2正则化的作用

       1. L1正则化用于进行稀疏化(会令权重向量w中某一些参数等于0)处理,通常用于在多特征中进行特征选择
       2. L2正则化用于避免模型发生过拟合现象,L1正则化也可用于避免过拟合

    L1正则化的直观理解

    • L1正则化的损失函数

    m i n 1 2 m Σ i = 1 m ( f ( x ) − y ( i ) ) 2 + λ ∣ ∣ w ∣ ∣ 1 min\frac{1}{2m}\Sigma_{i=1}^{m}\left(f(x) - y^{(i)}\right)^{2}+\lambda||w||_{1} min2m1Σi=1m(f(x)y(i))2+λw1

      在上述的公式中, 1 2 m Σ i = 1 m ( f ( x ) − y ( i ) ) 2 \frac{1}{2m}\Sigma_{i=1}^{m}\left(f(x) - y^{(i)}\right)^{2} 2m1Σi=1m(f(x)y(i))2是原始的损失函数,也称为经验误差,在此基础上,加入了L1正则项 λ ∣ ∣ w ∣ ∣ 1 \lambda||w||_{1} λw1,L1正则项是权重向量中各元素的绝对值之和,所造成的一个后果就是损失函数不是完全可微。模型训练的目的是令损失函数达到全局最小值,当在原始的损失函数之后加入L1正则项之后,相当于对权重向量做了约束,此时我们的任务变为了在L1约束条件下求得损失函数的最小值。由于高维的情况无法用图像形象的描述出来,我们这里考虑二维的情况,即只有两个权重值 w 1 w_{1} w1 w 2 w_{2} w2,此时对损失函数应用梯度下降法,求解过程中可以画出等值线,如下图所示:
    在这里插入图片描述
      图中等值线是原始损失函数的等值线,黑色方形是L1正则化项的图形。在图中,当彩色等值线与黑色图形首次相交的地方就是最优解。上图中原始损失函数与L1在一个顶点处相交,这个顶点就是最优解。注意到这个顶点的值是(w1,w2)=(0,w)。可以直观想象,因为L函数有很多突出的顶点(二维情况下四个,多维情况下更多),彩色等值线与这些角接触的机率会远大于与黑色图形其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏效果,进而可以用于特征选择。
      正则化系数 λ \lambda λ可以控制黑色图形的大小, λ \lambda λ越大,黑色图形越小, λ \lambda λ越小,黑色图形越大。 λ \lambda λ越大,表示对权重向量的限制作用越强。

    L2正则化的直观理解

    • L2正则化的损失函数
      m i n 1 2 m Σ i = 1 m ( f ( x ) − y ( i ) ) 2 + λ ∣ ∣ w ∣ ∣ 2 2 min\frac{1}{2m}\Sigma_{i=1}^{m}\left(f(x) - y^{(i)}\right)^{2}+\lambda||w||_{2}^{2} min2m1Σi=1m(f(x)y(i))2+λw22

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

      考虑损失函数在二维的情况,即只有两个权重值 w 1 w_{1} w1 w 2 w_{2} w2,此时对损失函数应用梯度下降法,求解过程中可以画出等值线,如下图所示:
    在这里插入图片描述
      二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此J0与L相交时使得w1或w2等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。

    展开全文
  • 理解部分 L1与L2区别:使用L1可以得到稀疏的权值;用L2可以得到平滑的权值 L1-norm(范数),也叫作最小绝对偏差(leastabsolute deviations, LAD...L2-norm(范数)也称为最小均方(least squares),它是最小目标值...
  • L2 正则化

    2020-01-02 10:37:03
    在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为 1−αλ/m ,因为α、λ、m都是正的,所以 1−ηλ/n小于1,它的效果是减小w,这也就是权重衰减(weight decay)的由来。当然考虑到后面的导数项,w最终...
  • 相信大部分人都见到过,下面的这两张对比图,用来解释为什么L1正则化比L2正则化更容易得到稀疏解,然而很多人会纠结于"怎么证明相切是在角点上?",呃,不必就纠结于此,请注意结论中的"容易"二字,配图只是为了说明...
  • 1.、权重衰减(weight decay)L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化L2正则化就是在代价函数后面再加上一个正则化项:其中C0代表原始的代价函数...
  • L2正则化(Regularization)

    万次阅读 2019-12-17 09:35:56
    深度学习可能存在过拟合问题——高方差,有两个解决方法,一个是正则化,另一个是准备更多的数据,这是非常可靠的方法,但你可能无法时时刻刻准备足够多的训练数据或者获取更多数据的成本很高,但正则化通常有助于...
  • 深度学习可能存在过拟合问题——高方差,有两个解决办法,一是...L2正则化 dropout 数据增广 early stopping Bagging 在样本中增加噪声 本篇博客先介绍L2正则化 1. L2正则化公式及参数更新 我们代价函数中加入正...
  • L2正则化训练的原理:在Loss中加入(乘以系数λ的)参数w的平方和,这样训练过程中就会抑制w的值,w的(绝对)值小,模型复杂度低,曲线平滑,过拟合程度低(奥卡姆剃刀),参考公式如下图: (正则化是不阻碍你去...
  • l1正则化和l2正则化I have read many articles on the topic to find out which is better out of two and what should I use for my model. I wasn’t satisfied with any of them and that left my brain confused...
  • \] \[\hat \omega^* = (X^TX)^{-1}X^TY \] 当样本变量较多,样本数量不足时\(m>n\), \(\hat \omega^*\)解不唯一 L2正则化 引入对于\(\hat \omega^*\)的L2正则化项 \[\hat J(\hat \omega^*) = (X \hat \omega^* - Y)...
  • 详解L1和L2正则化

    千次阅读 2020-11-24 20:23:14
    对参数进行L1和L2正则化的作用与区别 pytorch实现L1与L2正则化 对特征进行L2正则化的作用 L1和L2的区别以及范数   使用机器学习方法解决实际问题时,我们通常要用L1或L2范数做正则化(regularization),从而限制...
  • 正则化参数 λ\lambdaλ 的选择 正则化系数越大,正则化的函数图形(上文图中的方形或圆形)会向坐标轴原点收缩得越厉害;通常越大的 λ\lambdaλ可以让代价函数在参数为0时取到最小值 正则项参数 λ\lambdaλ用来...
  • 点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”作者:Divyanshu Mishra编译:ronghuaiyang导读权值衰减和L2正则化,到底是不是同一个东西,这篇文章给你...
  • L1、L2正则化来源推导

    2020-08-25 20:35:10
    L1、L2正则化来源推导 L1L2的推导可以从两个角度: 带约束条件的优化求解(拉格朗日乘子法) 贝叶斯学派的:最大后验概率 1.1 基于约束条件的最优化 对于模型权重系数w的求解释通过最小化目标函数实现的,也就是...
  • L1正则化与L2正则化

    2020-08-04 23:22:20
      分为L1正则化和L2正则化两种。首先,我们假定网络中原本的损失函数为:    其中,w为网络的权重值,b为偏置值。   添加L1正则化后损失函数的形式可以表示为:   即在最后添加了权重绝对值的和。 其中,...
  • L1、L2正则化与稀疏性

    2022-03-28 20:50:54
    - 什么是正则化/如何进行正则化   定义:在机器学习中正则化(regularization)是指在模型的损失函数中加上一个正则化项,也称为惩罚性(penalty term): 1N∑i=1NL(yi,f(xi))+λJ(f)\frac{1}{N}\sum^{N}_{i=1}L...
  • L1正则化和L2正则化,在TensorFlow中分别以不同的函数实现它们,以下列代码为示例: #含有L1正则化的损失函数: loss = tf.reduce_mean(tf.square(y_ - y)) + tf.contrib.layers.l1_regularizer(λ)(w) #含有L2正则...
  • L1和L2正则化

    2019-07-11 21:09:30
    我们推导一下看看,先求导: 可以发现L2正则化项对b的更新没有影响,但是对于w的更新有影响: 在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为 1−ηλ/n ,因为η、λ、n都是正的,所以 1−ηλ/n小于1...
  • 正则化(1) L1和L2正则化

    千次阅读 2018-04-21 01:59:23
    正则化(Regularization) 参考: https://blog.csdn.net/jinping_shi/article/details/52433975 https://blog.csdn.net/u012162613/article/details/44261657 1. 正则化的概念 规则化 vs 正则化 - 规则化,...
  • L1/L2正则化的作用 L1正则化作用到参数会产生更稀疏的解,既能使参数在训练过程中尽量靠近最优解的同时,一些参数为0。L1正则化的稀疏性质被广泛应用于特征选择,可从特征集合中选出具有代表的特征子集,以此简化...
  • Pytorch实现L1与L2正则化

    千次阅读 2020-12-04 16:55:32
     关于Pytorch如何实现正则化在这篇博客《pytorch实现L2和L1正则化regularization的方法》其实已经给出了差不多正确的方法,但是这篇博客的代码在实现L2正则的时候是有一点小问题的。  首先看一下L2正则的公式: ...
  • L1正则化与L2正则化的区别

    万次阅读 多人点赞 2018-12-10 20:45:36
    本文从正则化的本质p-范数入手,解释了L1正则化和L2正则化的区别。 正则化 在Cost Function上添加了正则化项,就能降低模型的过拟合程度,这就是正则化的作用。 关于正则化更细节的讲述,请参考为什么正则化能减少...
  • L1、L2正则化的区别

    2020-12-10 15:39:08
    简单读了一些文章,总结一下L1和L2正则化的区别吧,似乎是非常容易被问到的一个问题。L1,L2正则化机器学习中, 损失函数后面一般会加上一个额外项,常用的是l1-norm和l2-norm,即l1范数和l2范数。可以看作是损失函数...
  • 关于L2正则化公式以及代码实现

    千次阅读 2022-02-19 16:37:24
    MSE加上L2正则项的整体损失total loss公式: 用L2范数可以写成
  • L2正则化 在深度学习中,用的比较多的正则化技术是L2正则化,其形式是在原先的损失函数后边再加多一项:12????????2????12λθi2,那加上L2正则项的损失函数就可以表示为:????(????)=????(????)+????∑???????????...
  • L2正则化推导

    千次阅读 2018-09-09 07:34:14
    在机器学习中,无论是分类还是回归,都可能存在由于特征过多而导致的过拟合问题。当然解决的办法有 ...先来看看L2正则化方法。对于之前梯度下降讲到的损失函数来说,在代价函数后面加上一个正则化项,得到   ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,366
精华内容 6,146
关键字:

l2正则化系数怎么选择