正负样本的定义、划分以及用于loss的计算的过程 |
您所在的位置:网站首页 › 平方正负的定义是什么 › 正负样本的定义、划分以及用于loss的计算的过程 |
文章目录
正负样本定义难分、易分样本定义正负样本不平衡-引自[Focal Loss](https://blog.csdn.net/qq_38253797/article/details/116292496)常用算法采用的正负样本策略1.正负样本划分策略2.正负样本采样策略
参考资料
正负样本定义
什么是正负样本?事实上,在目标检测领域正负样本的定义策略是不断变化的。正负样本是在训练过程中计算损失用的,而在预测过程和验证过程是没有这个概念的。许多人在看相关目标检测的论文时,常常误以为正样本就是我们手动标注的GT,其实不然。首先,正样本是待检测的目标,比如检测人脸时,人脸是正样本,非人脸则是负样本,比如旁边的树呀花呀之类的其他东西;其次,正负样本都是针对于算法经过处理生成的框(如:计算宽高比、交并比、样本扩充等)而言,而非原始的GT数据。 难分、易分样本定义hard example mining(困难样本挖掘) 正负样本不平衡-引自Focal Loss什么是正负样本不平衡?例如基于候选区域的two-stage的检测框架(比如fast r-cnn系列),基于回归的one-stage的检测框架(yolo,ssd这种)。 one-stage中能够匹配到目标的候选框(正样本)个数一般只用十几个或几十个,而没匹配到的候选框(负样本)大概有 10^4 - 10^5 个。而负样本大多数都是简单易分的,对训练起不到什么作用,但是数量太多会淹没掉少数但是对训练有帮助的困难样本。two-stage目标检测是将整个检测过程分成两部分,第一部分先选出一些候选框(如faster rcnn 的rpn),大概2000个左右,在第二阶段再进行筛选,虽然这时正负样本也是存在不均衡的,但是(十几个或几十个:2000) 相对(十几个或几十个: 10^4 - 10^5 )好了很多----提取proposal阶段(例如,选择性搜索、EdgeBoxes、DeepMask、RPN)迅速将候选对象位置的数量缩小到一个小数目(例如,1-2k),过滤掉大多数背景样本。在第二个分类阶段,执行抽样启发式,例如固定的前景背景比(1:3),或在线难样本挖掘(OHEM),以保持前景和背景之间的平衡。解决方法: 1.正负样本采样器:固定的前景背景比(正负样本-随机采样)、在线难样本挖掘(OHEM-2016)、yolov5的增加网格扩展正样本等、 2.平衡loss(平衡分类、边框、置信度损失): Focal Loss(2017-平衡分类损失):认为基于回归的one-stage的检测框架不能达到two-stage的精度的核心原因是正负样本不平衡 平衡化L1损失(balanced L1 Loss–2019Libra R-CNN):目标检测损失中包含分类损失和位置损失。平衡两类损失,最普遍的做法是给位置损失加一个权重。但这种做法会有一个潜在的问题:对于训练中的少数困难样本,预测的结果和实际的位置往往偏差较大,此时权重会将大的损失放大,从而产生更大的梯度信息,严重时可能会破坏模型的收敛过程,同时弱化多数简单样本产生的梯度信息。因此,为了平衡不同难度的样本带来的位置损失,论文基于smooth L1损失,提出了balanced L1损失。(参考:Libra R-CNN ) 正负样本不平衡带来的问题: 由于大多数都是简单易分的负样本(属于背景的样本),使得训练过程不能充分学习到属于那些有类别样本的信息;其次简单易分的负样本太多,可能掩盖了其他有类别样本的作用(这些简单易分的负样本仍产生一定幅度的loss,数量多会对loss起主要贡献作用,因此就主导了梯度的更新方向,掩盖了重要的信息) 训练效率低下(因为大多数位置都是负样本,没有提供有用的学习信息)模型精度变低(过多的负样本会主导训练,使模型退化) 常用算法采用的正负样本策略 1.正负样本划分策略链接如下: fast-rcnn、faster-rcnn、YOLOv1、v2、SSD [faster-rcnn、YOLOv5]faster-rcnn、YOLOv5 总结:大体上所以有三种正负样本划分策略: anchor-based: 基于anchor和GT(真值框)的宽高比(yolov5)基于anchor和GT的IOU(交并比)(yolov2、v3、v4、retinet等)anchor-free: 将真实框内的锚点视为候选正样本,然后根据为每个金字塔等级定义的比例范围从候选中选择最终的正样本,最后那些未选择的锚点为负样本(FCOS等)基于center的paper和FCOS有些相似,也是用中心点和宽高来表示一个物体,最大区别在于CenterNet使用的是物体的中心点。以及在实现正负样本分配的时候,引入高斯热图确定正负样本(CenterNet)同时适用于Anchor_based和Anchor_free的正负样本定义方式: 自适应训练样本选择(ATSS-2020):根据目标的统计特征(方差和均值)自动划分正训练样本和负训练样本,弥合了基于锚的探测器与无锚探测器之间的差距,具体步骤如下: 1.对于每个输出的检测层,选计算每个anchor的中心点和目标的中心点的L2距离,选取K(mmdetection的topK是9)个anchor中心点离目标中心点最近的anchor为候选正样本(candidate positive samples) 2.计算每个候选正样本和groundtruth之间的IOU,计算这组IOU的均值和方差 根据方差和均值,设置选取正样本的阈值:t=m+g ;m为均值,g为方差 3.根据每一层的t从其候选正样本中选出真正需要加入训练的正样本 然后进行训练 ATSS:认为基于anchor-free和anchor-based目标检测的本质区别是正负样本的定义 SAPD(ECCV-2020):本文可以认为是anchor-free论文的改进。其首先指出目前anchor-free算法存在的问题:1.attention bias(注意力偏差),2.feature selection(特征选择),并提出了相应的soft策略。由于其主要是修改了正负样本定义策略。 attention bias说的是对于特定输出层内的正负样本定义问题 feature selection说的则是不同输出层间的正负样本定义问题,我们以前说的正负样本定义都是hard,这里解决办法都是soft 论文笔记:Soft Anchor-Point Object Detection SAPD-Soft Anchor-Point Object Detection 总结:本文主要有两个点: 1.正样本应根据与GT中心点的距离分配不同的权重。 2.正样本应当分配到特征金字塔的多层 新的标签分配策略——Optimal Transport Assignment (OTA-2021):该策略将gt和bg的标签分配给anchor的过程转变成一个最优化的问题,使用SinkhornIter迭代求解得到最小的分配代价矩阵c,解码该分配代价矩阵c后得到最佳分配方案。 新的标签分配策略AutoAssign: 2.正负样本采样策略faster-rcnn(2016):使用随机采样器(RandomSampler)来解决样本不平衡-固定的前景背景比1:3,RPN层正负样本1:1(毕竟正负样本不可能刚好1:3,所以应该是随机取的正负样本) OHEM(2016):传统的Hard Negative Mining Method 需要迭代训练,如果我们将他使用到 end-to-end 的卷积神经网络,需要每次将网络冻结一段时间用来生成 hard negative。而这对于使用线上优化的算法来说是不可能的,例如 SGD (随机梯度下降算法)。使用 SGD 来训练网络需要上万次更新网络,如果每迭代几次就固定模型一次,这样的速度会慢得不可想象。 OHEM的过程:两个相同 的RoI网络,不同的是其中一个只可读,另一个可读可写。可读的,只对所有RoI做前向计算,所以只需分配内存给前向计算 操作,既可读也可写的对被选择的hard RoIs不仅做前向计算也做反向 传播计算。对于一次SGD迭代,计算过程如下:先计算出特征图**,可读RoI网络对所 有RoI执行前向计算并计算每个RoI的损失,然后选择hard RoIs。把这 些hard RoIs输入到可读可写的RoI网络中执行前向前向计算和反向传播更新网络,并把可读可写的RoI网络的参数赋值给只可读的网络**,一次 迭代就完成了。OHEM 详解 Libra R-CNN(CVPR2019):使用IOU平衡化采样(IoU-balanced Sampling),也可称为分层采样,根据IOU划分区间,将负样本随机放入其中,从而增大困难负样本的比例。(参考:Libra R-CNN 这篇论文主要针对的就是目标检测中的不平衡:采样、特征、损失) 参考资料知乎 深度眸 CSDN 目标检测中正负样本的选取总结 CSDN yolov5与Faster-RCNN 训练过程正负样本和评价指标 CSDN 【论文翻译】Focal Loss for Dense Object Detection |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |