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
機械学習を用いたポケモン対戦選出予測
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yusuke Fukasawa
May 26, 2024
Research
1
1.7k
機械学習を用いたポケモン対戦選出予測
2024/05/26 のリモートポケモン学会で発表した内容です。
https://twitter.com/rimopoke
Yusuke Fukasawa
May 26, 2024
Tweet
Share
More Decks by Yusuke Fukasawa
See All by Yusuke Fukasawa
やるべきときにMLをやる AIエージェント開発
fufufukakaka
0
170
社内データ分析AIエージェントを できるだけ使いやすくする工夫
fufufukakaka
1
680
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
1.9k
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
1.7k
対戦におけるポケモンの “意味変化”を追う_リモートポケモン学会
fufufukakaka
0
250
Poke_Battle_Logger の紹介: リモポケ学会20230714
fufufukakaka
1
1k
Poke_Battle_Loggerの紹介
fufufukakaka
0
390
Cookpad TechConf2022 / Machine-Learning-At-Cookpad-Mart
fufufukakaka
1
3.4k
20221116_MLOps勉強会_クックパッドマートにおける推薦タスクとMLOps
fufufukakaka
2
1.9k
Other Decks in Research
See All in Research
Earth AI: Unlocking Geospatial Insights with Foundation Models and Cross-Modal Reasoning
satai
2
400
When Learned Data Structures Meet Computer Vision
matsui_528
1
2.4k
SkySense V2: A Unified Foundation Model for Multi-modal Remote Sensing
satai
3
410
生成的情報検索時代におけるAI利用と認知バイアス
trycycle
PRO
0
210
生成AI による論文執筆サポート・ワークショップ ─ サーベイ/リサーチクエスチョン編 / Workshop on AI-Assisted Paper Writing Support: Survey/Research Question Edition
ks91
PRO
0
130
その推薦システムの評価指標、ユーザーの感覚とズレてるかも
kuri8ive
1
300
Attaques quantiques sur Bitcoin : comment se protéger ?
rlifchitz
0
140
ForestCast: Forecasting Deforestation Risk at Scale with Deep Learning
satai
2
300
Time to Cash: The Full Stack Breakdown of Modern ATM Attacks
ratatata
0
190
生成AI による論文執筆サポート・ワークショップ 論文執筆・推敲編 / Generative AI-Assisted Paper Writing Support Workshop: Drafting and Revision Edition
ks91
PRO
0
110
離散凸解析に基づく予測付き離散最適化手法 (IBIS '25)
taihei_oki
PRO
1
670
Thirty Years of Progress in Speech Synthesis: A Personal Perspective on the Past, Present, and Future
ktokuda
0
150
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
130
Believing is Seeing
oripsolob
1
38
The Curse of the Amulet
leimatthew05
1
7.7k
How to train your dragon (web standard)
notwaldorf
97
6.5k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
280
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
49
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
270
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
73
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
800
Transcript
機械学習を用いた ポケモン対戦選出予測 2024/05/26 fufufukakaka @ リモートポケモン学会
自己紹介 fufufukakaka(fu3ka3) pron. ふふふかかか・ふか 普段は機械学習エンジニア リモポケ学会では2 回発表しました 対戦データを収集するシステム GPT-4 で発表を要約するシステム
ポケモンの対戦を嗜んでいます レート1800 で安定してる 2
お話したいこと 1. ポケモン対戦とは 2. 選出と技選択 3. 選出データの収集 4. いい感じの予測モデル作り 5.
結果とエラー分析 6. まとめ 3
ポケモン対戦とは 6 体を見せ合う → 3 体( ダブルでは4 体) を出して対 戦開始
→ 先に相手のポケモンをすべて 倒したほうが勝ち 今日はシングル対戦の話 1. ポケモン対戦とは 4
ポケモン対戦の何かを予測して 強くなりたい!( ?) 2. 選出と技選択 5
選出と技選択 選出 どのポケモンを使うのかを相手のプールを見て決める マクロ的な視点による思考が必要 技選択 自分と相手の対面状況、裏を考慮して技・交代選択をする ミクロ的な視点による思考が必要 2. 選出と技選択 6
→ 選出と技選択で考え方が違う!! 2. 選出と技選択 7
選出と技選択、どっちを予測するほう が簡単そう... ? → 選出予測 のほうがまだできそう 2. 選出と技選択 8
選出データ収集 こういう枠組みで 捉える 自分と相手の6 体、相手が出した 3 体があれば予測 できそう 3. 予測のための選出データ収集
9
選出データ収集 自分の対戦データ: Poke Battle Logger で集められる ただし、自分の対戦データだけだと予測できた!とは言えない ( 集計するだけで良さそう) 3.
予測のための選出データ収集 10
他の人の対戦データも集めよう! 3. 予測のための選出データ収集 11
選出データ収集 どうやって対戦データを集めるか? → YouTube で配信されている対戦から収集する ( メンバー限定配信は対象としない) 自動で集められるか? → YouTube
の規約上 bot アクセスができない → 色んな画面レイアウトで配信されているため、Poke Battle Logger の対象にできないものが多い 3. 予測のための選出データ収集 12
人力で集めよう!!! 3. 予測のための選出データ収集 13
人力で!選出データ収集 候補となる対戦動画を集めてくる 編集が入っていない配信を対象に する クラウドソーシングで作業者を募集 して依頼 → 約1000 試合( レギュレーションF)
を 集められた 3. 予測のための選出データ収集 14
いい感じの予測モデル作り どんなモデルが必要? 1. ポケモンをベクトルに変換するモデル 2. ポケモンベクトルで予測を行うモデル 選出ポケモンを予測するタスク その中での初手を予測するタスク なんかいっぱい必要... 4.
いい感じの予測モデル作り 15
1. ポケモンをベクトルに変換するモデル ポケモン名はそのままだとモデルに入力できない 何らかの変換を行う必要がある ※ 普通の日本語ではないので、一から学習させる必要がある ( 普通の日本語であれば事前学習済モデルが使えるが...) → ポケモン名を新しい単語として定義して、パーティの並びから
ベクトルを学習させる 4. いい感じの予測モデル作り 16
1. ポケモンをベクトルに変換するモデル 穴埋め問題を解かせることで、単語の意味及び関係性を学習できる → Pokemon Team BERT を作る (BERT ...
言語理解のための強いモデル) 4. いい感じの予測モデル作り 17
1. ポケモンをベクトルに変換するモデル 受けループに必要な残り一体を推測させている様子↓ パーティの概念を学習したベクトル変換モデルが手に入った 4. いい感じの予測モデル作り 18
2. ポケモンベクトルで選出予測を行うモデル パーティの並びを文章とみなして、Token Classification で解く Token Classification → 固有表現抽出とかで使われているタスク 4.
いい感じの予測モデル作り 19
2. ポケモンベクトル で選出予測を行うモ デル 選出された、初手選出 された、選出されなか った、のラベルを用意 して予測 4. いい感じの予測モデル作り
20
2. ポケモンベクトルで選出予測を行うモデル target_sentence = " カイリュー ハバタクカミ ... 暁ガチグマ[SEP] ママンボウ
オーロンゲ ... 水オーガポン" predict_res = trained_model.predict(target_sentence) print(predict_res) { " ママンボウ": { " 選出された確率": 0.95, " 初手選出された確率": 0.86, " 選出されなかった確率": 0.01 },... } 4. いい感じの予測モデル作り 21
結果とエラー分析 どれくらいの予測精度になったでしょうか? 初手ポケモン予測の正解率 選出ポケモン予想の平均正解数(1 試合あたり: 0~3) 5. 結果とエラー分析 22
比較手法 ランダム ... 6 体の中からランダムに3 体選ぶ。その中の一匹をランダ ムに初手と予想 集計ベース ... 試合データを集計して、初手回数が多かったポケモ
ン・選出回数が多かったポケモンを把握。相手パーティの中でその 上位から予想として出す 5. 結果とエラー分析 23
結果 モデル 初手の正解率 選出予想の平均正解数 pokemon_team_BERT 0.3671 1.7578 ランダム 0.1666 1.4981
集計ベース 0.1250 1.4531 5. 結果とエラー分析 24
結果 モデル 初手の正解率 選出予想の平均正解数 pokemon_team_BERT 0.3671 1.7578 ランダム 0.1666 1.4981
集計ベース 0.1250 1.4531 → ( 一応) 大勝利! 5. 結果とエラー分析 25
エラー分析 ケース1 {' 相手のチーム': ' コノヨザル イーユイ 岩オーガポン 暁ガチグマ イダイトウ・オス
ミミッキュ', ' 自分のチーム': ' ディンルー カイリュー サーフゴー パオジアン ハバタクカミ ウーラオス', ' 予想選出( 機械学習)': [' コノヨザル', ' イダイトウ・オス', ' 岩オーガポン'], ' 予想選出( 集計)': [' 暁ガチグマ', ' イーユイ', ' イダイトウ・オス'], ' 実際の選出': [' 暁ガチグマ', ' 岩オーガポン', ' イダイトウ・オス'], } 初手コノヨザルという予想は悪くない イダイトウ・オス、岩オーガポンは当てられた 集計ベースもまあまあ 5. 結果とエラー分析 26
エラー分析 ケース2 {' 相手のチーム': ' サケブシッポ ハバタクカミ 暁ガチグマ ウーラオス 炎オーガポン
パオジアン', ' 自分のチーム': ' ハバタクカミ キョジオーン 霊獣ランドロス ウーラオス ブリジュラス パオジアン', ' 予想選出( 機械学習)': [' サケブシッポ', ' ハバタクカミ', ' ウーラオス'], ' 予想選出( 集計)': [' ハバタクカミ', ' ウーラオス', ' パオジアン'], ' 実際の選出': [' サケブシッポ', ' ハバタクカミ', ' ウーラオス'], } 完璧に的中したパターン! 5. 結果とエラー分析 27
エラー分析 ケース3 {' 相手のチーム': ' カイリュー 暁ガチグマ パオジアン ハバタクカミ ブリジュラス
炎オーガポン', ' 自分のチーム': ' ハバタクカミ サーフゴー カイリュー ウーラオス ママンボウ 暁ガチグマ', ' 予想選出( 機械学習)': [' 暁ガチグマ', ' パオジアン', ' ブリジュラス'], ' 予想選出( 集計)': [' ハバタクカミ', ' パオジアン', ' 暁ガチグマ'], ' 実際の選出': [' カイリュー', ' ハバタクカミ', ' 炎オーガポン'], } 完全に外したパターン こちらにママンボウがいるので、暁ガチグマが負荷をかけにくるの では、と予想するのはそこまで変じゃない... ような気がする 5. 結果とエラー分析 28
エラー分析 BERT というモデルは (Self)Attention という仕組み を持っていて、どの単語に反 応したかが見えるようになっ ている Source-Target Attention
での 例 → 5. 結果とエラー分析 29
[ 自分のパーティ] ハバタクカミ, イーユイ, 暁ガチ グマ, タケルライコ, カイリュー, ハッサム [
相手のパーティ] マスカーニャ, カイリュー, ブリ ジュラス, ママンボウ, ウーラオ ス, ハバタクカミ ブリジュラスにめちゃくちゃ 引っ張られている→ 5. 結果とエラー分析 30
( 同じパーティ) 警戒されているママンボウの 様子( 一部のAttention) 5. 結果とエラー分析 31
エラー分析 Attention 可視化分析を踏まえると、モデルは筋の良い目の付け所 を持っている( 多分) 定性的にも悪くない挙動と言えそう だが、良くも悪くも頻出のものに引っ張られる 選出全体でみると集計ベースとの差はわずか... 5. 結果とエラー分析
32
まとめ 自動・人力でシングル対戦のデータを収集 選出予測を行うモデルを作ってみた 初手予測はそれなり、選出予測はまあまあでできることがわかった これから 集めたデータをベンチマークとして公開したい OBS で使えるツールにしたい モデルの改善、レギュレーションG データの収集など引き続きやっ
ていきます まとめ 33