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
FastAPIの魔法をgRPC/Connect RPCへ
monotaro
PRO
0
470
ZOZOのAI活用実践〜社内基盤からサービス応用まで〜
zozotech
PRO
0
130
"複雑なデータ処理 × 静的サイト" を両立させる、楽をするRails運用 / A low-effort Rails workflow that combines “Complex Data Processing × Static Sites”
hogelog
3
1.3k
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
Findy Team+のSOC2取得までの道のり
rvirus0817
0
230
kaigi_on_rails_2025_設計.pdf
nay3
8
4k
RailsのPostgreSQL 18対応
yahonda
0
1.2k
2重リクエスト完全攻略HANDBOOK / Double Request Handbook
shoheimitani
5
7.1k
C# 14 / .NET 10 の新機能 (RC 1 時点)
nenonaninu
1
1.2k
AIを導⼊しても、 開発⽣産性は"爆増"していない なぜ?
kinosuke01
4
3.6k
OpenAI gpt-oss ファインチューニング入門
kmotohas
0
250
生成AIで「お客様の声」を ストーリーに変える 新潮流「Generative ETL」
ishikawa_satoru
1
220
Featured
See All Featured
Statistics for Hackers
jakevdp
799
220k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Facilitating Awesome Meetings
lara
56
6.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
How to Ace a Technical Interview
jacobian
280
23k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Producing Creativity
orderedlist
PRO
347
40k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
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