567. Google Research - Identify Contrails to Reduce Global Warming | google-research-identify-contrails-reduce-global-warming
我感谢组织者和Kaggle举办了这场有趣的比赛。同时,我也感谢许多Kaggle用户分享了以往比赛的解决方案,没有这些分享,我无法在分割任务上竞争。
增强在该竞赛中极其重要,可有效抑制过拟合并延长训练周期。使用旋转增强后,我能训练40-50个epoch,而无增强时仅能训练10-20个epoch。测试时增强(TTA)同样效果显著,可免费提升约0.006的分数。
这是基础操作,但在此竞赛中不能按常规方式使用,因为标签相对于凝结尾迹存在0.5像素的右下偏移。随机旋转增强会使标签产生随机方向的偏移,导致模型无法学习正确的右下对齐真实标签。
当我发现使用翻转和rot90(90°倍数旋转)增强时分数反而下降,感到非常困惑。在物理学中,系统具有何种对称性是需要首要考虑的因素。虽然西风或科里奥利力可能导致物理过程在翻转或旋转下不对称,但我无法相信这些因素会影响凝结尾迹检测。我可视化了一个无增强训练的模型预测结果,并将其应用于180°旋转的输入图像,以探究增强失效的原因。

从上到下的蓝-绿-红条纹模式分别表示假阴性、真阳性和假阳性,这意味着旋转后的标签相对于预测标签向上偏移;也就是说,原始标签相对于凝结尾迹向下偏移。左右方向也观察到了相同现象。

如果标签向左上偏移0.5像素(上图右面板),则旋转后的标签在凝结尾迹-标签偏移方面与原始标签保持一致。
增强配置如下:
import albumentations as A
A.Compose([
A.RandomRotate90(p=1),
A.HorizontalFlip(p=0.5),
A.ShiftScaleRotate(rotate_limit=30, scale_limit=0.2)
])
详细实现请参考我的公开笔记本:https://www.kaggle.com/junkoda/base-unet-model-for-the-1st-place
最终预测是两个模型的加权平均(阈值约0.45)。我使用验证集调整了阈值和权重。两个模型均使用maxvit_tiny_tf_512.in1k作为编码器的U-Net,但一个使用单时刻t=4,另一个使用四个时刻t=1-4。输入图像尺寸均为1024×1024。
为了利用时间信息,我尝试了3D ResNet和ConvLSTM,但完全无法使其工作。唯一可行的方法是将t=1,2,3,4的四个512×512图像打包成一个1024×1024图像,希望MaxViT的自注意力机制能关注不同时刻。

在U-Net中,我只将四分之一特征(H/2, W/2)传入解码器,对应t=4的四分之一区域。其余部分与单时刻模型相同。在空间方向拼接图像在Kaggle中偶有出现,我记得CPMP在G2Net黑洞合并竞赛中的解决方案[链接],他将3个探测器数据水平堆叠而非作为3个通道。
训练细节:
| 模型 | 输入尺寸 | CV | Public | Private |
|---|---|---|---|---|
| 单时刻 | 512 | 0.697 | 0.707 | 0.712 |
| 单时刻 | 1024 | 0.703 | 0.719 | 0.716 |
| 四面板 | 1024 | 0.704 | 0.719 | 0.722 |
| 集成 | - | 0.706 | 0.725 | 0.724 |
所有分数均为5折×8次TTA平均的结果。
2023年8月20日更新:添加代码链接并进行英文润色