论文题目: Focal Loss for Dense Object Detection
论文地址: http://openaccess.thecvf.com/content_iccv_2017/html/Lin_Focal_Loss_for_ICCV_2017_paper.html
论文发表于: ICCV 2017(CCF A类会议)
论文大体内容:
本文主要提出了Focal Loss,用于解决one-stage object detector正负样本不均衡的问题,同时提出一个RetinaNet模型来达到使用one-stage方法的速度来达到two-stage方法的精度;
Motivation:
当前的object detector为了达到更好的精度往往使用two-stage的方法,但是这样会使得速度较慢。
Contribution:
本文作者提出Focal Loss来降低简单易分样本的loss,并提出RetinaNet模型,达到同时追求速度和精度的目的。
1. 当前的state-of-art的方法是two-stage的,步骤分为:
①识别候选object位置;
②分类每个候选object是背景还是实际物体;
2. Focal Loss主要是为了在one-stage方法中解决背景类物体比例过多而导致识别不准确的问题,使得在训练过程中更关注难分的样本,避免被大量的负样本所淹没;
3. RetinaNet能够以one-stage的速度达到甚至超过two-stage的准确率;
4. 正常的交叉熵是下图所示,对于容易识别的样本(右侧)的,交叉熵的loss也不小,会导致大量两端的样本累加后loss也很大;所以本文作者提出Focal Loss,用于降低容易识别的样本的loss,而保持难识别样本的loss不变;
实验
5. Dataset
COCO数据集[1],是微软团队提供的用于进行图像识别的数据集;
6. 实验发现,α取0.25,γ取2效果最好;
7. 附Lightgbm使用Focal Loss中自定义损失函数fobj代码;
//已隐藏
上面代码已验证与[2]中xgboost中focal loss的使用是一致的(求导结果一致,实验结论也一致);
参考资料:
[1] https://cocodataset.org/
[2] https://github.com/jhwjhw0123/Imbalance-XGBoost/blob/master/imxgboost/focal_loss.py
以上均为个人见解,因本人水平有限,如发现有所错漏,敬请指出,谢谢!