损失函数总结(十五):MSLELoss、RMSLELoss

损失函数总结(十五):MSLELoss、RMSLELoss

  • 1 引言
  • 2 损失函数
    • 2.1 MSLELoss
    • 2.2 RMSLELoss
  • 3 总结

1 引言

在前面的文章中已经介绍了介绍了一系列损失函数 (L1LossMSELossBCELossCrossEntropyLossNLLLossCTCLossPoissonNLLLossGaussianNLLLossKLDivLossBCEWithLogitsLossMarginRankingLossHingeEmbeddingLossMultiMarginLossMultiLabelMarginLossSoftMarginLossMultiLabelSoftMarginLossTripletMarginLossTripletMarginWithDistanceLossHuber LossSmoothL1LossMBELossRAELossRSELossMAPELossRMSELossLogCosh Loss)。在这篇文章中,会接着上文提到的众多损失函数继续进行介绍,给大家带来更多不常见的损失函数的介绍。这里放一张损失函数的机理图:
在这里插入图片描述

2 损失函数

2.1 MSLELoss

Mean Squared Logarithmic Error (均方对数误差, MSLE) 衡量实际值预期值之间的差异。添加对数减少了 MSLE 对实际值和预测值之间的百分比差异以及两者之间的相对差异的关注。MSLE 将粗略地处理小的实际值和预期值之间的微小差异以及大的真实值和预测值之间的巨大差异。MSLELoss 的数学表达式如下:
L ( Y , Y ′ ) = 1 n ∑ i = 0 n ( log ⁡ ( y i + 1 ) − log ⁡ ( y i ′ + 1 ) ) 2 L(Y, Y') = \frac{1}{n}\sum_{i=0}^{n}(\log(y_i+1) - \log(y_i'+1))^2 L(Y,Y)=n1i=0n(log(yi+1)log(yi+1))2
其中:
log ⁡ ( y i + 1 ) − log ⁡ ( y i ′ + 1 ) = log ⁡ y i + 1 y i ′ + 1 \log(y_i+1) - \log(y_i'+1)=\log\frac{y_i+1}{y_i'+1} log(yi+1)log(yi+1)=logyi+1yi+1

代码实现(Pytorch):

import torch
import torch.nn as nn

# 创建模型的预测值和真实观测值
predicted = torch.tensor([2.0, 4.0, 6.0, 8.0, 10.0], dtype=torch.float32)
observed = torch.tensor([1.5, 4.2, 5.8, 7.9, 9.8], dtype=torch.float32)

# 创建 MSLE 损失函数
msle_loss = nn.MSELoss()

# 计算 MSLE Loss
predicted_log = torch.log(predicted + 1)  # 对预测值取对数,并加上 1 防止出现负无穷
observed_log = torch.log(observed + 1)  # 对真实观测值取对数,并加上 1 防止出现负无穷
loss = msle_loss(predicted_log, observed_log)

# 打印 MSLE Loss
print("Mean Squared Logarithmic Error (MSLE):", loss.item())

在MSLE中,当预测值比真实值小这种情况的错误比较大,即对于预测值小这种情况惩罚较大。在一般情况下,这种损失函数因其该特性不做使用。。。。特殊情况除外。

2.2 RMSLELoss

Root Mean Squared Logarithmic Error (RMSLE) 通过应用log到实际和预测的值,然后进行相减。当同时考虑小误差和大误差时,RMSLE 可以避免异常值的影响。相对于 MSLELoss 多了一步求取平方根的操作。RMSLELoss 的数学表达式如下:
L ( Y , Y ′ ) = 1 n ∑ i = 0 n ( log ⁡ ( y i + 1 ) − log ⁡ ( y i ′ + 1 ) ) 2 L(Y, Y') = \sqrt{\frac{1}{n}\sum_{i=0}^{n}(\log(y_i+1) - \log(y_i'+1))^2} L(Y,Y)=n1i=0n(log(yi+1)log(yi+1))2

代码实现(Pytorch):

import torch
import torch.nn as nn

# 创建模型的预测值和真实观测值
predicted = torch.tensor([2.0, 4.0, 6.0, 8.0, 10.0], dtype=torch.float32)
observed = torch.tensor([1.5, 4.2, 5.8, 7.9, 9.8], dtype=torch.float32)

# 创建 MSLE 损失函数
msle_loss = nn.MSELoss()

# 计算 MSLE Loss
predicted_log = torch.log(predicted + 1)  # 对预测值取对数,并加上 1 防止出现负无穷
observed_log = torch.log(observed + 1)  # 对真实观测值取对数,并加上 1 防止出现负无穷
loss = torch.sqrt(msle_loss(predicted_log, observed_log))

# 打印 MSLE Loss
print("Mean Squared Logarithmic Error (MSLE):", loss.item())

RMSLE是有偏见的处罚,低估比高估受到更严重的惩罚。同样地,仅在特殊情况下使用。。。。。

3 总结

到此,使用 损失函数总结(十五) 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的损失函数也可以在评论区提出,后续会对其进行添加!!!!

如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

城市生命线丨市政综合管廊监测系统的效果

市政综合管廊,又被称为城市生命线,是我们在地下建造的一个智慧而高效的空间。它把市政、电力、通讯、燃气、给排水等各种管线集于一体,解决了城市中反复开挖路面、架空线网密集、管线事故频发等问题,为城市运行提供了重要的基础设…

C#,怎么修改(VS)Visual Studio 2022支持的C#版本

一些文字来自于 Microsoft . (只需要读下面的红色文字即可!) 1 C# 语言版本控制 最新的 C# 编译器根据项目的一个或多个目标框架确定默认语言版本。 Visual Studio 不提供用于更改值的 UI,但可以通过编辑 .csproj 文件来更改值。…

浅谈餐饮业油烟污染现状及在线监测系统的设计与应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201801 摘要:城市餐饮业油烟污染成了困扰城区环境保护部门和人民群众日常生活的主要问题。油烟污染已经成为我国一个重大的污染源,是形成PM2.5的重要污染源之一,为了解决餐饮业油烟管理方面存在的问…

linux镜像的下载,系统下载(个人使用)

文章目录 一、系统之家二、国内镜像源三、Centos官网四、安装成功截图五、镜像类型的区别参考文档 一、系统之家 系统之家官网 二、国内镜像源 下载镜像地址: 1、官网地址:https://www.centos.org/ 2、阿里镜像站:https://mirrors.aliyu…

人工智能基础_机器学习041_Sigmoid函数详解_Sigmoid损失函数推导_最大似然函数推导---人工智能工作笔记0081

然后我们再来看一下sigmoid函数的推导过程,可以看到首先我们把 sigmoid的函数写成两种情况 可以看到P(y|x;theta) = htheta(x), y=1 这个时候y=1 也就是是一种分类,然后另一种,就是相减, 是1-htheta(x) 可以看到,把两个公式河道一起就得到了下面的概率公式. 这里是有关概率…

被OpenAI开除后,创始人奥特曼在微软找到了新工作

微软首席执行官纳德拉宣布,OpenAI创始人Sam Altman和Brockman及其同事将加入微软。随后,Altman转发了他的推特。 此前,外媒消息称,OpenAI首席科学家伊尔亚苏茨克维(Ilya Sutskever)周日晚告知公司员工&…

Dubbo快速实践

文章目录 架构相关概念集群和分布式架构演进 Dubbo概述Dubbo快速入门前置准备配置服务接口配置Provider配置Consumer Dubbo基本使用总结 本文参考https://www.bilibili.com/video/BV1VE411q7dX 架构相关概念 集群和分布式 集群:很多“人”一起 ,干一样…

有哪些相见恨晚的stm32学习的方法?

有哪些相见恨晚的stm32学习的方法? 单片机用处这么广,尤其是STM32生态这么火!如何快速上手学习呢? 你要考虑的是,要用STM32实现什么?为什么使用STM32而不是用8051?是因为51的频率太低&#xff…

requests库出现AttributeError问题的修复与替代方法

在使用App Engine时,开发者们通常会面临需要发送爬虫ip请求的情况,而Python中的requests库是一个常用的工具,用于处理爬虫ip请求。然而,在某些情况下,开发者可能会遇到一个名为AttributeError的问题,特别是…

软件数字签名是什么?软件数字签名有什么作用?

在当今互联网时代,网络安全威胁日益增加,恶意软件层出不穷,为了防止下载到恶意软件,用户在下载软件时都会确认其是安全可信的。由此,企业需要证明其发布的软件真实可信且未被篡改,如何证明这一点呢&#xf…

MATLAB常用绘图函数的使用

文章目录 绘制一图一线绘制一图多线用法一:plot用法二:hold on 绘制一图多图其他形式的坐标图分段函数绘制方法一:分段写函数的定义域值域方法二:判断定义域方法三:if else 判断 横纵坐标范围设置标题、轴标签、图例、…

JVM基础- 垃圾回收器

基本介绍 Java虚拟机(JVM)中的垃圾回收器是用来自动管理内存的关键组件。它负责识别并回收不再使用的内存,从而防止内存泄漏。不同的JVM实现提供了多种垃圾回收器,每种回收器都有其特定的使用场景和性能特点。以下是一些常见的JV…

16路模拟信号转RS-485/232,Modbus RTU 通讯协议数据采集24位A/D转换模块 YL29

特点: ● 16路模拟信号采集,隔离转换 RS-485/232输出 ● 采用24位AD转换器,测量精度优于0.05% ● 通过RS-485/232接口可以程控校准模块精度 ● 信号输入 / 输出之间隔离耐压3000VDC ● 宽电源供电范围:8 ~ 32VDC ● 可靠性高…

【从入门到起飞】JavaSE—带你了解Map,HashMap,TreeMap的使用方法

🎊专栏【Java基础】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【The truth that you leave】 🥰欢迎并且感谢大家指出我的问题 文章目录 🌺双列集合的特点🎄Map🍔Ma…

[Kettle] 单变量统计

单变量统计是对数据进行单个变量的数据统计,以字段为单变量,可以分别对多个字段进行数据统计,统计类型有N(统计数量)、最小值、最大值、平均值、样本标准差、中位数和任意百分位数等 数据源 2018年上学期期末考试成绩(Kettle数据集9).xlsht…

客户管理系统大盘点!推荐这五款

客户管理系统大盘点!推荐这五款。 客户管理系统也就是CRM,可以说是企业刚需,国内外的客户管理系统也是数不胜数,到底有哪些是真正好用,值得推荐的呢?本文将为大家推荐这5款好用的客户管理系统:…

Cannot read property ‘pickAlgorithm‘ of null

Cannot read property pickAlgorithm of null 报错显示 node 和 npm的版本号不对应 查看版本号 node -v npm -v node的版本对应 Previous Releases | Node.js (nodejs.org) 我们需要改成对应的mpm版本号 npm install npm6.14.12 -g nodejs与npm版本对应关系以及使用nvm管理n…

论文阅读:“基于快速特征点提取和描述算法与色调、饱和度和明度的图像特征点匹配算法”

文章目录 摘要引言方法实验结果图像预处理结果对比图像配准结果对比 参考文献 摘要 提出了一种基于快速点特征提取和描述(ORB)算法与色调、饱和度和明度(HSV)的图像特征点匹配算法。首先利用双边滤波和均值滤波结合对图像进行预处…

vue 如何实现粘贴复制功能

实现粘贴复制功能 vue 实现粘贴复制功能,也可用于app中h5插件,共四种方法,特别推荐第四种方法,具体还需了解根据需求使用 1. 安装第三方插件方法(不推荐) 这种方法兼容性很好,如果项目只使用了…