赞
踩
今天讨论下:对称损失函数:symmetric regression function such as L1 or L2 norm,注意说说L1
平均绝对误差(MAE)是一种用于回归模型的损失函数。MAE 是目标变量和预测变量之间绝对差值之和,因此它衡量的是一组预测值中的平均误差大小,而不考虑它们的方向,范围为 0~∞。
上图为平均绝对误差函数图,其中目标真值为 100,预测范围在-10000 到 10000 之间,均方 误差损失(Y 轴)在预测值(X 轴)=100 处有最小值,范围为 0~∞。
主要问题:
导数为常数,在 Loss 函数最小值处容易震荡,导致难以收敛到最优值。
https://atcold.github.io/pytorch-Deep-Learning/en/week11/11-1/
Use Case: L1 loss is more robust against outliers and noise compared to L2 loss. In L2, the errors of those outlier/noisy points are squared, so the cost function gets very sensitive to outliers.
Problem: The L1 loss is not differentiable at the bottom (0). We need to be careful when handling its gradients (namely Softshrink). This motivates the following SmoothL1Loss.
L1范数损失 L1Loss,计算 output 和 target 之差的绝对值。
torch.nn.L1Loss(reduction='mean')
参数:
reduction-三个值,none: 不使用约简;mean:返回loss和的平均值;sum:返回loss的和。默认:mean。
均方误差(MSE)是最常用的回归损失函数,它是目标变量和预测值的差值平方和。查看这篇文章pytorch——损失函数之nn.MSELoss,(Mean Squared Error,MSE) 均方误差(MSE)(squared L2 norm,平方L2范数)。它也被称为L2 Loss。
从损失函数对 x 的导数可知,L1 损失函数对 x 的导数为常数,在训练后期,x 很小时, 如果学习率不变,损失函数会在最优值附近波动,很难收敛到最高的精度。L2 损失对 x 的 导数在 x 值很大时,其导数也非常大,在训练初期不稳定。Smooth L1 Loss 结合了 L1 和 L2 的优点:早期使用 L1,梯度稳定,快速收敛,后期使用 L2,逐渐收敛到最优解。
函数的临界点:absolute element-wise error falls below 1。
This function uses L2 loss if the absolute element-wise error falls below 1 and L1 loss otherwise.
Smooth L1 Loss 结合了 L1 和 L2 的优点:早期使用 L1,梯度稳定,快速收敛,后期使用 L2,逐渐收敛到最优解。
This is advertised by Ross Girshick (Fast R-CNN). The Smooth L1 Loss is also known as the Huber Loss or the Elastic Network when used as an objective function,.
Use Case: It is less sensitive to outliers than the MSELoss and is smooth at the bottom. This function is often used in computer vision for protecting against outliers.
Problem: This function has a scale (0.50.5 in the function above).
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。