349. Understanding Clouds from Satellite Images | understanding_cloud_organization

首先,我想对以下组织方表示感谢,感谢他们举办了如此精彩的比赛:
此外,我想借此机会感谢各位Kaggle战友在各类比赛的讨论区中发表的有见地的帖子。通过阅读过往的方案,我也学到了很多东西并获得了知识。我在Kaggle的每个角落都发现了一种良好的思想交流和贡献的繁荣文化,我很高兴能成为其中的一员。
我在本次比赛初期面临的主要挑战是,许多不同架构的模型在训练早期阶段很容易过拟合,尤其是对于较大和较深的模型,如 SE-ResNext-101 和 EfficientNet B5-B7。我怀疑罪魁祸首可能是给定的标签噪声太大,这增加了模型过拟合训练数据噪声的趋势,因为标签是由所有标注者标记区域的并集确定的。此外,提供的标签形状是矩形,而不是贴合云层模式边界的精确形状。我理解比赛主办方做出这些决定的原因,这就是我在本次比赛中的整个旅程,主要围绕着稳定模型训练的收敛性展开。
我在本次比赛的方案主要包括以下内容:
纯分割模型,未使用误报分类器
在使用分割模型达到公共LB 0.6752分后,我使用 Resnet34、SE-ResNext-50 和 EfficientNet-B4 训练了一些分类器,但在10折本地交叉验证中表现相当不稳定(+/- 0.003 ~ 0.010)。因此,我放弃了分类器,决定坚持使用分割模型。
网络架构
我使用了来自 segmentation_models.pytorch、pretrained-models.pytorch、EfficientNet-PyTorch 以及来自 @hengck23 的 Resnet34-ASPP 的各种模型的出色实现。我的最终集成使用了7折 EfficientNet-B4-FPN 和3折 Resnet34-ASPP,因为在使用各种网络架构进行多轮实验后,它们在我的案例中表现更好且误差收敛更稳定。
测试时增强 (TTA)