Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ぼくのかんがえた さいきょうのマリオ AI 艮 鮟鱇 @ushitora anqou 1
Slide 2
Slide 2 text
とりあえずデモ https://twitter.com/ ushitora_anqou/status/ 1061234857181765633 2
Slide 3
Slide 3 text
とりあえずデモ https://goo.gl/VJhD8Q Google URL Shortener は 2019 年 3 月で サービス終了 3
Slide 4
Slide 4 text
すごくない?? 4
Slide 5
Slide 5 text
すごい! 5
Slide 6
Slide 6 text
いろんなやりかた 6
Slide 7
Slide 7 text
いろんなやりかた • ルールベース • すたっとさんとか • つらそう 6
Slide 8
Slide 8 text
いろんなやりかた • ルールベース • すたっとさんとか • つらそう • 遺伝的アルゴリズム • VT-b とか • つらそう 6
Slide 9
Slide 9 text
いろんなやりかた • ルールベース • すたっとさんとか • つらそう • 遺伝的アルゴリズム • VT-b とか • つらそう • ヂープラニーング(DQN) • 梅さんとか • つらそう 6
Slide 10
Slide 10 text
設定 • エージェント(AI)がマリオをする。 • 環境情報を受け取り、ボタンの押し方 を返す。 画像引用:http://ur0.biz/Ok3H 7
Slide 11
Slide 11 text
想定解 入力:マリオの状態や周りの情報 ⬇ エージェント f (x) ⬇ 出力:ボタンの押し方 8
Slide 12
Slide 12 text
ところで • マリオ AI のステージは固定 • ランダム要素はない。 • エージェント出力の種類は有限 • 6 個のボタンの ON/OFF なので 26 = 64 ⬇ 出力を全て決めればその評価は一定 9
Slide 13
Slide 13 text
どゆこと? 事前にエージェントの出力を決める。 1. 右移動+ダッシュ 2. 右移動+ジャンプ 3. ジャンプ . . . これを出力した後の状態を評価すると、そ の出力の「よさ」が分かる ➡ 探索可能 10
Slide 14
Slide 14 text
想定解(再掲) 入力:マリオの状態や周りの情報 ⬇ エージェント f (x) ⬇ 出力:ボタンの押し方 11
Slide 15
Slide 15 text
鮟鱇解 あからじめ出力が決められた エージェント f () ⬇ 出力:ボタンの押し方 12
Slide 16
Slide 16 text
全幅探索 計算量:O(64n) 13
Slide 17
Slide 17 text
おねえさーぁぁん! 画像引用:https://youtu.be/Q4gTV4r0zRs 14
Slide 18
Slide 18 text
すくなく計算する 64 通りも要らない。 • 左移動と右移動を同時に入力すること はない。 • 上移動は使わない。 • 四六時中ダッシュすればいい。 15
Slide 19
Slide 19 text
すくなく計算する 4 通りに減らせる。 • ダッシュ+左移動 • ダッシュ+右移動 • ダッシュ+左移動+ジャンプ • ダッシュ+右移動+ジャンプ 16
Slide 20
Slide 20 text
続‧すくなく計算する 人間がマリオを遊ぶ。 • 人間の反応時間は 0.2s。 • 片や PC の画面更新は 30fps → 0.033s ➡ 人間のほとんどの反応は前と同じ 同様にエージェントの出力をダブらせる。 17
Slide 21
Slide 21 text
計算量:O ( 4n k ) 18
Slide 22
Slide 22 text
指数時間はいやだ! 多項式時間で計算したい。 • 貪欲法 • 一番良さそうな手を選択することを繰り 返す。 • 捨てる手が多い。 • 計算量は O(4n) • ビームサーチ • 貪欲法の拡張。 • 今回はこれを選択。 19
Slide 23
Slide 23 text
ビームサーチ • 良さそうな手を m 個持っておき、その 手から伸びる手を探索する。 • 探索した手のうち、上位 m 個を次の探 索で使う。 • 計算量は O(4mn) • わりとうまくいく。 20
Slide 24
Slide 24 text
ところで 21
Slide 25
Slide 25 text
ところで 「良さそうな手」ってなに? 21
Slide 26
Slide 26 text
評価関数をつくる ϕ : 手 −→ 評価値 ある手がどのくらい「良い」のかを表す関 数をつくる。 22
Slide 27
Slide 27 text
評価関数をつくる ϕ : 手 −→ 評価値 ある手がどのくらい「良い」のかを表す関 数をつくる。 めっちゃ難しい。 22
Slide 28
Slide 28 text
続‧評価関数をつくる • マリオの x 座標を使う? • 無謀にジャンプして距離を稼ぎ死ぬ。 • 袋小路に入って死ぬ。 • マリオの y 座標を使う? • ジャンプし続けて死ぬ。 • その他の指標? • わからん!w 23
Slide 29
Slide 29 text
どうしたか 「接地していたマリオの x 座標の最大値」 24
Slide 30
Slide 30 text
どうしたか 「接地していたマリオの x 座標の最大値」 • 接地していないと評価にならない。 • 無謀なジャンプを低評価に。 • 最大値をとることで袋小路にスタック することを防ぐ。 • 全ての行動が等価になるので、乱択で行 動が決まる。 24
Slide 31
Slide 31 text
評価関数図解 1 25
Slide 32
Slide 32 text
評価関数図解 2 26
Slide 33
Slide 33 text
評価関数図解 3 27
Slide 34
Slide 34 text
まとめ • マリオ AI は意外と難しかった。 • 正直喋れてないことはたくさんある。 • どうでもいいけどステージ 4–1 は クソ。 • そのうちコソッとコードは公開します。 28
Slide 35
Slide 35 text
ご清聴 ありがとうござ いました 29