第6名解决方案
第6名解决方案
作者: lazyterence, sleepywill, lonelybecky
比赛排名: 第6名
我要感谢 Kaggle、SIIM、FISABIO 和 RSNA 主办这次激动人心的比赛,拯救了许多人的生命!我也要感谢其他团队成员 @sleepywill 和 @beckymo 以及所有 Kagglers 的巨大帮助。
我非常惊讶地发现我们在 Private LB(私有排行榜)上获得了第6名,而在 Public LB(公有排行榜)上我们仅排名第33位。如果有人知道为什么我们的模型在泛化方面有如此大的潜力,请分享您的想法。😂
以下是我们在本次比赛中的方法。
方案总结
https://github.com/b02202050/2021-SIIM-COVID19-Detection#solution-summary
通用设置
- 分类任务:
- 架构:EfficientNet-B7(这是我们使用的唯一骨干架构)
- 输入尺寸:512
- 检测任务:
- 架构:FasterRCNN-EfficientNet-B7-FPN
- 损失函数:经典的 RPN 和 RoI 损失
- 输入尺寸:800
分类任务预训练
- 数据集: kaggle_chest_xray_covid19_pneumonia + kaggle_covidx_cxr2 + kaggle_chest_xray_pneumonia + kaggle_curated_chest_xray_image_dataset_for_covid19 + kaggle_covid19_xray_two_proposed_databases + kaggle_ricord_covid19_xray_positive_tests + CXR14 + CheXpert
- 架构: 共享骨干的多头分类
- 损失函数: CE Loss(交叉熵损失)
- 早停: 我们选择在所有肺炎和 COVID 相关任务中具有最佳平均验证 AUC 的模型。
- 数据增强: 翻转(水平/垂直)+ 旋转 + 颜色抖动 + 平移 + 宽高比抖动 + 尺度抖动
研究级别训练
- 集成方式: 5折交叉验证 (5-fold CV)
- TTA (测试时增强): 水平翻转
- 训练技巧:
- 逆 Focal Loss: 将原始 Focal Loss 中的
(1-p_t) ** gamma 替换为 p_t ** gamma 以抑制异常样本
- 使用 Sigmoid 代替 Softmax:(在我的验证集上 mAP 提升了约 0.003)
- 锐度感知最小化
- 数据增强: 翻转(水平/垂直)+ 旋转 + 颜色抖动 + 平移 + RandomResizedCrop + random_perspective + elastic_deformation + RandAugment
检测任务预训练
- 数据集: RSNA pneumonia
- 数据增强: 翻转(水平/垂直)+ 旋转 + 颜色抖动 + 平移
图像级别训练
- 集成方式: 5折交叉验证 (5-fold CV)
- TTA: 水平翻转
- 训练技巧:
- 随机权重平均
- 锐度感知最小化
- 注意力引导的上下文 FPN (Attentional-guided context FPN)
- 注意力特征融合
- 固定特征注意力: 使用分类模型的特征金字塔进行注意力计算
- 数据增强: 翻转(水平/垂直)+ 旋转 + 颜色抖动 + 平移 + RandomResizedCrop + random_perspective + elastic_deformation
结果