Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kaggleコンペティション「MABe Challenge - Social Action R...

Avatar for yu4u yu4u
January 17, 2026

Kaggleコンペティション「MABe Challenge - Social Action Recognition in Mice」振り返り

第5回 関東Kaggler会 での登壇資料です。
https://kanto-kaggler.connpass.com/event/378154/

Kaggleコンペティション「MABe Challenge - Social Action Recognition in Mice」
6th Place Solution紹介と振り返り資料です。

Avatar for yu4u

yu4u

January 17, 2026
Tweet

More Decks by yu4u

Other Decks in Technology

Transcript

  1. © GO Drive Inc. 3 MABe Challenge - Social Action

    Recognition in Mice 概要 ◼ 複雑な動物の社会活動の研究のため、動物の行動を自動で認識したい ◼ 複数マウスのキーポイントの時系列から社会的・非社会的行動を認識 Jennifer J. Sun, et al., "The Multi-Agent Behavior Dataset: Mouse Dyadic Social Interactions," in NeurIPS'21, Track on Datasets and Benchmarks.
  2. © GO Drive Inc. 4 MABe Challenge - Social Action

    Recognition in Mice ◼ 複雑な動物の社会活動の研究のため、動物の行動を自動で認識したい ◼ 複数マウスのキーポイントの時系列から社会的・非社会的行動を認識 ◼ データセット ▪ Labという単位で複数の映像(を解析した結果)のデータが与えられる ▪ マウス、撮影環境、トラッカー等のメタデータ ▪ 映像から自動的に抽出されたマウスのキーポイントのトラッキング結果 ▪ 観測された行動のstart, endフレーム(訓練のみ、ターゲット) ◼ 評価指標 ▪ フレーム毎のマルチクラス分類として、(lab_id, action) 毎にF1を計算 ▪ lab_id毎に平均し、さらにlab平均を取ったものが評価指標
  3. © GO Drive Inc. 5 Labとトラッカー lab_id tracking_method video_count MABe22_keypoints

    custom HRnet 5320 MABe22_movies custom HRnet 2606 AdaptableSnail DeepLabCut 17 BoisterousParrot DeepLabCut 8 CautiousGiraffe DeepLabCut 10 DeliriousFly DeepLabCut 6 LyricalHare DeepLabCut 24 PleasantMeerkat DeepLabCut 36 ReflectiveManatee DeepLabCut 20 SparklingTapir DeepLabCut 69 UppityFerret DeepLabCut 21 CRIM13 MARS 21 CalMS21_supplemental MARS 297 CalMS21_task1 MARS 101 CalMS21_task2 MARS 76 InvincibleJellyfish MARS 33 ElegantMink SLEAP 19 GroovyShrew SLEAP 17 JovialSwallow SLEAP 52 NiftyGoldfinch SLEAP 11 TranquilPanther SLEAP 25 Trainのみ、ラベルなし Trainのみ
  4. © GO Drive Inc. 6 トラッカーとパーツ ◼ トラッカーによって定義されているパーツが異なる ◼ 実際のデータにはオクルージョン等による欠損も存在

    tracking_method body_parts_tracked custom HRnet body_center, ear_left, ear_right, forepaw_left, forepaw_right, hindpaw_left, hindpaw_right, neck, nose, tail_base, tail_midpoint, tail_tip DeepLabCut body_center, ear_left, ear_right, headpiece_bottombackleft, headpiece_bottombackright, headpiece_bottomfrontleft, headpiece_bottomfrontright, headpiece_topbackleft, headpiece_topbackright, headpiece_topfrontleft, headpiece_topfrontright, hip_left, hip_right, lateral_left, lateral_right, neck, nose, spine_1, spine_2, tail_base, tail_middle_1, tail_middle_2, tail_midpoint, tail_tip MARS ear_left, ear_right, hip_left, hip_right, neck, nose, tail_base SLEAP body_center, ear_left, ear_right, head, hip_left, hip_right, neck, nose, tail_base 共通 ear_left, ear_right, neck, nose, tail_base
  5. © GO Drive Inc. 7 メタ情報 識別情報 - lab_id -

    ラボID - video_id - ビデオID ビデオ情報 - frames_per_second - FPS - video_duration_sec - 動画長(秒) - video_width_pix - 幅(px) - video_height_pix - 高さ(px) - pix_per_cm_approx - 1cmあたりpx数 マウス情報 (mouse1〜mouse4) - mouseX_strain - 系統 - mouseX_color - 色 - mouseX_sex - 性別 - mouseX_id - ID - mouseX_age - 年齢 - mouseX_condition - 状態 アリーナ情報 - arena_width_cm - 幅(cm) - arena_height_cm - 高さ(cm) - arena_shape - 形状 - arena_type - タイプ
  6. © GO Drive Inc. 社会的行動 非社会的行動 8 ラベル定義 allogroom approach

    attack attemptmount avoid chase chaseattack defend disengage dominance dominancegroom dominancemount ejaculate escape flinch follow intromit mount reciprocalsniff shepherd sniff sniffbody sniffface sniffgenital submit tussle biteobject climb dig exploreobject freeze genitalgroom huddle rear rest run selfgroom
  7. © GO Drive Inc. 9 スパースなラベル ◼ 各動画は特定のマウスペアと行動のみにアノテーションがされており 下記のような情報が提供されている ▪

    (mouse1, mouse2, chase), (mouse1, mouse2, approach), (mouse1, self, selfgroom) ◼ アノテーション対象ではない行動は、ラベルがなくてもしている可能 性がある ▪ 安易にnegative側のロスはかけられない ◼ 全くアノテーションされていないマウス・マススペアも存在 ▪ 最大でマウスは4匹存在、4×4ペア(非社会的行動含む) ▪ 上記の例だと mouse1 -> mouse2 と、mouse1 -> self のペアのみ アノテーションがされており他のペアは無情報
  8. © GO Drive Inc. 11 取り組むにあたり考えたこと ◼ 使うキーポイントをどうするか ◼ 複数のマウスをどう扱うか

    ◼ 異なるLabをどう扱うか ◼ 社会的・非社会的行動を予測するモデルを分けるか ◼ スパースなラベル定義をどう扱うか
  9. © GO Drive Inc. 12 取り組むにあたり考えたこと ◼ 使うキーポイントをどうするか → なるべく共通したキーポイントのみを利用

    ◼ 複数のマウスをどう扱うか → 2匹しかいないケースも多いので全ペアの組合せを個々に扱う ◼ 異なるLabをどう扱うか → 全部一緒に学習 ◼ 社会的・非社会的行動を予測するモデルを分けるか → 分けない! ◼ スパースなラベル定義をどう扱うか → 同時にモデル化してマスクで対応 全部1つのモデルで扱う!
  10. © GO Drive Inc. 13 取り組むにあたり考えたこと ◼ 使うキーポイントをどうするか → なるべく共通したキーポイントのみを利用

    ◼ 複数のマウスをどう扱うか → 2匹しかいないケースも多いので全ペアの組合せを個々に扱う ◼ 異なるLabをどう扱うか → 全部一緒に学習 ◼ 社会的・非社会的行動を予測するモデルを分けるか → 分けない! ◼ スパースなラベル定義をどう扱うか → 同時にモデル化してマスクで対応 全部1つのモデルで扱う! 本当は全マウスを同時に モデリングしたかった
  11. © GO Drive Inc. 15 前処理 ◼ 全データを30fpsにサンプリング ◼ キーポイントとして11点を選択

    ▪ ear_left, ear_right, tail_base, nose, hip_left, hip_right, neck, body_center, lateral_left, lateral_right, tail_tip ◼ キーポイント座標を 1/video_width_pix でスケーリング ◼ 1024フレームを処理単位として512フレームずつオーバーラップさせ ながら切り出し ◼ Labをtargetとしてビデオ単位でstratified k-fold (k=5) ▪ 評価はtestに含まれるLabのみ
  12. © GO Drive Inc. 16 特徴量 ◼ マウスペアに対してキーポイント座標から自己特徴と相対特徴を抽出 ◼ 時間方向の特徴抽出は速度・加速度くらいで後はNNに任せる

    ◼ 欠損は全て -1 で埋める ◼ 非社会的行動の場合はMouse1=Mouse2で計算されるので、 相対位置は正規化されたMouse1の姿勢特徴になる 特徴 次元数 速度 (dx, dy) 22 各キーポイントの速度ベクトル 速度(norm) 11 各キーポイントの速度の大きさ 加速度 11 各キーポイントの加速度 相対位置 33 Mouse1座標系におけるMouse2の相対座標 (dx、dy、距離)× 11 メタデータの 埋め込み 72 トラッカーID、アリーナID、ラボID、マウス1/2の 性別、系統、色 (9 属性 × 8 次元) 自己特徴 相対特徴
  13. © GO Drive Inc. 18 モデルアーキテクチャ ◼ Grouped convolutionを活用し、自己特徴、相互特徴、メタデータの embeddingをそれぞれ特徴抽出しつつ統合していくモデル

    ◼ バックボーン部分が、GRU、ModernBERTのモデルも利用 ▪ 同じハイパラが利用できた。CMI3の知見 ◼ ロスはラベルがついていないクラスのlogitsに-∞を加えてCE ▪ モデルがpositiveな予測を出しても罰しない Grouped Inverted Residual Inverted Residual Mouse1’s Features Mouse2’s Features Relative Features Meta Embeddings Grouped Inverted Residual #classes x #frames Conv1D Conv1D Conv1D Conv1D Conv1D Stem x N Backbone Head Input Output
  14. © GO Drive Inc. 19 特徴を混ぜすぎないことが良いケースも ◼ Group内に畳み込みを制限することで精度改善 ◼ 前半制限・後半混ぜるよりもたまに混ぜるほうが良かった

    ◼ CMI3でも5個のセンサーに分かれている信号を最初は混ぜないほうが 良かった ◼ 全部混ぜる vs. 分けて別パラメータ vs. 分けて同じパラメータ IMU+THM+ToF model CMI3で使ったモデル
  15. © GO Drive Inc. 20 Self-supervised Learning ◼ 大量のラベルなしキーポイントがあるので自己教師あり学習を実施 ◼

    一部をマスクしたキーポイントから特徴抽出を行い、その入力から マスクしたキーポイントを推定させる(MSE) ◼ この重みをfinetune ▪ 収束がかなり早くなるが最終スコアはそこまで変わらず ▪ アンサンブルにはseedアンサンブルより寄与 Grouped Inverted Residual Inverted Residual Mouse1’s Features Mouse2’s Features Relative Features Meta Embeddings Grouped Inverted Residual #classes x #frames Conv1D Conv1D Conv1D Conv1D Conv1D Stem x N Backbone Head Input Output Mouse1 Keypoints, Mouse2 Keypoints ここだけ変えればいいので 楽チン
  16. © GO Drive Inc. 21 推論処理 ◼ モデルタイプ3 x Pretrainタイプ3

    x 5 folds のアンサンブル ◼ softmax後の結果を単純平均 ◼ 1024フレームごとに推論、512フレームオーバーラップ ◼ アノテーション対象外の行動の確率を0に ◼ (lab, action) 毎に最適化したしきい値で検出
  17. © GO Drive Inc. 22 Monnu Part ◼ 時系列ニューラルネットモデル ▪

    1DCNN + BiLSTM ◼ 2段階学習 ▪ 全Labデータで事前学習→個別LabでのFine tuning ◼ 未ラベルをマスクしたLoss ◼ 多様な特徴エンジニアリングとデータ拡張
  18. © GO Drive Inc. 24 2段階学習 お気持ち ◼ Labごとにデータ特性(カメラ、アリーナ、マウス系統)が異なる ◼

    汎用的な特徴を学習しつつ、個別のLabに最適化させたい アプローチ : 2段階学習パイプライン ◼ Stage1 : 全Labデータで学習 ◼ Stage2 : Stage1の重みを初期値とし、各LabのデータでFinetune ◼ 結果 :全データのみの学習と比べてスコア改善 (CV : +0.013, LB : +0.023) All labs Data Pre-training Lab A Fine-tuning Lab A Fine-tuning Lab A Fine-tuning
  19. © GO Drive Inc. 25 Masked Loss お気持ち ◼ ラベル付けされるactionがLab毎に異なる

    ◼ 「未ラベル」≠「行動がない(負例)」。同一視するとノイズになりそう アプローチ ◼ BCEでのLoss計算時、未ラベルのフレームをマスクして学習 Masked Lossのコード 例
  20. © GO Drive Inc. 26 特徴エンジニアリング 特徴量 ◼ 基本座標 :

    2匹x12部位x2軸 = 48次元 ◼ 速度・移動量 : 各部位のフレーム間移動ベクトル ◼ 相対座標 : 部位間距離、中心間距離 ◼ 方向・角度 : 進行方向と相手への角度 ◼ メタデータ : FPS、解像度、アリーナ面積 ◼ マウス属性 : 系統、性別、週齢 生の座標データに加え、派生特徴量を追加
  21. © GO Drive Inc. 27 データ拡張 学習時 ◼ ランダムフリップ ▪

    水平、垂直、両軸反転で学習データを4倍に ▪ 左右キーポイントはラベルも交換 ◼ ウインドウオーバーラップ ▪ 系列長はWindow = 500だが、Stride=250でスライド ▪ 50%のオーバーラップを許容しサンプル増加 ◼ ランダムなシフトと回転 ▪ 学習時、Windowの開始位置をランダムにずらす ▪ 50%の確率で座標全体をランダムな角度で回転 推論時 ◼ ランダムフリップとウィンドウオーバーラップは推論時にも適用し予測を平均化 学習時、推論時ともにデータ拡張を適用
  22. © GO Drive Inc. 30 Shake? ◼ AdaptableSnailの25fpsのラベルが30fpsとしてデータ化されていた ◼ マウスIDの取り違えも発生していた

    ◼ テストにも1件存在することはdiscussionに記載 ◼ この1件がprivate testに存在 ◼ 何も予測しないほうがマシというデータに ▪ 何故かtestデータはマウスIDの取り違えはなかったので フレームレートを補正することでもスコアを改善できた
  23. © GO Drive Inc. 32 Late Submission Results ◼ 訓練データのフレームレートを補正した上で、マウスIDの修正まで

    行って訓練しないとスキップしたほうがマシ 推論スキップ フレームレート補正
  24. © GO Drive Inc. 33 上位ソリューションからのベストプラクティス ◼ キーポイント ▪ なるべく共通した5~12点を選択。互換性がありそうな点を統合

    ◼ 特徴 ▪ 座標、速度、加速度、相対位置・距離・角度、マウス中心座標系に変換 ▪ メタ情報 ◼ モデル ▪ 1D CNN、RNN系、Transformer、SqueezeFormer、XGBoost ▪ アンサンブルのゲインが大きい ◼ 損失関数 ▪ CE or BCE + マスク ◼ 後処理 ▪ しきい値を (Lab, action) 毎に最適化
  25. © GO Drive Inc. 34 まとめ ◼ 使うキーポイントをどうするか、Labをどう扱うか、社会的・非社会 的行動でモデルを分けるか、スパースなラベルをどう扱うか、自己教 師あり学習するか?など考えることが多くて面白かった

    ◼ 特徴設計、モデル設計、ハイパラチューニング、アンサンブル、それ ぞれ伸びしろがあった ◼ 公開notebookはGBDTモデルしかまともなスコアが出ているものが なかったが、上位は全て時系列モデルを利用していた ▪ 時系列モデル強い人達が多かった ◼ 2次元信号を画像にするやつがなかった ◼ GBDTモデルは時系列モデルよりスコアはかなり低いがアンサンブル するとかなりのゲインがある