返回列表

9th place overview

450. SETI Breakthrough Listen - E.T. Signal Search | seti-breakthrough-listen

开始: 2021-05-10 结束: 2021-08-18 物理与天文 数据算法赛
第9名方案概览

第9名方案概览

作者: MPWARE (Grandmaster) 及其队友
比赛: SETI Breakthrough Listen - E.T. Signal Search
排名: 第9名

首先,我要感谢我的队友 @tikutiku@titericz@cpmpml@cooolz,感谢大家在这次有趣的 SETI 竞赛中的精彩合作。对我来说,能结识新的 Kaggle 伙伴并共同努力获得第9名,真是一次很棒的体验。每天都有新想法涌现,让我印象深刻。

我们的解决方案是多个模型的集成。团队尝试了许多方法来构建有效的模型并缩小 CV(交叉验证)与 LB(排行榜)之间的差距。@titericz 通过检查预测结果发现了 S-signal(又称 magic#1),我们决定尝试不同的方法,在训练数据中加入类似的信息:

  • 不同的自定义增强: 使现有的窄带消息看起来像 S-signal。其原理是正弦变形会将一条直线移动成 S 形,而所有其他属性(强度、信噪比等)保持不变。
  • 生成器: 为了对 S-signal 有更多的控制(并创建其他信号):https://www.kaggle.com/c/seti-breakthrough-listen/discussion/266805

我们很快意识到,虽然这提高了分数,但永远无法弥合 CV/LB 的差距。我们需要另一种“魔法”。我们尝试分析训练集和测试集之间的差异,并应用一些预处理使模型学习得更好。我们训练了一些自编码器(AE)并对嵌入进行了聚类,发现许多相似的图像/背景被用于生成:https://www.kaggle.com/c/seti-breakthrough-listen/discussion/266513

下面是聚类后图像嵌入(训练集 + 测试集)的 TSNE 图,小岛屿代表具有相似背景的样本。

TSNE

我们没有在这条路上走得更远(尽管很有希望),主要是因为这看起来更像是对生成数据的某种逆向工程,而不是机器学习。

最终,我们集成了6组模型,公共榜单得分为 LB=0.801:

  • 分类模型组1: 不同的骨干网络和输入尺寸:effnetb5-ns 为 512x512,effnetv2-s 为 512x640。仅基于 [0,2,4] ON 图像。采用 ShiftScaleRotate + H/V 翻转 + Resize + Mixup 增强。包含检查点平均和伪标签。推理时使用4次随机 TTA。公共 LB=0.795。
  • 分类模型组2: 不同的预处理,带有目标乘数的 mixup,额外的自定义正弦增强。包含伪标签。推理时使用 TTA。公共 LB=0.792。
  • 分类模型组3: 包含更多来自我们自定义生成器/模拟器的消息。推理时使用 TTA。公共 LB=0.788。
  • 分类模型组4: 不同的输入尺寸(640x512, 480x384)和各种预处理。仅基于 [0,2,4]。ShiftScaleRotate + H/V + Resize + Mixup + 正弦增强。使用 WeightedRandomSampler 解决不平衡问题,推理时使用 H/V TTA。部分模型在所有数据上训练(old_train, old_test, new_train)。公共 LB=0.781。
  • 分类模型组5: 单个分类模型(tf_efficientnetv2_s,保持高分辨率 - 第一个卷积层,仅频率轴 - 和 L2 归一化)。基于2个通道 [0,2,4] + [1,3,5]。Mixup(模拟微弱信号)+ H/V 增强。包含伪标签。推理时使用 H/V TTA。公共 LB=0.779。
  • 分割模型组: 使用我们的自定义生成器/模拟器训练的分割模型。这个模型能够提取 E.T. 信号,这在生产中可能很有趣。公共 LB=0.771。

有效的技巧