L1 VS L2(深度学习中的L1与L2)

news/2024/11/24 1:40:51/

L1 loss

L1 loss的数学公式和函数图如下所示:

L1函数连续,但是在𝑦−𝑓(𝑥)=0处不可导,L1 loss大部分情况下梯度都是相等的,这意味着即使对于小的损失值,其梯度也是大的,这不利于函数的收敛和模型的学习。但是,无论对于什么样的输入值,都有着稳定的梯度,不会导致梯度爆炸问题,具有较为稳健性的解。

L2 loss(MSE loss)

MSE曲线的特点是光滑连续、可导,便于使用梯度下降算法,是比较常用的一种损失函数。而且,MSE 随着误差的减小,梯度也在减小,这有利于函数的收敛,即使固定学习因子,函数也能较快取得最小值。但是当两个值差异较大时,平方的计算方式也会容易引起梯度爆炸。下面MSE的数学公式和函数图如下所示:

在训练神经网络过程中,我们通过梯度下降算法来更新w和b,因此需要计算代价函数对w和b的导数:

然后更新w、b:

w <—— w - η* ∂C/∂w = w - η * a *σ′(z)

b <—— b - η* ∂C/∂b = b - η * a * σ′(z)

因为sigmoid函数的性质,导致σ′(z)在z取大部分值时会很小(如下图标出来的两端,几近于平坦),这样会使得w和b更新非常慢(因为η * a * σ′(z)这一项接近于0),而当两数的差异值大于1的情况下,平方的计算方式很容则到达梯度消失的区域,所以L2 loss不易与sigmod搭配使用。

L2范数将误差平方化(如果误差大于1,则误差会放大很多),模型的误差会比L1范数来得大,因此模型会对这个样本更加敏感,这就需要调整模型来最小化误差。如果这个样本是一个异常值,模型就需要调整以适应单个的异常值,这会牺牲许多其它正常的样本,因为这些正常样本的误差比这单个的异常值的误差小。

Smoth L1 loss

Fast RCNN论文提出该方法,用于预测框和真实框之间的数值差异的损失计算,公式和对应的图如下所示:

解决L1和L2的不足:

1.当预测框与 ground truth 差别过大时,梯度值不至于过大;

2.当预测框与 ground truth 差别很小时,梯度值足够小。

L1和L2的正则化

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

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

L1增加模型的稀疏性:

L1和L2正则项加入后的函数图像如下:

损失函数和正则化项图形首次相交的地方就是最优解,左图消交点(0,w),因为正则化函数有很多突出的角(二维情况下四个,多维情况下更多),损失函数​与这些角接触的机率会远大于与其它部位接触的机率,而在这些角上会有很多权值等于0,所以L1正则化可以产生稀疏模型,进而可以用于特征选择。

L2正则化防止过拟合:

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

对上式进行求导并合并处理如下:

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

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

Ps:当L1的正则化系数很小时,得到的最优解会很小,可以达到和L2正则化类似的效果。

 


http://www.ppmy.cn/news/546491.html

相关文章

L1-1学习:)

第一个学的&#xff0c;一定是最最最最熟悉的输入输出了。 输入&#xff1a;cin >> 变量名/字符&#xff08;如万恶的空格&#xff09;&#xff1b; &#xff08;格式化&#xff09;scanf&#xff08;"(占位符以及字符)"&#xff0c;&变量名&#xff09;&…

L1、L2正则化以及smooth L1 loss

一、L1、L2正则化 当样本特征很多&#xff0c;而样本数相对较少时&#xff0c;学习过程很容易陷入过拟合。为了缓解过拟合问题&#xff0c;可以对损失函数加入正则化项。正则化项中的Lp范数有很多&#xff0c;常见的有L1范数和L2范数。 给定数据集D {&#xff08;x1&#xff0…

机器学习------L1、L2规范化(L1 Regularization、L1 Regularization)

取自孙明的&#xff02;数字图像处理与分析基础&#xff02; 1. 引入——病态问题和约束 通过改变模型的拟合能力来避免过拟合并不是一件容易的事情&#xff0c;更常用的办法是使用规范化对模型的参数进行一定的约束。下面来考虑一个非常简单的例子&#xff0c;求下面方程的解…

L1-norm (L1范数) L2-norm(L2范数)

同样存在L0、L3等&#xff0c;L1、L2范数应用比较多。 一个向量的 norm 就是将该向量投影到 [0, ∞​) 范围内的值&#xff0c;其中 0 值只有零向量的 norm 取到。不难想象&#xff0c;将其与现实中距离进行类比&#xff0c;在机器学习中 norm 也就总被拿来表示距离关系&#x…

正则项L1和L2

正则项 摘要 本文章主要讲述了L1和L2的基本定义,以及其所具有的性质,如下: L1 它的主要特性是能够产生稀疏解,某种程度上使得增加模型的”解释性“L2 它的主要特性是偏向于求得较小的解,通过限制权重的大小实现了对模型空间的限制,从而一定程度可以避免过拟合针对他们的…

L1 loss 是什么

L1 Loss&#xff08;也称为Mean Absolute Error&#xff09;是深度学习中常用的一种损失函数&#xff0c;用于衡量模型预测结果与真实标签之间的平均绝对误差。具体来说&#xff0c;对于一个大小为N的样本集合&#xff0c;L1 Loss定义如下&#xff1a; L 1 ( y , y ^ ) 1 N ∑…

L1、L2、smooth L1三类损失函数

一、常见的MSE、MAE损失函数 1.1 均方误差、平方损失 均方误差&#xff08;MSE&#xff09;是回归损失函数中最常用的误差&#xff0c;它是预测值与目标值之间差值的平方和&#xff0c;其公式如下所示&#xff1a; 下图是均方根误差值的曲线分布&#xff0c;其中最小值为预测值…

正则项:L1与L2

正则项 一般地&#xff0c;我们优化 M S E MSE MSE l m s e ∑ i ( y i − y ^ i ) 2 n l_{mse}\frac{\sum_i (y_i-\hat y_i)^2}{n} lmse​n∑i​(yi​−y^​i​)2​ 为了使参数尽可能小&#xff0c;加入正则项&#xff0c;防止过拟合&#xff0c;减小方差。L1正则可以更容易…