575. RSNA 2023 Abdominal Trauma Detection | rsna-2023-abdominal-trauma-detection
我知道第32名未必是人们未来比赛中追求的理想名次,但犯错并从中学习始终至关重要。我们在此分享解决方案,既为未来的自己,也为他人在下次比赛中改进提供参考。
第一阶段:器官分割
为了从弱标签转向强标签,分割目标器官至关重要,这也是我们与其他多支队伍采取的策略。
我们在此阶段可能犯了一个错误:保留了标注数据的原始标签,并将其作为下一阶段的样本外预测。虽然看似无害,但由于所有标注数据均包含损伤,且第二阶段模型可能通过真实分割结果进行区分,这可能引入了轻微的数据泄露。
第二阶段:器官损伤分类
与其他队伍类似,我们使用分割掩码裁剪感兴趣区域,并输入至2.5D+LSTM模型(针对肠、肝脏、脾脏和肾脏分别训练)。但我们额外将分割掩码作为模型输入,这可能并不必要,且可能引入数据泄露。
与多数方案不同的是,我们训练单一模型处理所有目标:将CT扫描堆叠为3D图像(Z, W, H维度),通过在W/H方向切片生成数据(16-24帧即可覆盖所有器官)。这种方法支持端到端训练、通过切换切片方向进行数据增强,并便于集成不同策略。
两种方法均显示模型对"外渗"(extravasation)的预测效果不佳,我们最终选择忽略该类别。自省:在比赛结束前3周加入,时间过于仓促。
第三阶段:MLP集成与指标优化
鉴于Kaggle竞赛需优化特定指标,我们采用最终优化步骤:对每位患者,融合两种第二阶段模型的预测结果,并堆叠同一患者的两个序列数据,训练MLP直接最小化官方指标。注意:最终模型预测外渗类别时未输入任何相关特征。
两种第二阶段方法单独达到CV 0.42 / LB 0.52,集成后提升至CV 0.386 / LB 0.49。
参赛初期总急于查看首次提交在公开榜的得分,因此快速编写简易推理代码。基础图像竞赛尚可应对,但三阶段方案极易出错。
当榜单位置提升时,人们往往忽视粗糙的推理代码,不断添加新逻辑直至分数停滞——而我们的CV-LB差距竟成参赛者中最严重的!😭
最后数日(含额外两天)都在排查巨大CV-LB差异的根源...
交叉验证fold 0得分0.393 → 本地推理fold 0得分0.418... 机器学习中的隐性错误防不胜防,务必谨慎!
感谢这场精彩的竞赛,祝贺所有参赛者,期待下次再见!