670. NeurIPS - Ariel Data Challenge 2025 | ariel-data-challenge-2025
这次比赛是一个很好的机会,让我暂时脱离深度学习,做一些建模工作。非常感谢 Kaggle, @gordonyip 以及所有其他组织者,期待 2026 年版!
我的解决方案基础是一个物理模型,其参数经过拟合以匹配噪声数据。接下来,我应用一些后处理来优化结果,最重要的是梯度提升(Gradient Boosting)。
该模型类似于 Ariel 2024 中提出的模型。然而,现在的凌日深度要复杂得多。
1. 恒星光谱 (Star Spectrum) 计算方式为 sensor_data.mean(axis=0) / (transit_depth * poly_drift).mean(axis=0)。没有专门针对恒星光谱优化的参数。
2. 凌日深度 (Transit Depth) 是模型的主要部分。它接收一堆参数,并输出每个时刻每个波长剩余的光量。基本上,这与 @junkoda 的 笔记本 中描述的模型相同:
transit depth(t, w) = 1 - ∫ F(x)dx (积分区域为 D_tw)
这里 D 是每个时刻 t 每个波长 w 下恒星和行星圆盘的交集。F 是根据临边昏暗定律 (limb darkening law) 计算的恒星强度。我使用了非线性定律,包含六个系数,覆盖 x^0.5 到 x^3。数值积分也取自 @junkoda 的笔记本(毕竟这是必要的 :D)。以下是完整参数列表:
我还尝试添加 轨道半径 (orbit radius) 以考虑轨迹曲率。在使用 batman 手动生成的样本进行测试时效果更好,但在训练数据上表现不佳。
值得注意的是,凌日凹陷是平滑的,并且长度随光谱变化。一个具有最大 Rp 范围的行星很好地说明了这一点:
3. 多项式漂移 (Polynomial Drift) 是 1 + f(t, w),其中 f 是时间维度为 4 度、波长维度为 2 度的双变量多项式,共产生 15 个参数。
优化 (Optimization)。上述所有参数的模型输出都是可微的。我假设噪声为高斯分布,并使用根据噪声偏差加权的波长的 MSE 损失。我最终使用 Levenberg-Marquardt 方法进行拟合(应该感谢 @jeroencottaar,他的 GWI 解决方案让我做了一些关于优化的挖掘)。
优化运行 220 次 LM 迭代,主要在一个阶段同时拟合所有参数。唯一的例外是多项式漂移在第 70 次迭代之前被锁定,Rp 变化在第 180 次迭代之前被锁定。
Sigma 预测 在光谱上是恒定的,计算很简单:mu.std() * 1.6。
切割凌日 (Cut transits)。由于 ingress / egress 是自动拟合的,我不必为单边行星添加任何特殊处理。
性能 (Performance)。一个行星的拟合时间取决于凌日宽度,通常在 P100 (FP64) 上需要 20-25 秒。所有逻辑均使用 PyTorch 和 autograd 实现。凌日深度积分用 40 个环估算。
AIRS / FGS 通道。仅将模型应用于 AIRS(并将 FGS mu 设置为平均 AIRS mu)在公共排行榜上的得分约为 0.542。同时也拟合 FGS 将得分提高到了 0.546。
线性趋势与不稳定性。不知何故,我的方法拟合 Rp 时带有额外的线性趋势,且在光谱右边缘值不稳定。我还没有找到比简单地作为后处理步骤去除该趋势更好的方法,并设置 Rp[-50:] = Rp[-50]。以下是第一个行星的原始输出:
高撞击参数的行星。对于 b > 0.75 的行星,我的模型拟合的 mu 值比真实值大约 4-6%。这是另一个我未能解开的谜团。我为这些行星添加了特殊处理:
if model.get_b() > 0.75:
mu = mu / 1.05
sigma = sigma * 7.0
应用 PCA 对预测的 Rp 变化进行 PCA 处理,使公共排行榜得分提高了 0.007。我使用了 3 个分量。
梯度提升 (Gradient Boosting) 对我特别有效,在最后一周将我的得分提高了 0.028。我用它来优化 AIRS 和 FGS 的 mu 和 sigma:
star_info.csv 数据和所有拟合参数;mu_airs 变为 mu_airs + dmu_airs,其中 dmu_airs 是标量提升输出)。第一行显示的是已经去除趋势和不稳定值后的得分。
| 提交版本 | 公共排行榜 (Public LB) | 私有排行榜 (Private LB) |
|---|---|---|
| 仅拟合 AIRS 模型 | 0.542 | 0.550 |
| 同时也拟合 FGS | 0.546 | 0.554 |
| 添加 PCA | 0.553 | 0.557 |
| 添加 AIRS mu & sigma 提升 | 0.577 | 0.586 |
| 添加 FGS mu & sigma 提升 | 0.581 | 0.589 |