392. Prostate cANcer graDe Assessment (PANDA) Challenge | prostate-cancer-grade-assessment
首先,非常感谢主办方,也感谢 @kyunghoonhur 与我合作!
我们很高兴能获得意想不到的奖牌(我们的个人最佳排名是124名)。对我个人来说,这是我在Kaggle上的第一枚奖牌,这枚奖牌让我更加沉迷于Kaggle。
基于 @haqishen 的训练和推理笔记本,我们将提到我们尝试过的一些事情,以及这些工作如何影响我们的最终结果。
我们测试了几种不同的增强方法(转置、垂直翻转、水平翻转、随机旋转、模糊等),但没有看到太大的性能提升。因此仅采用了基于 @haqishen 笔记本的基础增强配置。使用 Albumentation 库:
Transpose(p=0.5)
VerticalFlip(p=0.5)
HorizontalFlip(p=0.5)
所有的增强都在两个层面上进行:切片层面 + 切片拼接后
与其他竞赛(用于图像分类的深度学习)类似,我们尝试了最流行的模型架构(Resnet, efficientnet)。在多种Resnet模型结构中,SE_Resnext50 显示出了最高的分数(因为我们的GPU限制,排除了大于50的模型)。Efficientnet 在交叉验证(CV)中表现出稳定且高的分数。不幸的是,由于GPU原因我们无法使用更高级别的efficientnet模型,但一些讨论让我们知道更深更重的模型会导致过拟合(Effnet b6)。所以我们专注于 Efficientnet B0 和 B1,两者之间差异不大。
Adam 优化器
Adam + GradualWarmupScheduler + CosineAnnealingLR
a) TTA (测试时增强)
基于 Quishen Ha 内核的切片生成方法,我们在进行切片提取时增加了轻微的增强。该代码位于 PANDA 数据集生成类的 mode=0 或 mode=1 选项中。mode=0 和 mode=1 的区别在于切片进入拼接输入(36 x tile)的顺序。因此,在推理模型时,mode1 切片和 mode2 切片被视为测试时增强(TTA)的增强数据。此外,我们以与训练相同的方式添加了变换增强(2个层面,切片 + 拼接输入)。从几次实验来看,当增加增强数据数量时,TTA 对我们的公共分数显示出相当积极的影响。然而,考虑到这是一场代码竞赛,提交时间限制在9小时以内,我们做了中等数量的 TTA,而不是像超过100次 TTA 那样多,以防止超过常规提交时间。
16TTA(mode=0) + 16TTA(mode=1)
Transpose(p=0.5)
VerticalFlip(p=0.5)
HorizontalFlip(p=0.5)
b) 模型集成
这次竞赛中最困难的部分是如何考虑训练数据上的过拟合以及如何预测私有数据的震荡。我们仔细观察了我们的 CV 分数和 LB 分数,并不断比较它们。最后,通过比较每个折(fold)的 CV 和 LB,我们得到了 CV 和 LB 分数结果最相似的折。
集成结果 [Efficient net b0(fold0) 和 Efficient net b1 (fold0 和 fold1)] 在公共分数和最终(私有)分数上都显示了最好的成绩。