返回列表

4th place solution

567. Google Research - Identify Contrails to Reduce Global Warming | google-research-identify-contrails-reduce-global-warming

开始: 2023-05-10 结束: 2023-08-09 双碳与可持续发展 数据算法赛
作者:Ivan Panshin(GRANDMASTER)
排名:第4名
发布日期:2023-08-20

第四名解决方案

这是一场非常棒的比赛,感谢组织者和我的团队。过去的3个月并不轻松,但很高兴最终一切都很值得。

概述

  • 使用多种编码器(包括基于卷积和基于Transformer)的U-Net模型
  • 使用交叉验证和集成方法为数据中未标注的部分(占所有数据的7/8)创建伪标签
  • 组合损失函数(交叉熵、Dice、Focal损失)
  • EMA(指数移动平均)+ SWA(随机权重平均)
  • 高分辨率(512 + 768)
  • 4TTA(水平翻转、旋转90度、旋转270度)

基础模型

我们很早就意识到,较重的模型和较长的训练在此效果良好,因此我们主要使用如effnet_v2_large及更重的骨干网络进行实验。最终解决方案包括:

  • effnet_v2_l
  • effnet_v2_xl
  • effnet_l2
  • maxvit

使用4块A6000 GPU进行训练大约需要一周时间(大部分训练时间用于创建高质量的伪标签)。

验证

在我们发现某些几何增强方法(例如垂直翻转)效果不佳后,将其从增强流程中移除。此外,4TTA验证与常规验证之间的相关性并不完美,因此在训练期间使用4TTA进行验证,这在比赛初期带来了显著提升。

关于数据划分,我们使用了组织者提供的划分方式。

伪标签

原始数据集(包含20,519条记录,每条记录有8张图像)对于U-Net类模型来说已经相当大,但我们希望进一步扩展。因此,我们通过训练3个模型,每个模型进行4折交叉验证,共进行2轮,为整个数据集创建伪标签。下图说明了这一思路:

然后我们使用采样器来训练最终模型:50%原始数据,50%软伪标签。

其他技巧

此处很多方法效果不佳,因此我们添加了一些简单技巧来改进流程,包括:

  • 交叉熵、Dice和Focal损失的加权组合
  • 训练过程中的EMA(指数移动平均)
  • 训练后对检查点应用SWA(随机权重平均)
  • 从U-Net的解码器中移除批归一化(BN)
  • 在最终集成中添加不同分辨率(512 + 768)

未生效的方法

  • Twersky损失(侧重FN或FP)
  • 后处理以移除假阳性(FP)
  • 3D模型(包括conv-lstm)
  • 使用单个标注进行训练(我们本应尝试使用标注的平均值进行训练)
  • 试图找出几何增强方法无效的原因(我们猜测是标注者偏差,结果发现是其他顶尖队伍发现的转换偏差)
  • 重度增强
  • 添加分类器
  • 预测额外帧或在训练中使用额外通道
  • 基于地理位置的验证
  • 仅使用正样本数据进行训练
同比赛其他方案