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

news/2024/11/24 4:12:46/

一、常见的MSE、MAE损失函数
1.1 均方误差、平方损失
均方误差(MSE)是回归损失函数中最常用的误差,它是预测值与目标值之间差值的平方和,其公式如下所示:
在这里插入图片描述
下图是均方根误差值的曲线分布,其中最小值为预测值为目标值的位置。在这里插入图片描述
优点:各点都连续光滑,方便求导,具有较为稳定的解

缺点:不是特别的稳健,为什么?因为当函数的输入值距离中心值较远的时候,使用梯度下降法求解的时候梯度很大,可能导致梯度爆炸

什么是梯度爆炸?
误差梯度是神经网络训练过程中计算的方向和数量,用于以正确的方向和合适的量更新网络权重。
深层网络或循环神经网络中,误差梯度可在更新中累积,变成非常大的梯度,然后导致网络权重的大幅更新,并因此使网络变得不稳定。在极端情况下,权重的值变得非常大,以至于溢出,导致 NaN 值。
网络层之间的梯度(值大于 1.0)重复相乘导致的指数级增长会产生梯度爆炸。

梯度爆炸引发的问题
在深度多层感知机网络中,梯度爆炸会引起网络不稳定,最好的结果是无法从训练数据中学习,而最坏的结果是出现无法再更新的 NaN 权重值。

1.2 平均绝对误差
平均绝对误差(MAE)是另一种常用的回归损失函数,它是目标值与预测值之差绝对值的和,表示了预测值的平均误差幅度,而不需要考虑误差的方向,范围是0到∞,其公式如下所示:
在这里插入图片描述
在这里插入图片描述
优点:无论对于什么样的输入值,都有着稳定的梯度,不会导致梯度爆炸问题,具有较为稳健性的解。
缺点:在中心点是折点,不能求导,不方便求解。

上面的两种损失函数也被称之为L2损失和L1损失

二、L1_Loss和L2_Loss
2.1 L1_Loss和L2_Loss的公式
L1范数损失函数,也被称为最小绝对值偏差(LAD),最小绝对值误差(LAE)。总的说来,它是把目标值(Yi)与估计值(f(xi))的绝对差值的总和(S)最小化:
在这里插入图片描述
L2范数损失函数,也被称为最小平方误差(LSE)。总的来说,它是把目标值(Yi)与估计值(f(xi))的差值的平方和(S)最小化:
在这里插入图片描述

import numpy as npdef L1(yhat, y):loss = np.sum(np.abs(y - yhat))return lossdef L2(yhat, y):loss =np.sum(np.power((y - yhat), 2))return loss
#调用
yhat = np.array([0.1, 0.2, 0.3, 0.4, 0.5])
y = np.array([1, 1, 0, 1, 1])print("L1 = " ,(L1(yhat,y)))
print("L2 = " ,(L2(yhat,y)))

L1范数与L2范数作为损失函数的区别能快速地总结如下:
在这里插入图片描述
2.2 几个关键的概念
(1)鲁棒性
最小绝对值偏差之所以是鲁棒的,是因为它能处理数据中的异常值。这或许在那些异常值可能被安全地和有效地忽略的研究中很有用。如果需要考虑任一或全部的异常值,那么最小绝对值偏差是更好的选择。
从直观上说,因为L2范数将误差平方化(如果误差大于1,则误差会放大很多),模型的误差会比L1范数来得大,因此模型会对这个样本更加敏感,这就需要调整模型来最小化误差。如果这个样本是一个异常值,模型就需要调整以适应单个的异常值,这会牺牲许多其它正常的样本,因为这些正常样本的误差比这单个的异常值的误差小。

(2)稳定性
最小绝对值偏差方法的不稳定性意味着,对于数据集的一个小的水平方向的波动,回归线也许会跳跃很大(如,在转折点处求导)。在一些数据结构上,该方法有许多连续解;但是,对数据集的一个微小移动,就会跳过某个数据结构在一定区域内的许多连续解。在跳过这个区域内的解后,最小绝对值偏差线可能会比之前的线有更大的倾斜。
相反地,最小平方法的解是稳定的,因为对于一个数据点的任何微小波动,回归线总是只会发生轻微移动;也就说,回归参数是数据集的连续函数。

三、smooth L1损失函数
其实顾名思义,smooth L1说的是光滑之后的L1,前面说过了L1损失的缺点就是有折点,不光滑,导致不稳定,那如何让其变得光滑呢?smooth L1损失函数为:
在这里插入图片描述
smooth L1损失函数曲线如下图所示,作者这样设置的目的是想让loss对于离群点更加鲁棒,相比于L2损失函数,其对离群点(指的是距离中心较远的点)、异常值(outlier)不敏感,可控制梯度的量级使训练时不容易跑飞。
在这里插入图片描述


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

相关文章

正则项:L1与L2

正则项 一般地,我们优化 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​ 为了使参数尽可能小,加入正则项,防止过拟合,减小方差。L1正则可以更容易…

L1, L2以及smooth L1 loss

在机器学习实践中,你也许需要在神秘的L1和L2中做出选择。通常的两个决策为:1) L1范数 vs L2范数 的损失函数; 2) L1正则化 vs L2正则化。 作为损失函数 L1范数损失函数,也被称为最小绝对值偏差(LAD)&#…

YK-L1刷机

文章目录 1.测试是否能够连接到路由器2.刷breed3.Padavan firmware编译4.烧板5.验证杂文1.1设置应用开机后自启动1.编写测试用程序2.编写运行脚本3.编写start.service4.设置为开机自启动5.验证 1.2内核模块编写(使用insmod方式)1.3内核模块编写&#xff…

L1 和 L2的区别

L1 和 L2的区别: L1范数是指向量中各个元素绝对值值和,也有一个美称叫“稀疏规则算子”。(Lasso regularization) 比如向量 A [ 1 , − 1 , 3 ] A [1,-1,3] A[1,−1,3],那么A的L1范数为 ∣ 1 ∣ ∣ − 1 ∣ ∣ 3 ∣ |1||-1||…

L1和L2 复习问题

L1和L2 L2正则化,为什么L2正则化可以防止过拟合?L1正则化是啥? https://editor.csdn.net/md/?articleId106009362 “为什么所有这些都有助于减少过度拟合的问题?” 请考虑绝对值和平方函数的图,其中绝对值表示在L1期…

L1和L2正则化区别

1. L1和L2的定义 L1正则化,又叫Lasso Regression 如下图所示,L1是向量各元素的绝对值之和 L2正则化,又叫Ridge Regression 如下图所示,L2是向量各元素的平方和 2. L1和L2的异同点 相同点:都用于避免过拟合 不同点…

L1正则化和L2正则化讲解

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

L1和L2正则化

1 过拟合问题 过拟合是数据科学领域的一个重要问题,需要处理好过拟合问题才能建立一个健壮和准确的模型。当模型试图很好的拟合训练数据但导致无法泛化到测试数据时,就出现了过拟合。过拟合模型捕捉的更多的是训练数据找的呢细节和噪声,而不…