损失函数总结(十六):NRMSELoss、RRMSELoss

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

  • 1 引言
  • 2 损失函数
    • 2.1 NRMSELoss
    • 2.2 RRMSELoss
  • 3 总结

1 引言

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

2 损失函数

2.1 NRMSELoss

Normalized Root Mean Squared Error (归一化均方根误差,NRMSE) 将RMSE的值变成(0,1)之间, 有助于不同尺度模型之间的比较。NRMSELoss 的数学表达式如下:
L ( Y , Y ′ ) = 1 n ∑ i = 1 n ( y i − y i ′ ) 2 y ‾ L(Y, Y') = \frac{\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i-y_i')^2}}{\overline y} L(Y,Y)=yn1i=1n(yiyi)2

其中:

  • y ‾ \overline y y: 表示观测值的平均值范围(定义为最大值减去最小值)。

代码实现(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)# 自定义 NRMSE 损失函数
def nrmse_loss(predicted, observed):# 创建 MSLE 损失函数msle_loss = nn.MSELoss()# 计算 MSLE Lossrmse = torch.sqrt(msle_loss(predicted , observed ))observed_range = torch.max(observed) - torch.min(observed)nrmse = rmse / observed_rangereturn nrmse# 计算 NRMSE
loss = nrmse_loss(predicted, observed)# 打印 NRMSE
print("Normalized Root Mean Squared Error (NRMSE):", loss.item())

NRMSELoss 与 RMSLE一致,存在低估比高估受到更严重的惩罚的问题。因此,仅在特殊情况使用。。。。

2.2 RRMSELoss

Relative Root Mean Squared Error (相对均方根误差,RRMSE) 是没有维度的 RMSE 变体。RRMSE 是一种均方根误差度量,它已根据实际值进行缩放,然后由均方根归一化。虽然原始测量的尺度限制了 RMSE,但 RRMSE 可用于比较各种测量方法。RRMSELoss 的数学表达式如下:
L ( Y , Y ′ ) = 1 n ∑ i = 1 n ( y i − y i ′ ) 2 ∑ i = 1 n ( y i ′ ) 2 L(Y, Y') = \sqrt\frac{{\frac{1}{n}\sum_{i=1}^{n}(y_i-y_i')^2}}{\sum_{i=1}^{n}(y_i')^2 } L(Y,Y)=i=1n(yi)2n1i=1n(yiyi)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)# 自定义 RRMSE损失函数
def rrmse_loss(predicted, observed):# 创建 MSLE 损失函数msle_loss = nn.MSELoss()# 计算 MSLE Lossmse = msle_loss(predicted , observed )robs_sum = torch.sum(torch.square(observed))rrmse = mse / robs_sum return rrmse # 计算 RRMSE
loss = rrmse_loss(predicted, observed)# 打印 RRMSE
print("Relative Root Mean Squared Error (RRMSE):", loss.item())

RRMSE更多的是作为一种评价指标来使用。损失函数的话更多的还是使用MSELoss。。。。

3 总结

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

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

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

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

相关文章

python十大装逼语法

python十大装逼语法 1.列表推导式: 使用一行代码创建一个新的列表,可以在其中进行条件过滤、循环等操作。例如: numbers [1, 2, 3, 4, 5] squared_numbers [x**2 for x in numbers]2.三元表达式: x 10 if a > b else 203…

亚马逊云科技 re:Invent 2023:引领科技前沿,探索未来云计算之窗

文章目录 一、前言二、什么是亚马逊云科技 re:Invent?三、亚马逊云科技 re:Invent 2023 将于何时何地举行四、亚马逊云科技 re:Invent 2023 有什么内容?4.1 亚马逊云科技 re:Invent 2023 主题演讲4.2 亚马逊云科技行业专家探实战 五、更多亚马逊云科技活…

二十章 多线程

线程简介 在 Java 中,并发机制非常重要。在以往的程序设计中,我们都是一个任务完成后再进行下一个任务,这样下一个任务的开始必须等待前一个任务的结束。Java 语言提供了并发机制,程序员可以在程序中执行多个线程,每一…

基于Webserver的工业数据采集控制小项目

主要用到的知识点&#xff0c;http协议&#xff0c;modbus协议&#xff0c;以及进程间通信&#xff0c;消息队列&#xff0c;共享内存等 框架 数据采集 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #…

vue+uniapp校园寻物失物招领平台 微信小程序1f6z5

系统中的核心用户是管理员&#xff0c;管理员登录后&#xff0c;通过管理员菜单来管理后台系统。主要功能有&#xff1a;首页、个人中心、用户管理、物品分类管理、物品信息管理、物品归还管理、留言板管理、系统管理等功能。管理员用例如图3-7所示。 对于本网上失物招领小程序…

Linux—进程状态

目录 一.前言 1.1.通过系统调用获取进程标示符 1.2.通过系统调用创建进程 二.进程状态 三.Z(zombie)-僵尸进程 四.僵尸进程危害 一.前言 学习进程的状态&#xff0c;我们首先了解一下进程的基本数据 1.1.通过系统调用获取进程标示符 由getpid&#xff08;&#xff09…

【Python】plt库详解和示例

plt 是 Python 中 Matplotlib 库的一个常用别名&#xff0c;它表示 pyplot&#xff0c;这是一个用于创建图形和图形的可视化表示的工具。下面是一些 plt 函数的详解和示例&#xff0c;以帮助大家理解和使用。 目录 plt.subplots&#xff08;&#xff09;plt.savefig&#xff0…

回顾过去的五年

回顾过去的五年 不知不觉&#xff0c;一晃就5年了。孩子也慢慢的长大了&#xff0c;都快和我一样高了。 2017-2019年依旧服务于原公司。后来公司停业了&#xff0c;得到了相应的赔偿。在家里呆了几个月&#xff0c;变成了无业游民。陪伴家人&#xff0c;也会收到家人的鞭策。…

前端算法专栏-数组-75.颜色分类

介绍 Hi 大家好。我是程序员库里&#xff0c;今天新开一个前端算法专栏。 接下来会分类给大家分享常考算法题目。 很多朋友也是看着这套系列算法拿到很多offer&#xff01;所以也是想分享给更多朋友&#xff0c;帮助到有需要的朋友。 分类 数组-三路快排 题目 75. 颜色分…

Vue学习笔记-模块化+命名空间

目的 让代码更好维护&#xff0c;让多种数据分类更加明确&#xff08;不同的模块挤在一个index.js中显得臃肿且不方便管理&#xff09; 实现方式 修改store/index.js(也可以将不同模块分别写在不同的js文件中) const countAbout {//开启命名空间namespaced:true,actions:{..…

Html网页threejs显示obj,ply三维图像实例

程序示例精选 Html网页threejs显示obj,ply三维图像实例 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《Html网页threejs显示obj,ply三维图像实例》编写代码&#xff0c;代码整洁&#xff0…

uniapp上架app store详细攻略

​ 目录 uniapp上架app store详细攻略 前言 一、登录苹果开发者网站 二、创建好APP 前言 uniapp开发多端应用&#xff0c;打包ios应用后&#xff0c;会生成一个ipa后缀的文件。这个文件无法直接安装在iphone上&#xff0c;需要将这个ipa文件上架app store后&#xff0c;才…

php框架dcat-admin速查笔记

要想灵活的使用dcat-admin框架开发,必须知道框架有哪些类提供给我们使用. 每一个自定义的按钮,弹框,信息展示,小组件都用到特定的类和接口. 常用核心类 Dcat\Admin\Http\Controllers\AdminController 需要继承的公共控制器 Dcat\Admin\Layout\Content 布局核心 Dcat\Admin\Gr…

c语言-数据在内存中的存储

文章目录 1. 整数在内存中的存储2. 大小端字节序和字节序判断3. 浮点数在内存中的存储 1. 整数在内存中的存储 1.整数的2进制表示方法有三种&#xff0c;即 原码、反码和补码 2. 三种表示方法均有符号位和数值位两部分&#xff0c;符号位都是用0表示“正”&#xff0c;用1表示“…

前端下载文件或者图片方式,window.open或者a标签形式

首先分别讲一下下载文件的方式都有哪些 1.通过a标签的方式下载文件 <a href"http://www.baidu.com" download"baidu.html">下载</a> 我们点击下载&#xff0c;发现是跳转到了百度的首页&#xff0c;并没有真的下载文件。 因为a标签下载只能…

[Java][单列集合+数组遍历方法]通过Lambda表达式简化匿名内部类遍历数组学习体会

在分享本文之前&#xff0c;我们需要先了解两种思想——面向对象式编程与函数式编程思想 面向对象编程和函数式编程是两种不同的编程范式&#xff0c;它们的思想和实现方式有很大的差异。可以将它们比作两种不同的制作蛋糕的方式&#xff1a; 面向对象编程就像是在制作一个三…

客服管理者如何有效管理客服团队,有哪些高效方式?

在如今的市场竞争中&#xff0c;客户服务是企业成功的关键因素之一。因此&#xff0c;客服团队的有效管理至关重要。客服管理者需要了解如何有效地管理客服团队&#xff0c;以确保客户的满意度和忠诚度&#xff0c;从而提高企业的竞争力。 以下是客服管理者如何有效管理客服团队…

CSS特效020:涌动的弹簧效果

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花边是描述了一些CSS…

206. 反转链表

206. 反转链表 题目&#xff1a; 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例&#xff1a; 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1…

【Openstack Train安装】六、Keystone安装

OpenStack是一个云计算平台的项目&#xff0c;其中Keystone是一个身份认证服务组件&#xff0c;它提供了认证、授权和目录的服务。其他OpenStack服务组件都需要使用Keystone来验证用户的身份和权限&#xff0c;并且彼此之间需要相互协作。当一个OpenStack服务组件接收到用户的请…