(57)【要約】      （修正有）【課題】ゲームパラメータを入力値としゲームキャラクタの各行動による見込み報酬Ｑを出力値とするニューラルネットワーク（ＮＮ）の重み付けをＱ学習により改善する。【解決手段】ゲームキャラクタに関するゲームパラメータを第１の入力値として抽出するステップ、第１の入力値に基づき、ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第１の見込み報酬（Ｑ値）を出力値として抽出するステップと、各行動の中からの１つの選択・実行後の前記ゲームパラメータを第２の入力値として抽出するステップと、第２の入力値に基づき、ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第２の見込み報酬（Ｑ値）を算出するステップと、第１の見込み報酬（Ｑ値）と第２の見込み報酬（Ｑ値）に基づき、１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメータを更新するステップと、を複数回繰り返し実行する。【選択図】図３
2018063602.tif 000002
【特許請求の範囲】
【請求項１】
Ｑ学習を用いて１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメータを調整する方法であって、
１又は複数のコンピュータ上で実行されることに応じて、当該１又は複数のコンピュータに、
１又は複数のゲームキャラクタに関するゲームパラメータを第１の入力値として抽出するステップ、
該第１の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第１の見込み報酬（Ｑ値）を出力値として抽出するステップと、
該各行動の中からの１つの選択・実行後の前記ゲームパラメータを第２の入力値として抽出するステップと、
該第２の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第２の見込み報酬（Ｑ値）を算出するステップと、
前記第１の見込み報酬（Ｑ値）と前記第２の見込み報酬（Ｑ値）に基づき、１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメータを更新するステップと、
を複数回繰り返し実行させることを特徴とするＱ学習を用いたニューラルネットワーク（ＮＮ）のパラメータを調整する方法。
【請求項２】
前記キャラクタの前記各行動の中からの１つの選択は、該各行動による見込み報酬（Ｑ値）の中から最も高い見込み報酬（Ｑ値）を有する行動を選択するか、または、該各行動による見込み報酬（Ｑ値）とは無関係にランダムに決定することにより行われることを特徴とする請求項１に記載の方法。
【請求項３】
前記キャラクタの前記各行動の中からの１つの選択は、前記各行動による見込み報酬（Ｑ値）の中から最も高い見込み報酬（Ｑ値）を有する行動を選択する確率の設定値並びに前記各行動による見込み報酬（Ｑ値）とは無関係にランダムに決定する確率の設定値に基づき行うことを特徴とする請求項２に記載の方法。
【請求項４】
前記キャラクタの前記各行動の中からの１つの選択は、該選択の回数の増大につれ、前記各行動による見込み報酬（Ｑ値）の中から最も高い見込み報酬（Ｑ値）を有する行動を選択する確率の設定値を増加させ、前記各行動による見込み報酬（Ｑ値）とは無関係にランダムに決定する確率の設定値を減少させることを特徴とする請求項３に記載の方法。
【請求項５】
前記キャラクタの前記各行動の中からの１つの選択は、該選択の回数の増大につれ、前記各行動による見込み報酬（Ｑ値）の中から最も高い見込み報酬（Ｑ値）を有する行動を選択する確率の設定値を約０．００１５％づつ増加させ、前記各行動による見込み報酬（Ｑ値）とは無関係にランダムに決定する確率の設定値を約０．００１５％づつ減少させることを特徴とする請求項４に記載の方法。
【請求項６】
前記キャラクタの前記各行動の中からの１つの選択が、該各行動による見込み報酬（Ｑ値）とは無関係にランダムに行われる場合、前記各行動毎の行動履歴を格納した複数の行動別履歴情報における各履歴情報の多さとは関係なく、該各行動の中からランダムに決定するものであることを特徴とする請求項２から５までのいずれか１項に記載の方法。
【請求項７】
前記キャラクタの前記各行動の中からの１つの選択が、該各行動による見込み報酬（Ｑ値）とは無関係にランダムに行われる場合、格納可能な行動履歴数が所定数に制限された行動履歴管理テーブルを参照し、各行動履歴の中からランダムに決定するものであることを特徴とする請求項２から５までのいずれか１項に記載の方法。
【請求項８】
前記複数の行動別履歴情報のそれぞれは、異なるメモリ空間に格納され、キャラクタの前記各行動の中からの１つの選択は、複数のメモリ空間の中からランダムに決定されたメモリ空間に格納されている行動別履歴情報の行動であることを特徴とする請求項２から７までのいずれか１項に記載の方法。
【請求項９】
前記キャラクタの前記各行動の中からの１つの選択は、該各行動に選択条件が付されている行動の中からランダムに決定するものであることを特徴とする請求項２から８までのいずれか１項に記載の方法。
【請求項１０】
前記各行動による見込み報酬（Ｑ値）とは無関係にランダムに決定する確率の設定値を、前記選択条件が付されている行動が所定の回数以上選択された場合に減少させることを特徴とする請求項３から９までのいずれか１項に記載の方法。
【請求項１１】
Ｑ学習を用いて１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメータを調整するシステムであって、
１又は複数のコンピュータ上で実行されることに応じて、当該１又は複数のコンピュータに、
１又は複数のゲームキャラクタのゲームパラメータを第１の入力値として抽出するステップ、
該第１の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第１の見込み報酬（Ｑ値）を出力値として抽出するステップと、
該各行動の中からの１つの選択・実行後の前記ゲームパラメータを第２の入力値として抽出するステップと、
該第２の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第２の見込み報酬（Ｑ値）を算出するステップと、
前記第１の見込み報酬（Ｑ値）と前記第２の見込み報酬（Ｑ値）に基づき、１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメータを更新するステップと、
を複数回繰り返し実行させることを特徴とするＱ学習を用いたニューラルネットワーク（ＮＮ）のパラメータを調整するシステム。
【請求項１２】
Ｑ学習を用いて１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメータを調整するプログラムであって、
１又は複数のコンピュータ上で実行されることに応じて、当該１又は複数のコンピュータに、
１又は複数のゲームキャラクタに関するゲームパラメータを第１の入力値として抽出するステップ、
該第１の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第１の見込み報酬（Ｑ値）を出力値として抽出するステップと、
該各行動の中からの１つの選択・実行後の前記ゲームパラメータを第２の入力値として抽出するステップと、
該第２の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第２の見込み報酬（Ｑ値）を算出するステップと、
前記第１の見込み報酬（Ｑ値）と前記第２の見込み報酬（Ｑ値）に基づき、１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメータを更新するステップと、
を複数回繰り返し実行させることを特徴とするＱ学習を用いたニューラルネットワーク（ＮＮ）のパラメータを調整するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）を用いたニューラルネットワークの重み付け調整のためのプログラム、システム、及び方法に関し、詳しくは、ゲーム環境のパラメータを入力値としゲームキャラクタの各行動による見込み報酬Ｑを出力値とするニューラルネットワーク（ＮＮ）の重み付けをＱ学習により改善するためのプログラム、システム、及び方法に関する。
【背景技術】
【０００２】
ニューラルネットワークは、脳のニューロン及びシナプスを模して考えられたモデルであり、学習および処理の２段階により構成される。学習段階では、多数の入力からその特徴を学習し、後の処理のためのニューラルネットワークを構築する。処理段階では、ニューラルネットワークを用いて新たな入力による出力値を抽出する処理を行う。近年では、学習段階の技術が大きく発展しており、例えばディープラーニングにより、高い表現力を持った多層ニューラルネットワークを構築できるようになりつつある。様々な分野で、この多層ニューラルネットワークの有効性が確かめられ、ディープラーニングの有効性が広く認知されるようになっている。
【０００３】
一方、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）は、強化学習のの１つで、タスクに対する正解の行動を与えることなく、環境から与えられる報酬を元にして状況に応じた適切な行動を学習するというものである。近年、ニューラルネットワークの構造やパラメータを強化学習により改善・更新する試みがなされている。例えば、非特許文献１では、多層ニューラルネットワーク（ＣＮＮ）とＱ学習を組み合わせ、多層ニューラルネットワークのパラメータをＱ学習により改善する手法として、ＤＱＮ（Ｄｅｅｐ  Ｑ−Ｎｅｔｗｏｒｋ）が提案されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“Ｈｕｍａｎ−ｌｅｖｅｌ  Ｃｏｎｔｒｏｌ  Ｔｈｒｏｕｇｈ  Ｄｅｅｐ  Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  Ｌｅａｒｎｉｎｇ”、Ｖｏｌｏｄｙｍｙｒ  Ｍｎｉｈ他、２０１５年２月２６日
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、当該ＤＱＮの手法をゲームキャラクタの最適な行動の選択のためニューラルネットワークのパラメータの学習に活用しようとすると、ゲーム特有の改善が必要となる。より具体的には、例えば、進行状況によりユーザキャラクタの行動の選択が制限される（選択可能となるまでに時間を要する必殺技などの行動など）ようなゲームにおいて、当該ＤＱＮの手法をそのまま活用しても、このようなユーザキャラクタの制限された行動の学習が思うように進まないために学習に偏りが生じ、ニューラルネットワークのパラメータの改善・更新が困難とならざるを得ないという問題があった。
【０００６】
本発明の実施形態は、ゲーム環境に特有な状況を考慮した、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）によるニューラルネットワークの重み付けの調整を行うことを目的の一つとする。本発明の実施形態の他の目的は、本明細書全体を参照することにより明らかとなる。
【課題を解決するための手段】
【０００７】
本発明の一実施形態に係る方法は、１又は複数のコンピュータ上で実行されることに応じて、当該１又は複数のコンピュータに、１又は複数のゲームキャラクタに関するゲームパラメータを第１の入力値として抽出するステップ、該第１の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第１の見込み報酬（Ｑ値）を出力値として抽出するステップと、該各行動の中からの１つの選択・実行後の前記ゲームパラメータを第２の入力値として抽出するステップと、該第２の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第２の見込み報酬（Ｑ値）を算出するステップと、前記第１の見込み報酬（Ｑ値）と前記第２の見込み報酬（Ｑ値）に基づき、１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメータを更新するステップとを複数回繰り返し実行させ、Ｑ学習を用いて１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメータの調整を行うように構成される。
【０００８】
本発明の一実施形態に係るシステムは、１又は複数のコンピュータ上で実行されることに応じて、当該１又は複数のコンピュータに、１又は複数のゲームキャラクタに関するゲームパラメータを第１の入力値として抽出するステップ、該第１の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第１の見込み報酬（Ｑ値）を出力値として抽出するステップと、該各行動の中からの１つの選択・実行後の前記ゲームパラメータを第２の入力値として抽出するステップと、該第２の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第２の見込み報酬（Ｑ値）を算出するステップと、前記第１の見込み報酬（Ｑ値）と前記第２の見込み報酬（Ｑ値）に基づき、１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメータを更新するステップとを複数回繰り返し実行させ、Ｑ学習を用いたニューラルネットワーク（ＮＮ）のパラメータの調整を行うように構成される。
【０００９】
本発明の一実施形態に係るプログラムは、１又は複数のコンピュータ上で実行されることに応じて、当該１又は複数のコンピュータに、１又は複数のゲームキャラクタのゲームパラメータを第１の入力値として抽出するステップ、該第１の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第１の見込み報酬（Ｑ値）を出力値として抽出するステップと、該各行動の中からの１つの選択・実行後の前記ゲームパラメータを第２の入力値として抽出するステップと、該第２の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタの各行動による第２の見込み報酬（Ｑ値）を算出するステップと、前記第１の見込み報酬（Ｑ値）と前記第２の見込み報酬（Ｑ値）に基づき、１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメータを更新するステップとを複数回繰り返し実行させ、Ｑ学習を用いたニューラルネットワーク（ＮＮ）のパラメータの調整を行うように構成される。
【発明の効果】
【００１０】
本発明の様々な実施形態によって、１つのバトルの間に１又は複数のゲームキャラクタの行動によりバトル状態が刻々と変化するゲーム、特に、進行状況によりユーザキャラクタの行動の選択が制限されるようなゲームにおいて、ユーザキャラクタの制限された行動の学習を効率的かつ確実に選択せしめ、ニューラルネットワークのパラメータの改善・更新を効果的に行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るシステム１の構成を概略的に示す構成図。
【図２】一実施形態におけるシステム１が有する機能を概略的に示すブロック図。
【図３】一実施形態におけるニューラルネットワーク（ＮＮ）のパラメータを調整するフローの一例を示す図。
【図４】一実施形態におけるニューラルネットワーク（ＮＮ）の構成の一例を示す図。
【図５】一実施形態に行動別履歴管理テーブルの一例を示す図。
【発明を実施するための形態】
【００１２】
図１は、本発明の一実施形態に係るシステム１の構成を概略的に示す構成図である。一実施形態におけるシステム１は、図示するように、サーバ１０と、このサーバ１０とインターネット等の通信網２０を介して接続された複数の端末装置３０と、を備え、端末装置３０のユーザに対して電子商取引サービスを提供する。また、一実施形態におけるシステム１は、キャラクタを用いたゲームや電子書籍、動画コンテンツ、及び音楽コンテンツ等のゲーム以外の様々なデジタルコンテンツの提供サービス、並びに、テキストチャット（ミニメール）、サークル、アバター、日記、伝言板、及び挨拶等の様々なユーザ間のコミュニケーション機能を実現するコミュニケーションプラットフォーム（ＳＮＳプラットフォーム）サービス等の様々なインターネットサービスを、端末装置３０のユーザに対して提供し得る。
【００１３】
一実施形態におけるサーバ１０は、一般的なコンピュータとして構成されており、図示のとおり、ＣＰＵ（コンピュータプロセッサ）１１と、メインメモリ１２と、ユーザＩ／Ｆ１３と、通信Ｉ／Ｆ１４と、ストレージ（記憶装置）１５と、を含み、これらの各構成要素がバス１７を介して互いに電気的に接続されている。ＣＰＵ１１は、ストレージ１５からオペレーティングシステムやその他様々なプログラムをメインメモリ１２にロードし、このロードしたプログラムに含まれる命令を実行する。メインメモリ１２は、ＣＰＵ１１が実行するプログラムを格納するために用いられ、例えば、ＤＲＡＭ等によって構成される。なお、一実施形態におけるサーバ１０は、それぞれ上述したようなハードウェア構成を有する複数のコンピュータを用いて構成され得る。なお、上述したＣＰＵ（コンピュータプロセッサ）１１は一例であり、これに代えて、ＧＰＵ（グラフィックス・プロセッシング・ユニット）を用いるものであってもよいことは言うまでもない。ＣＰＵ及び／又はＧＰＵをどのように選択するかは、所望のコストないし効率などを勘案した上で適宜決定することが可能である。以下、ＣＰＵ１１を例として説明する。
【００１４】
ユーザＩ／Ｆ１３は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、ＣＰＵ１１の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信Ｉ／Ｆ１４は、ハードウェア、ファームウェア、又はＴＣＰ／ＩＰドライバやＰＰＰドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網２０を介して端末装置３０と通信可能に構成される。
【００１５】
ストレージ１５は、例えば磁気ディスクドライブで構成され、各種サービスを提供するための制御用プログラム等の様々なプログラムが記憶される。また、ストレージ１５には、各種サービスを提供するための各種データも記憶され得る。ストレージ１５に記憶され得る各種データは、サーバ１０と通信可能に接続されるサーバ１０とは物理的に別体のデータベースサーバ等に格納されてもよい。
【００１６】
一実施形態において、サーバ１０は、階層構造の複数のウェブページから成るウェブサイトを管理するウェブサーバとしても機能し、こうしたウェブサイトを介して各種サービスを端末装置３０のユーザに対して提供し得る。ストレージ１５には、このウェブページに対応するＨＴＭＬデータも記憶され得る。ＨＴＭＬデータは、様々な画像データが関連付けられ、又、ＪａｖａＳｃｒｉｐｔ（登録商標）等のスクリプト言語等で記述された様々なプログラムが埋め込まれ得る。
【００１７】
また、一実施形態において、サーバ１０は、端末装置３０においてウェブブラウザ以外の実行環境上で実行されるアプリケーション（プログラム）を介して各種サービスを提供し得る。ストレージ１５には、こうしたアプリケーションも記憶され得る。このアプリケーションは、例えば、Ｏｂｊｅｃｔｉｖｅ−ＣやＪａｖａ（登録商標）等のプログラミング言語を用いて作成される。ストレージ１５に記憶されたアプリケーションは、配信要求に応じて端末装置３０に配信される。なお、端末装置３０は、こうしたアプリケーションを、サーバ１０以外の他のサーバ（アプリマーケットを提供するサーバ）等からダウンロードすることもできる。
【００１８】
このように、サーバ１０は、各種サービスを提供するためのウェブサイトを管理し、当該ウェブサイトを構成するウェブページ（ＨＴＭＬデータ）を端末装置３０からの要求に応答して配信することができる。また、上述したように、サーバ１０は、このようなウェブページ（ウェブブラウザ）を用いた各種サービスの提供とは代替的に、又は、これに加えて、端末装置３０において実行されるアプリケーションとの通信に基づいて各種サービスを提供することができる。いずれの態様で当該サービスを提供するにしても、サーバ１０は、各種サービスの提供に必要な各種データ（画面表示に必要なデータを含む）を端末装置３０との間で送受信することができる。また、サーバ１０は、各ユーザを識別する識別情報（例えば、ユーザＩＤ）毎に各種データを記憶し、ユーザ毎に各種サービスの提供状況を管理することができる。詳細な説明は省略するが、サーバ１０は、ユーザの認証処理や課金処理等を行う機能を有することもできる。
【００１９】
一実施形態における端末装置３０は、サーバ１０が提供するウェブサイトのウェブページをウェブブラウザ上で表示すると共にアプリケーションを実行するための実行環境を実装した任意の情報処理装置であり、スマートフォン、タブレット端末、ウェアラブルデバイス、パーソナルコンピュータ、及びゲーム専用端末等が含まれ得るが、これらに限定されるものではない。
【００２０】
端末装置３０は、一般的なコンピュータとして構成され、図１に示すとおり、ＣＰＵ（コンピュータプロセッサ）３１と、メインメモリ３２と、ユーザＩ／Ｆ３３と、通信Ｉ／Ｆ３４と、ストレージ（記憶装置）３５と、を含み、これらの各構成要素がバス３７を介して互いに電気的に接続されている。
【００２１】
ＣＰＵ３１は、ストレージ３５からオペレーティングシステムやその他様々なプログラムをメインメモリ３２にロードし、このロードしたプログラムに含まれる命令を実行する。メインメモリ３２は、ＣＰＵ３１が実行するプログラムを格納するために用いられ、例えば、ＤＲＡＭ等によって構成される。
【００２２】
ユーザＩ／Ｆ３３は、例えば、ユーザの入力を受け付けるタッチパネル、キーボード、ボタン及びマウス等の情報入力装置と、ＣＰＵ３１の演算結果を出力する液晶ディスプレイ等の情報表示装置とを含む。通信Ｉ／Ｆ３４は、ハードウェア、ファームウェア、又は、ＴＣＰ／ＩＰドライバやＰＰＰドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網２０を介してサーバ１０と通信可能に構成される。
【００２３】
ストレージ３５は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムが記憶される。また、ストレージ３５は、サーバ１０から受信した様々なアプリケーションが記憶され得る。
【００２４】
端末装置３０は、例えば、ＨＴＭＬ形式のファイル（ＨＴＭＬデータ）を解釈して画面表示するためのウェブブラウザを備えており、このウェブブラウザの機能によりサーバ１０から取得したＨＴＭＬデータを解釈して、受信したＨＴＭＬデータに対応するウェブページを表示することができる。また、端末装置３０のウェブブラウザには、ＨＴＭＬデータに関連付けられた様々な形式のファイルを実行可能なプラグインソフトが組み込まれ得る。
【００２５】
端末装置３０のユーザがサーバ１０によって提供されるサービスを利用する際には、例えば、ＨＴＭＬデータやアプリケーションによって指示されたアニメーションや操作用アイコン等が端末装置３０に画面表示される。ユーザは、端末装置３０のタッチパネル等を用いて各種指示を入力することができる。ユーザから入力された指示は、端末装置３０のウェブブラウザやＮｇＣｏｒｅ（商標）等のアプリケーション実行環境の機能を介してサーバ１０に伝達される。
【００２６】
次に、このように構成された一実施形態におけるシステム１が有する機能について説明する。上述したように、一実施形態におけるシステム１は、ユーザに対して様々なインターネットサービスを提供し得るが、特に、ゲーム配信サービスを提供することが可能である。以降、一実施形態におけるシステム１の機能について、ゲーム配信サービスを提供する機能を例として説明する。
【００２７】
図２は、システム１（サーバ１０及び端末装置３０）が有する機能を概略的に示すブロック図である。まず、一実施形態におけるサーバ１０が有する機能について説明する。サーバ１０は、図示するように、様々な情報を記憶する情報記憶部４１と、一実施形態におけるゲームキャラクタの行動を決定するキャラクタ行動制御部４２と、を備える。これらの機能は、ＣＰＵ１１及びメインメモリ１２等のハードウェア、並びに、ストレージ１５に記憶されている各種プログラムやテーブル等が協働して動作することによって実現され、例えば、ロードしたプログラムに含まれる命令をＣＰＵ１１が実行することによって実現される。また、図２に例示したサーバ１０が有する機能の一部又は全部は、端末装置３０によって実現され、又は、サーバ１０と端末装置３０とが協働することによって実現され得る。
【００２８】
一実施形態における情報記憶部４１は、ストレージ１５等によって実現され、図２に示すように、ゲームにおける敵・味方キャラクタ（これらを総称してゲームキャラクタと呼ぶ）の各種ステータス、行動可能なキャラクタ、行動可能な技、直近行動したキャラクタのフラグ、直近行動したキャラクタの技などのゲームパラメータを管理するためのゲームパラメータ管理テーブル４１ａと、行動可能な各行動及びゲーム中に当該ゲームパラメータに基づき各行動が選択された場合の見込み報酬（Ｑ値）を管理するための行動評価管理テーブル４１ｂと、ゲーム中の各ゲームキャラクタにより選択された行動の履歴を管理するための行動履歴管理テーブル４１ｃと、を有する。
【００２９】
次に、一実施形態におけるゲームキャラクタの行動を決定するキャラクタ行動制御部４２の機能について説明する。キャラクタ行動制御部４２は、情報記憶部４１のゲームパラメータ管理テーブル４１ａに格納されている敵・味方キャラクタの各種ステータス、行動可能なキャラクタ、行動可能な技、直近行動したキャラクタのフラグ、直近行動したキャラクタの技などのゲームパラメータに基づき各ゲームキャラクタの行動を選択・決定していく。より具体的には、キャラクタ行動制御部４２は、ゲームパラメータ管理テーブル４１ａのゲームパラメータを抽出し、これを入力値として１又は複数層のニューラルネットワークに入力し、出力として行動可能なキャラクタの行動毎の見込み報酬（Ｑ値）を出力値として抽出し、これらの中から出力値の最も高い行動を通常選択・決定することとなるが、学習段階においては、各行動による見込み報酬（Ｑ値）とは無関係に行動可能なキャラクタの行動をランダムに選択・決定するか、または、行動可能なキャラクタの行動毎の見込み報酬（Ｑ値）の最も高い行動を選択・決定することで、都度ニューラルネットワーク（ＮＮ）のパラメータを調整を行う。キャラクタ行動制御部４２は、行動の選択・決定のため、必要に応じて行動評価管理テーブル４１ｂを参照し、行動可能な各行動及びゲーム中に当該ゲームパラメータに基づき各行動が選択された場合の見込み報酬（Ｑ値）を得ることができる。キャラクタ行動制御部４２は、このようにして例えば、１つのバトルが終了するまでの間の味方キャラクタの各行動を選択・決定することで学習を進めていくこととなる。なお、この例では、１バトルが終了するまでの味方キャラクタの各行動として説明したが、敵キャラクタ、味方キャラクタ又はこれらの一部であることを排除する意図ではない。また、１バトルが終了するまでとしたが、その他見込み報酬（Ｑ値）が適切に算出できる区切りの時点までとしても構わない。
【００３０】
キャラクタ行動制御部４２は、上記いずれの行動の選択・決定方法に関わらず、行動可能な各行動及びゲーム中に当該ゲームパラメータに基づき各行動が選択された場合の見込み報酬（Ｑ値）を管理するための行動評価管理テーブル４１ｂを適宜参照の上、ある状態Ｓｔのときの行動ａｔ及びその見込み報酬Ｑ（Ｓｔ，ａｔ）と、行動ａを選択した後の状態Ｓｔ＋１のときの各行動ａ毎の見込み報酬Ｑ（Ｓｔ＋１，a）の中で最大の見込み報酬ｍａｘＱ（Ｓｔ＋１，ａ）とを用いて、以下の示す式により、適切な見込み報酬とすべきであった（より適切な）見込み報酬を算出する。なお、当該算出式は一例であり、これに限定されず適宜変更可能であることはいうまでもない。ここで、見込み報酬Ｑ（Ｑ値）とは、行動ａをしたときに得られる報酬と今後に得られるであろう報酬の総和であり、ｒは行動ａｔを選択・実行後の現実の報酬、αは学習率、γは割引率（報酬の減衰係数）をそれぞれ表す。
【数１】
2018063602.tif 000003
これにより、当初の見込み報酬Ｑ（Ｓｔ，ａｔ）を修正すべきと判断されると（すなわち当初の（状態Ｓｔのときの）見込み報酬Ｑ（Ｓｔ，ａｔ）と後（Ｓｔ＋１）から振り返って算出された見込み報酬（Ｓｔ，ａｔ）との間に乖離がある場合）、この見込み報酬（Ｓｔ，ａｔ）がより適切な値となるよう、後述するニューラルネットワークのパラメータを更新する。Ｑ学習の基本的手法については、これ以上の詳述はしないが、当業者はこれらの手法を適宜一実施形態に係るシステムに適用することができる。
【００３１】
図３は、本発明の一実施形態をフローとして示したものである。まず、ゲームパラメータ（入力値）の抽出を行い（ステップ１１０）、これを初期のニューラルネットワークに対して（第１の入力値として）入力を行うことで、ゲームキャラクタの各行動毎の第１の見込み報酬（Ｑ値）を出力値として抽出し（ステップ１２０）、その中から所定のルールに従いゲームキャラクタの特定の行動を選択・決定し（ステップ１３０）、当該行動後のゲームパラメータを更新すると共に当該更新後のゲームパラメータを抽出し（ステップ１４０）、当該更新後のゲームパラメータを第２の入力値としてニューラルネットワークに入力を行い、ゲームキャラクタの各行動毎の第２の見込み報酬（Ｑ値）を出力値として抽出し（ステップ１５０）、当該第１及び第２の見込み報酬（Ｑ値）に基づき、より適切な見込み報酬を算出できるようニューラルネットワークのパラメータを更新する（ステップ１６０）。これらのステップを例えば１つゲームバトルが終了するまで、若しくは、複数世代繰り返していくことでゲームキャラクタの適切な行動の選択・決定に関わるニューラルネットワークのパラメータを進化させていく。以下、一実施形態に係る発明における、ゲームキャラクタのより最適な行動を決定するための、Ｑ学習によるニューラルネットワークの学習を行う方法をより具体的に示す。
【００３２】
まず、強化学習の対象となるニューラルネットワークは、１又は複数層のニューラルネットワーク（ＣＮＮも含む）構造を備える任意のネットワークであってよい。ここで、ニューラルネットワークのパラメータの更新とは、ニューラルネットワークの構造及び各ノード間の重み付けの内、ニューラルネットワークの各ノード間の重み付けを変更することを主として意図している。図４は、このニューラルネットワークの構造及び各ノード間の重み付けの一例を示す。図示のように、一層の隠れ層を有するニューラルネットワーク（ＮＮ）であり、５つの入力層（ノード）に対して、３つのノードを有する隠れ層を通って、３つの出力層（ノード）と接続されている。接続する各ノード同士は、図示のように固有の重み付け（Ｗ１１、Ｗ１２、Ｗ２１、Ｗ２２等であり、この例では合計１３の重み付け）でつながっている。ニューラルネットワークの構造は、通常は隠れ層が１層若しくは２層で構成され、隠れ層のノード数は、出力層のノード数と同じ数（３０〜７０程度）だけ設けられるが、特にこれに限られず、ＣＮＮ、ＬＳＴＭその他のニューラルネットワークであってもよい。
【００３３】
上述のように、このようなニューラルネットワークを用いて、各時点におけるゲームパラメータを入力値として入力することで、各行動（例えば、攻撃、魔法、特技など）を選択する場合の見込み報酬（Ｑ値）を出力として得ることができる。特に学習の初期段階でみられるが、この見込み報酬（Ｑ値）が正しく算出されていない場合は、このニューラルネットワークの誤差伝播等を適用することで、同じゲームパラメータを入力値とする場合に、適切な見込み報酬（Ｑ値）が算出できるようニューラルネットワークのパラメータ（ノード間の重み付け）を変更していく。これを複数世代に亘り継続することで、ニューラルネットワークが進化・改善していき、ゲームにおけるゲームキャラクタによるより適切な行動を選択・決定できることにつながる。
【００３４】
しかしながら、ゲームによっては、選択が制限されている行動（常に選択可能ではない行動）や選択がされにくい行動などがあり、そのようなゲーム環境が複雑なゲームにおいては、Ｑ学習に基づく強化学習をそのまま取り入れたとしても、ニューラルネットワークの学習が思うように進まないという問題があることが分かっている。当該問題に対する対処方法を検討した結果、下記手法により学習方法の改善が有効であることが判明した。
【００３５】
以下、一実施形態としてロールプレーイングゲームを例に説明するが、任意のゲームであってもよく、特定のゲームに限定することを意図するものではない。ロールプレーイングゲームは、複数の味方キャラクタと敵キャラクタとが対戦するコマンドバトルゲームである。味方キャラクタ及び敵キャラクタは行動ゲージを持っており、時間の経過と共に行動ゲージが上昇する。そして行動ゲージが満タンになったキャラクタは行動可能状態となる。プレイヤは行動可能状態となったキャラクタに対して、コマンドを選択することによりゲームが進行する。ゲームの試行においては、ある時間におけるゲームの状態をパラメータ化して入力値として個体に入力し、ニューラルネットワークからの出力値に応じてコマンドを選択することでゲームを進行させる。なお、前述したが、ゲームにおける敵・味方キャラクタ（これらを総称してゲームキャラクタと呼ぶ）の各種ステータス、行動可能なゲームキャラクタ、行動可能な技、直近行動したゲームキャラクタのフラグ、直近行動したゲームキャラクタの技などをゲームパラメータと定義する。
【００３６】
次に、この入力値の例をより具体的に説明する。ニューラルネットワークへの入力値として、例えば、ある時間（いずれかのゲームキャラクタが行動可能となった時間）における（１）ゲームキャラのステータス、（２）ゲームキャラクタのコマンド選択可能フラグと、（３）ゲームキャラクタが直近にコマンド選択を行ったかの正規化値とを入力するが、これらに限定することを意図するものではない。（１）ゲームキャラのステータスは、各ゲームキャラクタ（敵キャラクタも含む）の攻撃力、魔法攻撃力、防御力、魔法防御力、スピード、必殺技ゲージなどが考えられる。（２）ゲームキャラクタ全員のコマンド選択可能フラグは、全ゲームキャラクタ（味方キャラクタ及び敵キャラクタ）の各コマンドについての使用可能フラグ（０又は１）を意味する。
【００３７】
当該ゲームでは、味方キャラクタ１、味方キャラクタ２、味方キャラクタ３、味方キャラクタ４、敵キャラクタがおり、それぞれのキャラクタに５つのコマンド（攻撃、防御、スキル１、スキル２、必殺技）が設定されている。ある時間において、味方キャラクタ１のみが行動可能であり、且つ味方キャラクタ１は攻撃、防御、スキル１、スキル２が選択可能である場合、
味方キャラクタ１_攻撃：１
味方キャラクタ１_防御：１
味方キャラクタ１_スキル１：１
味方キャラクタ１_スキル２：１
味方キャラクタ１_必殺技：０
味方キャラクタ２_攻撃：０
味方キャラクタ２_防御：０
味方キャラクタ２_スキル１：０
味方キャラクタ２_スキル２：０
味方キャラクタ２_必殺技：０
・・・（略）・・・
敵キャラクタ_必殺技：０
といった入力となる。
【００３８】
次に、（３）のゲームキャラクタが直近にコマンド選択を行ったかの正規化値は、各コマンド毎に、当該各コマンドをどの程度直近に選択したかを示す値となる。例えば、あるコマンドを選択すると、その選択後、この正規化値は０と設定され、次のコマンド選択のタイミングで、０．２となり、その後０．２づつ最大値１まで増加する値に設定される。この正規化値が低いと同じコマンドが選択しづらくなる。
【００３９】
次に、出力値の例をより具体的に説明する。ニューラルネットワークから味方キャラクタのコマンドそれぞれについて見込み報酬（Ｑ値）が出力値として抽出される。これによって、ある時間における行動可能なキャラクタのコマンドが決定される。
例えば、味方キャラクタ１における見込み報酬（Ｑ値）が、
味方キャラクタ１_攻撃：０．８
味方キャラクタ１_防御：０．５
味方キャラクタ１_スキル１：０．４
味方キャラクタ１_スキル２：０．１
味方キャラクタ１_必殺技：０
であった場合、通常のコマンド選択方法であれば一番見込み報酬（Ｑ値）が大きい「攻撃」が選択されることとなる。
【００４０】
ゲームバトルにおいては、この入力と出力を繰り返すことで、ゲームキャラクタの各行動を決定していく。通常は複数のゲームキャラクタの複数の行動が組み合わされてゲームバトルが進行してゆき、バトルが終了するまで継続することとなる。バトルの終了は、通常、例えば、敵ゲームキャラクタのＨＰが０となったり、味方ゲームキャラクタ全員のＨＰが０となる場合を意図しているが、ゲームバトルの評価が可能なその他の場合であっても構わない。
【００４１】
出力値の例をより詳細に説明する。味方キャラクタが各コマンド及び見込み報酬（Ｑ値）は下記のように抽出・算出される。
味方キャラクタ１_防御：０．８９９６１８３９
味方キャラクタ１_熟練の拳：１．１６００６９２３
味方キャラクタ１_シャウト：０．６０１２０３２
味方キャラクタ１_たたかう：０．５３５７９７１２
味方キャラクタ１_アーマー  ブレイク：０．５２２５６１３１
味方キャラクタ１_正拳突き：０．３１４９５５
味方キャラクタ１_風の刃：０．６０７６６３３９
味方キャラクタ２_防御：０．６３６１０７６８
味方キャラクタ２_聖なる伝説の剣：０．８３３４９６０９
味方キャラクタ２_魔神の守護：０．２９６０３６０１
味方キャラクタ２_シャウト：−０．２００９１６７７
味方キャラクタ２_イナズマ剣：０．４５６３０９８
味方キャラクタ２_火炎剣：０．６４００９３８
味方キャラクタ２_たたかう：０．４０８６３３９５
味方キャラクタ３_防御：０．９５４４２２４７
味方キャラクタ３_海の覇者：０．２９０１８４２６
味方キャラクタ３_兜割り：０．２０８８５４９１
味方キャラクタ３_シャウト：−０．２５５４１１３９
味方キャラクタ３_たたかう：０．５０９５８４６７
味方キャラクタ３_魔法破壊：０．３６３８２７７１
味方キャラクタ３_腕力破壊：０．７７３６８３０７
味方キャラクタ４_防御：０．８４５０５７４９
味方キャラクタ４_宿敵チェンジ：０．２１７１０７５３
味方キャラクタ４_フレンドコンビネーション：０．７７１４６９３５
味方キャラクタ４_シャウト：０．１８８６０７４５
味方キャラクタ４_たたかう：０．６８９５４０３９
味方キャラクタ４_破壊工作：０．８９６４８０８
味方キャラクタ４_剣光線：０．６７８１３５４
味方キャラクタ５_防御：０．３７０５７３０４
味方キャラクタ５_全体回復：−１．２９２６９９３４
味方キャラクタ５_女王の加護：−１．２８３０７４１４
味方キャラクタ５_シャウト：−１．３３８７４７０２
味方キャラクタ５_治癒：−０．２１４３９０７５
味方キャラクタ５_アーマープラス：−０．１５５７０３５４
味方キャラクタ５_たたかう：−２．４４１５３４５２
上記例では、５キャラクタがそれぞれ７コマンドを有しているため、合計３５個のコマンド及びその見込み報酬（Ｑ値）が抽出されることとなる。なお、この見込み報酬（Ｑ値）は、−１〜１の範囲で正規化しているが、Ｑ学習では将来の報酬が足されるためその範囲に収まらない場合もある。
【００４２】
このようにして、各コマンド毎の見込み報酬（Ｑ値）が算出・抽出されると、これらの中から出力値の最も高い行動を通常選択・決定することとなるが、学習段階においては、必殺技など行動の選択・実行が制限されているため（必殺技ゲージが貯まるのに時間がかかるため、その間必殺技を選択できないため）、学習の範囲に偏りが生じてしまうという問題があることが明らかとなった。ゲーム、特にロールプレーイングのようなゲームではこの問題が顕著にみられた。そのため、学習段階においては、各行動による見込み報酬（Ｑ値）とは無関係に行動可能なキャラクタの行動をランダムに選択・決定するか、または、行動可能なキャラクタの行動毎の見込み報酬（Ｑ値）の最も高い行動を選択・決定することで、都度ニューラルネットワーク（ＮＮ）のパラメータの調整を行う。各行動による見込み報酬（Ｑ値）とは無関係に行動可能なキャラクタの行動をランダムに選択・決定するか、または、行動可能なキャラクタの行動毎の見込み報酬（Ｑ値）の最も高い行動を選択・決定するかのどちらを選択するかは、予めそれぞれの選択・決定方法の選定確率を設定値として決めておくことで、どちらの選択・決定方法をより優先して選ぶかを適宜設定可能である。これらの設定値が、それぞれ５０％、５０％であれば、等しい確率でいずれかの選択・決定方法が選ばれることとなり、それぞれ１００％、０％と設定すると、常に各行動による見込み報酬（Ｑ値）とは無関係に行動可能なキャラクタの行動をランダムに選択・決定する方法で、実行するコマンドが決定される。このような選択・決定の選定確率は学習の回数等に応じて所望の設定値に変更可能である。
【００４３】
一実施形態において、上述の必殺技など行動の選択・実行が制限されている（必殺技ゲージが貯まるのに時間がかかるため、その間必殺技を選択できない）こと等に起因する学習の範囲の偏りを防止するため、各行動による見込み報酬（Ｑ値）とは無関係に行動可能なキャラクタの行動をランダムに選択・決定する方法の選定確率の設定値を１００％とし、行動可能なキャラクタの行動毎の見込み報酬（Ｑ値）の最も高い行動を選択・決定する方法の選定確率０％とすることができる。このようにすることで、各行動による見込み報酬（Ｑ値）を元に選択するコマンドを決定する方法に比して、選択されにくいコマンドがより多く選択されることとなる結果、効果的、効率的な学習を行うことが可能となる。このような選択されにくいコマンドの選択による学習が十分に進めば、それぞれの確率を変更させていくことができる。例えば、各回の学習毎に、各行動による見込み報酬（Ｑ値）とは無関係に行動可能なキャラクタの行動をランダムに選択・決定する方法の選定確率の設定値を１００％から、０．００１５％づつ減らしていってもよい。このようにすると学習が進むにつれ、ランダムに選択・決定する方法の選定確率の設定値が下がっていき、見込み報酬（Ｑ値）の最も高い行動を選択・決定する方法の選定確率が上がっていくこととなる。この設定値の変更幅に特に限定はないが、例えば、０．００１５％〜０．０１５％とすることができる。また、設定しの変更幅は随時変更可能である。
【００４４】
一実施形態において、選択されにくいコマンド（例えば必殺技など）が所定の回数以上選択された場合若しくは所定の条件を満たした場合に、各行動による見込み報酬（Ｑ値）とは無関係に行動可能なキャラクタの行動をランダムに選択・決定する方法の選定確率の設定値を変更するように構成してもよい。例えば、選択されにくいコマンド（例えば必殺技など）が２回以上選択されると、当該ランダムに選択・決定する方法の選定確率の設定値を変更するようにしてもよい。その他、所定の条件は適宜設定することができる。
【００４５】
ここで、一実施形態において、あるアクションに対する報酬の算出において、味方キャラクタのアクション数に比べ敵キャラクタの行動回数が少ないため、敵キャラクタの攻撃のあった前後で選択・行動した味方キャラクタの１人にのみ敵キャラクターからの攻撃の被ダメージ分を反映させると当該キャラクタのコマンドによるアクションが大きくマイナスの方向に修正されてしまうということが分かっている。これを避けるため、味方のキャラクターの数で相手の攻撃を分散し、アクションがあったキャラがその一つ支払い自分の行動の実際の与ダメージを下方修正したものを報酬とする。例えば、敵キャラクタの攻撃が１で味方キャラ数が５である場合、被ダメージメモリをそれぞれ−０．２づつとする。味方の１人のアクション(報酬１)が発火すると、０．８を報酬として学習する。被ダメージメモリは、この場合「−０．２、−０．２、−０．２、−０．２、０」となり、味方のキャラクタのアクション（報酬０．５）が発火すると、０．３を報酬として学習をする。被ダメージメモリは、この場合「−０．２、−０．２、−０．２、０、０」となる。敵キャラクタの攻撃が０．５である場合、被ダメージメモリは「−０．３、−０．３、−０．３、−０．１、０．１」となる。
【００４６】
上述のように、学習段階においては、必殺技など行動の選択・実行が制限されている等の理由から、ゲーム、特にロールプレーイングのようなゲームにおける行動選択・決定の学習の範囲に偏りが生じてしまうことを回避するため、学習段階においては、各行動による見込み報酬（Ｑ値）とは無関係に行動可能なキャラクタの行動をランダムに選択・決定するか、または、行動可能なキャラクタの行動毎の見込み報酬（Ｑ値）の最も高い行動を選択・決定することで、都度ニューラルネットワーク（ＮＮ）のパラメータを調整を行うようにすることができるが、各行動による見込み報酬（Ｑ値）とは無関係に行動可能なキャラクタの行動をランダムに選択・決定する場合においても、選択・実行が制限されている行動が必ずしも十分に選択されないという状況がある。これは、上述したゲーム中の各ゲームキャラクタにより選択された行動の履歴を管理するための行動履歴管理テーブル４１ｃにおいて、選択・実行が制限されている行動に比してそれ以外の行動がより多く選択されることとなる結果、当該それ以外の行動の履歴が相対的に多くを占めることとなることに起因している。
【００４７】
一実施形態において、これを更に改善するため、行動毎に異なるメモリ空間、若しくは、行動毎に履歴情報を格納すると共に、全ての行動（アクション）の中から同数だけ選び、各行動（アクション）毎の履歴の中から完全にランダムに選択するようにすることができる。一例として、図５に示すような行動履歴管理テーブルが考えられる。図５では、行動履歴管理テーブルが、各行動（行動１、行動２・・・行動ｎ）毎にその履歴がテーブル管理される状態となっている。さらに、この場合、各行動毎に２つの履歴を保持するようにし、同じ行動が２回より多く選択されると、古い履歴は削除されることで、履歴の数が２つに制限されるようになっている。このようにすることで、ランダムに選択する場合にあっても、履歴の数が必然的に多くなるような行動が多く選択されるといったことが確実に防止され、どの行動（選択されにくい行動、選択されやすい行動も含め）であっても広く選択されることで学習に偏りを効果的に防止することができることを見出した。なお、図５に示す例は一例であって、行動毎の行動履歴の数はこれに限定されず、適宜設定可能である。また、行動毎の行動履歴管理テーブルはそれぞれ別のメモリ空間に保存されるようにしてもよい。
【００４８】
このようにすることで、ゲームのバトルなどゲームパラメータが刻々と変化するようなゲームにおいても、ニューラルネットワークのパラメータをＱ学習の手法を用いて強化学習させ、ニューラルネットワークを更新していくことで、敵キャラクタや味方キャラクタのより適切な行動を決定することが可能となり、ゲームの進行を飽きることなくより自然に楽しめ、ゲーム全体への魅力を高めることが可能となる。
【００４９】
以上、サーバ１０が有する機能について説明した。次に、一実施形態における端末装置３０が有する機能について説明する。端末装置３０は、図２に示すように、様々な情報を記憶する情報記憶部５１と、一実施形態における画像情報を端末側で表示させるための制御を実行する端末側制御部５２と、を有する。これらの機能は、ＣＰＵ３１及びメインメモリ３２等のハードウェア、並びに、ストレージ３５に記憶されている各種プログラムやテーブル等が協働して動作することによって実現され、例えば、ロードしたプログラムに含まれる命令をＣＰＵ３１が実行することによって実現される。また、図２に例示した端末装置３０が有する機能の一部又は全部は、サーバ１０と端末装置３０とが協働することによって実現され、又は、サーバ１０によって実現され得る。
【００５０】
一実施形態における情報記憶部５１は、メインメモリ３２又はストレージ３５等によって実現される。一実施形態における端末側制御部５２は、ユーザキャラクタによる行動の選択や受信したゲーム画面情報の表示などの様々な端末側の処理の実行を制御する。例えば、端末側制御部５２は、ユーザがユーザキャラクタのある行動を選択すると、これをサーバ１０へ送信したり、味方キャラクタや敵キャラクタの行動の結果ゲームパラメータが変化すると、これらの行動の動作や変更後のゲームパラメータをサーバ１０から受信し表示させたりすることができる。
【００５１】
本明細書で説明された処理及び手順は、実施形態中で明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。より具体的には、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明される処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
【００５２】
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び／又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
【００５３】
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。
【符号の説明】
【００５４】
１０  サーバ
２０  通信網
３０  端末装置
４１  情報記憶部
４２  キャラクタ行動制御部
５１  情報記憶部
５２  端末側制御部
【図１】
2018063602.tif 000004
【図２】
2018063602.tif 000005
【図３】
2018063602.tif 000006
【図４】
2018063602.tif 000007
【図５】
2018063602.tif 000008
【手続補正書】
【提出日】平成30年2月5日(2018.2.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
Ｑ学習を用いて１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメー
タを調整する方法であって、
１又は複数のコンピュータ上で実行されることに応じて、当該１又は複数のコンピュー
タに、
１又は複数のゲームキャラクタに関するゲームパラメータを第１の入力値として抽出す
るステップ、
該第１の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタ
の各行動による第１の見込み報酬（Ｑ値）を出力値として抽出するステップと、
該各行動の中からの１つの選択・実行後の前記ゲームパラメータを第２の入力値として
抽出するステップと、
該第２の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタ
の各行動による第２の見込み報酬（Ｑ値）を算出するステップと、
前記第１の見込み報酬（Ｑ値）と前記第２の見込み報酬（Ｑ値）に基づき、１又は複数
層で構成されるニューラルネットワーク（ＮＮ）のパラメータを更新するステップと、
を複数回繰り返し実行させることを特徴とするＱ学習を用いたニューラルネットワーク
（ＮＮ）のパラメータを調整する方法。
【請求項２】
前記キャラクタの前記各行動の中からの１つの選択は、該各行動による見込み報酬（Ｑ
値）の中から最も高い見込み報酬（Ｑ値）を有する行動を選択するか、または、該各行動
による見込み報酬（Ｑ値）とは無関係にランダムに決定することにより行われることを特
徴とする請求項１に記載の方法。
【請求項３】
前記キャラクタの前記各行動の中からの１つの選択は、前記各行動による見込み報酬（
Ｑ値）の中から最も高い見込み報酬（Ｑ値）を有する行動を選択する確率の設定値並びに
前記各行動による見込み報酬（Ｑ値）とは無関係にランダムに決定する確率の設定値に基
づき行うことを特徴とする請求項２に記載の方法。
【請求項４】
前記キャラクタの前記各行動の中からの１つの選択は、該選択の回数の増大につれ、前
記各行動による見込み報酬（Ｑ値）の中から最も高い見込み報酬（Ｑ値）を有する行動を
選択する確率の設定値を増加させ、前記各行動による見込み報酬（Ｑ値）とは無関係にラ
ンダムに決定する確率の設定値を減少させることを特徴とする請求項３に記載の方法。
【請求項５】
前記キャラクタの前記各行動の中からの１つの選択は、該選択の回数の増大につれ、前
記各行動による見込み報酬（Ｑ値）の中から最も高い見込み報酬（Ｑ値）を有する行動を
選択する確率の設定値を約０．００１５％づつ増加させ、前記各行動による見込み報酬（
Ｑ値）とは無関係にランダムに決定する確率の設定値を約０．００１５％づつ減少させる
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記キャラクタの前記各行動の中からの１つの選択が、該各行動による見込み報酬（Ｑ
値）とは無関係にランダムに行われる場合、前記各行動毎の行動履歴を格納した複数の行
動別履歴情報における各履歴情報の多さとは関係なく、該各行動の中からランダムに決定
するものであることを特徴とする請求項２から５までのいずれか１項に記載の方法。
【請求項７】
前記キャラクタの前記各行動の中からの１つの選択が、該各行動による見込み報酬（Ｑ
値）とは無関係にランダムに行われる場合、格納可能な行動履歴数が所定数に制限された
行動履歴管理テーブルを参照し、各行動履歴の中からランダムに決定するものであること
を特徴とする請求項２から５までのいずれか１項に記載の方法。
【請求項８】
前記複数の行動別履歴情報のそれぞれは、異なるメモリ空間に格納され、キャラクタの
前記各行動の中からの１つの選択は、複数のメモリ空間の中からランダムに決定されたメ
モリ空間に格納されている行動別履歴情報の行動であることを特徴とする請求項６に記載の方法。
【請求項９】
前記キャラクタの前記各行動の中からの１つの選択が該各行動による見込み報酬（Ｑ値）とは無関係にランダムに決定する場合において、前記選択は該各行動に選択条件が付されている行動の中からランダムに決定するものであることを特徴とする請求項２から８までのいずれか１項に記載の方法。
【請求項１０】
前記各行動による見込み報酬（Ｑ値）とは無関係にランダムに決定する確率の設定値を
、前記選択条件が付されている行動が所定の回数以上選択された場合に減少させることを
特徴とする請求項３から９までのいずれか１項に記載の方法。
【請求項１１】
Ｑ学習を用いて１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメー
タを調整するシステムであって、
１又は複数のコンピュータ上で実行されることに応じて、当該１又は複数のコンピュー
タに、
１又は複数のゲームキャラクタのゲームパラメータを第１の入力値として抽出するステ
ップ、
該第１の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタ
の各行動による第１の見込み報酬（Ｑ値）を出力値として抽出するステップと、
該各行動の中からの１つの選択・実行後の前記ゲームパラメータを第２の入力値として
抽出するステップと、
該第２の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタ
の各行動による第２の見込み報酬（Ｑ値）を算出するステップと、
前記第１の見込み報酬（Ｑ値）と前記第２の見込み報酬（Ｑ値）に基づき、１又は複数
層で構成されるニューラルネットワーク（ＮＮ）のパラメータを更新するステップと、
を複数回繰り返し実行させることを特徴とするＱ学習を用いたニューラルネットワーク
（ＮＮ）のパラメータを調整するシステム。
【請求項１２】
Ｑ学習を用いて１又は複数層で構成されるニューラルネットワーク（ＮＮ）のパラメー
タを調整するプログラムであって、
１又は複数のコンピュータ上で実行されることに応じて、当該１又は複数のコンピュー
タに、
１又は複数のゲームキャラクタに関するゲームパラメータを第１の入力値として抽出す
るステップ、
該第１の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタ
の各行動による第１の見込み報酬（Ｑ値）を出力値として抽出するステップと、
該各行動の中からの１つの選択・実行後の前記ゲームパラメータを第２の入力値として
抽出するステップと、
該第２の入力値に基づき、前記ニューラルネットワーク（ＮＮ）からゲームキャラクタ
の各行動による第２の見込み報酬（Ｑ値）を算出するステップと、
前記第１の見込み報酬（Ｑ値）と前記第２の見込み報酬（Ｑ値）に基づき、１又は複数
層で構成されるニューラルネットワーク（ＮＮ）のパラメータを更新するステップと、
を複数回繰り返し実行させることを特徴とするＱ学習を用いたニューラルネットワーク（
ＮＮ）のパラメータを調整するプログラム。