目录
Loss损失函数的作用
损失函数loss和准确率accuracy的比较
回归任务中的loss主要包括
Loss损失函数的作用
- 损失函数用来评价模型的预测值和真实值不一样的程度,深度学习训练模型的时候就是通过计算损失函数,更新模型参数,从而减小优化误差,直到损失函数值下降到目标值 或者 达到了训练次数。
- 不同的模型用的损失函数一般也不一样。损失函数设置的越好,通常模型的性能越好。
- loss函数可以自定义
- 在分类问题中,准确率accuracy更加直观,也更具有可解释性;对于回归问题,accuracy不可用,只能用loss
- 准确率accuracy不可微分,无法直接用于网络训练,而反向传播算法要求损失函数是可微的
- 损失函数loss可微分,可以求梯度,运用反向传播更新参数。
- 均方误差mean squareerror(MSE):MSE表示了预测值与目标值之间差值的平方和然后求平均
文章图片
- L2范数:L2损失表示了预测值与目标值之间差值的平方和然后开更方,L2表示的是欧几里得距离。
文章图片
- MSE和L2的曲线走势都一样。区别在于一个是求的平均np.mean(),一个是求的更方np.sqrt()
文章图片
tensorflow和keras代码体现:
#tensorflowtf.losses.mean_squared_error(
labels,
predictions,
weights=1.0,
scope=None,
loss_collection=tf.GraphKeys.LOSSES,
reduction=Reduction.SUM_BY_NONZERO_WEIGHTS
)
tf.metrics.mean_squared_error(
labels,
predictions,
weights=None,
metrics_collections=None,
updates_collections=None,
name=None
)#kerasmean_squared_error(y_true, y_pred)
- 平均绝对误差meanabsolute error(MAE ):MAE表示了预测值与目标值之间差值的绝对值然后求平均
文章图片
- L1范数:L1表示了预测值与目标值之间差值的绝对值,L1也叫做曼哈顿距离
文章图片
MAE和L1的区别在于一个求了均值np.mean(),一个没有求np.sum()。2者的曲线走势也是完全一致的。
文章图片
- tensorflow和keras代码体现:
#tensorflow
tf.metrics.mean_absolute_error(
labels,
predictions,
weights=None,
metrics_collections=None,
updates_collections=None,
name=None
)#keras
mean_absolute_error(y_true, y_pred)
- MSE,MAE对比:
文章图片
MAE损失对于局外点更鲁棒,但它的导数不连续使得寻找最优解的过程低效;MSE损失对于局外点敏感,但在优化过程中更为稳定和准确。
- 其他可用的损失函数参考:
补充知识 平均绝对误差MAE(
mean absolute error
) 和均方根误差 RMSE(root mean squared error
)是衡量变量精度的两个最常用的指标,同时也是机器学习中评价模型的两把重要标尺。1. 定义 平均绝对误差MAE(
mean absolute error
)是绝对误差的平均值,它其实是更一般形式的误差平均值。文章图片
或者
文章图片
均方根误差 RMSE(
root mean squared error
),也有资料称为RMSD
,也可以测量误差的平均大小,它是预测值和实际观测之间平方差异平均值的平方根。文章图片
或者
文章图片
2. 比较 均方根误差 RMSE 受异常值的影响更大。
3. 应用 当我们处理较大的数据集时,我们不能检查每个值以了解是否有一个或一些异常值,或者是否所有的错误都系统性地更高
解决办法:查看 MAE 和 RMSE 的比值可以帮助我们理解是否存在较大但不常见的错误。
参考资料:
【1】常见的损失函数(loss function)总结 - 知乎
【2】准确率Accuracy与损失函数Loss的关系_CVsaber的博客-CSDN博客_损失值和准确率的关系
【3】损失函数loss大总结_watersink的博客-CSDN博客_loss函数
【4】深度学习:MAE 和 RMSE 详解_南淮北安的博客-CSDN博客_mae和rmse
【Deep|损失函数Loss相关总结(精细版)】
推荐阅读
- 深度学习|PyTorch 具体显存占用分析
- 深度学习|波士顿房价预测
- 人工智能|下班后用微信工作发病是否属于工伤(法院这样判)
- 深度学习|深度学习环境搭建(win11+tensorflow2.7+CUDA11.6+cuDNN8.3.2)
- yolov3 ./src/image_opencv.cpp:5:10: fatal error: opencv2/opencv.hpp: No such file or directory
- Python|基于PyTorch的flappy bird游戏
- 数据挖掘|数据挖掘经典十大算法_对基本概念的理解
- FPGA自学|FPGA的I2C的原理及应用(含有源码)
- 算法|【项目实践】从零开始学习Deep SORT+YOLO V3进行多目标跟踪(附注释项目代码)...