Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
✨敗北解法コレクション✨〜Expertだった頃に足りなかった知識と技術〜
Search
nanachi
August 07, 2025
Technology
1
1.3k
✨敗北解法コレクション✨〜Expertだった頃に足りなかった知識と技術〜
2025-08-07に行われた「上位Kagglerに学ぶ~画像コンペの戦い方~ 」で用いた発表資料です(pdf書き出しの都合でレイアウトが若干乱れています)
nanachi
August 07, 2025
Tweet
Share
More Decks by nanachi
See All by nanachi
RSNA2024振り返り
nanachi
1
1.6k
Other Decks in Technology
See All in Technology
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
500
AWS Security Agentの紹介/introducing-aws-security-agent
tomoki10
0
310
Amazon Bedrock Knowledge Bases × メタデータ活用で実現する検証可能な RAG 設計
tomoaki25
1
120
Python 3.14 Overview
lycorptech_jp
PRO
1
120
SQLだけでマイグレーションしたい!
makki_d
0
650
評価駆動開発で不確実性を制御する - MLflow 3が支えるエージェント開発
databricksjapan
1
210
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
610
AI-DLCを現場にインストールしてみた:プロトタイプ開発で分かったこと・やめたこと
recruitengineers
PRO
2
160
5分で知るMicrosoft Ignite
taiponrock
PRO
0
390
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
260
生成AI時代におけるグローバル戦略思考
taka_aki
0
200
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
630
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How to Ace a Technical Interview
jacobian
281
24k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Docker and Python
trallard
47
3.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Producing Creativity
orderedlist
PRO
348
40k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
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