(57)【要約】【課題】リアルタイムアクション対戦ゲームにおいて、効率的に敵ゲームキャラクタを倒すことができるゲームＡＩや、人間のプレイヤのプレイ内容を模してゲームを操作することができるゲームＡＩを提供する。【解決手段】学習装置２を、自己ゲームキャラクタ５１と敵ゲームキャラクタ５２が同時に動きながら対戦するゲームプログラムを実行するゲーム実行部１１から敵ゲームキャラクタ５２の行動データを含む入力データを入力する入力部２１、自己ゲームキャラクタ５１に対する操作データを含む出力データをゲーム実行部１１へ出力する出力部２２、機械学習プロセスに基づいて、入力データとそれに対応して出力すべき出力データの間の相関関係を学習する学習部２３、として機能させる。【選択図】図１
2020166528.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置を、
第１のゲームキャラクタと第２のゲームキャラクタが同時に動きながら対戦するゲームプログラムを実行する実行部から前記第２のゲームキャラクタの行動データを含む入力データを入力する入力部、
前記第１のゲームキャラクタに対する操作データを含む出力データを前記実行部へ出力する出力部、
機械学習プロセスに基づいて、前記入力データとそれに対応して出力すべき前記出力データの間の相関関係を学習する学習部、
として機能させる、ゲーム操作学習プログラム。
【請求項２】
前記入力部は、
前記入力データをファイルデータ形式で前記実行部から入力する、請求項１記載のゲーム操作学習プログラム。
【請求項３】
前記学習部は、
所定の前記行動データとそれに対応してプレイヤが操作した際の前記操作データとの組合せを教師データとした教師あり学習により前記相関関係を学習する、請求項２記載のゲーム操作学習プログラム。
【請求項４】
前記学習部は、
再帰ニューラルネットワークを有するＬＳＴＭを備え、
前記ＬＳＴＭに対する前記教師あり学習として、時系列で入力された直近所定数の前記入力データに対応して出力すべき前記出力データを学習する、請求項３記載のゲーム操作学習プログラム。
【請求項５】
前記学習部は、
前記第１のゲームキャラクタの操作において同時に実行し得る操作種類の数以上の前記ＬＳＴＭを用いて学習する、請求項４記載のゲーム操作学習プログラム。
【請求項６】
前記学習部は、
強化学習により前記相関関係を学習する、請求項２記載のゲーム操作学習プログラム。
【請求項７】
前記学習部は、
深層Ｑネットワークを備え、
前記深層Ｑネットワークに対する前記強化学習として、出力層における前記操作データの各データ要素それぞれに対応した最適行動価値関数を学習する深層Ｑ学習により前記相関関係を学習する、請求項６記載のゲーム操作学習プログラム。
【請求項８】
前記学習部は、
前記操作データの内容の変化時から所定フレーム数分だけランダムにサンプリングしてリプレイ記憶した前記行動データと前記操作データを用いてミニバッチ学習で学習する、請求項７記載のゲーム操作学習プログラム。
【請求項９】
前記入力部は、
前記入力データを画像データ形式で前記実行部から入力する、請求項１記載のゲーム操作学習プログラム。
【請求項１０】
前記学習部は、
所定の前記行動データとそれに対応してプレイヤが操作した際の前記操作データとの組合せを教師データとした教師あり学習により前記相関関係を学習する、請求項９記載のゲーム操作学習プログラム。
【請求項１１】
前記学習部は、
畳み込みニューラルネットワークと全結合層を備え、
前記畳み込みニューラルネットワークと全結合層に対する前記教師あり学習として、画像データ形式の前記入力データに対応して出力すべき前記出力データを学習する、請求項１０記載のゲーム操作学習プログラム。
【請求項１２】
前記学習部は、
時系列で入力された所定数の画像データ形式の前記入力データに対応して出力すべき前記出力データを学習する、請求項１１記載のゲーム操作学習プログラム。
【請求項１３】
前記入力部は、
前記第１のゲームキャラクタと前記第２のゲームキャラクタそれぞれの体力値を含む前記入力データを入力する、請求項１乃至１２のいずれか１項に記載のゲーム操作学習プログラム。
【請求項１４】
前記入力部は、
プレイ開始からのフレーム番号を含む前記入力データを入力する、請求項１乃至１３のいずれか１項に記載のゲーム操作学習プログラム。
【請求項１５】
前記入力部は、
仮想３次元空間における前記第１のゲームキャラクタと前記第２のゲームキャラクタとの間の相対距離を含む前記入力データを入力する、請求項１乃至１４のいずれか１項に記載のゲーム操作学習プログラム。
【請求項１６】
前記入力部は、
仮想３次元空間における前記第１のゲームキャラクタと前記第２のゲームキャラクタとの間の相対速度を含む前記入力データを入力する、請求項１乃至１５のいずれか１項に記載のゲーム操作学習プログラム。
【請求項１７】
前記入力部は、
仮想３次元空間における前記第１のゲームキャラクタの向きと前記第２のゲームキャラクタの向きとの間の相対関係を含む前記入力データを入力する、請求項１乃至１６のいずれか１項に記載のゲーム操作学習プログラム。
【請求項１８】
前記入力部は、
仮想３次元空間における前記第１のゲームキャラクタの向きと仮想カメラの撮像方向との間の相対関係を含む前記入力データを入力する、請求項９乃至１２のいずれか１項に記載のゲーム操作学習プログラム。
【請求項１９】
前記入力部は、
前記実行部から入力した第１の入力データを前記学習部の学習に適した所定の第２の入力データに変換し、この第２入力データを前記入力データとして前記学習部に入力する入力データ変換部を有する、請求項１乃至１８のいずれか１項に記載のゲーム操作学習プログラム。
【請求項２０】
前記入力データ変換部は、
前記行動データを１Ｈｏｔベクトルの形態に変換して前記学習部へ入力する、請求項１９記載のゲーム操作学習プログラム。
【請求項２１】
請求項１乃至２０のいずれか１項に記載のゲーム操作学習プログラムにより学習された学習済みモデルを有する、ゲームプログラム。
【請求項２２】
請求項１乃至２０のいずれか１項に記載のゲーム操作学習プログラムにより学習された学習済みモデルを有し、
請求項２１に記載のゲームプログラムと対戦する、ゲームプレイプログラム。
【請求項２３】
情報処理装置に、
第１のゲームキャラクタと第２のゲームキャラクタが同時に動きながら対戦するゲームプログラムを実行する実行部から前記第２のゲームキャラクタの行動データを含む入力データを入力するステップと、
前記第１のゲームキャラクタに対する操作データを含む出力データを前記実行部へ出力するステップと、
機械学習プロセスに基づいて、前記入力データとそれに対応して出力すべき前記出力データの間の相関関係を学習するステップと、
を実行させる、ゲーム操作学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム操作学習プログラム、ゲームプログラム、ゲームプレイプログラム、及びゲーム操作学習方法に関する。
【背景技術】
【０００２】
従来、プレイヤが操作するプレイヤキャラクタと、ゲームＡＩにより自動的に操作される敵ゲームキャラクタとが、リアルタイムに対戦を実行するリアルタイムアクション対戦ゲームが知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６０９９７２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来技術のようなリアルタイムアクション対戦ゲームにおいて、効率的に敵ゲームキャラクタを倒すことができるゲームＡＩや、人間のプレイヤのプレイ内容を模してゲームを操作することができるゲームＡＩの開発が要望されていた。
【０００５】
本発明はこのような問題点に鑑みてなされたものであり、リアルタイムアクション対戦ゲームにおいて、効率的に敵ゲームキャラクタを倒すことができるゲームＡＩや、人間のプレイヤのプレイ内容を模してゲームを操作することができるゲームＡＩを提供することができるゲーム操作学習プログラム、ゲームプログラム、ゲームプレイプログラム、及びゲーム操作学習方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明のゲーム操作学習プログラムは、情報処理装置を、第１のゲームキャラクタと第２のゲームキャラクタが同時に動きながら対戦するゲームプログラムを実行する実行部から前記第２のゲームキャラクタの行動データを含む入力データを入力する入力部、前記第１のゲームキャラクタに対する操作データを含む出力データを前記実行部へ出力する出力部、機械学習プロセスに基づいて、前記入力データとそれに対応して出力すべき前記出力データの間の相関関係を学習する学習部、として機能させる。
【０００７】
上記目的を達成するために、本発明のゲームプログラムは、請求項１乃至２０のいずれか１項に記載のゲーム操作学習プログラムにより学習された学習済みモデルを有する、ゲームプログラムである。
【０００８】
上記目的を達成するために、本発明のゲームプレイプログラムは、請求項１乃至２０のいずれか１項に記載のゲーム操作学習プログラムにより学習された学習済みモデルを有し、前記ゲームプログラムと対戦する、ゲームプレイプログラムである。
【０００９】
上記目的を達成するために、本発明のゲーム操作学習方法は、情報処理装置に、第１のゲームキャラクタと第２のゲームキャラクタが同時に動きながら対戦するゲームプログラムを実行する実行部から前記第２のゲームキャラクタの行動データを含む入力データを入力するステップと、前記第１のゲームキャラクタに対する操作データを含む出力データを前記実行部へ出力するステップと、機械学習プロセスに基づいて、前記入力データとそれに対応して出力すべき前記出力データの間の相関関係を学習するステップと、を実行させる。
【発明の効果】
【００１０】
本発明のゲーム操作学習プログラム等によれば、リアルタイムアクション対戦ゲームにおいて、効率的に敵ゲームキャラクタを倒すことができるゲームＡＩや、人間のプレイヤのプレイ内容を模してゲームを操作することができるゲームＡＩを提供できる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係るゲーム操作学習プログラムのゲームＡＩ学習時において使用される基本システム構成の一例を表すシステムブロック図である。
【図２】ゲームＡＩに学習させる対象のリアルタイムアクション対戦ゲームの一例を表す図である。
【図３】図２中の仮想３次元空間における各ゲームキャラクタ及び仮想カメラの配置関係をＸＹ平面視で表した図である。
【図４】第１実施形態で使用するシステム構成を表す図である。
【図５】第１実施形態のシステム構成における処理機能を表すシステムブロック図である。
【図６】第１実施形態での教師あり学習に用いる教師データセット内容を表す図である。
【図７】第１実施形態において３つのＬＳＴＭを用いるゲームＡＩの構成を表す図である。
【図８】第２実施形態で使用するシステム構成を表す図である。
【図９】第２実施形態のシステム構成における処理機能を表すシステムブロック図である。
【図１０】第２実施形態におけるＤＱＮのネットワーク構成を表す図である。
【図１１】第２実施形態においてＤＱＮに対して行うリプレイ学習の手法を表す図である。
【図１２】第３実施形態で使用するシステム構成を表す図である。
【図１３】第３実施形態のシステム構成における処理機能を表すシステムブロック図である。
【図１４】第３実施形態におけるＣＮＮと全結合層のネットワーク構成を表す図である。
【図１５】ゲーム装置自体が学習部を備える場合のシステムブロック図である。
【図１６】ゲームプレイ装置が学習済みモデルのゲームＡＩだけで運用する場合のシステムブロック図である。
【図１７】ゲーム装置のゲーム実行部が学習済みモデルのゲームＡＩを運用する場合のシステムブロック図である。
【図１８】ゲーム装置とゲームプレイ装置の両方で学習済みモデルのゲームＡＩを運用して対戦する場合のシステムブロック図である。
【図１９】情報処理装置のハードウェア構成の一例を表すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施の形態について図面を参照しつつ説明する。
【００１３】
＜１．ゲームＡＩ学習時における基本システム構成＞
まず、図１を用いて、本実施形態に係るゲーム操作学習プログラムによりゲームＡＩを学習させる際の基本システム構成の一例について説明する。図１に示すように、ゲームＡＩ学習時における基本システムＳ１は、ゲーム装置１と、学習装置２で構成される。なお図中において、ゲーム装置１及び学習装置２のそれぞれの内部に備える構成要素は、いずれも個別のプログラムを実行することで機能するソフトウェアブロックとして記載されている。
【００１４】
ゲーム装置１は、ゲーム機又はコンピュータ等で構成される情報処理装置であり、プレイする対象のゲームそのものを成立させるためのインタラクション処理を実行するゲーム実行部１１を有している。その具体的なインタラクション処理としては、後述する表示装置へのゲーム画面の表示処理や、通常プレイ時に後述するコントローラなどを介して人間のプレイヤから入力された指令に基づく操作処理や、あらかじめ設定されたルールに従って行う判定処理などが含まれている。これらのインタラクション処理をまとめて実行するゲーム実行部１１全体のプログラムがゲームプログラム（特に図示せず）となる。そして、本実施形態において学習対象としている対戦ゲームの場合では、人間のプレイヤと対戦する対戦相手は原初的に上記ゲーム実行部１１が所定のアルゴリズムに基づいて行動させる。
【００１５】
学習装置２は、コンピュータ等で構成される情報処理装置であり、上記ゲーム装置１のゲーム実行部１１により行動する対戦相手に対して人間のプレイヤに代わって対戦する機能を有している。そして、この例における学習装置２は、効率的に対戦するためのゲームＡＩや、人間のプレイヤのプレイ内容を模してゲームを操作するためのゲームＡＩを学習する。この学習装置２は、入力部２１と、出力部２２と、学習部２３とを有している。
【００１６】
入力部２１は、上記ゲーム装置１から対戦相手の行動データやその時点の対戦状況などの各種データを含んだ入力データを入力し、学習部２３へ入力する。
【００１７】
出力部２２は、学習部２３から出力された操作データを含む出力データを、上記ゲーム装置１へ出力する。
【００１８】
学習部２３は、上記入力部２１から入力された対戦相手の行動やその時点の対戦状況などに応じて有効に対戦するためにどのような操作を行うべきか等の戦略上の特徴量をゲームＡＩに学習させる。つまり、上記ゲーム装置１から入力部２１を介して入力した入力データとそれに対応して出力部２２に出力すべき出力データとの間の相関関係を機械学習プロセスに基づいて学習する。この学習部２３は、ゲームＡＩ２４と学習制御部２５を有している。
【００１９】
ゲームＡＩ２４は、上記戦略上の特徴量、つまり入力データと出力データとの間の相関関係そのものを学習する主体としての情報処理要素である。本実施形態では、後述するようにそれぞれニューラルネットワーク（深層学習）を利用した３種類の態様を個別に提案する。
【００２０】
学習制御部２５は、上記ゲームＡＩ２４に対してその態様に応じた適切な手法で学習を行わせる。すなわちゲームＡＩ２４の中核をなすニューラルネットワークに対してそのエッジ重み係数などのパラメータの調整を制御する。
【００２１】
以上説明したシステム構成を基本形態として、後述するようにゲームＡＩ２４の３種類の態様のそれぞれについて必要に応じてシステム構成の細部が変更される。
【００２２】
なお、以上説明した各ソフトウェア処理部における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部（例えば１つの処理部）で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、上述した各処理部の機能は、後述するＣＰＵ５０１（図１９参照）が実行するゲーム操作学習プログラムにより実装されるものであるが、例えばその一部がＡＳＩＣ、ＦＰＧＡ、ＧＰＵ、又はニューロモーフィックデバイス等の専用集積回路、その他の電気回路等の実際の装置により実装されてもよい。さらに、以上説明した各処理部は、全部がゲーム装置側に実装される場合に限定されるものではなく、その一部又は全部が特に図示しない通信ネットワークを介して接続するサーバ側に実装されてもよい。
【００２３】
＜２．学習対象であるリアルタイムアクション対戦ゲームの仕様例＞
以下において、ゲームＡＩ２４に学習させる対象となるゲームの基本的な仕様例について説明する。学習対象とするゲームの概略内容は、図２に示すように、ＸＹＺ直交座標系の仮想３次元空間中で人間のプレイヤが操作する自己ゲームキャラクタ５１（第１のゲームキャラクタ）と、ゲーム装置１のゲーム実行部１１が行動させる敵ゲームキャラクタ５２（第２のゲームキャラクタ）とが同時且つリアルタイムに動いて対戦するリアルタイムアクション対戦ゲームである。このゲームでは、自己ゲームキャラクタ５１はプレイヤの操作に直ちに反応してリアルタイムに動作し、自己ゲームキャラクタ５１と敵ゲームキャラクタ５２とは同時並行して個別に行動する。そして上記ゲームＡＩ２４は、人間のプレイヤに代わって自己ゲームキャラクタ５１を操作し、敵ゲームキャラクタ５２との対戦における有効な操作内容を学習する。
【００２４】
この例のリアルタイムアクション対戦ゲームの仕様としては、自己ゲームキャラクタ５１と敵ゲームキャラクタ５２とが互いに攻撃動作と防御動作を任意のタイミングで繰り出し、当たった攻撃の有効度合いに応じてそれを受けた側の体力値（以下、ＨＰ（Ｈｉｔ  Ｐｏｉｎｔ）という）が減少して先に相手のＨＰを０にした方を勝ちとする。またプレイ開始から所定時間経過した際に勝敗が決まっていない場合には敵ゲームキャラクタ５２の勝利とする。
【００２５】
各ゲームキャラクタ５１，５２は、入力されたアクションデータに対応して移動、方向転換、攻撃、防御、退避などの各種動作（以下、アクションという）をリアルタイムで実行し、それらゲームキャラクタ５１，５２の動きは仮想３次元空間中の仮想カメラ５３で撮像したと想定した２次元のゲーム表示画面に変換、表示される。プレイヤはそのゲーム表示画面を見て敵ゲームキャラクタ５２のアクションに応じた適切なアクションを自己ゲームキャラクタ５１が実行するようコントローラを操作し、その操作情報が自己ゲームキャラクタ５１側のアクションデータとしてゲーム装置１側に入力される。
【００２６】
以上のようなゲームの実行処理において必要となる各種パラメータデータの生成、管理、判定、入出力などのインタラクション処理は、上述したように全てゲーム装置１側のゲーム実行部１１が実行する。そしてそれら各種パラメータデータのうちでその時点のゲームの実行状態を表すのに適宜必要なものを、ゲーム実行部１１が例えばＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅｓ）等のファイルデータ形式で学習装置２へ適宜出力可能となっている。
【００２７】
このようにゲーム装置１のゲーム実行部１１が出力して学習装置２に入力される複数のパラメータデータの全体が、上記図１に示した入力データに相当する。本実施形態のゲーム実行部１１の仕様において、当該入力データに含まれる具体的なパラメータデータの種類としては、例えば以下のようなものがある。
・仮想３次元空間中における仮想カメラ５３の位置座標、撮像方向ベクトル
・自己ゲームキャラクタ５１の位置座標、前方向ベクトル、実行アクション内容、及びＨＰ
・敵ゲームキャラクタ５２の位置座標、前方向ベクトル、実行アクション内容、及びＨＰ
・ゲームがプレイ中であるか否かを表すプレイ開始フラグ
・ゲーム表示画面上でプレイ開始から通して計数したフレーム数
【００２８】
以上のような入力データが入力される学習装置２は、他方で自己ゲームキャラクタ５１を操作するためのアクションデータを出力データとして、入力データと同等のＣＳＶ等のファイルデータ形式（もしくは必要に応じてコントローラの信号出力形式）でゲーム装置１へ出力する。本実施形態のコントローラの仕様において、当該出力データに含まれる具体的なパラメータデータの種類としては、例えば以下のようなものがある。
・左スティックにおけるＸ方向、Ｙ方向の各移動量及び押し込み
・右スティックにおけるＸ方向、Ｙ方向の各移動量及び押し込み
・その他各種ボタンの押下
【００２９】
なお、例えばゲームキャラクタの操作可否を決めるスタミナ値などのパラメータデータのように、適用する対戦ゲームの仕様に合わせて上記以外のデータ要素を入力データに適宜含めてもよい。
【００３０】
＜３．ゲームＡＩに対する入出力データの変換について＞
以上説明したように、ゲーム装置１のゲーム実行部１１は、ゲームの仕様に応じた内容の入力データと出力データを学習装置２との間で送受する。しかし、このようにゲームの仕様に対応した入力データと出力データの内容の全てがゲームＡＩ２４に学習させる戦略上の特徴量に直接関係するものではないため、そのままゲームＡＩ２４に入出力した場合にはその学習処理やタスク処理が冗長となり演算負担が過剰となる。そこで学習装置２の入力部２１及び出力部２２では、ゲーム装置１との間で送受する入力データと出力データをそれぞれゲームＡＩ２４の学習に適した内容に変換するデータ変換を適宜行う。
【００３１】
この例では、上述したデータ内容の入力データに対して、入力部２１が以下のような例えば１０種類のパラメータデータ（以下適宜「ステートデータ」という）に変換する。
・敵ゲームキャラクタ５２のＨＰ
・自己ゲームキャラクタ５１のＨＰ
・ゲームがプレイ中であるか否かを表すプレイ開始フラグ
・ゲーム表示画面上でプレイ開始から通して計数したフレーム数
・２つのゲームキャラクタ５１，５２間の相対距離
・２つのゲームキャラクタ５１，５２間の相対速度
・２つのゲームキャラクタ５１，５２それぞれの向きの間の相対関係を表す内積１
・自己ゲームキャラクタ５１の向きと仮想カメラ５３の撮像方向との間の相対関係を表す内積２
・敵ゲームキャラクタ５２がいずれのアクションを実行しているかを表す敵アクション１〜ｎ
・自己ゲームキャラクタ５１がいずれのアクションを実行しているかを表す自己アクション１〜ｎ
【００３２】
なお、上記のフレーム数は、ゲーム画面上において例えば１／６０秒程度の周期で切り替えて表示されるフレームの表示回数であり、ゲームのプレイ開始から通して計数したフレーム数（フレーム番号）はすなわちゲームプレイ開始からの経過時間に相当する。
【００３３】
また、各ゲームキャラクタ５１，５２間の相対距離、相対速度、及び上記内積１については、各ゲームキャラクタ５１，５２それぞれの仮想３次元空間中において存在している位置座標や向きベクトルから求められる。例えば、上記図２で示した仮想３次元空間中の配置関係を上方からのＸＹ平面視で２次元的に示した図３において、自己ゲームキャラクタ５１の位置座標Ｐｓと敵ゲームキャラクタ５２の位置座標Ｐｅとの間の直線距離の長さで相対距離Ｌが求められ、その時間変化で相対速度が求められる。また、内積１については、自己ゲームキャラクタ５１の前方向ベクトルＶｓと敵ゲームキャラクタ５２の前方向ベクトルＶｅとの内積で求められる。
【００３４】
このようにゲームキャラクタ５１，５２間の相対距離Ｌ、相対速度、及び内積１をゲームＡＩ２４へ入力するステートデータとした理由は、ゲームの仕様として攻撃や退避などの有効度がゲームキャラクタ５１，５２間の相対的な関係等に依存しているためである。なお、例えばその時点における各ゲームキャラクタ５１，５２の絶対位置もゲーム内容に関係する場合にはパラメータデータ（ステートデータ）に含めてもよい。
【００３５】
また、上記内積２については、同じ図３中において、自己ゲームキャラクタ５１の前方向ベクトルＶｓと仮想カメラ５３の撮像方向ベクトルＶｃとの内積で求められる。この内積２をステートデータに含めた理由は、プレイヤ側のコントローラ操作における指示方向の向きが、自己ゲームキャラクタ５１の主観方向ではなくゲーム画面表示上の向きを基準としているためである。なお本実施形態においては、ゲームＡＩ２４の学習の簡易化を目的として、仮想カメラ５３が自己ゲームキャラクタ５１を背後から撮像できるようその仮想３次元空間中における位置座標Ｐｃと撮像方向Ｖｃを固定したものとしている。
【００３６】
また各ゲームキャラクタ５１，５２の実行アクションについては、当該ゲームキャラクタ５１，５２が実行可能なアクションの種類の数（＝ｎ）と同じ次元数（ｎ次元）のいわゆる１Ｈｏｔベクトルに変換される。つまり、ある時点（あるフレーム）において実行できるアクションは１つだけとしている。
【００３７】
なおゲームＡＩ２４が出力するアクションデータの内容については、後述の各実施形態におけるゲームＡＩ２４の学習態様に応じた適宜の内容で出力させるものとする。
【００３８】
また以下においては、ゲーム実行部１１が出力する敵ゲームキャラクタ５２のアクションデータを適宜「行動データ」と称し、ゲームＡＩ２４が出力する自己ゲームキャラクタ５１のアクションデータを適宜「操作データ」と称する。
【００３９】
＜４．ゲームＡＩの第１学習態様：ＬＳＴＭを用いた例＞
（４−１．システム概要）
まず、第１学習態様でゲームＡＩ２４を学習する場合の第１の実施形態について以下に説明する。本実施形態におけるシステム構成Ｓ２は、図４に示すようにゲーム装置１と、学習装置２と、ディスプレイ等の表示装置３と、コントローラ４を有する。表示装置３はゲーム装置１に接続されており、コントローラ４は学習装置２に接続されている。なお、図示する例では、表示装置３及びコントローラ４が有線により各装置１，２と接続された場合を図示しているが、無線により接続されてもよい。
【００４０】
ゲーム装置１及び学習装置２は、例えばデスクトップ型もしくはノート型の汎用コンピュータ（以下、ＰＣという）であり、それぞれファイルデータ形式でのデータの送受が可能となっている。また、学習装置２は、コントローラ４の仕様に対応した形式の操作信号が入力可能となっている。
【００４１】
図５は、本実施形態のシステム構成における処理機能を、上記図１に対応したソフトウェアブロックで示している。この図５において、ゲーム装置１のゲーム実行部１１は、表示装置３にゲーム画面を表示するとともに、学習装置２との間で入力データと出力データをファイルデータ形式で送受している。
【００４２】
学習装置２の入力部２１は、ゲーム実行部１１から入力したファイルデータ形式の入力データを上記ステートデータに変換してゲームＡＩ２４に入力する入力データ変換部２１ａ（図中では「データ変換部」と略記）を備えている。また、学習装置２の出力部２２は、ゲームＡＩ２４が出力した操作データを適宜のファイルデータ形式の出力データに変換してゲーム実行部１１へ出力する出力データ変換部２２ａ（図中では「データ変換部」と略記）を備えている。
【００４３】
またその一方で、ゲーム表示画面を視聴した人間のプレイヤ１００がコントローラ４を介して自己ゲームキャラクタ５１を操作し、その操作信号が学習装置２の学習部２３に入力される。
【００４４】
またゲームＡＩ２４を構成するニューラルネットワークには、時系列データを扱うＬＳＴＭ（Ｌｏｎｇ  Ｓｈｏｒｔ−Ｔｅｒｍ  Ｍｅｍｏｒｙ）を用いている。このＬＳＴＭについては、特に図示しないが、再帰ニューラルネットワーク（ＲＮＮ：Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ ）を備えてその記憶セルに対する各種のゲート操作を行うことにより時系列データの長期依存関係まで学習するものであり、公知の構成、手法を適用すればよく、ここでは詳細な説明を省略する。
【００４５】
以上により本実施形態では、ゲーム装置１と学習装置２がファイルデータ形式で入力データと出力データを送受するとともに、時系列的なゲームの対戦状況に応じた人間のプレイヤ１００の操作内容を模倣するよう教師あり学習によりＬＳＴＭのゲームＡＩ２４を学習させる。
【００４６】
（４−２．教師データセット）
図６は、本実施形態における学習部２３が教師あり学習で用いる教師データセットの内容について説明している。この図６に示す例において、まず学習部２３はゲームプレイの間を通して、入力部２１から変換入力されるステートデータ（図中では「状態ｆ＋敵アクションｆ」（ｆ＝フレーム数）と分けて表記）と、コントローラ４を介してプレイヤ１００から入力された自己アクションデータ（操作データ）をフレーム周期毎で全て記憶する。
【００４７】
そしてプレイ終了後に、所定フレーム（例えばｆ＝１０）における過去直近１０フレーム（ｆ＝１〜１０）分のステートデータと、当該所定フレームの次の１１フレーム目（ｆ＝１１）の自己アクションデータ（操作データ）とを紐付けてこれら組合せたものを教師データセットとし、そのような教師データセットをプレイ中の各フレーム毎に設定する。これにより、過去直近１０フレーム分のゲーム進行状況（敵ゲームキャラクタ５２の行動）を表す時系列のステートデータをゲームＡＩ２４への入力データとし、それに対応したプレイヤ１００の操作内容の自己アクションデータをゲームＡＩ２４への正解データとした組合せで教師データセットが設定される。
【００４８】
（４−３．ＬＳＴＭでの学習態様）
しかし、ＬＳＴＭの特性上、１つのデータ要素しか出力できないため、１つのＬＳＴＭで出力する自己アクションデータのデータ要素を１つに限定する必要がある。これに対して本実施形態では、ゲームＡＩ２４が出力する自己アクションデータのデータ要素を、自己ゲームキャラクタ５１のＸ方向の移動量操作データと、Ｙ方向の移動量操作データと、ボタンの操作データの３つに分け、それぞれに対応した３つのＬＳＴＭで学習する。
【００４９】
なお、同一フレーム中で複数のボタンが押下操作された場合でも、上述したようにステートデータでは各種ボタン操作が１Ｈｏｔベクトルに変換されるため、ボタン操作については１つのＬＳＴＭで対応できる。この場合、複数のボタンが同時に押下操作されたとしても、フレーム周期が十分短いため、連続するフレームで１つずつ順に押下操作されたとして扱っても問題はない。
【００５０】
図７は、３つのＬＳＴＭで自己アクションデータを学習するゲームＡＩ２４の構成を示している。この図７において、所定のｆ〜ｆ＋９フレーム目の時系列ステートデータを各ＬＳＴＭ６１，６２，６３に入力してそれぞれ対応するデータ要素の自己アクションデータをｆ＋１０〜ｆ＋１２フレーム目に出力させる構成となる。なお学習時には、ｆ＋１０フレーム目でコントローラ４から入力された自己アクションデータに対して学習部２３が各データ要素に分解し、それぞれ対応する各ＬＳＴＭ６１，６２，６３でそれぞれ対応するフレームにバックプロパゲーションなどで学習させる。
【００５１】
このとき、Ｘ、Ｙ移動量の各ＬＳＴＭ６１，６２は回帰出力のゲームＡＩ２４となることから、学習制御部２５での学習では例えばＬｉｎｅａｒ関数を活性化関数とし、Ａｄａｍの最適化手法などを利用するとよい。また、ボタン操作のＬＳＴＭ６３はクラスタリング出力のゲームＡＩ２４となることから、学習制御部２５での学習では出力層で例えばＳｏｆｔｍａｘを用い、ＲＭＳＰｒｏｐ（学習率＝０．０１）の最適化手法などを利用するとよい。
【００５２】
（４−４．第１実施形態による効果）
以上説明したように、第１の実施形態におけるゲーム操作学習プログラムは、学習装置２を、敵ゲームキャラクタ５２のアクションデータ（行動データ）を含む入力データをゲーム実行部１１から入力する入力部２１、自己ゲームキャラクタ５１に対するアクションデータ（操作データ）を含む出力データをゲーム実行部１１へ出力する出力部２２、機械学習プロセスに基づいて、入力データとそれに対応して出力すべき出力データの間の相関関係を学習する学習部２３、として機能させる。
【００５３】
これにより、学習部２３で学習したゲームＡＩ２４の学習済みモデルは、入力された敵ゲームキャラクタ５２のアクションデータに対応して適切に自己ゲームキャラクタ５１のアクションデータを出力できるゲームＡＩ２４として機能できる。そしてこのゲームＡＩ２４は、人為的なモデル設計によらず、実際に検出された大量のデータに基づいて生成されるため、効果的な自己アクションデータの出力が可能となる。すなわち、リアルタイムアクション対戦ゲームにおいて、効率的に敵ゲームキャラクタ５２を倒すことができるゲームＡＩ２４や、人間のプレイヤ１００のプレイ内容を模して自己ゲームキャラクタ５１を操作することができるゲームＡＩ２４を提供できる。
【００５４】
また、本実施形態では特に、入力部２１は、入力データをファイルデータ形式でゲーム実行部１１から入力する。これにより、入力部２１は２次元変換されたゲーム表示画面上からではなく、ゲーム実行部１１が仮想３次元空間中で生成した十分明確なデータ値そのままで敵ゲームキャラクタ５２のアクションデータを直接入力できる。つまり、学習部で学習したゲームＡＩ２４は敵ゲームキャラクタ５２のアクションに対する認知機能が向上することになり、結果的に自己ゲームキャラクタ５１に対する適切な応答操作の出力精度を向上できる。
【００５５】
また、本実施形態では特に、学習部２３は、所定の行動データとそれに対応してプレイヤ１００（人間）が操作した際の操作データとの組合せを教師データとした教師あり学習により相関関係を学習する。これにより、人間のプレイヤ１００のプレイ内容を模してゲームを操作できるゲームＡＩ２４を提供できる。特に、例えばランキング上位のプレイヤや有名プレイヤなどのような特定個人のプレイ内容を再現するといったパーソナライズ化されたゲームＡＩ２４の提供も可能となる。
【００５６】
また、本実施形態では特に、学習部２３は、再帰ニューラルネットワーク（ＲＮＮ）を有するＬＳＴＭを備え、ＬＳＴＭに対する教師あり学習として、時系列で入力された直近所定数の入力データ（ステートデータ）に対応して出力すべき出力データを学習する。これにより、例えば動作が長くかかる敵ゲームキャラクタ５２のアクションを判別する場合であっても、時系列的に入力された直近所定数の入力データの全体で抽出される特徴量から学習でき、認知機能を向上できる。
【００５７】
また、本実施形態では特に、学習部２３は、自己ゲームキャラクタ５１の操作において同時に実行し得る操作種類の数以上のＬＳＴＭを用いて学習する。これにより、例えば自己ゲームキャラクタ５１の操作において同時に実行し得る操作種類が複数（この例のＸ移動量、Ｙ移動量、ボタン押下操作の３種）あるような対戦アクションゲームに適用する場合に対しても、出力次元数が少ない（実際には１つのみ）ＬＳＴＭを各操作種類ごとに分担して適用できる。
【００５８】
また、本実施形態では特に、入力部２１は、自己ゲームキャラクタ５１と敵ゲームキャラクタ５２それぞれの体力値（ＨＰ）を含む入力データを入力する。これにより、自己ゲームキャラクタ５１と敵ゲームキャラクタ５２のそれぞれのＨＰの値に依存して変化する環境や状態に対しても出力データとの相関関係を学習でき、より効果的なゲーム操作の学習が可能となる。
【００５９】
また、本実施形態では特に、入力部２１は、プレイ開始からのフレーム番号（フレーム数）を含む入力データを入力する。これにより、プレイ開始からの時間経過に依存して変化する環境や状態に対しても出力データとの相関関係を学習でき、より効果的なゲーム操作の学習が可能となる。
【００６０】
また、本実施形態では特に、入力部２１は、仮想３次元空間における自己ゲームキャラクタ５１と敵ゲームキャラクタ５２との間の相対距離Ｌを含む入力データを入力する。これにより、２つのゲームキャラクタ５１，５２間の相対距離Ｌに依存して変化する環境や状態に対しても出力データとの相関関係を学習でき、より効果的なゲーム操作の学習が可能となる。
【００６１】
また、本実施形態では特に、入力部２１は、仮想３次元空間における自己ゲームキャラクタ５１と敵ゲームキャラクタ５２との間の相対速度を含む入力データを入力する。これにより、２つのゲームキャラクタ５１，５２間の相対速度に依存して変化する環境や状態に対しても出力データとの相関関係を学習でき、より効果的なゲーム操作の学習が可能となる。
【００６２】
また、本実施形態では特に、入力部２１は、仮想３次元空間における自己ゲームキャラクタ５１の向きと敵ゲームキャラクタ５２の向きとの間の相対関係（内積１）を含む入力データを入力する。これにより、２つのゲームキャラクタ５１，５２間の向きの相対関係に依存して変化する環境や状態に対しても出力データとの相関関係を学習でき、より効果的なゲーム操作の学習が可能となる。
【００６３】
また、本実施形態では特に、入力部２１は、仮想３次元空間における自己ゲームキャラクタ５１の向きと仮想カメラ５３の撮像方向との間の相対関係（内積２）を含む入力データを入力する。これにより、ゲーム表示画面上での自己ゲームキャラクタ５１の向きに対する当該自己ゲームキャラクタ５１の操作方向との相関関係も含めて学習部２３が学習できる。
【００６４】
また、本実施形態では特に、入力部２１は、ゲーム実行部１１から直接入力した入力データ（第１の入力データ）を学習部２３の学習に適したステートデータ（第２の入力データ）に変換し、このステートデータを入力データとして学習部２３に入力する入力データ変換部２１ａを有する。これにより、ゲームの仕様に応じた内容であるためにゲーム戦略上の特徴量と関係のない内容も含んだ入力データそのままで入力した場合と比較して、学習処理における演算負担を低減でき、より効率的かつ効果的なゲームＡＩ２４の学習が可能となる。
【００６５】
また、本実施形態では特に、入力データ変換部は、入力データに含まれる敵ゲームキャラクタ５２のアクションデータである行動データを１Ｈｏｔベクトルの形態に変換して学習部２３へ入力する。これにより、敵ゲームキャラクタ５２が取り得る複数の行動種類のうち任意のフレームの時点でいずれか１つだけが入力されるものとし、すなわち複数の行動種類どうしの間の相互的な相関関係をなくすことができるため、ゲームＡＩ２４の学習を簡略化できる。
【００６６】
＜５．ゲームＡＩの第２学習態様：ＤＱＮを用いた例＞
（５−１．システム概要）
次に、第２学習態様でゲームＡＩ２４を学習する場合の第２の実施形態について以下に説明する。本実施形態におけるシステム構成Ｓ３は、図８に示すようにゲーム装置１と、学習装置２と、ディスプレイ等の表示装置３を有する。表示装置３はゲーム装置１に接続されている。
【００６７】
本実施形態の例においても、ゲーム装置１及び学習装置２は例えばＰＣであり、それぞれファイルデータ形式でのデータの送受が可能となっている。なお、表示装置３は、学習中などにおいてユーザがゲーム表示画面を視認するための単なるモニタ用として設けている。
【００６８】
図９は、本実施形態のシステム構成における処理機能を、上記図１に対応したソフトウェアブロックで示している。この図９において、ゲーム装置１のゲーム実行部１１は、表示装置３にゲーム画面を表示するとともに、学習装置２との間で入力データと出力データをファイルデータ形式で送受している。
【００６９】
またゲームＡＩ２４を構成するニューラルネットワークには、深層Ｑネットワーク（ＤＱＮ：Ｄｅｅｐ  Ｑ  Ｎｅｔｗｏｒｋ）を用いている。このＤＱＮについては、出力層における操作データの複数のデータ要素それぞれに対応した最適行動価値関数（予想累積報酬＝Ｑ値）を深層Ｑ学習（深層強化学習）で学習するものであり、公知の構成、手法を適用すればよく、ここでは詳細な説明を省略する。
【００７０】
以上により本実施形態では、ゲーム装置１と学習装置２がファイルデータ形式で入力データと出力データを送受するとともに、ゲームのルールを明示せずとも効果的なゲーム戦略を探索するよう強化学習によりＤＱＮのゲームＡＩ２４を学習させる。
【００７１】
（５−２．ＤＱＮのネットワーク構成）
図１０は、本実施形態における学習部２３が強化学習するＤＱＮのネットワーク構成を表している。この図１０に示す例において、ＤＱＮ６４の入力層は入力データであるステートデータのデータ要素と同数のノード（ユニット）を用意してそれぞれ個別に入力する。また図示する例では、隠れ層を例えば２層としている。また出力層は、モデルの単純化のために操作データのデータ要素と同数のノード（ユニット）で多クラス分類出力するものとし、そのためＸ、Ｙの各移動量を所定量に固定している。
【００７２】
なお、入力データのデータ要素としては、ステートデータの敵ＨＰから内積２までの８つに加えて、それぞれ１Ｈｏｔベクトルで表記された敵アクションと自己アクションの各次元数（アクション種類の数＝ｎ）の合計で設定している。
【００７３】
また、本実施形態において出力する操作データ（出力データ）のデータ要素としては、例えば（Ｙ方向）上移動、（Ｙ方向）下移動、（Ｘ方向）左移動、（Ｘ方向）右移動、弱攻撃、強攻撃、ガード、退避、何もせず、の９つとしており、それぞれに対応して出力するＱ値を順にＱ１値〜Ｑ９値としている。
【００７４】
以上において、ＤＱＮ６４の深層Ｑ学習は、所定のフレームにおける入力データを状態ｓ、出力データを行動ａとした最適行動価値関数Ｑ（ｓ、ａ）を、出力データの各データ要素ごとで別途の標的ネットワークに関数近似するよう教師あり学習する。このとき学習が局所解に陥るのを防ぐために、十分小さい確率ｅ（＝０．２）でランダムな行動ａを実行するｅ−ｇｒｅｅｄｙ法を用い、例えば割引率γ＝０．９９、学習率＝０．０１で学習するとよい。
【００７５】
（５−３．ＤＱＮでの学習態様）
上述したように、本実施形態のＤＱＮ６４では入力データ（状態ｓ）と出力すべき出力データ（行動ａ）との間の相関関係をフレーム単位で学習するが、プレイ中の全てのフレームで状態ｓがゲームＡＩ２４に学習させる戦略上の特徴量に関係するものではない。これに対して本実施形態における学習部２３の学習制御部２５は、ゲームＡＩ２４のＤＱＮ６４が出力する出力データ（操作データ）の内容の変化時から所定数フレーム数分だけ入力データ（行動データ）をランダムにサンプリングしてリプレイ記憶し、それらのデータセットでＤＱＮ６４をミニバッチ学習する。
【００７６】
図１１は、そのようなリプレイ学習の手法を表している。この図１１において、プレイ中のある時点のフレームにおけるステートデータ（入力データ）をｓ１、操作データをａ１として、それ以降のフレームでの操作データａ２、ａ３、・・・が上記操作データａ１と同じ間（変化しない間）は、いくらステートデータｓ２、ｓ３、・・・が変化しても記憶しない。そして操作データａｎが変化（ａｎ≠ａ１）して切り替わった次のフレームからｍフレーム分（例えばｍ＞３０）でステートデータと操作データのデータセットを全て記憶する。
【００７７】
そして、それら記憶したｍ個のデータセットのうちｂ個（例えばｂ＝３０）のデータセットをランダムでサンプリングしてリプレイ記憶する。これらリプレイ記憶したｂ個のデータセットそれぞれについて各データ要素ごとのＱ（ｓ′、ａ′）を算出し、このうちのｓ′を入力データ、Ｑ（ｓ′、ａ′）を正解データとした組合せで教師データセットを作成する。そして、これらｂ個の教師データセットを用いてミニバッチ教師あり学習を行うことで、ＤＱＮ６４の深層強化学習を行う。
【００７８】
（５−４．第２実施形態による効果）
以上説明したように、第２の実施形態におけるゲーム操作学習プログラムによれば、学習部２３は、強化学習により相関関係を学習する。これにより、人為的に教師データセットを用意せずとも効率的に敵ゲームキャラクタ５２を倒すことができるゲームＡＩ２４を提供できる。
【００７９】
また、本実施形態では特に、学習部２３は、深層Ｑネットワーク（ＤＱＮ６４）を備え、この深層Ｑネットワークに対する強化学習として、出力層における操作データの各データ要素それぞれに対応した最適行動価値関数（この例のＱ１値〜Ｑ９値）を学習する深層Ｑ学習により相関関係を学習する。これにより、特徴量の設計も自動的に行えるニューラルネットワークを用いた有効な強化学習を実現できる。
【００８０】
また、本実施形態では特に、学習部２３は、操作データの内容の変化時から所定フレーム数分だけランダムにサンプリングしてリプレイ記憶した行動データと操作データを用いてミニバッチ学習で学習する。これにより、操作データの内容の変化後の所定フレーム数の間、つまり操作の切り替えにより得られると予想される報酬が最も変化する可能性の高い間のフレームだけで学習でき、また時系列の相関を排除するよう学習するため、深層強化学習を効率的に行うことができる。
【００８１】
（５−５．第２実施形態の変形例）
上記第２実施形態では、ゲームＡＩ２４が全てのフレームごとに操作データ（出力データ）を逐次出力でき、それを受信したゲーム実行部１１においても全ての操作データにフレームごとに逐次対応して自己ゲームキャラクタ５１をリアルタイムに操作可能としていることを前提としていた。
【００８２】
しかしながら一般的なリアルタイムアクション対戦ゲームでは、ゲーム実行部１１が短い時間間隔（フレーム間隔）で連続的に出力された操作データを受け付けない仕様のものがある。例えば、所定フレーム時にゲームＡＩ２４側から出力された操作データに対応して、ゲーム実行部１１がその受信時から所定フレーム数の間に渡って当該操作データに対応する動作処理（ゲーム表示画面上での自己ゲームキャラクタ５１の動作切り替え表示や判定処理など）を実行し、その処理中の間においては他の操作データを受け付けない場合がある。
【００８３】
このようなゲーム仕様の場合、上記動作処理の実行後にゲームの状況が変化したとしても、ゲームＡＩ２４から見ればこの状況変化が最初に出力した操作データの影響によるものか、動作処理実行中に出力して実際にはゲーム実行部１１に受け付けられなかった操作データの影響によるものかの区別ができない。このため全ての操作データの切替時を契機としてそのすぐ後の操作データをリプレイ記憶しても、強化学習による有効な学習ができない。
【００８４】
これに対する本実施形態での対処としては、上記図１１で示したｂ個のランダムサンプリングとＱ値の算出を開始するリプレイ記憶のタイミングを、最初の操作データの変化時ではなく、その操作データに対応して実行された動作処理の終了時を契機として開始すればよい（図示省略）。このようにすることで、動作処理中に出力した操作データは無効となり、強化学習への影響を回避できる。
【００８５】
また、ステートデータ（入力データ）中に、その時点で各ゲームキャラクタが実行中の動作処理の種類をパラメータデータに含める（例えば１Ｈｏｔベクトルの形式で含める）ようにすることも有効である。この場合も、その時点のフレームで実行中の動作処理と、同じフレームで出力された操作データとの相関関係を効果的に学習できる。
【００８６】
＜６．ゲームＡＩの第３学習態様：ＣＮＮを用いた例＞
（６−１．システム概要）
次に、第３学習態様でゲームＡＩ２４を学習する場合の第３の実施形態について以下に説明する。本実施形態におけるシステム構成Ｓ４は、図１２に示すようにゲーム装置１と、学習装置２と、ディスプレイ等の表示装置３と、コントローラ４と、リアルカメラ５を有する。表示装置３はゲーム装置１に接続されており、コントローラ４とリアルカメラ５は学習装置２に接続されている。
【００８７】
本実施形態では、ゲーム装置１が例えばゲーム機であり、学習装置２は例えばＰＣであり、この学習装置２は一方的にコントローラ４の仕様に対応した操作信号形式で出力データをゲーム装置１へ出力可能となっている。
【００８８】
図１３は、本実施形態のシステム構成における処理機能を、上記図１に対応したソフトウェアブロックで示している。この図１３において、ゲーム装置１は、ゲーム実行部１１が表示装置３にゲーム画面を表示するとともに、コントローラ４の仕様に対応した操作信号形式の出力データを学習装置２から受信する。
【００８９】
また、リアルカメラ５が表示装置３のゲーム表示画面を撮像し、その撮像した画像データを入力データとして学習装置２の学習部２３に入力する。
【００９０】
またその一方で、ゲーム表示画面を視聴した人間のプレイヤ１００がコントローラ４を介して自己ゲームキャラクタ５１を操作し、その操作信号が学習装置２の学習部２３に入力される。
【００９１】
またゲームＡＩ２４を構成するニューラルネットワークには、画像認識用の畳み込みニューラルネットワーク（ＣＮＮ：Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）と全結合層（図中では略記）を用いている。ＣＮＮについては、多数のフィルタで画像データの畳み込みを行う畳み込み層と、上記フィルタそれぞれで畳み込んだ結果の２次元出力に対してデータ圧縮するプーリング層とを積層したものであり、さらに出力層付近の全結合層で元の画像データの特徴量を学習する。これらＣＮＮと全結合層については、公知の構成、手法を適用すればよく、ここでは詳細な説明を省略する。
【００９２】
以上により本実施形態では、ゲーム機であるゲーム装置１から表示装置３とリアルカメラ５とを介して学習装置２へゲーム表示画面の画像データの形式の入力データを入力している。また、ゲーム装置１は、ゲームＡＩ２４が出力した操作データを出力部２２の出力データ変換部２２ａでコントローラ４の操作信号形式に変換してゲーム装置１に出力している。そしてゲーム装置１の学習部２３は、ゲーム表示画面で表示されるゲームの対戦状況に応じた人間のプレイヤ１００の操作内容を模倣するよう教師あり学習によりＣＮＮと全結合層のゲームＡＩ２４を学習させる。
【００９３】
（６−２．ＣＮＮと全結合層のネットワーク構成）
図１４は、本実施形態における学習部２３が教師あり学習するＣＮＮと全結合層のネットワーク構成を表している。この図１４に示す例では、最初にＣＮＮ６５に入力する画像データとして、それぞれ７２×１２８ピクセルで時系列順に表示された１０フレーム分の画像データを入力する。この入力画像データの１０フレームは、連続して表示されたフレームであってもよいし、十分短い時間間隔で間引きされたフレームであってもよい。
【００９４】
そして上記入力画像データは、最初の畳み込み層１で３２枚のフィルタ（縦ピクセル数×横ピクセル数＝７２×１２８）で畳み込みされ、次にプーリング層１で上記３２枚のフィルタの各畳み込み出力がデータ圧縮（３６×６４）される。この圧縮データが、次の畳み込み層２で６４枚のフィルタ（３６×６４）で畳み込みされ、次にプーリング層２で上記６４枚のフィルタの各畳み込み出力がデータ圧縮（３６×６４）される。そしてこの圧縮データの全てのピクセルに対して、出力層における６つの出力ノードが全結合層６６で全結合する。なお、６つの出力ノードの内訳は、ボタン選択が５つと移動量が１つである。
【００９５】
そして本実施形態では、学習部２３の学習制御部２５が、１０フレーム分の画像データと、それに対応して人間のプレイヤ１００からコントローラ４を介して入力された操作データとの組合せで教師データセットとし、これを用いてゲームＡＩ２４に対し教師あり学習を行う。これにより、ゲーム表示画面の画面データからゲーム戦略上有効な特徴量を抽出し、対応する操作データの出力が可能となる。
【００９６】
なおこの学習において、移動量を出力する１つの出力ノードでは回帰出力となることから、学習制御部２５での学習では例えばＬｉｎｅａｒ関数を活性化関数とし、Ａｄａｍの最適化手法などを利用するとよい。また、ボタン選択の５つの出力ノードではクラスタリング出力となることから、学習制御部２５での学習では出力層で例えばＳｏｆｔｍａｘを用い、ＲＭＳＰｒｏｐ（学習率＝０．０１）の最適化手法などを利用するとよい。
【００９７】
（６−３．第３実施形態による効果）
以上説明したように、第３の実施形態におけるゲーム操作学習プログラムによれば、入力部２１として機能する表示装置３、リアルカメラ５、及びＣＮＮ６５は、入力データを画像データ形式でゲーム実行部１１から入力する。これにより、ゲーム画面の表示だけが可能であってファイルデータ形式でのリアルタイムなデータ出力ができない市販のゲーム機に対しても、例えば表示装置３上のゲーム表示画面を撮像した画像データから敵ゲームキャラクタ５２のアクションデータ等を入力でき、ゲーム操作学習プログラムの汎用性が向上する。
【００９８】
また、本実施形態では特に、学習部２３は、所定の行動データとそれに対応してプレイヤ１００が操作した際の操作データとの組合せを教師データとした教師あり学習により相関関係を学習する。これにより、人間のプレイヤ１００のプレイ内容を模してゲームを操作できるゲームＡＩ２４を提供できる。特に、例えばランキング上位のプレイヤや有名プレイヤなどのような特定個人のプレイ内容を再現するといったパーソナライズ化されたゲームＡＩ２４の提供も可能となる。
【００９９】
また、本実施形態では特に、学習部２３は、畳み込みニューラルネットワーク（ＣＮＮ６５）と全結合層６６を備え、畳み込みニューラルネットワーク６５と全結合層６６に対する教師あり学習として、画像データ形式の入力データに対応して出力すべき出力データを学習する。これにより、画像データ形式の入力データと出力データとを組合せた教師データを用いた教師あり学習を実現できる。
【０１００】
また、本実施形態では特に、学習部２３は、時系列で入力された所定フレーム数の画像データ形式の入力データに対応して出力すべき出力データを学習する。これにより、入力データの時系列的な変化に対応して出力データとの相関関係を学習させることができ、リアルタイムに環境が変化するゲームに対しての操作の学習を効果的に行うことができる。
【０１０１】
＜７．変形例、運用例等＞
なお、本発明は、上記の実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。また、上記の実施形態において学習を終えたゲームＡＩ２４は、様々な運用が可能である。以下、そのような変形例、運用例について説明する。
【０１０２】
（７−１．ゲーム装置自体が学習部を備える場合）
例えば、上記の各実施形態では、ゲーム実行部１１を備えるゲーム装置１と、ゲームＡＩ２４を含む学習部２３を備える学習装置２が別体で構成され、互いに対戦する態様でゲームＡＩ２４を学習していたが、本発明はこれに限られない。例えば図１５に示すように、ゲーム装置１が学習部２３を備えるシステム構成Ｓ５としてもよい。この場合にはゲーム装置１が表示装置３にゲーム画面を表示するとともにコントローラ４を介して人間のプレイヤ１００の操作データを入力する。
【０１０３】
そしてゲームＡＩ２４の学習については、教師あり学習と強化学習の２通りの手法が考えられる。例えば、ゲーム実行部１１に元から記憶されているアルゴリズムで敵ゲームキャラクタ５２を行動させ、それに対応してプレイヤ１００が自己ゲームキャラクタ５１を操作した際の操作データに基づいてゲームＡＩ２４を教師あり学習させる手法が１つある。この教師あり学習の場合には、ゲームＡＩ２４の主観から見て、ゲーム実行部１１が行動させるゲームキャラクタが敵ゲームキャラクタ５２に相当し、プレイヤ１００が操作するゲームキャラクタが自己ゲームキャラクタ５１に相当する。
【０１０４】
または、ゲーム実行部１１ではゲームキャラクタを行動させず、プレイヤ１００とゲームＡＩ２４との対戦においてゲームＡＩ２４に強化学習させる手法も１つある。この強化学習の場合には、ゲームＡＩ２４の主観から見て、プレイヤ１００が操作するゲームキャラクタが敵ゲームキャラクタ５２に相当し、ゲームＡＩ２４自身が操作するゲームキャラクタが自己ゲームキャラクタ５１に相当する。
【０１０５】
なお、この例においては、ゲーム実行部１１と、入力部２１及び出力部２２との間で送受される入力データ及び出力データは、ファイルデータ形式であってもよいし、または共有するメモリ等の記憶装置上に直接読み書きできるデータ形式であってもよい。
【０１０６】
（７−２．学習済みモデルのゲームＡＩの運用例）
例えばゲームＡＩ２４の学習が適切に進んだ結果、当該ゲームＡＩ２４が十分な対戦機能を有する学習済みモデルとなった場合には、図１６に示すように、そのゲームＡＩ２４に対戦タスクを実行させてゲームプレイ装置２６として運用することが可能となる。なお、ゲームプレイ装置２６は例えばコンピュータ等で構成される。この場合、ゲームＡＩ２４の主観から見て、ゲームプレイ装置２６のゲームＡＩ２４自身が操作するゲームキャラクタが自己ゲームキャラクタ５１に相当し、ゲーム装置１のゲーム実行部１１により動作するゲームキャラクタが敵ゲームキャラクタ５２に相当する。なお、ゲームプレイ装置２６で実行されるプログラム（ゲームＡＩ２４を含む）がゲームプレイプログラムに相当する。なお、特に図示しないが、学習済みモデルとなったゲームＡＩ２４に対してもさらにオンライン学習させる目的でゲームプレイ装置２６に学習制御部２５を実装したままとしてもよい。
【０１０７】
または、図１７に示すように、ゲーム装置１のゲーム実行部１１がアルゴリズムに代えて学習済みモデルのゲームＡＩ２４（及びオンライン学習用の学習制御部２５）でゲームキャラクタを動作させてもよい。この場合、プレイヤ１００側の主観で見た敵ゲームキャラクタ５２がゲームＡＩ２４により動作することになる。なお、ゲーム装置１のゲーム実行部１１で実行されるプログラム（ゲームＡＩ２４を含む）がゲームプログラムに相当する。
【０１０８】
または、図１８に示すように、ゲーム装置１（ゲーム実行部１１を備える側）とゲームプレイ装置２６の両方で学習済みモデルのゲームＡＩ２４を備え、それぞれでゲームキャラクタを動作させて対戦してもよい。
【０１０９】
以上の学習済みモデルのゲームＡＩ２４の運用において、例えばランキング上位のプレイヤや有名プレイヤなどのような特定個人のプレイ内容を再現するといったパーソナライズ化されたゲームＡＩ２４や、ゲームメーカーがデフォルトで学習させたゲームＡＩ２４などのようにその学習内容でゲームＡＩ２４を使い分けることもできる。この場合には、学習内容に個性のあるゲームＡＩ２４どうしの対戦や、難易度に差のある複数のゲームＡＩ２４をプレイヤ１００により使い分けて対戦するなどの多様な組合せが可能となる。
【０１１０】
なお、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【０１１１】
＜８．ゲームプレイ装置のハードウェア構成＞
次に、図１９を用いて、上記で説明したＣＰＵ５０１が実行するプログラムにより実装された各処理部を実現する学習装置２のハードウェア構成の一例について説明する。なお、ゲーム装置１やゲームプレイ装置２６が同様のハードウェア構成を有してもよい。
【０１１２】
図１９に示すように、学習装置２（ゲーム装置１、ゲームプレイ装置２６）は、例えば、ＣＰＵ５０１と、ＲＯＭ５０３と、ＲＡＭ５０５と、ＧＰＵ５０６と、例えばＡＳＩＣ又はＦＰＧＡ等の特定の用途向けに構築された専用集積回路５０７と、入力装置５１３と、出力装置５１５と、記録装置５１７と、ドライブ５１９と、接続ポート５２１と、通信装置５２３を有する。これらの構成は、バス５０９や入出力インターフェース５１１等を介し相互に信号を伝達可能に接続されている。
【０１１３】
ゲーム操作学習プログラム、ゲームプレイプログラム、ゲームプログラム（以下「ゲーム操作学習プログラム等」という）は、例えば、ＲＯＭ５０３やＲＡＭ５０５、記録装置５１７等に記録しておくことができる。
【０１１４】
また、ゲーム操作学習プログラム等は、例えば、フレキシブルディスクなどの磁気ディスク、各種のＣＤ、ＭＯディスク、ＤＶＤ等の光ディスク、半導体メモリ等のリムーバブルな記録媒体５２５に、一時的又は永続的（非一時的）に記録しておくこともできる。このような記録媒体５２５は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらの記録媒体５２５に記録されたゲーム操作学習プログラム等は、ドライブ５１９により読み出されて、入出力インターフェース５１１やバス５０９等を介し上記記録装置５１７に記録されてもよい。
【０１１５】
また、ゲーム操作学習プログラム等は、例えば、ダウンロードサイト、他のコンピュータ、他の記録装置等（図示せず）に記録しておくこともできる。この場合、ゲーム操作学習プログラム等は、ＬＡＮやインターネット等のネットワークＮＷを介し転送され、通信装置５２３がこのプログラムを受信する。そして、通信装置５２３が受信したプログラムは、入出力インターフェース５１１やバス５０９等を介し上記記録装置５１７に記録されてもよい。
【０１１６】
また、ゲーム操作学習プログラム等は、例えば、適宜の外部接続機器５２７に記録しておくこともできる。この場合、ゲーム操作学習プログラム等は、適宜の接続ポート５２１を介し転送され、入出力インターフェース５１１やバス５０９等を介し上記記録装置５１７に記録されてもよい。
【０１１７】
そして、ＣＰＵ５０１が、上記記録装置５１７に記録されたプログラムに従い各種の処理を実行することにより、前述の入力部２１、出力部２２、学習部２３等による処理（ゲーム装置１においてはゲーム実行部１１等による処理）が実現される。この際、ＣＰＵ５０１は、例えば、上記記録装置５１７からプログラムを、直接読み出して実行してもよく、ＲＡＭ５０５に一旦ロードした上で実行してもよい。更にＣＰＵ５０１は、例えば、プログラムを通信装置５２３やドライブ５１９、接続ポート５２１を介し受信する場合、受信したプログラムを記録装置５１７に記録せずに直接実行してもよい。
【０１１８】
また、ＣＰＵ５０１は、コントローラ４から入力される信号に加えて、必要に応じて、例えばマウス、キーボード、マイク等の入力装置５１３から入力する信号や情報に基づいて各種の処理を行ってもよい。
【０１１９】
ＧＰＵ５０６は、ＣＰＵ５０１からの指示に応じて例えばレンダリング処理などの画像表示のための処理を行う。
【０１２０】
そして、ＣＰＵ５０１及びＧＰＵ５０６は、上記の処理を実行した結果を、表示装置３に出力すると共に、必要に応じて、例えばスピーカーやヘッドフォン等の音声出力部（図示せず）を含む、出力装置５１５から出力する。さらにＣＰＵ５０１及びＧＰＵ５０６は、必要に応じてこの処理結果を通信装置５２３や接続ポート５２１を介し送信してもよく、上記記録装置５１７や記録媒体５２５に記録させてもよい。
【符号の説明】
【０１２１】
１            ゲーム装置（情報処理装置）
２            学習装置（情報処理装置）
３            表示装置
４            コントローラ
５            リアルカメラ
１１          ゲーム実行部（実行部）
２１          入力部
２１ａ        入力データ変換部
２２          出力部
２２ａ        出力データ変換部
２３          学習部
２４          ゲームＡＩ
２５          学習制御部
２６          ゲームプレイ装置
５１          自己ゲームキャラクタ（第１のゲームキャラクタ）
５２          敵ゲームキャラクタ（第２のゲームキャラクタ）
５３          仮想カメラ
６１〜６３    ＬＳＴＭ
６４          ＤＱＮ（深層Ｑネットワーク）
６５          ＣＮＮ（畳み込みニューラルネットワーク）
６６          全結合層
１００        プレイヤ
Ｓ１〜Ｓ８    システム
【図１】
2020166528.tif 000003
【図２】
2020166528.tif 000004
【図３】
2020166528.tif 000005
【図４】
2020166528.tif 000006
【図５】
2020166528.tif 000007
【図６】
2020166528.tif 000008
【図７】
2020166528.tif 000009
【図８】
2020166528.tif 000010
【図９】
2020166528.tif 000011
【図１０】
2020166528.tif 000012
【図１１】
2020166528.tif 000013
【図１２】
2020166528.tif 000014
【図１３】
2020166528.tif 000015
【図１４】
2020166528.tif 000016
【図１５】
2020166528.tif 000017
【図１６】
2020166528.tif 000018
【図１７】
2020166528.tif 000019
【図１８】
2020166528.tif 000020
【図１９】
2020166528.tif 000021