返回列表

[11th place solution] I have survived in this storm

392. Prostate cANcer graDe Assessment (PANDA) Challenge | prostate-cancer-grade-assessment

开始: 2020-04-21 结束: 2020-07-22 医学影像分析 数据算法赛
[第11名方案] 我在这场风暴中幸存了下来

[第11名方案] 我在这场风暴中幸存了下来

作者: Iafoss | 排名: 第11名

摘要

  • 切片提取基于我的公开流程,使用来自中间分辨率层的128x128x128切片。
  • 标签噪声移除带来了约0.005的Public LB提升和0.01+的Private LB提升
  • 切片cutout + 切片选择增强。
  • Kappa Loss
  • 由8个基于ResNeXt50的模型组成的多数投票集成(Public LB 0.917,Private LB 0.930)。
  • 更先进的切片选择平均可以在Private LB上带来约0.004的提升(最高Private LB得分为0.941)。

简介

首先,我非常感谢组织者和Kaggle团队举办了这次比赛。参与其中非常愉快,我学到了很多新东西。通过分享我在这次比赛中的一些想法,例如被许多参赛者使用的切片池化基础流程,我获得了3枚Kernel金牌,因此我达到了Kernel Grandmaster段位。我也获得了我的第一枚单人比赛金牌。此外,我想祝贺所有的获胜者和获奖者。

然而,这一天对许多参赛者来说是相当悲伤的,特别是那些在整个比赛过程中非常努力但在Private LB上排名下降的人。组织者对指标的选择本可以更明智些:500+500的测试集对于QWK来说绝对是不够的。当使用不同的种子时,LB分数变化超过0.005是不正常的。当LB分数显示到小数点后第三位时,情况变得更糟:许多人被诱惑去拟合LB噪声。

下面我概述了对我有用的主要内容。我尝试了更多方法,但大多数都没有效果,我在过去一个月里无法进一步提高我的LB分数。

主要挑战

这次比赛在很大程度上是关于处理噪声数据和训练/测试偏差:正如组织者报告的那样,Radboud训练数据的QWK只有约0.853,我估计Karolinska训练数据的QWK为0.95-0.96。此外,由于Radboud数据是由学生评分的,而Karolinska数据仅由一位专家评分,而测试数据是由3位专家评分的,由于对训练集进行评分的人员的主观意见,可能存在训练/测试偏差。因此,单纯依赖CV在这次比赛中并不是一个好的策略:在某些时候,我发现当我进行更长时间的训练时,LB分数持续下降(约10个不同的模型),而CV却在增加。这证实了关于偏差的假设,诀窍是只训练有限数量的epoch(即使CV可以增加),根据设置训练32-48个epoch,以防止学习偏差

同时,由于严重的噪声,LB也不是最值得信任的东西,但有些人尝试将随机种子作为超参数进行拟合😄。在我看来,这次比赛正确的做法是在CV和LB之间找到平衡,并相信你的直觉和以往比赛积累的经验

噪声

在我看来,这是本次比赛最重要的部分。在组织者披露存在大量噪声(特别是在Radboud训练数据中)之后,我探索了许多处理噪声的技术:渐进式标签蒸馏、JoCoR(联合训练与协同正则化)、Co-teaching、负学习、从批次中排除困难样本等。然而,大多数在这里效果并不好。额外的挑战是训练和测试之间的偏差以及不稳定的LB。我发现对于这些数据最好的方法是基于Out of Fold预测从训练集中移除不确定样本。我排除了约1400个Radboud数据和300个Karolinska数据,所以我的干净训练集包含约8700项。重新标记被排除的图像并没有提高性能。在比赛结束时,有些人也发现了这个技巧,所以我对我的LB位置感到紧张😬
这个技巧带来了约0.005的Public LB提升和0.01+的Private LB提升。

流程

我使用的方法主要基于我的