返回列表

4th place solution [NS Pathology]

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

开始: 2020-04-21 结束: 2020-07-22 医学影像分析 数据算法赛
第4名解决方案 [NS Pathology]

第4名解决方案 [NS Pathology]

作者: hirune924 (Grandmaster) | 队友: SiNpcw (Master)
发布时间: 2020-07-23

首先非常感谢组织者,也感谢 @sinpcw 与我并肩作战!
我们的解决方案很简单。
我们最终提交的集成模型如下:

efficientnet_b5 x 4
seresnext101-64x4d x 2
seresnext101-32x4d x 2
resnest101e x 2
gem+efficientnet-b3 x 1

我们使用了硬投票作为集成方法,而不是软投票。这绝对提高了我们的分数!
如果在硬投票中获得最多票数的模型没有获得超过总票数 1/3 的票数,我们也会使用平均值。但这种方法只在公共 LB 上有效。

在训练中,我们使用了以下链接中的图像切片技术。这使我们能够确保组织均匀分布在所有切片上。它还可以通过改变缩放比例来进行数据增强。我们使用中间层的 512x512x16 切片。我们也尝试过使用最高分辨率层的 1024x1024x16,但没有效果提升。
https://www.kaggle.com/hirune924/image-loader-test

我们还使用了 syncBN(同步批归一化)。这对于训练较大的模型非常重要。
蓝线是普通 BN,棕线是 syncBN。

syncBN对比图

O2U-Net

(这种方法似乎在 Private LB 上有效,但因为我们无法在 Public LB 上看到效果,所以最终没有使用)
我们也尝试使用 O2U-Net 来去除数据噪声,但在 Public LB 上没有起作用。
但是,仅针对 radboud 数据进行清洗似乎对 Private LB 有效。
仅在去除噪声的 radboud 数据集上训练的 seresnext50 在 Private LB 上达到了 0.933(如果不进行数据清洗,Private LB 为 0.915)。
https://openaccess.thecvf.com/content_ICCV_2019/papers/Huang_O2U-Net_A_Simple_Noisy_Label_Detection_Approach_for_Deep_Neural_ICCV_2019_paper.pdf

我分享了一个笔记本,它基于 O2UNet 记录的损失来计算噪声水平。
https://www.kaggle.com/hirune924/o2unet-loss-aggregate
第 1 名的解决方案中也描述了数据清洗对 Private LB 的影响。
https://www.kaggle.com/c/prostate-cancer-grade-assessment/discussion/169143

实用工具

同比赛其他方案