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
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
Search
ethylene
February 15, 2025
Programming
3
950
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
ethylene
February 15, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
220
Ruby on cygwin 2025-02
fd0
0
140
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
250
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
2
520
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
130
ASP. NET CoreにおけるWebAPIの最新情報
tomokusaba
0
360
Domain-Driven Transformation
hschwentner
2
1.9k
Introduction to kotlinx.rpc
arawn
0
670
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
720
SpringBoot3.4の構造化ログ #kanjava
irof
2
980
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
320
SwiftUI Viewの責務分離
elmetal
PRO
1
220
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
328
21k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.8k
Docker and Python
trallard
44
3.3k
Faster Mobile Websites
deanohume
306
31k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
Scaling GitHub
holman
459
140k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Typedesign – Prime Four
hannesfritz
40
2.5k
Facilitating Awesome Meetings
lara
51
6.2k
Raft: Consensus for Rubyists
vanstee
137
6.8k
Code Review Best Practice
trishagee
66
17k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Transcript
エチレン(@ethylene_66) AtCoder は Kaggle の役に立つ +α
2 Agenda ⚫ 自己紹介 ⚫ AtCoder は Kaggle の役に立つ ⚫
ポエム
3 自己紹介 ⚫ 名前:堀江紘己 ⚫ 身分:博士後期課程学生1年目 @東京大学大学院 理学系研究科物理学専攻 ⚫ Kaggle
歴:3年半 ⚫ 計算資源:RTX 4090 + RunPod + GCP ⚫ 三日天下 2024/02/04
4 戦績 最適化コンペを中心に入賞
5 自己紹介 AtCoder版 ⚫ AtCoder 歴:7年 Algorithm Master? Heuristic Grandmaster?
6 AtCoder は Kaggle の役に立つ
7 相関図 Kaggle AtCoder 役立たない 役立つ 業務 https://x.com/kakulin_real/st atus/1728691633196286055
https://info.atcoder.jp/overview/about/atcoder https://atcoder.jp/contests/ahc001 8 AtCoder とは? Algorithm Contest 与えられた問題を解決するプログラムを、早く正 確に提出し、その正解数と順位を競うコンテスト。 簡単な問題では、ただ指示通り問題を解決するプ
ログラムを書けば良いが、難しい問題においては、 アルゴリズムを工夫する必要がある。 Heuristic Contest 最適解を出すのが難しい問題に対し、出来るだけ 良い解を作成するコンテスト。 サンタコンペのような問題が出題される。
9 AtCoder Heuristic Contest 問題例 https://info.atcoder.jp/overview/about/atcoder 全ての頂点をできるだけ短い距離で巡る (Travelling Salesman Problem;
TSP) 低スコア 中スコア 高スコア
10 AtCoder Heuristic Contest vs Kaggle AtCoder Heuristic Contest Kaggle
計算資源 CPU 1スレッド CPU+GPU 実行時間 1テストケースあたり2~3秒 全てストケースに8時間 コンペ期間 4時間 or 10日間 数ヶ月 参加人数 1000人 1000~5000人 チーム 不可 可 Shake ほぼShakeしない 稀に?大きくShakeする 問題の質 良い 概ね良い 手法 大道具は少数 多様
11 AtCoder Heuristic Contest 主な手法 ⚫ ルールベース ⚫ 焼きなまし法 ⚫
ILS ⚫ ビームサーチ ⚫ 遺伝的アルゴリズム
12 AtCoder Heuristic Contest x サンタコンペ ILS 遺伝的アルゴリズム + ビームサーチ
ビームサーチ ルールベース
13 AtCoder は サンタコンペで Kaggle の役に立つ
14 AtCoder は サンタコンペ以外にも Kaggle の役に立つ
15 AtCoder Heuristic Contest 030
16 AtCoder Heuristic Contest 030 問題概要 N x N のグリッド上の
M 個のポリオミノの位置を推定したい グリッドのサイズやポリオミノの個数、形状、向きは既知 ポリオミノの位置のみ未知 ? ? ? ?
17 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る
18 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 1 0 2 1 質問するマス
19 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 返り値 = 2 1 0 2 1
20 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 返り値 = 1 1 0 2 1
21 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 1 0 3 2
22 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 1 0 3 2 返り値 = 1
23 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 1 0 3 2 返り値 = 2
24 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 1 0 3 2 返り値 = 1 (20%), 2 (60%), 3 (20%) ガウシアンノイズ
25 AtCoder Heuristic Contest 030 ポイント ⚫ 確率的な情報をどのように扱うか? ⚫ どのような質問をすれば多くの情報が得られるか?
26 AtCoder Heuristic Contest 030 解説 25% 25% 25% 25%
⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事前分布
27 AtCoder Heuristic Contest 030 解説 50% 0% 0% 50%
返り値 = 1 ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事後分布
28 AtCoder Heuristic Contest 030 解説 60% 20% 0% 20%
返り値 = 1 ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事後分布
29 AtCoder Heuristic Contest 030 解説 20% 0% 20% 60%
返り値 = 2 ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事後分布
30 AtCoder Heuristic Contest 030 解説 50% 0% 0% 50%
⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事前分布
31 AtCoder Heuristic Contest 030 解説 25% 0% 0% 75%
返り値 = 2 ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事後分布
32 AtCoder Heuristic Contest 030 解説 ⚫ どのような質問をすると情報を多く得られるか? →質問後のポリオミノの位置の分布を最大限偏らせられそうな質問をしたい →ポリオミノの位置の分布のエントロピーの期待値を最小化する質問をしたい
→相互情報量の最大化 H(X1, Y1, X2, Y2) X1, Y1 : 1個目のポリオミノの位置をあらわす確率変数 X2, Y2:2個目のポリオミノの位置をあらわす確率変数 ⚫ 質問するマスの配置を決めると、質問後のエントロピーの期待値が計算可能 ⚫ あとはその期待値を最小化するようなマスを決めるだけ(略) https://qiita.com/thun-c/items/688442aad6a0410545cc https://www.terry-u16.net/entry/ahc030
33 AtCoder Heuristic Contest 030 解説
34
35 LLM 20 Questions 概要 ⚫ ゲームAI x LLM コンペ
⚫ 2 vs 2 のチーム戦 ⚫ 1人がアキネイター役、もう1人が人間役 ⚫ 人間側には事前にキーワードが共有されている ⚫ 人間側はアキネイター側の質問に対して Yes/No でしか回答できない ⚫ アキネイター側が早くキーワードを当てられたチームの勝ち ⚫ Public LB のキーワード数 2000、Private LB ではキーワードが変更される ポイント ⚫ 自然言語で質問する必要がある ⚫ 人間側は LLM を搭載しないと Yes/No を回答できない
36 LLM 20 Questions 対戦例 自然に関係ありますか? Yes 食べ物に関係ありますか? Yes 植物ですか?
No 動物ですか? Yes 水中に暮らしていますか? Yes 魚に分類されますか? Yes sで始まりますか? Yes キーワードは Salmon です 質問回数=7
37 LLM 20 Questions 人間側の解法 以下の組み合わせ ⚫ Llama3 ⚫ DeepSeek-Math
⚫ ルールベースの質問に答えるアルゴリズム 辞書順、最初の文字 etc.
38 LLM 20 Questions アキネイター側 ポイント ⚫ 確率的な情報をどのように扱うか? ⚫ どのような質問をすれば多くの情報が得られるか?
39 LLM 20 Questions アキネイター側の解法 以下の情報を持っていれば、AtCoder Heuristic Contest 030 と同様に
キーワードの分布の更新が可能 ⚫ キーワードの候補リストとキーワードごとの事前確率(1次元テーブル) ⚫ 質問候補のリスト ⚫ 質問とキーワードのペアごとに人間側が Yes と回答する確率(2次元テーブル)
40 apple banana orange mango Q. Is the fruit typically
yellow when ripe? A. Yes apple banana orange mango ∝ × LLM 20 Questions アキネイター側の解法 ベイズの定理
41 ∝ × LLM 20 Questions アキネイター側の解法 ベイズの定理 apple banana
orange mango Q. Is the color of the fruit typically orange? A. Yes apple banana orange mango
42 ∝ × LLM 20 Questions アキネイター側の解法 ベイズの定理 apple banana
orange mango apple banana orange mango Q. Is the color of the fruit typically orange? A. No
43 LLM 20 Questions アキネイター側の解法 ⚫ エントロピーの期待値を最小化(相互情報量を最大化)する質問を選択 ⚫ キーワードの候補リストとキーワードごとの事前確率(1次元テーブル) 英単語データベースから名詞を抽出
英単語の出現頻度や長さなどの特徴量を用いて事前確率を事前計算 ⚫ 質問の候補 GPT-4o にランダムなキーワードの集合を渡し、それらを判別可能な質問を 答えさせることで事前に生成 or キーワードの辞書順を問う質問 ⚫ 質問とキーワードのペアごとに人間側が Yes と回答する確率(2次元テーブル) gemma-7b-it などの LLM を用いて事前計算 本質は AtCoder Heuristic Contest 030 と全く同じ
44 AtCoder は サンタコンペ以外にも Kaggle の役に立つ
45 AtCoder Heuristic Contest x Kaggle ILS 遺伝的アルゴリズム + ビームサーチ
ビームサーチ ルールベース ガウス過程回帰 二分探索 + ベイズ推定 枝刈りDFS + 整数計画ソルバー
46 MLコンペには役に立つのか?
47 ポエム
48 振り返り ⚫ 2018年 AtCoder をきっかけにプログラミングをはじめる ⚫ 2021年 機械学習を学びたくて Kaggle
アカウントを作成 ⚫ 2021年 Coursera や書籍で機械学習に入門 ⚫ 2021/10-2021/12 510位 Sartorius Cell Instance Segmentation ⚫ 2021/11-2022/01 8位 Santa 2021 ⚫ 2021/11-2022/02 1918→15位 Jigsaw Rate Severity of Toxic ⚫ 2024/07 Kaggle Grandmaster @USPTO ⚫ 2024/02/04 Kaggle Rank 1位 @Santa 2024 ⚫ 2024/02/07 Kaggle Rank 2位転落
49 いろいろ ⚫ 参加するコンペの選び方 ⚫ AtCoder → Kaggle ⚫ Kaggle
→ AtCoder ⚫ Kaggle Rank ⚫ MLコンペは出ないの?
50 おすすめ資料 ⚫ Introduction to Heuristics Contest https://atcoder.jp/contests/intro-heuristics 入門問題 +
admin の wata さんによる詳細な解説 ⚫ メタヒューリスティクスで広がる「解けた!」の世界 https://speakerdeck.com/terryu16/metahiyurisuteikusudeguang- garu-jie-keta-noshi-jie AtCoder Heuristic ランク2位の terry さんによる 典型手法から実社会への応用までがまとまった資料 ⚫ ヒューリスティック問題を解く https://kato-hiro.github.io/AtCoderClans/articles/heuristic/ ありとあらゆる資料がまとまったページ
51 宣伝 2/14(金)-2/24(月) AtCoder Heuristic Contest 043 開催中! https://atcoder.jp/contests/ ahc043
3/23日(日) 13:00~ AtCoder Heuristic First-step Vol.1 2/17(月)11時申込締切! https://atcoder.jp/contests/ ahf1 https://x.com/atcoder/statu s/1889872125873524851
52