超全!19 种损失函数,你能认识几个?

ML中常用的归一化/标准化/正则化区别与联系 先行知识——量纲、方差、标准差、均方差、均方误差的概念 量纲——量纲(dimensionh)是指物理量的基本属性。均方误差物理学的研究可定量地描述各种物理现象,描述中所采用的各类物理量之间有着密切的关系,即它们之间具有确定的函数关系。为了准确地描述这些关系,物理量可分为基本量和导出量。基本量是具有独立量纲的物理量,导出量是指其量纲可以表示为基本量量纲组合的物理量;一切导出量均可从基本量中导出,由... 阅读详情


  磐创AI分享  

来源 | 智能算法

作者 | mingo_敏

编辑 | 深度学习自然语言处理小编zenRRan

【导读】tensorflow和pytorch很多都是相似的,这里以pytorch为例。

19种损失函数

1. L1范数损失 L1Loss

计算 output 和 target 之差的绝对值。

torch.nn.L1Loss(reduction='mean')

参数:

reduction-三个值,none: 不使用约简;mean:返回loss和的平均值;sum:返回loss的和。默认:mean。

2 均方误差损失 MSELoss

计算 output 和 target 之差的均方差。

torch.nn.MSELoss(reduction='mean')

参数:

reduction-三个值,none: 不使用约简;mean:返回loss和的平均值;sum:返回loss的和。默认:mean。

3 交叉熵损失 CrossEntropyLoss

当训练有 C 个类别的分类问题时很有效. 可选参数 weight 必须是一个1维 Tensor, 权重将被分配给各个类别. 对于不平衡的训练集非常有效。

在多分类任务中,经常采用 softmax 激活函数+交叉熵损失函数,因为交叉熵描述了两个概率分布的差异,然而神经网络输出的是向量,并不是概率分布的形式。所以需要 softmax激活函数将一个向量进行“归一化”成概率分布的形式,再采用交叉熵损失函数计算 loss。

torch.nn.CrossEntropyLoss(weight=None,ignore_index=-100, reduction='mean')

参数:

weight (Tensor, optional) – 自定义的每个类别的权重. 必须是一个长度为 C 的 Tensor

ignore_index (int, optional) – 设置一个目标值, 该目标值会被忽略, 从而不会影响到 输入的梯度。

reduction-三个值,none: 不使用约简;mean:返回loss和的平均值;sum:返回loss的和。默认:mean。

4 KL 散度损失 KLDivLoss

计算 input 和 target 之间的 KL 散度。KL 散度可用于衡量不同的连续分布之间的距离, 在连续的输出分布的空间上(离散采样)上进行直接回归时 很有效.

torch.nn.KLDivLoss(reduction='mean')

参数:

reduction-三个值,none: 不使用约简;mean:返回loss和的平均值;sum:返回loss的和。默认:mean。

5 二进制交叉熵损失 BCELoss

二分类任务时的交叉熵计算函数。用于测量重构的误差, 例如自动编码机. 注意目标的值 t[i] 的范围为0到1之间.

torch.nn.BCELoss(weight=None, reduction='mean')

参数:

weight (Tensor, optional) – 自定义的每个 batch 元素的 loss 的权重. 必须是一个长度为 “nbatch” 的 的 Tensor

6 BCEWithLogitsLoss

BCEWithLogitsLoss损失函数把 Sigmoid 层集成到了 BCELoss 类中. 该版比用一个简单的 Sigmoid 层和 BCELoss 在数值上更稳定, 因为把这两个操作合并为一个层之后, 可以利用 log-sum-exp 的 技巧来实现数值稳定.

torch.nn.BCEWithLogitsLoss(weight=None, reduction='mean', pos_weight=None)

参数:

weight (Tensor, optional) – 自定义的每个 batch 元素的 loss 的权重. 必须是一个长度 为 “nbatch” 的 Tensor

7 MarginRankingLoss
torch.nn.MarginRankingLoss(margin=0.0, reduction='mean')

对于 mini-batch(小批量) 中每个实例的损失函数如下:

参数:

margin:默认值0


8 HingeEmbeddingLoss
torch.nn.HingeEmbeddingLoss(margin=1.0,  reduction='mean')

对于 mini-batch(小批量) 中每个实例的损失函数如下:

参数:

margin:默认值1

9 多标签分类损失 MultiLabelMarginLoss
torch.nn.MultiLabelMarginLoss(reduction='mean')

对于mini-batch(小批量) 中的每个样本按如下公式计算损失:

10 平滑版L1损失 SmoothL1Loss

也被称为 Huber 损失函数。

torch.nn.SmoothL1Loss(reduction='mean')


其中

11 2分类的logistic损失 SoftMarginLoss
torch.nn.SoftMarginLoss(reduction='mean')



12 多标签 one-versus-all 损失 MultiLabelSoftMarginLoss
torch.nn.MultiLabelSoftMarginLoss(weight=None, reduction='mean')


13 cosine 损失 CosineEmbeddingLoss
torch.nn.CosineEmbeddingLoss(margin=0.0, reduction='mean')


参数:

margin:默认值0

14 多类别分类的hinge损失 MultiMarginLoss
torch.nn.MultiMarginLoss(p=1, margin=1.0, weight=None,  reduction='mean')


参数:

p=1或者2 默认值:1
margin:默认值1

15 三元组损失 TripletMarginLoss

和孪生网络相似,具体例子:给一个A,然后再给B、C,看看B、C谁和A更像。

torch.nn.TripletMarginLoss(margin=1.0, p=2.0, eps=1e-06, swap=False, reduction='mean')


其中:

16 连接时序分类损失 CTCLoss

CTC连接时序分类损失,可以对没有对齐的数据进行自动对齐,主要用在没有事先对齐的序列化数据训练上。比如语音识别、ocr识别等等。

torch.nn.CTCLoss(blank=0, reduction='mean')

参数:

reduction-三个值,none: 不使用约简;mean:返回loss和的平均值;sum:返回loss的和。默认:mean。

17 负对数似然损失 NLLLoss

负对数似然损失. 用于训练 C 个类别的分类问题.

torch.nn.NLLLoss(weight=None, ignore_index=-100,  reduction='mean')

参数:

weight (Tensor, optional) – 自定义的每个类别的权重. 必须是一个长度为 C 的 Tensor

ignore_index (int, optional) – 设置一个目标值, 该目标值会被忽略, 从而不会影响到 输入的梯度.

18 NLLLoss2d

对于图片输入的负对数似然损失. 它计算每个像素的负对数似然损失.

torch.nn.NLLLoss2d(weight=None, ignore_index=-100, reduction='mean')

参数:

weight (Tensor, optional) – 自定义的每个类别的权重. 必须是一个长度为 C 的 Tensor

reduction-三个值,none: 不使用约简;mean:返回loss和的平均值;sum:返回loss的和。默认:mean。

19 PoissonNLLLoss

目标值为泊松分布的负对数似然损失

torch.nn.PoissonNLLLoss(log_input=True, full=False,  eps=1e-08,  reduction='mean')

参数:

log_input (bool, optional) – 如果设置为 True , loss 将会按照公 式 exp(input) - target * input 来计算, 如果设置为 False , loss 将会按照 input - target * log(input+eps) 计算.

full (bool, optional) – 是否计算全部的 loss, i. e. 加上 Stirling 近似项 target * log(target) - target + 0.5 * log(2 * pi * target).

eps (float, optional) – 默认值: 1e-8

参考资料:

pytorch loss function 总结

http://www.voidcn.com/article/p-rtzqgqkz-bpg.html

原文链接:https://blog.youkuaiyun.com/shanglianlm/article/details/85019768

- End -

欢迎扫码关注:

数据标准化与归一化 特征归一化、标准化的理解 数据集如果标准化处理,对机器学习中的很多算法(包括梯度下降),会有很好的优化效果。如果数据未标准化(例如,数据集特征之间相差的数量级较大时),很多算法的表现性能不佳。 首先理解方差、标准差和均方根误差的区别 方差(variance) 衡量随机变量或一组数据的离散(偏离)程度 概率论中,方差是用来度量随机变量和其数学期望的(均值)之间的偏离程度。 统计学中,各数据分别... 阅读详情

相关推荐

机器学习的19 种损失函数总结(Pytorch 计算)

1 基本用法 criterion = LossCriterion() #构造函数有自己的参数 loss = criterion(x, y) #调用标准时也有参数 2 损失函数 2-1 L1 范数损失 L1Loss 计算 output 和 target 之差的绝对值。 torch.nn.L1Loss(reduction='mean') 参数: reduction - 三个值,non...

给我一点温度 3575

【深度学习】一文看尽Pytorch之十九种损失函数

仅作学术分享,不代表本公众号立场,侵权联系删除转载于:作者:mingo_敏原文链接:https://blog.youkuaiyun.com/shanglianlm/article/details/85019768导读本文汇总了十九种损失函数,介绍了其数学公式和代码实现方式,希望大家可以熟练掌握。01基本用法criterion = LossCriterion() #构造函数有自己的参数...

fengdu78的博客 3518

图像处理之图像质量评价指标MSE(均方误差)

MSE全称为“Mean Square Error”,中文意思即为均方误差,是衡量图像质量的指标之一。计算原理为真实值与预测值的差值的平方然后求和再平均,公式如下。 其中, M为图像I的像素总数,N为图像K的像素总数。MSE值越小,说明图像越相似。计算MSE有四种方法。

qq_44111805的博客 2万+

PyTorch中常用损失函数整理

更新自己所研究领域(图像语义分割、点云语义分割、点云实例分割)中的常用损失函数整理。

Justin_JGT的博客 1767

从触觉到视觉:GelSight传感器的工作原理与实战应用指南

本文深入解析了GelSight光学触觉传感器的核心工作原理,它通过将物理接触转化为视觉图像,为机器人提供了高精度的触觉感知。文章详细介绍了其在工业微观缺陷检测、机器人灵巧操作等领域的实战应用,并提供了从系统搭建到算法开发的完整指南,帮助工程师将这一前沿技术落地于实际项目。

solidity8miner的博客 941

高频功率放大器的设计实现

摘 要 随着无线通信技术的高速发展,市场对射频电路的需求越来越大,同时对射频电路的性能要求也越来越高。高频功率放大器是位于无线发射级末端的重要部件,为了弥补信号在无线传输过程中的衰耗,要求发射机具有较大功率的输出,通信距离越远,要求的输出功率越大。在高频范围内,为了获得足够大的高频输出功率,就要采用高频功率放大器。 本次课程设计的高频功率放大器的技术指标包括输出功率、效率、功率增益、由于高频频功率放大器的输出功率比较大,耗能比较多,所以工作效率就显得比较重要。本课程设计的高频功率放大器电路由两极功率放大器

qq_43543515的博客 3万+

19 种损失函数,你能认识几个?

作者:mingo_敏zenRRan稍有有添加https://blog.youkuaiyun.com/shanglianlm/article/details/85019768来自:深度学习自然语言处理...

机器学习算法那些事 367

以太网传输硬件设计大全

1.网线的介绍RJ45由插头和插做组成,也就是我们常说的网口和网线。RJ45 网线插头又称水晶头,共有八芯做成。RJ45网络传输线分为直通线、交叉线和全反线。直通线用于异种网络设备之间的互连,例如,计算机与交换机。交叉线用于同种网络设备之间的互连,例如,计算机与计算机。全反线用于超级终端与网络设备的控制物理接口之间的连接。下面将介绍一下各线的作用和区别。1.直通线:又叫正线或标准线,两端采用568B做线标准,注意两端都是同样的线序且一一对应。直通线是应用最广泛,现在最常用的线。

weixin_45365488的博客 6751

【深度学习】19 种损失函数,你能认识几个?

作者:mingo_敏zenRRan稍有有添加https://blog.youkuaiyun.com/shanglianlm/article/details/85019768转载自:深度学习自然语言处理tensorflow和pytorch很多都是相似的,这里以pytorch为例。19种损失函数1. L1范数损失 L1Loss计算 output 和 target 之差的绝对值。torch.nn.L1Loss(re...

fengdu78的博客 1929

带隙基准电路实战:温度补偿与流片调优全解析

带隙基准(BGR)是模拟芯片中实现高精度、低温漂电压参考的核心电路,其本质是利用硅材料禁带宽度的物理稳定性,通过PTAT(正温度系数)与CTAT(负温度系数)电压的加权叠加抵消温度影响。原理上需兼顾一阶线性补偿与二阶曲率校正,技术价值在于支撑ADC/DAC/LDO等关键模块的精度与可靠性。典型应用场景涵盖车规级MCU、工业传感器和高精度电源管理芯片。工程落地难点集中于工艺偏差、运放失调、寄生效应及版图热电耦合——这正是‘带隙基准设计’与‘带隙基准调优’的根本分野。本文聚焦真实流片经验,深入拆解Widlar架

weixin_42628280的博客 254

【Codex安装使用手册】

Codex安装部署使用教程

qq_43392230的博客 4999

pytorch 损失函数_不能更全!Pytorch的19个损失函数总结

公众号关注“Python遇见机器学习”设为“星标”,第一时间知晓最新干货~转自https://blog.youkuaiyun.com/shanglianlm/article/details/85019768今天我们来介绍一波 pytorch 中必不可少的损失函数,看看下面十九个超全的损失函数总结中,你都知道几个?pytorch 中的损失函数通过 import torch.nn包来实现调用,基本用法...

weixin_39823299的博客 499

【计算机组成原理】实验4:单周期CPU(Verilog)中海大

【计算机组成原理】实验4:单周期CPU

m0_63023532的博客 3660

19种损失函数,你能认识几个?

作者:mingo_敏链接:https://blog.youkuaiyun.com/shanglianlm/article/details/85019768tensorflow和pyt...

爱编程 219

爬虫逆向:Hook 技术原理与实战

Hook 技术​(钩子技术)是一种通过拦截和修改程序执行流程的技术手段。它允许开发者在目标程序的特定位置插入自定义代码,以改变程序的默认行为或获取运行时信息。Hook 技术广泛应用于调试、逆向工程、性能分析、安全防护等领域。Hook 技术在爬虫逆向中非常有用,能够有效获取和修改目标程序的数据。通过合理使用 Hook 工具和技术,可以显著提升爬虫的效率和成功率。但使用时需注意法律和道德问题,确保行为合规。

数据知道的博客 1万+

AutoGLM-Phone 实现“豆包 AI 手机”的自动化操作手机的实战方案教程 让普通手机秒变ai手机

是一个基于视觉语言模型(VLM)的 AI 手机智能助理框架。❌ 不依赖固定坐标❌ 不需要提前录制脚本✅ 能“看懂”手机屏幕✅ 能理解自然语言指令✅ 能自动规划操作路径并执行让 AI 像人一样看屏幕、想步骤、点手机。从工程角度看,AutoGLM-Phone 已经具备“AI 手机助理”的完整雏形能看能理解能规划能执行能跨 App所谓的「豆包 AI 手机」,本质上就是这类能力的产品化封装。而现在,这套能力已经可以被普通开发者亲手跑起来、改起来、甚至接入自己的业务场景。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 599

19种损失函数汇总

19种损失函数 目录 1. L1范数损失 L1Loss 2 均方误差损失 MSELoss 3 交叉熵损失 CrossEntropyLoss 4 KL 散度损失 KLDivLoss 5 二进制交叉熵损失 BCELoss 6 BCEWithLogitsLoss 7 MarginRankingLoss 8 HingeEmbeddingLoss 9 多标签分类损失 MultiLabelMarginLoss 10 平滑版L1损失 SmoothL1Loss 11. 2分类的logistic损失

1294

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

深度学习19种损失函数

tensorflow和pytorch很多都是相似的,这里以pytorch为例。计算 output 和 target 之差的绝对值。 参数:计算 output 和 target 之差的均方差。 参数:当训练有 C 个类别的分类问题时很有效. 可选参数 weight 必须是一个1维 Tensor, 权重将被分配给各个类别. 对于不平衡的训练集非常有效。在多分类任务中,经常采用 softmax 激活函数+交叉熵损失函数,因为交叉熵描述了两个概率分布的差异,然而神经网络输出的是向量,并不是概率分布的形式。所

VIEO 2264

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

c++ log函数_19 种损失函数,你能认识几个?

作者:mingo_敏zenRRan稍有有添加https://blog.youkuaiyun.com/shanglianlm/article/details/85019768来自:深度学习自然语言处理tensorflow和pytorch很多都是相似的,这里以pytorch为例。19种损失函数1. L1范数损失 L1Loss计算 output 和 target 之差的绝对值。torch.nn.L1Los...

weixin_39638603的博客 126

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

深度学习的19种损失函数

损失函数通过torch.nn包实现 基本用法 criterion = LossCriterion() #构造函数有自己的参数loss = criterion(x, y) #调用标准时也有参数19种损失函数 L1范数损失 L1Loss 计算 output 和 target 之差的绝对值。 torch.nn.L1Loss(reduction=‘mean’)参数: reduction-三个值,none: 不使用约简;mean:返回loss和的平均值;sum:返回loss的和。默认:mean。 均方误差损失

qq_35988224的博客 3019

十九种损失函数,你认识几个?

作者:mingo_敏编辑:深度学习自然语言处理小编zenRRan链接:https://blog.youkuaiyun.com/shanglianlm/article/details/...

算法channel 813

十九种损失函数,你能认识几个?

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达 本文转自|视觉算法 19种损失函数1. L1范数损失 L1Loss计算 output 和 targ...

小白学视觉 875

【机器学习】19种的损失函数汇总

作者:mingo_敏编辑:深度学习自然语言处理链接:https://blog.youkuaiyun.com/shanglianlm/article/details/85019768tensorflow和pytorch很多都是相似的,这里以pytorch为例。19种损失函数1. L1范数损失 L1Loss计算 output 和 target 之差的绝对值。torch.nn.L1Loss(reduction='m...

fengdu78的博客 913

c++ log函数_收藏 | 深度学习19种损失函数,你能认识几个?

点上方蓝字人工智能算法与Python大数据获取更多干货在右上方···设为星标★,第一时间获取资源仅做学术分享,如有侵权,联系删除转载于 :作者:mingo_敏zenRRan稍有有添加https://blog.youkuaiyun.com/shanglianlm/article/details/85019768tensorflow和pytorch很多都是相似的,这里以pytorch为例。19种损...

weixin_39640767的博客 140
上一篇: 霸榜 GitHub:去你丫的算法!
下一篇: 知网论文免费下载,请速度存好!
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值