第 14 名解决方案
第 14 名解决方案
作者: Davut Polat (Grandmaster)
发布日期: 2025-09-08
竞赛排名: 14
非常感谢组织者——这次挑战提供了丰富的建模思路试验场,也带来了许多来之不易的经验教训。
概要 (TL;DR)
我使用了基于受试者的 GroupStratifiedKFold 交叉验证(分析时用 5 折;最终提交时用 20 折 Bagging),仔细的用手习惯标准化(镜像左手→右手),以及对两名反向佩戴受试者的 180° 校正。建模栈结合了 WaveNet、ResNet、U-Net 和 SqueezeFormer,处理 96 步序列,并使用样本权重、时间序列增强和 EMA 权重平滑进行训练。由于某些序列缺乏旋转(四元数)特征,我训练了四种模型变体(仅 IMU vs IMU+THM+ToF;含/不含仅加速度计)。在推理时,当缺少旋转特征时,我将示例门控到相应的变体。这种门控在私有排行榜上带来了 +0.0015 的提升,使我保持在金牌区。
预处理与标准化
- 用手习惯标准化:将左手记录镜像到右手坐标,以统一运动学特征。
- 反向佩戴校正:两名受试者反向佩戴了设备;我应用了180°旋转以使他们的帧对齐。
- 序列窗口化:固定序列长度 = 96 个样本/示例。
- 缺失旋转特征:某些序列缺乏四元数/衍生的旋转特征 (NaN)。这促使了下面的模型变体和推理路由器的设计。
交叉验证
- 交叉验证方案: 基于受试者的 GroupStratifiedKFold,以保持类别比例同时防止受试者泄露。
- 折数: 我运行了 5 折实验(报告 CV),然后通过 20 折 Bagging 构建最终集成(在相同的受试者分组原则下使用不同的拆分/种子)。
- 为何重要: 受试者具有独特的运动特征;将受试者混合 across train/valid 会虚增 CV。分组 CV 产生了稳定的 CV↔排行榜一致性,并降低了过拟合风险。
特征
我结合了有竞争力的公共特征想法与额外的时间/物理描述符:
- 公共基线特征(从社区 Notebook 中采用并修剪)
- 时间梯度
- 绝对值
- 四元数衍生特征
模型家族(多架构集成)
所有模型都消耗96 步序列,并使用相同的训练/验证拆分。
- WaveNet
- ResNet
- U-Net
- SqueezeFormer
四种训练变体(用于处理缺失的旋转):
- 仅 IMU(所有 IMU 特征)。
- 仅 IMU(仅加速度计特征)。
- IMU + THM + ToF(所有 IMU 特征)。
- IMU(仅 accel) + THM + ToF。
推理路由: 当旋转/四元数衍生特征缺失时,我相应地使用(2) 或 (4)。否则使用(1) 或 (3)。 这个简单的门控 materially 提高了混合模态测试数据的最终可靠性。
训练细节
- 损失与加权: 通过样本权重解决类别不平衡问题
- 增强(时间序列): 轻微抖动、时间偏移和尺度扰动;镜像/旋转操作符合物理上合理的变换。
- EMA 权重平滑: 维护模型参数的指数移动平均(Exponential Moving Average);验证/推理时使用 EMA 权重以稳定损失。
非常感谢竞赛组织者和 Kaggle 社区提供的资源和讨论。