返回列表

6th solution

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

开始: 2023-01-19 结束: 2023-04-19 物理与天文 数据算法赛
作者: fate (Kaggle Master)
团队: fate, atom1231, outrunner
发布日期: 2023-04-21

IceCube中微子路径预测 - 第6名解决方案

推理(普通集成,0.978)https://www.kaggle.com/code/chihantsai/ens-gnn-v4-5-2-and-lstm-v8-and-tformer-v18-up300

推理(分组集成,0.975)https://www.kaggle.com/code/chihantsai/ens-group-gnn-v4-5-2-and-lstm-v8-and-tformer-v17

图神经网络(GNN)部分

详见:https://www.kaggle.com/competitions/icecube-neutrinos-in-deep-ice/discussion/402880

Transformer部分

详见:https://www.kaggle.com/competitions/icecube-neutrinos-in-deep-ice/discussion/402880#2227949

LSTM模型

基于 LSTM模型(作者:@rsmits)进行改进。

损失函数:
自定义交叉熵损失通过添加邻近区域损失来增强回归任务训练效果。邻近损失的权重如下图所示,灵感来自 此讨论

邻近损失权重

我们认为自定义交叉熵损失能覆盖比原始交叉熵损失更大的区域,这使得我们能够将球面划分为更多类别。

  • bin_num: 48(球面被分类为48×48个类别)
  • pulse_count(每个事件选择的脉冲数): 192 和 300
  • 优化器: AdamW

训练步骤:

  1. 设置学习率为1e-3,使用pulse_count=192训练数据集3轮
  2. 应用CosineAnnealingLR调度器,学习率范围1e-4到1e-6,t_max=4003(一个epoch迭代),pulse_count=192,训练4轮
  3. 使用CosineAnnealingLR调度器,学习率范围1e-5到1e-7,t_max=4003,pulse_count=192,训练3轮
  4. 使用CosineAnnealingLR调度器,学习率范围1e-4到1e-6,t_max=4003,pulse_count=300

SAKT模型(LSTM CNN Transformer)

参考自:https://www.kaggle.com/code/shujun717/1-solution-lstm-cnn-transformer-1-fold/notebook

  • 损失函数: 与LSTM模型相同
  • bin_num: 48(球面被分类为48个类别)
  • pulse_count: 192
  • 优化器: AdamW

训练步骤:

  1. 使用学习率1e-3,训练数据集3轮
  2. 应用CosineAnnealingLR调度器,学习率范围1e-4到1e-6,t_max=4003,训练4轮
  3. 应用CosineAnnealingLR调度器,学习率范围1e-5到1e-7,t_max=4003

集成方法

批次657、658、659的验证分数:

模型 验证分数
LSTM 0.9899
SAKT 0.9927
GNN 0.9927
Transformer 0.9869

普通集成

  • 验证分数:0.9803
  • 私有排行榜分数:0.978

分组集成

我使用线性拟合的结果和元数据将事件分为6组:

group1: aux=False的脉冲数 ≥ 300 且 天顶角(线性拟合预测) ≥ π/2 (~1%)
group2: aux=False的脉冲数 ≥ 300 且 天顶角(线性拟合预测) < π/2 (~1.58%)
group3: aux=False的脉冲数 < 300, 天顶角(线性拟合预测) ≥ π/2 且 aux=False的脉冲全部在垂直弦上 (~6.03%)
group4: aux=False的脉冲数 < 300, 天顶角(线性拟合预测) < π/2 且 aux=False的脉冲全部在垂直弦上 (~11.34%)
group5: aux=False的脉冲数 < 300, 天顶角(线性拟合预测) ≥ π/2 且 aux=False的脉冲在多个弦上 (~21.67%)
group6: aux=False的脉冲数 < 300, 天顶角(线性拟合预测) < π/2 且 aux=False的脉冲在多个弦上 (~58.37%)
验证分数

可以观察到不同组别的验证分数差异很大,且每个模型在不同组别上表现各异。这符合逻辑:大气μ子总是从上往下运动,因此天顶角(线性拟合预测) < π/2 的情况更容易包含噪声。此外,位于垂直弦上的aux=False脉冲更可能包含噪声。同时,具有更多脉冲的事件预测效果更好。

为提升结果,我们对每个组使用不同的集成权重,使验证分数和排行榜分数均提升0.003(达到0.975)。我们进一步根据附加标准将事件分为13组,使验证分数和排行榜分数再提升0.001(达到0.974,私有分数0.975)。

或许使用MLP进行集成能获得更好结果,但遗憾的是我们没有足够时间研究此方法。

附注: 我的英语不够流利,如果解释不够清楚,请随时告知。

同比赛其他方案