一文读懂focal loss

FocalLoss是一种针对目标检测中正负样本不平衡问题的损失函数,通过动态调整易分类和难分类样本的权重,使模型在训练时更关注难分类样本。它修改了传统的交叉熵损失,引入了调整因子α和γ,降低了易分类样本的损失,提高了难分类样本的权重,从而优化了训练过程。
摘要由CSDN通过智能技术生成

什么是Focal Loss?

Focal Loss最先是在目标检测的领域提出的,目标检测的框架一般分为两种:基于候选区域的two-stage的检测框架(fast r-cnn);基于回归的one-stage的检测框架(yolo),two-stage效果好,但速度慢;one-stage效果一般,但速度快,于是乎,作者就去探寻为啥one-stage效果一般,最终发现的原因是 正负样本不均衡导致。于是作者就提出了一个牛逼哄哄的办法,使用Focal Loss这种损失函数,来尝试解决这一问题!值得一提的是,Focal Loss同样可以用在别的领域,比如,NLP。

Focal Loss的原理是什么?

说原理之前,先普及下基本概念,什么是易分类样本?什么是难分类样本?举例:

  • 当样本标签为1(正样本)时,如果预测概率为0.9,那就是易分类样本,如果预测概率为0.1,那就是难分类样本;
  • 如果预测概率为0.5,那无论样本标签是正还是负,都是难分类样本;

当一个数据集正负样本极度不均衡时,那么很多负样本都是易分类样本,多数正样本都是难分类样本。

Focal Loss核心思想是:整体缩放Loss,易分类样本缩放的比难分类样本更多,从而损失函数中就凸显了难分类样本的权重,使得模型在训练时更专注于难分类的样本。

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

  • y’=0.9,易分类样本,属于y=1的样本,那么损失L1=-log0.9,非常接近0的一个正数
  • y’=0.6,难分类样本,无论是y=1还是y=0,损失L2都会相对比较大
  • 最终总的损失函数是将每一个样本对应的损失函数相加,所有样本权重一致。

那么Focal Loss改进的直观想法是如何的呢?上面binary loss最终每个样本的权重都是一致的,我们能不能设计一个系数,让易分类样本权重降低,难分类样本权重提高呢?完全可以!

Focal Loss的定义见下图:
在这里插入图片描述
暂定先取α=0.25,γ=2。这两个参数需要根据具体的数据来进行参数调整。

  • y’=0.9,易分类样本,属于y=1的样本,那么损失L1’=-α(0.1)γ*log0.9,相比原来的的L1,显著降低了很多!
  • y’=0.6,难分类样本,无论是y=1还是y=0,损失L2都会相对比较大。L2’=-(1-α)(0.6)γ*log(0.4),相比原来的L2虽然也降低了,但是没有上述L1’降低的那么多!
  • 虽然最终总的损失函数是将每一个样本对应的损失函数相加,但此时所有样本权重并不是一致的了,易分类样本的损失函数显著降低了很多,相当于权重变小,难分类样本的损失函数虽然也缩放了,但是缩放降低的比例比易分类样本要小,相当于权重变大了!从而实现了损失函数中更加侧重于难分类样本(hard example)!
Yolov5 是一种广泛应用于目标检测的算法,其 loss 原理相对简单。Yolov5 通过将目标检测问题转化为一个回归问题,通过预测 bounding box 的坐标来实现目标检测。 Yolov5 的 loss 主要包括三个部分:分类损失、定位损失和目标置信度损失。 分类损失是用来衡量预测的类别与真实类别之间的差异。Yolov5 使用交叉熵损失函数来计算分类损失。对于每个边界框(bounding box),它将计算预测类别的 softmax 概率与真实类别的 one-hot 向量之间的交叉熵。 定位损失用于衡量预测的边界框位置与真实边界框位置之间的差异。Yolov5 使用 Smooth L1 损失函数来计算定位损失。它通过对预测边界框的坐标与真实边界框的坐标之间进行平滑处理,减小了异常值的影响。 目标置信度损失用于衡量预测的边界框与真实边界框之间的 IoU(Intersection over Union)之间的差异。Yolov5 使用 Binary Cross-Entropy 损失函数来计算目标置信度损失。它将预测的边界框是否包含目标与真实边界框是否包含目标之间的差异进行衡量。 最终,Yolov5 的总损失是通过将三个部分的损失加权求和得到的。这些权重可以根据具体的任务和数据集进行调整。 通过最小化 Yolov5 的 loss 函数,模型可以学习到更准确的目标检测结果。这样,我们就可以在图像中准确地检测和定位不同类别的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值