Focal Loss损失函数理解

简介:Focal Loss损失函数是对交叉熵损失函数的升级。是和yolo配套的

因为yolo会对图像进行网格化处理,会分出正负样本,是多目标检测,而不是简单的分类问题

1. 对比交叉熵损失的区别

多分类:CrossEntropyLoss 公式:

多目标:Focal Loss 公式:

总结多了两个系数,alpha和(1-pt)^gama

2. 分析参数alpha

个人理解:alpha是用来控制正负样本数差别太大的。负样本因为数量往往太多,而使用较小的alpha如0.25来乘以损失值,正样本因为数量往往太少,而使用较大的alpha如0.75来乘以损失值。

官方解释:

  • 类别平衡因子 α\alphaα 的主要作用是直接增加正样本(目标区域)的损失权重,减少负样本(背景区域)对总损失的贡献。
  • 当负样本远多于正样本时, α\alphaα 通常设置为正样本的权重较高(如 αpos=0.75\alpha_{\text{pos}} = 0.75αpos=0.75, αneg=0.25\alpha_{\text{neg}} = 0.25αneg=0.25)。这种方式在总损失中人为地降低了背景区域的占比

3. 分析参数(1-pt)^gama

个人理解:这个参数是站在正样本的基础上来控制损失的。对于小目标,难分辨的目标,因为往往这类目标的预测概率值(分数)很小,引入(1-pt)^gama,当小目标预测分数很小趋近0时,1-pt则会趋近1,所以就会让这类小目标的损失不变。但是容易区分的目标预测分数高,1-pt会趋近0,则会显著降低容易区分目标的损失。整体来说,就会让模型关注到这类小目标区域取降低其损失

官方解释:

4.如何减少背景区域的影响?

这两部分共同作用:

  1. 动态调整因子(1 - p_t)^gamma:

    • 对背景区域(负样本)的预测 pt 通常接近 1, (1 - p_t)^gamma 会使这些样本的损失趋近于 0,从而减少它们的影响。
    • 对于目标区域(正样本),由于 pt 较低, (1 - p_t)^gamma的值更大,使得模型更加关注这些区域。
  2. 类别平衡因子 α:

    • 人为调高目标区域的损失占比,进一步减少背景区域对总损失的贡献。

个人理解:

对于背景区域(负样本),模型认为负样本中为背景的概率趋近于1,1-pt则趋近于0,则降低了负样本的损失,让模型对负样本的学习减少。对于目标区域,模型认为负样本中为目标的概率趋近于0,1-pt则趋近于1,保持了目标区域的损失,让模型更关注目标区域的学习。

1-pt有两个作用:1. 对于负样本的训练,降低负样本的损失,减少负样本对模型的影响 2.对于正样本的训练,增加了正样本中小目标的损失,让模型更关注小目标的训练

alpha的作用只有一个,降低负样本的损失,增加正样本的损失。达到模型跟关注正样本的趋势,平衡掉负样本数量远大于正样本的影响

相关推荐
charley.layabox2 小时前
8月1日ChinaJoy酒会 | 游戏出海高端私享局 | 平台 × 发行 × 投资 × 研发精英畅饮畅聊
人工智能·游戏
DFRobot智位机器人3 小时前
AIOT开发选型:行空板 K10 与 M10 适用场景与选型深度解析
人工智能
想成为风筝5 小时前
从零开始学习深度学习—水果分类之PyQt5App
人工智能·深度学习·计算机视觉·pyqt
F_D_Z5 小时前
MMaDA:多模态大型扩散语言模型
人工智能·语言模型·自然语言处理
大知闲闲哟5 小时前
深度学习G2周:人脸图像生成(DCGAN)
人工智能·深度学习
飞哥数智坊5 小时前
Coze实战第15讲:钱都去哪儿了?Coze+飞书搭建自动记账系统
人工智能·coze
wenzhangli76 小时前
低代码引擎核心技术:OneCode常用动作事件速查手册及注解驱动开发详解
人工智能·低代码·云原生
今天背单词了吗9806 小时前
算法学习笔记:19.牛顿迭代法——从原理到实战,涵盖 LeetCode 与考研 408 例题
笔记·学习·算法·牛顿迭代法
jdlxx_dongfangxing6 小时前
进制转换算法详解及应用
算法
潘达斯奈基~6 小时前
大模型的Temperature、Top-P、Top-K、Greedy Search、Beem Search
人工智能·aigc