【深度学习】各领域常用的损失函数汇总(2024最新版)

news2024/11/26 10:39:47

目录

1、L1 损失、平均绝对误差(L1 Loss、Mean Absolute Error,MAE)

2、L2 损失、均方误差(L2 Loss、Mean Squared Error,MSE)

3、交叉熵损失(Cross-Entropy Loss)

4、混合损失(Combined Losses)

5、Dice Loss 或 IoU Loss

6、对抗损失(Adversarial Loss)

7、对比损失(Contrastive Loss)/ 三重损失(Triplet Loss)

以下是一些常用的损失函数,可根据不同的应用场景进行选择和组合: 

1、L1 损失、平均绝对误差(L1 Loss、Mean Absolute Error,MAE)

        适用于回归任务,L1 损失计算预测值与真实值之间差的绝对值,对异常值不那么敏感。 

L 1=\frac{1}{N} \sum_{i=1}^N\left|y_i-\hat{y}_i\right|

其中,N是样本数量,y_i 是第 i 个样本的真实值,\hat{y}_i 是第 i 个样本的预测值。

        L1 损失 更适合处理异常值,因为它不会像 L2 损失那样对较大的误差赋予过高的惩罚。

2、L2 损失、均方误差(L2 Loss、Mean Squared Error,MSE)

        适用于回归任务,L2 损失计算预测值与真实值之差的平方,适用于输出连续值的任务。

L 2=\frac{1}{N} \sum_{i=1}^N\left(y_i-\hat{y}_i\right)^2

其中,N是样本数量,y_i 是第 i 个样本的真实值,\hat{y}_i 是第 i 个样本的预测值。

        L2 损失 通常会导致模型在预测时试图最小化所有样本误差的平方和,这可能导致模型对异常值过于敏感。

这张图展示了 L1 损失(绝对误差损失)和 L2 损失(均方误差损失)随预测误差变化的情况:

        L1 损失 在误差为零的地方形成了一个角点,其余部分是线性的。

        L2 损失 在误差为零时更加平滑,但随着误差的增大,损失的增速比 L1 损失快得多。

        所以 L1 损失对于大误差的惩罚相对较小,而 L2 损失对于大误差的惩罚更为严厉。 ​

3、交叉熵损失(Cross-Entropy Loss)

        适用于分类任务,对于二分类问题,可以使用二元交叉熵(Binary Cross-Entropy),又称作对数损失;

L(y, \hat{y})=-\frac{1}{N} \sum_{i=1}^N\left[y_i \log \left(\hat{y}_i\right)+\left(1-y_i\right) \log \left(1-\hat{y}_i\right)\right]

其中 L 是损失函数, N 是样本的数量, y_i 是第 i 个样本的真实标签(0或1), \hat{y}_i 是第 i 个样本的预测概率。

        对于多分类问题,使用多类别交叉熵(Categorical Cross-Entropy)。

4、混合损失(Combined Losses)

        在某些情况下,你可能需要结合多种损失函数。例如,在一个多任务学习场景中,你可以将 MSE 用于回归任务的输出,同时将交叉熵用于分类任务的输出。

5、Dice Loss 或 IoU Loss

        在图像分割任务中常用,尤其是当类别不平衡时。这些损失函数关注预测区域与真实区域的重叠程度。

6、对抗损失(Adversarial Loss)

        在使用生成对抗网络(GANs)的应用中常见,例如风格转换或图像生成任务。

7、对比损失(Contrastive Loss)/ 三重损失(Triplet Loss)

        在度量学习和某些类型的嵌入学习中使用,特别是在需要学习输入之间关系的场景中。

        在实际应用中,可以根据任务的具体需求和网络的输出特性选择合适的损失函数,甚至可以设计自定义的损失函数以更好地适应特定的应用场景。同时,还可以对不同输出的损失进行加权,以反映不同任务的重要性。

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

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

相关文章

【React系列】Redux(三) state如何管理

本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. reducer拆分 1.1. reducer代码拆分 我们来看一下目前我们的reducer: function reducer(state ini…

【Spring实战】21 Spring Data REST 常用功能详细介绍

文章目录 1. 资源导出(Resource Exporting)2. 查询方法(Query Methods)3. 分页和排序(Pagination and Sorting)4. 关联关系(Associations)5. 事件(Events)6. …

【Go】excelize库实现excel导入导出封装(二),基于map、多个sheet、多级表头、树形结构表头导出,横向、纵向合并单元格导出

前言 大家好,这里是符华~ 之前写了一篇 go excelize库封装导入导出 的博客,然后那篇博客还挖了个坑,结果这个坑差点就填不上了🤣还好经过我的不懈努力,总算是把坑给填上了。。。 挖坑 上一篇文章中,我们…

使用fabric.js实现对图片涂鸦、文字编辑、平移缩放与保存功能

文章目录 背景1.初始化画布1.创建画布2.设置画布大小 2.渲染图片3.功能:开启涂鸦4.功能:添加文字5.旋转图片6.画布平移7.画布缩放8.保存图片9.上传图片10.销毁实例11.总结 背景 项目中有个需求,需要对图片附件进行简单的编辑操作&#xff0c…

网络故障问题一般性检查排查思路

一、基本连通性检查 在网络中ping是一个十分强大的TCP/IP工具。它可以用来检测网络的连通情况和分析网络速度、也可以ping网址根据域名得到服务器IP、同时我们根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量。 ping 网址,有几种输出情况&a…

【OpenCV】在MacOS上使用OpenCvSharp

前言 OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,它具有C,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS。OpenCvSharp是一个Op…

Flume基础知识(七):Flume 事务与 Flume Agent 内部原理

1. Flume 事务详解 2. Flume Agent 内部原理 重要组件: 1)ChannelSelector ChannelSelector 的作用就是选出 Event 将要被发往哪个 Channel。其共有两种类型, 分别是 Replicating(复制)和 Multiplexing(多…

如何计算非线性负载的功率需求?

非线性负载的功率需求计算是一个相对复杂的过程,因为非线性负载的电流和电压之间的关系不是简单的正比关系。在计算非线性负载的功率需求时,需要考虑负载的特性、工作状态以及电源电压等因素。 确定负载的类型:首先需要了解负载的具体类型&am…

MS713/MS713T:CMOS 低压、4Ω四路单刀单掷开关,替代ADG713

产品简述 MS713/MS713T 是一款单芯片 CMOS 4 路可选择开关,具有低 功耗、高开关速度、低导通阻抗、低漏电和高带宽特性。其工作 电压范围是 1.8V 到 5.5V ,可以广泛应用在电池供电仪器仪表、新 一代的模数转换和数模转换系统中。其高带宽特性可用在 …

接口测试基础知识总结

一、HTTP 1、http请求头和响应头包含那些内容? 请求头信息 请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。 2、常用的请求报头如下: Accept:浏览器可接受的MIME类型。 l MIME用于设定某种扩展名的文件用哪种应…

ubuntu远程桌面连接之vnc

一、前言 ubuntu安装图形化桌面以后,有些时候出于需要会想要进行远程桌面连接。ubuntu想要进行远程桌面连接就需要vnc服务的支持,安装vnc的方法有很多,博主也试过一些方式,但是安装完后使用vnc连接工具发现是花屏,无法正常使用。后来发现一种简单的方式即可配置好vnc连接,…

计算机毕业设计 基于Java的供应商管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【赠书第16期】码上行动:用ChatGPT学会Python编程

文章目录 前言 1 ChatGPT简介 2 Python编程简介 3 使用ChatGPT学习Python编程 4 如何使用ChatGPT学习Python编程 5 推荐图书 6 粉丝福利 前言 随着人工智能技术的不断发展,聊天机器人已经成为我们日常生活和工作中不可或缺的一部分。其中,ChatGP…

MEW-UNet:医学图像分割中的频域多轴表示学习

文章目录 摘要1、简介2、相关研究2.1、医学图像分割2.2、基于ViT的技术 3、我们的方法3.1、准备工作3.2、多轴外部权重块3.3、外部权重生成器 4、实验4.1、数据集4.2、实现细节4.3、与当前最佳方法的比较4.4、消融实验4.5、可视化 5、结论声明 摘要 https://arxiv.org/pdf/231…

uniapp 无限级树形结构面包屑、单选-多选、搜索、移除功能插件,基于【虚拟列表】高性能渲染海量数据,加入动态高度、缓冲区

hyq-tree-vtw 无限级树形结构面包屑、单选-多选、搜索、移除功能 示例项目 单选-user 单选-任意一项 多选-关联下级 多选-任意一项 已选择数据弹框 说明 本插件需要使用uni-popup、uni-transition用于已选择数据弹框,因此需要有这些依赖,请自行导入本插件基于【虚…

Maven多模块项目架构配置介绍和实战

项目采用的是Maven多模块架构,项目的部分子模块的pom.xml中重复引用了相同的JAR包。很明显,当初在配置Maven模块的时候,没有考虑清楚各个模块的架构职责,同时也不了解Maven模块依赖的传递性。主要介绍一下Maven多模块的配置思路和…

基于深度学习大模型实现离线翻译模型私有化部署使用,通过docker打包开源翻译模型,可到内网或者无网络环境下运行使用,可以使用一千多个翻译模型语言模型进行翻译

基于深度学习大模型实现离线翻译模型私有化部署使用,通过docker打包开源翻译模型,可到内网或者无网络环境下运行使用,可以使用一千多个翻译模型语言模型进行翻译,想要什么语种直接进行指定和修改就行。 环境要求,电脑内存低于8G建议不要尝试了,有无GPU都可以运行,但是有…

geemap学习笔记041:Landsat Collection2系列数据去云算法总结

前言 去云算法是进行数据处理中所要进行一步重要操作,Sentinal-2数据中已经提供了去云算法,但是Landsat Collection2系列数据中并没有提供去云算法,下面就以Landsat 8 Collection2为例进行介绍。 1 导入库并显示地图 import ee import gee…

http 503 错误

503错误是一种HTTP状态码,表示你请求的网站或服务暂时不可用,通常是因为服务器过载或维护,你可能会看到类似这样的提示:503 Service Unavailable、503 Service Temporarily Unavailable、HTTP Server Error 503、HTTP Error 503 I…

Linux_CentOS_7.9配置时区及NTPdate同步之简易记录

前言:ntpdate命令来自英文词组”NTPdate“的拼写,其功能是用于设置日期和时间。ntpdate命令能够基于NTP协议设置Linux系统的本地日期和时间,利用NTP服务的时钟过滤器来选择最优方案,大大提高了可靠性和精度,让系统时间…