arxiv: https://arxiv.org/pdf/1708.02002.pdf
何凯明 homepage: http://kaiminghe.com/
paper 写得很好,可以多读。
1.解决的问题:
在稠密目标检测中,产生的目标候选区域中正负样本数量悬殊,大部分都是对 loss没有贡献的easy background example. 很容易进行分类。
2.相关 paper:
R-CNN
OverFeat
YOLO
SSD
RPN
FPN
OHEM
3.解决方法
对 cross entry 进行了改进,加上一个调控系数,使得 loss能够更加专注于难以分类的样本,很容易分类的样本对于 loss的贡献很小。
4.实验细节
实验结果中 y=2时的结果最好;
| items | values |
|---|---|
| optimizer | (synchronized) SGD |
| GPU number | 8 |
| minibatch | 16 |
| learning_rate | 0.01 |
| iteration_total | 90k |
| lr_schdule | 60k和80k次迭代时 lr除以10 |
| weight decy | 0.0001 |
| momentum | 0.9 |
| data augmentation | horizontal image flipping only |
5.复现结果
| resource | stars | comments |
|---|---|---|
| pytorch-retinanet | 177 | 完整的 code,缺乏复现后的指标数据 |
| pytorch_workplace/focalloss/loss.py | 23 | focal loss code |
| focal loss 的 pytorch实现 | - | 能直接用于多分类 |
6 延伸与拓展
1. paper中提到的不平衡数据集的常用解决方法为:
In practice α may be set by inverse class frequency
or treated as a hyperparameter to set by cross validation.
focal loss 也可以作为一种通用的 多类别不平衡数据集的处理方式。
2. focal loss 的公式
paper 附录中说到 focal loss的准确形式不重要,还提到了一种相似形式的 loss, 也取得了差不多的结果。
- focal loss 的导数