524. G2Net Detecting Continuous Gravitational Waves | g2net-detecting-continuous-gravitational-waves
我们要感谢主办方和所有参与这次伟大活动的人!这是我们第一次参加 Kaggle 比赛,很高兴能赢得金牌。
我们是主要研究重中性轻子的理论粒子物理学家(因此团队名称使用了相同的缩写 HNL),没有引力波物理学的背景。最初的计划是提高我们的机器学习技能,但最终我们转向了基于物理学的方法。
找到一个连续信号很容易——它只是傅里叶变换中的一个峰值。
然而,由于多普勒调制和中子星的自转减速,信号分散在多个频率仓上。
我们的方法(与 Jun Koda 的方案非常相似)旨在简化调制曲线,如下图所示:

调制模式取决于源的位置(赤经 alpha,赤纬 delta)和频率的时间导数 F1,请参阅 pyFstat 教程。
事实上,这种方法并不新颖,GW(引力波)社区以 StaSlide [1] 的名称使用过。一旦单个 SFT(短时傅里叶变换)被移动,使得信号位于一个频率仓中,我们只需将它们的功率(绝对值的平方)相加。如果调制模式与实际模式稍有偏差,信号就会分散到几个仓中,这会大大降低灵敏度。因此,必须在参数空间中扫描非常精细的网格。该方法对时间戳中的任何间隙不敏感。它对非平稳噪声也相当稳健,但对仪器谱线非常敏感。
针对这次挑战,我们从零开始实现了该方法,先用 Python,然后用 Julia(优化的 Julia 代码比简单的 Python 实现快约 240 倍)。
处理过程遵循以下步骤:
在一台 5 年前的 Linux 台式机(8 核)上处理测试集大约需要 10 个小时。
像优秀的 Kaggle 初学者一样,我们最初跳进了最高科技的解决方案:我们想使用应用于时间序列的 Transformer。我们意识到有一种现有的搜索连续引力波(CW)的方法可以生成序列数据:Viterbi 轨迹 [2]。
这次尝试失败后,我们决定降低期望,采用一种已知且经过测试的方法:卷积神经网络(特别是我们寻找抗噪