Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
✨敗北解法コレクション✨〜Expertだった頃に足りなかった知識と技術〜
Search
nanachi
August 07, 2025
Technology
1
1.1k
✨敗北解法コレクション✨〜Expertだった頃に足りなかった知識と技術〜
2025-08-07に行われた「上位Kagglerに学ぶ~画像コンペの戦い方~ 」で用いた発表資料です(pdf書き出しの都合でレイアウトが若干乱れています)
nanachi
August 07, 2025
Tweet
Share
More Decks by nanachi
See All by nanachi
RSNA2024振り返り
nanachi
1
1.5k
Other Decks in Technology
See All in Technology
「れきちず」のこれまでとこれから - 誰にでもわかりやすい歴史地図を目指して / FOSS4G 2025 Japan
hjmkth
1
320
Findy Team+ QAチーム これからのチャレンジ!
findy_eventslides
0
430
データ戦略部門 紹介資料
sansan33
PRO
1
3.8k
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
Wasmのエコシステムを使った ツール作成方法
askua
0
210
プロダクトのコードから見るGoによるデザインパターンの実践 #go_night_talk
bengo4com
1
2.6k
20251010_HCCJP_AdaptiveCloudUpdates
sdosamut
0
140
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
12
80k
Railsの話をしよう
yahonda
0
160
OAuthからOIDCへ ― 認可の仕組みが認証に拡張されるまで
yamatai1212
0
130
能登半島地震において デジタルができたこと・できなかったこと
ditccsugii
0
250
Claude Code Subagents 再入門 ~cc-sddの実装で学んだこと~
gotalab555
10
16k
Featured
See All Featured
Music & Morning Musume
bryan
46
6.8k
Rails Girls Zürich Keynote
gr2m
95
14k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
980
Raft: Consensus for Rubyists
vanstee
140
7.1k
How GitHub (no longer) Works
holman
315
140k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
What's in a price? How to price your products and services
michaelherold
246
12k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
GraphQLとの向き合い方2022年版
quramy
49
14k
Transcript
敗北解法コレクション 〜Expertだった頃に足りなかった知識と技術〜 Koki “NANACHI” Wada
自己紹介 • 名前: 和田孝喜(Twitter/Kaggle: ななち /NANACHI) • Tier: Competitions Master
• 学生時代はNTKとかNNの汎化バウン ドとか • IceCubeでたまたまメダル取れてから kaggleが楽しくなり継続
敗北解法コレクション? (画像コンペで)メダル無し〜ソロ金取得前の解法をそのコンペの上位 陣の解法と比較することで当時足りなかった技術や知識を共有 • (ななち目線で)金メダルを取るために必要だったもの • コンペを繰り返す過程で何を学んだか ➢(これからExpertを目指す人) こんな感じでメダル取れたよ! ➢(Masterやソロ金目指す人)
自分に足りなかったのはここだったよ! ➢(GMの人) 自分から言えることは何もないよ (でも楽しんで聞いて ほしい!)
ラインナップ ↑真面目に取り組んだ初の画像コンペ 画像だとResNetギリわかるくらいで知識が止まっていた頃 時系列 ↑2.5Dというものがあるらしいと飛行機雲で知った直後のコンペ 2-stageのパイプラインを知るきっかけになった ↑2.5Dをちゃんと使えるようになったコンペ Public LBが金圏内だったからガチで勝てると思ってたけど…
コンペ概要(飛行機雲) • 衛星画像を用いて飛行機雲をセグメンテーションするコンペ • 10分間隔で計8フレームの衛星画像が与えられ, 5フレーム目の 飛行機雲をセグメンテーションする 時系列
69th solution (飛行機雲) • 基本は公開ノートブックをコピー • マスクがある5枚目の画像だけを使用 公開ノートブックとの差分は以下 • resnet50,
efficientnetにモデルを変更 • 画像サイズ256, 384, 512でモデルを訓練=>鬼アンサンブル(21個) • horizontal flip TTA コピーしたノートブック: https://www.kaggle.com/code/utm529fg/gr-icrgw-pl-pipeline- improved-0-649
Top solution, 自分との差分 (飛行機雲) • 複数フレームを用いた2.5D or 3Dモデル • エンコーダーはvitベースのものが強い
• マスクのずれ修正 • 擬似ラベル 2nd place solution: 時系列方向に混ぜてる • GMになれる人って0.5pixのズ レも見逃さないのかよ… • 2.5Dモデルってなんだよ… • vit聞いたことはあるけどなんで このコンペで強かったんだろ…
学んだこと(当時の理解) (飛行機雲) • 2.5Dモデルというものがあり, 時系列方向の情報がある画像コ ンペだと強そう? • モデル選択(2nd place solutionより)
• グローバルな依存関係があるデータに対してはvitが強いみたい • 局所的な情報が重要なコンペではcnnが強いのかも? 今回はグローバルな情報かつ幅数pixのデータだったのでCoaTが強かっ たらしい. なるほどな〜 • マスクがずれてないかは今後絶対に確認するぞ!
コンペ概要(RSNA2023) • 腹部の臓器のCT画像から腹部外傷による内臓の損傷有無及び損 傷具合を予測するコンペ • 腎臓/肝臓/脾臓/腸(食道含む)+血管外漏出(血管・リンパ管から 血液や造影剤が流出すること)が対象 CTに加えて各臓器のマスクも与えられていた • 2.5Dが強いみたいだけど飛行機
雲で予習済みだから勝てるかも • マスク与えられてるけど少ない しテストで与えられないなら 意味ないね https://www.kaggle.com/code/parhammostame/construct-3d-arrays-from-dcm-nii-3-view-angles
47th solution • (96, 256, 256)にリサイズ • 一応2.5Dモデル?使ってた(1stage) H W
D 256 256 96 3 ・・・ 32 (96//3) (32, 3, 256, 256) 2D encoder (32, c, h’, w’) reshape (1, c, 32, h’, w’) Classifier (3d conv + linear)
Top solutionと差分 (RSNA2023) • 2ステージのパイプライン セグメンテーションモデル=>クロップ=>各臓器の分類 • 2.5DモデルはLSTMで特徴量を混ぜ合わせていた(自分は3D convを使ってた)[飛行機雲でもLSTMで混ぜてる解法ある…] •
Auxiliary Lossとかいうものがあるらしい! 補助的な損失関数を入れてモデルにコンテキストを注入 詳しい解法はyu4uさん&tattakaさんのスライドに!(めちゃく ちゃお世話になりました) => https://speakerdeck.com/yu4u/rsna-2023-abdominal-trauma-detection-fan-sheng-hui
学んだこと(当時の理解) (RSNA2023) • 複数ステージのパイプラインは大変だけど, だからこそうまく 扱えばそれだけでも銀上位狙える!(RSNA2024もそんな感じ だった) • 2.5DはLSTM/GRUで混ぜるという方法がある •
データのコンテキストを理解してもらう(どこに注目して欲しい かとか)為にはAuxiliary Lossが便利 (RSNA2024もそんな感 ry) •提供された位置情報(今回はマス ク)は素直に使おう!!
コンペ概要(UBC) • 卵巣がんの組織画像のデータセットを用いて卵巣がんのサブタ イプ+outlierを分類 • 訓練データでは5つのサブタイプがラベルとして与えられてい る(outlierラベルはなし) • WSIとTMAという二種類の画像が存在 •
WSI: 最大サイズが100000x50000とだいぶ大きい. 倍率はx20 • TMA: 大体4000x4000くらい. でも大きい. 倍率はx40 WSI TMA
コンペ概要(UBC) • コンペの途中で正常組織/がん組織/壊死組織を分類するマスク が150枚ほど供給される(RSNA2023で反省したやつだ!) https://www.kaggle.com/code/jirkaborovec/cancer-subtype-eda-load-wsi-segmentation
25th solution • 縦横384*K (K=1, 2, 4, 8)でパッチ化し, rgbのうちbの割合が多 いtop3をそれぞれ抽出(4*3=12枚のパッチを1枚のwsiから抽出)
• 12枚のパッチを384x384にresizeしてstack • 2.5Dモデル(encoder=>LSTM=>classifier) • OutlierはLBからじゃないと判断できないので無視(shakeを恐 れたしどうせみんなできないと思ってた) (12, 3, 384, 384) Encoder+Pool (12, ch) GRU+mean pool (1, ch) classifier (1, 5) 青色作戦でうまくがん組織のパッチを取れていたつもりだった(Public LBは金 圏内) & マスク使ったらPublic LBが0.01悪化したのでマスクは未使用
Top solutionと差分 (UBC) • Tiling=>Dinoを用いた特徴抽出=>MIL • 提供されたセグメンテーションマスクを用いてがん組織をク ロップ=>単純な分類問題として解く • OutlierをちゃんとLBでチューニング
(1st solution)予測確率のエントロピーを計算=>エントロピーが大きい ものをoutlierとして予測: 𝐻 = − σ 𝑖=1 5 𝑝𝑖 log 𝑝𝑖 • 外部データを使っている解法もあった
学んだこと(当時の理解) (UBC) • 必要であればLBで閾値をチューニングする(結局cziiはこれでソ ロ金取ったし重要) • 外部データの情報はあったのでちゃんと試す •提供された位置情報(今回もマス ク)は素直に使おう!! マスクを使った2ステージパイプ
ラインの方がprivate LBは0.02良 かった. 最後まで2ステージでやっ ていれば金圏内を維持できていた かも… 2stage 青色作戦(1stage)
最後に • 感覚的にソロ金を取る上で最も効いた知識/技術は以下 • 2.5Dをうまく扱えるようになること • 複数ステージのパイプラインを組めるようになること • Auxiliary Lossでコンテキストを注入することの重要性を知ること
• 画像初心者からおおよそ飛行機雲とRSNA2023で金メダルを取 るポテンシャルは獲得できたと思う(運よく画像コンペのほぼ全 てみたいなコンペに連続で参加できた) • 補助的に与えられているデータにはコンペ主催者側の意図があ るので, 使い方をちゃんと考える
None