665. CMI - Detect Behavior with Sensor Data | cmi-detect-behavior-with-sensor-data
感谢 Kaggle 和 Child Mind Institute 举办这场迷人的竞赛!这是一次令人难以置信的学习经历,让我们能够使用多模态传感器数据进行行为分析。
三种模型类型 利用不同的传感器模态:
混合 CNN-RNN 多模态神经网络:(类似于公开版本)
class Net(nn.Module):
def __init__(self, cfg):
# IMU 深度分支
self.imu_block1 = ResidualSECNNBlock(self.imu_dim, 64, 3)
self.imu_block2 = ResidualSECNNBlock(64, self.sequence_length, 5)
# 双向 GRU
self.bigru = nn.GRU(self.sequence_length, self.sequence_length,
bidirectional=True, batch_first=True)
# 注意力机制
self.attention = AttentionLayer(self.sequence_length * 2)
-acc_x, -rot_y, -rot_z)这是一个关键的创新,显著提高了后处理的有效性:
对于每种模型类型(仅 IMU、THM+IMU、TOF+IMU),我都训练了正常版本和逆向版本。
为什么有效:(虽然我不完全确定)
发现:在竞赛结束前 13 天,我意识到同一受试者过去的预测可以显著改善当前预测。
输入序列 → 传感器检测 → 模型选择 → 正常 + 逆向预测 → 主体历史 → 最终输出
逐步过程:
可用传感器 → 模型选择
仅 IMU → IMU 模型 (正常 + 逆向)
IMU + 热成像 → 热成像+IMU 模型 (正常 + 逆向)
IMU + ToF → ToF+IMU 模型 (正常 + 逆向)
当前预测 (正常 + 逆向) + 历史序列 (同一主体) → 增强预测
| 指标 | 无后处理 | 有后处理 | 提升 |
|---|---|---|---|
| IMU CV | 0.81 | 0.84 | +0.03 |
| ALL CV | 0.84 | 0.89 | +0.05 |
| 公共 LB | 0.850 | 0.882 | +0.032 |
| 私有 LB | 0.841 | 0.868 | +0.027 |
CV 结果基于 5 折中的 1 折,以提高时间效率
感谢所有参与者带来的精彩竞赛和分享的见解!