返回列表

22th Place - Lessons learned from a beginner

349. Understanding Clouds from Satellite Images | understanding_cloud_organization

开始: 2019-08-16 结束: 2019-11-18 气象预报 数据算法赛
第22名 - 初学者的经验教训

第22名 - 初学者的经验教训

作者: IgorMuniz (以及团队 Harold Team Brazil)
比赛排名: 第22名

首先恭喜所有的获奖者。我要感谢 Kaggle 举办这次比赛,这是我第一次能够全身心投入并赢得奖牌的比赛。

对我无效的方法

  • Lovasz loss(Lovasz 损失函数)
  • 更深的编码器 (efficientb7, senet)
  • 伪标签

我们的解决方案

我们的解决方案基本上是分割模型的集成,并通过后处理去除掩码。

模型(每个模型6折):

  • ResNet34 - Unet*
  • EfficientNetB2 - Unet*
  • EfficientNetB2 - FPN
  • EfficientNetB2 - LinkNet
  • EfficientNetB5 - Unet

损失函数: BCE + Dice
* 这些模型使用了不同的图像尺寸进行训练 (320x480, 384x576, 512x512, 704x1056)

后处理:
寻找三元组阈值进行二值化,去除小掩码,然后对前两步后剩余的掩码再次进行二值化。所有这些都是利用所有6折的验证数据完成的。

得分情况:
CV: 0.6651
Public LB: 0.67556
Private LB: 0.66498

好的经验

我对图像分割了解不多,所以这次比赛是一次很棒的学习经历。

  • 阅读所有评论并尝试获取技巧。
  • 建立一个好的验证集
    正是因为有了它,调整后处理参数才成为可能,而不会导致过拟合。

坏的教训

  • 相信你的 CV(交叉验证)

我有一个更好的模型,得分为:

CV: 0.6681
Public LB: 0.66759
Private LB: 0.66824

为什么我没有选择它?因为第二个教训……

  • 相信你自己
    我最好的模型有些不同。我为每种掩码类型训练了一个模型,逐一预测,并在应用后处理之前将其转换为原始格式(堆叠4个掩码)。

这让我能够将其与我目前拥有的相同的袋外数据进行比较。ResNet34-Unet + EfficientNetB2-Unet 的简单混合在 CV 上得到了 0.668。

但我读到一些 Kaggle 用户用这种方法效果不佳,我担心我的验证中存在泄漏,而且 Public LB 的分数更差。所以我放弃了这个想法……

致谢

我要感谢我的团队和所有以某种方式分享经验的人。

分享是一件很好的事情,但我认为应该在合适的时间进行。正如我所说,我是一个初学者,但我也是一个在这次比赛中通过阅读过去的比赛解决方案而努力工作的人。所以我认为每个人都可以做到同样的事情。

同比赛其他方案