Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第3回関東Kaggler会_AtCoderはKaggleの役に立つ

ethylene
February 15, 2025

 第3回関東Kaggler会_AtCoderはKaggleの役に立つ

ethylene

February 15, 2025
Tweet

Other Decks in Programming

Transcript

  1. https://info.atcoder.jp/overview/about/atcoder https://atcoder.jp/contests/ahc001 8 AtCoder とは? Algorithm Contest 与えられた問題を解決するプログラムを、早く正 確に提出し、その正解数と順位を競うコンテスト。 簡単な問題では、ただ指示通り問題を解決するプ

    ログラムを書けば良いが、難しい問題においては、 アルゴリズムを工夫する必要がある。 Heuristic Contest 最適解を出すのが難しい問題に対し、出来るだけ 良い解を作成するコンテスト。 サンタコンペのような問題が出題される。
  2. 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する 問題の質 良い 概ね良い 手法 大道具は少数 多様
  3. 11 AtCoder Heuristic Contest 主な手法 ⚫ ルールベース ⚫ 焼きなまし法 ⚫

    ILS ⚫ ビームサーチ ⚫ 遺伝的アルゴリズム
  4. 16 AtCoder Heuristic Contest 030 問題概要 N x N のグリッド上の

    M 個のポリオミノの位置を推定したい グリッドのサイズやポリオミノの個数、形状、向きは既知 ポリオミノの位置のみ未知 ? ? ? ?
  5. 17 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数

    ⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る
  6. 18 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数

    ⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 1 0 2 1 質問するマス
  7. 19 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数

    ⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 返り値 = 2 1 0 2 1
  8. 20 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数

    ⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 返り値 = 1 1 0 2 1
  9. 21 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数

    ⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 1 0 3 2
  10. 22 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数

    ⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 1 0 3 2 返り値 = 1
  11. 23 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数

    ⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 1 0 3 2 返り値 = 2
  12. 24 AtCoder Heuristic Contest 030 問題概要 次の質問を何回か聞くことが可能 少ない質問回数で正しい位置を推定すると高得点 ⚫ あるマスと重なっているポリオミノの個数

    ⚫ 指定した複数のマスに重なっているポリオミノの個数 同一のポリオミノも重複してカウント ただし返り値には誤差が乗る 質問するマス 1 0 3 2 返り値 = 1 (20%), 2 (60%), 3 (20%) ガウシアンノイズ
  13. 26 AtCoder Heuristic Contest 030 解説 25% 25% 25% 25%

    ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事前分布
  14. 27 AtCoder Heuristic Contest 030 解説 50% 0% 0% 50%

    返り値 = 1 ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事後分布
  15. 28 AtCoder Heuristic Contest 030 解説 60% 20% 0% 20%

    返り値 = 1 ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事後分布
  16. 29 AtCoder Heuristic Contest 030 解説 20% 0% 20% 60%

    返り値 = 2 ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事後分布
  17. 30 AtCoder Heuristic Contest 030 解説 50% 0% 0% 50%

    ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事前分布
  18. 31 AtCoder Heuristic Contest 030 解説 25% 0% 0% 75%

    返り値 = 2 ⚫ 位置の確率分布を質問の回答を用いて更新する ⚫ 更新にはベイズの定理を用いる 事後分布
  19. 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
  20. 34

  21. 35 LLM 20 Questions 概要 ⚫ ゲームAI x LLM コンペ

    ⚫ 2 vs 2 のチーム戦 ⚫ 1人がアキネイター役、もう1人が人間役 ⚫ 人間側には事前にキーワードが共有されている ⚫ 人間側はアキネイター側の質問に対して Yes/No でしか回答できない ⚫ アキネイター側が早くキーワードを当てられたチームの勝ち ⚫ Public LB のキーワード数 2000、Private LB ではキーワードが変更される ポイント ⚫ 自然言語で質問する必要がある ⚫ 人間側は LLM を搭載しないと Yes/No を回答できない
  22. 36 LLM 20 Questions 対戦例 自然に関係ありますか? Yes 食べ物に関係ありますか? Yes 植物ですか?

    No 動物ですか? Yes 水中に暮らしていますか? Yes 魚に分類されますか? Yes sで始まりますか? Yes キーワードは Salmon です 質問回数=7
  23. 37 LLM 20 Questions 人間側の解法 以下の組み合わせ ⚫ Llama3 ⚫ DeepSeek-Math

    ⚫ ルールベースの質問に答えるアルゴリズム 辞書順、最初の文字 etc.
  24. 39 LLM 20 Questions アキネイター側の解法 以下の情報を持っていれば、AtCoder Heuristic Contest 030 と同様に

    キーワードの分布の更新が可能 ⚫ キーワードの候補リストとキーワードごとの事前確率(1次元テーブル) ⚫ 質問候補のリスト ⚫ 質問とキーワードのペアごとに人間側が Yes と回答する確率(2次元テーブル)
  25. 40 apple banana orange mango Q. Is the fruit typically

    yellow when ripe? A. Yes apple banana orange mango ∝ × LLM 20 Questions アキネイター側の解法 ベイズの定理
  26. 41 ∝ × LLM 20 Questions アキネイター側の解法 ベイズの定理 apple banana

    orange mango Q. Is the color of the fruit typically orange? A. Yes apple banana orange mango
  27. 42 ∝ × LLM 20 Questions アキネイター側の解法 ベイズの定理 apple banana

    orange mango apple banana orange mango Q. Is the color of the fruit typically orange? A. No
  28. 43 LLM 20 Questions アキネイター側の解法 ⚫ エントロピーの期待値を最小化(相互情報量を最大化)する質問を選択 ⚫ キーワードの候補リストとキーワードごとの事前確率(1次元テーブル) 英単語データベースから名詞を抽出

    英単語の出現頻度や長さなどの特徴量を用いて事前確率を事前計算 ⚫ 質問の候補 GPT-4o にランダムなキーワードの集合を渡し、それらを判別可能な質問を 答えさせることで事前に生成 or キーワードの辞書順を問う質問 ⚫ 質問とキーワードのペアごとに人間側が Yes と回答する確率(2次元テーブル) gemma-7b-it などの LLM を用いて事前計算 本質は AtCoder Heuristic Contest 030 と全く同じ
  29. 45 AtCoder Heuristic Contest x Kaggle ILS 遺伝的アルゴリズム + ビームサーチ

    ビームサーチ ルールベース ガウス過程回帰 二分探索 + ベイズ推定 枝刈りDFS + 整数計画ソルバー
  30. 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位転落
  31. 49 いろいろ ⚫ 参加するコンペの選び方 ⚫ AtCoder → Kaggle ⚫ Kaggle

    → AtCoder ⚫ Kaggle Rank ⚫ MLコンペは出ないの?
  32. 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/ ありとあらゆる資料がまとまったページ
  33. 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
  34. 52