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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ethylene
February 15, 2025
Programming
2.7k
7
Share
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
ethylene
February 15, 2025
Other Decks in Programming
See All in Programming
t *testing.T は どこからやってくるの?
otakakot
1
920
【26新卒研修】OpenAPI/Swagger REST API研修
dip_tech
PRO
0
140
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
2.7k
Firefoxにコントリビューションして得られた学び
ken7253
2
160
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
220
20260514_its_the_context_window_stupid.pdf
heita
0
790
Road to RubyKaigi: Play Hard(ware)
makicamel
1
560
「Linuxサーバー構築標準教科書」を読んでみた #ツナギメオフライン.7
akase244
0
1.4k
ついに来た!本格的なマルチクラウド時代の Google Cloud
maroon1st
0
390
Claude CodeでETLジョブ実行テストを自動化してみた
yoshikikasama
0
1.2k
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
5
1.6k
過去のレビュー知見をSkillsで資産化した話
pkshadeck
PRO
1
1.7k
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
290
Designing Experiences People Love
moore
143
24k
Bash Introduction
62gerente
615
210k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Embracing the Ebb and Flow
colly
88
5k
Six Lessons from altMBA
skipperchong
29
4.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
290
The Limits of Empathy - UXLibs8
cassininazir
1
320
The browser strikes back
jonoalderson
0
1k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
Transcript
エチレン(@ethylene_66) AtCoder は Kaggle の役に立つ +α
2 自己紹介 ⚫ Kaggle 歴:3年半 ⚫ 計算資源:RTX 4090 + RunPod
+ GCP ⚫ 三日天下 2024/02/04
3 戦績 最適化コンペを中心に入賞
4 自己紹介 AtCoder版 ⚫ AtCoder 歴:7年 Algorithm Master? Heuristic Grandmaster?
5 AtCoder は Kaggle の役に立つ
6 相関図 Kaggle AtCoder 役立たない 役立つ 業務 https://x.com/kakulin_real/st atus/1728691633196286055
https://info.atcoder.jp/overview/about/atcoder https://atcoder.jp/contests/ahc001 7 AtCoder とは? Algorithm Contest 与えられた問題を解決するプログラムを、早く正 確に提出し、その正解数と順位を競うコンテスト。 簡単な問題では、ただ指示通り問題を解決するプ
ログラムを書けば良いが、難しい問題においては、 アルゴリズムを工夫する必要がある。 Heuristic Contest 最適解を出すのが難しい問題に対し、出来るだけ 良い解を作成するコンテスト。 サンタコンペのような問題が出題される。
8 AtCoder Heuristic Contest 問題例 https://info.atcoder.jp/overview/about/atcoder 全ての頂点をできるだけ短い距離で巡る (Travelling Salesman Problem;
TSP) 低スコア 中スコア 高スコア
9 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する 問題の質 良い 概ね良い 手法 大道具は少数 多様
10 AtCoder Heuristic Contest 主な手法 ⚫ ルールベース ⚫ 焼きなまし法 ⚫
ILS ⚫ ビームサーチ ⚫ 遺伝的アルゴリズム
11 AtCoder Heuristic Contest x サンタコンペ ILS 遺伝的アルゴリズム + ビームサーチ
ビームサーチ ルールベース
12 AtCoder は サンタコンペで Kaggle の役に立つ
13 AtCoder は サンタコンペ以外にも Kaggle の役に立つ
14 AtCoder Heuristic Contest 030
15 AtCoder Heuristic Contest 030 問題概要 N x N のグリッド上の
M 個のポリオミノの位置を推定したい グリッドのサイズやポリオミノの個数、形状、向きは既知 ポリオミノの位置のみ未知 ? ? ? ?
16 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る
17 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 1 0 2 1 質問するマス
18 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 返り値 = 2 1 0 2 1
19 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 返り値 = 1 1 0 2 1
20 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 1 0 3 2
21 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 1 0 3 2 返り値 = 1
22 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 1 0 3 2 返り値 = 2
23 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数
⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 1 0 3 2 返り値 = 1 (20%), 2 (60%), 3 (20%) ガウシアンノイズ
24 AtCoder Heuristic Contest 030 ポイント ⚫ 確率的な情報をどのように扱うか? ⚫ どのような質問をすれば多くの情報が得られるか?
25 AtCoder Heuristic Contest 030 解説 25% 25% 25% 25%
⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事前分布
26 AtCoder Heuristic Contest 030 解説 50% 0% 0% 50%
返り値 = 1 ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事後分布
27 AtCoder Heuristic Contest 030 解説 60% 20% 0% 20%
返り値 = 1 ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事後分布
28 AtCoder Heuristic Contest 030 解説 20% 0% 20% 60%
返り値 = 2 ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事後分布
29 AtCoder Heuristic Contest 030 解説 50% 0% 0% 50%
⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事前分布
30 AtCoder Heuristic Contest 030 解説 25% 0% 0% 75%
返り値 = 2 ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事後分布
31 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
32 AtCoder Heuristic Contest 030 解説
33
34 LLM 20 Questions 概要 ⚫ ゲームAI x LLM コンペ
⚫ 2 vs 2 のチーム戦 ⚫ 1人がアキネイター役、もう1人が人間役 ⚫ 人間側には事前にキーワードが共有されている ⚫ 人間側はアキネイター側の質問に対して Yes/No でしか回答できない ⚫ アキネイター側が早くキーワードを当てられたチームの勝ち ⚫ Public LB のキーワード数 2000、Private LB ではキーワードが変更される ポイント ⚫ 自然言語で質問する必要がある ⚫ 人間側は LLM を搭載しないと Yes/No を回答できない
35 LLM 20 Questions 対戦例 自然に関係ありますか? Yes 食べ物に関係ありますか? Yes 植物ですか?
No 動物ですか? Yes 水中に暮らしていますか? Yes 魚に分類されますか? Yes sで始まりますか? Yes キーワードは Salmon です 質問回数=7
36 LLM 20 Questions 人間側の解法 以下の組み合わせ ⚫ Llama3 ⚫ DeepSeek-Math
⚫ ルールベースの質問に答えるアルゴリズム 辞書順、最初の文字 etc.
37 LLM 20 Questions アキネイター側 ポイント ⚫ 確率的な情報をどのように扱うか? ⚫ どのような質問をすれば多くの情報が得られるか?
38 LLM 20 Questions アキネイター側の解法 以下の情報を持っていれば、AtCoder Heuristic Contest 030 と同様に
キーワードの分布の更新が可能 ⚫ キーワードの候補リストとキーワードごとの事前確率(1次元テーブル) ⚫ 質問候補のリスト ⚫ 質問とキーワードのペアごとに人間側が Yes と回答する確率(2次元テーブル)
39 apple banana orange mango Q. Is the fruit typically
yellow when ripe? A. Yes apple banana orange mango ∝ × LLM 20 Questions アキネイター側の解法 ベイズの定理
40 ∝ × LLM 20 Questions アキネイター側の解法 ベイズの定理 apple banana
orange mango Q. Is the color of the fruit typically orange? A. Yes apple banana orange mango
41 ∝ × LLM 20 Questions アキネイター側の解法 ベイズの定理 apple banana
orange mango apple banana orange mango Q. Is the color of the fruit typically orange? A. No
42 LLM 20 Questions アキネイター側の解法 ⚫ エントロピーの期待値を最小化(相互情報量を最大化)する質問を選択 ⚫ キーワードの候補リストとキーワードごとの事前確率(1次元テーブル) 英単語データベースから名詞を抽出
英単語の出現頻度や長さなどの特徴量を用いて事前確率を事前計算 ⚫ 質問の候補 GPT-4o にランダムなキーワードの集合を渡し、それらを判別可能な質問を 答えさせることで事前に生成 or キーワードの辞書順を問う質問 ⚫ 質問とキーワードのペアごとに人間側が Yes と回答する確率(2次元テーブル) gemma-7b-it などの LLM を用いて事前計算 本質は AtCoder Heuristic Contest 030 と全く同じ
43 AtCoder は サンタコンペ以外にも Kaggle の役に立つ
44 AtCoder Heuristic Contest x Kaggle ILS 遺伝的アルゴリズム + ビームサーチ
ビームサーチ ルールベース ガウス過程回帰 二分探索 + ベイズ推定 枝刈りDFS + 整数計画ソルバー
45 おすすめ資料 ⚫ 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/ ありとあらゆる資料がまとまったページ
46 宣伝 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
47