AIにゲームをデバッグさせることは出来るのか? 現時点での模倣学習による結果から得られた知見

 今年はコロナ禍の影響からオンライン開催となった『CEDEC 2020』。本稿では各セッションから「AIにゲームをデバッグさせることは出来るのか?Season2〜monoAI technology AIQAツール開発チームの挑戦〜」の模様を記す。

「AIにゲームをデバッグさせることは出来るのか?Season2〜monoAI technology AIQAツール開発チームの挑戦〜」

 登壇者はmonoAI technologyの本城嘉太郎(代表取締役社長)。昨年の『CEDEC 2019』で紹介された各ツールが、1年後にどうなっているのかがSeazon2として語られた(本稿は「AIによる自動プレイ研究」で構成)。

人間のプレイデモを元に模倣学習で効率化

 3Dアクションゲームの強化学習の通しプレイAIを作る際、なかなか変更を追うことができないのは大変だ。毎回その変更があるたびにソフトを書き直さないといけなかったりで、結局テストも最後まで行くかどうかのチェックが必要になる。

 また大量変更や強化学習で通しプレイAIを作ると、ビルドのたびに人の手でデバッグするのは手間がかかるため、自動プレイAIをルール別に作らねばならない問題もある。その解決のために、まず模倣学習という人の行ったプレイを元に学習して効率化するパターンと、模倣なしで強化学習してみようというパターンをテストしてみた。

 人のプレイデモから学習したAIでステージを攻略するために、今回はUnityのアセットストアにある3Dゲームキットを題材にして、強化学習のテストを行った。学習させるゲームの内容は、ジャンプして足場を渡ったり、ギミックまで到達したり、ギミックに触れさせて作動させたり、ボスまで到達して倒すというもの。そこまでプレイさせられるかどうかを試した。

 まず学習させるための仕組みとして、Unity ML-Agentsというものがある。こちらを使うことにより、非常に効率的にPythonのコードで強化学習をさせることができる。AIに与える報酬と設計は、武器を取得すれば1ポイント獲得、敵を倒せば0.5ポイント獲得など、AIに与えるゲームの情報としては、プレイヤーの座標やジャンプが可能かどうか、攻撃できるか武器を取得できるかなどとした。

 あとレイキャストなどを用いて、周囲の敵を探索して見つけ出すといったこともやってみた。まずプリセットのアルゴリズム(PPO)を試して、模倣学習なしで3日間、ずっと学習させた。その結果、全く武器にさえ辿り着けず、模倣学習なしで3D空間の中のランダムな行動をさせても、最初の報酬にすら辿り着けないことが分かった。

 そのため、人のプレイデモで学習を効率化ということで模倣学習させてみたら、ランダムでは報酬を得られないゲームでも攻略できるのではないかと考えた。また探索の回数が減るため学習時間が短縮されるのではないか、キー操作の完全コピーではないため動く敵などのランダムな要素に対しても強いのではないかとも思った。あと数回のデバッグプレイをスケール化して再現性の低いバグを検出できるのではないかと期待した。

模倣学習の長所と短所 現時点での成果は?

 プリセットの模倣学習を試してみた結果、武器を取得でき、2、3体の敵を撃破するところまで行った。模倣学習にはDeep Q-Learning from Demonstrations(DQfD)というのを使ってみた。行動データは過去のと自分のと両方サンプル確認して使っている。攻略が困難とされているAtari 2600のゲーム『Montezuma’s Revenge』を、人の手順を用いて初めてクリアできたという手法に基づいて採用した。

 使用したデモとしては5エピソード分、30分くらい。使用したマシンはインテルの市販のもので行った(AI専用というよりは少々CPUが強いくらい)。学習時間は1プロセスのみ、丸3日程度とした。

 カメラの操作はプレイヤーで行っているが、AIは与えられた情報から、割とプレイできるところまで持って行けた。たまに敵を倒すのに失敗しているものの、基本的には目の前の敵を検出して攻撃することができている(ただ詳細な地形情報を与えていないため、時たま詰まったりすることがある)。

 うまく行けば10分くらいでクリアするところまで学習させることができたため、模倣学習は非常に効果が高いというのが分かった。一方で、別の難しいステージを同じ学習でプレイさせてみたところ、こちらは足場が複雑で飛び越えなければならないところが多いにも関わらず、しっかりタイミングを測ってジャンプしていた。

 このステージで1エピソード、10分ほどプレイさせてみたが、時間内で到達できたのはそこまでで、動く足場を複数飛び越えさせないと進めないところをクリアできなかった。もう少し学習時間を増やしたりなどで工夫をしないと、アクション性の高いものをクリアするのは難しいというのが分かった。

 長所としては、かなり広大なマップでも正しい手順で攻略できたり、人によるテストプレイの時の動きを再現をある程度できたり、現実的な学習コストや、ある程度の敵の配置の変化にも対応できたりした。短所としては、報酬設定と特徴量のエンジニアリングが必要だったり、仕様変更のたびにデモを作成しなければならないという可能性があったりする。

 なお本稿の内容は、同日の午前中に行われたセッション「攻略、接待、変更に強いAIプレイヤー開発のためのアプローチ」のダイジェストとなっていた。昨年のCEDEC2019における「AIにゲームをデバッグさせることは出来るのか?〜ゲームAI専門会社モリカトロンの挑戦〜」からの成果報告でもあったが、来年の報告も楽しみに待ちたい。

■真狩祐志
東京国際アニメフェア2010シンポジウム「個人発アニメーションの15年史/相互越境による新たな視点」(企画)、「激変!アニメーション環境 平成30年史+1」(著書)など。

CEDEC2020
AIにゲームをデバッグさせることは出来るのか?Season2〜monoAI technology AIQAツール開発チームの挑戦〜
monoAI technology