返回列表

4th place solution: dynamic programming and ensembling

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

开始: 2022-10-04 结束: 2023-01-03 物理与天文 数据算法赛
第4名方案:动态规划与集成学习

第4名方案:动态规划与集成学习

作者: Vincent Debout, Skril
比赛排名: 第4名

非常感谢组织者和Kaggle举办这场非常有趣的比赛!我们也感谢所有竞争对手的讨论和思想交流。我们学到了很多关于连续波(CW)物理和频谱处理的知识。很抱歉我们没有使用机器学习方法。我们其实尝试过,但由于经验不足,没能得出令人满意的结果 :-)

我们很快找到了生成解决方案的不同方法,并寻找集成它们的最佳方式。但在AUC ROC函数排名范式下,我们没有找到显而易见的集成方法。于是我们的想法是建立一个单一的评判函数来均匀评估所有方法。每种方法都试图确定SFT中CW曲线的位置,该位置由4个参数(F0, F1, alpha, delta)定义。然后,评判函数保留每个测试用例中在所有结果中得分最高的参数。

因此,我们积累了使用不同数值参数执行的几种方法的结果。值得注意的是,最佳贡献分布在各种方法中。这种评判函数的一个缺点是它要求所有参与方法都能提供包含所有四个参数的CW曲线位置。

CW参数生成器

我们在每个测试用例上运行一组算法,试图找到频谱图中潜在信号的候选CW参数。它们的主要区别在于处理模块的变体及其参数化。主要步骤如下:

  • 首先使用动态规划勾勒出信号曲线的粗略估计,
  • 然后推断近似的关联CW参数(f0, f1和源方向),
  • 最后使用优化算法将参数调整到信号上(我们使用了scipy的Nelder-Mead优化器)。
流程图

粗略估计器(动态规划)

归一化的L1和H1频谱图被合并:abs(SFT_H1)² + abs(SFT_L1)²。在某些变体中,应用了非平稳噪声校正以减少伪影的影响。还可选地考虑了x2或x4的频率密集化(例如,在x2版本的复数SFT上:sft[1::2, :] = (sft_[:-1, :] - sft_[1:, :]) / np.sqrt(2))。

考虑了两种主要的动态规划变体,随着时间步长的增加逐步构建最佳曲线:

1) 水平分箱

在此变体中,频谱图在每个时间步长上水平分箱,曲线允许每个时间步长上下移动最多一个频率仓。只允许一个拐点。

2) 限制斜率变化

在此变体中,信号沿固定斜率的段进行插值。斜率范围由频带的最大预期多普勒和所考虑的f1范围决定,两个时间步长之间的斜率变化被钳制。也只允许一个拐点。

参数估计

对上一步获得的曲线进行参数拟合,得到近似曲线,形式为 (f0 + f1 * t) * (1 + A * cos(phi + w * t))。w对应于惯性系中地球的平均运动,A仅限于考虑其最大惯性速度。然后从这些中间参数A和phi推导出两个可能的替代源位置(在黄道两侧)。

参数优化

然后我们尝试使用Nelder-Mead算法优化这些组(f0, f1, alpha, delta) CW参数。在此步骤中,我们回到原始复数L1和H1 SFT。如下一节详细说明的那样,信号在参数曲线处对两个探测器独立积分,优化时考虑最小值 min(L1, H1)。在复数SFT中执行简化的插值,仅考虑2个包围点,而不是评判函数中考虑的完整向量。假设 cos i = 1,在信号积分期间沿时间轴应用幅度加权,并应用可选加权以应对噪声伪影。此步骤后仅保留两个可能源方向中较好的一个。

信号强度评估("评判")

评判评估基于原始复数频谱H1和L1。我们希望独立确定两者的SNR(信噪比)。请注意,我们所说的SNR可能与PyFstat中的定义有很大不同。

以下是评判算法的主要步骤:

对于每个时隙(频谱列):

  • 使用4个参数(F0, F1, alpha, delta)确定预期频率,
  • 计算周围像素的加权和(使用窗口FFT计算权重和相位)

对每个时隙获得的平方模求和(按列的逆方差和 cos i = 1 信号预期的幅度调制加权)。

我们根据经验(在公共分数

同比赛其他方案