畳み込みニューラルネットワークと再帰型ニューラルネットワークを利用したサッカーゲームFIFA 18をプレイするディープラーニングモデルの構築

課題

ゲームの対戦用人工知能を構築する場合、ゲームのルールを手作業で記述・コーディングする必要がありました。例えば将棋ゲームの対戦用人工知能の作製には各駒の動き方や、対戦に勝利するには相手の「玉」を取るといったルールの記述が必要です。また盤面情報の入力も必要になります。
今回紹介するChintan Trivedi氏が開発したディープラーニングを利用したサッカーゲーム用人工知能では、ルールや試合状況の情報を事細かに与える必要なく人間がゲームを遊んだ際のログとプレイ画面から学習することで、自ら相手ゴールに向かってボールをつなぎ、シュートするという行動が獲得されました。

解決方法

Trivedi氏はサッカーゲームのプレイ画面と人間のコントローラ操作のログを収集するために、EA SportsEA Sportsが開発販売しているWindows版FIFA 18というゲームを利用しました。Trivedi氏自らがプレイした際のプレイ画面のスクリーンショットとコントローラのボタン操作を記録したそうです。実際にゲームを行う人工知能は、畳み込みニューラルネットワーク(CNN)と時系列情報を扱うことができる再帰型ニューラルネットワークのロング・ショートタームメモリ(LSTM)によって構築されています。まずCNNがゲーム画面の情報を圧縮し高次元特徴量を抽出します。次に抽出された高次元特徴量は2つのLSTMに入力され、それぞれのLSTMがゲームコントローラーの十字キーと「パス」や「シュート」等の技能に対応するアクションキーの動作を予測するように学習されます。これは時系列情報をもとにした多クラス分類の問題を学習していることに相当します。またゲームを実時間で行うための工夫として、Googleが開発したCNNを高速化したMobileNetsと呼ばれるモデルを採用しています。MobileNetsはCNNで使われる畳み込み演算を分解し、演算量を削減しています(MobileNetsに関する詳細はここを参照)。ここで学習データは最初に述べたようにTrivedi氏が実際にゲームを行った際のログになります。

どうなったか

約400分ほどの学習の結果、構築したゲーム用人工知能は相手チームのゴールに向かってパスをつなぎ、相手チームのゴールが見える位置に来るとシュートを打つことができました。またFIFA 18の初心者モードでゲーム内のNPC(ノンプレイヤーキャラクター)と対戦させたところ6試合を通して4得点を挙げることができました。実際のプレイ動画はTrivedi氏のBlogまたはYouTubeからご覧になれます。

まとめ

サッカーゲームをプレイすることが可能なディープラーニングモデルについて紹介をしました。近年話題になっているゲームをプレイする人工知能(例えば囲碁を指すAlphaGoなど)は、その多くが強化学習はと呼ばれる手法を利用しています。それらの手法は非常に良いパフォーマンスを発揮していますが、強化学習は報酬関数を設計する必要がありますが、今回のようなサッカーゲームではその設計が難しいことが知られています。Trivedi氏のモデルはCNNとLSTMを用いた非常に単純であり、応用先が広いように感じます。Trivedi氏は今回紹介したモデルのプログラムを公開されていますので、興味のあるかたは是非動かしてみてはいかがでしょうか。2018年7月16日に予定されている2018年サッカーワルドカップ決勝戦の内容を、ディープラーニングで予測できるかもしれません。

参考資料

(堀井隆斗)