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
機械学習で作った ポケモン対戦bot で 遊ぼう!
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yusuke Fukasawa
February 21, 2026
Research
0
31
機械学習で作った ポケモン対戦bot で 遊ぼう!
リモートポケモン学会 2026/02/21 の発表です。
https://x.com/rimopoke/status/2022628011590537676?s=20
Yusuke Fukasawa
February 21, 2026
Tweet
Share
More Decks by Yusuke Fukasawa
See All by Yusuke Fukasawa
LLMアプリケーションの透明性について
fufufukakaka
0
170
やるべきときにMLをやる AIエージェント開発
fufufukakaka
2
1.2k
社内データ分析AIエージェントを できるだけ使いやすくする工夫
fufufukakaka
1
930
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
2.1k
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
1.8k
対戦におけるポケモンの “意味変化”を追う_リモートポケモン学会
fufufukakaka
0
260
機械学習を用いたポケモン対戦選出予測
fufufukakaka
2
1.8k
Poke_Battle_Logger の紹介: リモポケ学会20230714
fufufukakaka
1
1.1k
Poke_Battle_Loggerの紹介
fufufukakaka
0
410
Other Decks in Research
See All in Research
CoRL2025速報
rpc
4
4.3k
Dwangoでの漫画データ活用〜漫画理解と動画作成〜@コミック工学シンポジウム2025
kzmssk
0
110
Tiaccoon: Unified Access Control with Multiple Transports in Container Networks
hiroyaonoe
0
740
製造業主導型経済からサービス経済化における中間層形成メカニズムのパラダイムシフト
yamotty
0
490
AWSの耐久性のあるRedis互換KVSのMemoryDBについての論文を読んでみた
bootjp
1
490
【NICOGRAPH2025】Photographic Conviviality: ボディペイント・ワークショップによる 同時的かつ共生的な写真体験
toremolo72
0
180
ペットのかわいい瞬間を撮影する オートシャッターAIアプリへの スマートラベリングの適用
mssmkmr
0
310
教師あり学習と強化学習で作る 最強の数学特化LLM
analokmaus
2
910
2025-11-21-DA-10th-satellite
yegusa
0
130
Collective Predictive Coding and World Models in LLMs: A System 0/1/2/3 Perspective on Hierarchical Physical AI (IEEE SII 2026 Plenary Talk)
tanichu
1
260
Remote sensing × Multi-modal meta survey
satai
4
720
AI Agentの精度改善に見るML開発との共通点 / commonalities in accuracy improvements in agentic era
shimacos
5
1.3k
Featured
See All Featured
How to make the Groovebox
asonas
2
2k
Accessibility Awareness
sabderemane
0
67
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
130
For a Future-Friendly Web
brad_frost
183
10k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
160
Docker and Python
trallard
47
3.7k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
72
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
GraphQLとの向き合い方2022年版
quramy
50
14k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
250
Transcript
機械学習で作った ポケモン対戦bot で 遊ぼう! fufufukakaka 2026/02/21 リモポケ学会
• fufufukakaka, fu3ka3 (ふか) • 機械学習エンジニア ◦ 自然言語処理・推薦をはじめとして全般 • ポケモン
◦ SVは全シーズン遊び切りました ◦ チャンピオンズが出たらまず動画解析用のアノテーションを頑張らない と...と怯えている ◦ 過去に対戦動画解析・選出予測・プレゼンの自動要約などで発表 自己紹介
ポケモン対戦 (シングル・ランクバトル)
6体同士を見せあって、3体を選んで戦う
これまでの取り組み
本日の内容は以下の記事 +α という感じになっています https://zenn.dev/fufufukakaka/articles/0f9edbb85e5990#%E8%A9%95%E4%BE%A1%E5%AE%9F%E9%A8%93
そろそろ 実際の対戦に 機械学習を活かしたい...
まず先行研究を調べてみる
先行研究: foul-play pokemon-showdown でのみ 機能するイカサマ showdown のデータから 相手の技構成を仮定して あり得る世界をできるだけ シミュレートし良い手を選ぶ
(MonteCalro-Tree-Search) https://github.com/pmariglia/foul-play
先行研究: LLM系 大規模言語モデルを使うのが最近の流行 • PokéLLMon ◦ GPT-4 などの LLM に対戦ログを与えたうえで次の行動を
提案させる手法を提案 • PokeChamp ◦ PokéLLMon を発展させた LLM + ミニマックス探索エージェント • Metamon ◦ Showdown の膨大な人間対戦ログから オフライン RL で エージェントを学習
先行研究に感謝 ...🙏
先行研究の問題点 1. 選出が全く考慮されていないこと (showdownのbotは基本的にsmogonフォーマットなのでシングル66) しかし公式ルールは 6-3 なので大きな乖離が発生している
2. Showdown を用いていること • そもそも実対戦環境とはかなり乖離している(気がする) ◦ ダブル(VGC)はまだしも、シングルは構築を組んでいる 途中の練習場みたいな扱い ◦ なので、そこから得られる対戦ログは
あまり良質ではないのでは?という仮説 • 権利的にもできるだけ距離を取りたい 先行研究の問題点
3. 不完全情報の扱い方 • 結構モデルに全部ぽんと渡してうまくいく、みたいな主張が多い • でも、ポケモン対戦って「相手の持ち物はなんだろう」 「努力値はなんだろう」という仮説を置いて、観測された情報でそれを更新 して勝ち筋を見定めるのが本質なんじゃないか? と思っている •
プレイヤーの直感に近い手法も試したい 先行研究の問題点
新モデル; 選出を提案するモデル + 不完全情報を考慮した行動モデル
選出を予測するモデル (自分の)過去研究を 使います
選出を予測するモデル • バトルデータベースにて公開されている上位構築パーティを用いる • Masked Language Model でポケモンを単語とみなした BERT を
学習 ◦ 構築のうち1匹が欠けているとして、この一匹を推定させる ◦ これによって「カイリューってこういう意味を持ってるかも」を学習して もらう
選出を予測するモデル
不完全情報を考慮した行動モデル
不完全情報を考慮した行動モデル https://ai.meta.com/blog/rebel-a-general-game-playing-ai-bot-that-excels-at-poker-and-more/
不完全情報を考慮した行動モデル • meta が 2020年に提案した ReBel を用いる • これはポーカーの対戦アルゴリズムとして提案されたもの •
公開されている情報と「相手がこのカードを持っているのでは?」 という 仮定から確率分布を推定 • 仮定に従い、各あり得る世界線での最適手を探索した後 確率に基づいて価値を重み付けして最終的な最適手を選ぶ びっくりテラスには どうしても 負けやすい...
今回仮定する情報 情報 説明 観測による更新 相手の選出したポケモン 3体; 最初の予測情報からスタートする 交代などで判明
技構成 4つの技 技使用時に判明 持ち物 きあいのタスキ、こだわりスカーフ等 持ち物発動時に判明 テラスタイプ テラスタル時のタイプ テラスタル使用時に判明 特性 いかく、ばけのかわ等 特性発動時に判明 努力値配分 AS振り、HB振り等 技使用時に推定
不完全情報を考慮した行動モデル ブーストエナジー? (ムーンフォース、シャドーボール、でん じは、祟り目 でノーマルテラス) 気合のタスキ? (ムーンフォース、あまえる、でんじは、 いたみわけ でHB?それともCS?) こだわり眼鏡?
(ムーンフォース、シャドーボール、パ ワージェム、10万ボルト)
None
CFRアルゴリズムによる ”後悔”最小化アルゴリズム • ReBeL では CFR というアルゴリズムを使ってナッシュ均衡に近い戦略を 選ぶ • 「相手がどの型であっても、平均的に最も良い結果が得られる
行動」(安定行動)を選ぶイメージ • 各行動について「もしこの行動を選んでいたら、どれだけ良かった(悪かっ た)か」を計算→一番、後悔しない行動を選ぶ • 「後悔を最小化する」というアプローチを繰り返すと、理論的にはナッシュ 均衡(お互いに最善を尽くしている状態)に収束することが証明されていま す
現在の 対戦場情報 これまでの 仮定 勝率予測 ニューラルネット 行動ごとの“後悔”蓄 積値 行動ごとの選択 確率スコア
現在の戦略 ここをたくさん ループさせる... 戦略が 完成!
モデルを学習させてみよう!
モデルの学習 • 先行事例として、SV対戦を Python でシミュレートするコードを作っている 方がいたので、そちらのコードを拝借(了解を得ております) https://hfps4469.hatenablog.com/entry/2024/09/29/200912
モデルの学習 • ReBel で動くボットを2体用意して自己対戦させる ◦ このとき、レギュレーションJ の上位構築の中から 毎試合ランダムに一つ選んで対戦してもらう ◦ ReBel
の信念は最初、レギュJ最後のポケモンHOME使用率 データから始める
• Value Network(勝率予測) ◦ 盤面の状態から「この状況での勝率」を予測するネットワーク ◦ CFR の _evaluate_action で使用され、各行動の価値を評価
• Selection BERT(選出予測) ◦ 前述の選出提案モデル ◦ Self-Play の結果から「勝った試合での選出」を学習することで、より 強い選出ができるようになる(はず) 学習させるネットワーク
所要時間は 2日くらい
選出は一つの正解が あるわけではないの で、なかなか収束しな い...
どれくらいの強さになった?
ベースラインには全て勝ち越し • Selection BERTの有無で勝率に差が出た ◦ ランダム行動時: 100% → 90% ◦
ランダムは行動で巻き返せないので、選出の影響がでかい ▪ Selection BERT はそれなりの影響力があったといえる • CFR相手はそれなりの行動をしてくるので選出の影響は少なかった • (50回しか対戦していないので、ランダム性による差かも)
機械学習ベースの比較対象も用意してみた! • Decision Transformer • 強化学習を「系列予測問題」として再定義したアーキテクチャ • 入力系列: `[目標リターン₁, 状態₁,
行動₁, 目標リターン₂, 状態₂, 行動₂, ...]` ◦ 推論時は「勝ちたい(RTG=1.0)」を条件として与え、その目標を達成す るような行動を自己回帰的に生成 • MCTS を組み合わせて数手先まで読んで、一番良い行動を提案する
2週間くらいかけてこ こまで来ました
ReBel vs Decision Transformer • 100試合やった結果... ReBel の勝率が 73% でした
• Decision Transformer の欠点 ◦ 自然な交代行動をほとんどしない ◦ 眼の前の相手に対して有効な技を 打ち続ける ◦ 学習にかかる時間が長すぎた • 一般家庭の設備でやるには ReBel は ちょうどいい ◦ ニューラルネットが極小 + 不完全情報を信念で効率よく処理 まだ収束してな さそう...
ReBel モデルと対戦してみた
None
None
None
Case1:コライドン vs 連撃ウー ラオス(HB調整) • 相手の裏にはルギアとキ ラフロルがいる状況 • コライドンが鉢巻 けたぐりをしたら、
そのターンから相手の交 代択選択確率が 上がった • 硬いウーラオスに良いダ メージが入ったので鉢巻 と判断された?
Case2 こちらと相手のチームは こうなっているとき
Case2 コライドン、オーロンゲ、サーフゴー という選出をしたこちらに対して 相手の選出はアルセウス (フェアリー )・黒バドレックス・ドオー 結構嫌な選出をされてる気がする(多分...)
Case3 グライオンは何も事前情 報を与えていないのに自 然と「みがまも」をするよ うになっている
• ReBel による対戦ボットを作った話を紹介しました ◦ 不完全情報を「信念」として扱い、ベイズ更新で絞り込んでいく ◦ CFR でナッシュ均衡に近い戦略を計算する ◦ BERT
による選出予測も組み合わせた • そこそこ強いボットができた ◦ どでかいニューラルネットよりも上手く機能する • 今後: 人間と比べてどれくらい強いのか、という実験もしたい まとめ
こちらの記事もぜひ! https://zenn.dev/fufufukakaka/articles/0f9edbb85e5990#%E8%A9%95%E4%BE%A1%E5%AE%9F%E9%A8%93