损失函数分类

news2024/12/27 7:16:45

1. NLLLoss(负对数似然损失)

定义:

  • 直接对预测的概率 p(yi) 的负对数求平均。
  • 通常配合 Softmax 使用,输入为对数概率。
优点:
  • 对离散分类问题效果良好。
  • 更灵活,用户可以自行计算 Softmax。
缺点:
  • 需要输入已经经过 LogSoftmax 的对数概率。
  • 使用不便,现代任务中常被 CrossEntropyLoss 替代。
适用场景:
  • 分类问题,尤其是多分类问题。

2. CrossEntropyLoss

定义:

  • 内部集成了 SoftmaxNLLLoss 的计算。
优点:
  • 集成了 Softmax 和对数概率计算,使用简单方便。
  • 稳定性更高,避免了数值溢出问题。
缺点:
  • 不适用于多标签分类任务。
  • 输出需要为原始 logits。
适用场景:
  • 图像分类、文本分类等多分类任务。

3. BCELoss

定义:

  • 用于二分类任务,输入为概率值(通常在 [0, 1])。
优点:
  • 简单直观,适合二分类问题。
  • 适用于多标签分类(标签独立)。
缺点:
  • 输入必须经过 Sigmoid 函数,使用不如 BCEWithLogitsLoss 方便。
  • 数值稳定性较差,容易出现浮点溢出。
适用场景:
  • 二分类任务,如情感分析、垃圾邮件分类。
  • 多标签分类任务。

4. BCEWithLogitsLoss

定义:

  • 结合了 Sigmoid 和 BCELoss 的计算。
优点:
  • 自动处理 Sigmoid 和数值稳定性问题。
  • 更高效,推荐替代 BCELoss。
缺点:
  • 使用时需要注意输入为 logits,而非概率值。
适用场景:
  • 同 BCELoss,但推荐优先使用。

5. MSE(均方误差)

定义:

  • 衡量预测值和真实值之间的平方差。
优点:
  • 对小误差更敏感,优化平滑,易于收敛。
  • 实现简单,适用范围广。
缺点:
  • 对异常值非常敏感,可能导致模型过拟合异常值。
适用场景:
  • 连续值预测(如回归任务)。
  • 自监督任务(如自编码器)。

6. MAE(均绝对误差)

定义:

  • 衡量预测值和真实值之间的绝对差。
优点:
  • 对异常值更鲁棒,不会过分放大大的误差。
缺点:
  • 优化不平滑,梯度在零点不连续,可能导致收敛变慢。
适用场景:
  • 数据中可能存在异常值的回归任务。

7. SmoothL1Loss

定义:

  • 结合了 MSE 和 MAE 的优点。
优点:
  • 对小误差效果类似 MSE,收敛快;对大误差类似 MAE,鲁棒性好。
  • 平滑优化过程,适合复杂任务。
缺点:
  • 参数较多(如阈值),需要调试。
适用场景:
  • 目标检测中的回归(如边框偏移)。
  • 对异常值敏感但仍需要高精度的回归任务。

总结对比表格

损失函数定义适用任务优点缺点
NLLLoss负对数似然多分类任务灵活,自定义 Softmax需要 LogSoftmax,使用麻烦
CrossEntropyLoss集成 Softmax 和 NLLLoss多分类任务使用方便,数值稳定不支持多标签分类
BCELoss二分类交叉熵二分类、多标签分类简单直观需手动加 Sigmoid,数值易溢出
BCEWithLogitsLossBCELoss + Sigmoid二分类、多标签分类自动加 Sigmoid,数值稳定需输入 logits,无法直接输入概率
MSE均方误差连续值预测平滑优化,易收敛对异常值敏感
MAE均绝对误差连续值预测对异常值鲁棒优化不平滑,梯度零点不连续
SmoothL1LossMSE + MAE 结合回归、目标检测平滑优化,兼顾精度和鲁棒性参数较多,需调试

选择建议

  1. 分类任务:

    • 二分类:优先使用 BCEWithLogitsLoss
    • 多分类:使用 CrossEntropyLoss
    • 多标签分类:可使用 BCELossBCEWithLogitsLoss
  2. 回归任务:

    • 精确值预测:MSE
    • 数据有异常值:MAESmoothL1Loss
  3. 特殊场景:

    • 自定义 Softmax:使用 NLLLoss
    • 目标检测:SmoothL1Loss

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

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

相关文章

【热门主题】000072 分布式数据库:开启数据管理新纪元

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【热…

算法笔记:力扣148. 排序链表

思路: 将链表中的节点一一取出放到list集合中,然后通过Comparator实现排序,对排序好的list节点一一取出,组成排序好的新链表。 关键思路: Comparator实现对ListNode的排序; 💡注意&#xff…

Kafka知识体系

一、认识Kafka 1. kafka适用场景 消息系统:kafka不仅具备传统的系统解耦、流量削峰、缓冲、异步通信、可扩展性、可恢复性等功能,还有其他消息系统难以实现的消息顺序消费及消息回溯功能。 存储系统:kafka把消息持久化到磁盘上&#xff0c…

MacOS安装MySQL数据库和Java环境以及Navicat

安装MySQL 去官网下载:MySQL 下载好后安装,在设置里往下滑,出现了这样,就代表安装成功了 接下来配置环境: 首先在我们的设备上找到终端并打开,输入 vim ~/.bash_profile(注意vim后面的空格),输入完成后点击…

Css、less和Sass(SCSS)的区别详解

文章目录 Css、less和Sass(SCSS)的区别详解一、引言二、CSS 简介1.1、CSS 示例 三、Less 简介2.1、Less 特性2.2、Less 示例 四、Sass(SCSS)简介3.1、Sass 特性3.2、SCSS 示例 五、总结 Css、less和Sass(SCSS&#xff…

misc-好久不见17

wireshark_secret Ctrlshirtv 8、热心助人的小明同学 使用工具volatility查看镜像的信息 volatility_2.6_win64_standalone -f image.raw imageinfo 列出所有用户和密码: volatility_2.6_win64_standalone -f image.raw --profileWin7SP1x86_23418 hashdump Xi…

利用PyTorch Profiler实现大模型的性能分析和故障排查

本文介绍PyTorch Profiler结合TensorBoard分析模型性能,分别从数据加载、数据传输、GPU计算、模型编译等优化思路去提升模型训练的性能。最后总结了一些会导致CPU和GPU同步的常见的PyTorch API,在使用这些API时需要考虑是否会带来性能影响。 PyTorch Pr…

关于IDE的相关知识之三【插件安装、配置及推荐的意义】

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于ide插件安装、配置及推荐意义的相关内容…

ECharts柱状图-交错正负轴标签,附视频讲解与代码下载

引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个柱状图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供…

预处理详解(完结篇)

⽬录 一. 什么是预处理 c 1 预定义符号 2. #define定义常量 3 . #define定义宏 4. 带有副作⽤的宏参数 5. 宏替换的规则 6 宏函数的对⽐ 三 #和## 四 命名约定 五. #undef 一 什么是预处理 有许多文件中都内容我们是看不懂的,那怎么才能令…

【k8s】监控metrics-server

metrics-server介绍 Metrics Server是一个集群范围的资源使用情况的数据聚合器。作为一个应用部署在集群中。Metric server从每个节点上KubeletAPI收集指标,通过Kubernetes聚合器注册在Master APIServer中。为集群提供Node、Pods资源利用率指标。 就像Linux 系统一样…

ERP 入库生产第一个版本完成

剩下的逻辑都是基于入库表达操作,资源划分,在销售,出库 windows 下直接部署 mysql 数据库,更轻量一些

ESP32-S3模组上跑通ES8388(12)

接前一篇文章:ESP32-S3模组上跑通ES8388(11) 二、利用ESP-ADF操作ES8388 2. 详细解析 上一回解析了es8388_init函数中的第5段代码,本回继续往下解析。为了便于理解和回顾,再次贴出es8388_init函数源码,在…

对于相对速度的重新理解 - 15

换一个视角看待能量可能一切都更为清晰,从, 可以意识到,最终质量 指的是 的数量。这个数量就是 我们可以去除电性振动和磁性振动的影响,把这两种振动的影响归结在 里面,这就像是,有一百万个某种物体&#x…

记一次腾讯云海外服务器http能正常访问https访问拒绝问题处理过程

最近双十一, 购了一台腾讯云的海外服务器, 开通后就是一堆的服务器软件安装数据上传和配置,没想到,等待配置完成后才发现https无法正常访问,于是开启了自查。 1. 检查nginx软件的ssl配置 nginx http https配置参考 server {l…

Java 单元测试模拟框架-Mockito 的介绍

Mockito 是什么 Mockito 是一个用于单元测试的模拟框架,基于它可以使用简洁易用的API编写出色的测试。 Mockito 允许开发人员创建和管理模拟对象(mock objects),以便在测试过程中替换那些不容易构造或获取的对象。 Mockito的基本…

分享一款 Vue 图片编辑插件 (推荐)

💥本篇文章给大家分享一款强大到没朋友的Vue图片编辑插件,可以对图片进行旋转、缩放、裁剪、涂鸦、标注、添加文本等,快来试试并收藏吧!💕 这是一款对图片进行旋转、缩放、裁剪、涂鸦、标注、添加文本在线处理的图片处…

在基于控制器的 API 和最小 API 之间进行选择

文章目录 ASP.NET Core 支持两种创建 API 的方法:基于控制器的方法和最小 API。 API 项目中的控制器是派生自 ControllerBase 的类。 最小 API 在 Lambda 或方法中使用逻辑处理程序定义终结点。 本文解释了这两种方法之间的差异。 最小 API 的设计默认隐藏了主机类…

【UVM】phase机制

Phase的种类 funcion phase 不消耗仿真时间 八种(图中白色背景) task phase 消耗仿真时间 一种(图中灰色背景),run_phase又可以细分为十二种 Phase的功能 bulid_phase:uvm_component类的实例化&…

《装甲车内气体检测“神器”:上海松柏 K-5S 电化学传感器模组详解》

《装甲车内气体检测“神器”:上海松柏 K-5S 电化学传感器模组详解》 一、引言二、K-5S 电化学传感器模组概述(一)产品简介(二)产品特点(三)产品适用场景 三、电化学传感器原理及优点(一&#xf…