位置: 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目标识别)

  • 手机qq小程序怎么关闭(手机QQ小程序怎么删除)

    手机qq小程序怎么关闭(手机QQ小程序怎么删除)

  • b站视频缓存到相册(B站视频缓存到手机上电脑能看吗)

    b站视频缓存到相册(B站视频缓存到手机上电脑能看吗)

  • 快手作品怎么批量隐藏(快手作品怎么批量删除掉)

    快手作品怎么批量隐藏(快手作品怎么批量删除掉)

  • 红米k30有hifi音质吗(红米k30的音响)

    红米k30有hifi音质吗(红米k30的音响)

  • 帧享是什么(帧享限时免费)

    帧享是什么(帧享限时免费)

  • 小米10青春版与小米10区别(小米10青春版与小米11青春版对比)

    小米10青春版与小米10区别(小米10青春版与小米11青春版对比)

  • 快手买不了东西怎么回事(快手买不了东西打不开怎么办)

    快手买不了东西怎么回事(快手买不了东西打不开怎么办)

  • 淘宝4心要多少好评(淘宝4心要多少个好评)

    淘宝4心要多少好评(淘宝4心要多少个好评)

  • vivox21能单独换外屏吗(vivox21能换后壳吗)

    vivox21能单独换外屏吗(vivox21能换后壳吗)

  • 手机内存够但还是很卡(手机内存够还是不能导出视频)

    手机内存够但还是很卡(手机内存够还是不能导出视频)

  • appleid是什么(怎么看自己的apple id是什么)

    appleid是什么(怎么看自己的apple id是什么)

  • 华为p40pro是90hz吗(华为p40Pro是1080p屏吗?)

    华为p40pro是90hz吗(华为p40Pro是1080p屏吗?)

  • 一个网线能带两个机顶盒吗(一个网线能带两个路由器吗魔刹开50米)

    一个网线能带两个机顶盒吗(一个网线能带两个路由器吗魔刹开50米)

  • 微信二维码收款能联系到对方吗(微信二维码收款怎么联系付款人)

    微信二维码收款能联系到对方吗(微信二维码收款怎么联系付款人)

  • 京东手机下单怎么备注(京东手机下单怎么退款)

    京东手机下单怎么备注(京东手机下单怎么退款)

  • 淘宝怎么看关注店铺的直播(淘宝怎么看关注的主播)

    淘宝怎么看关注店铺的直播(淘宝怎么看关注的主播)

  • miui10怎么看屏幕使用时间(miui查看屏幕)

    miui10怎么看屏幕使用时间(miui查看屏幕)

  • 积目可以查找好友吗(积目查找好友)

    积目可以查找好友吗(积目查找好友)

  • 拼多多流量悬浮窗怎么关闭(拼多多悬浮窗是什么意思)

    拼多多流量悬浮窗怎么关闭(拼多多悬浮窗是什么意思)

  • iMessage提示对方尚未开通iMessage解决方法(给对方发短信显示imessage)

    iMessage提示对方尚未开通iMessage解决方法(给对方发短信显示imessage)

  • Linux系统中使用cmp和comm命令来比较两个文件(linux使用cp)

    Linux系统中使用cmp和comm命令来比较两个文件(linux使用cp)

  • wordpress 中文版源码下载(wordpress 中文版和国际版区别)

    wordpress 中文版源码下载(wordpress 中文版和国际版区别)

  • 织梦调用全站指定属性的文章方法(织梦相关文章调用)

    织梦调用全站指定属性的文章方法(织梦相关文章调用)

  • 个税年度汇算如何补税
  • 资金账簿印花税减半征收后可以叠加享受优惠吗
  • 外贸企业出口退税计算公式
  • 产权转让印花税计税依据
  • 利润表中的所得税
  • 固定资产清理结转到什么科目
  • 软件企业认定流程
  • 基本户借款 一般户可以还吗
  • 个人与公司交的税怎么算
  • 个体工商户化妆品经营范围
  • 汽车租赁用不用交税
  • 停业之后申请恢复营业申请书范文
  • 资产减值损失进利润表吗
  • 投资公司的利息支出可抵扣吗
  • 购货方申请红字发票怎么申报
  • 交上月增值税的凭证
  • 房地产企业的非流动资产周转率在多少以上
  • 每年空调的维保费用怎么入账?
  • 平销返利可以作为下期的折扣开票吗?
  • 月不超过10万,季不超过30万免什么税
  • pos机刷卡手续费谁承担
  • 怎么计算研发费用占销售收入总额比例
  • 应收账款坏账准备是信用减值损失还是资产
  • 房屋出租收入是多少
  • 路由器管家怎么登录
  • 期末余额和期初余额
  • php面向对象实例
  • PHP:mb_http_output()的用法_mbstring函数
  • 没有取得发票的支出可以做成本吗
  • 代扣代缴手续费比例
  • PHP:Memcached::addServers()的用法_Memcached类
  • window10解压
  • 出租其取得的不动产是什么意思
  • win7系统更改属性内存信息的方法有哪些
  • 单位延缓缴纳社保员工可以要求赔偿吗
  • php8.0 特性
  • typescript4.1
  • css盒子模型怎么做
  • 获取谷歌浏览器cookie
  • eccv论文下载
  • python极客项目编程 豆瓣
  • 成本法变为权益法合并层面计算投资收益
  • 退货款现金流量表填什么?
  • 帝国cms商城教程
  • 过路费一定是要公司的车辆吗
  • 横幅属于是什么税收大类?
  • mysql1290报错
  • 增值税留抵退税的账务处理
  • 知识产权申请如何申请
  • 工会经费的开支必须取得发票么
  • 非居民企业股权转让特殊性税务处理
  • 股权转让印花税减半征收政策
  • 赠送给客户的产品怎么做账
  • 医疗器械行业进货未取得发票怎么做会计分录的
  • 客户火车票可以抵扣进项税吗
  • mysql数据库高可用架构
  • centos 6.6安装教程
  • mac截屏后的图片在哪里
  • centos中如何安装软件
  • CentOS(x86_64)下PHP安装memcache扩展问题解决方法分享
  • Manjaro Linux 0.8.13发布下载 可将系统装入SD卡
  • js实现功能
  • android常见面试题及答案
  • easyui选项卡
  • JUnit in android
  • unity连接数据库能做什么
  • activity间数据传递
  • svn如何cleanup
  • 黑马程序员学费多少钱2018
  • js面向对象面试题
  • nodejs init
  • 如何查询税务情况
  • 小型微利企业所得税优惠
  • 安家费购房补贴区别
  • 个体户税务注销
  • 四川省税务局发票
  • 天津税务局发票查询
  • 如何做好税务局长
  • 闵行区注册公司,闵行区税务筹划,哪
  • 广西汽车下乡补贴申请攻略?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设