返回列表

15th Place Solution (FC part)

626. NeurIPS - Ariel Data Challenge 2024 | ariel-data-challenge-2024

开始: 2024-08-01 结束: 2024-10-31 物理与天文 数据算法赛
第 15 名解决方案(FC 部分)

第 15 名解决方案(FC 部分)

作者: Fritz Cremer

发布时间: 2024 年 11 月 1 日

比赛: Ariel Data Challenge 2024

排名: 第 15 名

团队成员: ln, Fritz Cremer, T0m, takaito

这是一次非常有趣且独特的比赛。能够学习到这么多此前对我来说非常陌生的领域知识,非常有趣。

我队友的解决方案:
https://www.kaggle.com/competitions/ariel-data-challenge-2024/discussion/543681
(待添加)

首先,我在空间维度上聚合信号并使用时间分箱(time-binning)。这样,在连接 FGS1 数据和反转的 AIRS 数据后,我得到一个大小为 (data_size, 375, 283) 的数组。

我计算不同频率的加权平均值,以降低相对于信号幅值的信号噪声。当我们使用频率信号的逆方差作为权重(首先按频率信号的幅值归一化)时,可以最小化这种噪声。这假设只有高斯噪声,且频率间的噪声不相关,这并不完全准确。但我认为它仍然提供了一个很好的估计。

设 S 为特定样本的信号数组,形状为 (375, 283)。利用计算出的方差,我们可以按以下方式估计相对于信号大小方差最小的信号:

首先,我们按平均信号强度归一化每个频率:

$$ S'[:, i] = \frac{S[:, i]}{Mean[S[:, i]]}$$
$$S_{avg} = \sum_{i=0}^{282} \frac{S'[:, i]}{Var[S'[:, i]]}$$

为了不扭曲这个方差,我实际上不仅仅计算方差,而是有一种考虑信号形状的方法。使用这个加权平均信号,我通过对信号的一阶导数使用高斯一维滤波器来找到 ingress(进入)和 egress(离开)时间。

类似于公共 notebook 中的做法,我正在寻找一个拟合输入信号曲线的多项式。这样我可以得到每个信号 transit depth(凌日深度)的初步估计。

我的神经网络模型现在接收几个值作为输入,x_1, x_2, 和 x_3:

  • x_0 := 每个信号的平均 transit depth
  • x_1[..., 0] := 多项式与原始信号之间未缩减的差异(transit 对齐且 ingress/egress 区域已插值)
  • x_1[..., 1] := 多项式
  • x_2 := 计算出的信号方差

在网络中,只要使用非线性激活函数,我就只使用对缩放不变的特征。否则,模型会因为强烈的分布偏移而失效。

模型产生整体 transit depth 的全局预测。为此,我再次简单地使用逆方差作为不同频率的权重,而不是学习到的加权平均。我发现这样泛化效果稍好一些。

我的模型还为每个频率生成 transit depth 预测。这是通过一个一维卷积滤波器完成的,它学习局部附近频率的 transit depth 的加权平均。我使用另一个学习到的加权平均来结合前两个预测。

sigma 预测涉及三个步骤:
我使用 wavg 信号的方差估计全局 sigma,并计算这个全局方差与 individual frequency variances(在频率维度上略微平滑)之间的学习加权平均。我在逆平方空间中对它们进行平均。
第二种估计 sigma 的方法是使用预测深度的轮廓作为 sigma 的基线:depths - min(depths)(例如,高深度预测更可能是错误的)。这第二种方法在 CV 和 LB 上给我的分数带来了非常大的提升(我相信是 +0.03)。

x_1 在时间维度上归一化,并传入一个小型卷积网络,以计算应用于深度预测的小因子和应用于 sigma 预测的因子。

我使用一个 LSTM 处理 min-max 归一化的深度和 sigma 预测,向其添加残差,然后缩放回以恢复原始的 min-max。事实证明,这是一种应用深度学习而不发生过拟合的有效方法。

最后,我使用一个自定义的负对数似然损失函数,直接优化预测的光谱和 sigma 预测:

Loss Function Formula

我的单模型 2 折 CV 约为 0.64,私有 LB 得分为 0.658。

最后,感谢我的队友们的辛勤工作!

同比赛其他方案