返回列表

6th Place Solution Batman-Minuit

670. NeurIPS - Ariel Data Challenge 2025 | ariel-data-challenge-2025

开始: 2025-06-26 结束: 2025-09-24 物理与天文 数据算法赛
第六名解决方案 Batman-Minuit

第六名解决方案 Batman-Minuit

Batman - Minuit 基于物理的解决方案

作者: Vicens Gaitan (宗师)
排名: 第 6 名
发布时间: 2025-09-25

Ariel 25 挑战赛:鲁棒传输光谱的三阶段管道

首先,我要感谢组织者举办了如此有趣的比赛。他们既展现了科学严谨性,又设计了复杂的数据生成谜题——其中一些我至今仍未完全解开。

1. 总结

本解决方案展示了一个全面的三阶段管道,旨在从 FGS1 和 AIR-CH0 Ariel 仪器数据中提取高保真传输光谱。该方法结合了基于物理的建模与机器学习 inspired 的后处理框架,以应对仪器系统误差和不确定性估计的关键挑战。

  1. 阶段 1:GPU 加速预处理。 原始传感器数据使用基于 CuPy 的管道转换为干净、校准的光变曲线。此阶段处理标准仪器校正,包括非线性、暗电流、平场化和抖动校正,所有操作均在 GPU 上高效执行。

  2. 阶段 2:分层凌日拟合。 我使用 batman 凌日建模库和 iminuit 优化器执行多步拟合。首先将鲁棒的全局模型拟合到组合的 FGS 和 AIRS 光变曲线,以约束关键轨道参数。随后进行 2D 漂移校正和逐波长拟合,以提取初始传输光谱。

  3. 阶段 3:交叉验证后处理集成。 初始光谱使用经过分组 K 折交叉验证训练的模型集成进行细化。此最终阶段融合了 PCA 正则化信号与平滑信号,并采用参数化模型预测最终不确定性(sigmas),直接针对比赛分数优化所有参数。

这种多阶段设计确保了初始拟合尊重物理约束,而最终模型具有灵活性,可以学习并校正残留的系统误差,并产生校准良好的不确定性。


2. 方法论

阶段 1:原始数据预处理

管道中的第一步是将原始传感器读数转换为科学上有用的光变曲线。整个过程使用 CuPy 在 GPU 上执行,以实现最大效率。

关键预处理步骤:

初始校准: 管道首先应用标准仪器校正。这包括用于增益和偏移的 ADC 校正、用于探测器非线性的 5 次多项式校正 (apply_linear_corr_fast),以及减去缩放的主暗帧 (clean_dark)。

平场化与掩模: 应用主平场帧以校正像素间的灵敏度变化。通过 sigma 裁剪暗帧识别为“热”像素或“死”像素会被掩模处理。

抖动校正: 对于 FGS1 传感器,我们应用质心回归来校正由探测器上图像运动引起的通量变化。通量与恒星图像的归一化 X 和 Y 位置去相关。虽然为 AIRS 传感器开发了基于 PCA 的抖动校正方法,但发现其效果较差,因此在最终管道中禁用。

抖动校正示意图

信号提取与清理:

  • 对于 FGS1,最终通量使用简单孔径测光提取。PSF 测光给出的信噪比信号较低,可能是由于抖动所致。
  • 对于 AIRS,信号从探测器中心区域提取,并减去从探测器顶部和底部边缘计算的背景信号。这不是最优的,因为光谱信号以衍射方式延伸到整个传感器,使得难以识别加法频率依赖背景,因此需要在后处理阶段进行全局比例因子和光谱斜率校正。
    AIRS PSF 示意图
  • 将尖峰清理算法应用于最终时间序列,通过识别和替换帧间差异中的异常值来去除宇宙射线击中。

分箱: 为了提高信噪比,两种仪器的最终时间序列都通过平均连续帧进行分箱。

阶段 2:基于物理的光谱拟合

有了两种仪器的干净光变曲线,我们提取初始传输光谱。此过程使用 pqdm 并行化,以高效处理所有观测数据。

分层拟合策略:

1. 全局组合拟合: 我们首先使用 fit_combined_curves 同时 拟合 FGS 光变曲线和波长平均的 AIRS 光变曲线。此关键步骤为系统的共享物理参数(例如,轨道周期 per、倾角 inc、凌日时间 t0)提供了鲁棒的约束,这些参数从提供的 star_info.csv 文件初始化。凌日使用 batman 建模,假设二次临边昏暗模型,使用 2 个参数,仪器趋势用时间多项式基线建模。

拟合示意图

2. refined 拟合与漂移校正: 第一次拟合的结果用于初始化归一化数据上的第二次 refined 拟合。随后,将 2D 仪器漂移模型拟合到 AIRS 数据立方体的凌日外部分。此模型(Drift 类)由两个 4 阶多项式组成,一个用于频率轴,一个用于时间轴,它校正探测器上缓慢变化的系统模式。然后将数据立方体除以该漂移模型。
3. 逐波长拟合: 最后一步是测量漂移校正后的 AIRS 数据每个单独波长通道中的凌日深度。fit_w 函数遍历通道,在小移动窗口 (deltaw=2) 内拟合数据以提高信噪比。在此拟合中,大多数轨道参数固定为全局拟合的值,仅允许凌日深度 (dipa) 和基线归一化 (A0a) 变化。
此过程产生“原始”光谱及其相关不确定性,作为我们最终建模阶段的主要输入。

光谱示意图

阶段 3:后处理与不确定性建模

解决方案的最后阶段是一个后处理模型,它细化原始光谱,并且关键的是,学习一个鲁棒的最终不确定性模型。这是大部分“机器学习”发生的地方。

模型架构 (build_preds):模型通过混合原始光谱 (preds1) 的两种不同表示来生成最终预测:

PCA 正则化预测 (preds0):原始光谱经过斜率校正,然后投影到预定义的 PCA 基 (components.npy) 上。这去除了光谱噪声并施加强正则化先验,捕获最常见的变化模式。
平滑预测 (preds2):原始 AIRS 光谱使用 Savitzky-Golay 滤波器进行平滑,以减少高频噪声,同时保留更广泛的光谱特征。

最终平均预测是这两个模型的加权平均值:preds = app0 + (1-ap)preds2,其中 ap 是学习到的参数。

Sigma 模型: 预测准确的不确定性是最大化比赛分数的关键。我开发了一个复杂的、经验 derived 公式来建模每个数据点的最终 sigma。此公式结合了多种不确定性来源:

  • a1* err^e1:来自初始拟合的传播误差,带有学习到的指数。
  • a01/p1^e2:与信号幅度相关的项。
  • b0 * sigma0:与原始信号波动性成比例的项。
  • ae * np.abs(p0-preds2):当 PCA 和平滑模型不一致时增加不确定性的项,捕获模型不确定性或未知光谱。

最后,对于凌日外点非常少或非常多,或者 FGS1 和 AIR-CH0 的 dip 非常不同的样本,还有一个 sigma 调整。

训练与集成:

目标: 模型的自由参数 (ap, e1, e2, a1, a0, b0, ae 等) 使用 iminuit 优化,以直接最大化比赛分数。

交叉验证: 为了构建泛化良好的鲁棒模型,我们采用 10 折分组 K 折交叉验证策略,使用 planet_id 对数据进行分组。这确保单个行星的所有观测值都保留在同一折内,防止数据泄漏。

校准: 在每一折内,优化主要参数后,我们计算波长依赖的校准因子 (alpha),该因子缩放预测的 sigmas 以最佳匹配训练数据中观察到的方差。然后将此因子应用于验证集预测。

集成: 最终提交是通过平均交叉验证过程中训练的 10 个模型的校准预测和 sigmas 生成的。这种集成技术减少了方差并提高了最终分数。

整个训练过程,包括每一折的并行优化,由 model.py 文件中的 CV_model 函数管理。


4. 无效的方法

我尝试使用高斯过程和 Ridge 回归后处理光谱和 sigma 值,但结果不如使用平滑/PCA 正则化模型的混合和经验 sigma 公式。

在最后几周,我花时间尝试隔离每个样本 AIRS 数据中的加法前景噪声,这将消除对全局因子和斜率补偿的需求。然而,我未能找到去相关信号和噪声的方法。我观察到光谱 PSF 中有清晰的结构,但所有提取噪声的尝试都产生了错误的值,未能补偿系统误差。

5. 关于效率的评论

选择 batman 和 iMinuit 是出于速度考虑。iMinuit 是 MINUIT Fortran 代码(由 Fred James 在 70 年代开发;论文, 维基百科)的 C++ 端口的 Python 包装器,通常比 generic SciPy 优化例程更快。此外,通过 CuPy 使用 GPU 加速数据处理使得管道非常快,因为所有过程都是完全并行化的。在 Kaggle 上使用 P100 实例的提交过程耗时不到 1.5 小时,而在拥有 100 核和 4 个 nVidia L40s GPU 的机器上,完整的预处理、拟合和后处理大约需要 5 分钟。后处理参数调整也可以在几分钟内完成。


6. 结论

本解决方案展示了混合方法的力量,将物理信息的凌日建模与灵活的数据驱动后处理框架相结合。通过首先提取合理的物理光谱,然后用针对特定比赛指标训练的模型进行细化,我们可以有效地校正复杂的仪器系统误差,并产生高精度、校准良好的传输光谱。使用 GPU 加速、并行处理和鲁棒的交叉验证方案确保了这一复杂管道在计算上高效且抗过拟合。

同比赛其他方案