机器学习笔记:Huber Loss smooth L1 loss

news2025/2/21 21:46:40

1 Huber loss

1.1 介绍

  • Huber Loss是回归问题中的一种损失函数,它结合了均方误差MSE和绝对误差MAE的特点。
    • Huber Loss在误差较小的时候是平方损失,而在误差较大的时候是线性损失。
    • 因此,它在处理有噪声的数据时,尤其是存在离群点的情况下,比MSE更加鲁棒
  • 定义如下:
    • δ是一个超参数,上式等号右边第一项是 MSE 的部分([-δ,+δ]),第二项是 MAE 部分【(-∞,-δ)和(δ,+∞)】

1.2 python实现

import numpy as np

def huber_loss(y_true, y_pred, delta=1.0):
    """
    计算Huber损失。
    
    参数:
    - y_true: 真实值
    - y_pred: 预测值
    - delta: 阈值
    
    返回:
    - Huber损失
    """
    error = y_true - y_pred
    abs_error = np.abs(error)
    
    # 计算两种损失
    quadratic_loss = 0.5 * np.square(error)
    linear_loss = delta * (abs_error - 0.5 * delta)
    
    # 根据误差的绝对值选择损失
    return np.where(abs_error <= delta, quadratic_loss, linear_loss)

# 示例
y_true = np.array([2.0, 2.5, 3.5])
y_pred = np.array([2.5, 2.0, 2.0])
huber_loss(y_true, y_pred)

2 Smooth L1 loss

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

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

相关文章

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法

&#x1f38a;专栏【Java基础】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【The truth that you leave】 &#x1f970;欢迎并且感谢大家指出我的问题 文章目录 &#x1f381;BigInteger&#x1f354;获取BigInteger对象⭐获…

【数据结构-图】最小生成树

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

AWS SAA知识点整理(作成中)

共通 一些信息已经更新了&#xff0c;但参考题的答案还是旧的。 比如&#xff1a; S3的最大读写性能已经提高到 3,500 PUT/COPY/POST/DELETE or 5,500 GET/HEAD requests per second 并且不再要求使用random prefix Storage Amazon S3 为了提高读取的performance: For exam…

CTF 入门指南:从零开始学习网络安全竞赛

文章目录 写在前面CTF 简介和背景CTF 赛题类型介绍CTF 技能和工具准备好书推荐 写作末尾 写在前面 CTF比赛是快速提升网络安全实战技能的重要途径&#xff0c;已成为各个行业选拔网络安全人才的通用方法。但是&#xff0c;本书作者在从事CTF培训的过程中&#xff0c;发现存在几…

每月固定日期提醒app用哪个?手机上可固定日期提醒的工具选择哪一个

在这个繁忙的世界中&#xff0c;时间总是飞逝而过&#xff0c;我们常常需要一些方式来提醒自己按时完成一些重要的工作任务。每月固定日期提醒是其中之一&#xff0c;它可以涵盖很多方面的事情&#xff0c;从生日、账单支付到工作报告的提交。然而&#xff0c;如何有效地管理这…

7章:动态加载数据处理(selenium)

selenium模块和爬虫之间的关联 便捷的获取网站中动态加载的数据便捷实现模拟登录 什么是selenium模块 基于浏览器自动化的一个模块 selenium使用流程&#xff1a; - 环境安装&#xff1a;pip install selenium - 下载一个浏览器的驱动程序&#xff08;谷歌浏览器&#xff…

Python爬虫之入门保姆级教程

目录 一、分析要爬取的网站 二、导入相关库 三、相关的参数 四、向网站发出请求&#xff08;使用代理IP&#xff09; 五、匹配 六、获取图片&#xff0c;保存到文件夹中&#xff08;os库&#xff09; 七、完整代码 总结 相信许多人都曾为如何入门Python爬虫而烦恼。今天…

MySQL 权限变更,何时生效?

本文讲述了对三种级别权限的变更后&#xff0c;使其生效的方法。 作者&#xff1a;欧阳涵&#xff0c;爱可生团队 DBA 成员&#xff0c;看到下雨知道要打伞的 2.5 次元爱好者~ 爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源…

springCloud和springboot升级

一、引言 springCloud和springBoot较低版本有时候会有网络漏洞&#xff0c;所以随着springCloud和springBoot的升级会修复这些漏洞。那么有时候就遇到在升级过程中&#xff0c;遇到不兼容的问题。需要总结下来记录一下。 二、springBoot和springCloud的使用 1、springBoot的引…

【2023年11月第四版教材】第15章《风险管理》(第三部分)

第15章《风险管理》&#xff08;第三部分&#xff09; 5 过程1-规划风险管理6 过程2-识别风险6.1 识别风险★★★6.2 数据收集★★★6.3 数据分析★★★ 7 过程3-实施定性风险分析7.1 实施定性风险分析7.2 数据分析★★★7.3 数据表现★★★7.4 项目文件&#xff08;更新&#…

Java诊断利器Arthas安装和使用

下载 curl -O https://alibaba.github.io/arthas/arthas-boot.jar先启动java项目&#xff0c;然后再启动 arthas-boot.jar 第一次使用arthas的时候&#xff0c;先按1&#xff08;后面没有对应类的&#xff09;安装上arthas 粘附一个进程 常用命令 dashboard 命令&#xff1a…

安防监控/视频汇聚平台EasyCVR云端录像不展示该是什么原因?该如何解决?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

中国首个接入大模型的Linux操作系统;ChatGPT支持图片和语音输入;抖音上线方言自动翻译功能丨RTE开发者日报 Vol.57

开发者朋友们大家好&#xff1a; 这里是「RTE 开发者日报」&#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

【强化学习】01—— 强化学习简介

文章目录 两种机器学习类型强化学习定义强化学习交互过程强化学习系统要素历史(History)状态(State)策略(Policy)奖励(Reward)价值函数(Value Function)模型(Model)迷宫例子 强化学习智能体分类参考 两种机器学习类型 监督学习/无监督学习/强化学习/机器学习之间的关系 预测 根…

React的高阶函数

1.认识高阶函数 高阶组件 本身不是一个组件&#xff0c;而是一个函数函数的参数是一个组件&#xff0c;返回值也是一个组件 高阶组件的定义 import ThemeContext from "../context/theme_context"function withTheme(OriginComponent) {return (props) > {retur…

反序列化相关

1.序列化serialize() 把一个对象变成可以传输的字符串&#xff0c;目的就是为了方便传输。 2. 反序列化unserialize() 把被序列化的字符串还原为对象 java 将java对象转化为字节序列的过程&#xff0c;反序列化的过程就是 1.创建一个对象输出流 2.通过对象输出流的readobject(…

Blender DreamUV插件使用简明教程

DreamUV 是一个可让你在Blender的 3D 视口中操纵 UV的工具集合。 该工具集设计用于可重复使用的纹理&#xff0c;例如平铺纹理、装饰表和纹理图集。 其目的是让你无需退出 3D 视图即可对几何体进行纹理处理&#xff0c;从而节省时间并提高灵活性。 1、安装DreamUV 首先下载为…

C++新经典 | C++ 查漏补缺(智能指针)

目录 一、动态分配 1.初始化的三种方式 2. 释放内存 &#xff08;1&#xff09;悬空指针 3.创建新工程与观察内存泄漏 二、深入了解new/delete关键字 1.new和delete 2.operator new()和operator delete() 3.申请和释放一个数组 三、智能指针 1.shared_ptr &#xff0…

十大排序——2.归并排序

这篇文章我们来讲一下十大排序中的归并排序。 目录 1.概述 2.代码实现 3.总结 1.概述 归并排序主要是运用了归并的思想。 下面具体的来讲一下归并排序的整个流程和思想。 首先&#xff0c;给你一个无序的数组&#xff0c;要求你对它进行归并排序。归并排序首先需要将这个…

开始报名!龙蜥社区走进 Arm MeetUp 议程硬核剧透来了

「龙蜥社区“走进系列”MeetUp」是由龙蜥社区与生态合作伙伴联合主办的系列月度活动&#xff0c;每期走进一家企业&#xff0c;聚焦龙蜥社区和合作伙伴的技术、产品和创新动态&#xff0c;展示硬核技术&#xff0c;共建繁荣生态。 《聚焦 Arm 性能提升&#xff0c;助力龙蜥生态…