Focal loss 损失函数详解

article/2025/10/28 10:32:13

Focal loss

目前目标检测的算法大致分为两类,One Stage 、Two Stage。

One Stage:主要指类似YOLO、SGD等这样不需要region proposal,直接回归的检测算法,这类算法检测速度很快,但是精度准确率不如使用Two stage的模型。

two Stage:主要指FastRCNN、RFCN等这样需要region proposal的检测算法。这类算法可以达到很高的进度,但是同时检测速度较慢。虽然可以减少Proposal的数量或者降低输入图像的分辨率等方式达到提速。

作者提出Focal loss的出发点也是希望one-stage detector可以达到two-stage detector的准确率,同时不影响原有的速度。

核心思想:

那么作者one stage 的准确率不如 two stage 的原因是:样本类别不均衡导致的。

而在目标检测领域,一张图可能生成成千上万候选位置(candidate locations)但是一般只有其中一小部分是包含object的,这就带来了类别不均衡。

那么类别不均衡带来的影响是:

负样本数量太大,占总的loss的大部分,而且多是容易分类的,因此使得模型的优化方向并不是我们所希望的那样。

因此作者提出一种focal loss的损失函数方法,在交叉熵的基础上进行构建。

这个函数可以通过减少易分类样本的权重,使得模型在训练时更专注于难分类的样本。

重要性质:

1:当一个样本被分错的时候,pt是很小的,那么调制因子(1-Pt)接近1,损失不被影响;

当Pt→1,因子(1-Pt)接近0,那么分的比较好的(well-classified)样本的权值就被调低了。因此调制系数就趋于1,也就是说相比原来的loss是没有什么大的改变的。

当pt趋于1的时候(此时分类正确而且是易分类样本),调制系数趋于0,也就是对于总的loss的贡献很小。

2:当γ=0的时候,focal loss就是传统的交叉熵损失,

当γ增加的时候,调制系数也会增加。 。γ增大能增强调制因子的影响,实验发现γ取2最好。

直觉上来说,调制因子减少了易分样本的损失贡献,拓宽了样例接收到低损失的范围。

当γ一定的时候,比如等于2,一样easy example(pt=0.9)的loss要比标准的交叉熵loss小100+倍,当pt=0.968时,要小1000+倍,

但是对于hard example(pt < 0.5),loss最多小了4倍。这样的话hard example的权重相对就提升了很多。这样就增加了那些误分类的重要性

(a)在交叉熵的基础上加上参数a,a=0.5就表示传统的交叉熵,当a=0.75的时候效果最好,AP值提升了0.9。

(b)对比不同的参数γ和a的实验结果,可以看出随着γ的增加,AP提升比较明显。对于固定的α,当γ等于2的时候能达到最高的AP

 (c)不同的anchor的scale和aspect ratio,选择2 scale,3 aspect ratio效果最好

参考文章

https://zhuanlan.zhihu.com/p/49981234

 


http://chatgpt.dhexx.cn/article/KeQoPm6s.shtml

相关文章

机器学习之常见的损失函数(loss function)

解决一个机器学习问题主要有两部分&#xff1a;数据和算法。而算法又有三个部分组成&#xff1a;假设函数、损失函数、算法优化。我们一般在看算法书或者视频教学时&#xff0c;更多的是去推算或者说参数估计出其假设函数&#xff0c;而往往不太注重损失函数&#xff0c;但是损…

深度学习loss函数理解

机器学习中的范数规则化之L0、L1、L2范数及loss函数 监督机器学习问题无非就是“minimizeyour error while regularizing your parameters”&#xff0c;也就是在规则化参数的同时最小化误差。 最小化误差是为了让我们的模型拟合我们的训练数据&#xff0c;而规则化参数是防止我…

CE Loss,BCE Loss以及Focal Loss的原理理解

一、交叉熵损失函数&#xff08;CE Loss&#xff0c;BCE Loss&#xff09; 最开始理解交叉熵损失函数被自己搞的晕头转向的&#xff0c;最后发现是对随机变量的理解有偏差&#xff0c;不知道有没有读者和我有着一样的困惑&#xff0c;所以在本文开始之前&#xff0c;先介绍一下…

损失函数loss

http://blog.csdn.net/pipisorry/article/details/23538535 监督学习及其目标函数 损失函数&#xff08;loss function&#xff09;是用来估量你模型的预测值f(x)与真实值Y的不一致程度&#xff0c;它是一个非负实值函数&#xff0c;通常使用L(Y, f(x))来表示。 损失函数是经…

机器学习模型中的损失函数loss function

1. 概述 在机器学习算法中&#xff0c;有一个重要的概念就是损失函数&#xff08;Loss Function&#xff09;。损失函数的作用就是度量模型的预测值 f ( x ) f\left ( \mathbf{x} \right ) f(x)与真实值 y \mathbf{y} y之间的差异程度的函数&#xff0c;且是一个非负实值函数。…

损失函数(Loss)

如果我们定义了一个机器学习模型&#xff0c;比如一个三层的神经网络&#xff0c;那么就需要使得这个模型能够尽可能拟合所提供的训练数据。但是我们如何评价模型对于数据的拟合是否足够呢&#xff1f;那就需要使用相应的指标来评价它的拟合程度&#xff0c;所使用到的函数就称…

focal loss详解

文章目录 focal loss的整体理解易分辨样本、难分辨样本的含义focal loss的出现过程focal loss 举例说明focal loss的 α \alpha α变体 focal loss的整体理解 focal loss 是一种处理样本分类不均衡的损失函数&#xff0c;它侧重的点是根据样本分辨的难易程度给样本对应的损失添…

深度学习——损失函数(Regression Loss、Classification Loss)

简介 Loss function 损失函数 用于定义单个训练样本与真实值之间的误差 Cost function 代价函数 用于定义单个批次/整个训练集样本与真实值之间的误差 Objective function 目标函数 泛指任意可以被优化的函数 损失函数用于衡量模型所做出的预测离真实值(GT)之间的偏离程度。 …

深度学习中常见的损失函数(L1Loss、L2loss)

损失函数定义 损失函数&#xff1a;衡量模型输出与真实标签的差异。 L1_loss 平均绝对误差&#xff08;L1 Loss&#xff09;:平均绝对误差&#xff08;Mean Absolute Error,MAE&#xff09;是指模型预测值f(x)和真实值y之间距离的平均值&#xff0c;公式如下&#xff1a; 优…

损失函数(loss function)

文章目录 1、什么是损失函数2、为什么要使用损失函数3、损失函数分类1、分类一2、分类二3、分类三3.1基于距离度量的损失函数3.1.1 均方误差损失函数&#xff08;MSE&#xff09;3.1.2 L2损失函数3.1.3 L1损失函数3.1.4 Smooth L1损失函数3.1.5 huber损失函数 3.2 基于概率分布…

Focal Loss损失函数(超级详细的解读)

什么是损失函数&#xff1f; 1、什么是损失呢&#xff1f; 在机器学习模型中&#xff0c;对于每一个样本的预测值与真实值的差称为损失。 2、什么是损失函数呢&#xff1f; 显而易见&#xff0c;是一个用来计算损失的函数。它是一个非负实值函数,通常使用L(Y, f(x))来表示。 3、…

损失函数loss大总结

分类任务loss: 二分类交叉熵损失sigmoid_cross_entropy&#xff1a; TensorFlow 接口&#xff1a; tf.losses.sigmoid_cross_entropy(multi_class_labels,logits,weights1.0,label_smoothing0,scopeNone,loss_collectiontf.GraphKeys.LOSSES,reductionReduction.SUM_BY_NONZER…

深度学习基础(三)loss函数

loss函数&#xff0c;即损失函数&#xff0c;是决定网络学习质量的关键。若网络结构不变的前提下&#xff0c;损失函数选择不当会导致模型精度差等后果。若有错误&#xff0c;敬请指正&#xff0c;Thank you&#xff01; 目录 一、loss函数定义 二、常见的loss算法种类 1.M…

loss函数 激活函数

一、LOSS函数 loss函数指机器学习模型中用于最小化的目标函数&#xff0c;其一般意义是指判别错误的程度&#xff0c;因为我们要提高准确率&#xff0c;也就是降低错误率&#xff0c;所以可以归结为一个最小化损失函数的问题。 具体的&#xff0c;我们假设有一个十分类问题&a…

Loss损失函数

损失函数是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数&#xff0c;用于衡量预测值与实际值的偏离程度。在机器学习中&#xff0c;损失函数是代价函数的一部分&#xff0c;而代价函数是目标函数的一种类型。 在《神经网络中常…

深度学习之——损失函数(loss)

深度学习中的所有学习算法都必须有一个 最小化或最大化一个函数&#xff0c;称之为损失函数&#xff08;loss function&#xff09;&#xff0c;或“目标函数”、“代价函数”。损失函数是衡量模型的效果评估。比如&#xff1a;求解一个函数最小点最常用的方法是梯度下降法&…

1_一些文献中的英文解释和用法整理

目录 1、Theorem、Proposition、Lemma和Corollary等的解释与区别 2、论文里的 Preliminaries 究竟是什么意思? &#xff08;1&#xff09;Preliminaries是什么&#xff1f; &#xff08;2&#xff09;Preliminaries应该写什么内容&#xff1f; &#xff08;3&#xff09;…

区分定理(Theorem)、引理(Lemma)、推论(Corollary)等概念

ZZ: http://blog.sina.com.cn/s/blog_a0e53bf70101jwv1.html Theorem&#xff1a;就是定理&#xff0c;比較重要的&#xff0c;簡寫是 Thm。 Lemma&#xff1a;小小的定理&#xff0c;通常是為了證明後面的定理&#xff0c;如果證明的篇幅很長時&#xff0c;可能會把證明拆成幾…

CodeForces - 1364D Ehabs Last Corollary(dfs树找最小环)

题目链接&#xff1a;点击查看 题目大意&#xff1a;给出一个由 n 个结点和 m 条边构成的无向图&#xff0c;再给出一个 k &#xff0c;需要在图中完成下面任意一种操作&#xff1a; 找到一个大小恰好为 的独立集找到一个大小不超过 k 的环 题目分析&#xff1a; 题目已经…

Codeforces Round 649 (Rated for Div. 2)D. Ehab s Last Corollary详细题解(图论+简单环)

树 边 : 树边: 树边:深度优先森林中的边。如果结点v是因对(u,v)的探索而首先被发现,则(u,v)是一条树边。 后 向 边 : 后向边: 后向边:后向边(u,v)是将结点u连接到其在深度优先树中一个祖先节点v的边. &#xff08;本文我就称之为反向边了&#xff0c;问题不大&#xff09; 前…