(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-20
(45)【発行日】2023-09-28
(54)【発明の名称】ゲーム操作学習プログラム、ゲームプログラム、ゲームプレイプログラム、及びゲーム操作学習方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20230921BHJP
G06N 3/044 20230101ALI20230921BHJP
A63F 13/55 20140101ALN20230921BHJP
【FI】
G06N20/00 130
G06N3/044
A63F13/55
(21)【出願番号】P 2019066085
(22)【出願日】2019-03-29
【審査請求日】2022-01-26
【新規性喪失の例外の表示】特許法第30条第2項適用 平成31年3月4日に、2019年度人工知能学会全国大会(第33回)の論文投稿サイト https://jsai.confit.atlas.jp/login?referrer=http%3A%2F%2Fwww.ai-gakkai.or.jp%2Fjsai2019%2Fcfpにて論文を投稿。
(73)【特許権者】
【識別番号】595000427
【氏名又は名称】株式会社コーエーテクモゲームス
(74)【代理人】
【識別番号】110003096
【氏名又は名称】弁理士法人第一テクニカル国際特許事務所
(72)【発明者】
【氏名】宮野 友弥
【審査官】金田 孝之
(56)【参考文献】
【文献】特開2002-273045(JP,A)
【文献】特開2019-012555(JP,A)
【文献】特開2011-242923(JP,A)
【文献】国際公開第2019/060125(WO,A1)
【文献】特開2018-130183(JP,A)
【文献】特開2018-124639(JP,A)
【文献】特開平06-083796(JP,A)
【文献】三宅 陽一郎,人工知能の作り方,初版,日本,株式会社技術評論社,2017年01月05日,p. 225-248,ISBN:978-4-7741-8627-6
【文献】山田 宏尚,増補改訂版 図解でわかる はじめてのデジタル画像処理,第2版,日本,株式会社技術評論社,2018年03月06日,p. 216-234,ISBN:978-4-7741-9575-9
【文献】牧野 浩二,算数&ラズパイから始めるディープ・ラーニング,日本,CQ出版株式会社,2018年03月01日,p. 168-170,ISBN:978-4-7898-4706-3
【文献】小川 一太郎、他8名,自動運転車のためのDeep Q-Networkを用いた譲り合いの獲得,電子情報通信学会技術研究報告[online],Vol. 118, No. 492,日本,一般社団法人電子情報通信学会,2019年03月04日,p. 37-42
【文献】Yubin Liang、池田 心,リズムゲームの上達を支援するコンテンツ自動生成法,情報処理学会研究報告 ゲーム情報学(GI)2018-GI-39[online],日本,情報処理学会,2018年02月23日,p. 1-7,ISSN: 2188-8736
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
A63F 13/00-13/98
(57)【特許請求の範囲】
【請求項1】
情報処理装置を、
第1のゲームキャラクタと第2のゲームキャラクタが同時に動きながら対戦するゲームプログラムを実行する実行部から前記第2のゲームキャラクタの行動データを含む入力データを入力する入力部、
前記第1のゲームキャラクタに対する操作データを含む出力データを前記実行部へ出力する出力部、
機械学習プロセスに基づいて、前記入力データとそれに対応して出力すべき前記出力データの間の相関関係を学習する学習部、
として機能させ、
前記学習部は、
前記入力データとそれに対応してプレイヤが操作した際の前記操作データとの組合せを教師データとしてフレーム毎に設定し、
前記第1のゲームキャラクタに対し複数の操作が第1のフレームで同時になされた場合、前記第1のフレームで前記複数の操作のうち
の1つの操作である第1の操作がなされたものとして学習し、前記第1のフレームと連続する第2のフレームで前記複数の操作のうち
前記第1の操作以外の他の1つの操作である第2の操作がなされたものとして学習する、
ゲーム操作学習プログラム。
【請求項2】
前記学習部は、
前記操作データの操作の種類ごとに対応したLSTMを用いて学習し、
前記第1のゲームキャラクタに対し
ボタン操作である第1種類に属する前記複数の操作が前記第1のフレームで同時になされた場合、前記第1のフレームで前記第1の操作がなされたものとして前記第1種類に対応する第1のLSTMにより学習し、前記第2のフレームで前記第2の操作がなされたものとして前記第1のLSTMにより学習する、
請求項1記載のゲーム操作学習プログラム。
【請求項3】
前記学習部は、
前記操作データの操作の種類ごとに対応したLSTMを用いて学習し、
前記第1のゲームキャラクタに対し前記複数の操作が前記第1のフレームで同時になされた場合、前記第1のフレームで前記第1の操作がなされたものとして前記第1の操作が属する種類に対応する第1のLSTMにより学習し、前記第2のフレームで前記第2の操作がなされたものとして前記第2の操作が属する種類に対応する第2のLSTMにより学習する、
請求項1記載のゲーム操作学習プログラム。
【請求項4】
前記学習部は、
所定のフレームにおける過去の所定フレーム数分の入力データと、前記所定のフレームの次のフレームにおける前記操作データとを紐付けて組み合わせたものを教師データセットとし、前記対戦中のフレーム毎に設定する、
請求項1記載のゲーム操作学習プログラム。
【請求項5】
情報処理装置を、
第1のゲームキャラクタと第2のゲームキャラクタが同時に動きながら対戦するゲームプログラムを実行する実行部から前記第2のゲームキャラクタの行動データを含む入力データを入力する入力部、
前記第1のゲームキャラクタに対する操作データを含む出力データを前記実行部へ出力する出力部、
機械学習プロセスに基づいて、前記入力データとそれに対応して出力すべき前記出力データの間の相関関係を学習する学習部、
として機能させ、
前記学習部は、
強化学習として、前記操作データに対応して実行された前記第1のゲームキャラクタの動作処理の終了時から所定フレームまでにおける前記入力データ及び前記出力データの最適行動価値関数を学習する、
ゲーム操作学習プログラム。
【請求項6】
前記学習部は、
前記操作データに対応して実行された前記第1のゲームキャラクタの動作処理の終了時を契機として、前記動作処理の終了時から所定フレーム数分だけランダムにサンプリングしてリプレイ記憶した前記行動データと前記操作データを用いてミニバッチ学習で学習する、
請求項5に記載のゲーム操作学習プログラム。
【請求項7】
情報処理装置に、
第1のゲームキャラクタと第2のゲームキャラクタが同時に動きながら対戦するゲームプログラムを実行する実行部から前記第2のゲームキャラクタの行動データを含む入力データを入力するステップと、
前記第1のゲームキャラクタに対する操作データを含む出力データを前記実行部へ出力するステップと、
機械学習プロセスに基づいて、前記入力データとそれに対応して出力すべき前記出力データの間の相関関係を学習するステップと、
を実行させ、
前記学習するステップでは、
前記入力データとそれに対応してプレイヤが操作した際の前記操作データとの組合せを教師データとしてフレーム毎に設定し、
前記第1のゲームキャラクタに対し複数の操作が第1のフレームで同時になされた場合、前記第1のフレームで前記複数の操作のうち
の1つの操作である第1の操作がなされたものとして学習し、前記第1のフレームと連続する第2のフレームで前記複数の操作のうち
前記第1の操作以外の他の1つの操作である第2の操作がなされたものとして学習する、
ゲーム操作学習方法。
【請求項8】
情報処理装置に、
第1のゲームキャラクタと第2のゲームキャラクタが同時に動きながら対戦するゲームプログラムを実行する実行部から前記第2のゲームキャラクタの行動データを含む入力データを入力するステップと、
前記第1のゲームキャラクタに対する操作データを含む出力データを前記実行部へ出力するステップと、
機械学習プロセスに基づいて、前記入力データとそれに対応して出力すべき前記出力データの間の相関関係を学習するステップと、
を実行させ、
前記学習するステップでは、
強化学習として、前記操作データに対応して実行された前記第1のゲームキャラクタの動作処理の終了時から所定フレームまでにおける前記入力データ及び前記出力データの最適行動価値関数を学習する、
ゲーム操作学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム操作学習プログラム、ゲームプログラム、ゲームプレイプログラム、及びゲーム操作学習方法に関する。
【背景技術】
【0002】
従来、プレイヤが操作するプレイヤキャラクタと、ゲームAIにより自動的に操作される敵ゲームキャラクタとが、リアルタイムに対戦を実行するリアルタイムアクション対戦ゲームが知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記従来技術のようなリアルタイムアクション対戦ゲームにおいて、効率的に敵ゲームキャラクタを倒すことができるゲームAIや、人間のプレイヤのプレイ内容を模してゲームを操作することができるゲームAIの開発が要望されていた。
【0005】
本発明はこのような問題点に鑑みてなされたものであり、リアルタイムアクション対戦ゲームにおいて、効率的に敵ゲームキャラクタを倒すことができるゲームAIや、人間のプレイヤのプレイ内容を模してゲームを操作することができるゲームAIを提供することができるゲーム操作学習プログラム、ゲームプログラム、ゲームプレイプログラム、及びゲーム操作学習方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明のゲーム操作学習プログラムは、情報処理装置を、第1のゲームキャラクタと第2のゲームキャラクタが同時に動きながら対戦するゲームプログラムを実行する実行部から前記第2のゲームキャラクタの行動データを含む入力データを入力する入力部、前記第1のゲームキャラクタに対する操作データを含む出力データを前記実行部へ出力する出力部、機械学習プロセスに基づいて、前記入力データとそれに対応して出力すべき前記出力データの間の相関関係を学習する学習部、として機能させる。
【0007】
上記目的を達成するために、本発明のゲームプログラムは、請求項1乃至20のいずれか1項に記載のゲーム操作学習プログラムにより学習された学習済みモデルを有する、ゲームプログラムである。
【0008】
上記目的を達成するために、本発明のゲームプレイプログラムは、請求項1乃至20のいずれか1項に記載のゲーム操作学習プログラムにより学習された学習済みモデルを有し、前記ゲームプログラムと対戦する、ゲームプレイプログラムである。
【0009】
上記目的を達成するために、本発明のゲーム操作学習方法は、情報処理装置に、第1のゲームキャラクタと第2のゲームキャラクタが同時に動きながら対戦するゲームプログラムを実行する実行部から前記第2のゲームキャラクタの行動データを含む入力データを入力するステップと、前記第1のゲームキャラクタに対する操作データを含む出力データを前記実行部へ出力するステップと、機械学習プロセスに基づいて、前記入力データとそれに対応して出力すべき前記出力データの間の相関関係を学習するステップと、を実行させる。
【発明の効果】
【0010】
本発明のゲーム操作学習プログラム等によれば、リアルタイムアクション対戦ゲームにおいて、効率的に敵ゲームキャラクタを倒すことができるゲームAIや、人間のプレイヤのプレイ内容を模してゲームを操作することができるゲームAIを提供できる。
【図面の簡単な説明】
【0011】
【
図1】一実施形態に係るゲーム操作学習プログラムのゲームAI学習時において使用される基本システム構成の一例を表すシステムブロック図である。
【
図2】ゲームAIに学習させる対象のリアルタイムアクション対戦ゲームの一例を表す図である。
【
図3】
図2中の仮想3次元空間における各ゲームキャラクタ及び仮想カメラの配置関係をXY平面視で表した図である。
【
図4】第1実施形態で使用するシステム構成を表す図である。
【
図5】第1実施形態のシステム構成における処理機能を表すシステムブロック図である。
【
図6】第1実施形態での教師あり学習に用いる教師データセット内容を表す図である。
【
図7】第1実施形態において3つのLSTMを用いるゲームAIの構成を表す図である。
【
図8】第2実施形態で使用するシステム構成を表す図である。
【
図9】第2実施形態のシステム構成における処理機能を表すシステムブロック図である。
【
図10】第2実施形態におけるDQNのネットワーク構成を表す図である。
【
図11】第2実施形態においてDQNに対して行うリプレイ学習の手法を表す図である。
【
図12】第3実施形態で使用するシステム構成を表す図である。
【
図13】第3実施形態のシステム構成における処理機能を表すシステムブロック図である。
【
図14】第3実施形態におけるCNNと全結合層のネットワーク構成を表す図である。
【
図15】ゲーム装置自体が学習部を備える場合のシステムブロック図である。
【
図16】ゲームプレイ装置が学習済みモデルのゲームAIだけで運用する場合のシステムブロック図である。
【
図17】ゲーム装置のゲーム実行部が学習済みモデルのゲームAIを運用する場合のシステムブロック図である。
【
図18】ゲーム装置とゲームプレイ装置の両方で学習済みモデルのゲームAIを運用して対戦する場合のシステムブロック図である。
【
図19】情報処理装置のハードウェア構成の一例を表すブロック図である。
【発明を実施するための形態】
【0012】
以下、本発明の一実施の形態について図面を参照しつつ説明する。
【0013】
<1.ゲームAI学習時における基本システム構成>
まず、
図1を用いて、本実施形態に係るゲーム操作学習プログラムによりゲームAIを学習させる際の基本システム構成の一例について説明する。
図1に示すように、ゲームAI学習時における基本システムS1は、ゲーム装置1と、学習装置2で構成される。なお図中において、ゲーム装置1及び学習装置2のそれぞれの内部に備える構成要素は、いずれも個別のプログラムを実行することで機能するソフトウェアブロックとして記載されている。
【0014】
ゲーム装置1は、ゲーム機又はコンピュータ等で構成される情報処理装置であり、プレイする対象のゲームそのものを成立させるためのインタラクション処理を実行するゲーム実行部11を有している。その具体的なインタラクション処理としては、後述する表示装置へのゲーム画面の表示処理や、通常プレイ時に後述するコントローラなどを介して人間のプレイヤから入力された指令に基づく操作処理や、あらかじめ設定されたルールに従って行う判定処理などが含まれている。これらのインタラクション処理をまとめて実行するゲーム実行部11全体のプログラムがゲームプログラム(特に図示せず)となる。そして、本実施形態において学習対象としている対戦ゲームの場合では、人間のプレイヤと対戦する対戦相手は原初的に上記ゲーム実行部11が所定のアルゴリズムに基づいて行動させる。
【0015】
学習装置2は、コンピュータ等で構成される情報処理装置であり、上記ゲーム装置1のゲーム実行部11により行動する対戦相手に対して人間のプレイヤに代わって対戦する機能を有している。そして、この例における学習装置2は、効率的に対戦するためのゲームAIや、人間のプレイヤのプレイ内容を模してゲームを操作するためのゲームAIを学習する。この学習装置2は、入力部21と、出力部22と、学習部23とを有している。
【0016】
入力部21は、上記ゲーム装置1から対戦相手の行動データやその時点の対戦状況などの各種データを含んだ入力データを入力し、学習部23へ入力する。
【0017】
出力部22は、学習部23から出力された操作データを含む出力データを、上記ゲーム装置1へ出力する。
【0018】
学習部23は、上記入力部21から入力された対戦相手の行動やその時点の対戦状況などに応じて有効に対戦するためにどのような操作を行うべきか等の戦略上の特徴量をゲームAIに学習させる。つまり、上記ゲーム装置1から入力部21を介して入力した入力データとそれに対応して出力部22に出力すべき出力データとの間の相関関係を機械学習プロセスに基づいて学習する。この学習部23は、ゲームAI24と学習制御部25を有している。
【0019】
ゲームAI24は、上記戦略上の特徴量、つまり入力データと出力データとの間の相関関係そのものを学習する主体としての情報処理要素である。本実施形態では、後述するようにそれぞれニューラルネットワーク(深層学習)を利用した3種類の態様を個別に提案する。
【0020】
学習制御部25は、上記ゲームAI24に対してその態様に応じた適切な手法で学習を行わせる。すなわちゲームAI24の中核をなすニューラルネットワークに対してそのエッジ重み係数などのパラメータの調整を制御する。
【0021】
以上説明したシステム構成を基本形態として、後述するようにゲームAI24の3種類の態様のそれぞれについて必要に応じてシステム構成の細部が変更される。
【0022】
なお、以上説明した各ソフトウェア処理部における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部(例えば1つの処理部)で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、上述した各処理部の機能は、後述するCPU501(
図19参照)が実行するゲーム操作学習プログラムにより実装されるものであるが、例えばその一部がASIC、FPGA、GPU、又はニューロモーフィックデバイス等の専用集積回路、その他の電気回路等の実際の装置により実装されてもよい。さらに、以上説明した各処理部は、全部がゲーム装置側に実装される場合に限定されるものではなく、その一部又は全部が特に図示しない通信ネットワークを介して接続するサーバ側に実装されてもよい。
【0023】
<2.学習対象であるリアルタイムアクション対戦ゲームの仕様例>
以下において、ゲームAI24に学習させる対象となるゲームの基本的な仕様例について説明する。学習対象とするゲームの概略内容は、
図2に示すように、XYZ直交座標系の仮想3次元空間中で人間のプレイヤが操作する自己ゲームキャラクタ51(第1のゲームキャラクタ)と、ゲーム装置1のゲーム実行部11が行動させる敵ゲームキャラクタ52(第2のゲームキャラクタ)とが同時且つリアルタイムに動いて対戦するリアルタイムアクション対戦ゲームである。このゲームでは、自己ゲームキャラクタ51はプレイヤの操作に直ちに反応してリアルタイムに動作し、自己ゲームキャラクタ51と敵ゲームキャラクタ52とは同時並行して個別に行動する。そして上記ゲームAI24は、人間のプレイヤに代わって自己ゲームキャラクタ51を操作し、敵ゲームキャラクタ52との対戦における有効な操作内容を学習する。
【0024】
この例のリアルタイムアクション対戦ゲームの仕様としては、自己ゲームキャラクタ51と敵ゲームキャラクタ52とが互いに攻撃動作と防御動作を任意のタイミングで繰り出し、当たった攻撃の有効度合いに応じてそれを受けた側の体力値(以下、HP(Hit Point)という)が減少して先に相手のHPを0にした方を勝ちとする。またプレイ開始から所定時間経過した際に勝敗が決まっていない場合には敵ゲームキャラクタ52の勝利とする。
【0025】
各ゲームキャラクタ51,52は、入力されたアクションデータに対応して移動、方向転換、攻撃、防御、退避などの各種動作(以下、アクションという)をリアルタイムで実行し、それらゲームキャラクタ51,52の動きは仮想3次元空間中の仮想カメラ53で撮像したと想定した2次元のゲーム表示画面に変換、表示される。プレイヤはそのゲーム表示画面を見て敵ゲームキャラクタ52のアクションに応じた適切なアクションを自己ゲームキャラクタ51が実行するようコントローラを操作し、その操作情報が自己ゲームキャラクタ51側のアクションデータとしてゲーム装置1側に入力される。
【0026】
以上のようなゲームの実行処理において必要となる各種パラメータデータの生成、管理、判定、入出力などのインタラクション処理は、上述したように全てゲーム装置1側のゲーム実行部11が実行する。そしてそれら各種パラメータデータのうちでその時点のゲームの実行状態を表すのに適宜必要なものを、ゲーム実行部11が例えばCSV(Comma Separated Values)等のファイルデータ形式で学習装置2へ適宜出力可能となっている。
【0027】
このようにゲーム装置1のゲーム実行部11が出力して学習装置2に入力される複数のパラメータデータの全体が、上記
図1に示した入力データに相当する。本実施形態のゲーム実行部11の仕様において、当該入力データに含まれる具体的なパラメータデータの種類としては、例えば以下のようなものがある。
・仮想3次元空間中における仮想カメラ53の位置座標、撮像方向ベクトル
・自己ゲームキャラクタ51の位置座標、前方向ベクトル、実行アクション内容、及びHP
・敵ゲームキャラクタ52の位置座標、前方向ベクトル、実行アクション内容、及びHP
・ゲームがプレイ中であるか否かを表すプレイ開始フラグ
・ゲーム表示画面上でプレイ開始から通して計数したフレーム数
【0028】
以上のような入力データが入力される学習装置2は、他方で自己ゲームキャラクタ51を操作するためのアクションデータを出力データとして、入力データと同等のCSV等のファイルデータ形式(もしくは必要に応じてコントローラの信号出力形式)でゲーム装置1へ出力する。本実施形態のコントローラの仕様において、当該出力データに含まれる具体的なパラメータデータの種類としては、例えば以下のようなものがある。
・左スティックにおけるX方向、Y方向の各移動量及び押し込み
・右スティックにおけるX方向、Y方向の各移動量及び押し込み
・その他各種ボタンの押下
【0029】
なお、例えばゲームキャラクタの操作可否を決めるスタミナ値などのパラメータデータのように、適用する対戦ゲームの仕様に合わせて上記以外のデータ要素を入力データに適宜含めてもよい。
【0030】
<3.ゲームAIに対する入出力データの変換について>
以上説明したように、ゲーム装置1のゲーム実行部11は、ゲームの仕様に応じた内容の入力データと出力データを学習装置2との間で送受する。しかし、このようにゲームの仕様に対応した入力データと出力データの内容の全てがゲームAI24に学習させる戦略上の特徴量に直接関係するものではないため、そのままゲームAI24に入出力した場合にはその学習処理やタスク処理が冗長となり演算負担が過剰となる。そこで学習装置2の入力部21及び出力部22では、ゲーム装置1との間で送受する入力データと出力データをそれぞれゲームAI24の学習に適した内容に変換するデータ変換を適宜行う。
【0031】
この例では、上述したデータ内容の入力データに対して、入力部21が以下のような例えば10種類のパラメータデータ(以下適宜「ステートデータ」という)に変換する。
・敵ゲームキャラクタ52のHP
・自己ゲームキャラクタ51のHP
・ゲームがプレイ中であるか否かを表すプレイ開始フラグ
・ゲーム表示画面上でプレイ開始から通して計数したフレーム数
・2つのゲームキャラクタ51,52間の相対距離
・2つのゲームキャラクタ51,52間の相対速度
・2つのゲームキャラクタ51,52それぞれの向きの間の相対関係を表す内積1
・自己ゲームキャラクタ51の向きと仮想カメラ53の撮像方向との間の相対関係を表す内積2
・敵ゲームキャラクタ52がいずれのアクションを実行しているかを表す敵アクション1~n
・自己ゲームキャラクタ51がいずれのアクションを実行しているかを表す自己アクション1~n
【0032】
なお、上記のフレーム数は、ゲーム画面上において例えば1/60秒程度の周期で切り替えて表示されるフレームの表示回数であり、ゲームのプレイ開始から通して計数したフレーム数(フレーム番号)はすなわちゲームプレイ開始からの経過時間に相当する。
【0033】
また、各ゲームキャラクタ51,52間の相対距離、相対速度、及び上記内積1については、各ゲームキャラクタ51,52それぞれの仮想3次元空間中において存在している位置座標や向きベクトルから求められる。例えば、上記
図2で示した仮想3次元空間中の配置関係を上方からのXY平面視で2次元的に示した
図3において、自己ゲームキャラクタ51の位置座標Psと敵ゲームキャラクタ52の位置座標Peとの間の直線距離の長さで相対距離Lが求められ、その時間変化で相対速度が求められる。また、内積1については、自己ゲームキャラクタ51の前方向ベクトルVsと敵ゲームキャラクタ52の前方向ベクトルVeとの内積で求められる。
【0034】
このようにゲームキャラクタ51,52間の相対距離L、相対速度、及び内積1をゲームAI24へ入力するステートデータとした理由は、ゲームの仕様として攻撃や退避などの有効度がゲームキャラクタ51,52間の相対的な関係等に依存しているためである。なお、例えばその時点における各ゲームキャラクタ51,52の絶対位置もゲーム内容に関係する場合にはパラメータデータ(ステートデータ)に含めてもよい。
【0035】
また、上記内積2については、同じ
図3中において、自己ゲームキャラクタ51の前方向ベクトルVsと仮想カメラ53の撮像方向ベクトルVcとの内積で求められる。この内積2をステートデータに含めた理由は、プレイヤ側のコントローラ操作における指示方向の向きが、自己ゲームキャラクタ51の主観方向ではなくゲーム画面表示上の向きを基準としているためである。なお本実施形態においては、ゲームAI24の学習の簡易化を目的として、仮想カメラ53が自己ゲームキャラクタ51を背後から撮像できるようその仮想3次元空間中における位置座標Pcと撮像方向Vcを固定したものとしている。
【0036】
また各ゲームキャラクタ51,52の実行アクションについては、当該ゲームキャラクタ51,52が実行可能なアクションの種類の数(=n)と同じ次元数(n次元)のいわゆる1Hotベクトルに変換される。つまり、ある時点(あるフレーム)において実行できるアクションは1つだけとしている。
【0037】
なおゲームAI24が出力するアクションデータの内容については、後述の各実施形態におけるゲームAI24の学習態様に応じた適宜の内容で出力させるものとする。
【0038】
また以下においては、ゲーム実行部11が出力する敵ゲームキャラクタ52のアクションデータを適宜「行動データ」と称し、ゲームAI24が出力する自己ゲームキャラクタ51のアクションデータを適宜「操作データ」と称する。
【0039】
<4.ゲームAIの第1学習態様:LSTMを用いた例>
(4-1.システム概要)
まず、第1学習態様でゲームAI24を学習する場合の第1の実施形態について以下に説明する。本実施形態におけるシステム構成S2は、
図4に示すようにゲーム装置1と、学習装置2と、ディスプレイ等の表示装置3と、コントローラ4を有する。表示装置3はゲーム装置1に接続されており、コントローラ4は学習装置2に接続されている。なお、図示する例では、表示装置3及びコントローラ4が有線により各装置1,2と接続された場合を図示しているが、無線により接続されてもよい。
【0040】
ゲーム装置1及び学習装置2は、例えばデスクトップ型もしくはノート型の汎用コンピュータ(以下、PCという)であり、それぞれファイルデータ形式でのデータの送受が可能となっている。また、学習装置2は、コントローラ4の仕様に対応した形式の操作信号が入力可能となっている。
【0041】
図5は、本実施形態のシステム構成における処理機能を、上記
図1に対応したソフトウェアブロックで示している。この
図5において、ゲーム装置1のゲーム実行部11は、表示装置3にゲーム画面を表示するとともに、学習装置2との間で入力データと出力データをファイルデータ形式で送受している。
【0042】
学習装置2の入力部21は、ゲーム実行部11から入力したファイルデータ形式の入力データを上記ステートデータに変換してゲームAI24に入力する入力データ変換部21a(図中では「データ変換部」と略記)を備えている。また、学習装置2の出力部22は、ゲームAI24が出力した操作データを適宜のファイルデータ形式の出力データに変換してゲーム実行部11へ出力する出力データ変換部22a(図中では「データ変換部」と略記)を備えている。
【0043】
またその一方で、ゲーム表示画面を視聴した人間のプレイヤ100がコントローラ4を介して自己ゲームキャラクタ51を操作し、その操作信号が学習装置2の学習部23に入力される。
【0044】
またゲームAI24を構成するニューラルネットワークには、時系列データを扱うLSTM(Long Short-Term Memory)を用いている。このLSTMについては、特に図示しないが、再帰ニューラルネットワーク(RNN:Recurrent Neural Network )を備えてその記憶セルに対する各種のゲート操作を行うことにより時系列データの長期依存関係まで学習するものであり、公知の構成、手法を適用すればよく、ここでは詳細な説明を省略する。
【0045】
以上により本実施形態では、ゲーム装置1と学習装置2がファイルデータ形式で入力データと出力データを送受するとともに、時系列的なゲームの対戦状況に応じた人間のプレイヤ100の操作内容を模倣するよう教師あり学習によりLSTMのゲームAI24を学習させる。
【0046】
(4-2.教師データセット)
図6は、本実施形態における学習部23が教師あり学習で用いる教師データセットの内容について説明している。この
図6に示す例において、まず学習部23はゲームプレイの間を通して、入力部21から変換入力されるステートデータ(図中では「状態f+敵アクションf」(f=フレーム数)と分けて表記)と、コントローラ4を介してプレイヤ100から入力された自己アクションデータ(操作データ)をフレーム周期毎で全て記憶する。
【0047】
そしてプレイ終了後に、所定フレーム(例えばf=10)における過去直近10フレーム(f=1~10)分のステートデータと、当該所定フレームの次の11フレーム目(f=11)の自己アクションデータ(操作データ)とを紐付けてこれら組合せたものを教師データセットとし、そのような教師データセットをプレイ中の各フレーム毎に設定する。これにより、過去直近10フレーム分のゲーム進行状況(敵ゲームキャラクタ52の行動)を表す時系列のステートデータをゲームAI24への入力データとし、それに対応したプレイヤ100の操作内容の自己アクションデータをゲームAI24への正解データとした組合せで教師データセットが設定される。
【0048】
(4-3.LSTMでの学習態様)
しかし、LSTMの特性上、1つのデータ要素しか出力できないため、1つのLSTMで出力する自己アクションデータのデータ要素を1つに限定する必要がある。これに対して本実施形態では、ゲームAI24が出力する自己アクションデータのデータ要素を、自己ゲームキャラクタ51のX方向の移動量操作データと、Y方向の移動量操作データと、ボタンの操作データの3つに分け、それぞれに対応した3つのLSTMで学習する。
【0049】
なお、同一フレーム中で複数のボタンが押下操作された場合でも、上述したようにステートデータでは各種ボタン操作が1Hotベクトルに変換されるため、ボタン操作については1つのLSTMで対応できる。この場合、複数のボタンが同時に押下操作されたとしても、フレーム周期が十分短いため、連続するフレームで1つずつ順に押下操作されたとして扱っても問題はない。
【0050】
図7は、3つのLSTMで自己アクションデータを学習するゲームAI24の構成を示している。この
図7において、所定のf~f+9フレーム目の時系列ステートデータを各LSTM61,62,63に入力してそれぞれ対応するデータ要素の自己アクションデータをf+10~f+12フレーム目に出力させる構成となる。なお学習時には、f+10フレーム目でコントローラ4から入力された自己アクションデータに対して学習部23が各データ要素に分解し、それぞれ対応する各LSTM61,62,63でそれぞれ対応するフレームにバックプロパゲーションなどで学習させる。
【0051】
このとき、X、Y移動量の各LSTM61,62は回帰出力のゲームAI24となることから、学習制御部25での学習では例えばLinear関数を活性化関数とし、Adamの最適化手法などを利用するとよい。また、ボタン操作のLSTM63はクラスタリング出力のゲームAI24となることから、学習制御部25での学習では出力層で例えばSoftmaxを用い、RMSProp(学習率=0.01)の最適化手法などを利用するとよい。
【0052】
(4-4.第1実施形態による効果)
以上説明したように、第1の実施形態におけるゲーム操作学習プログラムは、学習装置2を、敵ゲームキャラクタ52のアクションデータ(行動データ)を含む入力データをゲーム実行部11から入力する入力部21、自己ゲームキャラクタ51に対するアクションデータ(操作データ)を含む出力データをゲーム実行部11へ出力する出力部22、機械学習プロセスに基づいて、入力データとそれに対応して出力すべき出力データの間の相関関係を学習する学習部23、として機能させる。
【0053】
これにより、学習部23で学習したゲームAI24の学習済みモデルは、入力された敵ゲームキャラクタ52のアクションデータに対応して適切に自己ゲームキャラクタ51のアクションデータを出力できるゲームAI24として機能できる。そしてこのゲームAI24は、人為的なモデル設計によらず、実際に検出された大量のデータに基づいて生成されるため、効果的な自己アクションデータの出力が可能となる。すなわち、リアルタイムアクション対戦ゲームにおいて、効率的に敵ゲームキャラクタ52を倒すことができるゲームAI24や、人間のプレイヤ100のプレイ内容を模して自己ゲームキャラクタ51を操作することができるゲームAI24を提供できる。
【0054】
また、本実施形態では特に、入力部21は、入力データをファイルデータ形式でゲーム実行部11から入力する。これにより、入力部21は2次元変換されたゲーム表示画面上からではなく、ゲーム実行部11が仮想3次元空間中で生成した十分明確なデータ値そのままで敵ゲームキャラクタ52のアクションデータを直接入力できる。つまり、学習部で学習したゲームAI24は敵ゲームキャラクタ52のアクションに対する認知機能が向上することになり、結果的に自己ゲームキャラクタ51に対する適切な応答操作の出力精度を向上できる。
【0055】
また、本実施形態では特に、学習部23は、所定の行動データとそれに対応してプレイヤ100(人間)が操作した際の操作データとの組合せを教師データとした教師あり学習により相関関係を学習する。これにより、人間のプレイヤ100のプレイ内容を模してゲームを操作できるゲームAI24を提供できる。特に、例えばランキング上位のプレイヤや有名プレイヤなどのような特定個人のプレイ内容を再現するといったパーソナライズ化されたゲームAI24の提供も可能となる。
【0056】
また、本実施形態では特に、学習部23は、再帰ニューラルネットワーク(RNN)を有するLSTMを備え、LSTMに対する教師あり学習として、時系列で入力された直近所定数の入力データ(ステートデータ)に対応して出力すべき出力データを学習する。これにより、例えば動作が長くかかる敵ゲームキャラクタ52のアクションを判別する場合であっても、時系列的に入力された直近所定数の入力データの全体で抽出される特徴量から学習でき、認知機能を向上できる。
【0057】
また、本実施形態では特に、学習部23は、自己ゲームキャラクタ51の操作において同時に実行し得る操作種類の数以上のLSTMを用いて学習する。これにより、例えば自己ゲームキャラクタ51の操作において同時に実行し得る操作種類が複数(この例のX移動量、Y移動量、ボタン押下操作の3種)あるような対戦アクションゲームに適用する場合に対しても、出力次元数が少ない(実際には1つのみ)LSTMを各操作種類ごとに分担して適用できる。
【0058】
また、本実施形態では特に、入力部21は、自己ゲームキャラクタ51と敵ゲームキャラクタ52それぞれの体力値(HP)を含む入力データを入力する。これにより、自己ゲームキャラクタ51と敵ゲームキャラクタ52のそれぞれのHPの値に依存して変化する環境や状態に対しても出力データとの相関関係を学習でき、より効果的なゲーム操作の学習が可能となる。
【0059】
また、本実施形態では特に、入力部21は、プレイ開始からのフレーム番号(フレーム数)を含む入力データを入力する。これにより、プレイ開始からの時間経過に依存して変化する環境や状態に対しても出力データとの相関関係を学習でき、より効果的なゲーム操作の学習が可能となる。
【0060】
また、本実施形態では特に、入力部21は、仮想3次元空間における自己ゲームキャラクタ51と敵ゲームキャラクタ52との間の相対距離Lを含む入力データを入力する。これにより、2つのゲームキャラクタ51,52間の相対距離Lに依存して変化する環境や状態に対しても出力データとの相関関係を学習でき、より効果的なゲーム操作の学習が可能となる。
【0061】
また、本実施形態では特に、入力部21は、仮想3次元空間における自己ゲームキャラクタ51と敵ゲームキャラクタ52との間の相対速度を含む入力データを入力する。これにより、2つのゲームキャラクタ51,52間の相対速度に依存して変化する環境や状態に対しても出力データとの相関関係を学習でき、より効果的なゲーム操作の学習が可能となる。
【0062】
また、本実施形態では特に、入力部21は、仮想3次元空間における自己ゲームキャラクタ51の向きと敵ゲームキャラクタ52の向きとの間の相対関係(内積1)を含む入力データを入力する。これにより、2つのゲームキャラクタ51,52間の向きの相対関係に依存して変化する環境や状態に対しても出力データとの相関関係を学習でき、より効果的なゲーム操作の学習が可能となる。
【0063】
また、本実施形態では特に、入力部21は、仮想3次元空間における自己ゲームキャラクタ51の向きと仮想カメラ53の撮像方向との間の相対関係(内積2)を含む入力データを入力する。これにより、ゲーム表示画面上での自己ゲームキャラクタ51の向きに対する当該自己ゲームキャラクタ51の操作方向との相関関係も含めて学習部23が学習できる。
【0064】
また、本実施形態では特に、入力部21は、ゲーム実行部11から直接入力した入力データ(第1の入力データ)を学習部23の学習に適したステートデータ(第2の入力データ)に変換し、このステートデータを入力データとして学習部23に入力する入力データ変換部21aを有する。これにより、ゲームの仕様に応じた内容であるためにゲーム戦略上の特徴量と関係のない内容も含んだ入力データそのままで入力した場合と比較して、学習処理における演算負担を低減でき、より効率的かつ効果的なゲームAI24の学習が可能となる。
【0065】
また、本実施形態では特に、入力データ変換部は、入力データに含まれる敵ゲームキャラクタ52のアクションデータである行動データを1Hotベクトルの形態に変換して学習部23へ入力する。これにより、敵ゲームキャラクタ52が取り得る複数の行動種類のうち任意のフレームの時点でいずれか1つだけが入力されるものとし、すなわち複数の行動種類どうしの間の相互的な相関関係をなくすことができるため、ゲームAI24の学習を簡略化できる。
【0066】
<5.ゲームAIの第2学習態様:DQNを用いた例>
(5-1.システム概要)
次に、第2学習態様でゲームAI24を学習する場合の第2の実施形態について以下に説明する。本実施形態におけるシステム構成S3は、
図8に示すようにゲーム装置1と、学習装置2と、ディスプレイ等の表示装置3を有する。表示装置3はゲーム装置1に接続されている。
【0067】
本実施形態の例においても、ゲーム装置1及び学習装置2は例えばPCであり、それぞれファイルデータ形式でのデータの送受が可能となっている。なお、表示装置3は、学習中などにおいてユーザがゲーム表示画面を視認するための単なるモニタ用として設けている。
【0068】
図9は、本実施形態のシステム構成における処理機能を、上記
図1に対応したソフトウェアブロックで示している。この
図9において、ゲーム装置1のゲーム実行部11は、表示装置3にゲーム画面を表示するとともに、学習装置2との間で入力データと出力データをファイルデータ形式で送受している。
【0069】
またゲームAI24を構成するニューラルネットワークには、深層Qネットワーク(DQN:Deep Q Network)を用いている。このDQNについては、出力層における操作データの複数のデータ要素それぞれに対応した最適行動価値関数(予想累積報酬=Q値)を深層Q学習(深層強化学習)で学習するものであり、公知の構成、手法を適用すればよく、ここでは詳細な説明を省略する。
【0070】
以上により本実施形態では、ゲーム装置1と学習装置2がファイルデータ形式で入力データと出力データを送受するとともに、ゲームのルールを明示せずとも効果的なゲーム戦略を探索するよう強化学習によりDQNのゲームAI24を学習させる。
【0071】
(5-2.DQNのネットワーク構成)
図10は、本実施形態における学習部23が強化学習するDQNのネットワーク構成を表している。この
図10に示す例において、DQN64の入力層は入力データであるステートデータのデータ要素と同数のノード(ユニット)を用意してそれぞれ個別に入力する。また図示する例では、隠れ層を例えば2層としている。また出力層は、モデルの単純化のために操作データのデータ要素と同数のノード(ユニット)で多クラス分類出力するものとし、そのためX、Yの各移動量を所定量に固定している。
【0072】
なお、入力データのデータ要素としては、ステートデータの敵HPから内積2までの8つに加えて、それぞれ1Hotベクトルで表記された敵アクションと自己アクションの各次元数(アクション種類の数=n)の合計で設定している。
【0073】
また、本実施形態において出力する操作データ(出力データ)のデータ要素としては、例えば(Y方向)上移動、(Y方向)下移動、(X方向)左移動、(X方向)右移動、弱攻撃、強攻撃、ガード、退避、何もせず、の9つとしており、それぞれに対応して出力するQ値を順にQ1値~Q9値としている。
【0074】
以上において、DQN64の深層Q学習は、所定のフレームにおける入力データを状態s、出力データを行動aとした最適行動価値関数Q(s、a)を、出力データの各データ要素ごとで別途の標的ネットワークに関数近似するよう教師あり学習する。このとき学習が局所解に陥るのを防ぐために、十分小さい確率e(=0.2)でランダムな行動aを実行するe-greedy法を用い、例えば割引率γ=0.99、学習率=0.01で学習するとよい。
【0075】
(5-3.DQNでの学習態様)
上述したように、本実施形態のDQN64では入力データ(状態s)と出力すべき出力データ(行動a)との間の相関関係をフレーム単位で学習するが、プレイ中の全てのフレームで状態sがゲームAI24に学習させる戦略上の特徴量に関係するものではない。これに対して本実施形態における学習部23の学習制御部25は、ゲームAI24のDQN64が出力する出力データ(操作データ)の内容の変化時から所定数フレーム数分だけ入力データ(行動データ)をランダムにサンプリングしてリプレイ記憶し、それらのデータセットでDQN64をミニバッチ学習する。
【0076】
図11は、そのようなリプレイ学習の手法を表している。この
図11において、プレイ中のある時点のフレームにおけるステートデータ(入力データ)をs1、操作データをa1として、それ以降のフレームでの操作データa2、a3、・・・が上記操作データa1と同じ間(変化しない間)は、いくらステートデータs2、s3、・・・が変化しても記憶しない。そして操作データanが変化(an≠a1)して切り替わった次のフレームからmフレーム分(例えばm>30)でステートデータと操作データのデータセットを全て記憶する。
【0077】
そして、それら記憶したm個のデータセットのうちb個(例えばb=30)のデータセットをランダムでサンプリングしてリプレイ記憶する。これらリプレイ記憶したb個のデータセットそれぞれについて各データ要素ごとのQ(s′、a′)を算出し、このうちのs′を入力データ、Q(s′、a′)を正解データとした組合せで教師データセットを作成する。そして、これらb個の教師データセットを用いてミニバッチ教師あり学習を行うことで、DQN64の深層強化学習を行う。
【0078】
(5-4.第2実施形態による効果)
以上説明したように、第2の実施形態におけるゲーム操作学習プログラムによれば、学習部23は、強化学習により相関関係を学習する。これにより、人為的に教師データセットを用意せずとも効率的に敵ゲームキャラクタ52を倒すことができるゲームAI24を提供できる。
【0079】
また、本実施形態では特に、学習部23は、深層Qネットワーク(DQN64)を備え、この深層Qネットワークに対する強化学習として、出力層における操作データの各データ要素それぞれに対応した最適行動価値関数(この例のQ1値~Q9値)を学習する深層Q学習により相関関係を学習する。これにより、特徴量の設計も自動的に行えるニューラルネットワークを用いた有効な強化学習を実現できる。
【0080】
また、本実施形態では特に、学習部23は、操作データの内容の変化時から所定フレーム数分だけランダムにサンプリングしてリプレイ記憶した行動データと操作データを用いてミニバッチ学習で学習する。これにより、操作データの内容の変化後の所定フレーム数の間、つまり操作の切り替えにより得られると予想される報酬が最も変化する可能性の高い間のフレームだけで学習でき、また時系列の相関を排除するよう学習するため、深層強化学習を効率的に行うことができる。
【0081】
(5-5.第2実施形態の変形例)
上記第2実施形態では、ゲームAI24が全てのフレームごとに操作データ(出力データ)を逐次出力でき、それを受信したゲーム実行部11においても全ての操作データにフレームごとに逐次対応して自己ゲームキャラクタ51をリアルタイムに操作可能としていることを前提としていた。
【0082】
しかしながら一般的なリアルタイムアクション対戦ゲームでは、ゲーム実行部11が短い時間間隔(フレーム間隔)で連続的に出力された操作データを受け付けない仕様のものがある。例えば、所定フレーム時にゲームAI24側から出力された操作データに対応して、ゲーム実行部11がその受信時から所定フレーム数の間に渡って当該操作データに対応する動作処理(ゲーム表示画面上での自己ゲームキャラクタ51の動作切り替え表示や判定処理など)を実行し、その処理中の間においては他の操作データを受け付けない場合がある。
【0083】
このようなゲーム仕様の場合、上記動作処理の実行後にゲームの状況が変化したとしても、ゲームAI24から見ればこの状況変化が最初に出力した操作データの影響によるものか、動作処理実行中に出力して実際にはゲーム実行部11に受け付けられなかった操作データの影響によるものかの区別ができない。このため全ての操作データの切替時を契機としてそのすぐ後の操作データをリプレイ記憶しても、強化学習による有効な学習ができない。
【0084】
これに対する本実施形態での対処としては、上記
図11で示したb個のランダムサンプリングとQ値の算出を開始するリプレイ記憶のタイミングを、最初の操作データの変化時ではなく、その操作データに対応して実行された動作処理の終了時を契機として開始すればよい(図示省略)。このようにすることで、動作処理中に出力した操作データは無効となり、強化学習への影響を回避できる。
【0085】
また、ステートデータ(入力データ)中に、その時点で各ゲームキャラクタが実行中の動作処理の種類をパラメータデータに含める(例えば1Hotベクトルの形式で含める)ようにすることも有効である。この場合も、その時点のフレームで実行中の動作処理と、同じフレームで出力された操作データとの相関関係を効果的に学習できる。
【0086】
<6.ゲームAIの第3学習態様:CNNを用いた例>
(6-1.システム概要)
次に、第3学習態様でゲームAI24を学習する場合の第3の実施形態について以下に説明する。本実施形態におけるシステム構成S4は、
図12に示すようにゲーム装置1と、学習装置2と、ディスプレイ等の表示装置3と、コントローラ4と、リアルカメラ5を有する。表示装置3はゲーム装置1に接続されており、コントローラ4とリアルカメラ5は学習装置2に接続されている。
【0087】
本実施形態では、ゲーム装置1が例えばゲーム機であり、学習装置2は例えばPCであり、この学習装置2は一方的にコントローラ4の仕様に対応した操作信号形式で出力データをゲーム装置1へ出力可能となっている。
【0088】
図13は、本実施形態のシステム構成における処理機能を、上記
図1に対応したソフトウェアブロックで示している。この
図13において、ゲーム装置1は、ゲーム実行部11が表示装置3にゲーム画面を表示するとともに、コントローラ4の仕様に対応した操作信号形式の出力データを学習装置2から受信する。
【0089】
また、リアルカメラ5が表示装置3のゲーム表示画面を撮像し、その撮像した画像データを入力データとして学習装置2の学習部23に入力する。
【0090】
またその一方で、ゲーム表示画面を視聴した人間のプレイヤ100がコントローラ4を介して自己ゲームキャラクタ51を操作し、その操作信号が学習装置2の学習部23に入力される。
【0091】
またゲームAI24を構成するニューラルネットワークには、画像認識用の畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)と全結合層(図中では略記)を用いている。CNNについては、多数のフィルタで画像データの畳み込みを行う畳み込み層と、上記フィルタそれぞれで畳み込んだ結果の2次元出力に対してデータ圧縮するプーリング層とを積層したものであり、さらに出力層付近の全結合層で元の画像データの特徴量を学習する。これらCNNと全結合層については、公知の構成、手法を適用すればよく、ここでは詳細な説明を省略する。
【0092】
以上により本実施形態では、ゲーム機であるゲーム装置1から表示装置3とリアルカメラ5とを介して学習装置2へゲーム表示画面の画像データの形式の入力データを入力している。また、ゲーム装置1は、ゲームAI24が出力した操作データを出力部22の出力データ変換部22aでコントローラ4の操作信号形式に変換してゲーム装置1に出力している。そしてゲーム装置1の学習部23は、ゲーム表示画面で表示されるゲームの対戦状況に応じた人間のプレイヤ100の操作内容を模倣するよう教師あり学習によりCNNと全結合層のゲームAI24を学習させる。
【0093】
(6-2.CNNと全結合層のネットワーク構成)
図14は、本実施形態における学習部23が教師あり学習するCNNと全結合層のネットワーク構成を表している。この
図14に示す例では、最初にCNN65に入力する画像データとして、それぞれ72×128ピクセルで時系列順に表示された10フレーム分の画像データを入力する。この入力画像データの10フレームは、連続して表示されたフレームであってもよいし、十分短い時間間隔で間引きされたフレームであってもよい。
【0094】
そして上記入力画像データは、最初の畳み込み層1で32枚のフィルタ(縦ピクセル数×横ピクセル数=72×128)で畳み込みされ、次にプーリング層1で上記32枚のフィルタの各畳み込み出力がデータ圧縮(36×64)される。この圧縮データが、次の畳み込み層2で64枚のフィルタ(36×64)で畳み込みされ、次にプーリング層2で上記64枚のフィルタの各畳み込み出力がデータ圧縮(36×64)される。そしてこの圧縮データの全てのピクセルに対して、出力層における6つの出力ノードが全結合層66で全結合する。なお、6つの出力ノードの内訳は、ボタン選択が5つと移動量が1つである。
【0095】
そして本実施形態では、学習部23の学習制御部25が、10フレーム分の画像データと、それに対応して人間のプレイヤ100からコントローラ4を介して入力された操作データとの組合せで教師データセットとし、これを用いてゲームAI24に対し教師あり学習を行う。これにより、ゲーム表示画面の画面データからゲーム戦略上有効な特徴量を抽出し、対応する操作データの出力が可能となる。
【0096】
なおこの学習において、移動量を出力する1つの出力ノードでは回帰出力となることから、学習制御部25での学習では例えばLinear関数を活性化関数とし、Adamの最適化手法などを利用するとよい。また、ボタン選択の5つの出力ノードではクラスタリング出力となることから、学習制御部25での学習では出力層で例えばSoftmaxを用い、RMSProp(学習率=0.01)の最適化手法などを利用するとよい。
【0097】
(6-3.第3実施形態による効果)
以上説明したように、第3の実施形態におけるゲーム操作学習プログラムによれば、入力部21として機能する表示装置3、リアルカメラ5、及びCNN65は、入力データを画像データ形式でゲーム実行部11から入力する。これにより、ゲーム画面の表示だけが可能であってファイルデータ形式でのリアルタイムなデータ出力ができない市販のゲーム機に対しても、例えば表示装置3上のゲーム表示画面を撮像した画像データから敵ゲームキャラクタ52のアクションデータ等を入力でき、ゲーム操作学習プログラムの汎用性が向上する。
【0098】
また、本実施形態では特に、学習部23は、所定の行動データとそれに対応してプレイヤ100が操作した際の操作データとの組合せを教師データとした教師あり学習により相関関係を学習する。これにより、人間のプレイヤ100のプレイ内容を模してゲームを操作できるゲームAI24を提供できる。特に、例えばランキング上位のプレイヤや有名プレイヤなどのような特定個人のプレイ内容を再現するといったパーソナライズ化されたゲームAI24の提供も可能となる。
【0099】
また、本実施形態では特に、学習部23は、畳み込みニューラルネットワーク(CNN65)と全結合層66を備え、畳み込みニューラルネットワーク65と全結合層66に対する教師あり学習として、画像データ形式の入力データに対応して出力すべき出力データを学習する。これにより、画像データ形式の入力データと出力データとを組合せた教師データを用いた教師あり学習を実現できる。
【0100】
また、本実施形態では特に、学習部23は、時系列で入力された所定フレーム数の画像データ形式の入力データに対応して出力すべき出力データを学習する。これにより、入力データの時系列的な変化に対応して出力データとの相関関係を学習させることができ、リアルタイムに環境が変化するゲームに対しての操作の学習を効果的に行うことができる。
【0101】
<7.変形例、運用例等>
なお、本発明は、上記の実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。また、上記の実施形態において学習を終えたゲームAI24は、様々な運用が可能である。以下、そのような変形例、運用例について説明する。
【0102】
(7-1.ゲーム装置自体が学習部を備える場合)
例えば、上記の各実施形態では、ゲーム実行部11を備えるゲーム装置1と、ゲームAI24を含む学習部23を備える学習装置2が別体で構成され、互いに対戦する態様でゲームAI24を学習していたが、本発明はこれに限られない。例えば
図15に示すように、ゲーム装置1が学習部23を備えるシステム構成S5としてもよい。この場合にはゲーム装置1が表示装置3にゲーム画面を表示するとともにコントローラ4を介して人間のプレイヤ100の操作データを入力する。
【0103】
そしてゲームAI24の学習については、教師あり学習と強化学習の2通りの手法が考えられる。例えば、ゲーム実行部11に元から記憶されているアルゴリズムで敵ゲームキャラクタ52を行動させ、それに対応してプレイヤ100が自己ゲームキャラクタ51を操作した際の操作データに基づいてゲームAI24を教師あり学習させる手法が1つある。この教師あり学習の場合には、ゲームAI24の主観から見て、ゲーム実行部11が行動させるゲームキャラクタが敵ゲームキャラクタ52に相当し、プレイヤ100が操作するゲームキャラクタが自己ゲームキャラクタ51に相当する。
【0104】
または、ゲーム実行部11ではゲームキャラクタを行動させず、プレイヤ100とゲームAI24との対戦においてゲームAI24に強化学習させる手法も1つある。この強化学習の場合には、ゲームAI24の主観から見て、プレイヤ100が操作するゲームキャラクタが敵ゲームキャラクタ52に相当し、ゲームAI24自身が操作するゲームキャラクタが自己ゲームキャラクタ51に相当する。
【0105】
なお、この例においては、ゲーム実行部11と、入力部21及び出力部22との間で送受される入力データ及び出力データは、ファイルデータ形式であってもよいし、または共有するメモリ等の記憶装置上に直接読み書きできるデータ形式であってもよい。
【0106】
(7-2.学習済みモデルのゲームAIの運用例)
例えばゲームAI24の学習が適切に進んだ結果、当該ゲームAI24が十分な対戦機能を有する学習済みモデルとなった場合には、
図16に示すように、そのゲームAI24に対戦タスクを実行させてゲームプレイ装置26として運用することが可能となる。なお、ゲームプレイ装置26は例えばコンピュータ等で構成される。この場合、ゲームAI24の主観から見て、ゲームプレイ装置26のゲームAI24自身が操作するゲームキャラクタが自己ゲームキャラクタ51に相当し、ゲーム装置1のゲーム実行部11により動作するゲームキャラクタが敵ゲームキャラクタ52に相当する。なお、ゲームプレイ装置26で実行されるプログラム(ゲームAI24を含む)がゲームプレイプログラムに相当する。なお、特に図示しないが、学習済みモデルとなったゲームAI24に対してもさらにオンライン学習させる目的でゲームプレイ装置26に学習制御部25を実装したままとしてもよい。
【0107】
または、
図17に示すように、ゲーム装置1のゲーム実行部11がアルゴリズムに代えて学習済みモデルのゲームAI24(及びオンライン学習用の学習制御部25)でゲームキャラクタを動作させてもよい。この場合、プレイヤ100側の主観で見た敵ゲームキャラクタ52がゲームAI24により動作することになる。なお、ゲーム装置1のゲーム実行部11で実行されるプログラム(ゲームAI24を含む)がゲームプログラムに相当する。
【0108】
または、
図18に示すように、ゲーム装置1(ゲーム実行部11を備える側)とゲームプレイ装置26の両方で学習済みモデルのゲームAI24を備え、それぞれでゲームキャラクタを動作させて対戦してもよい。
【0109】
以上の学習済みモデルのゲームAI24の運用において、例えばランキング上位のプレイヤや有名プレイヤなどのような特定個人のプレイ内容を再現するといったパーソナライズ化されたゲームAI24や、ゲームメーカーがデフォルトで学習させたゲームAI24などのようにその学習内容でゲームAI24を使い分けることもできる。この場合には、学習内容に個性のあるゲームAI24どうしの対戦や、難易度に差のある複数のゲームAI24をプレイヤ100により使い分けて対戦するなどの多様な組合せが可能となる。
【0110】
なお、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【0111】
<8.ゲームプレイ装置のハードウェア構成>
次に、
図19を用いて、上記で説明したCPU501が実行するプログラムにより実装された各処理部を実現する学習装置2のハードウェア構成の一例について説明する。なお、ゲーム装置1やゲームプレイ装置26が同様のハードウェア構成を有してもよい。
【0112】
図19に示すように、学習装置2(ゲーム装置1、ゲームプレイ装置26)は、例えば、CPU501と、ROM503と、RAM505と、GPU506と、例えばASIC又はFPGA等の特定の用途向けに構築された専用集積回路507と、入力装置513と、出力装置515と、記録装置517と、ドライブ519と、接続ポート521と、通信装置523を有する。これらの構成は、バス509や入出力インターフェース511等を介し相互に信号を伝達可能に接続されている。
【0113】
ゲーム操作学習プログラム、ゲームプレイプログラム、ゲームプログラム(以下「ゲーム操作学習プログラム等」という)は、例えば、ROM503やRAM505、記録装置517等に記録しておくことができる。
【0114】
また、ゲーム操作学習プログラム等は、例えば、フレキシブルディスクなどの磁気ディスク、各種のCD、MOディスク、DVD等の光ディスク、半導体メモリ等のリムーバブルな記録媒体525に、一時的又は永続的(非一時的)に記録しておくこともできる。このような記録媒体525は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらの記録媒体525に記録されたゲーム操作学習プログラム等は、ドライブ519により読み出されて、入出力インターフェース511やバス509等を介し上記記録装置517に記録されてもよい。
【0115】
また、ゲーム操作学習プログラム等は、例えば、ダウンロードサイト、他のコンピュータ、他の記録装置等(図示せず)に記録しておくこともできる。この場合、ゲーム操作学習プログラム等は、LANやインターネット等のネットワークNWを介し転送され、通信装置523がこのプログラムを受信する。そして、通信装置523が受信したプログラムは、入出力インターフェース511やバス509等を介し上記記録装置517に記録されてもよい。
【0116】
また、ゲーム操作学習プログラム等は、例えば、適宜の外部接続機器527に記録しておくこともできる。この場合、ゲーム操作学習プログラム等は、適宜の接続ポート521を介し転送され、入出力インターフェース511やバス509等を介し上記記録装置517に記録されてもよい。
【0117】
そして、CPU501が、上記記録装置517に記録されたプログラムに従い各種の処理を実行することにより、前述の入力部21、出力部22、学習部23等による処理(ゲーム装置1においてはゲーム実行部11等による処理)が実現される。この際、CPU501は、例えば、上記記録装置517からプログラムを、直接読み出して実行してもよく、RAM505に一旦ロードした上で実行してもよい。更にCPU501は、例えば、プログラムを通信装置523やドライブ519、接続ポート521を介し受信する場合、受信したプログラムを記録装置517に記録せずに直接実行してもよい。
【0118】
また、CPU501は、コントローラ4から入力される信号に加えて、必要に応じて、例えばマウス、キーボード、マイク等の入力装置513から入力する信号や情報に基づいて各種の処理を行ってもよい。
【0119】
GPU506は、CPU501からの指示に応じて例えばレンダリング処理などの画像表示のための処理を行う。
【0120】
そして、CPU501及びGPU506は、上記の処理を実行した結果を、表示装置3に出力すると共に、必要に応じて、例えばスピーカーやヘッドフォン等の音声出力部(図示せず)を含む、出力装置515から出力する。さらにCPU501及びGPU506は、必要に応じてこの処理結果を通信装置523や接続ポート521を介し送信してもよく、上記記録装置517や記録媒体525に記録させてもよい。
【符号の説明】
【0121】
1 ゲーム装置(情報処理装置)
2 学習装置(情報処理装置)
3 表示装置
4 コントローラ
5 リアルカメラ
11 ゲーム実行部(実行部)
21 入力部
21a 入力データ変換部
22 出力部
22a 出力データ変換部
23 学習部
24 ゲームAI
25 学習制御部
26 ゲームプレイ装置
51 自己ゲームキャラクタ(第1のゲームキャラクタ)
52 敵ゲームキャラクタ(第2のゲームキャラクタ)
53 仮想カメラ
61~63 LSTM
64 DQN(深層Qネットワーク)
65 CNN(畳み込みニューラルネットワーク)
66 全結合層
100 プレイヤ
S1~S8 システム