420. Cassava Leaf Disease Classification | cassava-leaf-disease-classification
哇,真是一场精彩的比赛!我们从公开排行榜的第1138名跃升至私有排行榜的第36名,获得了一枚银牌。我们的解决方案非常简单,我们没有使用任何技术来处理噪声。我有没有提到我们的提交是在截止日期前几分钟才完成的?
我们银牌解决方案的组成部分:
这与这个 Kernel 基本相同,但使用了 EfficientNet-B7 模型,训练了 20 个 Epoch,图像大小为 512x512。5折交叉验证分数为:
该模型提交时使用了 3倍 TTA(测试时增强),增强策略如下:
RandomResizedCrop,
Transpose(p=0.5),
HorizontalFlip(p=0.5),
VerticalFlip(p=0.5),
RandomBrightnessContrast(
brightness_limit=(-0.1,0.1),
contrast_limit=(-0.1, 0.1),
p=0.5
),
我们要注意的是,在私有提交泄露期间(约1.5个月前),我们注意到该模型在排行榜上的提交排名是第9位。
该模型的训练受到了这个 Kernel 中训练过程的启发(但没有进行标签校正)。基本上,使用 EfficientNet-B3a(由 Ross Wightman 训练权重的 EfficientNet-B3 版本),冻结模型主体并解冻 fastai 模型头部,训练了 3 个 Epoch。随后,解冻整个模型并训练 10 个 Epoch。使用 512x512 的图像,Batch Size 为 32。使用的增强策略如下:
Dihedral(p=0.5),
Rotate(p=0.5, max_deg=45),
RandomErasing(p=0.5, sl=0.05, sh=0.05, min_aspect=1., max_count=15),
Brightness(p=0.5, max_lighting=0.3, batch=False),
Hue(p=0.5, max_hue=0.1, batch=False),
Saturation(p=0.5, max_lighting=0.1, batch=False),
RandomResizedCropGPU(size, min_scale=0.4),
CutMix()
使用了标签平滑损失函数和 Ranger 优化器。CutMix + 标签平滑非常有帮助,我们注意到因此有了显著的 CV 提升。保存了验证损失最佳的模型。这产生了一个 5折交叉验证分数为 0.8914 的模型。
该模型提交时使用了 5倍 TTA,采用训练时的增强策略 (learn.tta(n=5,beta=0))。
我只是将之前流程中的模型换成了 SE-ResNext50。5折交叉验证分数为:0.8938。
这三个模型被集成并提交。
我们还有一个具有不同增强、学习率策略等的 SE-ResNext50 模型,以及在训练结束时进行的随机权重平均。该模型与 EfficientNet-B3a 和 EfficientNet-B7 一起集成提交,结果为 Public LB: 0.897, Private LB: 0.901(潜在的金牌区域),但不幸的是没有被选中。不过,我们很感激我们甚至成功实现了 1135 名的排名飞跃!