返回列表

1st place solution: Summing the power with GPU

524. G2Net Detecting Continuous Gravitational Waves | g2net-detecting-continuous-gravitational-waves

开始: 2022-10-04 结束: 2023-01-03 物理与天文 数据算法赛
第1名方案:利用GPU进行功率求和

第1名方案:利用GPU进行功率求和

作者:🐢 Jun Koda (Grandmaster) | 排名:第1名

感谢 Kaggle 和组织者举办这次引力波比赛。我也很享受之前的黑洞合并竞赛,并对金牌解决方案印象深刻。我原本以为大型预训练图像模型会是最强的,但它们却被一维卷积神经网络超越了。我参加这次比赛是为了构建这种检测波的深度神经网络模型,而不是功率……但我失败了。

这两次比赛最大的区别在于地球在120天内会发生自转,这会在频率中印入复杂的频率模式。波的叠加非常微妙,需要非常精确的相位模式,我无法在合理的计算资源内有效地累加复数傅里叶模式。在超过一个月没有进展后,我想我应该即使使用不令人满意的方法也要拿个银牌,于是放弃叠加波形,转而叠加功率。

解决方案

  • 沿着各种信号模式对功率(绝对值的平方)求和
  • 不使用机器学习
  • 不使用外部数据或泄露

功率求和

  1. 从模拟中提取信号频率和幅度 [总功率 P(t)]
  2. 针对4000种信号模式,从数据频率中减去多普勒频移频率
  3. 根据信号幅度模式对数据进行加权;这是最优线性权重 w(t)
  4. 沿直线对加权功率求和:360个频率(截距)× 241个斜率 [-120, 120](频率仓 / 120天)
  5. 取最大值
Power Sum Visualization

数值偏离典型范围 [-1, 1] 很大,因为它们是 4000个模板 × 360个频率 × 241个斜率 的最大值。

使用 GPU RTX 3090 耗时5天。斜率的完整范围是 [-360, 360],但 [-120, 120] 已经花费了足够长的时间。

真实噪声归一化

  1. 通过每个时间的噪声均方根进行归一化 h -> h / sigma(t)
  2. 通过屏蔽异常大的频率仓来消除单频噪声
  3. 通过剩余的均方根 sigma(f) 归一化频率依赖性

我知道噪声并不总是写成时间依赖性和频率依赖性的乘积,但我没有时间进行更好的处理。我的预测中仍然存在一些假阳性。

使用 Sinc 核的后续求和

信号通过 sinc 函数分布在频率仓之间(假设短时傅里叶变换的窗函数几乎是顶帽函数)。我使用宽度为8、步长为1/8频率仓的 sinc 核来收集信号。这是频率方向上的最优线性加权。我在第一步中围绕最大功率线,对400个模板的子样本重新计算功率和。这使公开分数惊人地提升到了 0.825 -> 0.848。

最后,我对标准化的功率和应用 sigmoid 并提交,这与仅提交功率和是一样的。我认为预测值也必须取决于噪声水平;如果信号未被检测到,对于较大的噪声,为正的可能性应该更大,因为更多数据未被检测到。我模拟了这种效应,但无法提高分数。

同比赛其他方案