清晰易懂的Focal Loss原理解释

news/2024/7/5 2:01:56

来源:https://www.cnblogs.com/king-lps/p/9497836.html

编辑:石头

1. 总述

Focal loss主要是为了解决one-stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重,也可理解为一种困难样本挖掘。

 

2. 损失函数形式

Focal loss是在交叉熵损失函数基础上进行的修改,首先回顾二分类交叉上损失:

是经过激活函数的输出,所以在0-1之间。可见普通的交叉熵对于正样本而言,输出概率越大损失越小。对于负样本而言,输出概率越小则损失越小。此时的损失函数在大量简单样本的迭代过程中比较缓慢且可能无法优化至最优。那么Focal loss是怎么改进的呢?

首先在原有的基础上加了一个因子,其中gamma>0使得减少易分类样本的损失。使得更关注于困难的、错分的样本。

例如gamma为2,对于正类样本而言,预测结果为0.95肯定是简单样本,所以(1-0.95)的gamma次方就会很小,这时损失函数值就变得更小。而预测概率为0.3的样本其损失相对很大。对于负类样本而言同样,预测0.1的结果应当远比预测0.7的样本损失值要小得多。对于预测概率为0.5时,损失只减少了0.25倍,所以更加关注于这种难以区分的样本。这样减少了简单样本的影响,大量预测概率很小的样本叠加起来后的效应才可能比较有效。

此外,加入平衡因子alpha,用来平衡正负样本本身的比例不均:文中alpha取0.25,即正样本要比负样本占比小,这是因为负例易分。

 

只添加alpha虽然可以平衡正负样本的重要性,但是无法解决简单与困难样本的问题。

gamma调节简单样本权重降低的速率,当gamma为0时即为交叉熵损失函数,当gamma增加时,调整因子的影响也在增加。实验发现gamma为2是最优。

 

3. 总结

作者认为one-stage和two-stage的表现差异主要原因是大量前景背景类别不平衡导致。作者设计了一个简单密集型网络RetinaNet来训练在保证速度的同时达到了精度最优。在双阶段算法中,在候选框阶段,通过得分和nms筛选过滤掉了大量的负样本,然后在分类回归阶段又固定了正负样本比例,或者通过OHEM在线困难挖掘使得前景和背景相对平衡。而one-stage阶段需要产生约100k的候选位置,虽然有类似的采样,但是训练仍然被大量负样本所主导。


http://lihuaxi.xjx100.cn/news/283889.html

相关文章

pytest接口测试之fixture传参数request

本文主要介绍了pytest接口测试之fixture传参数request的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 前言 有的测试用例,需要依赖于某些特定的case才可以执行,比如登录获取…

【MySQL】MySQL的事务

事务 目录事务1.1 为什么使用事务?1.2 事务的概念1.3 使用2.事务的基本特性2.1 脏读问题:2.2 不可重复读:2.3 幻读问题:2.4 MySQL中事务的隔离级别1.1 为什么使用事务? 准备测试表: drop table if exists…

html5日期转long

正确:日期,时间均是实时的 var inDate $("#inDate").val().trim(); if(inDate ! "") {inDate inDate.split(-);var d new Date();d.setFullYear(inDate[0]);d.setMonth(inDate[1] 1);d.setDate(inDate[2]);inDate d.getTime();…

深度解析:特斯拉「最强」自动驾驶芯片?

作者 | 唐杉来源 | StarryHeavenAbove在近日结束的Tesla Autonomy活动中,Tesla非常“大方”的介绍了自己的Full Self-Driving (FSD) Computer从系统到芯片的很多细节。从芯片来看,其“透明度”超过了除Google第一代TPU之外所有的AI相关芯片。实际上&…

超全面的Linux基础知识的梳理

我们是谁?我们为什么要学习Linux?我们想达到什么样的目标?作为一名LINUX运维小白,每日每夜面对着这些 linux生产环境,如何胜任?在今天这篇文章中,我们将分享一些Linux基础性的东西。这篇文章只是…

一个妹子的美团面试经历,历经 4 轮 2 小时,成功拿到 Offer

点击上方蓝色字体,选择“标星公众号”优质文章,第一时间送达来源:只爱羽毛球的程序媛blog.csdn.net/csuliyajin2012/article/details/49430659美团,我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选…

【MySQL】Java中的 JDBC 编程

目录💦前言 : 数据库编程的必备条件1. Java的数据库编程:JDBC1.1 JDBD使用步骤4. JDBC使用4.1创建数据源4.2 与数据库服务器建立连接4.3 操作数据库. 以插入数据为例5.数据库操作(CURD 增删改查)5.1 插入(e…

写代码这条路,能走多远?阿里算法专家告诉你

作者 | 张知临 (花名:妙临),阿里巴巴算法专家,专注于计算广告领域的策略研究和机制设计,包括调价机制、合约分配、多目标优化、用户体验建模等,并将上述策略和机制以及DL、RL等技术应用在淘宝、优酷等场景中。职场危机…