RetinaNet与Focal Loss解决类别不平衡
RetinaNet是One-Stage目标检测器的代表作,通过Focal Loss解决了正负样本不平衡问题。请详细解释Focal Loss的设计思想和RetinaNet的架构特点。
回答
孤独的心
RetinaNet由Lin等人于2017年提出,核心贡献是Focal Loss,专门解决One-Stage检测器面临的极端类别不平衡问题。
问题背景: One-Stage检测器在每张图上生成密集的候选框(~100k),其中绝大多数是简单负样本(背景),导致标准交叉熵损失被大量易分类负样本主导,模型无法有效学习困难样本。
Focal Loss设计: FL(p_t) = -α_t (1-p_t)^γ log(p_t)
- 其中p_t是模型对真实类别的预测概率。
- (1-p_t)^γ称为调制因子(Modulating Factor):当样本被正确分类(p_t→1)时,调制因子→0,降低该样本的损失贡献;当样本被错误分类(p_t→0)时,调制因子→1,保留其损失贡献。γ≥0为聚焦参数,推荐γ=2。
- α_t:平衡正负样本的权重系数。
- 效果:大幅降低易分类负样本的损失比重,使模型更关注困难的、稀有类别的样本。
RetinaNet架构:
- 骨干网络:ResNet+FPN(Feature Pyramid Network),输出多尺度特征。
- 两个独立的子网络:分类子网络(预测K个类别的概率)和回归子网络(预测边界框偏移)。
- 子网络为全卷积网络,在每个金字塔层级的所有位置上进行密集预测。
性能: RetinaNet-101-FPN在COCO上达到39.1 AP,超越同期Faster R-CNN和YOLOv2,推理速度也更快。