Focal Loss】的更多相关文章

论文原址:https://arxiv.org/abs/1708.02002 github代码:https://github.com/fizyr/keras-retinanet 摘要 目前,具有较高准确率的检测器基于双阶段的目标检测算法实现,单阶段通过对可能存在的位置进行密集的采样操作,一定程度上要比双阶段的方法要更简单快速,但是准确率会有所损失.在进行训练时,前景与背景二者之间较大的类别不平衡是产生上述问题的原因.针对上述问题,本文对常规的损失函数进行修改,降低易分类样本产生的损失的贡献度.本文…
1. 总述 Focal loss主要是为了解决one-stage目标检测中正负样本比例严重失衡的问题.该损失函数降低了大量简单负样本在训练中所占的权重,也可理解为一种困难样本挖掘. 2. 损失函数形式 Focal loss是在交叉熵损失函数基础上进行的修改,首先回顾二分类交叉上损失: 是经过激活函数的输出,所以在0-1之间.可见普通的交叉熵对于正样本而言,输出概率越大损失越小.对于负样本而言,输出概率越小则损失越小.此时的损失函数在大量简单样本的迭代过程中比较缓慢且可能无法优化至最优.那么Foc…
论文:Focal Loss for Dense Object Detection 论文链接:https://arxiv.org/abs/1708.02002 一. 提出背景 object detection的算法主要可以分为两大类:two-stage detector和one-stage detector.前者是指类似Faster RCNN,RFCN这样需要region proposal的检测算法,这类算法可以达到很高的准确率,但是速度较慢.虽然可以通过减少proposal的数量或降低输入图像的…
Focal Loss for Dense Object Detection-RetinaNet YOLO和SSD可以算one-stage算法里的佼佼者,加上R-CNN系列算法,这几种算法可以说是目标检测领域非常经典的算法了.这几种算法在提出之后经过数次改进,都得到了很高的精确度,但是one-stage的算法总是稍逊two-stage算法一筹,于是就有了Focal Loss来找场子. 在Focal Loss这篇论文中中,作者认为one-stage精确度不如two-stage是因为下面的原因: ① …
论文:<Focal Loss for Dense Object Detection> Focal Loss 是何恺明设计的为了解决one-stage目标检测在训练阶段前景类和背景类极度不均衡(如1:1000)的场景的损失函数.它是由二分类交叉熵改造而来的. 标准交叉熵 其中,p是模型预测属于类别y=1的概率.为了方便标记,定义: 交叉熵CE重写为: α-平衡交叉熵: 有一种解决类别不平衡的方法是引入一个值介于[0; 1]之间的权重因子α:当y=1时,取α; 当y=0时,取1-α. 这种方法,当…
何凯明大佬 ICCV 2017 best student paper 作者提出focal loss的出发点也是希望one-stage detector可以达到two-stage detector的准确率,同时不影响原有的速度.one-stage detector的准确率不如two-stage detector的原因,作者认为原因是:样本的类别不均衡导致的.因此针对类别不均衡问题,作者提出一种新的损失函数:focal loss,这个损失函数是在标准交叉熵损失基础上修改得到的.这个函数可以通过减少易…
把Focal Loss的前向和后向进行数学化描述.本文的公式可能数学公式比较多.本文尽量采用分解的方式一步一步的推倒.达到能易懂的目的. Focal Loss 前向计算 其中 是输入的数据 是输入的标签. 其中 Focal Loss 后向梯度计算 为了计算前向公式(3)的梯度我们,首先计算单元 的导数. 计算计算 导数: 有了(4)和(5)我们就来对(3)进行推倒. 在(6)中把(4)(5)带入并合并整理就得到(7) (7)就是Focal loss的后向的最后结果.要是在TF, Pytorch等…
公式推导:https://github.com/zimenglan-sysu-512/paper-note/blob/master/focal_loss.pdf 使用的代码:https://github.com/zimenglan-sysu-512/Focal-Loss 在onestage的网络中,正负样本达到1:1000,这就会出现两个问题:1.样本不平衡   2.负样本主导loss.虽然负样本的loss小(因为大量的负样本是easy example,大量负样本是准确率很高的第0类),但个数众…
这个是自己用的focal loss的代码和公式推导:https://github.com/zimenglan-sysu-512/Focal-Loss 这个是有retinanet:https://github.com/unsky/RetinaNet…
温故知新 focal loss for dense object detection,知乎上一人的评论很经典.hard negative sampling, 就是只挑出来男神(还是最难追的),而focal loss把男神拉出来的同时,还把备胎都拉出来,同时还按照颜值排个序…… 太有才了……理工科人也有幽默感的! video detection, track to detect and detect to track, neural networks tricks of the trade,觉得我…
Focal Loss for Dense Object Detection Intro 这又是一篇与何凯明大神有关的作品,文章主要解决了one-stage网络识别率普遍低于two-stage网络的问题,其指出其根本原因是样本类别不均衡导致,一针见血,通过改变传统的loss(CE)变为focal loss,瞬间提升了one-stage网络的准确率.与此同时,为了测试该loss对网络改进的影响,文章还特地设计了一个网络,retina net,证明了其想法. Problems 为啥one-stage网…
Focal Loss 与 GHM Focal Loss Focal Loss 的提出主要是为了解决难易样本数量不平衡(注意:这有别于正负样本数量不均衡问题)问题.下面以目标检测应用场景来说明. 一些 one-stage 的目标检测器通常会产生很多数量的 anchor box,但是只有极少数是正样本,导致正负样本数量不均衡.这里假设我们计算分类损失函数为交叉熵公式. 由于在目标检测中,大量的候选目标都是易分样本,这些样本的损失很低,但是由于数量极不平衡,易分样本数量相对来说太多,最终主导了总的损失…
本质上讲,Focal Loss 就是一个解决分类问题中类别不平衡.分类难度差异的一个 loss,总之这个工作一片好评就是了. 看到这个 loss,开始感觉很神奇,感觉大有用途.因为在 NLP 中,也存在大量的类别不平衡的任务.最经典的就是序列标注任务中类别是严重不平衡的,比如在命名实体识别中,显然一句话里边实体是比非实体要少得多,这就是一个类别严重不平衡的情况. 硬截断 整篇文章都是从二分类问题出发,同样的思想可以用于多分类问题.二分类问题的标准 loss 是交叉熵. 其中 y∈{0,1} 是真…
def focal_loss(pred, y, alpha=0.25, gamma=2): r"""Compute focal loss for predictions. Multi-labels Focal loss formula: FL = -alpha * (z-p)^gamma * log(p) -(1-alpha) * p^gamma * log(1-p) ,which alpha = 0.25, gamma = 2, p = sigmoid(x), z = ta…
0 前言 Focal Loss是为了处理样本不平衡问题而提出的,经时间验证,在多种任务上,效果还是不错的.在理解Focal Loss前,需要先深刻理一下交叉熵损失,和带权重的交叉熵损失.然后我们从样本权利的角度出发,理解Focal Loss是如何分配样本权重的.Focal是动词Focus的形容词形式,那么它究竟Focus在什么地方呢? 1 交叉熵 1.1 交叉熵损失(Cross Entropy Loss) 有\(N\)个样本,输入一个\(C\)分类器,得到的输出为\(X\in \mathcal{…
原文标题:Focal Loss for Dense Object Detection 概要 目标检测主要有两种主流框架,一级检测器(one-stage)和二级检测器(two-stage),一级检测器,结构简单,速度快,但是准确率却远远比不上二级检测器.作者发现主要原因在于前景和背景这两个类别在样本数量上存在很大的不平衡.作者提出了解决这种不平衡的方法,改进了交叉熵损失,使其对容易分类的样本产生抑制作用,使得损失集中在数量较少的难分类样本上.同时,作者提出了著名的RetinaNet,这个网络不仅速…
论文分析了one-stage网络训练存在的类别不平衡问题,提出能根据loss大小自动调节权重的focal loss,使得模型的训练更专注于困难样本.同时,基于FPN设计了RetinaNet,在精度和速度上都有不俗的表现 论文:Focal Loss for Dense Object Detection 论文地址:https://arxiv.org/abs/1708.02002 论文代码:https://github.com/facebookresearch/Detectron Introducti…
首先要在caffe.proto中的LayerParameter中增加一行optional FocalLossParameter focal_loss_param = 205;,然后再单独在caffe.proto中增加 message FocalLossParameter{  optional float gamma = 1 [default = 2];                        optional float alpha = 2 [default = 0.25];  }    …
1交叉熵损失函数的由来1.1关于熵,交叉熵,相对熵(KL散度) 熵:香农信息量的期望.变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大.其计算公式如下: 其是一个期望的计算,也是记录随机事件结果的平均编码长度(关于编码:一个事件结果的出现概率越低,对其编码的bit长度就越长.即无法压缩的表达,代表了真正的信息量.) 熵与交叉熵之间的联系: 假设有两个分布p,q.其中p是真实概率分布,q是你以为(估计)的概率分布(可能不一致):你以 q 去编码,编码方案 log(1/qi)可能不是…
论文原址:https://arxiv.org/pdf/1902.09630.pdf github:https://github.com/generalized-iou 摘要 在目标检测的评测体系中,IoU是最流行的评价准则.然而,在对边界框的参数进行优化时,常用到距离损失,而按照IOU的标准则是取其最大值,二者之间是有一定差别的.对一个标准进行优化的目标函数是其标准本身.比如,对于2D的坐标对齐的边界框,可以直接使用IoU作为回归损失.然而,该方法存在一个弊端,就是当两个边界框不发生重叠时,Io…
论文地址:Generalized Intersection over Union 一.相关工作 目标检测精度标准 度量检测优劣基本基于 IOU,mAP 是典型的基于 IOU 的标准,但是 mAP 仅有一个 threshold,对于过了线的预测框一视同仁,不能进一步衡量其优劣,所以 MS COCO 挑战赛提出了多 IOU 阈值的综合 mAP 评价标准(就是同时采用几个阈值,计算出多个 mAP 综合打分). Bounding box 表示方法和损失函数 YOLO v1 直接回归 bbox 的位置参数…
我们只是大佬的搬运工 1.log loss 2.WBE loss 带权重的交叉熵 3.Focal loss 容易过拟合?我在VGG16上做过实验(没有BN层),发现网络在训练集上的性能直线上升,但是验证集却下降,不知是不是BN层缺失的原因 4.DIce loss 对于肿块太小的梯度容易变化剧烈 5.IOU loss 6.Tversky loss 7.敏感性-特异性损失 8.Generalized Dice loss 9.BCE + Dice loss 10.Dice + Focal loss 1…
目标检测是很多计算机视觉任务的基础,不论我们需要实现图像与文字的交互还是需要识别精细类别,它都提供了可靠的信息.本文对目标检测进行了整体回顾,第一部分从RCNN开始介绍基于候选区域的目标检测器,包括Fast R-CNN.Faster R-CNN 和 FPN等.第二部分则重点讨论了包括YOLO.SSD和RetinaNet等在内的单次检测器,它们都是目前最为优秀的方法. 一.基于候选区域的目标检测器 1.1  滑动窗口检测器 自从 AlexNet 获得 ILSVRC 2012 挑战赛冠军后,用 CN…
引言:如今基于深度学习的目标检测已经逐渐成为自动驾驶,视频监控,机械加工,智能机器人等领域的核心技术,而现存的大多数精度高的目标检测算法,速度较慢,无法适应工业界对于目标检测实时性的需求,这时YOLO算法横空出世,以近乎极致的速度和出色的准确度赢得了大家的一致好评.基于此,我们选择YOLO算法来实现目标检测.YOLO算法目前已经经过了3个版本的迭代,在速度和精确度上获得了巨大的提升,我们将从YOLOV1开始讲起,直至目前最新的版本YOLOV3. 一.     YOLO V1 一步检测的开山之作…
论文原址:https://arxiv.org/pdf/1811.05181.pdf github:https://github.com/libuyu/GHM_Detection 摘要 尽管单阶段的检测器速度较快,但在训练时存在以下几点不足,正负样本之间的巨大差距,同样,easy,hard样本的巨大差距.本文从梯度角度出发,指出了上面两个不足带来的影响.然后,作者进一步提出了梯度协调机制(GHM)用于避开上面的不足.GHM的思想可以嵌入到用于分类的交叉熵损失或者用于回归的Smooth-L1损失中,…
论文原址:https://arxiv.org/pdf/1904.02701.pdf github:https://github.com/OceanPang/Libra_R-CNN 摘要 相比模型的结构,关注度较少的训练过程对于检测器的成功检测也是十分重要的.本文发现,检测性能主要受限于训练时,sample level,feature level,objective level的不平衡问题.为此,提出了Libra R-CNN,用于对目标检测中平衡学习的简单有效的框架.主要包含三个创新点:(1)Io…
论文原址:https://arxiv.org/pdf/1904.08900.pdf github:https://github.com/princeton-vl/CornerNet-Lite 摘要 基于关键点模式进行目标检测是一种新的方法,他并不需要依赖于anchor boxes,是一种精简的检测网络,但需要大量的预处理才能得到较高的准确率.本文提出CornerNet-Lite,是CornerNet两种变形的组合,一个是CornerNet-Saccade,基于attention机制,从而并不需要…
论文原址:https://arxiv.org/pdf/1808.01244.pdf github:https://github.com/princeton-vl/CornerNet 摘要 本文提出了目标检测算法的新的模型结构,利用单个卷积网络将框的左上角及右下角两个点组成一对关键点,进而不需要设计在单阶段检测中大量的anchor boxes,同时,引入了corner pooling用于提升角点定位效果. 介绍 单阶段检测通过密集的anchor box及后续的增强定位来获得好的检测效果,但使用an…
论文原址:https://arxiv.org/pdf/1809.08545.pdf github:https://github.com/yihui-he/KL-Loss 摘要 大规模的目标检测数据集在进行ground truth 框标记时仍存在这歧义,本文提出新的边界框的回归损失针对边界框的移动及位置方差进行学习,此方法在不增加计算量的基础上提高不同结构定位的准确性.而学习到的位置变化用于在进行NMS处理时合并两个相邻的边界框. 介绍 在大规模目标检测数据集中,一些场景下框的标记是存在歧义的,十…
BS