対戦相手が賢くなる? ゲームAIの仕組み

ゲームAI
東京情報大学
総合情報学科
准教授 マッキン ケネスジェームス
東京情報大学
1
講義概要
ゲームAI
– ゲームAIの種類や仕組みについて説明し、どの
ように対戦相手が賢くなるのか解説します
講義の流れ
– ゲームAIとは:なぜゲームAI?
– ゲームAIの概要
– ゲームAIの仕組み:「学習」について
– ゲームAIの今後:「群知能」について
東京情報大学
2
ゲームAIとは
• ゲームAI(Artificial Intelligence)= ゲームで利
用される人工知能
• ゲーム = デジタルゲーム
• 人工知能 = 「知的」なコンピュータプログラム
デジタルゲームの中で、知性を感じさせる存在
例)コンピュータが操作するキャラクター
(対戦相手や味方のキャラクター)
東京情報大学
3
なぜゲームAI?
ゲームはAI研究の格好の実験対象
1. 問題(対象)の範囲が限定されている
•
ルールが決まっている。ゲーム世界が有限。
2. 問題(対象)が複雑
•
人間にも簡単に答えが見つからない
3. 正解が未知だが、解の評価ができる
•
点数などで評価できる
Unknown Horizons
4. 共通の問題として、様々な研究と比較ができる
•
違った研究と同じ土俵で良し悪しを比べることができる
東京情報大学
4
ゲームAIの種類
デジタルゲームの中で、知性を感じさせる存在
• キャラクターAI
– 知性の対象が「ゲームキャラクター」
として確認できる
• メタAI
Paintown
– ゲームの進行を制御する知的プログラム
• マップ・ダンジョンの自動生成
• 難易度の自動調整
• イベントやチャレンジ(敵)の発生タイミング
東京情報大学
5
ゲームAIの種類
• ステージ駆動型AI
– ステージの一部として決まった動作を行う
例)インベーダーゲーム
• 反射型AI
– 決まった反応を記述 例)格闘ゲーム
Project Starfighter
• 構造化AI
– 複雑な条件に対する振る舞いを構造的に記述
• 自律型AI
– プランニング(計画)
– 学習型
東京情報大学
BZFlag
6
キャラクターAI(自律型)
• ゲーム内のキャラクター(対戦相手や味方)
の思考・動作を決定するプログラム
センサー
(環境の認識)
思考
(計画の決定)
行動
(計画の実行)
環境
(行動の結果)
東京情報大学
7
ゲームAIの例
敵を発見
(環境の認識)
攻撃を決定・
狙う方向を計算
(計画の決定)
発射
(計画の実行)
!
当たった/外れた
(行動の結果)
東京情報大学
8
ゲームAIの例
退避を決定・
移動方向を計算
(計画の決定)
敵の攻撃
(環境の認識)
移動
(計画の実行)
!
避けた/当たった
(行動の結果)
東京情報大学
9
ゲームAIの仕組み
• 知能の獲得方法
1. プログラマが事前に知能を組み込む方法
プログラマの思った通りに振る舞う。確実。
プログラマ以上には賢くならない。
2. プログラムが学習により知能を獲得する方法
プログラマよりも賢くなる可能性がある。思いもよら
ない行動が見られる。
不確実。調整やデバッグが難しい。
東京情報大学
10
ゲームAIの応用事例
非学習型
• Finite State Machine (有限状態機械)
– Quake, Halo など多くのFPS(一人称シューティング)で利用
• Planning (プランニング)
– Age of Empire, F.E.A.R. など戦略性のあるゲームで利用
学習型
• Genetic Algorithm (遺伝的アルゴリズム)
– アストロノーカ(1998)
• Artificial Neural Network (ニューラルネットワーク)
– Creatures, BATTLECRUISER:3000AD, がんばれ森川君2号,
Colin McRae Rally 2.0, Black & White
東京情報大学
11
強化学習
基本的な考え方:アメとムチ
• 良い行動を取った時には褒める(プラス評価)
• 悪い行動を取った時には叱る(マイナス評価)
特徴
• 正解は事前に分からなくても良い
• 少しづつ答えを良い方向に導く効果がある
東京情報大学
12
強化学習の簡単な例
•
•
•
•
•
迷路の分岐でどちらが正しいか分からない
ならサイコロ(ランダム)で決める
選択の結果、良かった場合はプラス評価
悪かった場合はマイナス評価
次に同じ分岐に来た時、評価を参照して決定
評価=1
評価= -1
東京情報大学
13
強化学習の具体例
• 1対1のシューティングゲームを考えてみる
• 攻撃(直進する弾)
– エネルギーを少し(2)消費する
– 速度は遅い(避けることができる)
– 5発連続して発射することができる
• 防御(シールド)
– 弾に被弾するとエネルギーを大量(50)に消費する
– シールドを張っている間は攻撃できない
– 張っている間はエネルギーを消費(1)する
• エネルギー
– 動いていないと徐々に(1)補充される
– なくなると攻撃も防御もできない
東京情報大学
14
AIの思考の設計
判断条件
エネルギーの
残量は多い?
Y/N
移動
攻撃・防御
相手は前方
にいる?
相手の弾は
前方にある?
Y/N
相手の前方
から逃げる
攻撃
相手の前方
に向かう
Y/N
停止
シールドを張る シールド解除
東京情報大学
15
Decision Table(意思決定表)
ケース
条件
残量が多い
Y
Y
Y
相手が前方
Y
Y
N N
Y
Y
N N
弾が前方
Y
N
Y
Y
N
Y
X
X
X
Y
N
相手から逃げる
相手に向かう
行動
X
X
X
N N N N
X
移動を停止
X
攻撃
シールドを張る
N
X
X
シールドを解除
X
X
X
X
X
X
• どの状態の時にどんな行動を取るか
東京情報大学
16
強化学習の評価テーブル
ケース
条件
行動
残量が多い
Y
Y
Y
相手が前方
Y
Y
N N
Y
Y
N N
弾が前方
Y
N
Y
N
Y
N
Y
N
相手から逃げる
0
0
0
0
0
0
0
0
相手に向かう
0
0
0
0
0
0
0
0
移動を停止
0
0
0
0
0
0
0
0
攻撃
0
0
0
0
0
0
0
0
シールドを張る
0
0
0
0
0
0
0
0
シールドを解除
0
0
0
0
0
0
0
0
Y
N N N N
• 行動の評価値を強化学習で埋めていく
東京情報大学
17
強化学習後
ケース
条件
行動
残量が多い
Y
Y
Y
相手が前方
Y
Y
N N
Y
Y
N N
弾が前方
Y
N
Y
N
Y
N
Y
相手から逃げる
0 -1 -1 0
1
2
2 -1
相手に向かう
4
2
0 -1 0
移動を停止
-1
0 -1 0
攻撃
-1
3
シールドを張る
2 -1 2 -1 2
0
シールドを解除
0 -1 -1 -1 0
3 -1 3
3
0
Y
4
N N N N
0
N
0
0 -1 3
4 -1 -1 0
0
2 -1
• 評価の一番高い値を選択する
• 負けこんでくると、評価が下がるので行動が変わる
東京情報大学
18
実験プログラム
• 強化学習を用いた簡単なシューティングを
作ってみた
東京情報大学
19
ゲームAIの今後
• 群知能
– 小さな知能を沢山集めて、単体では解くことので
きない複雑な問題を解く
– マルチエージェントにも似ているが、より集団の
知能に重きを置いている
– 知能の「創発」の研究も進められている
Nexuis
東京情報大学
Glest
20
まとめ
• ゲームAIの分類
• ゲームAIの構成
– 認識 計画 行動
環境
• 学習型AIの強化学習
• シューティングゲームへの応用
– 意思決定表を用いた
東京情報大学
21
おわりに
• ゲームAIのメリット
– ゲーム業界からは賢い対戦相手の実現
– 研究者側からは人工知能の評価環境
– 大学で生まれたゲームAIも商品化されている
(Halo2,Halo3,F.E.A.R.)
– 今後は、人工知能の重要な応用の一つになる
東京情報大学
22