返回列表

26th solution

535. RSNA Screening Mammography Breast Cancer Detection | rsna-breast-cancer-detection

开始: 2022-11-28 结束: 2023-02-27 医学影像分析 数据算法赛
第26名方案

第26名方案

作者:Chenglu
比赛排名:第26名

感谢所有为比赛做出贡献的人,也感谢 Kaggle 举办这次比赛。

我的方案没有涉及复杂的流程,就像大多数人一样,只是单图像分类。以下是一些你可能感兴趣的设置:

  • 数据增强:RandomRotate90, HorizontalFlip, VerticalFlip
  • 模型与分辨率
    1. ConvnextV2_nano @ 1536
    2. ConvnextV2_nano (不同种子) @ 1536
    3. ConvnextV2_nano @ 2048
    4. EfficientnetV2_s @ 1536
  • 优化器与调度器:Adam (lr=3e-5) + OneCycleLR
  • 轮次:33
  • 聚合方式:取最大值
  • 辅助损失:无
  • 平板特征:无
  • SWA (随机权重平均):无
  • 外部数据集:无

唯一的技巧:丢弃假阳性

我意识到所有标记为 laterality + patient_id(侧位 + 患者ID)的标签都是一样的。这意味着标签实际上是针对 patient + laterality 的,而不是针对单张图像的。所以处理这个问题最简单的方法是,训练 OOF (Out-of-Fold),然后丢弃高置信度的假阴性样本(例如标签是 1,但模型预测概率只有 0.1 或 0.01)。做完这一步后,CV 分数大幅提升(大约提升了 0.03 到 0.04)。

我的收获

性能在比赛中非常重要。我很高兴我花了近一个月的时间来优化推理流程,我也确实学到了一些东西,比如开源了 nvjpeg2k-python(第一次写 CUDA 代码,感觉很不错)。为了最大限度地利用硬件,我使用了 2 x T4 内核和一些多进程技巧。你可以在推理笔记本中看到这些。

我使用了我在帖子中提到的百分位阈值技巧,因为它让我的 LB 分数提升了约 0.015。我知道这样做很有可能过拟合 LB,但我仍然选择它作为我最后提交的选择之一,因为它在 LB 上的表现实在太好了……不使用百分位的手动阈值结果是 0.61,而 LB 上 0.63 的分数太诱人了,以至于我抛弃了其他一切。


祝贺所有的获奖者!感谢这个伟大的社区,我们下一场比赛见。

同比赛其他方案