返回列表

30th Place Solution

404. RSNA STR Pulmonary Embolism Detection | rsna-str-pulmonary-embolism-detection

开始: 2020-09-10 结束: 2020-10-26 医学影像分析 数据算法赛
第30名方案

第30名方案

作者: sin (Grandmaster), Johnny Lee (Master), Javier Martín (Master)
比赛: RSNA STR Pulmonary Embolism Detection

感谢 Kaggle 团队和组织者举办这场充满挑战的比赛。向我的队友 @wuliaokaola@bacterio 致以崇高的敬意,他们工作非常努力!!我们学到了很多,现在的我们在计算资源和体力上都已精疲力尽😃,就像你们许多人一样。这个方案是在 15 天内开发出来的,远不及顶尖的获奖方案。但希望这里能有一些有用的东西!

太长不看版 (TL; DR)

  • Efficientnet B1 用于图像级别,Efficientnet 3D CNN + Resnet 3D 用于研究级别。CNN + Transformer 用于图像和研究级别。
  • 使用了组织者提供的 TFRecords 和 @vaillant 的窗口函数。
  • 应用掩码隐藏图像的左侧/右侧。
  • 基于 OOF 计算优化融合权重。

时间线

  • 我们在大约 15 天前开始参加比赛。
  • 在图像级别训练了 Efficientnet B0,并与 @osciiart 的平均预测结果(即得分为 0.325 的公共笔记本)进行了融合。公式为:0.4 * 平均预测 + 0.6 * Efficient B0,研究级别则使用平均预测。这给了我们 LB 分数:0.292
  • 开发了 Resnet3D,LB 分数为 0.370。我们对该模型进行了本地验证,发现它在研究级别表现良好,但在图像级别表现不佳。因此,对于研究级别,我们用 Resnet3D 替换了平均预测,并达到了 0.253 的 LB 分数。
  • 通过掩码(遮盖图像的一半)改进了 Efficientnet B0。达到了 0.248 的 LB 分数。
  • 惊人的公共基线出现了,我们感到很沮丧,因为它得了 0.233 分,这让我们感到恐慌。我们尝试进行推理,但耗时太久,因此决定不将其纳入我们的流程。
  • 我们将 @bacterio 加入团队,并与我们现有的结果(取平均值)融合,LB 分数达到了 0.226@bacterio 当时有一个 CNN + Transformer 模型,这与我们的方法完全不同。这让我们稍微冷静了一点,我们知道如果继续改进图像级别和研究级别,我们会做得更好。
  • 我们通过使用类似技术训练三个 Efficientnet B1 进行了改进,@wuliaokaola 提出了一个新的架构 Efficientnet 3D CNN,我们获得了 0.212 的 LB 分数。
  • 哦!我们只剩下两天时间了。我们该怎么办?我们意识到添加另一个架构是不切实际的。所以我们应该致力于升级现有模型。我们在 Efficientnet 3D CNN 中添加了 TTAs,并对 Efficientnet B1Resnet 3DEfficientnet 3D CNN 进行了微调,最终获得了 0.204 的 LB 分数。

建模

在这一部分,我将展示我们的最终模型。

Efficientnet B1 (TF)

  • 使用组织者提供的 TFRecords 在 TPU 上训练
  • @vaillant 提供的 3 个窗口作为 3 个通道
  • 配置:
    • Batchsize: 768
    • Epochs: 17
    • 调度器:9 个 epoch 1e-3,2
同比赛其他方案