返回列表

9th Place Solution [ResNeSt might be the key]

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

开始: 2020-04-21 结束: 2020-07-22 医学影像分析 数据算法赛
第9名解决方案 [ResNeSt 可能是关键]

第9名解决方案 [ResNeSt 可能是关键]

作者: Sanchit Singh
比赛排名: 第9名

首先,非常感谢主办方。

我的解决方案很简单。
在最终的集成提交中,我使用了以下模型:

  • 标签平滑 + 序数回归 + efficientnet_b0 x 2
  • 标签平滑 + 序数回归 + GeM + ResNeSt50 x 2

我对 efficientnet_b0 并不太有信心,因为它的 CV 分数(.90XX)和 Public LB 分数(.87XX)之间存在大约 0.02-0.03 的差异。尽管使用了标签平滑,但在我看来它似乎对 LB 过拟合了,而且不够稳定。
相比之下,ResNeSt50(Split-Attention Network)配合标签平滑后,Public LB(.85XX)和 CV(.86XX)之间的差异非常稳定。

我们都知道,对于给定的公开测试图像数量,QWK(二次加权卡帕系数)并不是一个稳定的指标。我们也知道训练数据似乎包含大量噪声。
因此,我的直觉是选择一个得分较低但更稳定的模型,以及一个 Public LB 得分最高的模型进行集成。
我在集成过程中手动调整了模型权重。我观察到,给予 efficientnet_b0(Public LB 得分最高的模型)更多权重会导致 Public LB 下降,因此我选择了权重相等的集成方式(简单平均)。

在 Private LB 公布后,同一个 Resnest50 模型获得了 .90XX 的 Private LB 分数。

我原本很确定至少能拿到铜牌,但最终的排名震动似乎非常剧烈,最终让我进入了金牌区。(完全出乎意料)

在训练方面,我使用了两种图像切片技术(切片列表和单张大切片图像)。我使用了 36x256x256(level - 1)的切片,并配合简单的数据增强,如水平翻转、翻转、转置、旋转等。

还能做些什么?

由于我使用 Kaggle 和 Colab 进行训练,我分别受限于每周 30 小时和 12 小时的时长限制。很明显,我没有足够的 GPU 计算资源来做更多的实验。

但以下方法似乎非常有效:

我也尝试在去除了噪声标签(带有笔迹标记的图像)的单张大切片图像数据集上,使用 渐进式调整大小 的方法训练 seresnext50 + AdaptiveConcatPool + 分类(我很确定序数回归会得分更高),训练顺序如下:

16x128x128 (Level-2) --> 16x160x160 (Level-2) --> 20x224x224 (Level-1) 依此类推....

请确保在训练下一阶段时加载上一阶段的权重。

由于计算能力有限,我无法在更大的图像尺寸上训练 seresnext50,我的最终输入图像尺寸是 20x224x224,这给了我 .81XX 的 CV 分数和 .82XX 的 Public LB 分数(非常稳定)。
当 Private LB 公布时,以同样方式训练的 resnext50 模型获得了 .89XX 的 Private LB 分数。
由于我无法在更大的图像上训练它,因此无法将其用于最终集成。

我很确定这会给我最终的分数带来不错的提升。

同比赛其他方案