JP6351671B2 - Program, system, and method for adjusting neural network structure and parameters using neuro evolution - Google Patents
Program, system, and method for adjusting neural network structure and parameters using neuro evolution Download PDFInfo
- Publication number
- JP6351671B2 JP6351671B2 JP2016165342A JP2016165342A JP6351671B2 JP 6351671 B2 JP6351671 B2 JP 6351671B2 JP 2016165342 A JP2016165342 A JP 2016165342A JP 2016165342 A JP2016165342 A JP 2016165342A JP 6351671 B2 JP6351671 B2 JP 6351671B2
- Authority
- JP
- Japan
- Prior art keywords
- game
- neural network
- groups
- neural networks
- parameters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Description
本発明は、ニューロエボリューションを用いたニューラルネットワークの構造及びパラメータ調整のためのプログラム、システム、及び方法に関し、詳しくは、ニューロエボリューションを用いてゲーム内の1又は複数のゲームキャラクタの行動を出力する複数のニューラルネットワーク(NN)の構造及びパラメータを調整するのためのプログラム、システム、及び方法に関する。 The present invention relates to a program, a system, and a method for adjusting the structure and parameters of a neural network using neuro evolution, and more particularly, to output a plurality of actions of one or more game characters in a game using neuro evolution. The present invention relates to a program, system, and method for adjusting the structure and parameters of a neural network (NN).
ニューラルネットワークは、脳のニューロン及びシナプスを模して考えられたモデルである。ニューロエボリューションは、進化論的手法とニューラルネットワークを組み合わせたものであり、最適なニューラルネットワークを遺伝的手法で探索する方法を提供するものである。 A neural network is a model conceived to simulate brain neurons and synapses. Neuro Evolution is a combination of evolutionary methods and neural networks, and provides a method for searching for optimal neural networks using genetic methods.
このようなニューロエボリューションにおいて、遺伝的アルゴリズムを用いて、機械学習を行うことで、ニューラルネットワークの構造や重み付けを進化させる方法が知られている(例えば、非特許文献1)。非特許文献1では、遺伝的アルゴリズムを用いてニューラルネットワークの構造や重み付けに関する最適解を学習させるNeuroEvolution of Augmenting Topologies(NEAT)という方法が提案されている。
In such a neuro evolution, a method of evolving the structure and weighting of a neural network by performing machine learning using a genetic algorithm is known (for example, Non-Patent Document 1). Non-Patent
しかしながら、当該NEAT技術をゲームのプレイAIの学習に活用しようとすると、ゲーム特有の改善が必要となる。より具体的には、ゲームの進行によりゲーム環境やユーザキャラクタのパラメータが変動するような場合、ゲームの試行の度に評価が大きく変動し得るため、当該NEAT技術をそのまま活用しても学習が思うように進まず、ニューラルネットワークの構造や重み付けに関する最適解の探索が困難となっていた。 However, if the NEAT technology is used for learning the game play AI, a game-specific improvement is required. More specifically, when the game environment and user character parameters fluctuate due to the progress of the game, the evaluation may fluctuate greatly each time the game is attempted. However, it has been difficult to search for an optimal solution related to the structure and weighting of the neural network.
本発明の実施形態は、ゲームキャラクタの行動を決定するため、ニューロエボリューションを用いたニューラルネットワークの構造及びパラメータの調整を行うことを目的の一つとする。本発明の実施形態の他の目的は、本明細書全体を参照することにより明らかとなる。 An object of the embodiment of the present invention is to adjust the structure and parameters of a neural network using neuro evolution in order to determine the action of a game character. Other objects of the embodiments of the present invention will become apparent by referring to the entire specification.
本発明の一実施形態に係る方法は、1又は複数のコンピュータ上で実行されることに応じて、当該1又は複数のコンピュータに、ゲームパラメータを入力値として抽出するステップと、該入力値に基づき、複数のニューラルネットワーク(NN)からそれぞれ複数の出力値を抽出するステップと、該出力値に基づき、1又は複数のゲームキャラクタの行動を決定するステップと、前記ゲームパラメータを該行動後のゲームパラメータに更新するステップと、これらのステップを繰り返し、各ニューラルネットワークに対応する各行動の出力値の組み合わせに対する評価値を算出するステップと、前記各行動の出力値の組み合わせに対する評価値が高くなる方向で、遺伝的アルゴリズムを適用し前記複数のニューラルネットワーク(NN)の構造及びパラメータを更新するステップと、を複数世代繰り返し実行させることで、ニューロエボリューションを用いたニューラルネットワーク(NN)の構造及びパラメータの調整を行うように構成される。 A method according to an embodiment of the present invention includes: extracting a game parameter as an input value to the one or more computers in response to being executed on the one or more computers; A step of extracting a plurality of output values from a plurality of neural networks (NN), a step of determining an action of one or a plurality of game characters based on the output value, and a game parameter after the action as the game parameter In the direction of increasing the evaluation value for the combination of the output values of each action and the step of calculating the evaluation value for the combination of the output values of each action corresponding to each neural network Applying a genetic algorithm to construct the plurality of neural networks (NN). And updating the parameter, the be to multiple generations repeatedly executed, configured to adjust the structure and parameters of the neural network (NN) using the neuro evolution.
本発明の一実施形態に係るシステムは、1又は複数のコンピュータ上で実行されることに応じて、当該1又は複数のコンピュータに、ゲームパラメータを入力値として抽出するステップと、該入力値に基づき、複数のニューラルネットワーク(NN)からそれぞれ複数の出力値を抽出するステップと、該出力値に基づき、1又は複数のゲームキャラクタの行動を決定するステップと、前記ゲームパラメータを該行動後のゲームパラメータに更新するステップと、これらのステップを繰り返し、各ニューラルネットワークに対応する各行動の出力値の組み合わせに対する評価値を算出するステップと、前記各行動の出力値の組み合わせに対する評価値が高くなる方向で、遺伝的アルゴリズムを適用し前記複数のニューラルネットワーク(NN)の構造及びパラメータを更新するステップと、を複数世代繰り返し実行させることで、ニューロエボリューションを用いたニューラルネットワーク(NN)の構造及びパラメータの調整を行うよう構成される。 A system according to an embodiment of the present invention includes a step of extracting a game parameter as an input value to the one or more computers in response to being executed on the one or more computers, and based on the input values A step of extracting a plurality of output values from a plurality of neural networks (NN), a step of determining an action of one or a plurality of game characters based on the output value, and a game parameter after the action as the game parameter In the direction of increasing the evaluation value for the combination of the output values of each action and the step of calculating the evaluation value for the combination of the output values of each action corresponding to each neural network Applying the genetic algorithm to the plurality of neural networks (NN) Updating the structure and parameters, by a multiple generations repeatedly performed, configured to adjust the structure and parameters of the neural network (NN) using the neuro evolution.
本発明の一実施形態に係るプログラムは、1又は複数のコンピュータ上で実行されることに応じて、当該1又は複数のコンピュータに、ゲームパラメータを入力値として抽出するステップと、該入力値に基づき、複数のニューラルネットワーク(NN)からそれぞれ複数の出力値を抽出するステップと、該出力値に基づき、1又は複数のゲームキャラクタの行動を決定するステップと、前記ゲームパラメータを該行動後のゲームパラメータに更新するステップと、これらのステップを繰り返し、各ニューラルネットワークに対応する各行動の出力値の組み合わせに対する評価値を算出するステップと、前記各行動の出力値の組み合わせに対する評価値が高くなる方向で、遺伝的アルゴリズムを適用し前記複数のニューラルネットワーク(NN)の構造及びパラメータを更新するステップと、を複数世代繰り返し実行させることで、ニューロエボリューションを用いてニューラルネットワーク(NN)の構造及びパラメータの調整を行うように構成される。 A program according to an embodiment of the present invention includes a step of extracting a game parameter as an input value to one or a plurality of computers in response to being executed on the one or a plurality of computers, and based on the input value A step of extracting a plurality of output values from a plurality of neural networks (NN), a step of determining an action of one or a plurality of game characters based on the output value, and a game parameter after the action as the game parameter In the direction of increasing the evaluation value for the combination of the output values of each action and the step of calculating the evaluation value for the combination of the output values of each action corresponding to each neural network And applying a genetic algorithm to the plurality of neural networks (NN Updating the structure and parameters of the be to multiple generations repeatedly executed, configured to adjust the structure and parameters of the neural network (NN) using the neuro evolution.
本発明の様々な実施形態によって、1つのバトルの間に1又は複数のゲームキャラクタの行動によりバトル状態が刻々と変化するゲームにおいても、ゲーム内の1又は複数のゲームキャラクタの行動を出力する複数のニューラルネットワーク(NN)の構造及びパラメータをニューロエボリューションを用いて更新することにより、より適切かつ自然なゲームキャラクタの行動の決定に資することが可能となる。 According to various embodiments of the present invention, even in a game in which a battle state changes every moment by the action of one or more game characters during one battle, a plurality of actions for outputting the action of one or more game characters in the game are output. By updating the structure and parameters of the neural network (NN) using the neuro evolution, it becomes possible to contribute to more appropriate and natural determination of the action of the game character.
図1は、本発明の一実施形態に係るシステム1の構成を概略的に示す構成図である。一実施形態におけるシステム1は、図示するように、サーバ10と、このサーバ10とインターネット等の通信網20を介して接続された複数の端末装置30と、を備え、端末装置30のユーザに対して電子商取引サービスを提供する。また、一実施形態におけるシステム1は、キャラクタを用いたゲームや電子書籍、動画コンテンツ、及び音楽コンテンツ等のゲーム以外の様々なデジタルコンテンツの提供サービス、並びに、テキストチャット(ミニメール)、サークル、アバター、日記、伝言板、及び挨拶等の様々なユーザ間のコミュニケーション機能を実現するコミュニケーションプラットフォーム(SNSプラットフォーム)サービス等の様々なインターネットサービスを、端末装置30のユーザに対して提供し得る。
FIG. 1 is a configuration diagram schematically showing a configuration of a
一実施形態におけるサーバ10は、一般的なコンピュータとして構成されており、図示のとおり、CPU(コンピュータプロセッサ)11と、メインメモリ12と、ユーザI/F13と、通信I/F14と、ストレージ(記憶装置)15と、を含み、これらの各構成要素がバス17を介して互いに電気的に接続されている。CPU11は、ストレージ15からオペレーティングシステムやその他様々なプログラムをメインメモリ12にロードし、このロードしたプログラムに含まれる命令を実行する。メインメモリ12は、CPU11が実行するプログラムを格納するために用いられ、例えば、DRAM等によって構成される。なお、一実施形態におけるサーバ10は、それぞれ上述したようなハードウェア構成を有する複数のコンピュータを用いて構成され得る。なお、上述したCPU(コンピュータプロセッサ)11は一例であり、これに代えて、GPU(グラフィックス・プロセッシング・ユニット)を用いるものであってもよいことは言うまでもない。CPU及び/又はGPUをどのように選択するかは、所望のコストないし効率などを勘案した上で適宜決定することが可能である。以下、CPU11を例として説明する。
The
ユーザI/F13は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、CPU11の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信I/F14は、ハードウェア、ファームウェア、又はTCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介して端末装置30と通信可能に構成される。
The user I /
ストレージ15は、例えば磁気ディスクドライブで構成され、各種サービスを提供するための制御用プログラム等の様々なプログラムが記憶される。また、ストレージ15には、各種サービスを提供するための各種データも記憶され得る。ストレージ15に記憶され得る各種データは、サーバ10と通信可能に接続されるサーバ10とは物理的に別体のデータベースサーバ等に格納されてもよい。
The
一実施形態において、サーバ10は、階層構造の複数のウェブページから成るウェブサイトを管理するウェブサーバとしても機能し、こうしたウェブサイトを介して各種サービスを端末装置30のユーザに対して提供し得る。ストレージ15には、このウェブページに対応するHTMLデータも記憶され得る。HTMLデータは、様々な画像データが関連付けられ、又、JavaScript(登録商標)等のスクリプト言語等で記述された様々なプログラムが埋め込まれ得る。
In one embodiment, the
また、一実施形態において、サーバ10は、端末装置30においてウェブブラウザ以外の実行環境上で実行されるアプリケーション(プログラム)を介して各種サービスを提供し得る。ストレージ15には、こうしたアプリケーションも記憶され得る。このアプリケーションは、例えば、Objective−CやJava(登録商標)等のプログラミング言語を用いて作成される。ストレージ15に記憶されたアプリケーションは、配信要求に応じて端末装置30に配信される。なお、端末装置30は、こうしたアプリケーションを、サーバ10以外の他のサーバ(アプリマーケットを提供するサーバ)等からダウンロードすることもできる。
In one embodiment, the
このように、サーバ10は、各種サービスを提供するためのウェブサイトを管理し、当該ウェブサイトを構成するウェブページ(HTMLデータ)を端末装置30からの要求に応答して配信することができる。また、上述したように、サーバ10は、このようなウェブページ(ウェブブラウザ)を用いた各種サービスの提供とは代替的に、又は、これに加えて、端末装置30において実行されるアプリケーションとの通信に基づいて各種サービスを提供することができる。いずれの態様で当該サービスを提供するにしても、サーバ10は、各種サービスの提供に必要な各種データ(画面表示に必要なデータを含む)を端末装置30との間で送受信することができる。また、サーバ10は、各ユーザを識別する識別情報(例えば、ユーザID)毎に各種データを記憶し、ユーザ毎に各種サービスの提供状況を管理することができる。詳細な説明は省略するが、サーバ10は、ユーザの認証処理や課金処理等を行う機能を有することもできる。
As described above, the
一実施形態における端末装置30は、サーバ10が提供するウェブサイトのウェブページをウェブブラウザ上で表示すると共にアプリケーションを実行するための実行環境を実装した任意の情報処理装置であり、スマートフォン、タブレット端末、ウェアラブルデバイス、パーソナルコンピュータ、及びゲーム専用端末等が含まれ得るが、これらに限定されるものではない。
The
端末装置30は、一般的なコンピュータとして構成され、図1に示すとおり、CPU(コンピュータプロセッサ)31と、メインメモリ32と、ユーザI/F33と、通信I/F34と、ストレージ(記憶装置)35と、を含み、これらの各構成要素がバス37を介して互いに電気的に接続されている。
The
CPU31は、ストレージ35からオペレーティングシステムやその他様々なプログラムをメインメモリ32にロードし、このロードしたプログラムに含まれる命令を実行する。メインメモリ32は、CPU31が実行するプログラムを格納するために用いられ、例えば、DRAM等によって構成される。
The
ユーザI/F33は、例えば、ユーザの入力を受け付けるタッチパネル、キーボード、ボタン及びマウス等の情報入力装置と、CPU31の演算結果を出力する液晶ディスプレイ等の情報表示装置とを含む。通信I/F34は、ハードウェア、ファームウェア、又は、TCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介してサーバ10と通信可能に構成される。
The user I /
ストレージ35は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムが記憶される。また、ストレージ35は、サーバ10から受信した様々なアプリケーションが記憶され得る。
The
端末装置30は、例えば、HTML形式のファイル(HTMLデータ)を解釈して画面表示するためのウェブブラウザを備えており、このウェブブラウザの機能によりサーバ10から取得したHTMLデータを解釈して、受信したHTMLデータに対応するウェブページを表示することができる。また、端末装置30のウェブブラウザには、HTMLデータに関連付けられた様々な形式のファイルを実行可能なプラグインソフトが組み込まれ得る。
The
端末装置30のユーザがサーバ10によって提供されるサービスを利用する際には、例えば、HTMLデータやアプリケーションによって指示されたアニメーションや操作用アイコン等が端末装置30に画面表示される。ユーザは、端末装置30のタッチパネル等を用いて各種指示を入力することができる。ユーザから入力された指示は、端末装置30のウェブブラウザやNgCore(商標)等のアプリケーション実行環境の機能を介してサーバ10に伝達される。
When the user of the
次に、このように構成された一実施形態におけるシステム1が有する機能について説明する。上述したように、一実施形態におけるシステム1は、ユーザに対して様々なインターネットサービスを提供し得るが、特に、ゲーム配信サービスを提供することが可能である。以降、一実施形態におけるシステム1の機能について、ゲーム配信サービスを提供する機能を例として説明する。
Next, the function which the
図2は、システム1(サーバ10及び端末装置30)が有する機能を概略的に示すブロック図である。まず、一実施形態におけるサーバ10が有する機能について説明する。サーバ10は、図示するように、様々な情報を記憶する情報記憶部41と、一実施形態におけるゲームキャラクタの行動を決定するキャラクタ行動制御部42と、を備える。これらの機能は、CPU11及びメインメモリ12等のハードウェア、並びに、ストレージ15に記憶されている各種プログラムやテーブル等が協働して動作することによって実現され、例えば、ロードしたプログラムに含まれる命令をCPU11が実行することによって実現される。また、図2に例示したサーバ10が有する機能の一部又は全部は、端末装置30によって実現され、又は、サーバ10と端末装置30とが協働することによって実現され得る。
FIG. 2 is a block diagram schematically showing functions of the system 1 (the
一実施形態における情報記憶部41は、ストレージ15等によって実現され、図2に示すように、ゲームにおける敵・味方キャラクタ(これらを総称してゲームキャラクタと呼ぶ)の各種ステータス、行動可能なキャラクタ、行動可能な技、直近行動したキャラクタのフラグ、直近行動したキャラクタの技などのゲームパラメータを管理するゲームパラメータ管理テーブル41aと、当該ゲームパラメータに基づき各行動が選択された場合の評価値を管理する行動評価値管理テーブル41bと、を有する。
The
次に、一実施形態におけるゲームキャラクタの行動を決定するキャラクタ行動制御部42の機能について説明する。キャラクタ行動制御部42は、情報記憶部41のゲームパラメータ管理テーブル41aに格納されている敵・味方キャラクタの各種ステータス、行動可能なキャラクタ、行動可能な技、直近行動したキャラクタのフラグ、直近行動したキャラクタの技などのゲームパラメータに基づき各ゲームキャラクタの行動を選択・決定していく。より具体的には、キャラクタ行動制御部42は、ゲームパラメータ管理テーブル41aのゲームパラメータを抽出し、これを入力値として1又は複数層のニューラルネットワークに入力し、出力として行動可能なキャラクタの行動及びこれに対応する出力値を抽出し、これらの中から出力値の最も高い行動を決定する。キャラクタ行動制御部42は、このようにして例えば、1つバトルが終了するまでの間の味方キャラクタの各行動の組み合わせを抽出できる。なお、この例では、1バトルが終了するまでの味方キャラクタの各行動を出力値として抽出したが、敵キャラクタ、味方キャラクタ又はこれらの一部であってもよい。また、1バトルが終了するまでとしたが、その他評価値を算出可能な状態であればこれに限られない。
Next, the function of the character
さらに、キャラクタ行動制御部42は、1つのバトルが終了するまでの味方キャラクタの各行動の組み合わせを抽出すると、以下に詳述する方法にて、当該出力値の組み合わせに対する評価を行い、評価値を算出する。1つのニューラルネットワーク毎に出力値の組み合わせに対する評価値が抽出されるため、複数のニューラルネットワークがあれば、その数に応じた評価値が抽出されることとなる。なお、通常100個程度の個体、すなわち100程度のニューラルネットワークを用意し、その結果100程度の評価値を抽出することとなるが、その数は任意であり適宜決定することができる。また、個体は、コンボリューションネットワーク(CNN)により構成されていてもよい。キャラクタ行動制御部42は、抽出された出力値の組み合わせに対して算出された評価値に基づき、遺伝的アルゴリズムを適用し、より最適な個体が生き残るよう淘汰を行う、すなわち、より最適なニューラルネットワークに更新する。これを、複数世代、例えば、100世代程繰り返すことで、ニューラルネットワークが遺伝的アルゴリズムにより進化していく。どの程度の世代を繰り返すかは、諸条件により適宜変更することが可能である。ここで、キャラクタ行動制御部42は、ニューロエボリューションの1つに分類されるNEATの手法を用いて、ニューラルネットワークの構造とパラメータ(重み付けともいう)の最適化を行う。このようにして、キャラクタ行動制御部42は、基本的にはより評価値の高い出力値の組み合わせを抽出できるニューラルネットワークの構造及びパラメータを生き残らせることとなり、これらの行程を複数世代に亘って繰り返すことで、最適なニューラルネットワークを探索していくこととなる。ここで、既存の遺伝的アルゴリズムやニューロエボリューション、NEATの基本的手法については、詳述しないが、当業者はこれらの手法を適宜一実施形態に係るシステムに適用することができる。
Furthermore, when the character
図3はこのフローを示したものである。まず、ゲームパラメータ(入力値)の抽出を行い(ステップ110)、これを初期の複数のニューラルネットワークに対して入力を行うことで、各行動の出力値を抽出し(ステップ120)、その中からゲームキャラクタの特定の行動を選択・決定し(ステップ130)、当該行動後のゲームパラメータとなるようゲームパラメータを更新し(ステップ140)、これらのステップを1つゲームバトルが終了するまで繰り返し、ゲームキャラクタの各行動の出力値の組み合わせの評価値を算出し(ステップ150)、評価値に基づき遺伝的アルゴリズムを適用しニューラルネットワーク(個体)の構造及びパラメータを更新する(ステップ160)。これらを複数世代繰り返していくことでニューラルネットワーク(個体)の構造及びパラメータを進化させていく。以下、一実施形態に係る発明における、ゲームキャラクタのより最適な行動を決定するため、ニューロエボリューションを用いたニューラルネットワークの構造及びパラメータの学習を行う方法をより具体的に示す。 FIG. 3 shows this flow. First, a game parameter (input value) is extracted (step 110), and this is input to a plurality of initial neural networks to extract an output value of each action (step 120). A specific action of the game character is selected / determined (step 130), the game parameter is updated to be the game parameter after the action (step 140), and these steps are repeated until one game battle is completed. An evaluation value of a combination of output values of each action of the character is calculated (step 150), and a genetic algorithm is applied based on the evaluation value to update the structure and parameters of the neural network (individual) (step 160). The structure and parameters of the neural network (individual) are evolved by repeating these for multiple generations. Hereinafter, a method of learning the structure and parameters of a neural network using neuro evolution in order to determine a more optimal action of the game character in the invention according to an embodiment will be described more specifically.
まず、強化学習の対象となる個体のニューラルネットワークは、1又は複数層のニューラルネットワーク(CNNも含む)構造を備える任意のネットワークであってよい。ここで、個体とは、ニューラルネットワークの構造及び各ノード間の重みと定義できる。以下、ニューラルネットワーク(NN)の構造及びパラメータと表現する。この個体の生成は初期段階においては、入力と出力のノード数を設定した初期ネットワークを基に、ランダムに個体を生成する。 First, the neural network of an individual subject to reinforcement learning may be an arbitrary network having a single-layer or multiple-layer neural network (including CNN) structure. Here, an individual can be defined as the structure of a neural network and the weight between nodes. Hereinafter, it is expressed as the structure and parameters of a neural network (NN). In the initial stage, the individuals are randomly generated based on the initial network in which the number of input and output nodes is set.
通常100個程度の個体が用意され、これらの個体についてゲームの試行が行われる。用意する個体の個数は任意であり、時間、システム負荷、計算効率等様々な要因を考慮して適宜決定され得る。強化学習では、これらの複数の個体を同時に評価しながら進めていくが、ニューロエボリューションでは、局所解に陥ることがないよう、探索範囲を一定範囲で確保することが重要であるため、当該複数の個体を複数の種族(以下、グループと呼ぶ)として分割することを行い、同じ種族内でのみ遺伝的アルゴリズムによる淘汰がなされ、種族間でこれを行わないようにする(Nitchingと呼ばれる)。 Usually, about 100 individuals are prepared, and a trial of the game is performed for these individuals. The number of individuals to be prepared is arbitrary, and can be appropriately determined in consideration of various factors such as time, system load, and calculation efficiency. In reinforcement learning, these multiple individuals are evaluated at the same time, but in neuro evolution, it is important to secure a search range within a certain range so as not to fall into a local solution. Individuals are divided into a plurality of races (hereinafter referred to as groups), so that the genetic algorithm is used only within the same race, and this is not performed between races (called “Nitching”).
この種族分けの方法として、NEATの手法に基づき、ある1個体と残りの個体とを全て比較し、類似度(ニューラルネットワークのノード数やエッジ数により算出され、距離ともいう)が閾値以下となる個体を同じグループ(種族)とし、グループ(種族)に入らなかった個体を対象に同様の手順を繰り返すことで、種族分けを行う。その結果、全ての個体がいずれかのグループ(種族)に属することとなる。例えば、3つの種族に分割する場合には、類似度が上記閾値より上の個体を更に2つに分割することが必要であるため、そのための閾値を別途設け、類似度がこの閾値以下の個体を2番目のグループ(種族)とし、類似度が当該閾値よりも上の個体を3番目のグループ(種族)とする。この閾値は低ければ低い程より多くのグループ(種族)に分割され、局所解に陥ることを回避できるものの、これを過度に低くすると個体数が1のグループ(種族)が大量に生成されることとなる。 As a method of grouping, based on the NEAT method, one individual and all remaining individuals are compared, and the degree of similarity (calculated by the number of nodes and the number of edges in the neural network, also referred to as distance) is below a threshold value. The individuals are assigned to the same group (race), and the same procedure is repeated for individuals who have not entered the group (race), thereby dividing the race. As a result, all individuals belong to any group (race). For example, when dividing into three races, it is necessary to further divide individuals whose similarity is above the above threshold into two, so a threshold is provided separately, and individuals whose similarity is below this threshold Is the second group (race), and individuals whose similarity is higher than the threshold is the third group (race). The lower this threshold is, the more groups (racial groups) can be divided, and it is possible to avoid falling into a local solution. However, if this threshold is made too low, a large number of groups (racial groups) with 1 population will be generated. It becomes.
以下、一実施形態として、複数の味方キャラクタと敵キャラクタとが対戦するコマンドバトルゲームを例に説明する。本実施形態のゲームでは、味方キャラクタ及び敵キャラクタは行動ゲージを持っており、時間の経過と共に行動ゲージが上昇する。そして行動ゲージが満タンになったキャラクタは行動可能状態となる。プレイヤは行動可能状態となった味方キャラクタに対して、コマンドを選択することによりゲームが進行する。また、行動可能状態となった敵キャラクタにおいては、ゲームプログラムに設定された所定条件(例えば、ランダム)に従ってコマンドが決定される。個体を用いたゲームの試行においては、ある時間におけるゲームの状態をパラメータ化して入力値として個体に入力し、個体からの出力値に応じてコマンドを選択することでゲームを進行させる。なお、前述したが、ゲームにおける敵・味方キャラクタ(これらを総称してゲームキャラクタと呼ぶ)の各種ステータス、行動可能なゲームキャラクタ、行動可能な技、直近行動したゲームキャラクタのフラグ、直近行動したゲームキャラクタの技などをゲームパラメータと定義する。 Hereinafter, as an embodiment, a command battle game in which a plurality of teammate characters and enemy characters battle each other will be described as an example. In the game of the present embodiment, the teammate character and the enemy character have action gauges, and the action gauges increase with the passage of time. Then, a character whose action gauge is full is in an actionable state. The game progresses when the player selects a command for the ally character in the actionable state. Further, for an enemy character that is in an actionable state, a command is determined according to a predetermined condition (for example, random) set in the game program. In a trial of a game using an individual, the game state at a certain time is parameterized and input as an input value to the individual, and a command is selected according to an output value from the individual to advance the game. As described above, various statuses of enemies and teammate characters (collectively referred to as game characters) in the game, actionable game characters, actionable techniques, the flag of the most recently acted game character, and the game that recently acted Character skills are defined as game parameters.
次に、この入力値の例をより具体的に説明する。ニューラルネットワーク(個体)への入力値として、例えば、ある時間(いずれかのゲームキャラクタが行動可能となった時間)における(1)ゲームキャラクタ全員のコマンド選択可能フラグと、(2)ゲームキャラクタ全員のステータス変化率とを入力する。前者の(1)ゲームキャラクタ全員のコマンド選択可能フラグは、全ゲームキャラクタ(味方キャラクタ及び敵キャラクタ)の各コマンドについての使用可能フラグ(0又は1)を意味する。 Next, an example of this input value will be described more specifically. As an input value to the neural network (individual), for example, (1) a command selectable flag for all game characters at a certain time (a time when any game character can act), and (2) all game characters Enter the status change rate. The former (1) command selectable flag for all game characters means an available flag (0 or 1) for each command of all game characters (ally characters and enemy characters).
本実施形態のゲームでは、味方キャラクタ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
といった25個(5つのゲームキャラクタがそれぞれ5つのコマンドを有しているため)の入力となる。
In the game of the present embodiment, there are
Allied character 1_attack: 1
Ally character 1_defense: 1
Ally character 1_skill 1: 1
Ally character 1_skill 2: 1
Allied Character 1_ Special Move: 0
Ally character 2_attack: 0
Ally character 2_defense: 0
Ally character 2_skill 1: 0
Ally character 2_skill 2: 0
Allied Character 2_ Special Moves: 0
... (omitted) ...
Enemy Character_ Special Moves: 0
25 (because each of the five game characters has five commands).
その際、過去に選択したコマンドを考慮して入力値を調整することで、同じコマンドが連続して選択されにくくなるよう調整可能である。例えば、ゲームキャラクタ毎に過去に選択したコマンドを記憶しておき、1つ前の行動の際に選択したコマンドに0.1を乗じる。さらに、2つ前の行動の際に選択したコマンドには0.2を、3つ前の行動の際に選択したコマンドには0.3を乗じる。過去3回において味方キャラクタ1が選択したコマンドが、古い方からスキル1、スキル2、攻撃であった場合、入力値を
味方キャラクタ1_攻撃:0.1
味方キャラクタ1_防御:1
味方キャラクタ1_スキル1:0.3
味方キャラクタ1_スキル2:0.2
味方キャラクタ1_必殺技:0
とする。
At that time, by adjusting the input value in consideration of the command selected in the past, the same command can be adjusted so as not to be selected continuously. For example, the command selected in the past is stored for each game character, and the command selected in the previous action is multiplied by 0.1. Further, the command selected at the time of the second previous action is multiplied by 0.2, and the command selected at the time of the third previous action is multiplied by 0.3. If the command selected by the
Ally character 1_defense: 1
Ally character 1_skill 1: 0.3
Ally character 1_skill 2: 0.2
Allied Character 1_ Special Move: 0
And
次に、後者の(2)ゲームキャラクタ全員のステータス変化率は、全ゲームキャラクタ(味方キャラクタ及び敵キャラクタ)の各種パラメータ(HP、攻撃力、防御力、魔法攻撃力、魔法防御力)の初期値からの変動率である。HP以外のパラメータは、バフ・デバフ状態をAIに認識しやすくさせるための工夫として初期値を0としている。また、HPは初期値の50%が0となるように設定している(範囲は−0.5から0.5)。例えば、HPが満タン(初期値)で、攻撃力が2倍の状態のゲームキャラクタは、
HP:0.5
攻撃力:1
防御力:0
魔法攻撃力:0
魔法防御力:0
となる。これにより、ニューラルネットワークの学習の効率を高めることができる。
Next, the latter (2) the status change rate of all game characters is the initial value of various parameters (HP, attack power, defense power, magic attack power, magic defense power) of all game characters (friend characters and enemy characters). The rate of change from Parameters other than HP have an initial value of 0 as a device for making it easier for the AI to recognize the buff / debuff state. The HP is set so that 50% of the initial value is 0 (range is -0.5 to 0.5). For example, a game character whose HP is full (initial value) and whose attack power is double is
HP: 0.5
Attack power: 1
Defense: 0
Magical attack power: 0
Magic Defense: 0
It becomes. Thereby, the learning efficiency of the neural network can be increased.
また、前述のゲームパラメータの「直近行動したゲームキャラクタのフラグ」をさらに入力することもできる。ゲームFRKでのゲームバトルにおいて、一定時間継続する「バフ・デバフ」効果があり、一定間隔を置いてバフをかけ続けるという行動が望ましいが、こうした入力を行うことで、バフを連続でかけ続けるという行動に収束することを回避できる。ここで、「バフ」とは、プレイヤキャラクタの能力値を向上させるアクションのことであり、例えば、ゲームキャラクタの攻撃力を2倍にする呪文などがこれに該当する。「デバフ」はその逆を意味する。入力値として、ゲームパラメータの「直近行動したゲームキャラクタのフラグ」をさらに入力することで、後述出力値として「バフ」、「しばらく別のアクション」、「(最初のバフが切れるタイミングで)再バフ」という行動を選択することが確認できた。なお、ステータス値の入力として、ゲーム内の値をそのまま入れず正規化処理を行うことができる。例えば、バフやデバフされるステータスの初期値を0とし変化の割合を入力とする方法である。これは、バフ・デバフ状態をAIが認識しやすくするためである。また、別の例として、HPは50%の値を0とし、差分を入力する。これは、HPが一定割合を下回ると行動を変える敵キャラクタがいたり、プレイヤ心理として50%下回ると回復行動を取ることが多くなるからである。 It is also possible to further input the above-mentioned game parameter “flag of the game character that has acted most recently”. In a game battle in the game FRK, there is a “buff / debuff” effect that lasts for a certain period of time, and it is desirable to continue buffing at regular intervals. Can be avoided. Here, “buff” refers to an action that improves the ability value of the player character, such as a spell that doubles the attack power of the game character. “Debuff” means the opposite. By further inputting “the flag of the game character that acted most recently” as an input value, “buff”, “another action”, “re-buffing (at the timing when the first buff goes off) are output as output values described later. ”Was confirmed. It should be noted that normalization processing can be performed without inputting in-game values as input for status values. For example, the initial value of the buffed or debuffed status is 0, and the rate of change is input. This is to make it easier for the AI to recognize the buff / debuff state. As another example, HP sets a value of 50% to 0 and inputs a difference. This is because there is an enemy character that changes the action when the HP falls below a certain ratio, or when the player psychology falls below 50%, the recovery action is often taken.
次に、出力値の例をより具体的に説明する。ニューラルネットワーク(個体)から全味方キャラクタの全コマンドそれぞれについて数値が出力値として抽出される。4つの味方キャラクタが各5つのコマンドを有している場合には、20ノードとなる。各ゲームキャラクタにおいて、一番数値が大きいノードに対応するコマンドが選択される。これによって、ある時間における行動可能なキャラクタのコマンドが決定される。
例えば、味方キャラクタ1における出力値が、
味方キャラクタ1_攻撃:0.8
味方キャラクタ1_防御:0.5
味方キャラクタ1_スキル1:0.4
味方キャラクタ1_スキル2:0.1
味方キャラクタ1_必殺技:0
である場合、一番出力値が大きい「攻撃」が選択されることとなる。なお、全てのコマンドの出力値が0である場合は、そもそもその時には行動できないゲームキャラクタであることを意味する。
Next, examples of output values will be described more specifically. Numerical values are extracted from the neural network (individual) as output values for all commands of all ally characters. If four teammate characters have five commands each, there are 20 nodes. In each game character, a command corresponding to the node having the largest numerical value is selected. Thereby, the command of the character that can act at a certain time is determined.
For example, the output value of the
Allied character 1_attack: 0.8
Ally character 1_defense: 0.5
Ally character 1_skill 1: 0.4
Ally character 1_skill 2: 0.1
Allied Character 1_ Special Move: 0
In this case, the “attack” having the largest output value is selected. When the output values of all commands are 0, it means that the game character cannot act at that time.
ゲームバトルにおいては、この入力と出力を繰り返すことで、ゲームキャラクタの各行動を決定していく。通常は複数のゲームキャラクタの複数の行動が組み合わされてゲームバトルが進行してゆき、バトルが終了するまで継続することとなる。バトルの終了は、通常、例えば、敵ゲームキャラクタのHPが0となったり、味方ゲームキャラクタ全員のHPが0となる場合を意図しているが、ゲームバトルの評価が可能なその他の場合であっても構わない。 In the game battle, each action of the game character is determined by repeating this input and output. Usually, a plurality of actions of a plurality of game characters are combined and a game battle proceeds, and continues until the battle ends. The end of the battle is usually intended, for example, when the HP of the enemy game character is 0, or the HP of all the friend game characters is 0, but in other cases where the game battle can be evaluated. It doesn't matter.
上述のゲームバトルの終了までに、通常複数のゲームキャラクタがそれぞれ複数の行動を選択することとなる。ニューラルネットワーク(個体)の評価は、各行動の出力値の組み合わせについて行う。通常は、バトルが終了するまでの各行動の出力値の組み合わせについて行うこととなる。その評価は、下記4つのパラメータに基づき算出する。なお、下記パラメータは、例えば、同じニューラルネットワーク(個体)を用いてゲームバトルを3回行った平均を使用するが、その他の方法であっても構わない。
(1)ゲームバトル終了までの味方キャラクタの行動回数(ability_count)
(2)ゲームバトル終了時における敵ゲームキャラクタの残りHP(boss_hp_sum)
(3)ゲームバトル終了までに味方ゲームキャラクタが受けたダメージ(damage_ratio)
(4)ゲームバトル終了までに味方ゲームキャラクタが死亡した回数(dead_count)
これらのパラメータに基づき、その評価値の計算方法として、下記のような設定を行うことができる。この設定は適宜変更可能である。下記例では、コードの「sum」がその評価値に該当し、最大評価値は0となっている。
return sum((-1.0 * ability_count / max_ability_count, -1.0 * boss_hp_sum / boss_max_hp_sum * 2, -1.0 * damage_ratio * 2, (-1.0 * dead_count / max_dead_count) * 4))
なお、max値は適宜設定することが可能であり、各パラメータはその比率を取っている。また、死亡回数は、最も重要なパラメータであるため4倍の重み付けがなされている。
Normally, a plurality of game characters respectively select a plurality of actions before the end of the above-described game battle. The evaluation of the neural network (individual) is performed for the combination of output values of each action. Usually, it will be performed about the combination of the output value of each action until a battle is complete | finished. The evaluation is calculated based on the following four parameters. In addition, although the following parameter uses the average which performed the game battle 3 times using the same neural network (individual), for example, other methods may be used.
(1) Number of actions of allied characters until the end of the game battle (ability_count)
(2) Remaining HP (boss_hp_sum) of enemy game characters at the end of the game battle
(3) Damage taken by allied game characters before the end of the game battle (damage_ratio)
(4) Number of times the teammate game character died before the end of the game battle (dead_count)
Based on these parameters, the following setting can be made as a method for calculating the evaluation value. This setting can be changed as appropriate. In the following example, the code “sum” corresponds to the evaluation value, and the maximum evaluation value is 0.
return sum ((-1.0 * ability_count / max_ability_count, -1.0 * boss_hp_sum / boss_max_hp_sum * 2, -1.0 * damage_ratio * 2, (-1.0 * dead_count / max_dead_count) * 4))
The max value can be set as appropriate, and each parameter takes its ratio. Further, since the number of deaths is the most important parameter, it is weighted four times.
このようにして、各世代で各ニューラルネットワークの構造やパラメータの評価値を算出し、これをNEATの遺伝的アルゴリズムに従い、進化する方向でニューラルネットワーク(個体)を更新していく。世代数は、100世代であっても、その他であってもよい。次世代に移行する際に、個体を進化させる方法は、詳述しないが、複数のニューラルネットワーク(個体)の上位の個体、例えば、評価値が上から10番以内の個体同士を掛け合わせることで、次世代となる新たな個体を生成するようにしてもよい。当該ニューラルネットワーク(個体)の更新方法は、適宜設定可能であり、何ら限定を付することを意図していない。また、複数のニューラルネットワーク(個体)が複数のグループ(種族)に分割される場合には、各世代における複数のグループ(種族)に属するニューラルネットワーク(個体)の評価値の平均値を算出し、これを各世代の各グループの評価値とする。場合によっては、各世代における複数のグループ(種族)に属するニューラルネットワーク(個体)の最大評価値を使用することもある。 In this way, the structure and parameter evaluation values of each neural network are calculated for each generation, and the neural network (individual) is updated in the direction of evolution according to the NEAT genetic algorithm. The number of generations may be 100 generations or others. The method of evolving an individual when moving to the next generation is not described in detail, but by multiplying individuals above a plurality of neural networks (individuals), for example, individuals whose evaluation values are within 10 from the top A new individual to be the next generation may be generated. The neural network (individual) update method can be set as appropriate, and is not intended to be limited in any way. Moreover, when a plurality of neural networks (individuals) are divided into a plurality of groups (race), the average value of the evaluation values of the neural networks (individuals) belonging to a plurality of groups (race) in each generation is calculated, This is the evaluation value for each group of each generation. In some cases, the maximum evaluation value of a neural network (individual) belonging to a plurality of groups (race) in each generation may be used.
次に、複数のニューラルネットワーク(個体)が複数のグループ(種族)に分割される場合の各グループ間の関係について説明する。次世代に移行する際に、次のようにして各グループ(種族)の比率を変更する。まず、当該世代における全グループ(種族)の評価値から全体平均値を算出する。そして、各グループ(種族)の評価値と全体平均値とを比較し、全体平均値より高い評価値のグループ(種族)はその割合を増やし、全体平均値より低い評価値のグループは種族はその割合を減らす。その際、全体の個体数が一定となるように、各種族の個体数を調整する。当該割合の増減は、例えば、通常±10%程度とするが、これに限られず、適宜設定することができる。 Next, the relationship between groups when a plurality of neural networks (individuals) are divided into a plurality of groups (racial groups) will be described. When moving to the next generation, the ratio of each group (race) is changed as follows. First, an overall average value is calculated from the evaluation values of all groups (race) in the generation. Then, the evaluation value of each group (race) is compared with the overall average value, the group (race) with an evaluation value higher than the overall average value increases its proportion, and the group with an evaluation value lower than the overall average value is Reduce the percentage. At that time, the number of individuals of various groups is adjusted so that the total number of individuals is constant. The increase / decrease of the ratio is, for example, usually about ± 10%, but is not limited thereto and can be set as appropriate.
複数のニューラルネットワーク(個体)が複数のグループ(種族)に分割される場合の各グループ間の関係について、例外的な取り扱い手法があり、NEATではこれをStagnationと呼ぶ。これは、各グループ(種族)における平均評価値がX世代連続で改善されない場合、そのグループ(種族)を取り除くというものである。このStagnationの基本的考え方は、一実施形態においても共通であるが、本実施形態のゲームのようにゲームパラメータが刻々と変化するようなゲームにこれをそのまま取り入れると、500世代程度を繰り返しても、グループ(種族)の平均評価値が全く改善されないという問題があることが確認された。図4は、それを示すものであり、横軸に世代を、縦軸に評価値(適合度)を示し、グループ(種族)の平均評価値と最大評価値をそれぞれプロットしたものである。図示のように、グループ(種族)の最大評価値は、ランダムに上下し、グループ(種族)の平均評価値も400ないし500世代を経過しても全く改善を見せていない。これは、本実施形態のゲームが、ランダム性の強いゲームであることから、グループ(種族)の評価値が振動する傾向が高いため、当該Stagnationの条件を満たさず、グループ(種族)の淘汰が事実上全くなされないということに起因するものと考えられる。 There is an exceptional handling method for the relationship between groups when a plurality of neural networks (individuals) are divided into a plurality of groups (racial groups). In NEAT, this is called staging. This is to remove the group (race) when the average evaluation value in each group (race) is not improved continuously for X generations. The basic idea of staging is the same in one embodiment, but if this is incorporated in a game where the game parameters change every moment as in the game of this embodiment, even if about 500 generations are repeated. It was confirmed that there was a problem that the average evaluation value of the group (race) was not improved at all. FIG. 4 shows this, in which the horizontal axis indicates the generation, the vertical axis indicates the evaluation value (fitness), and the average evaluation value and the maximum evaluation value of the group (race) are plotted. As shown in the figure, the maximum evaluation value of the group (race) randomly increases and decreases, and the average evaluation value of the group (race) does not show any improvement even after 400 to 500 generations. This is because the game of this embodiment is a highly random game, and the evaluation value of the group (race) tends to vibrate. Therefore, the condition of the stagnation is not satisfied, and the group (race) trap is This is thought to be due to the fact that virtually nothing is done.
このような問題に鑑み、一実施形態において、NEATにおけるStagnationの条件に修正を加えた。具体的には、グループ(種族)における平均評価値がX世代連続で改善されないとするのではなく、例えば、複数のグループの各グループにおける複数のニューラルネットワーク(NN)の評価値の中で最大の評価値が、所定の世代(15世代など)の間高くなるよう更新されないという条件とした。また、複数のグループの各グループにおける複数のニューラルネットワーク(NN)の評価値の平均値が、所定の世代の間高くなるよう更新されないという条件としてもよい。このような条件変更を行うことで、図5に示すように、優秀な種族であって、評価値に一定の改善が見られない場合に、リセットを行うことが可能となることが確認された。図4と同様に、図5は横軸に世代を、縦軸に評価値(適合度)を示し、グループ(種族)の平均評価値と最大評価値をそれぞれプロットしたものである。図示のように、グループ(種族)の最大評価値、平均評価値ともに上昇した後、優秀なグループ(種族)が支配的となるが、評価値が一定程度の改善を達成できなくなり、全く別のグループ(種族)が形成され、これらを繰り返す様子が示されている。本実施形態のゲームのような、グループ(種族)の評価値が振動する傾向が高いランダム性の強いゲームであっても、当該Stagnationの条件を修正することで、グループ(種族)の淘汰を発生させることができることが確認された。 In view of such a problem, in one embodiment, a modification was made to the conditions for staging in NEAT. Specifically, the average evaluation value in the group (race) is not assumed to be improved continuously for X generations. For example, the largest evaluation value among the plurality of neural networks (NN) in each group of the plurality of groups. The condition is that the evaluation value is not updated so as to be high during a predetermined generation (such as 15 generations). Moreover, it is good also as conditions that the average value of the evaluation value of several neural network (NN) in each group of several groups is not updated so that it may become high during a predetermined generation. As shown in FIG. 5, it was confirmed that resetting can be performed by performing such a condition change, as shown in FIG. 5, when the race is an excellent race and the evaluation value does not show a certain improvement. . Similar to FIG. 4, FIG. 5 shows the generation on the horizontal axis, the evaluation value (fitness) on the vertical axis, and plots the average evaluation value and maximum evaluation value of the group (race). As shown in the figure, after both the maximum evaluation value and the average evaluation value of the group (race) rise, the excellent group (race) becomes dominant, but the evaluation value cannot achieve a certain degree of improvement. A group (race) is formed and it is shown how these are repeated. Even in the case of a highly random game such as the game of this embodiment in which the evaluation value of the group (race) is highly oscillating, the group (race) trap is generated by correcting the conditions of the stagnation It was confirmed that it can be made.
しかしながら、120世代程度で最も優秀なグループ(種族)がリセットされ、以降1つのグループ(種族)が全体を占有し、これが数十世代継続した後他のグループ(種族)と入れ替わるのみで、評価値の全体の改善がみられないという別の問題が確認された。そこで、一実施形態において、当該Stagnationの条件だけでなく、その効果の修正を行った。具体的には、複数のグループの各グループにおける複数のニューラルネットワーク(NN)の評価値の中で最大の評価値が、所定の世代(15世代など)の間高くなるよう更新されない場合、そのグループのニューラルネットワーク(NN)の数を10%よりも大きい割合(例えば、50%程度)で減少させるように修正を加えた。図6に、条件を満たしたグループのニューラルネットワーク(NN)の数を50%程度減少させた場合の結果を示す。図4、5と同様、図6も横軸に世代を、縦軸に評価値(適合度)を示し、グループ(種族)の平均評価値と最大評価値をそれぞれプロットしたものである。このように、Stagnationの条件及びその効果を修正することでStagnationを繰り返しながらも、グループ(種族)の評価値の平均が着実に改善され、最大評価値も劣化することなく向上していくことが確認された。これは、評価値が更新されないグループ(種族)が段階的に淘汰されながら、別のグループ(種族)が新たに生まれ、グループ(種族)の多様性が確保されながら、全体としてニューラルネットワーク(個体)が進化していることを示しているものと考えられる。 However, the best group (race) in about 120 generations was reset, and after that, one group (race) occupied the whole, and after this continued for several tens of generations, it was replaced with another group (race). Another issue has been identified that does not show an overall improvement. Therefore, in one embodiment, not only the conditions for the staging but also the effects thereof are corrected. Specifically, when the maximum evaluation value among the evaluation values of the plurality of neural networks (NN) in each group of the plurality of groups is not updated so as to be higher during a predetermined generation (for example, 15 generations), the group The number of neural networks (NN) of the network is reduced so as to decrease at a rate larger than 10% (for example, about 50%). FIG. 6 shows the results when the number of neural networks (NN) in the group that satisfies the condition is reduced by about 50%. Similar to FIGS. 4 and 5, FIG. 6 also shows the generation on the horizontal axis and the evaluation value (fitness) on the vertical axis, and plots the average evaluation value and maximum evaluation value of the group (race). In this way, the average of the evaluation values of the group (race) is steadily improved and the maximum evaluation value is improved without deteriorating while repeating the stagnation by correcting the stagnation condition and its effect. confirmed. This is because a group (race) whose evaluation value is not updated is gradually deceived, another group (race) is newly born, and diversity of the group (race) is ensured, while the neural network (individual) as a whole This is considered to indicate that has evolved.
このようにすることで、ゲームのバトルなどゲームパラメータが刻々と変化するようなゲームにおいても、ニューラルネットワークの構造及びパラメータを遺伝的アルゴリズムを用いて強化学習させ、ニューラルネットワークの構造及びパラメータを更新していくことで、敵キャラクタや味方キャラクタのより適切な行動を決定することが可能となり、ゲームの進行を飽きることなくより自然に楽しめ、ゲーム全体への魅力を高めることが可能となる。 In this way, even in games where game parameters change every moment, such as game battles, the neural network structure and parameters are reinforced by using a genetic algorithm, and the neural network structure and parameters are updated. By doing so, it becomes possible to determine a more appropriate action of the enemy character or ally character, to enjoy more naturally without getting tired of the progress of the game, and to enhance the appeal to the entire game.
以上、サーバ10が有する機能について説明した。次に、一実施形態における端末装置30が有する機能について説明する。端末装置30は、図2に示すように、様々な情報を記憶する情報記憶部51と、一実施形態における画像情報を端末側で表示させるための制御を実行する端末側制御部52と、を有する。これらの機能は、CPU31及びメインメモリ32等のハードウェア、並びに、ストレージ35に記憶されている各種プログラムやテーブル等が協働して動作することによって実現され、例えば、ロードしたプログラムに含まれる命令をCPU31が実行することによって実現される。また、図2に例示した端末装置30が有する機能の一部又は全部は、サーバ10と端末装置30とが協働することによって実現され、又は、サーバ10によって実現され得る。
In the above, the function which the
一実施形態における情報記憶部51は、メインメモリ32又はストレージ35等によって実現される。一実施形態における端末側制御部52は、ユーザキャラクタによる行動の選択や受信したゲーム画面情報の表示などの様々な端末側の処理の実行を制御する。例えば、端末側制御部52は、ユーザがユーザキャラクタのある行動を選択すると、これをサーバ10へ送信したり、味方キャラクタや敵キャラクタの行動の結果ゲームパラメータが変化すると、これらの行動の動作や変更後のゲームパラメータをサーバ10から受信し表示させたりすることができる。
The
本明細書で説明された処理及び手順は、実施形態中で明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。より具体的には、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明される処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。 The processes and procedures described in this specification are implemented by software, hardware, or any combination thereof other than those explicitly described in the embodiments. More specifically, the processes and procedures described in this specification are performed by mounting logic corresponding to the processes on a medium such as an integrated circuit, a volatile memory, a nonvolatile memory, a magnetic disk, or an optical storage. Realized. Further, the processes and procedures described in this specification can be implemented as a computer program and executed by various computers.
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。 Even if the processes and procedures described herein are described as being performed by a single device, software, component, or module, such processes or procedures may be performed by multiple devices, multiple software, multiple Component and / or multiple modules. In addition, even though the data, tables, or databases described herein are described as being stored in a single memory, such data, tables, or databases are provided on a single device. Alternatively, the data can be distributed and stored in a plurality of memories or a plurality of memories arranged in a plurality of devices. Further, the software and hardware elements described herein may be implemented by integrating them into fewer components or by decomposing them into more components.
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。 In the present specification, when the constituent elements of the invention are described as one or a plurality, or when they are described without being limited to one or a plurality of cases, they should be understood separately in context. The component may be either singular or plural.
10 サーバ
20 通信網
30 端末装置
41 情報記憶部
42 キャラクタ行動制御部
51 情報記憶部
52 端末側制御部
DESCRIPTION OF
Claims (11)
出力する複数のニューラルネットワーク(NN)の構造及びパラメータを調整する方法で
あって、
1又は複数のコンピュータ上で実行されることに応じて、当該1又は複数のコンピュー
タに、
ゲームパラメータを入力値として抽出するステップと、
該入力値に基づき、複数のニューラルネットワーク(NN)からそれぞれ複数の出力値
を抽出するステップと、
該出力値に基づき、1又は複数のゲームキャラクタの行動を決定するステップと、
前記ゲームパラメータを該行動後のゲームパラメータに更新するステップと、
これらのステップを繰り返し、各ニューラルネットワークに対応する各行動の出力値の
組み合わせに対する評価値を算出するステップと、
前記各行動の出力値の組み合わせに対する評価値が高くなる方向で、遺伝的アルゴリズ
ムを適用し前記複数のニューラルネットワーク(NN)の構造及びパラメータを更新する
ステップと、
を複数世代繰り返し実行させるものであり、
複数のニューラルネットワーク(NN)を所定の閾値を用いて複数のグループに分割し、同じグループ内においてのみニューラルネットワーク(NN)の構造及びパラメータを更新するのに前記遺伝的アルゴリズムを適用し、
前記複数のニューラルネットワーク(NN)間の構造及びパラメータの類似度に基づき、該類似度に関する所定の閾値を境界として複数のニューラルネットワーク(NN)を複数のグループに分割することを特徴とするニューロエボリューションを用いてニューラルネットワーク(NN)の構造及びパラメータを調整する方法。 A method of adjusting the structure and parameters of a plurality of neural networks (NN) that output the action of one or more game characters in a game using neuro evolution,
In response to being executed on one or more computers,
Extracting game parameters as input values;
Extracting a plurality of output values from a plurality of neural networks (NN) based on the input values;
Determining an action of one or more game characters based on the output value;
Updating the game parameter to the game parameter after the action;
Repeating these steps, calculating an evaluation value for a combination of output values of each action corresponding to each neural network;
Updating a structure and parameters of the plurality of neural networks (NN) by applying a genetic algorithm in a direction in which an evaluation value with respect to a combination of output values of the actions increases.
The all SANYO to multiple generations repeatedly executed,
Dividing the neural network (NN) into a plurality of groups using a predetermined threshold, and applying the genetic algorithm to update the structure and parameters of the neural network (NN) only within the same group;
Neuroevolution characterized by dividing a plurality of neural networks (NN) into a plurality of groups based on a structure and parameter similarity between the plurality of neural networks (NN), with a predetermined threshold relating to the similarity as a boundary. To adjust the structure and parameters of a neural network (NN) using
ク(NN)の評価値の平均値を比較し、該平均値が、前記複数のグループ全体の該評価値
の平均値よりも高い評価値の平均値を有するグループの割合を増やし、該平均値が、前記
複数のグループ全体の該評価値の平均値よりも低い評価値の平均値を有するグループの割
合を減らし、次世代における前記複数のグループの各グループのニューラルネットワーク
(NN)の数が占める比率を変化させることを特徴とする請求項1に記載の方法。 An average value of the evaluation values of the neural network (NN) of each group in the same generation is compared between the plurality of groups, and the average value is higher than the average value of the evaluation values of the entire plurality of groups Reducing the proportion of groups having an average value of evaluation values lower than the average value of the evaluation values of the entire plurality of groups, and reducing the ratio of the plurality of groups in the next generation. the method according to claim 1, characterized in that varying the ratio of number occupied in the neural network (NN) in each group of the group.
ク(NN)の評価値の平均値を比較し、該平均値が、前記複数のグループ全体の該評価値
の平均値よりも高い評価値の平均値を有するグループの割合を約10%増やし、該平均値
が、前記複数のグループ全体の該評価値の平均値よりも低い評価値の平均値を有するグル
ープの割合を約10%減らし、次世代における前記複数のグループの各グループのニュー
ラルネットワーク(NN)の数が占める比率を変化させることを特徴とする請求項2に記
載の方法。 An average value of the evaluation values of the neural network (NN) of each group in the same generation is compared between the plurality of groups, and the average value is higher than the average value of the evaluation values of the entire plurality of groups Increasing the ratio of groups having an average value of about 10%, reducing the ratio of groups having an average value of evaluation values lower than the average value of the evaluation values of the plurality of groups as a whole by about 10%, The method according to claim 2 , wherein a ratio occupied by the number of neural networks (NN) of each group of the plurality of groups in the next generation is changed.
価値の中で最大の評価値が、所定の世代の間高くなるよう更新されない場合、そのグルー
プのニューラルネットワーク(NN)の数を10%よりも大きい割合で減少させることを
特徴とする請求項2又は3に記載の方法。 When the maximum evaluation value among the evaluation values of the plurality of neural networks (NN) in each group of the plurality of groups is not updated so as to be high during a predetermined generation, the number of neural networks (NN) of the group is determined. 4. A method according to claim 2 or 3 , characterized in that the reduction is carried out at a rate greater than 10%.
価値の中で最大の評価値が、所定の世代の間高くなるよう更新されない場合、そのグルー
プのニューラルネットワーク(NN)の数を半減させることを特徴とする請求項2又は3
に記載の方法。 When the maximum evaluation value among the evaluation values of the plurality of neural networks (NN) in each group of the plurality of groups is not updated so as to be high during a predetermined generation, the number of neural networks (NN) of the group is determined. 2. The method according to claim 2 or 3 , characterized by halving.
The method described in 1.
ーク(NN)を用いることを特徴とする請求項1から5までの1項に記載の方法。 Wherein a plurality of neural networks (NN), Method according to one of claims 1 to 5, which comprises using about 100 of the neural network (NN).
いずれか1項記載の方法。 Any one method according to claims 1 to 6, characterized in that repeated about 100 generations the step of the update.
ャラクタが受けた総ダメージ、ゲームキャラクタが死亡した回数、の内の少なくともいず
れか又はこれらの組み合わせに基づき決定することを特徴とする請求項1から7までのい
ずれか1項記載の方法。 The evaluation value is determined based on at least one of a game character action count, a game character remaining HP, a total damage received by the game character, a game character death count, or a combination thereof. The method according to any one of claims 1 to 7 .
場合に抽出される各出力値の組み合わせに対する評価値であることを特徴とする請求項1
から8までのいずれか1項記載の方法。 The evaluation value is an evaluation value for a combination of output values extracted when each step is repeated until one battle of the game is completed.
Any one process as claimed in to 8.
出力する複数のニューラルネットワーク(NN)の構造及びパラメータを調整するシステ
ムであって、
1又は複数のコンピュータ上で実行されることに応じて、当該1又は複数のコンピュー
タに、
ゲームパラメータを入力値として抽出するステップと、
該入力値に基づき、複数のニューラルネットワーク(NN)からそれぞれ複数の出力値
を抽出するステップと、
該出力値に基づき、1又は複数のゲームキャラクタの行動を決定するステップと、
前記ゲームパラメータを該行動後のゲームパラメータに更新するステップと、
これらのステップを繰り返し、各ニューラルネットワークに対応する各行動の出力値の
組み合わせに対する評価値を算出するステップと、
前記各行動の出力値の組み合わせに対する評価値が高くなる方向で、遺伝的アルゴリズ
ムを適用し前記複数のニューラルネットワーク(NN)の構造及びパラメータを更新する
ステップと、
を複数世代繰り返し実行させるものであり、
複数のニューラルネットワーク(NN)を所定の閾値を用いて複数のグループに分割し、同じグループ内においてのみニューラルネットワーク(NN)の構造及びパラメータを更新するのに前記遺伝的アルゴリズムを適用し、
前記複数のニューラルネットワーク(NN)間の構造及びパラメータの類似度に基づき、該類似度に関する所定の閾値を境界として複数のニューラルネットワーク(NN)を複数のグループに分割することを特徴とするニューロエボリューションを用いてニューラルネットワーク(NN)の構造及びパラメータを調整するシステム。 A system for adjusting the structure and parameters of a plurality of neural networks (NN) that output the action of one or more game characters in a game using neuro evolution,
In response to being executed on one or more computers,
Extracting game parameters as input values;
Extracting a plurality of output values from a plurality of neural networks (NN) based on the input values;
Determining an action of one or more game characters based on the output value;
Updating the game parameter to the game parameter after the action;
Repeating these steps, calculating an evaluation value for a combination of output values of each action corresponding to each neural network;
Updating a structure and parameters of the plurality of neural networks (NN) by applying a genetic algorithm in a direction in which an evaluation value with respect to a combination of output values of the actions increases.
Is repeatedly executed for multiple generations ,
Dividing the neural network (NN) into a plurality of groups using a predetermined threshold, and applying the genetic algorithm to update the structure and parameters of the neural network (NN) only within the same group;
Neuroevolution characterized by dividing a plurality of neural networks (NN) into a plurality of groups based on a structure and parameter similarity between the plurality of neural networks (NN), with a predetermined threshold relating to the similarity as a boundary. To adjust the structure and parameters of a neural network (NN) using
出力する複数のニューラルネットワーク(NN)の構造及びパラメータを調整するプログ
ラムであって、
1又は複数のコンピュータ上で実行されることに応じて、当該1又は複数のコンピュー
タに、
ゲームパラメータを入力値として抽出するステップと、
該入力値に基づき、複数のニューラルネットワーク(NN)からそれぞれ複数の出力値
を抽出するステップと、
該出力値に基づき、1又は複数のゲームキャラクタの行動を決定するステップと、
前記ゲームパラメータを該行動後のゲームパラメータに更新するステップと、
これらのステップを繰り返し、各ニューラルネットワークに対応する各行動の出力値の
組み合わせに対する評価値を算出するステップと、
前記各行動の出力値の組み合わせに対する評価値が高くなる方向で、遺伝的アルゴリズ
ムを適用し前記複数のニューラルネットワーク(NN)の構造及びパラメータを更新する
ステップと、
を複数世代繰り返し実行させるものであり、
複数のニューラルネットワーク(NN)を所定の閾値を用いて複数のグループに分割し、同じグループ内においてのみニューラルネットワーク(NN)の構造及びパラメータを更新するのに前記遺伝的アルゴリズムを適用し、
前記複数のニューラルネットワーク(NN)間の構造及びパラメータの類似度に基づき、該類似度に関する所定の閾値を境界として複数のニューラルネットワーク(NN)を複数のグループに分割することを特徴とするニューロエボリューションを用いてニューラルネットワーク(NN)の構造及びパラメータを調整するプログラム。
A program for adjusting the structure and parameters of a plurality of neural networks (NN) that output the actions of one or more game characters in a game using neuro evolution,
In response to being executed on one or more computers,
Extracting game parameters as input values;
Extracting a plurality of output values from a plurality of neural networks (NN) based on the input values;
Determining an action of one or more game characters based on the output value;
Updating the game parameter to the game parameter after the action;
Repeating these steps, calculating an evaluation value for a combination of output values of each action corresponding to each neural network;
Updating a structure and parameters of the plurality of neural networks (NN) by applying a genetic algorithm in a direction in which an evaluation value with respect to a combination of output values of the actions increases.
Is repeatedly executed for multiple generations ,
Dividing the neural network (NN) into a plurality of groups using a predetermined threshold, and applying the genetic algorithm to update the structure and parameters of the neural network (NN) only within the same group;
Neuroevolution characterized by dividing a plurality of neural networks (NN) into a plurality of groups based on a structure and parameter similarity between the plurality of neural networks (NN), with a predetermined threshold relating to the similarity as a boundary. A program for adjusting the structure and parameters of a neural network (NN) using
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016165342A JP6351671B2 (en) | 2016-08-26 | 2016-08-26 | Program, system, and method for adjusting neural network structure and parameters using neuro evolution |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016165342A JP6351671B2 (en) | 2016-08-26 | 2016-08-26 | Program, system, and method for adjusting neural network structure and parameters using neuro evolution |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2018029860A JP2018029860A (en) | 2018-03-01 |
| JP6351671B2 true JP6351671B2 (en) | 2018-07-04 |
Family
ID=61303834
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016165342A Active JP6351671B2 (en) | 2016-08-26 | 2016-08-26 | Program, system, and method for adjusting neural network structure and parameters using neuro evolution |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6351671B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2022054209A1 (en) | 2020-09-10 | 2022-03-17 | 株式会社エイゾス | Hyperparameter adjustment device, non-transitory recording medium in which hyperparameter adjustment program is recorded, and hyperparameter adjustment program |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108434740B (en) * | 2018-03-23 | 2021-01-29 | 腾讯科技(深圳)有限公司 | Method and device for determining policy information and storage medium |
| JP6965314B2 (en) * | 2018-08-21 | 2021-11-10 | グリー株式会社 | Programs, information processing devices and control methods |
| JP6876072B2 (en) * | 2019-01-21 | 2021-05-26 | 株式会社スクウェア・エニックス | Video game processing program, video game processing device, video game processing method and learning program |
| JP7172706B2 (en) | 2019-02-19 | 2022-11-16 | 富士通株式会社 | Arithmetic processing device, Arithmetic processing program and Arithmetic processing method |
| CN110084354A (en) * | 2019-04-09 | 2019-08-02 | 浙江工业大学 | A method of based on genetic algorithm training ANN Control game role behavior |
| WO2020218142A1 (en) * | 2019-04-25 | 2020-10-29 | 株式会社コナミアミューズメント | Game device, game system, control system, method for operation of game device, method for operation of control system, and program |
| JP6762519B1 (en) * | 2019-04-25 | 2020-09-30 | 株式会社コナミアミューズメント | Game system |
| JP7698776B1 (en) | 2024-08-06 | 2025-06-25 | 株式会社Cygames | PROGRAM, MANAGEMENT PARAMETER VARIATION METHOD, AND GAME DEVICE |
| CN119864054B (en) * | 2025-03-24 | 2025-05-16 | 中国人民解放军国防科技大学 | Environmental sound classification method, model, medium and equipment based on neural evolution |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH096881A (en) * | 1995-06-15 | 1997-01-10 | Toyo Electric Mfg Co Ltd | neural network |
| JP2003256005A (en) * | 2002-03-01 | 2003-09-10 | Omron Corp | Control method and control device |
| JP5874292B2 (en) * | 2011-10-12 | 2016-03-02 | ソニー株式会社 | Information processing apparatus, information processing method, and program |
-
2016
- 2016-08-26 JP JP2016165342A patent/JP6351671B2/en active Active
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2022054209A1 (en) | 2020-09-10 | 2022-03-17 | 株式会社エイゾス | Hyperparameter adjustment device, non-transitory recording medium in which hyperparameter adjustment program is recorded, and hyperparameter adjustment program |
| US12217189B2 (en) | 2020-09-10 | 2025-02-04 | Aizoth Inc. | Hyperparameter adjustment device, non-transitory recording medium in which hyperparameter adjustment program is recorded, and hyperparameter adjustment program |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2018029860A (en) | 2018-03-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6351671B2 (en) | Program, system, and method for adjusting neural network structure and parameters using neuro evolution | |
| JP6330008B2 (en) | Program, system and method for weight adjustment of neural network using Q-learning | |
| CN107970612B (en) | Multi-player video game matching system and method | |
| CN112169339A (en) | Customized model for simulating player game play in video game | |
| CN103313762B (en) | Game device, program, and method for providing game | |
| US20140295964A1 (en) | Game System, Control Method for Game System, and Program | |
| CN114307160A (en) | Method for training intelligent agent | |
| US8845407B2 (en) | Device for providing a game | |
| Fraser et al. | A methodological approach to identifying and quantifying video game difficulty factors | |
| JP7344053B2 (en) | Systems, methods, and programs for providing predetermined games and methods for creating deck classifications | |
| JP7335739B2 (en) | SYSTEM, METHOD AND PROGRAM FOR PROVIDING A GAME | |
| US20140295925A1 (en) | Level-balancing an online progression game | |
| CN111389011B (en) | Game model training method and device, electronic equipment and medium | |
| JP6922111B1 (en) | Game system, program and information processing method | |
| JP7005798B1 (en) | Game system, server, program, lottery event execution method | |
| JP2020115957A (en) | Information processing apparatus, information processing program, and information processing method | |
| JP2018108416A (en) | Information processing device, game program, and information processing method | |
| JP7349833B2 (en) | Systems, methods, and programs for providing games | |
| On et al. | Rule-based procedural generation of item in role-playing game | |
| JP6953650B1 (en) | Game system, program and information processing method | |
| JP7519199B2 (en) | Electronic game information processing device and electronic game information processing program | |
| JP7516688B1 (en) | Information processing system, information processing device, program, and information processing method | |
| KR20220127452A (en) | Virtual game system with artificial intelligence of cooperation, enemy, and guide | |
| JP7587348B2 (en) | Electronic game evaluation device, electronic game evaluation program, and electronic game evaluation method | |
| JP7745911B2 (en) | Computer program, game system using same, and control method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20171213 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180109 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180312 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180522 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180605 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6351671 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |