损失函数总结(二):L1Loss、MSELoss
- 1 引言
- 2 损失函数
- 2.1 L1Loss
- 2.2 MSELoss
- 3 总结
1 引言
在上一篇博文中介绍了损失函数是什么以及为什么使用损失函数,从这一篇博文就开始关于损失函数有哪些进行进一步的介绍。这里放一张损失函数的机理图:
2 损失函数
2.1 L1Loss
L1Loss(也称为MAE Loss
, 平均绝对误差损失)是一种用于回归任务
的损失函数。它用于度量模型的预测值与实际目标之间的绝对差距。L1Loss的数学表达式如下:
L
L1
(
Y
,
Y
′
)
=
1
n
∑
i
=
1
n
∣
y
i
−
y
i
′
∣
L_{\text{L1}}(Y, Y') = \frac{1}{n} \sum_{i=1}^{n} |y_i - y_i'|
LL1(Y,Y′)=n1i=1∑n∣yi−yi′∣
其中:
- L L1 ( Y , Y ′ ) L_{\text{L1}}(Y, Y') LL1(Y,Y′) 是整个数据集上的L1损失。
- n n n 是样本数量。
- y i y_i yi 是第 i i i 个样本的实际目标值。
- y i ′ y_i' yi′ 是第 i i i 个样本的模型预测值。
代码实现(Pytorch):
# L1Loss实现
loss = nn.L1Loss()
# 假设为预测值
input = torch.randn(3, 5, requires_grad=True)
# 实际值
target = torch.randn(3, 5)
# 计算损失函数
output = loss(input, target)
# 反向传播
output.backward()
特点:
- 只计算预测值和真实值之间差的
绝对值
,对异常值(离群点)
不敏感。
L1Loss损失函数适用于回归任务,但是由于其对异常值不敏感的特点,一般情况下效果均没MSELoss 效果好。现在很少使用。。。。
2.2 MSELoss
MSELoss(Mean Squared Error Loss,均方误差损失)是一种用于回归任务
的损失函数,通常用于度量模型的预测值与实际目标之间的差距的平方
。MSELoss的数学表达式如下:
L
MSE
(
Y
,
Y
′
)
=
1
n
∑
i
=
1
n
(
y
i
−
y
i
′
)
2
L_{\text{MSE}}(Y, Y') = \frac{1}{n} \sum_{i=1}^{n} (y_i - y_i')^2
LMSE(Y,Y′)=n1i=1∑n(yi−yi′)2
其中:
- L MSE ( Y , Y ′ ) L_{\text{MSE}}(Y, Y') LMSE(Y,Y′) 是整个数据集上的均方误差损失。
- n n n 是样本数量
- y i y_i yi 是第 i i i 个样本的实际目标值。
- y i ′ y_i' yi′ 是第 i i i 个样本的模型预测值。
代码实现(Pytorch):
loss = nn.MSELoss()
input = torch.randn(3, 5, requires_grad=True)
target = torch.randn(3, 5)
output = loss(input, target)
output.backward()
特点:
- 对于与实际值偏差
较大
的点会更加敏感。
MSELoss 广泛用于各种回归任务,算是最经典
且最常使用
的损失函数。。。。
3 总结
到此,使用 损失函数总结(二) 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的损失函数
也可以在评论区提出,后续会对其进行添加!!!!
如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。