396. SIIM-ISIC Melanoma Classification | siim-isic-melanoma-classification
首先,我要感谢我的队友们,他们都做得非常出色:@titericz、@robikscube、@skgone123 和 @coolcoder22。这是一次很棒的学习、合作和思想交流的经历!同时也要感谢 Kaggle 和比赛组织者设立了这场有趣的比赛!
在我们的解决方案中,我们试图构建一个由多样化模型组成的大型集成,目标是提高对过拟合的鲁棒性并抵御未来的榜单震动。结果表明我们的策略效果很好:相信交叉验证(CV)和模型的多样性对于在私有排行榜上取得好成绩至关重要。
我们使用了 5 折交叉验证,数据划分方案和 tfrec 文件由 @cdeotte 在他的优秀笔记本中慷慨提供。我们使用 2020 年的数据进行验证,并使用 2017/18/19/20 年数据的各种组合进行训练。
我们还应用了图像分割来检测和裁剪病灶,并构建了裁剪后的数据集。集成中的几个模型是使用裁剪后的图像进行训练的。
对于某些模型,训练折中的恶性图像进行了上采样。
我们在不同的模型中考虑了广泛的增强方法:
在 TTA(测试时增强)阶段,我们使用了与训练阶段相同的增强方法,通常增强次数在 10 到 20 次之间变化。
我们专注于 EfficientNet 模型,并在不同的图像尺寸上训练了多种架构。大多数最终模型使用 B5 架构,图像尺寸为 512x512。我们在一些模型中尝试添加了注意力层和元数据,并调整了学习率和标签平滑参数。我们也探索了 Densenet 和 Inception 架构,但观察到性能较差。
一些模型是从预训练权重初始化的。为了获得预训练权重,我们在完整的训练+测试+外部数据上拟合 CNN,以预测 anatom_site_general_challenge 作为代理标签。从预训练权重初始化而不是使用 ImageNet 权重提高了我们的 CV 分数。我建立了一个笔记本来演示这种预训练方法。
最佳单模型是在 384x384 尺寸上训练的 EN-B5,带有注意力和元特征,其私有 LB 分数达到了 0.9380。
到比赛结束时,我们的集成规模达到了 91 个模型。为了解决潜在的训练/测试不一致问题,我们使用两个标准筛选模型:
这将我们的集合减少到了 58 个模型,OOF AUC 在 0.8751 到 0.9377 之间。基于这组模型,我们决定提交三个多样化的方案:
CV 0.9474, Public 0.9521, Private 0.9423k 值和集成权重在 CV 上进行了优化:CV 0.9532, Public 0.9576, Private 0.9459