位置: IT常识 - 正文

损失函数解读 之 Focal Loss(损失函数解读例题)

编辑:rootadmin
损失函数解读 之 Focal Loss 前言

推荐整理分享损失函数解读 之 Focal Loss(损失函数解读例题),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:损失函数解读例题,损失函数解读公式,损失函数怎么理解,损失函数解读例题,损失函数是啥,损失函数怎么理解,损失函数解读公式,损失函数解读公式,内容如对您有帮助,希望把文章链接给更多的朋友!

Focal loss 是一个在目标检测领域常用的损失函数,它是何凯明大佬在RetinaNet网络中提出的,解决了目标检测中 正负样本极不平衡 和 难分类样本学习 的问题。

论文名称:Focal Loss for Dense Object Detection

目录

什么是正负样本极不平衡?

two-stage 样本不平衡问题

one-stage 样本不平衡问题

交叉熵 损失函数

Focal Loss

代码实现 Pytorch


什么是正负样本极不平衡?

目标检测算法为了定位目标会生成大量的anchor box(锚框),而一幅图中真实的目标(正样本)个数很少,大量的anchor box处于背景区域(负样本),这就导致了正负样本极不平衡。

简单来说,正样本是 预测的anchor box 框住了真实的目标;负样本是 预测的anchor box 没有框住真实的目标,框了背景。由于正样本的数量太少、负样本的数据量太多,导致正负样本极不平衡。

two-stage 样本不平衡问题

先看看RPN中的 anchor box ,feature maps 的每一个点都配9个锚框,作为初始的检测框。虽然这样得到的检测框很不准确,但后面可通过 bounding box regression 来修正检测框的位置。

 下面介绍那9个anchor boxes 锚框,先看看它的形状:

 设 feature maps 的尺寸为 W*H,那么总共有 W*H*9个锚框。(W:feature maps的宽;H:feature maps 的高。)

two-stage方法在第一阶段生成候选框,RPN只是对anchor box进行简单背景和前景的区分,并不对类别进行区分,经过这一轮处理,过滤掉了大部分属于背景的anchor box,较大程度降低了anchor box正负样本的不平衡性。

注意:只是减轻了样本不平衡并没有解决样本不平衡。同时在第二阶段采用启发式采样(如:正负样本比1:3)或者OHEM进一步减轻正负样本不平衡的问题。

使用了anchor box机制的网络,通常就会出现样本不平衡问题。

one-stage 样本不平衡问题

one-stage方法为了提高检测速度,舍弃了生成候选框这一阶段,直接对anchor box进行难度更大的细分类,缺少了对anchor box的筛选过程。

看一下例子,预测了很多的框框,但正确包含物体的框框却很少。

交叉熵 损失函数

为什么要介绍交叉熵 损失函数呢?分类通常用到交叉熵的,而且Focal Loss 也是基于交叉熵进行改进的,先介绍一下交叉熵的原理,会更易于理解Focal Loss。

二分类交叉熵损失函数,公式定义如下:

损失函数解读 之 Focal Loss(损失函数解读例题)

 现定义如下的

 得到变形后的损失函数如下:

Focal Loss

由于存在正负样本极不平衡的问题,直接使用交叉熵 损失函数,得到的效果不好。于是,首先平衡交叉熵。

一般为了解决类别不平衡的问题,会在损失函数中每个类别前增加一个权重因子 ∈ [0, 1]来协调类别不平衡。使用类似的方式定义,得到二分类平衡交叉熵损失函数:

平衡交叉熵采用平衡正负样本的重要性,但是没有区分难易样本。  

 然后,类间不均衡较大会导致,交叉熵损失在训练的时候收到影响。易分类的样本的分类错误的损失占了整体损失的绝大部分,并主导梯度。Focal Loss在平衡交叉熵损失函数的基础上,增加一个调节因子降低易分类样本权重,聚焦于困难样本的训练,其定义如下:

 权重帮助处理了类别的 不均衡。

 其中,是调节因子,≥ 0是可调节的聚焦参数,下图展示了 ∈ [0, 5]不同值时focal loss曲线

γ 控制曲线的形状. γ的值越大, 好分类样本的loss就越小, 我们就可以把模型的注意力投向那些难分类的样本. 一个大的 γ 让获得小loss的样本范围扩大了。同时,当γ=0时,这个表达式就退化成了Cross Entropy Loss (交叉熵损失函数)。

在上图中,“蓝”线代表交叉熵损失。X轴即“预测为真实标签的概率”(为简单起见,将其称为pt)。Y轴是给定pt后Focal loss和CE的loss的值。

从图像中可以看出,当模型预测为真实标签的概率为0.6左右时,交叉熵损失仍在0.5左右。因此,为了在训练过程中减少损失,我们的模型将必须以更高的概率来预测到真实标签。换句话说,交叉熵损失要求模型对自己的预测非常有信心。但这也同样会给模型表现带来负面影响。

深度学习模型会变得过度自信, 因此模型的泛化能力会下降.

当使用γ> 1的Focal Loss可以减少“分类得好的样本”或者说“模型预测正确概率大”的样本的训练损失,而对于“难以分类的示例”,比如预测概率小于0.5的,则不会减小太多损失。 

Focal Loss特点:

当很小时(样本难分,不管分的是否正确),调节因子趋近1,损失函数中样本的权重不受影响;当很大时(样本易分,不管分的是否正确),调节因子趋近0,损失函数中样本的权重下降很多聚焦参数可以调节易分类样本权重的降低程度,越大权重降低程度越大

通过分析Focal Loss函数的特点可知,该损失函数降低了易分类样本的权重,聚焦在难分类样本上。  

代码实现 Pytorchclass WeightedFocalLoss(nn.Module): "Non weighted version of Focal Loss" def __init__(self, alpha=.25, gamma=2): super(WeightedFocalLoss, self).__init__() self.alpha = torch.tensor([alpha, 1-alpha]).cuda() self.gamma = gamma def forward(self, inputs, targets): BCE_loss = F.binary_cross_entropy_with_logits(inputs, targets, reduction='none') targets = targets.type(torch.long) at = self.alpha.gather(0, targets.data.view(-1)) pt = torch.exp(-BCE_loss) F_loss = at*(1-pt)**self.gamma * BCE_loss return F_loss.mean()

参考文章1:https://blog.csdn.net/qq_38675397/article/details/106496333

参考文章2:https://amaarora.github.io/2020/06/29/FocalLoss.html

本文链接地址:https://www.jiuchutong.com/zhishi/300824.html 转载请保留说明!

上一篇:js 箭头函数详解(jquery箭头函数)

下一篇:YOLOv5实现目标识别全流程【超级详细!】(yolo目标识别)

  • 红魔6spro屏幕材质(红魔6sPro屏幕材质)

    红魔6spro屏幕材质(红魔6sPro屏幕材质)

  • oppo a92s有nfc功能吗(oppoa92s手机nfc功能在哪里)

    oppo a92s有nfc功能吗(oppoa92s手机nfc功能在哪里)

  • 微信群管理员从哪踢人(微信群里的管理员)

    微信群管理员从哪踢人(微信群里的管理员)

  • iphonexr如何关闭解锁上滑(iPhonexr如何关闭行程轨迹吗)

    iphonexr如何关闭解锁上滑(iPhonexr如何关闭行程轨迹吗)

  • 无法创建可引导的usb驱动器(无法创建可引导的usb驱动器 bootcamp仅支持在此)

    无法创建可引导的usb驱动器(无法创建可引导的usb驱动器 bootcamp仅支持在此)

  • 苹果11个人热点无法使用(苹果11个人热点名称怎么改)

    苹果11个人热点无法使用(苹果11个人热点名称怎么改)

  • 淘宝怎么选择发货地(淘宝怎么选择发货地址离自己近一些)

    淘宝怎么选择发货地(淘宝怎么选择发货地址离自己近一些)

  • 12306短信验证码已失效(12306短信验证码总是不对)

    12306短信验证码已失效(12306短信验证码总是不对)

  • 喜马拉雅付费和vip有什么区别(喜马拉雅的付费产品有哪些)

    喜马拉雅付费和vip有什么区别(喜马拉雅的付费产品有哪些)

  • 腾讯会议退出的时候主持人会看到吗(腾讯会议退出的方式)

    腾讯会议退出的时候主持人会看到吗(腾讯会议退出的方式)

  • 手机系统怎么回到以前版本(手机系统怎么回到原来的)

    手机系统怎么回到以前版本(手机系统怎么回到原来的)

  • 云米和小米是一家吗(云米和小米什么关系)

    云米和小米是一家吗(云米和小米什么关系)

  • 关联qq是什么意思啊(关联qq的意思)

    关联qq是什么意思啊(关联qq的意思)

  • 华为p30可以给苹果充电吗(华为p30可以给苹果手机反向充电吗)

    华为p30可以给苹果充电吗(华为p30可以给苹果手机反向充电吗)

  • 乐视手机怎么自动换壁纸(乐视手机怎么说)

    乐视手机怎么自动换壁纸(乐视手机怎么说)

  • 手机ip咋查(手机如何查ip)

    手机ip咋查(手机如何查ip)

  • 拼多多成交费总额哪里看(拼多多每单成交扣多少)

    拼多多成交费总额哪里看(拼多多每单成交扣多少)

  • 苹果面容坏了能修吗(苹果面容坏了能换新的吗)

    苹果面容坏了能修吗(苹果面容坏了能换新的吗)

  • 华为mate30pro国内上市时间(华为mate30pro手机国内价格)

    华为mate30pro国内上市时间(华为mate30pro手机国内价格)

  • 手机64g内存实际多大

    手机64g内存实际多大

  • oppor11更改储存位置(oppor11储存设置方法)

    oppor11更改储存位置(oppor11储存设置方法)

  • faceapp如何退订(face app怎么取消续费)

    faceapp如何退订(face app怎么取消续费)

  • 拍抖音视频怎么配音乐(拍抖音视频怎么赚钱)

    拍抖音视频怎么配音乐(拍抖音视频怎么赚钱)

  • 网桥转发数据的依据是(网桥 转发表)

    网桥转发数据的依据是(网桥 转发表)

  • K8s超详细安装部署流程(k8s安装步骤)

    K8s超详细安装部署流程(k8s安装步骤)

  • ps橡皮擦圆圈不见了(ps橡皮擦不是圆圈了)

    ps橡皮擦圆圈不见了(ps橡皮擦不是圆圈了)

  • 零售价是含税价还是不含税价
  • 淘宝网店女装
  • 航空电子客票行程单在哪里打印
  • 直接人工费用属于固定成本吗
  • 有两处收入的怎么报个税汇算清缴
  • 哪些企业需要纳税
  • 公司买车能一次性抵扣所得税吗
  • 报销费用可不可以开专票
  • 一般纳税人建筑公司都交什么税
  • 跨省工程需要什么条件
  • 外币投入的资本
  • 待摊费用跨年冲销如何入账?
  • 预收账款转为主营业务收入
  • 国税申报需要带什么资料
  • 税收滞纳金和税金滞纳金有什么区别
  • 打印出来的明细账怎么装订
  • 公司筹建期产生的费用如何开票?
  • 携税宝可以不买吗
  • 因为买房子
  • 个体工商户经营所得税怎么申报
  • 税控盘服务费抵税会计分录
  • 当月已认证的可抵扣增值税
  • 专利代理服务费入账
  • 法院收到诉讼费多久可以收到传票
  • 销售设备并提供安装服务增值税税率
  • php上传大文件失败
  • 初学者如何
  • PHP:ignore_user_abort()的用法_misc函数
  • 怎么做合同
  • 既征增值税又征消费税的是
  • 装饰工程施工包括什么
  • 再保险业务核算方法
  • 买保险公司的养老保险合适吗
  • PHP:imageellipse()的用法_GD库图像处理函数
  • 翡翠湾攻略
  • 业务招待费用列支范围
  • 一般纳税人取得普票会计分录
  • 工会经费零申报怎么填
  • PHP中empty,isset,is_null用法和区别
  • 通行费发票认证怎么操作
  • Diffusion-GAN: Training GANs with Diffusion 解读
  • thinkphp框架入门
  • 前端搭建项目
  • vue.js过滤器
  • 日期按钮
  • 广告片影视公司
  • 工会经费减除项包括哪些
  • 个人所得税汇算清缴时间
  • 收到退回的企业所得税分录
  • 长期股权投资实现的净利润权益法
  • 利润分配未分配利润在报表里怎么体现
  • 餐饮行业购入农产品
  • 高新企业预缴增值税税率
  • 事业单位实收资本如何做账
  • 股东以固定资产出资
  • 结转本月福利费会计分录
  • 制造费用转入什么
  • 购买二氧化氯
  • 物流运输业务
  • 企业实缴各类税金的总额
  • 企业收到稳岗补贴需要交企业所得税吗
  • 电脑如何将耳机模式换扬声器
  • win10怎么设置pdf默认打开方式是wps
  • 受益无穷还是受用无穷
  • win10系统qq语音说话无声音
  • centos简易安装
  • 怎么用root登录
  • vc6.0安装教程win8
  • opengl画矩形函数
  • 一个字符串中某个字符串出现的次数
  • vue+node+webpack环境搭建教程
  • vue分页查询
  • javascript中br
  • js设置标签内容
  • django命令行
  • 如何计算增值税税负率公式
  • 最新设立税务师事务条件
  • 北京密云十里堡镇河漕社区卫生服务站
  • 查询发票号码
  • ipo上市要注意什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设