回归问题的损失函数

简单来说,​在回归问题中,最常用的损失函数是均方误差(MSE, Mean Squared Error)和平均绝对误差(MAE, Mean Absolute Error)​。它们衡量的都是模型预测值(ŷ)与真实值(y)之间的“距离”或“差异”。

下面我来详细解释它们的意思、区别和用途。

1. 均方误差 (MSE) - L2 Loss​是什么意思?​

均方误差是回归问题中最常见、最基础的损失函数。它的计算方法是:

  1. 1.先计算每一个数据点的预测值与真实值的差(误差)。
  2. 2.将这个差平方​(所以叫“均方”)。
  3. 3.将所有数据点的平方误差加起来,再求平均。

数学公式:​

其中:

  • n是样本数量。
  • yi​是第 i个样本的真实值。
  • y^​i​是模型对第 i个样本的预测值。

直观理解与特点:​

  • 放大大的误差​:因为误差被平方了,所以如果一个预测误差很大(例如误差为10,平方后变成100),它会比多个小误差(例如多个误差为1,平方后还是1)对总损失的贡献大得多。
  • 曲线光滑​:数学性质很好,便于求导(它的导数是一个线性函数),这使得在梯度下降等优化算法中非常高效。
  • 对异常值敏感​:这是它的一个主要缺点。如果数据中存在少数偏离很大的异常值,MSE会变得非常大,模型会为了拟合这些异常值而牺牲对整体数据的拟合效果。

用途​:广泛应用于各种回归问题,是很多模型的默认损失函数。


2. 平均绝对误差 (MAE) - L1 Loss​是什么意思?​

平均绝对误差的计算方法是:

  1. 1.计算每一个数据点的预测值与真实值的差的绝对值
  2. 2.将所有绝对误差加起来,再求平均。

数学公式:​

直观理解与特点:​

  • 线性惩罚误差​:无论误差是1还是10,它对总损失的贡献就是1和10,是线性的关系。不会特别放大大的误差。
  • 对异常值更鲁棒​:正因为它是线性惩罚,所以个别异常值不会像在MSE中那样对损失产生巨大的影响,模型不会轻易被异常值“带偏”。
  • 曲线不光滑​:在零点处不可导(导数突然从-1变为+1),这在优化时可能不如ME高效(但在实际中可以通过次梯度等方法解决)。

用途​:当你认为数据中含有异常值,并且不希望模型过度关注这些异常点时,MAE是一个很好的选择。


对比与总结

特性

均方误差 (MSE)

平均绝对误差 (MAE)

计算方式

误差的平方的平均

误差的绝对值的平均

对异常值

敏感

不敏感(更鲁棒)​

梯度性质

光滑,易于优化

在零点不可导,优化稍复杂

解读

惩罚大的误差非常严厉

对所有误差一视同仁


另一个重要的损失函数:Huber Loss

你可能会问,有没有一个损失函数能结合MSE和MAE的优点呢?答案是有的,这就是 ​Huber Loss

Huber Loss​ 是一个混合损失函数。它在一个阈值 δ(delta)范围内,它的行为像MSE​(曲线光滑,易于优化);当误差超过这个阈值时,它的行为像MAE​(对大的异常值更鲁棒)。

特点​:

  • best of both worlds​:兼具MSE的优化友好和MAE的异常值鲁棒性。
  • 需要超参数​:你需要手动设置一个阈值 δ。

用途​:当数据中明显存在异常值,但你又不愿意完全使用MAE时,Huber Loss是一个非常出色的折中方案。

总结

  • 分类问题的核心是预测概率分布,所以用交叉熵来衡量两个分布之间的差异。
  • 回归问题的核心是预测一个连续值,所以用基于距离的损失函数​(如MSE, MAE)来衡量预测值与真实值的差距。
  • MSE是最常用的,数学性质好,但对异常值敏感。
  • MAE对异常值不敏感,但优化起来稍麻烦。
  • Huber Loss是一个聪明的结合体,在很多情况下能提供更好的性能。

选择哪个损失函数取决于你的数据、模型和你最关心什么。通常可以从MSE开始,如果发现模型效果受异常值影响很大,再尝试MAE或Huber Loss。

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

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

相关文章

吴恩达机器学习(四)

一、神经网络神经元模拟逻辑单元:神经网络简单模型:神经网络中的前向传播过程:依次计算激活项,从输入层到隐藏层再到输出层的过程。样例:多元分类:

【重学 MySQL】九十三、MySQL的字符集的修改与底层原理详解

【重学 MySQL】九十三、MySQL的字符集的修改与底层原理详解一、字符集修改方法1. **配置文件修改**2. **SQL命令修改**3. **数据迁移方案**二、底层原理与注意事项1. **字符集与排序规则**2. **存储与性能影响**3. **数据一致性风险**三、常见问题解决1. **乱码问题**2. **性能…

pdf 转图片工具实现

一、安装 sudo yum install poppler-utils pdftoppm -v pdftoppm -png -r 300 a.pdf /tmp/page 运行效果: PDF转图片工具 - 在线PDF转PNG/JPG/TIFF转换器 | 免费在线工具 后台实现: using System.Diagnostics; using System.IO.Compression;namespac…

Zynq开发实践(FPGA之输入、输出整合)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】fpga开发的时候习惯上先把功能拆分成若干个模块。针对这些模块,一个一、个实现好之后,再用wire连接即可。这一点有点像软件编…

【Linux基础】深入理解计算机启动原理:MBR主引导记录详解

目录 引言 1 硬盘分区初始化概述 1.1 为什么需要硬盘分区 1.2 硬盘分区格式的发展 1.3 分区初始化的基本流程 2 MBR详解 2.1 MBR的定义与位置 2.2 MBR的结构详解 2.3 分区表结构详解 2.4 MBR的工作原理 2.5 MBR的引导程序 3 MBR的局限性 3.1 硬盘容量限制 3.2 分…

Linux 线程同步

线程同步 由于线程共享内存,访问共享数据(全局变量、堆内存)必须进行同步,以防止竞态条件(Race Conditions)导致数据不一致或程序崩溃。 子线程没有独立的地址空间,数据通常是共享的&#xff1b…

世界模型的典型框架与分类

1.概述 人类和动物智能的一个重要方面是我们对世界的内部模型。我们使用这个模型来预测我们的行为将如何影响我们的环境,预测未来的事件,并计划复杂的行动序列以实现目标。当前大多数机器学习研究都集中在被动理解数据的模型上,例如图像分类…

【Day 35】Linux-Mysql错误总结

(一)MySQL 基础操作与服务故障类 连接层错误(客户端与服务器的连接建立失败) 解决 socket 路径、文件存在性及服务可用性问题。 1、MySQL 客户端连接失败(报错 “Cant connect to local MySQL server throgh socket…

MYSQL速通(2/5)

六、多表查询1、多表关系①、一对多(多对一)举例:一个部门对多个员工实现:多的那边建立外键,指向一的那边的主键②、多对多举例:一个学生可选多门课,一门课可被多个学生选实现:建立中…

CRM、ERP、HRP系统有啥区别?

要理解CRM、ERP、HRP系统,需先明确三者的核心定位(聚焦客户、企业全资源、特定领域资源),再从管理范围、目标、用户等维度区分。以下是详细解析: 一、各系统核心定义与核心模块 1. CRM系统:客户关系管理系统…

【系统分析师】高分论文:论系统测试技术及应用

【摘要】 2022 年 7月,我作为项目负贵人,参加了某银行的统计数据发布系统建设项目。该项目合同金额230 万元,合同工期为半年。统计数据发布系统的主要目标是为该行建设一个企业级的数据统计、分析、发布平台,实现定制化的数据应用…

第5篇 c++ 函数的多返回值实现-返回多个值

c 函数的多返回值实现std::tuple<Mat, int, double, std::string> AuatoPafackSydstem::GetMatchingValue(Mat mat_img, std::string img_template_path) {Mat a;return {a,1,0.001,""}; }std::tuple<Mat, int, double, std::string> GetMatchingValue(M…

C++基础(⑤删除链表中的重复节点(链表 + 遍历))

题目描述 给定一个排序好的链表&#xff08;升序&#xff09;&#xff0c;删除所有重复的元素&#xff0c;使每个元素只出现一次。 示例&#xff1a; 输入&#xff1a;1 → 1 → 2 → 3 → 3 输出&#xff1a;1 → 2 → 3 解题思路 核心观察&#xff1a;链表已排序&#xff0c;…

摩搭api 实现

AI图片生成器前端实现详解本文详细解析一个功能完整的AI图片生成器前端实现&#xff0c;包含主题切换、参数配置、图片生成与预览等核心功能。项目概述 这是一个基于ModelScope平台的AI图片生成器前端实现&#xff0c;用户可以通过输入提示词、选择模型和调整参数来生成高质量图…

c++--线程休眠/sleep

线程休眠<unistd.h>--sleep()<thread>--std::this_thread::sleep_for()ros--rclcpp::sleep_for()以上的三个sleep也就是休眠会占用CPU吗简单直接的回答是&#xff1a;不会。一个正确使用、正在休眠的线程不会占用CPU资源。核心原理当你调用像 std::this_thread::sl…

人工智能基础概念

The brain happens to be a meat machine. —— Marvin Lee Minsky 目录 人类智能 人工智能 三个阶段 三大学派 四个要素 关系辨析 维度分类 发展简史 技术方向 应用领域 产业图谱 发展趋势 人类智能 人工智能的目的是通过探索智慧的实质&#xff0c;扩展人类智能…

企业数字资产管理怎么转型更高效?一文打通策略与实践

核心要点 问题&#xff1a; 传统的内容管理方式效率低、协作难、版本混乱&#xff0c;企业转型 DAM 系统面临选型难和落地难两大挑战。 答案&#xff1a; 采用阶段性转型策略&#xff0c;结合智能化工具和标准化流程&#xff0c;能帮助企业构建可扩展、易协作、强治理的内容资…

python pyqt5开发DoIP上位机【源码】

目录 文章合集 文章合集 python pyqt5开发DoIP上位机【介绍】 python pyqt5开发DoIP上位机【代码里发送常用uds命令是怎么实现的?】 python pyqt5开发DoIP上位机【代码里是怎么获取诊断回复的?】 python pyqt5开发DoIP上位机【诊断回复的函数都是怎么调用的?】 python …

IIC (I2C)通信

一、IIC的特点I2C&#xff08;Inter IC Bus&#xff09;又成为&#xff08;爱方C I2C&#xff09;是由Philips公司开发的一种通用数据总线两根通信线&#xff1a;SCL&#xff08;Serial Clock&#xff09;、SDA&#xff08;Serial Data&#xff09;同步&#xff0c;半双工带数据…

【图像处理 - 基础知识】ISP(Image Signal Processor)处理

文章目录1. 图像传感背景2. 图像数据格式2.1. 【RAW】Bayer滤色阵列&#xff08;Bayer Filter Array&#xff09;2.2. 【RGB】2.3. 【YUV】3. ISP&#xff08;Image Signal Processor&#xff09;3.1. ISP定义3.2. 分类概括1 RAW 域&#xff08;Raw Domain&#xff09;2 RGB 域…