【学习】focal loss 损失函数

focal loss用于解决正负样本的不均衡情况

通常我们需要预测的正样本要少于负样本,正负样本分布不均衡会带来什么影响?主要是两个方面。

  1. 样本不均衡的话,训练是低效不充分的。因为困难的正样本数量较少,大部分时间都在学习没有用的负样本。
  2. 简单的负样本可能会压倒训练,导致训练退化。比如10000个人里面只有10个人为正义发声,其余的人都为邪恶发声,那么正义的声音就会被邪恶的声音淹没。
    比如假如一张图片上有10个正样本,每个正样本的损失值是3,那么这些正样本的总损失是10x3=30。而假如该图片上有10000个简单易分负样本,尽管每个负样本的损失值很小,假设是0.1,那么这些简单易分负样本的总损失是10000x0.1=1000,那么损失值要远远高于正样本的损失值。所以如果在训练的过程中使用全部的正负样本,那么它的训练效果会很差。

focal loss的公式

首先看交叉熵损失函数:
在这里插入图片描述

其中,y是样本的标签值,而p是模型预测某一个样本为正样本的概率,对于真实标签为正样本的样本,它的概率p越大说明模型预测的越准确,对于真实标签为负样本的样本,它的概率p越小说明模型预测的越准确,

上面公式可以变化如下:
在这里插入图片描述

注意:这里的log(x)其实就是ln(x)

如果我们定义Pt 为如下形式:
在这里插入图片描述

那么公式可以继续转化为:
在这里插入图片描述

而对于focal loss来讲,就是要解决正负样本的权重问题。
focal loss 公式:
在这里插入图片描述

focal loss为什么起作用

在这里插入图片描述
参考b站:https://www.bilibili.com/video/BV1YX4y1J7Te/?spm_id_from=333.788&vd_source=4564794c2a933ffdf65d980ee25648f1

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

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

相关文章

Gradle构建项目报错Unable to start the daemon process

Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used. 可能是配置的Java环境太高了,不支持,把java版本降到8就可以了。

Allegro如何导入芯片的Pin Delay?

Allegro在做等长时,需要导入芯片的Pin Delay才能做真正的等长。因为有些芯片内部的引脚本身就是不等长的,例如海思的部分芯片。 那么如何导入芯片的Pin Delay呢? 1、打开约束管理器,点击Properties(属性)→Component(器件)→Pin Properties→General。 在右栏找到芯片U1,…

Spring Boot 4.0:构建云原生Java应用的前沿工具

目录 前言 Spring Boot简介 Spring Boot 的新特性 1. 支持JDK 17 2. 集成云原生组件 3. 响应式编程支持 4. 更强大的安全性 5. 更简化的配置 Spring Boot 的应用场景 1. 云原生应用开发 2. 响应式应用程序 3. 安全性要求高的应用 4. JDK 17的应用 总结 作…

【C++进阶07】哈希表and哈希桶

一、哈希概念 顺序结构以及平衡树中 元素关键码与存储位置没有对应关系 因此查找一个元素 必须经过关键码的多次比较 顺序查找时间复杂度为O(N) 平衡树中为树的高度,即O( l o g 2 N log_2 N log2​N) 搜索效率 搜索过程中元素的比较次数 理想的搜索方法&#xff1a…

【UEFI基础】EDK网络框架(DNS4)

DNS4 DNS4协议说明 IP地址是一串数据,不便记忆。一般用户在使用TCP/IP协议进行通信时也不使用IP地址,而是使用英文和点号组成的字符串,两者的转换通过DNS(Domain Name System)来完成。 DNS也有v4和v6版本&#xff0…

如何将一个项目整体推送到gitee上以及如何在gitee上新建一个分支,并将一个项目全部推上去

1.如何将一个项目整体推送到gitee上 在Gitee上创建一个新的仓库,或者选择一个已有的仓库。 在本地的项目文件夹中打开终端或命令提示符窗口。 初始化Git仓库。在终端窗口中执行以下命令: git init将项目所有文件添加到Git的暂存区。执行以下命令&#…

枚举问题刷题

考研机试题目中的很多问题往往能通过暴力方法来求解,这些题目并不需要进行过多的思考,而只需枚举所有可能的情况,或者模拟题目中提出的规则,便可以得到解答。虽然说这种方法看上并不高明,但对于一些简单的题目来说却是…

c语言小游戏之扫雷

目录 一:游戏设计理念及思路 二:初步规划的游戏界面 三:开始扫雷游戏的实现 注:1.创建三个文件,test.c用来测试整个游戏的运行,game.c用来实现扫雷游戏的主体,game.h用来函数声明和包含头文…

计算一个4+3的结构变换问题

4a13 3a6 1 0 0 0 0 0 0 0 1 0 0 → ← 1 1 1 0 0 1 0 0 0 0 0 0 0 1 平面上有4个点由左向右运动,彼此之间保持4a13的结构,4个点既不在同一行,也不在同一列。还有3个点从右向左运动,保持3a6的结构&a…

【LeetCode: 12. 整数转罗马数字 + 模拟 + 有序表】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

springboot集成COS对象存储

1.申请腾讯云存储桶 新建密钥(后面配置要用到) 2.编写工具类 此处使用工具类进行基本属性配置,也可选择在yml中配置 package com.sfy.util;import com.qcloud.cos.COSClient; import com.qcloud.cos.ClientConfig; import com.qcloud.cos.a…

一位CSGO游戏搬砖人的自白

“阿阳,游戏搬砖这个项目是不是需要大量本金?需要花费大量的时间和精力?必须用到手机和电脑是吗?有没有只用一部手机一天花两三小时就能赚钱的项目推荐呢? 这是我最不喜欢听到的粉丝发来的聊天开场白。 反问一下自己…