Deep|损失函数Loss相关总结(精细版)

目录
Loss损失函数的作用
损失函数loss和准确率accuracy的比较
回归任务中的loss主要包括
Loss损失函数的作用

  • 损失函数用来评价模型的预测值和真实值不一样的程度,深度学习训练模型的时候就是通过计算损失函数,更新模型参数,从而减小优化误差,直到损失函数值下降到目标值 或者 达到了训练次数。
  • 不同的模型用的损失函数一般也不一样。损失函数设置的越好,通常模型的性能越好。
  • loss函数可以自定义
损失函数loss和准确率accuracy的比较
  • 在分类问题中,准确率accuracy更加直观,也更具有可解释性;对于回归问题,accuracy不可用,只能用loss
  • 准确率accuracy不可微分,无法直接用于网络训练,而反向传播算法要求损失函数是可微的
  • 损失函数loss可微分,可以求梯度,运用反向传播更新参数。
回归任务中的loss主要包括
  • 均方误差mean squareerror(MSE):MSE表示了预测值与目标值之间差值的平方和然后求平均
Deep|损失函数Loss相关总结(精细版)
文章图片

  • L2范数:L2损失表示了预测值与目标值之间差值的平方和然后开更方,L2表示的是欧几里得距离。
Deep|损失函数Loss相关总结(精细版)
文章图片

  • MSE和L2的曲线走势都一样。区别在于一个是求的平均np.mean(),一个是求的更方np.sqrt()
Deep|损失函数Loss相关总结(精细版)
文章图片

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表示了预测值与目标值之间差值的绝对值然后求平均
Deep|损失函数Loss相关总结(精细版)
文章图片

  • L1范数:L1表示了预测值与目标值之间差值的绝对值,L1也叫做曼哈顿距离
Deep|损失函数Loss相关总结(精细版)
文章图片

MAE和L1的区别在于一个求了均值np.mean(),一个没有求np.sum()。2者的曲线走势也是完全一致的。
Deep|损失函数Loss相关总结(精细版)
文章图片

  • 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对比:
Deep|损失函数Loss相关总结(精细版)
文章图片

MAE损失对于局外点更鲁棒,但它的导数不连续使得寻找最优解的过程低效;MSE损失对于局外点敏感,但在优化过程中更为稳定和准确。
  • 其他可用的损失函数参考:
常见的损失函数(loss function)总结 - 知乎
补充知识 平均绝对误差MAE(mean absolute error) 和均方根误差 RMSE(root mean squared error)是衡量变量精度的两个最常用的指标,同时也是机器学习中评价模型的两把重要标尺。
1. 定义 平均绝对误差MAE(mean absolute error)是绝对误差的平均值,它其实是更一般形式的误差平均值。
Deep|损失函数Loss相关总结(精细版)
文章图片
或者Deep|损失函数Loss相关总结(精细版)
文章图片

均方根误差 RMSE(root mean squared error),也有资料称为RMSD,也可以测量误差的平均大小,它是预测值和实际观测之间平方差异平均值的平方根。
Deep|损失函数Loss相关总结(精细版)
文章图片
或者Deep|损失函数Loss相关总结(精细版)
文章图片


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相关总结(精细版)】

    推荐阅读