(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
図1は、本発明の一実施形態に係るシステム1の構成を概略的に示す構成図である。一実施形態におけるシステム1は、図示するように、サーバ10と、このサーバ10とインターネット等の通信網20を介して接続された複数の端末装置30と、を備え、端末装置30のユーザに対して電子商取引サービスを提供する。また、一実施形態におけるシステム1は、キャラクタを用いたゲームや電子書籍、動画コンテンツ、及び音楽コンテンツ等のゲーム以外の様々なデジタルコンテンツの提供サービス、並びに、テキストチャット(ミニメール)、サークル、アバター、日記、伝言板、及び挨拶等の様々なユーザ間のコミュニケーション機能を実現するコミュニケーションプラットフォーム(SNSプラットフォーム)サービス等の様々なインターネットサービスを、端末装置30のユーザに対して提供し得る。
【0013】
一実施形態におけるサーバ10は、一般的なコンピュータとして構成されており、図示のとおり、CPU(コンピュータプロセッサ)11と、メインメモリ12と、ユーザI/F13と、通信I/F14と、ストレージ(記憶装置)15と、を含み、これらの各構成要素がバス17を介して互いに電気的に接続されている。CPU11は、ストレージ15からオペレーティングシステムやその他様々なプログラムをメインメモリ12にロードし、このロードしたプログラムに含まれる命令を実行する。メインメモリ12は、CPU11が実行するプログラムを格納するために用いられ、例えば、DRAM等によって構成される。なお、一実施形態におけるサーバ10は、それぞれ上述したようなハードウェア構成を有する複数のコンピュータを用いて構成され得る。なお、上述したCPU(コンピュータプロセッサ)11は一例であり、これに代えて、GPU(グラフィックス・プロセッシング・ユニット)を用いるものであってもよいことは言うまでもない。CPU及び/又はGPUをどのように選択するかは、所望のコストないし効率などを勘案した上で適宜決定することが可能である。以下、CPU11を例として説明する。
【0014】
ユーザI/F13は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、CPU11の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信I/F14は、ハードウェア、ファームウェア、又はTCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介して端末装置30と通信可能に構成される。
【0015】
ストレージ15は、例えば磁気ディスクドライブで構成され、各種サービスを提供するための制御用プログラム等の様々なプログラムが記憶される。また、ストレージ15には、各種サービスを提供するための各種データも記憶され得る。ストレージ15に記憶され得る各種データは、サーバ10と通信可能に接続されるサーバ10とは物理的に別体のデータベースサーバ等に格納されてもよい。
【0016】
一実施形態において、サーバ10は、階層構造の複数のウェブページから成るウェブサイトを管理するウェブサーバとしても機能し、こうしたウェブサイトを介して各種サービスを端末装置30のユーザに対して提供し得る。ストレージ15には、このウェブページに対応するHTMLデータも記憶され得る。HTMLデータは、様々な画像データが関連付けられ、又、JavaScript(登録商標)等のスクリプト言語等で記述された様々なプログラムが埋め込まれ得る。
【0017】
また、一実施形態において、サーバ10は、端末装置30においてウェブブラウザ以外の実行環境上で実行されるアプリケーション(プログラム)を介して各種サービスを提供し得る。ストレージ15には、こうしたアプリケーションも記憶され得る。このアプリケーションは、例えば、Objective−CやJava(登録商標)等のプログラミング言語を用いて作成される。ストレージ15に記憶されたアプリケーションは、配信要求に応じて端末装置30に配信される。なお、端末装置30は、こうしたアプリケーションを、サーバ10以外の他のサーバ(アプリマーケットを提供するサーバ)等からダウンロードすることもできる。
【0018】
このように、サーバ10は、各種サービスを提供するためのウェブサイトを管理し、当該ウェブサイトを構成するウェブページ(HTMLデータ)を端末装置30からの要求に応答して配信することができる。また、上述したように、サーバ10は、このようなウェブページ(ウェブブラウザ)を用いた各種サービスの提供とは代替的に、又は、これに加えて、端末装置30において実行されるアプリケーションとの通信に基づいて各種サービスを提供することができる。いずれの態様で当該サービスを提供するにしても、サーバ10は、各種サービスの提供に必要な各種データ(画面表示に必要なデータを含む)を端末装置30との間で送受信することができる。また、サーバ10は、各ユーザを識別する識別情報(例えば、ユーザID)毎に各種データを記憶し、ユーザ毎に各種サービスの提供状況を管理することができる。詳細な説明は省略するが、サーバ10は、ユーザの認証処理や課金処理等を行う機能を有することもできる。
【0019】
一実施形態における端末装置30は、サーバ10が提供するウェブサイトのウェブページをウェブブラウザ上で表示すると共にアプリケーションを実行するための実行環境を実装した任意の情報処理装置であり、スマートフォン、タブレット端末、ウェアラブルデバイス、パーソナルコンピュータ、及びゲーム専用端末等が含まれ得るが、これらに限定されるものではない。
【0020】
端末装置30は、一般的なコンピュータとして構成され、
図1に示すとおり、CPU(コンピュータプロセッサ)31と、メインメモリ32と、ユーザI/F33と、通信I/F34と、ストレージ(記憶装置)35と、を含み、これらの各構成要素がバス37を介して互いに電気的に接続されている。
【0021】
CPU31は、ストレージ35からオペレーティングシステムやその他様々なプログラムをメインメモリ32にロードし、このロードしたプログラムに含まれる命令を実行する。メインメモリ32は、CPU31が実行するプログラムを格納するために用いられ、例えば、DRAM等によって構成される。
【0022】
ユーザI/F33は、例えば、ユーザの入力を受け付けるタッチパネル、キーボード、ボタン及びマウス等の情報入力装置と、CPU31の演算結果を出力する液晶ディスプレイ等の情報表示装置とを含む。通信I/F34は、ハードウェア、ファームウェア、又は、TCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介してサーバ10と通信可能に構成される。
【0023】
ストレージ35は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムが記憶される。また、ストレージ35は、サーバ10から受信した様々なアプリケーションが記憶され得る。
【0024】
端末装置30は、例えば、HTML形式のファイル(HTMLデータ)を解釈して画面表示するためのウェブブラウザを備えており、このウェブブラウザの機能によりサーバ10から取得したHTMLデータを解釈して、受信したHTMLデータに対応するウェブページを表示することができる。また、端末装置30のウェブブラウザには、HTMLデータに関連付けられた様々な形式のファイルを実行可能なプラグインソフトが組み込まれ得る。
【0025】
端末装置30のユーザがサーバ10によって提供されるサービスを利用する際には、例えば、HTMLデータやアプリケーションによって指示されたアニメーションや操作用アイコン等が端末装置30に画面表示される。ユーザは、端末装置30のタッチパネル等を用いて各種指示を入力することができる。ユーザから入力された指示は、端末装置30のウェブブラウザやNgCore(商標)等のアプリケーション実行環境の機能を介してサーバ10に伝達される。
【0026】
次に、このように構成された一実施形態におけるシステム1が有する機能について説明する。上述したように、一実施形態におけるシステム1は、ユーザに対して様々なインターネットサービスを提供し得るが、特に、ゲーム配信サービスを提供することが可能である。以降、一実施形態におけるシステム1の機能について、ゲーム配信サービスを提供する機能を例として説明する。
【0027】
図2は、システム1(サーバ10及び端末装置30)が有する機能を概略的に示すブロック図である。まず、一実施形態におけるサーバ10が有する機能について説明する。サーバ10は、図示するように、様々な情報を記憶する情報記憶部41と、一実施形態におけるゲームキャラクタの行動を決定するキャラクタ行動制御部42と、を備える。これらの機能は、CPU11及びメインメモリ12等のハードウェア、並びに、ストレージ15に記憶されている各種プログラムやテーブル等が協働して動作することによって実現され、例えば、ロードしたプログラムに含まれる命令をCPU11が実行することによって実現される。また、
図2に例示したサーバ10が有する機能の一部又は全部は、端末装置30によって実現され、又は、サーバ10と端末装置30とが協働することによって実現され得る。
【0028】
一実施形態における情報記憶部41は、ストレージ15等によって実現され、
図2に示すように、ゲームにおける敵・味方キャラクタ(これらを総称してゲームキャラクタと呼ぶ)の各種ステータス、行動可能なキャラクタ、行動可能な技、直近行動したキャラクタのフラグ、直近行動したキャラクタの技などのゲームパラメータを管理するためのゲームパラメータ管理テーブル41aと、行動可能な各行動及びゲーム中に当該ゲームパラメータに基づき各行動が選択された場合の見込み報酬(Q値)を管理するための行動評価管理テーブル41bと、ゲーム中の各ゲームキャラクタにより選択された行動の履歴を管理するための行動履歴管理テーブル41cと、を有する。
【0029】
次に、一実施形態におけるゲームキャラクタの行動を決定するキャラクタ行動制御部42の機能について説明する。キャラクタ行動制御部42は、情報記憶部41のゲームパラメータ管理テーブル41aに格納されている敵・味方キャラクタの各種ステータス、行動可能なキャラクタ、行動可能な技、直近行動したキャラクタのフラグ、直近行動したキャラクタの技などのゲームパラメータに基づき各ゲームキャラクタの行動を選択・決定していく。より具体的には、キャラクタ行動制御部42は、ゲームパラメータ管理テーブル41aのゲームパラメータを抽出し、これを入力値として1又は複数層のニューラルネットワークに入力し、出力として行動可能なキャラクタの行動毎の見込み報酬(Q値)を出力値として抽出し、これらの中から出力値の最も高い行動を通常選択・決定することとなるが、学習段階においては、各行動による見込み報酬(Q値)とは無関係に行動可能なキャラクタの行動をランダムに選択・決定するか、または、行動可能なキャラクタの行動毎の見込み報酬(Q値)の最も高い行動を選択・決定することで、都度ニューラルネットワーク(NN)のパラメータを調整を行う。キャラクタ行動制御部42は、行動の選択・決定のため、必要に応じて行動評価管理テーブル41bを参照し、行動可能な各行動及びゲーム中に当該ゲームパラメータに基づき各行動が選択された場合の見込み報酬(Q値)を得ることができる。キャラクタ行動制御部42は、このようにして例えば、1つのバトルが終了するまでの間の味方キャラクタの各行動を選択・決定することで学習を進めていくこととなる。なお、この例では、1バトルが終了するまでの味方キャラクタの各行動として説明したが、敵キャラクタ、味方キャラクタ又はこれらの一部であることを排除する意図ではない。また、1バトルが終了するまでとしたが、その他見込み報酬(Q値)が適切に算出できる区切りの時点までとしても構わない。
【0030】
キャラクタ行動制御部42は、上記いずれの行動の選択・決定方法に関わらず、行動可能な各行動及びゲーム中に当該ゲームパラメータに基づき各行動が選択された場合の見込み報酬(Q値)を管理するための行動評価管理テーブル41bを適宜参照の上、ある状態Stのときの行動at及びその見込み報酬Q(St,at)と、行動aを選択した後の状態St+1のときの各行動a毎の見込み報酬Q(St+1,a)の中で最大の見込み報酬maxQ(St+1,a)とを用いて、以下の示す式により、適切な見込み報酬とすべきであった(より適切な)見込み報酬を算出する。なお、当該算出式は一例であり、これに限定されず適宜変更可能であることはいうまでもない。ここで、見込み報酬Q(Q値)とは、行動aをしたときに得られる報酬と今後に得られるであろう報酬の総和であり、rは行動atを選択・実行後の現実の報酬、αは学習率、γは割引率(報酬の減衰係数)をそれぞれ表す。
【数1】
これにより、当初の見込み報酬Q(St,at)を修正すべきと判断されると(すなわち当初の(状態Stのときの)見込み報酬Q(St,at)と後(St+1)から振り返って算出された見込み報酬(St,at)との間に乖離がある場合)、この見込み報酬(St,at)がより適切な値となるよう、後述するニューラルネットワークのパラメータを更新する。Q学習の基本的手法については、これ以上の詳述はしないが、当業者はこれらの手法を適宜一実施形態に係るシステムに適用することができる。
【0031】
図3は、本発明の一実施形態をフローとして示したものである。まず、ゲームパラメータ(入力値)の抽出を行い(ステップ110)、これを初期のニューラルネットワークに対して(第1の入力値として)入力を行うことで、ゲームキャラクタの各行動毎の第1の見込み報酬(Q値)を出力値として抽出し(ステップ120)、その中から所定のルールに従いゲームキャラクタの特定の行動を選択・決定し(ステップ130)、当該行動後のゲームパラメータを更新すると共に当該更新後のゲームパラメータを抽出し(ステップ140)、当該更新後のゲームパラメータを第2の入力値としてニューラルネットワークに入力を行い、ゲームキャラクタの各行動毎の第2の見込み報酬(Q値)を出力値として抽出し(ステップ150)、当該第1及び第2の見込み報酬(Q値)に基づき、より適切な見込み報酬を算出できるようニューラルネットワークのパラメータを更新する(ステップ160)。これらのステップを例えば1つゲームバトルが終了するまで、若しくは、複数世代繰り返していくことでゲームキャラクタの適切な行動の選択・決定に関わるニューラルネットワークのパラメータを進化させていく。以下、一実施形態に係る発明における、ゲームキャラクタのより最適な行動を決定するための、Q学習によるニューラルネットワークの学習を行う方法をより具体的に示す。
【0032】
まず、強化学習の対象となるニューラルネットワークは、1又は複数層のニューラルネットワーク(CNNも含む)構造を備える任意のネットワークであってよい。ここで、ニューラルネットワークのパラメータの更新とは、ニューラルネットワークの構造及び各ノード間の重み付けの内、ニューラルネットワークの各ノード間の重み付けを変更することを主として意図している。
図4は、このニューラルネットワークの構造及び各ノード間の重み付けの一例を示す。図示のように、一層の隠れ層を有するニューラルネットワーク(NN)であり、5つの入力層(ノード)に対して、3つのノードを有する隠れ層を通って、3つの出力層(ノード)と接続されている。接続する各ノード同士は、図示のように固有の重み付け(W11、W12、W21、W22等であり、この例では合計13の重み付け)でつながっている。ニューラルネットワークの構造は、通常は隠れ層が1層若しくは2層で構成され、隠れ層のノード数は、出力層のノード数と同じ数(30〜70程度)だけ設けられるが、特にこれに限られず、CNN、LSTMその他のニューラルネットワークであってもよい。
【0033】
上述のように、このようなニューラルネットワークを用いて、各時点におけるゲームパラメータを入力値として入力することで、各行動(例えば、攻撃、魔法、特技など)を選択する場合の見込み報酬(Q値)を出力として得ることができる。特に学習の初期段階でみられるが、この見込み報酬(Q値)が正しく算出されていない場合は、このニューラルネットワークの誤差伝播等を適用することで、同じゲームパラメータを入力値とする場合に、適切な見込み報酬(Q値)が算出できるようニューラルネットワークのパラメータ(ノード間の重み付け)を変更していく。これを複数世代に亘り継続することで、ニューラルネットワークが進化・改善していき、ゲームにおけるゲームキャラクタによるより適切な行動を選択・決定できることにつながる。
【0034】
しかしながら、ゲームによっては、選択が制限されている行動(常に選択可能ではない行動)や選択がされにくい行動などがあり、そのようなゲーム環境が複雑なゲームにおいては、Q学習に基づく強化学習をそのまま取り入れたとしても、ニューラルネットワークの学習が思うように進まないという問題があることが分かっている。当該問題に対する対処方法を検討した結果、下記手法により学習方法の改善が有効であることが判明した。
【0035】
以下、一実施形態としてロールプレーイングゲームを例に説明するが、任意のゲームであってもよく、特定のゲームに限定することを意図するものではない。ロールプレーイングゲームは、複数の味方キャラクタと敵キャラクタとが対戦するコマンドバトルゲームである。味方キャラクタ及び敵キャラクタは行動ゲージを持っており、時間の経過と共に行動ゲージが上昇する。そして行動ゲージが満タンになったキャラクタは行動可能状態となる。プレイヤは行動可能状態となったキャラクタに対して、コマンドを選択することによりゲームが進行する。ゲームの試行においては、ある時間におけるゲームの状態をパラメータ化して入力値として個体に入力し、ニューラルネットワークからの出力値に応じてコマンドを選択することでゲームを進行させる。なお、前述したが、ゲームにおける敵・味方キャラクタ(これらを総称してゲームキャラクタと呼ぶ)の各種ステータス、行動可能なゲームキャラクタ、行動可能な技、直近行動したゲームキャラクタのフラグ、直近行動したゲームキャラクタの技などをゲームパラメータと定義する。
【0036】
次に、この入力値の例をより具体的に説明する。ニューラルネットワークへの入力値として、例えば、ある時間(いずれかのゲームキャラクタが行動可能となった時間)における(1)ゲームキャラのステータス、(2)ゲームキャラクタのコマンド選択可能フラグと、(3)ゲームキャラクタが直近にコマンド選択を行ったかの正規化値とを入力するが、これらに限定することを意図するものではない。(1)ゲームキャラのステータスは、各ゲームキャラクタ(敵キャラクタも含む)の攻撃力、魔法攻撃力、防御力、魔法防御力、スピード、必殺技ゲージなどが考えられる。(2)ゲームキャラクタ全員のコマンド選択可能フラグは、全ゲームキャラクタ(味方キャラクタ及び敵キャラクタ)の各コマンドについての使用可能フラグ(0又は1)を意味する。
【0037】
当該ゲームでは、味方キャラクタ1、味方キャラクタ2、味方キャラクタ3、味方キャラクタ4、敵キャラクタがおり、それぞれのキャラクタに5つのコマンド(攻撃、防御、スキル1、スキル2、必殺技)が設定されている。ある時間において、味方キャラクタ1のみが行動可能であり、且つ味方キャラクタ1は攻撃、防御、スキル1、スキル2が選択可能である場合、
味方キャラクタ1_攻撃:1
味方キャラクタ1_防御:1
味方キャラクタ1_スキル1:1
味方キャラクタ1_スキル2:1
味方キャラクタ1_必殺技:0
味方キャラクタ2_攻撃:0
味方キャラクタ2_防御:0
味方キャラクタ2_スキル1:0
味方キャラクタ2_スキル2:0
味方キャラクタ2_必殺技:0
・・・(略)・・・
敵キャラクタ_必殺技:0
といった入力となる。
【0038】
次に、(3)のゲームキャラクタが直近にコマンド選択を行ったかの正規化値は、各コマンド毎に、当該各コマンドをどの程度直近に選択したかを示す値となる。例えば、あるコマンドを選択すると、その選択後、この正規化値は0と設定され、次のコマンド選択のタイミングで、0.2となり、その後0.2づつ最大値1まで増加する値に設定される。この正規化値が低いと同じコマンドが選択しづらくなる。
【0039】
次に、出力値の例をより具体的に説明する。ニューラルネットワークから味方キャラクタのコマンドそれぞれについて見込み報酬(Q値)が出力値として抽出される。これによって、ある時間における行動可能なキャラクタのコマンドが決定される。
例えば、味方キャラクタ1における見込み報酬(Q値)が、
味方キャラクタ1_攻撃:0.8
味方キャラクタ1_防御:0.5
味方キャラクタ1_スキル1:0.4
味方キャラクタ1_スキル2:0.1
味方キャラクタ1_必殺技:0
であった場合、通常のコマンド選択方法であれば一番見込み報酬(Q値)が大きい「攻撃」が選択されることとなる。
【0040】
ゲームバトルにおいては、この入力と出力を繰り返すことで、ゲームキャラクタの各行動を決定していく。通常は複数のゲームキャラクタの複数の行動が組み合わされてゲームバトルが進行してゆき、バトルが終了するまで継続することとなる。バトルの終了は、通常、例えば、敵ゲームキャラクタのHPが0となったり、味方ゲームキャラクタ全員のHPが0となる場合を意図しているが、ゲームバトルの評価が可能なその他の場合であっても構わない。
【0041】
出力値の例をより詳細に説明する。味方キャラクタが各コマンド及び見込み報酬(Q値)は下記のように抽出・算出される。
味方キャラクタ1_防御:0.89961839
味方キャラクタ1_熟練の拳:1.16006923
味方キャラクタ1_シャウト:0.6012032
味方キャラクタ1_たたかう:0.53579712
味方キャラクタ1_アーマー ブレイク:0.52256131
味方キャラクタ1_正拳突き:0.314955
味方キャラクタ1_風の刃:0.60766339
味方キャラクタ2_防御:0.63610768
味方キャラクタ2_聖なる伝説の剣:0.83349609
味方キャラクタ2_魔神の守護:0.29603601
味方キャラクタ2_シャウト:−0.20091677
味方キャラクタ2_イナズマ剣:0.4563098
味方キャラクタ2_火炎剣:0.6400938
味方キャラクタ2_たたかう:0.40863395
味方キャラクタ3_防御:0.95442247
味方キャラクタ3_海の覇者:0.29018426
味方キャラクタ3_兜割り:0.20885491
味方キャラクタ3_シャウト:−0.25541139
味方キャラクタ3_たたかう:0.50958467
味方キャラクタ3_魔法破壊:0.36382771
味方キャラクタ3_腕力破壊:0.77368307
味方キャラクタ4_防御:0.84505749
味方キャラクタ4_宿敵チェンジ:0.21710753
味方キャラクタ4_フレンドコンビネーション:0.77146935
味方キャラクタ4_シャウト:0.18860745
味方キャラクタ4_たたかう:0.68954039
味方キャラクタ4_破壊工作:0.8964808
味方キャラクタ4_剣光線:0.6781354
味方キャラクタ5_防御:0.37057304
味方キャラクタ5_全体回復:−1.29269934
味方キャラクタ5_女王の加護:−1.28307414
味方キャラクタ5_シャウト:−1.33874702
味方キャラクタ5_治癒:−0.21439075
味方キャラクタ5_アーマープラス:−0.15570354
味方キャラクタ5_たたかう:−2.44153452
上記例では、5キャラクタがそれぞれ7コマンドを有しているため、合計35個のコマンド及びその見込み報酬(Q値)が抽出されることとなる。なお、この見込み報酬(Q値)は、−1〜1の範囲で正規化しているが、Q学習では将来の報酬が足されるためその範囲に収まらない場合もある。
【0042】
このようにして、各コマンド毎の見込み報酬(Q値)が算出・抽出されると、これらの中から出力値の最も高い行動を通常選択・決定することとなるが、学習段階においては、必殺技など行動の選択・実行が制限されているため(必殺技ゲージが貯まるのに時間がかかるため、その間必殺技を選択できないため)、学習の範囲に偏りが生じてしまうという問題があることが明らかとなった。ゲーム、特にロールプレーイングのようなゲームではこの問題が顕著にみられた。そのため、学習段階においては、各行動による見込み報酬(Q値)とは無関係に行動可能なキャラクタの行動をランダムに選択・決定するか、または、行動可能なキャラクタの行動毎の見込み報酬(Q値)の最も高い行動を選択・決定することで、都度ニューラルネットワーク(NN)のパラメータの調整を行う。各行動による見込み報酬(Q値)とは無関係に行動可能なキャラクタの行動をランダムに選択・決定するか、または、行動可能なキャラクタの行動毎の見込み報酬(Q値)の最も高い行動を選択・決定するかのどちらを選択するかは、予めそれぞれの選択・決定方法の選定確率を設定値として決めておくことで、どちらの選択・決定方法をより優先して選ぶかを適宜設定可能である。これらの設定値が、それぞれ50%、50%であれば、等しい確率でいずれかの選択・決定方法が選ばれることとなり、それぞれ100%、0%と設定すると、常に各行動による見込み報酬(Q値)とは無関係に行動可能なキャラクタの行動をランダムに選択・決定する方法で、実行するコマンドが決定される。このような選択・決定の選定確率は学習の回数等に応じて所望の設定値に変更可能である。
【0043】
一実施形態において、上述の必殺技など行動の選択・実行が制限されている(必殺技ゲージが貯まるのに時間がかかるため、その間必殺技を選択できない)こと等に起因する学習の範囲の偏りを防止するため、各行動による見込み報酬(Q値)とは無関係に行動可能なキャラクタの行動をランダムに選択・決定する方法の選定確率の設定値を100%とし、行動可能なキャラクタの行動毎の見込み報酬(Q値)の最も高い行動を選択・決定する方法の選定確率0%とすることができる。このようにすることで、各行動による見込み報酬(Q値)を元に選択するコマンドを決定する方法に比して、選択されにくいコマンドがより多く選択されることとなる結果、効果的、効率的な学習を行うことが可能となる。このような選択されにくいコマンドの選択による学習が十分に進めば、それぞれの確率を変更させていくことができる。例えば、各回の学習毎に、各行動による見込み報酬(Q値)とは無関係に行動可能なキャラクタの行動をランダムに選択・決定する方法の選定確率の設定値を100%から、0.0015%づつ減らしていってもよい。このようにすると学習が進むにつれ、ランダムに選択・決定する方法の選定確率の設定値が下がっていき、見込み報酬(Q値)の最も高い行動を選択・決定する方法の選定確率が上がっていくこととなる。この設定値の変更幅に特に限定はないが、例えば、0.0015%〜0.015%とすることができる。また、設定しの変更幅は随時変更可能である。
【0044】
一実施形態において、選択されにくいコマンド(例えば必殺技など)が所定の回数以上選択された場合若しくは所定の条件を満たした場合に、各行動による見込み報酬(Q値)とは無関係に行動可能なキャラクタの行動をランダムに選択・決定する方法の選定確率の設定値を変更するように構成してもよい。例えば、選択されにくいコマンド(例えば必殺技など)が2回以上選択されると、当該ランダムに選択・決定する方法の選定確率の設定値を変更するようにしてもよい。その他、所定の条件は適宜設定することができる。
【0045】
ここで、一実施形態において、あるアクションに対する報酬の算出において、味方キャラクタのアクション数に比べ敵キャラクタの行動回数が少ないため、敵キャラクタの攻撃のあった前後で選択・行動した味方キャラクタの1人にのみ敵キャラクターからの攻撃の被ダメージ分を反映させると当該キャラクタのコマンドによるアクションが大きくマイナスの方向に修正されてしまうということが分かっている。これを避けるため、味方のキャラクターの数で相手の攻撃を分散し、アクションがあったキャラがその一つ支払い自分の行動の実際の与ダメージを下方修正したものを報酬とする。例えば、敵キャラクタの攻撃が1で味方キャラ数が5である場合、被ダメージメモリをそれぞれ−0.2づつとする。味方の1人のアクション(報酬1)が発火すると、0.8を報酬として学習する。被ダメージメモリは、この場合「−0.2、−0.2、−0.2、−0.2、0」となり、味方のキャラクタのアクション(報酬0.5)が発火すると、0.3を報酬として学習をする。被ダメージメモリは、この場合「−0.2、−0.2、−0.2、0、0」となる。敵キャラクタの攻撃が0.5である場合、被ダメージメモリは「−0.3、−0.3、−0.3、−0.1、0.1」となる。
【0046】
上述のように、学習段階においては、必殺技など行動の選択・実行が制限されている等の理由から、ゲーム、特にロールプレーイングのようなゲームにおける行動選択・決定の学習の範囲に偏りが生じてしまうことを回避するため、学習段階においては、各行動による見込み報酬(Q値)とは無関係に行動可能なキャラクタの行動をランダムに選択・決定するか、または、行動可能なキャラクタの行動毎の見込み報酬(Q値)の最も高い行動を選択・決定することで、都度ニューラルネットワーク(NN)のパラメータを調整を行うようにすることができるが、各行動による見込み報酬(Q値)とは無関係に行動可能なキャラクタの行動をランダムに選択・決定する場合においても、選択・実行が制限されている行動が必ずしも十分に選択されないという状況がある。これは、上述したゲーム中の各ゲームキャラクタにより選択された行動の履歴を管理するための行動履歴管理テーブル41cにおいて、選択・実行が制限されている行動に比してそれ以外の行動がより多く選択されることとなる結果、当該それ以外の行動の履歴が相対的に多くを占めることとなることに起因している。
【0047】
一実施形態において、これを更に改善するため、行動毎に異なるメモリ空間、若しくは、行動毎に履歴情報を格納すると共に、全ての行動(アクション)の中から同数だけ選び、各行動(アクション)毎の履歴の中から完全にランダムに選択するようにすることができる。一例として、
図5に示すような行動履歴管理テーブルが考えられる。
図5では、行動履歴管理テーブルが、各行動(行動1、行動2・・・行動n)毎にその履歴がテーブル管理される状態となっている。さらに、この場合、各行動毎に2つの履歴を保持するようにし、同じ行動が2回より多く選択されると、古い履歴は削除されることで、履歴の数が2つに制限されるようになっている。このようにすることで、ランダムに選択する場合にあっても、履歴の数が必然的に多くなるような行動が多く選択されるといったことが確実に防止され、どの行動(選択されにくい行動、選択されやすい行動も含め)であっても広く選択されることで学習に偏りを効果的に防止することができることを見出した。なお、
図5に示す例は一例であって、行動毎の行動履歴の数はこれに限定されず、適宜設定可能である。また、行動毎の行動履歴管理テーブルはそれぞれ別のメモリ空間に保存されるようにしてもよい。
【0048】
このようにすることで、ゲームのバトルなどゲームパラメータが刻々と変化するようなゲームにおいても、ニューラルネットワークのパラメータをQ学習の手法を用いて強化学習させ、ニューラルネットワークを更新していくことで、敵キャラクタや味方キャラクタのより適切な行動を決定することが可能となり、ゲームの進行を飽きることなくより自然に楽しめ、ゲーム全体への魅力を高めることが可能となる。
【0049】
以上、サーバ10が有する機能について説明した。次に、一実施形態における端末装置30が有する機能について説明する。端末装置30は、
図2に示すように、様々な情報を記憶する情報記憶部51と、一実施形態における画像情報を端末側で表示させるための制御を実行する端末側制御部52と、を有する。これらの機能は、CPU31及びメインメモリ32等のハードウェア、並びに、ストレージ35に記憶されている各種プログラムやテーブル等が協働して動作することによって実現され、例えば、ロードしたプログラムに含まれる命令をCPU31が実行することによって実現される。また、
図2に例示した端末装置30が有する機能の一部又は全部は、サーバ10と端末装置30とが協働することによって実現され、又は、サーバ10によって実現され得る。
【0050】
一実施形態における情報記憶部51は、メインメモリ32又はストレージ35等によって実現される。一実施形態における端末側制御部52は、ユーザキャラクタによる行動の選択や受信したゲーム画面情報の表示などの様々な端末側の処理の実行を制御する。例えば、端末側制御部52は、ユーザがユーザキャラクタのある行動を選択すると、これをサーバ10へ送信したり、味方キャラクタや敵キャラクタの行動の結果ゲームパラメータが変化すると、これらの行動の動作や変更後のゲームパラメータをサーバ10から受信し表示させたりすることができる。
【0051】
本明細書で説明された処理及び手順は、実施形態中で明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。より具体的には、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明される処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
【0052】
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
【0053】
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。