返回列表

4th Place Solution: Stabilizing Convergence in Understanding Clouds

349. Understanding Clouds from Satellite Images | understanding_cloud_organization

开始: 2019-08-16 结束: 2019-11-18 气象预报 数据算法赛
第4名方案:理解云层组织竞赛中的稳定收敛策略

第4名方案:理解云层组织竞赛中的稳定收敛策略

作者:Ching-Loong Seow
排名:第4名

Competition Teaser

首先,我想对以下组织方表示感谢,感谢他们举办了如此精彩的比赛:

此外,我想借此机会感谢各位Kaggle战友在各类比赛的讨论区中发表的有见地的帖子。通过阅读过往的方案,我也学到了很多东西并获得了知识。我在Kaggle的每个角落都发现了一种良好的思想交流和贡献的繁荣文化,我很高兴能成为其中的一员。

主要挑战

我在本次比赛初期面临的主要挑战是,许多不同架构的模型在训练早期阶段很容易过拟合,尤其是对于较大和较深的模型,如 SE-ResNext-101 和 EfficientNet B5-B7。我怀疑罪魁祸首可能是给定的标签噪声太大,这增加了模型过拟合训练数据噪声的趋势,因为标签是由所有标注者标记区域的并集确定的。此外,提供的标签形状是矩形,而不是贴合云层模式边界的精确形状。我理解比赛主办方做出这些决定的原因,这就是我在本次比赛中的整个旅程,主要围绕着稳定模型训练的收敛性展开。

方案概览

我在本次比赛的方案主要包括以下内容:

  • 纯分割模型,未使用误报分类器
    在使用分割模型达到公共LB 0.6752分后,我使用 Resnet34、SE-ResNext-50 和 EfficientNet-B4 训练了一些分类器,但在10折本地交叉验证中表现相当不稳定(+/- 0.003 ~ 0.010)。因此,我放弃了分类器,决定坚持使用分割模型。

  • 网络架构
    我使用了来自 segmentation_models.pytorchpretrained-models.pytorchEfficientNet-PyTorch 以及来自 @hengck23Resnet34-ASPP 的各种模型的出色实现。我的最终集成使用了7折 EfficientNet-B4-FPN 和3折 Resnet34-ASPP,因为在使用各种网络架构进行多轮实验后,它们在我的案例中表现更好且误差收敛更稳定。

  • RAdam 优化器
    RAdam 有助于稳定训练误差收敛,因为它在我的案例中对学习率变化不太敏感,从而最小化了方差。
  • 所有类别统一使用 0.4 阈值
    在 [0.4, 0.5, 0.6] 范围内比较时,0.4 的阈值产生了最高的交叉验证 DICE 分数,未进行进一步的阈值微调。
  • 所有类别的最小分割掩码尺寸为 5000 像素
    设置掩码尺寸阈值仅为了足以过滤掉噪声,未使用任何其他后处理方法。
  • 输入尺寸
    从原始尺寸 1400 x 2100 缩小到 700 x 1050。应用数据增强后,再次从 700 x 1050 缩小到 384 x 576。
  • 训练中使用的数据增强
    • 水平翻转
    • 垂直翻转
    • 随机平移、缩放和旋转
  • 测试时增强 (TTA)

    • 水平翻转
    • 垂直翻转
    • 180度翻转(水平 + 垂直翻转)
    </li
同比赛其他方案