420. Cassava Leaf Disease Classification | cassava-leaf-disease-classification
抱歉这么晚才写出总结 😅
首先,我要感谢 Kaggle 组织了这次比赛以及伟大的 Kaggle 社区。特别感谢 @khyeh0719、@piantic 以及许多我没有提到的优秀 Notebook 作者。
这是我第一次参加比赛,这是一段疯狂的学习之旅。
我最终提交的两个方案分别是 EfficientNet B4 和 ViT 模型的堆叠集成(第1次提交)以及仅使用 ViT 模型(第2次提交)。与其他参赛者相比,我的方案相对简单。
EfficientNet 仅使用了 2020 年的数据。我尝试同时使用两年的数据,但效果不佳。我认为这与 2019 年图像的尺寸有关,因为我必须在增强过程中先调整图像大小。
对于 ViT、Deit、R50+ViT,我使用了 2020 年 + 2019 年的数据(仅包含类别 0、1、2、4 的数据)。类别 3 已经有很多图像(比其他类别多 6 倍)。
| 模型 | Public LB | Private LB |
|---|---|---|
| Efficientnetb4 | 0.9023 | 0.8977 |
| Deit_base_patch32_38 | 0.9018 | 0.8980 |
| Vit_base_patch32_38 | 0.9061 | 0.8978 |
| R50+ViT-B | 0.9009 | 0.8975 |
我花了几天时间试图找到最好的增强方法。这是我最终的增强策略:
我尝试过 CutMix、MixUp、FMix、SnapMix,但它们对我的模型不起作用。我认为 CoarseDropout 和 Cutout 已经是相当重的增强了。
我尝试了 @piantic 分享的 Notebook 中所有可用的损失函数。还有一些基本的损失函数组合(主动和被动)。标签平滑设置为 0.3 给了我最好的结果。
调度器:CosineAnnealingWarmRestarts
优化器:AdamP
训练 10 个 Epoch + 4 个 Epoch 的微调。
我尝试了 2-4 个模型的不同组合。只有 ViT 和 EfficientNet 有很好的协同作用。
我的两次提交如下:
我最好的 Private Score 是 0.9017,这是 EfficientNet (权重 0.4) 和 ViT (权重 0.6) 的组合,但其中的 ViT 模型是仅使用 2020 年数据集训练的。
我还有很长的路要走,