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

目录

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.mzph.cn/news/597038.shtml

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

相关文章

webpack的深入学习与实战(持续更新)

一、何为Webpack Webpack是 一个开源的JavaScript模块打包工具,其最核心的功能是解决模块之间的依赖,把各个模块按照特定的规则和顺序组织在一起,最终合并为一个JS文件或多个。 二、带宽的换算 目前我们的云服务器带宽为5M 三 、bundle 体…

【算法挨揍日记】day34——647. 回文子串、5. 最长回文子串

647. 回文子串 647. 回文子串 题目描述: 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串&am…

202365读书笔记|《温暖和百感交集的旅程》——时间帮助着一个人的一生在几千字的篇幅里栩栩如生

202365读书笔记|《温暖和百感交集的旅程》——时间帮助着一个人的一生在几千字的篇幅里栩栩如生 我能否相信自己温暖和百感交集的旅程前言和后记 《温暖和百感交集的旅程》作者余华,之前读完的一本书,已经不太记得内容了,看着笔记整理的这篇书…

用数据结构python写大数计算器

下面是一个基于Python的大数计算器的示例代码: class BigNumberCalculator:def __init__(self, num1, num2):self.num1 num1self.num2 num2staticmethoddef add(num1, num2):result carry 0len1, len2 len(num1), len(num2)max_len max(len1, len2)for i in …

【进程间通信】

什么是进程通信 进程通信( InterProcess Communication,IPC)就是指进程之间的信息的传播和交换。 进程是分配系统资源的单位,包括内存地址空间,为了保证安全,一个进程不能直接访问另一个进程的地址空间&a…

KLR技术支持工程师笔试题(包含Linux、计网知识)

文章目录 前言一、选择题总结 前言 深圳市KLRKJYXGS技术支持工程师笔试题博主回忆版,仅供大家学习。 一、选择题 1、Linux 系统中 DNS 服务进程名为( ) A. named B. httpd C. ftpd D. SysLog 【答案】A 【解析】 2、在 UINX/Linux 中&#…

PO模式。

对项目进行梳理和总结 1.整个项目中的文件解析 2.每个文件包和模块具体的使用规范 3.整个项目中的模块与文件之间的联系 4.各个模块及包之间的导入使用 5.整体从项目完成之后的角度出发去将军项目搭建流程以及使用规范 搭建app自动化测试环境 安卓的sdk java的sdk 安装app…

instant ngp win11 安装笔记

目录 训练保姆级教程: instant ngp安装参考: 编译步骤1 编译步骤2 我把编译成功的库分享到百度网盘了 训练保姆级教程: 英伟达NeRF项目Instant-ngp在Windows下的部署,以及数据集的制作(适合小白的保姆级教学)_colmap2nerf.p…

2023我的 python 编程之旅:从入门到熟练我用了5年,从构思到发文只用了3个月!

我与python的初次相见 一切都是大数据做主。当时我记得很清楚,是19年初,正值准备大学毕业和研究生入学前的一段空闲期。那个时候总会有各种形式的编程语言广告进入我的视野,勾起了被C语言伤害的痛苦和不甘。正好有时间和精力,再加…

CMake入门教程【核心篇】属性管理set_property和get_property

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「本文的内容」:CMake入门教程 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1.概述2.设置属性 - …

FPGA设计时序约束十五、Set_Bus_Skew

目录 一、序言 二、Set Bus Skew 2.1 基本概念 2.2 设置界面 2.3 命令语法 2.4 报告分析 三、工程示例 3.1 工程代码 3.2 时序报告 四、参考资料 一、序言 在时序约束中,对时钟的约束除了set clock latency,set clock uncertainty,set input jitter外&…

merge发生冲突时 ☞ 撤销merge

场景:merge发生冲突时☞撤销merge 1. git checkout dev 2. git pull origin release 3. 发生冲突git merge --abort git reset --hard HEAD git reset --hard 8ec554Further Reading :Git常用命令汇总

【C语言数据结构】堆排序讲解

>>知识传送站&#xff1a; 排序算法&#xff1a;堆排序【图解代码】_哔哩哔哩_bilibili 一.代码部分&#xff1a; //堆排序 #include<stdio.h> #include<stdlib.h> #include<string.h> void swap(int* a,int* b)//用于换位 {int tamp;tamp*a;*a*b;*…

51、全连接 - 特征的全局融合

Resnet50 中的核心算法,除了卷积、池化、bn、relu之外,在最后一层还有一个全连接。 下图是 Resnet50 网络结构结尾的部分,最后一层 Gemm(通用矩阵乘法)实现的就是全连接操作。而矩阵乘法我们之前介绍过,传送门在:矩阵乘。 卷积也好,矩阵乘法也好,其目的都是为了完成神…

JavaWeb基础(1)- Html与JavaScript(JavaScript基础语法、变量、数据类型、运算符、函数、对象、事件监听、正则表达式)

JavaWeb基础&#xff08;1&#xff09;- Html与JavaScript(JavaScript基础语法、变量、数据类型、运算符、函数、对象、事件监听、正则表达式) 文章目录 JavaWeb基础&#xff08;1&#xff09;- Html与JavaScript(JavaScript基础语法、变量、数据类型、运算符、函数、对象、事件…

2024.1.2 Redis 数据类型 Stream、Geospatial、HyperLogLog、Bitmaps、Bitfields 简介

目录 引言 Stream 类型 Geospatial 类型 HyperLogLog 类型 Bitmaps 类型 Bitfields 类型 引言 Redis 最关键&#xff08;应用广泛、频繁使用&#xff09;的五个数据类型 StringListHashSetZSet 下文介绍的数据类型一般适合在特定的场景中使用&#xff01; Stream 类型 St…

Redis命令---Hash(哈希)篇 (超全)

目录 1.Redis Hmset 命令 - 同时将多个 field-value (域-值)对设置到哈希表 key 中。简介语法可用版本: > 2.0.0返回值: 如果命令执行成功&#xff0c;返回 OK 。 示例 2.Redis Hmget 命令 - 获取所有给定字段的值简介语法可用版本: > 2.0.0返回值: 一个包含多个给定字段…

MySQL:CRUD,函数以及unionunion all

一. CRUD 1. SELECT(查询) 基础查询&#xff1a; select 查询列表 from 表名&#xff1a;从表中查询。 查询列表可以是表中的字段、常量、表达式和函数等。 查询的结果是一个虚拟的表格。 查询多个字段&#xff0c;在查询列表中用逗号隔开。 *可以表示所有字段。 select dist…

LangChain与昇腾

LangChain这个词今年已经听烂了&#xff0c;今天基于昇腾的角度总结一下&#xff1a; Why LangChain &#xff1f; 场景&#xff1a;构建一个LLM应用 在构建一个新项目时&#xff0c;可能会遇到许多API接口、数据格式和工具。要去研究每一个工具、接口很麻烦。 假设要构建一…

k8s二进制部署2

部署 Worker Node 组件 //在所有 node 节点上操作 #创建kubernetes工作目录 mkdir -p /opt/kubernetes/{bin,cfg,ssl,logs} #上传 node.zip 到 /opt 目录中&#xff0c;解压 node.zip 压缩包&#xff0c;获得kubelet.sh、proxy.sh cd /opt/ unzip node.zip chmod x kubelet.…