665. CMI - Detect Behavior with Sensor Data | cmi-detect-behavior-with-sensor-data
首先,我要向组织团队和工作人员致以诚挚的感谢,感谢你们策划了如此精彩的比赛。
我也要感谢所有分享了众多深刻见解的参赛者。
由于评估指标不稳定且存在排行榜震荡的风险,而且单模型推理相当轻量,我的主要策略是开发多种模型,并通过爬山算法(Hill Climbing)将它们组合成一个 robust 的集成模型。
从一开始,考虑到指标不稳定和单模型推理时间短,我就专注于创建多样化的模型集用于集成。当有 ToF/热成像数据可用时,我使用三分支模型;对于仅 IMU 的情况,则使用单分支模型。
我开发这个模型的灵感来自最近的研究,这些研究展示了基于 Mamba 的架构在人类活动识别中的有效性。
为了捕捉每个传感器 (IMU, ToF, 热成像) 的时间序列特征,我设计了三个独立的编码器分支。每个编码器由双向 Mamba 块组成。虽然许多论文只使状态空间模型 (SSM) 部分双向化,但我的实验表明,使整个 Mamba 块双向化能带来更好的性能。关于此 Mamba 块的消融实验显示 CV 得分提高了 +0.005。
在每个分支中使用 Mamba 捕捉长期依赖关系后,Transformer 编码器对它们进行聚合。这关注的不是时间依赖关系,而是捕捉每个时间步的传感器间交互。
可以将其想象为来自 IMU、ToF 和热成像领域的专家讨论他们的初步发现以达成共识。关于此 Transformer 编码器的消融实验也显示 CV 得分提高了 +0.005。

对于仅 IMU 数据,基于 SE-Transformer 块的模型优于基于 Mamba 的模型。该架构在 Transformer 编码器后应用 squeeze-and-excitation (SE) 块来学习通道间交互。消融实验表明 Transformer 编码器带来了 +0.01 的提升,SE 块带来了 +0.005 的提升。

基本上,我使用了以下特征:
然而,对于缺少 rot 数据的序列,使用 rot 相关特征(如 linear_acc, angular_vel)的结果会变差。
对于这些情况,我切换到了仅 acc 特征集。该集合包括加速度的 1 阶和 2 阶导数,以及模仿加速度向量叉积的旋转代理特征。
这些额外特征显著提高了缺少 rot 值序列的 accuracy。
为了解决左撇子受试者数据稀缺的问题,我翻转了相关轴,将其视为右撇子数据。
这使得模型能够专注于手势本身,而不受惯用手的影响。
正如讨论中指出的,两名受试者 (SUBJ_019262, SUBJ_045235) 可能倒戴了设备。
我在训练中校正了他们的数据。

我训练了大量多样的模型(使用不同的特征集、架构和随机种子)。
然后我使用爬山算法 (Hill Climbing) 找到最大化 CV 得分的模型组合及其权重。最终提交的是大约 20 个模型的集成。
在比赛的最后一天,我意识到顶尖竞争对手可能正在使用基于以下约束的技巧:每个手势在受试者的会话中出现的次数恰好有限……
由于时间有限无法进行彻底验证,我选择了一种更安全的方法:对于每个受试者,如果某个手势的预测计数超过 8 次,我将 logit 值最低的预测更改为 logit 值第二高的类别。
仅这个简单的后处理步骤就将我的 LB 得分提高了 +0.003。
受几项研究的启发(例如 INERTIAL HALLUCINATIONS),我探索了一种仅使用 IMU 数据模仿 ToF/热成像数据中间表示的技术。
这带来了轻微的 CV 提升,但并不显著。
这种方法在 HMS 比赛的 EEG 数据中效果很好,但在这次比赛中表现不佳。
这可能是因为个体之间的运动节奏差异很大,或者因为原始波形值发挥了更重要的作用。
我尝试在第二阶段使用专用模型来分类易混淆的手势,但这种方法没有成功。