返回列表

9th Place Solution: GNNs Ensemble and MLP Stacking

545. IceCube - Neutrinos in Deep Ice | icecube-neutrinos-in-deep-ice

开始: 2023-01-19 结束: 2023-04-19 物理与天文 数据算法赛
第9名解决方案:GNN集成与MLP堆叠

第9名解决方案:GNN集成与MLP堆叠

作者: Dmitriy Ukrainskiy (MASTER)

团队成员: Dmitriy Ukrainskiy, Nikita Churkin, DmitryS, Ruslan Guseynov

投票: 获得 41 票,共 43 票

首先,我们要感谢 Kaggle 和 IceCube 合作组织提供了这场精彩的竞赛!

我们的解决方案基于一个具有 6 个 DynEdge 模型共享权重的 MLP 堆叠,并结合了按脉冲数分段内的 4 个 GNN 的混合模型。

1. 模型库

我们以 GraphNeT 的 DynEdge 架构模型为基础,并进行了多种修改。主要变体及其昵称如下:

  • v1 基础版:更改了 KNN 值,并加入了额外的池化方案。将 Adam 优化器替换为 QHAdam。
  • v2 大块头:增加了更多层并扩大了层宽度。将激活函数更改为 SiLU(它在多个领域表现出色)。添加了批归一化层。
  • v3 动态嵌入:为考虑冰层的不均匀性,我们将传感器嵌入集成到模型中(嵌入由 XYZ 坐标初始化)。该方法具有通用性,可用于任何在冰或水中分布有传感器的观测站。我们还添加了权重归一化,并切换至使用新的 Lion 优化器进行 FP16 训练。针对该模型,我们发布了一个提交示例,可在 1 小时 20 分钟内单独获得前 20 名的 LB 成绩。

2. 训练协议

每个模型都使用 von Mises-Fisher 损失对最多 600 个脉冲的事件进行了从头开始的长期训练。随后,使用欧几里得距离损失并对最多 200 个脉冲的数据进行了几个额外周期的训练。正如 @rusg77 在下方所指出的,该损失在第二阶段的训练中比原始损失效果更好。关于优化器选择和第二阶段训练策略的详细信息,由 @churkinnikita 在评论区中提供。

3. 集成

最后,对每个模型的最佳检查点应用了 SWA(随机权重平均)以提高鲁棒性。最终,我们得到了性能 < 1.000 LB 的 v1、v2、v3 模型,以及性能 < 0.990 LB 的 v1、v2、v3 模型。这 6 个模型被混合并堆叠。在最终版本中,堆叠模型表现更好,约为 0.977 LB,@simakov 在下方补充了详细细节。

4. 替代方法

我们解决方案的另一部分包含针对不同中微子事件的多个 GNN 模型。数据集按十个脉冲数(代表中微子能级)的均匀分箱进行分段,并在各段的组合上训练了 4 个新模型。最终,模型按段逐一混合,@rusg77 在该帖子中补充了这一部分解决方案的详细信息。

5. 结果

最终模型是 6 个堆叠模型与 4 个分段 GNN 模型按 60/40 的比例混合而成,在公开榜上的得分为 0.975(私有榜为 0.976)。我们采用堆叠模型的混合方式,以提高整体集成稳定性并降低各模型的方差。同时,我们希望这种方法能增强模型对数据中潜在噪声的鲁棒性。

当然,基于 Transformer 的模型在该任务上表现出色,但经过适当调优的 GNN 多样化集成也可以在所考虑的重建问题上取得优异成绩。

模型库

同比赛其他方案