损失函数-回归模型|分类模型

news2024/11/13 15:56:41

损失函数 Loss Function

  • 回归模型
    • 均方误差(MSE: Mean Squared Error)
    • 均方根误差(RMSE:Root Mean Squared Error)
    • 平均绝对误差(MAE: Mean Absolute Error)
    • Huber损失
  • 分类模型
    • 交叉熵损失(Cross-Entropy Loss)
    • Hinge损失(Hinge Loss)
    • KL散度(Kullback-Leibler Divergence)
  • 总结

损失函数用于评估模型预测值与实际值之间的差异,指导模型训练过程,最终影响模型的准确性和可靠性。不同类型的损失函数适用于不同的任务,如回归问题和分类问题,因此选择合适的损失函数是构建高效模型的关键步骤。

本文将深入探讨回归模型和分类模型中常用的损失函数,分析它们的数学公式、优缺点以及适用场景,帮助理解和选择合适的损失函数来优化机器学习模型。

回归模型

均方误差(MSE: Mean Squared Error)

1. 计算方式:
在这里插入图片描述
均方误差的实质是对每个样本的预测误差进行平方,然后求取所有样本的平均值。这样做的目的是为了放大大误差,使其在计算中得到更大的权重,从而更加关注模型对于极端情况的拟合程度。

2. 特点:
优点:

  • 对大误差敏感:由于采用了平方操作,MSE会对大误差给予更大的惩罚,因此在训练过程中,模型会更加努力地降低大误差。
  • 连续可导:MSE是一个光滑、连续可导的函数,使得它在优化算法中的使用相对容易。

缺点:

  • 受异常值影响:MSE对异常值比较敏感,因为它会放大异常值的影响,影响模型的鲁棒性。

3. 适用场景:

  • 线性回归:最小化预测值与真实值的均方误差。
  • 多项式回归:当采用多项式拟合数据时,MSE可以用来衡量模型对数据的拟合程度。
  • 数据中异常值较少且对大误差的敏感度要求高
  • 需要连续可导损失函数的场景
  • 需要对预测误差进行均衡考虑的回归问题,特别是在数据分布相对均匀且没有特别要求的情况下,MSE是一个直观且有效的选择。然而,在存在异常值或对预测误差的分布有特殊要求时,可能需要考虑其他类型的损失函数。

均方根误差(RMSE:Root Mean Squared Error)

1. 计算方式:
在这里插入图片描述

2. 特点:
优点:

  • 直观性:与MSE相比,RMSE保留了平方误差放大大误差的特性,但单位与原始数据相同,更容易解释。

缺点:

  • 计算复杂度:相比MSE多了一步平方根计算。

3. 适用场景:
同MSE,且需要损失函数值与数据原始单位一致时。

平均绝对误差(MAE: Mean Absolute Error)

1. 计算方式:
在这里插入图片描述
MAE的计算方式将所有样本的绝对误差进行平均,相较于均方误差(MSE)它对于异常值更具有鲁棒性,因为它不会对误差进行平方,不会放大异常值的影响。

2. 特点:
优点:

  • 对异常值的鲁棒性:不会放大异常值的影响。
  • 平均绝对差异度量:MAE直接测量了预测值与真实值之间的平均绝对差异,提供了一个直观的度量。

缺点:

  • 不可导性:MAE在零点附近不可导,这可能会在某些优化算法中带来一些挑战。

3. 适用场景:
平均绝对误差是一个直观且鲁棒的损失函数,特别适用于对异常值不希望过分敏感的回归问题场景。

  • 线性回归:特别是当对异常值不希望过分敏感时
  • 决策树回归:决策树模型的分裂准则通常使用MAE来衡量节点的纯度。
  • 支持向量回归(SVR):MAE 可以用于支持向量回归中,衡量模型的预测值与真实值之间的平均绝对差异程度。
  • K近邻回归(K-Nearest Neighbors Regression)
  • 集成学习方法(如随机森林、梯度提升树等)
  • 需要对异常值不敏感的场景: 当在训练数据中存在一些异常值,但又不希望这些异常值过度影响模型拟合时。

Huber损失

它的概念是在MSE对异常值过于敏感而MAE对所有误差都给予相同权重的情况下,Huber损失引入了一个超参数 δ,通过这个参数来平衡对大误差的处理方式。实现对均方误差(MSE)和平均绝对误差(MAE)的折中。
1. 计算方式:
在这里插入图片描述
2. 特点:
优点:

  • 对异常值的鲁棒性:与MSE相比,Huber损失对异常值更具鲁棒性,因为它在 |yᵢ - ȳ| 大于 δ 时的损失相对较小。
  • 平滑性:Huber损失是一个平滑的损失函数,对于梯度下降等优化算法比MAE更易处理。
  • 平衡损失:根据 δ 的选择,可以在MSE和MAE之间平衡损失的特性。

缺点:

  • 参数调整:需要调整参数δ ,不适当的δ 值可能影响模型性能。

3. 适用场景:
当数据中存在少量异常值且需要模型对大误差和小误差都能进行有效处理时,它提供了一个折中的选择,可以平衡平均绝对误差和均方误差的特性。。

  • 线性回归:特别是当数据集中存在一些可能影响模型拟合的离群值时。
  • 支持向量回归(SVR):在支持向量回归中,Huber损失可以用作损失函数,它允许对大误差的处理方式相对灵活。
  • 梯度提升回归(Gradient Boosting Regression): Huber损失可以用于梯度提升树等集成学习方法中,作为评估模型性能的指标。
  • 岭回归(Ridge Regression)和Lasso回归(Lasso Regression): 当使用岭回归或Lasso回归等正则化方法时,可以考虑使用Huber损失以提高模型对异常值的稳健性。

分类模型

交叉熵损失(Cross-Entropy Loss)

1. 计算方式:
在这里插入图片描述
2. 特点:
优点:

  • 适用性广:广泛用于深度学习模型。
  • 概率解释:损失函数值与概率相关,直观且易于理解。
  • 良好提独特性:对概率预测进行优化效果好。

缺点:

  • 对错误分类惩罚较高:可能导致模型在异常数据上过拟合。

3. 适用场景:
二分类和多分类任务,如图像分类、文本分类等。

Hinge损失(Hinge Loss)

1. 计算方式:
在这里插入图片描述
2. 特点:
优点:

  • 分类边界优化:对分类边界的优化效果好,适用于支持向量机(SVM)。
  • 对大间隔分类器友好:鼓励模型找到更大的分类间隔。

缺点:

  • 仅适用于线性可分问题:对非线性可分问题效果不佳。
  • 不处理概率输出:不能直接用于概率模型。

3. 适用场景:
线性可分问题和支持向量机的应用场景。

KL散度(Kullback-Leibler Divergence)

1. 计算方式:
在这里插入图片描述
2. 特点:
优点:

  • 测量概率分布差异:适用于比较两个概率分布,特别是处理概率模型的输出。
  • 灵活性:适用于多种任务中的概率分布比较。

缺点:

  • 计算不稳定性:当Q(i)很小或为零时,计算结果会不稳定。
  • 不对称性:KL(P||Q)不等于KL(Q||P),需要注意使用场景。

3. 适用场景:
处理概率分布差异的任务,如语言模型、生成对抗网络(GAN)等。

总结

回归模型
均方误差(MSE): 适用于大多数回归问题,特别是异常值较少的情况下。
均方根误差(RMSE): 适用于需要损失函数值与原始数据单位一致的场景。
平均绝对误差(MAE): 适用于对异常值敏感度要求低的场景。
Huber损失: 适用于数据中存在少量异常值且需要综合处理大误差和小误差的场景。

分类模型
交叉熵损失: 广泛适用于二分类和多分类任务,特别是在深度学习中。
Hinge损失: 适用于线性可分问题和支持向量机应用。
KL散度: 适用于需要比较概率分布的任务,如语言模型和生成对抗网络。

选择合适的损失函数不仅取决于具体的任务和数据特性,还需要考虑模型的优化难度、对异常值的处理能力以及应用场景的具体要求。

参考文章:
https://blog.csdn.net/weixin_42367888/article/details/139554305

https://blog.csdn.net/master_hunter/article/details/134154340

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2051686.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MT6705 同步整流

MT6705B 是用于反激式变换器的高性能45V同步整流。MT6705B兼容各种反激转换器类型。支持 DCM、CCM 和准谐振模式。MT6705集成了一个40V功率MOSFET&#xff0c;可以取代肖特基二极管&#xff0c;提高效率。V SW <V TH-ON 时&#xff0c;内部 MOSFET 导通。V SW >V TH-OFF …

Qt/C++地图标注点的添加删除移动旋转/指定不同图标和动图/拿到单击信号

一、前言说明 标注点在地图开发中是最常见的应用场景之一&#xff0c;比如在地图上需要显示设备的位置&#xff0c;基本上都是添加标注点&#xff0c;指定图片和尺寸已经经纬度坐标位置。这个功能在每种地图内核中都提供的&#xff0c;这个并没有任何难点&#xff0c;在这个功…

类和对象 - 构造函数

文章目录 一、语言的向前兼容二、默认成员函数三、构造函数3.1 概念3.2 自己定义的构造函数3.2.1 有参和无参的构造函数3.2.1 有缺省参数的构造函数 3.3 默认构造函数3.3.1 几种默认构造函数3.3.2 默认构造函数的特点 3.4 编译器生成的默认构造函数3.4.1 函数初始化规则 四、构…

Android:动态更新app启动图标和应用名

一、需求背景 每逢重要佳节&#xff0c;很多应用启动图标会自动更新为对应佳节的图标&#xff0c;应用无需更新。 二、效果图 更新后的启动图标和应用名称 三、实现流程 Android app只能替换内置的icon&#xff0c;因此需要提前将logo图标放入App资源文件件里 实际项目App更新…

vue 路由用法 router-view

通过router-view 点击子路由显示子路由关于我们的内容&#xff0c;点击关于信息显示关于信息内容。

【Golang】火焰图空白部分是什么?

起因 被同事灵魂拷问&#xff1a;图中这块空白是什么东西&#xff1f; 豆包回答说是数据采样不完整&#xff0c;特定函数或代码段未被调用之类的原因&#xff0c;感觉都不太合理。 之前看过一篇文章说&#xff1a;Heap Profiling的采样是无时无刻不在发生的&#xff0c;执行…

【数据结构】——十大排序详解分析及对比

【数据结构】——十大排序详解分析及对比 文章目录 【数据结构】——十大排序详解分析及对比前言1. 排序的概念及其运用1.1 排序的概念1.2 排序的应用 2. 插入排序2.1 直接插入排序2.2 希尔排序 3. 选择排序3.1 选择排序3.2 堆排序 4 交换排序4.1 冒泡排序4.2 快速排序4.2.1 霍…

SOMEIP_ETS_047: echoUTF16FIXED_with_odd_number

测试目的&#xff1a; 验证设备&#xff08;DUT&#xff09;是否能够正确处理一个在终止符之后多出一个字节的echoUTF16FIXED字符串&#xff0c;并能够去除这个多余的字节。 描述 本测试用例旨在检查DUT在接收到一个不符合UTF16FIXED字符串规范&#xff08;即在终止符之后多…

Snipaste 的一款替代工具 PixPin,支持 gif 截图、长截图和 OCR 文字识别,功能不是一点点强!

Snipaste 的一款替代工具 PixPin&#xff0c;支持 gif 截图、长截图和 OCR 文字识别&#xff0c;功能不是一点点强&#xff01; PixPin 的名字来源于“Pixel Pin”&#xff0c;简单来说是一个截图、贴图的工具&#xff0c;但是 PixPin 以截图和贴图两大功能为核心做了大量的优…

高数4.3 分部积分法

1.性质 2.例题1-sin 有sinx ,cosx一定要想法变成一次方&#xff0c;有tanx,secx,cotx,cscx 要想法变换成偶次幂。 幂和三角函数在一次&#xff0c;要把三角函数放在d&#xff08;&#xff09;里面。 3. 例题2-tan 4. 例题3-反三角

树莓派开发笔记04-树莓派的PWM输出

github主页&#xff1a;https://github.com/snqx-lqh gitee主页&#xff1a;https://gitee.com/snqx-lqh 本项目github地址&#xff1a;https://github.com/snqx-lqh/RaspberryPiLearningNotes 本项目gitee地址&#xff1a;https://gitee.com/snqx-lqh/RaspberryPiLearningNote…

07结构型设计模式——装饰器模式

一、装饰器模式简介 装饰器模式&#xff08; Decorator Pattern&#xff09;又称包装模式。通过一种面向客户端透明的方式来扩展对象的功能&#xff0c;是继承关系的一个替换方案。装饰器模式就是把要添加的附加功能分别放在单独的类中&#xff0c;并让这个类包含它要装饰的对…

求前n项和5.3.1

求他的前n项和 #include <stdio.h>int main() {int n;int i;double sum0.0;scanf("%d", &n);for(i1; i<n; i){sum1.0/i;}printf("%f", sum);return 0; } 一个变量是输入的变量 一个变量要表达递增的 另外一个变量把他们加起来表示总和…

整数分解5.3.2

题 前面写过逆序的 最后一个数后面不要有空格 #include <stdio.h>int main() {int x;scanf("%d",&x);int d;do{dx%10;printf("%d",d);if(x>10){printf(" ");}x/10;}while(x>0);printf("\n");return 0; } 现在这个是…

0818---算法

牛牛快递 如何输入一个字符&#xff1f; java中Scanner类没有.nextChar import java.utol.Scanner; Scanner in new Scanner(System.in); char b in.next().charAt(0);思路&#xff1a; 创建一个Scanner对象&#xff0c;调用Scanner对象的next()方法获取控制台输入的字符串…

Java二十三种设计模式-备忘录模式(19/23)

本文深入探讨了备忘录模式&#xff0c;从定义、组成、实现到使用场景、优缺点、与其他模式的比较&#xff0c;以及最佳实践和替代方案&#xff0c;全面解析了如何在软件开发中有效地保存和恢复对象状态&#xff0c;以支持复杂的撤销操作和历史状态管理。 备忘录模式&#xff1a…

【JAVA OOP】Day09 抽象方法、抽象类、接口、引用类型数组

Day09目标&#xff1a; 理解抽象方法、抽象类的应用场景&#xff1b; 掌握抽象方法、抽象类的语法&#xff1b; 理解接口的应用场景&#xff1b; 掌握接口的语法、应用&#xff1b; 掌握引用类型数组的用法&#xff1b; 代码量&#xff1a;课上120行&#xff0c;课下240行…

AvaloniaChat—从源码构建指南

AvaloniaChat介绍 一个使用大型语言模型进行翻译的简单应用。 我自己的主要使用场景 在看英文文献的过程中&#xff0c;比较喜欢对照着翻译看&#xff0c;因此希望一边是英文一边是中文&#xff0c;虽然某些软件已经自带了翻译功能&#xff0c;但还是喜欢大语言模型的翻译&…

2-69 基于matlab的三坐标雷达目标跟踪数据融合

基于matlab的三坐标雷达目标跟踪数据融合,采用的是概率数据关联算法和EKF&#xff0c;展示了目标的真实轨迹和跟踪滤波轨迹&#xff0c;以及数据融合的轨迹。程序已调通&#xff0c;可直接运行。 2-69 三坐标雷达目标跟踪数据融合 - 小红书 (xiaohongshu.com)

『 Linux 』利用UDP套接字简单进行网络通信

文章目录 Socket常见API转网络字节序网络数据传输的读网络数据传输的写 简单的UDP网络程序服务端基本结构Init() 服务端的初始化Run() 服务端的运行服务端启动及测试 简单的UDP网络程序客户端服务端客户端相互通信测试服务端通过传入命令处理实现远程命令执行参考代码 Socket常…