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

BirdCLEF+2025 Noir 5位解法紹介

Avatar for MYSO MYSO
September 29, 2025

BirdCLEF+2025 Noir 5位解法紹介

BirdCLEF+2025 Noir 5位解法紹介です。非Kaggler向けです。

Avatar for MYSO

MYSO

September 29, 2025
Tweet

Other Decks in Technology

Transcript

  1. 2025/09/02時点で開催されているコンペの一部 コンペティション名 開催者 コンペ概要 MITSUI & CO. Commodity Prediction Challenge

    三井物産 金属、先物、米国株、為替レートといったグローバルな金融市場の時系 列データを使用し、複数の金融商品のリターン(収益率)を予測 CMI - Detect Behavior with Sensor Data Child Mind Institute ウェアラブルデバイスに搭載されたセンサー(加速度センサー、ToFセン サー、温度センサーなど)のデータを用いて、抜毛症や皮膚むしり症と いった「身体集中反復行動(BFRB)」を自動で検出 RSNA Intracranial Aneurysm Detection 北米放射線学会、米国神 経放射線学会 など CTA(CT血管造影)やMRA(MR血管造影)などの医療画像を分析し、 生命を脅かす可能性のある頭蓋内動脈瘤の有無と、その正確な位置を 検出する MAP - Charting Student Math Misunderstandings The MAPLE Lab at the University of Toronto 生徒が書いた数学問題の解答(自由記述)を分析し、その生徒がどのよ うな誤解をしている可能性があるかを予測する自然言語処理モデルを 開発 過去にコンペを実施した組織の一例 Mercari、リクルート、日本取引所グループ、 NTTデータ、Google、Microsoft、Facebook(Meta)、 Airbnb、Lyft、Walmart、Bosch、H&M、DCASEなど 4/49
  2. 企業や研究機関などがデータと課題を提供 Kaggleの基本的な流れ 参加者はデータを分析し、 モデルを作り予測結果を提出 コンピュータによる自動採点 期間中(2~3ヶ月程度) 予測結果を提出し、性能を確認可能 期間終了後のスコアで順位がつき、 賞金とメダルが授与 メダルが貯まると

    個人のランクが上昇 GrandMaster 373人 Master 2,195人 Expert 10,839人 2025/09/02時点 参 考 資 料 : 対 談 ! Kaggle Grandmaster の 仕 事 と は 【 】 DeNA TechCon 2022 参考資料:対談!Kaggle Grandmasterの仕事とは【DeNA TechCon 2022】 5/49
  3. 一日の流れ • 前 日 学 習 さ せ て い

    た モ デ ル で 性 能 が 良 さ そ う な も の を 選 定 • Kaggle サ イ ト で 有 益 な 情 報 が な い か 確 認 • デ ー タ の 分 析 や 確 認 • 過 去 情 報 、 技 術 情 報 や 論 文 等 か ら 性 能 が 良 く な り そ う な ア イ デ ィ ア を 検 討 05:00 07:30 08:30 12:00 13:00 17:00 20:00 24:00 朝 食 ・ 準 備 等 業 務 夕 食 ・ 入 浴 等 業 務 就 寝 起 床 18:00 通 勤 06:30 通 勤 08:00 • モ デ ル の 提 出 ス コ ア 確 認 • ア イ デ ィ ア の 検 討 • ア イ デ ィ ア の 実 装 • い く つ か の モ デ ル を 学 習 さ せ る • 人 が 寝 て る 間 も GPU は 回 す Kaggle Kaggle Kaggle Kaggle
  4. BirdCLEF+2025 課題:鳥類を中心とした野生生物の音声データから種を識別 コロンビアのエル・シレンシオ自然保護区で収録された1分音源x700から、鳥・哺乳類・昆虫・両 生類 206 種の出現確率を 5 秒刻みで予測 背景: 広範囲かつ高精度・頻度で生物多様性の監視が要求

    生物群集の変化は、生物多様性の観測や生態系修復活動の成否を確認する上で重要 従来:専門家の直接調査、調査範囲やリアルタイム性が低く精度に懸念、コストも高い →パッシブ音響モニタリングと最新の機械学習技術の組み合わせに期待 広い調査範囲、高いリアルタイム性であれば、生態系修復活動の効果を正確に把握可能 予測 予測 予測 予測 予測 予測 予測 予測 予測 予測 予測 予測 8/49
  5. コンペに参加した理由 • 学習:機械学習関連の技術習得 • データが少ないクラスへの対処方法 希少生物が対象のため、特定の種に関して学習データが非常に少ない • ラベルなしデータを用いた性能向上方法 テスト環境のラベルなし録音データが大量に提供 •

    モデルの高速化や安定化方法 推論マシンと時間に制限 • 趣味:世界中の参加者とスコアを競うのが面白い オンラインゲームのようにリアルタイムに順位が表示 遊びと学習の両立 9/49
  6. BirdCLEF+2025:データ • train_audio/*.ogg: 自然観察のデータをオープンに集めるプラットフォームに、ユーザーがアップロードした音源 28564データ、ファイル長:0.54~1774.39秒 • train.csv トレーニングデータのメタデータ primary_label:種のコード secondary_labels:録音者によってラベル付けされたprimary_label以外の種コード

    filename:オーディオファイル名 author:録音を提供したユーザー名 など • train_soundscapes/*.ogg: テストデータと同じ環境で録音されたラベルなし(答えがない)データ 9726データ、ファイル長:60.00秒 • test_soundscapes/ モデル提出すると、1分x700データ(sf=32kHz)が作成され、モデルが推論を開始、 参加者はどのような音源が含まれているか知ることはできない 10/49 ※他データあり
  7. 学習に使えるデータと予測するデータの違い 学習に使えるデータ 28564 train_audio 9726 train_soundscapes test_soundscapes 予測するデータ ※学習には使えない 700

    ラベルあり ドメインギャップが大きい: 様々な機材(マイク、録音器、サンプリング周波数など)や環境でユーザーが 録音している。データ長も0.54~1774.39秒ばらつきが大きい ラベルなし:直接学習には使えない ドメインギャップがない:テスト環境で録音されたデータ 12/49 コロンビアのエル・シレンシオ自然保護区で収録
  8. 学習に使えるデータと予測するデータの違い 学習に使えるデータ 28564 train_audio 9726 train_soundscapes test_soundscapes 予測するデータ ※学習には使えない 700

    13/49 ラベルあり ドメインギャップが大きい: 様々な機材(マイク、録音器、サンプリング周波数など)や環境でユーザーが 録音している。データ長も0.54~1774.39秒ばらつきが大きい ラベルなし:直接学習には使えない ドメインギャップがない:テスト環境で録音されたデータ コロンビアのエル・シレンシオ自然保護区で収録
  9. ラベルごとのデータ数のばらつき分布 • 不均衡データ: 最大:982、最小:2とラベルごとにデータ数 に大きな差 → 多数ラベルに偏った予測、少数ラベルの精度低下 • 対策1:アップサンプリング •

    少数ラベルを、コピーして最低20サンプルに揃える • なぜ多数ラベルと同等の数に アップサンプリングしないのか? • データの多様性不足、過学習 • 学習コスト増大 ラベルごとのデータ数 元データ アップサンプリング 元データ アップサンプリング データの特徴:不均衡データ 16/49
  10. 不均衡データ対策: Focal Loss • 対策2:Focal Lossの採用 • Cross Entropy Loss:

    全てのサンプルを同じ重みで学習 • Focal Loss:難しいサンプル(誤りやすいサンプル)に重みを置いて学習 ※正しく予測できたサンプルの重みは小さく Lin et al., "Focal Loss for Dense Object Detection," ICCV 2017 17/49
  11. データの特徴:弱ラベル • 弱ラベルをそのまま学習すると… model 入力 推論 Bird A Insect B

    Frog C Prob. model 入力 推論 Bird A Insect B Frog C Prob. 学習と同じようなラベル構成が入力の場合は問題とならない モデルは「Bird A」と「Forg C」を見分けられないため、 「Bird A」しか存在しなくても 「Frog C」の確率を高く予測してしまう 弱ラベルでも、どの時間にどの種が存在しているかモデルに学習させる必要 19/49
  12. 弱ラベル対策:SEDフレームレベル予測 • モデルにフレームレベル予測を組み込む 特徴抽出 (CNNなど) 参考資料:鳥コンペ反省会資料 入力 特徴マップ 時間方向の集約 (max,meanなど)

    予測値 分類器 特徴抽出 (CNNなど) 入力 特徴マップ フレームごとの 分類器 予測値 フレームごとの予測値 時間方向の集約 (max,meanなど) 通常のモデル フレームレベル予測を組み込んだモデル Frog C Bird A Insect B Bird A Insect B Frog C time time Bird A Insect B Frog C time 20/49
  13. フレームレベル予測のイメージ:「ライブ × 迫力・感動」 • 通常のモデル: ライブ全体(特徴マップ集約)に対して、 迫力があった、感動したかが分かるだけで どの曲(時間)で迫力があったのか、感動したかは分からない ライブ→迫力◎、感動◎ •

    フレームレベル予測を組み込んだモデル ライブの各曲(時間)ごとに予測 曲A→迫力◎、感動✕ 曲B→迫力✕、感動◎ どの曲が、迫力があった、感動したか最初は分からないのでは? 最初は分からないが、ライブをたくさん経験することで、どの曲の影響か少しずつ分かる ライブ1:曲A(迫力◎、感動✕)、曲B (迫力✕ 、感動◎) ライブ2:曲A (迫力◎、感動✕) 、曲C(迫力✕ 、感動✕) ライブ3:曲B(迫力✕ 、感動◎)、曲C(迫力✕ 、感動✕) 今日のライブは迫力があり、感動したな。 なんの曲でそう感じたんだろう? 今日は感動しなかったな。曲Bで感動するのかな? 今日は感動したから、曲Bで感動するのは間違いない。 迫力は感じなかったから、曲Aで迫力を感じているっぽいな 21/49
  14. ラベル欠損対策:学習したモデルの予測(疑似ラベル)を活用 • 学習したモデルの予測を活用 • train_audioでモデルを学習 • 学習したモデルで train_audio を推論すると、他の音源から学習した特徴を 通じて、欠損ラベルの予測がやや高く出現

    付与されているラベル モデルの予測 ラベル/予測 Bird A Insect B Frog C ラベルとしてはBird Aだが、 実はInsect Bも存在する音源 欠損ラベルの情報 ノイズ(誤予測) 23/49
  15. データの特徴:ドメインギャップ 28564 train_audio 9726 train_soundscapes test_soundscapes 700 学習に使えるデータ 予測するデータ ※学習には使えない

    25/49 ラベルあり ドメインギャップが大きい: 様々な機材(マイク、録音器、サンプリング周波数など)や環境でユーザーが 録音している。データ長も0.54~1774.39秒ばらつきが大きい ラベルなし:直接学習には使えない ドメインギャップがない:テスト環境で録音されたデータ コロンビアのエル・シレンシオ自然保護区で収録
  16. ドメインギャップ対策:データ拡張 • データ拡張:学習時にデータを変換して、多様性を持たせる • Resampling 時間領域でサンプリング周波数を僅かに変更 • Gain 時間領域でゲインを変更 •

    FilterAugment メル領域で様々なフィルタを適用 • FrequencyMasking, TimeMasking メル領域で、メル軸方向にランダムで0、時間軸にランダムで0を適用 • Sumix on mel domain メル領域で2つのデータを時間周波数binごとに線形和で混合 基本的に、2つのデータのラベルを付与、線形和の重みが極端に小さいときは、 そのラベルを0にする※Mixupはラベルも線形和で混合 26/49
  17. データの特徴:ドメインギャップ 28564 train_audio 9726 train_soundscapes test_soundscapes 700 学習に使えるデータ 予測するデータ ※学習には使えない

    27/49 ラベルあり ドメインギャップが大きい: 様々な機材(マイク、録音器、サンプリング周波数など)や環境でユーザーが 録音しているため、データ長も0.54~1774.39秒ばらつきが大きい ラベルなし:直接学習には使えない ドメインギャップがない:テスト環境で録音されたデータ
  18. 学習の全体像:3段階学習 • 第1ステージ ベースモデルの学習 • 第2ステージ 疑似ラベルを活用した欠損ラベル対策 数回繰り返し • 第3ステージ

    train_soundscapesの活用 数回繰り返し 学習の基本設定 特徴量:Mel spectrogram(mel_bins: 192, window_size: 2048, hop_size: 768) Optimizer: Adam + Cosine Annealing with warmup Loss: FocalLoss (gamma=2) Epochs: 10、 データ拡張 29/49
  19. 3段階学習の効果 • 第1ステージ ベースモデルの学習 • 第2ステージ 疑似ラベルを活用した欠損ラベル対策 数回繰り返し • 第3ステージ

    train_soundscapesの活用 数回繰り返し 様々なモデルにおいてステージごとにLB scoreが著しく向上 30/49
  20. shake downの恐ろしさ • コンペ期間中は、一部データに基づくスコア・順位のみ公開 (Public LB) • コンペ終了後に、全データに基づくスコア・順位が公開 (Private LB)

    • shake down: Private LBでスコア・順位が大きく転落する現象 コンペ終了直前までは19位 ↓ 最終順位は432位へ転落! ←私たちのチーム 過去のコンペでは、shake downを起こした苦い思い出が… 32/49
  21. shake downの恐ろしさ • コンペ期間中は、一部データに基づくスコア・順位のみ公開 (Public LB) • コンペ終了後に、全データに基づくスコア・順位が公開 (Private LB)

    • shake down: Private LBでスコア・順位が大きく転落する現象 逆に順位を大きく伸ばすshake upも コンペ終了直前まで971位 ↓ 最終順位は78位へ! 33/49
  22. shake downを防ぐためには? モデル1 モデル2 予測が不安定になるケース • 学習データが少ない・限定的 • 学習時に遭遇していない性質の データに対して性能がぶれやすい

    モデル1, 2の平均 アンサンブルによる安定性向上 • 複数モデルの予測を 「平均」や「多数決」などで組み合わせ • Kaggleで上位を争うには必須 34/49
  23. 計算時間の制約により、アンサンブルがしにくい • BirdCLEF+2025のルール • 計算時間: 90分以内 に全評価データ(700分)を処理 • 推論環境: CPU

    (GPUは使用不可) • そのため、多数モデルのアンサンブルは困難 • 上位を争うためには、CPUでの計算高速化が重要 • 高速化 → 多数モデルのアンサンブル → 予測の安定化 35/49
  24. 高速化の結果 ID マルチスレッド OpenVINO アンサンブル 計算時間 スコア 1 × ×

    × 26分 0.914 (18~20位相当) 2 〇 × × 22分 3 × 〇 × 12分 4 〇 〇 × 9分 5 〇 〇 〇 (13モデル) 90分 0.924 (5位) 38/49
  25. 後処理の効果 ← アンサンブルによる 予測の安定化 ← 予測はさらになめらかに ある動物についての予測確率 ID 後処理 Private

    Public 1 × 0.915 0.919 2 〇 0.923 0.929 ← スコアも大きく改善 41/49 各モデル予測値 アンサンブル 後処理適用後 時刻 (sec)
  26. 我々が性能改善のために取り組んだことのまとめ データが少ないクラスへの対処 • 希少クラスのアップサンプリング • ロス(損失関数)の工夫 データの不確実性 • データ使用区間の選別 (手動)

    • 学習時の入力として10秒使用 ラベルなしデータの活用 モデルの安定性向上 • 疑似ラベルを用いた学習 • ソフトラベルのノイズ低減 • 反復的な学習 • 高速化とアンサンブル • 推論時の後処理 42/49
  27. 上位チームのいくつかは、我々と異なるアプローチを活用 データが少ないクラスへの対処 • 希少クラスのアップサンプリング • ロス(損失関数)の工夫 • 外部追加データの活用 • 少数クラスに特化したモデル

    データの不確実性 • データ使用区間の選別 (手動) • 学習時の入力として10秒使用 ラベルなしデータの活用 モデルの安定性向上 • 疑似ラベルを用いた学習 • ソフトラベルのノイズ低減 • 反復的な学習 • 高速化とアンサンブル • 推論時の後処理 • 単体モデルの安定性向上 44/49
  28. 外部追加データの活用 (1, 2, 3, 7, 11位) • 深層学習では、多様なデータで学習するほど優れた性能 になる傾向 •

    インターネット上で公開されている動物の鳴き声データを学習に追加 動物愛好家が音声データをシェアするサイト 過去のKaggleコンペ 外部データをうまく活用する方法を模索し、性能を改善 45/49
  29. 少数クラスに特化したモデル (1, 7, 12位) • データ数の少ないクラスの学習は困難 • 希少種に特化したモデルの開発 入力 音

    モデル1 モデル2 (希少種に特化) 鳥類・哺乳類 の予測 両生類・昆虫類 の予測 1位は、両生類・昆虫類の追加データを用いて、特化モデルを開発 鳥類は豊富 両生類と 昆虫類は特に希少 哺乳類は少なめ 分類ごとのデータ割合 46/49
  30. 単体モデルの安定性向上 (3, 12位) • アンサンブルや後処理とは異なり、単体モデルの性能を安定化 • Model Soup: 異なる乱数で学習したモデルを平均 •

    Exponential Moving Average (EMA): 学習途中のモデルを指数移動平均 アンサンブルは予測値を平均するのに対し、これらは 重みそのもの を平均 → 計算量の増加なしに安定性を向上 + + → モデル1 モデル2 モデル3 平均したモデル 47/49