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
ぼくのかんがえたさいきょうのマリオAI
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Ushitora Anqou
December 10, 2018
Programming
630
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ぼくのかんがえたさいきょうのマリオAI
Ushitora Anqou
December 10, 2018
More Decks by Ushitora Anqou
See All by Ushitora Anqou
Oblivious Online Monitoring for Safety LTL Specification via Fully Homomorphic Encryption
anqou
1
1k
F*でプログラムの正しさを証明する
anqou
1
1.2k
「自作CPUでサイゼリヤ問題」を支える技術
anqou
2
390
10ステップで作るお手軽インタプリタ開発
anqou
3
1.2k
seccamp2018でセルフホストCコンパイラをつくった
anqou
8
5.8k
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
470
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
140
VibeCodingからAgenticWorkflowへ
starfish719
0
190
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
810
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
230
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
240
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
200
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
170
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
140
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
240
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1.1k
その節約、円になってますか?
isamumumu
1
680
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Design in an AI World
tapps
1
270
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
How to train your dragon (web standard)
notwaldorf
97
6.7k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Rails Girls Zürich Keynote
gr2m
96
14k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
240
Designing Experiences People Love
moore
143
24k
Designing for humans not robots
tammielis
254
26k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
160
Transcript
ぼくのかんがえた さいきょうのマリオ AI 艮 鮟鱇 @ushitora anqou 1
とりあえずデモ https://twitter.com/ ushitora_anqou/status/ 1061234857181765633 2
とりあえずデモ https://goo.gl/VJhD8Q Google URL Shortener は 2019 年 3 月で
サービス終了 3
すごくない?? 4
すごい! 5
いろんなやりかた 6
いろんなやりかた • ルールベース • すたっとさんとか • つらそう 6
いろんなやりかた • ルールベース • すたっとさんとか • つらそう • 遺伝的アルゴリズム •
VT-b とか • つらそう 6
いろんなやりかた • ルールベース • すたっとさんとか • つらそう • 遺伝的アルゴリズム •
VT-b とか • つらそう • ヂープラニーング(DQN) • 梅さんとか • つらそう 6
設定 • エージェント(AI)がマリオをする。 • 環境情報を受け取り、ボタンの押し方 を返す。 画像引用:http://ur0.biz/Ok3H 7
想定解 入力:マリオの状態や周りの情報 ⬇ エージェント f (x) ⬇ 出力:ボタンの押し方 8
ところで • マリオ AI のステージは固定 • ランダム要素はない。 • エージェント出力の種類は有限 •
6 個のボタンの ON/OFF なので 26 = 64 ⬇ 出力を全て決めればその評価は一定 9
どゆこと? 事前にエージェントの出力を決める。 1. 右移動+ダッシュ 2. 右移動+ジャンプ 3. ジャンプ . .
. これを出力した後の状態を評価すると、そ の出力の「よさ」が分かる ➡ 探索可能 10
想定解(再掲) 入力:マリオの状態や周りの情報 ⬇ エージェント f (x) ⬇ 出力:ボタンの押し方 11
鮟鱇解 あからじめ出力が決められた エージェント f () ⬇ 出力:ボタンの押し方 12
全幅探索 計算量:O(64n) 13
おねえさーぁぁん! 画像引用:https://youtu.be/Q4gTV4r0zRs 14
すくなく計算する 64 通りも要らない。 • 左移動と右移動を同時に入力すること はない。 • 上移動は使わない。 • 四六時中ダッシュすればいい。
15
すくなく計算する 4 通りに減らせる。 • ダッシュ+左移動 • ダッシュ+右移動 • ダッシュ+左移動+ジャンプ •
ダッシュ+右移動+ジャンプ 16
続‧すくなく計算する 人間がマリオを遊ぶ。 • 人間の反応時間は 0.2s。 • 片や PC の画面更新は 30fps
→ 0.033s ➡ 人間のほとんどの反応は前と同じ 同様にエージェントの出力をダブらせる。 17
計算量:O ( 4n k ) 18
指数時間はいやだ! 多項式時間で計算したい。 • 貪欲法 • 一番良さそうな手を選択することを繰り 返す。 • 捨てる手が多い。 •
計算量は O(4n) • ビームサーチ • 貪欲法の拡張。 • 今回はこれを選択。 19
ビームサーチ • 良さそうな手を m 個持っておき、その 手から伸びる手を探索する。 • 探索した手のうち、上位 m 個を次の探
索で使う。 • 計算量は O(4mn) • わりとうまくいく。 20
ところで 21
ところで 「良さそうな手」ってなに? 21
評価関数をつくる ϕ : 手 −→ 評価値 ある手がどのくらい「良い」のかを表す関 数をつくる。 22
評価関数をつくる ϕ : 手 −→ 評価値 ある手がどのくらい「良い」のかを表す関 数をつくる。 めっちゃ難しい。 22
続‧評価関数をつくる • マリオの x 座標を使う? • 無謀にジャンプして距離を稼ぎ死ぬ。 • 袋小路に入って死ぬ。 •
マリオの y 座標を使う? • ジャンプし続けて死ぬ。 • その他の指標? • わからん!w 23
どうしたか 「接地していたマリオの x 座標の最大値」 24
どうしたか 「接地していたマリオの x 座標の最大値」 • 接地していないと評価にならない。 • 無謀なジャンプを低評価に。 • 最大値をとることで袋小路にスタック
することを防ぐ。 • 全ての行動が等価になるので、乱択で行 動が決まる。 24
評価関数図解 1 25
評価関数図解 2 26
評価関数図解 3 27
まとめ • マリオ AI は意外と難しかった。 • 正直喋れてないことはたくさんある。 • どうでもいいけどステージ 4–1
は クソ。 • そのうちコソッとコードは公開します。 28
ご清聴 ありがとうござ いました 29