如何理解focal loss/GIOU(yolo改进损失函数)

简介: 如何理解focal loss/GIOU(yolo改进损失函数)

Focal Loss的公式如下:

Focal Loss = -α(1 - p)^γ * log§

其中,α是正样本的调节因子,γ是控制难易样本权重分配的参数,p是模型预测的概率值。

根据公式,可以看出当样本属于困难样本时,(1 - p) 的值较大,因此会增大损失的权重。而对于易分类样本,(1 - p) 的值较小,从而减小损失的权重。

举例来说

如果我们设置γ=2,表示加大难以区分的样本对损失的贡献。假设目标类别为1(困难样本)和类别2(易分类样本),并假设它们的预测概率分别为0.1和0.9。此时,Focal Loss的计算如下:


对于类别1(困难样本):

Focal Loss = -0.25 * (1 - 0.1)^2 * log(0.1) ≈ 0.798


对于类别2(易分类样本):

Focal Loss = -0.25 * (1 - 0.9)^2 * log(0.9) ≈ -0.097


从计算结果可以看出,对于困难样本(类别1),Focal Loss的值较大;而对于易分类样本(类别2),Focal Loss的值较小。这意味着模型会更加关注困难样本的学习,从而提高对难以识别的目标的分类能力。


因此,Focal Loss并不是表示难分类样本对损失函数的贡献较大,而是通过调节因子和参数来平衡难易样本对损失的影响,从而提高模型在类别不平衡和难易样本上的性能。


GIOU

GIOU(Generalized Intersection over Union)损失和IOU(Intersection over Union)损失是用于目标检测中的两种常见的损失函数。它们在计算目标框之间的重叠程度时有所不同。

IOU Loss是通过计算两个目标框的交集面积与并集面积之比来衡量它们的重叠程度,公式如下:


IOU Loss = 1 - IOU


其中,IOU表示交并比,计算公式为:


IOU = Intersection / Union


GIOU Loss是在IOU Loss的基础上进行了改进,解决了IOU Loss在处理高度不一致的目标框时的缺陷。GIOU Loss考虑了目标框的外接矩形(bounding box)以及相对于外接矩形的误差。


GIOU Loss的公式如下:


GIOU Loss = 1 - GIOU


其中,GIOU表示广义交并比,计算公式为:


GIOU = IOU - C(A, B) / Union


C(A, B)表示目标框A和B的外接矩形的对角线的平方差。


举例说明:


假设我们有两个目标框A和B,它们的坐标分别为A(x1=10, y1=10, x2=60, y2=60)和B(x1=50, y1=50, x2=100, y2=100)。首先,我们计算它们的IOU。


A和B的交集面积为 (x1=50, y1=50, x2=60, y2=60),为100。

A和B的并集面积为 (x1=10, y1=10, x2=100, y2=100),为8100。

计算IOU为 100 / 8100 ≈ 0.0123。


接下来,我们计算GIOU。


目标框A和B的外接矩形对角线的平方差为 (60-10)^2 + (60-10)^2 + (100-50)^2 + (100-50)^2 = 6000

计算GIOU为 IOU - C(A, B) / Union = 0.0123 - 6000 / 8000 = -0.745


因此,IOU Loss为 1 - 0.0123 ≈ 0.9877,而GIOU Loss为 1 - (-0.745) ≈ 1.745。可以看出,GIOU Loss考虑了目标框的外接矩形并给出了更准确的重叠程度衡量,相对于IOU Loss更具有鲁棒性。

ac1aa36c9338f9f5fb2e42cf49c6cd3a_3d29b18525ed4574bf84ef9a5466d850.png

相关文章
|
7月前
|
机器学习/深度学习 计算机视觉
YOLOv5改进 | EIoU、SIoU、WIoU、DIoU、FocusIoU等二十余种损失函数
YOLOv5改进 | EIoU、SIoU、WIoU、DIoU、FocusIoU等二十余种损失函数
1726 0
|
2月前
|
机器学习/深度学习 算法 PyTorch
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
这篇文章详细介绍了多种用于目标检测任务中的边界框回归损失函数,包括IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU和WIOU,并提供了它们的Pytorch实现代码。
359 1
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
|
6月前
|
机器学习/深度学习 算法 计算机视觉
YOLOv5改进 | 损失函数 | EIoU、SIoU、WIoU、DIoU、FocusIoU等多种损失函数
💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡
|
7月前
|
机器学习/深度学习 计算机视觉
YOLOv8改进 | EIoU、SIoU、WIoU、DIoU、FocusIoU等二十余种损失函数
YOLOv8改进 | EIoU、SIoU、WIoU、DIoU、FocusIoU等二十余种损失函数
572 1
|
7月前
|
机器学习/深度学习 计算机视觉
YOLOv8改进 | 2023 | InnerIoU、InnerSIoU、InnerWIoU、FocusIoU等损失函数
YOLOv8改进 | 2023 | InnerIoU、InnerSIoU、InnerWIoU、FocusIoU等损失函数
396 0
|
机器学习/深度学习 PyTorch 算法框架/工具
深入理解二分类和多分类CrossEntropy Loss和Focal Loss
多分类交叉熵就是对二分类交叉熵的扩展,在计算公式中和二分类稍微有些许区别,但是还是比较容易理解
1522 0
|
数据可视化 计算机视觉 异构计算
VariFocalNet | IoU-aware同V-Focal Loss全面提升密集目标检测(附YOLOV5测试代码)(二)
VariFocalNet | IoU-aware同V-Focal Loss全面提升密集目标检测(附YOLOV5测试代码)(二)
397 1
Focal Loss升级 | E-Focal Loss让Focal Loss动态化,类别极端不平衡也可以轻松解决(二)
Focal Loss升级 | E-Focal Loss让Focal Loss动态化,类别极端不平衡也可以轻松解决(二)
213 0
|
机器学习/深度学习 算法 计算机视觉
YOLO涨点Trick | 超越CIOU/SIOU,Wise-IOU让Yolov7再涨1.5个点!
YOLO涨点Trick | 超越CIOU/SIOU,Wise-IOU让Yolov7再涨1.5个点!
4829 1
YOLO涨点Trick | 超越CIOU/SIOU,Wise-IOU让Yolov7再涨1.5个点!
|
数据挖掘 计算机视觉 网络架构
VariFocalNet | IoU-aware同V-Focal Loss全面提升密集目标检测(附YOLOV5测试代码)(一)
VariFocalNet | IoU-aware同V-Focal Loss全面提升密集目标检测(附YOLOV5测试代码)(一)
266 0