623. ISIC 2024 - Skin Cancer Detection with 3D-TBP | isic-2024-challenge
首先感谢 Kaggle 社区和组织者举办如此精彩的比赛!
这是我第一次写赛后解决方案,如果写得不好请见谅!
我的模型使用 VotingClassifier 对 LGB + CB + XGB 的预测结果进行投票。特征既包含表格数据,也包含使用 ImageNet 模型进行图像预测生成的伪标签。
由于我不太擅长调整 GBDT 模型,表格数据特征的构建参考了公开的 Notebook:https://www.kaggle.com/code/greysky/isic-2024-only-tabular-data
ImageNet 部分参考了 SIIM-ISIC 2020 冠军的代码:https://github.com/haqishen/SIIM-ISIC-Melanoma-Classification-1st-Place-Solution。
我训练了 4 个模型,分别是 tf_efficientnet_b4_ns, tf_efficientnet_b5_ns, tf_efficientnet_b6_ns 和 tf_efficientnet_b7_ns。我也尝试过其他模型如 resnet101, seresnext 等,但在 CV 上都没有 EfficientNet 效果好。模型训练细节如下:
| 模型名称 | 训练数据 |
|---|---|
| tf_efficientnet_b4_ns | ISIC 2024 图像 + 元数据 |
| tf_efficientnet_b5_ns | ISIC 2024 图像 + ISIC 2020 图像 + ISIC 2019 图像 |
| tf_efficientnet_b6_ns | ISIC 2024 图像 + ISIC 2020 图像 + ISIC 2019 图像 |
| tf_efficientnet_b7_ns | ISIC 2024 图像 + ISIC 2020 图像 + ISIC 2019 图像 |
所有模型的初始学习率为 3e-5,batch_size 为 128,使用 Adam 优化器和 GradualWarmupScheduler。所有模型均使用 BCEWithLogitsLoss 和 5 折交叉验证。图像数据的分辨率为 256 * 256。
一方面,我查看了公开 Notebook 中使用的 ImageNet 模型,我认为其用于训练 GBDT 模型的伪标签存在严重的数据泄露风险,所以我重新训练了自己的 CNN 模型。
另一方面,我相信参数量较大的模型能够更好地捕捉对应正样本的细节,因此使用 efficientnet_b5 ~ b7。除了使用本次竞赛的元数据外,我还添加了 2020 年和 2019 年的数据,以缓解类别不平衡的同时扩大训练样本。
在生成训练伪标签时,每个 fold 的模型仅生成对应验证集的标签以防止数据泄露。在生成测试伪标签时使用 OOF 策略。
为了确保能在 12 小时内运行完成,我在 CNN 网络推理期间开启了半精度并使用了两块 GPU。
最终我的 CV 分数约为 0.1814,公开榜分数为 0.184。
由于我在比赛结束前两周才加入,起初试图寻找队伍,但没人关注我,所以只能独自作战。愿每位参赛者不仅能在竞赛舞台上赢得荣誉,更能获得比名次更宝贵的经验与成长~