Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6351671B2 - Program, system, and method for adjusting neural network structure and parameters using neuro evolution - Google Patents
[go: Go Back, main page]

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 PDF

Info

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
Application number
JP2016165342A
Other languages
Japanese (ja)
Other versions
JP2018029860A (en
Inventor
遼介 益子
遼介 益子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DeNA Co Ltd
Original Assignee
DeNA Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by DeNA Co Ltd filed Critical DeNA Co Ltd
Priority to JP2016165342A priority Critical patent/JP6351671B2/en
Publication of JP2018029860A publication Critical patent/JP2018029860A/en
Application granted granted Critical
Publication of JP6351671B2 publication Critical patent/JP6351671B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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 Document 1 proposes a method called NeuroEvolution of Augmenting Topics (NEAT) that uses a genetic algorithm to learn an optimal solution related to the structure and weighting of a neural network.

“Evolving Neural Networks Through Augmenting Topologies”、Kenneth O. Stanley、Risto Miikkulainen“Evolving Neural Networks Through Augmentation Topics”, Kenneth O. Stanley, Risto Mikukulainen

しかしながら、当該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の構成を概略的に示す構成図。The lineblock diagram showing roughly the composition of system 1 concerning one embodiment of the present invention. 一実施形態におけるシステム1が有する機能を概略的に示すブロック図。The block diagram which shows roughly the function which the system 1 in one Embodiment has. 一実施形態におけるニューラルネットワーク(NN)の構造及びパラメータを調整するフローの一例を示す図。The figure which shows an example of the flow which adjusts the structure and parameter of a neural network (NN) in one Embodiment. NEATの手法による場合の世代数と評価値との関係の一例をプロットしたものを示す図。The figure which shows what plotted the example of the relationship between the number of generations in the case of a NEAT method, and an evaluation value. 一実施形態におけるニューラルネットワーク(NN)の更新の際の世代数と評価値との関係の一例をプロットしたものを示す図。The figure which shows what plotted the example of the relationship between the number of generations at the time of the update of the neural network (NN) in one Embodiment, and an evaluation value. 一実施形態におけるニューラルネットワーク(NN)の更新の際の世代数と評価値との関係の一例をプロットしたものを示す図。The figure which shows what plotted the example of the relationship between the number of generations at the time of the update of the neural network (NN) in one Embodiment, and an evaluation value.

図1は、本発明の一実施形態に係るシステム1の構成を概略的に示す構成図である。一実施形態におけるシステム1は、図示するように、サーバ10と、このサーバ10とインターネット等の通信網20を介して接続された複数の端末装置30と、を備え、端末装置30のユーザに対して電子商取引サービスを提供する。また、一実施形態におけるシステム1は、キャラクタを用いたゲームや電子書籍、動画コンテンツ、及び音楽コンテンツ等のゲーム以外の様々なデジタルコンテンツの提供サービス、並びに、テキストチャット(ミニメール)、サークル、アバター、日記、伝言板、及び挨拶等の様々なユーザ間のコミュニケーション機能を実現するコミュニケーションプラットフォーム(SNSプラットフォーム)サービス等の様々なインターネットサービスを、端末装置30のユーザに対して提供し得る。   FIG. 1 is a configuration diagram schematically showing a configuration of a system 1 according to an embodiment of the present invention. As illustrated, the system 1 according to an embodiment includes a server 10 and a plurality of terminal devices 30 connected to the server 10 via a communication network 20 such as the Internet. To provide electronic commerce services. In addition, the system 1 according to the embodiment includes a service for providing various digital contents other than games such as games using characters, electronic books, moving image contents, and music contents, text chat (mini mail), circles, and avatars. Various Internet services such as a communication platform (SNS platform) service that realizes communication functions between various users such as a diary, a message board, and greetings can be provided to the user of the terminal device 30.

一実施形態におけるサーバ10は、一般的なコンピュータとして構成されており、図示のとおり、CPU(コンピュータプロセッサ)11と、メインメモリ12と、ユーザI/F13と、通信I/F14と、ストレージ(記憶装置)15と、を含み、これらの各構成要素がバス17を介して互いに電気的に接続されている。CPU11は、ストレージ15からオペレーティングシステムやその他様々なプログラムをメインメモリ12にロードし、このロードしたプログラムに含まれる命令を実行する。メインメモリ12は、CPU11が実行するプログラムを格納するために用いられ、例えば、DRAM等によって構成される。なお、一実施形態におけるサーバ10は、それぞれ上述したようなハードウェア構成を有する複数のコンピュータを用いて構成され得る。なお、上述したCPU(コンピュータプロセッサ)11は一例であり、これに代えて、GPU(グラフィックス・プロセッシング・ユニット)を用いるものであってもよいことは言うまでもない。CPU及び/又はGPUをどのように選択するかは、所望のコストないし効率などを勘案した上で適宜決定することが可能である。以下、CPU11を例として説明する。   The server 10 in one embodiment is configured as a general computer, and as illustrated, a CPU (computer processor) 11, a main memory 12, a user I / F 13, a communication I / F 14, and storage (storage). Device) 15, and these components are electrically connected to each other via a bus 17. The CPU 11 loads an operating system and various other programs from the storage 15 into the main memory 12 and executes instructions included in the loaded programs. The main memory 12 is used for storing a program executed by the CPU 11, and is configured by a DRAM or the like, for example. In addition, the server 10 in one embodiment may be configured using a plurality of computers each having a hardware configuration as described above. The CPU (computer processor) 11 described above is merely an example, and it goes without saying that a GPU (graphics processing unit) may be used instead. How to select the CPU and / or GPU can be appropriately determined in consideration of desired cost or efficiency. Hereinafter, the CPU 11 will be described as an example.

ユーザI/F13は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、CPU11の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信I/F14は、ハードウェア、ファームウェア、又はTCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介して端末装置30と通信可能に構成される。   The user I / F 13 includes, for example, an information input device such as a keyboard and a mouse that accepts an operator input, and an information output device such as a liquid crystal display that outputs a calculation result of the CPU 11. The communication I / F 14 is implemented as hardware, firmware, communication software such as a TCP / IP driver or a PPP driver, or a combination thereof, and is configured to be able to communicate with the terminal device 30 via the communication network 20.

ストレージ15は、例えば磁気ディスクドライブで構成され、各種サービスを提供するための制御用プログラム等の様々なプログラムが記憶される。また、ストレージ15には、各種サービスを提供するための各種データも記憶され得る。ストレージ15に記憶され得る各種データは、サーバ10と通信可能に接続されるサーバ10とは物理的に別体のデータベースサーバ等に格納されてもよい。   The storage 15 is composed of, for example, a magnetic disk drive, and stores various programs such as a control program for providing various services. The storage 15 can also store various data for providing various services. Various data that can be stored in the storage 15 may be stored in a database server or the like that is physically separate from the server 10 that is communicably connected to the server 10.

一実施形態において、サーバ10は、階層構造の複数のウェブページから成るウェブサイトを管理するウェブサーバとしても機能し、こうしたウェブサイトを介して各種サービスを端末装置30のユーザに対して提供し得る。ストレージ15には、このウェブページに対応するHTMLデータも記憶され得る。HTMLデータは、様々な画像データが関連付けられ、又、JavaScript(登録商標)等のスクリプト言語等で記述された様々なプログラムが埋め込まれ得る。   In one embodiment, the server 10 also functions as a web server that manages a website composed of a plurality of hierarchical web pages, and can provide various services to the user of the terminal device 30 via the website. . The storage 15 can also store HTML data corresponding to this web page. HTML data is associated with various image data, and various programs described in a script language such as JavaScript (registered trademark) can be embedded.

また、一実施形態において、サーバ10は、端末装置30においてウェブブラウザ以外の実行環境上で実行されるアプリケーション(プログラム)を介して各種サービスを提供し得る。ストレージ15には、こうしたアプリケーションも記憶され得る。このアプリケーションは、例えば、Objective−CやJava(登録商標)等のプログラミング言語を用いて作成される。ストレージ15に記憶されたアプリケーションは、配信要求に応じて端末装置30に配信される。なお、端末装置30は、こうしたアプリケーションを、サーバ10以外の他のサーバ(アプリマーケットを提供するサーバ)等からダウンロードすることもできる。   In one embodiment, the server 10 can provide various services via an application (program) executed on the terminal device 30 in an execution environment other than the web browser. Such applications can also be stored in the storage 15. This application is created using a programming language such as Objective-C or Java (registered trademark). The application stored in the storage 15 is distributed to the terminal device 30 in response to the distribution request. Note that the terminal device 30 can also download such an application from a server other than the server 10 (a server that provides an application market) or the like.

このように、サーバ10は、各種サービスを提供するためのウェブサイトを管理し、当該ウェブサイトを構成するウェブページ(HTMLデータ)を端末装置30からの要求に応答して配信することができる。また、上述したように、サーバ10は、このようなウェブページ(ウェブブラウザ)を用いた各種サービスの提供とは代替的に、又は、これに加えて、端末装置30において実行されるアプリケーションとの通信に基づいて各種サービスを提供することができる。いずれの態様で当該サービスを提供するにしても、サーバ10は、各種サービスの提供に必要な各種データ(画面表示に必要なデータを含む)を端末装置30との間で送受信することができる。また、サーバ10は、各ユーザを識別する識別情報(例えば、ユーザID)毎に各種データを記憶し、ユーザ毎に各種サービスの提供状況を管理することができる。詳細な説明は省略するが、サーバ10は、ユーザの認証処理や課金処理等を行う機能を有することもできる。   As described above, the server 10 can manage websites for providing various services, and distribute web pages (HTML data) constituting the websites in response to requests from the terminal device 30. In addition, as described above, the server 10 is an application that is executed in the terminal device 30 in place of or in addition to the provision of various services using such a web page (web browser). Various services can be provided based on communication. Regardless of which aspect of the service is provided, the server 10 can transmit and receive various data (including data necessary for screen display) necessary for providing various services to and from the terminal device 30. Moreover, the server 10 can store various data for each identification information (for example, user ID) for identifying each user, and can manage the provision status of various services for each user. Although detailed description is omitted, the server 10 may have a function of performing user authentication processing, billing processing, and the like.

一実施形態における端末装置30は、サーバ10が提供するウェブサイトのウェブページをウェブブラウザ上で表示すると共にアプリケーションを実行するための実行環境を実装した任意の情報処理装置であり、スマートフォン、タブレット端末、ウェアラブルデバイス、パーソナルコンピュータ、及びゲーム専用端末等が含まれ得るが、これらに限定されるものではない。   The terminal device 30 according to the embodiment is an arbitrary information processing device that displays a web page of a website provided by the server 10 on a web browser and implements an execution environment for executing an application. , A wearable device, a personal computer, a game-dedicated terminal, and the like, but are not limited thereto.

端末装置30は、一般的なコンピュータとして構成され、図1に示すとおり、CPU(コンピュータプロセッサ)31と、メインメモリ32と、ユーザI/F33と、通信I/F34と、ストレージ(記憶装置)35と、を含み、これらの各構成要素がバス37を介して互いに電気的に接続されている。   The terminal device 30 is configured as a general computer, and as shown in FIG. 1, a CPU (computer processor) 31, a main memory 32, a user I / F 33, a communication I / F 34, and a storage (storage device) 35. These components are electrically connected to each other via a bus 37.

CPU31は、ストレージ35からオペレーティングシステムやその他様々なプログラムをメインメモリ32にロードし、このロードしたプログラムに含まれる命令を実行する。メインメモリ32は、CPU31が実行するプログラムを格納するために用いられ、例えば、DRAM等によって構成される。   The CPU 31 loads an operating system and various other programs from the storage 35 into the main memory 32 and executes instructions included in the loaded programs. The main memory 32 is used for storing a program executed by the CPU 31, and is configured by, for example, a DRAM or the like.

ユーザI/F33は、例えば、ユーザの入力を受け付けるタッチパネル、キーボード、ボタン及びマウス等の情報入力装置と、CPU31の演算結果を出力する液晶ディスプレイ等の情報表示装置とを含む。通信I/F34は、ハードウェア、ファームウェア、又は、TCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介してサーバ10と通信可能に構成される。   The user I / F 33 includes, for example, an information input device such as a touch panel that accepts user input, a keyboard, a button, and a mouse, and an information display device such as a liquid crystal display that outputs a calculation result of the CPU 31. The communication I / F 34 is implemented as hardware, firmware, communication software such as a TCP / IP driver or a PPP driver, or a combination thereof, and is configured to be able to communicate with the server 10 via the communication network 20.

ストレージ35は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムが記憶される。また、ストレージ35は、サーバ10から受信した様々なアプリケーションが記憶され得る。   The storage 35 is composed of, for example, a magnetic disk drive, a flash memory, or the like, and stores various programs such as an operating system. The storage 35 can store various applications received from the server 10.

端末装置30は、例えば、HTML形式のファイル(HTMLデータ)を解釈して画面表示するためのウェブブラウザを備えており、このウェブブラウザの機能によりサーバ10から取得したHTMLデータを解釈して、受信したHTMLデータに対応するウェブページを表示することができる。また、端末装置30のウェブブラウザには、HTMLデータに関連付けられた様々な形式のファイルを実行可能なプラグインソフトが組み込まれ得る。   The terminal device 30 includes, for example, a web browser for interpreting an HTML file (HTML data) and displaying the screen, and interprets and receives the HTML data acquired from the server 10 by the function of the web browser. A web page corresponding to the HTML data thus displayed can be displayed. The web browser of the terminal device 30 can incorporate plug-in software that can execute various types of files associated with HTML data.

端末装置30のユーザがサーバ10によって提供されるサービスを利用する際には、例えば、HTMLデータやアプリケーションによって指示されたアニメーションや操作用アイコン等が端末装置30に画面表示される。ユーザは、端末装置30のタッチパネル等を用いて各種指示を入力することができる。ユーザから入力された指示は、端末装置30のウェブブラウザやNgCore(商標)等のアプリケーション実行環境の機能を介してサーバ10に伝達される。   When the user of the terminal device 30 uses a service provided by the server 10, for example, HTML data, an animation instructed by an application, an operation icon, or the like is displayed on the terminal device 30. The user can input various instructions using the touch panel of the terminal device 30 or the like. The instruction input from the user is transmitted to the server 10 via the function of the application execution environment such as the web browser of the terminal device 30 and NgCore (trademark).

次に、このように構成された一実施形態におけるシステム1が有する機能について説明する。上述したように、一実施形態におけるシステム1は、ユーザに対して様々なインターネットサービスを提供し得るが、特に、ゲーム配信サービスを提供することが可能である。以降、一実施形態におけるシステム1の機能について、ゲーム配信サービスを提供する機能を例として説明する。   Next, the function which the system 1 in one embodiment comprised in this way has is demonstrated. As described above, the system 1 according to an embodiment can provide various Internet services to the user, and in particular, can provide a game distribution service. Hereinafter, the function of the system 1 according to an embodiment will be described by taking a function of providing a game distribution service as an example.

図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 server 10 and the terminal device 30). First, the function which the server 10 in one Embodiment has is demonstrated. As illustrated, the server 10 includes an information storage unit 41 that stores various information, and a character action control unit 42 that determines the action of the game character in one embodiment. These functions are realized by the cooperative operation of hardware such as the CPU 11 and the main memory 12 and various programs and tables stored in the storage 15, for example, instructions included in the loaded program This is realized by the CPU 11 executing. 2 may be realized by the terminal device 30 or may be realized by the cooperation of the server 10 and the terminal device 30.

一実施形態における情報記憶部41は、ストレージ15等によって実現され、図2に示すように、ゲームにおける敵・味方キャラクタ(これらを総称してゲームキャラクタと呼ぶ)の各種ステータス、行動可能なキャラクタ、行動可能な技、直近行動したキャラクタのフラグ、直近行動したキャラクタの技などのゲームパラメータを管理するゲームパラメータ管理テーブル41aと、当該ゲームパラメータに基づき各行動が選択された場合の評価値を管理する行動評価値管理テーブル41bと、を有する。   The information storage unit 41 in one embodiment is realized by the storage 15 or the like, and as shown in FIG. 2, various statuses of enemies and teammate characters (collectively referred to as game characters) in the game, actionable characters, A game parameter management table 41a for managing game parameters such as an action that can be performed, a flag of a character that has recently acted, a technique of a character that has recently acted, and an evaluation value when each action is selected based on the game parameter A behavior evaluation value management table 41b.

次に、一実施形態におけるゲームキャラクタの行動を決定するキャラクタ行動制御部42の機能について説明する。キャラクタ行動制御部42は、情報記憶部41のゲームパラメータ管理テーブル41aに格納されている敵・味方キャラクタの各種ステータス、行動可能なキャラクタ、行動可能な技、直近行動したキャラクタのフラグ、直近行動したキャラクタの技などのゲームパラメータに基づき各ゲームキャラクタの行動を選択・決定していく。より具体的には、キャラクタ行動制御部42は、ゲームパラメータ管理テーブル41aのゲームパラメータを抽出し、これを入力値として1又は複数層のニューラルネットワークに入力し、出力として行動可能なキャラクタの行動及びこれに対応する出力値を抽出し、これらの中から出力値の最も高い行動を決定する。キャラクタ行動制御部42は、このようにして例えば、1つバトルが終了するまでの間の味方キャラクタの各行動の組み合わせを抽出できる。なお、この例では、1バトルが終了するまでの味方キャラクタの各行動を出力値として抽出したが、敵キャラクタ、味方キャラクタ又はこれらの一部であってもよい。また、1バトルが終了するまでとしたが、その他評価値を算出可能な状態であればこれに限られない。   Next, the function of the character action control part 42 which determines the action of the game character in one Embodiment is demonstrated. The character action control unit 42 has various statuses of enemies and teammate characters stored in the game parameter management table 41a of the information storage unit 41, an actionable character, an actionable technique, a flag of a character that has recently acted, and an action of the most recent character. The action of each game character is selected and determined based on game parameters such as the character's skill. More specifically, the character action control unit 42 extracts a game parameter of the game parameter management table 41a, inputs this as an input value to one or more layers of neural network, and acts as an output of the character that can act as an output. The output value corresponding to this is extracted, and the action with the highest output value is determined from these. In this way, for example, the character action control unit 42 can extract a combination of actions of the teammate characters until one battle is completed. In this example, each action of the teammate character until the end of one battle is extracted as an output value, but it may be an enemy character, a teammate character, or a part thereof. Moreover, although it was made until 1 battle was complete | finished, if it is a state which can calculate other evaluation values, it will not be restricted to this.

さらに、キャラクタ行動制御部42は、1つのバトルが終了するまでの味方キャラクタの各行動の組み合わせを抽出すると、以下に詳述する方法にて、当該出力値の組み合わせに対する評価を行い、評価値を算出する。1つのニューラルネットワーク毎に出力値の組み合わせに対する評価値が抽出されるため、複数のニューラルネットワークがあれば、その数に応じた評価値が抽出されることとなる。なお、通常100個程度の個体、すなわち100程度のニューラルネットワークを用意し、その結果100程度の評価値を抽出することとなるが、その数は任意であり適宜決定することができる。また、個体は、コンボリューションネットワーク(CNN)により構成されていてもよい。キャラクタ行動制御部42は、抽出された出力値の組み合わせに対して算出された評価値に基づき、遺伝的アルゴリズムを適用し、より最適な個体が生き残るよう淘汰を行う、すなわち、より最適なニューラルネットワークに更新する。これを、複数世代、例えば、100世代程繰り返すことで、ニューラルネットワークが遺伝的アルゴリズムにより進化していく。どの程度の世代を繰り返すかは、諸条件により適宜変更することが可能である。ここで、キャラクタ行動制御部42は、ニューロエボリューションの1つに分類されるNEATの手法を用いて、ニューラルネットワークの構造とパラメータ(重み付けともいう)の最適化を行う。このようにして、キャラクタ行動制御部42は、基本的にはより評価値の高い出力値の組み合わせを抽出できるニューラルネットワークの構造及びパラメータを生き残らせることとなり、これらの行程を複数世代に亘って繰り返すことで、最適なニューラルネットワークを探索していくこととなる。ここで、既存の遺伝的アルゴリズムやニューロエボリューション、NEATの基本的手法については、詳述しないが、当業者はこれらの手法を適宜一実施形態に係るシステムに適用することができる。   Furthermore, when the character action control unit 42 extracts the combination of each action of the teammate character until one battle ends, the character action control unit 42 evaluates the combination of the output values by the method described in detail below, and determines the evaluation value. calculate. Since an evaluation value for a combination of output values is extracted for each neural network, if there are a plurality of neural networks, evaluation values corresponding to the number of neural networks are extracted. Normally, about 100 individuals, that is, about 100 neural networks are prepared, and as a result, about 100 evaluation values are extracted, but the number is arbitrary and can be determined as appropriate. The individual may be configured by a convolution network (CNN). The character action control unit 42 applies a genetic algorithm based on the evaluation value calculated for the combination of the extracted output values, and performs a habit so that a more optimal individual survives, that is, a more optimal neural network. Update to By repeating this for a plurality of generations, for example, about 100 generations, the neural network evolves with a genetic algorithm. How many generations are repeated can be appropriately changed according to various conditions. Here, the character action control unit 42 optimizes the structure and parameters (also referred to as weighting) of the neural network by using a NEAT method classified as one of the neuro evolutions. In this way, the character action control unit 42 basically survives the structure and parameters of the neural network that can extract a combination of output values with higher evaluation values, and repeats these processes over a plurality of generations. Thus, an optimal neural network is searched. Here, existing genetic algorithms, neuro evolution, and basic methods of NEAT are not described in detail, but those skilled in the art can appropriately apply these methods to the system according to the embodiment.

図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 teammate character 1, teammate character 2, teammate character 3, teammate character 4, and enemy character, and each command has five commands (attack, defense, skill 1, skill 2, and special move). Is set. When only the ally character 1 can act at a certain time and the ally character 1 can select attack, defense, skill 1, and skill 2,
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 in the past three is Skill 1, Skill 2, and Attack from the oldest, the input value is the ally character 1_attack: 0.1
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 ally character 1 is
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 server 10 has was demonstrated. Next, functions of the terminal device 30 in the embodiment will be described. As shown in FIG. 2, the terminal device 30 includes an information storage unit 51 that stores various information, and a terminal-side control unit 52 that executes control for displaying image information on the terminal side in one embodiment. Have. These functions are realized by the cooperation of hardware such as the CPU 31 and the main memory 32, and various programs and tables stored in the storage 35. For example, instructions included in the loaded program This is realized by the CPU 31 executing. In addition, part or all of the functions of the terminal device 30 illustrated in FIG. 2 can be realized by the cooperation of the server 10 and the terminal device 30, or can be realized by the server 10.

一実施形態における情報記憶部51は、メインメモリ32又はストレージ35等によって実現される。一実施形態における端末側制御部52は、ユーザキャラクタによる行動の選択や受信したゲーム画面情報の表示などの様々な端末側の処理の実行を制御する。例えば、端末側制御部52は、ユーザがユーザキャラクタのある行動を選択すると、これをサーバ10へ送信したり、味方キャラクタや敵キャラクタの行動の結果ゲームパラメータが変化すると、これらの行動の動作や変更後のゲームパラメータをサーバ10から受信し表示させたりすることができる。   The information storage unit 51 in the embodiment is realized by the main memory 32 or the storage 35. The terminal-side control unit 52 in one embodiment controls the execution of various terminal-side processes such as selection of actions by the user character and display of received game screen information. For example, when the user selects an action with a user character, the terminal-side control unit 52 transmits the action to the server 10 or when the game parameter changes as a result of the action of an ally character or enemy character, The changed game parameters can be received from the server 10 and displayed.

本明細書で説明された処理及び手順は、実施形態中で明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。より具体的には、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明される処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。   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 SYMBOLS 10 Server 20 Communication network 30 Terminal device 41 Information storage part 42 Character action control part 51 Information storage part 52 Terminal side control part

Claims (11)

ニューロエボリューションを用いてゲーム内の1又は複数のゲームキャラクタの行動を
出力する複数のニューラルネットワーク(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)の数が占める比率を変化させることを特徴とする請求項に記載の方法。
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)の数が占める比率を変化させることを特徴とする請求項に記
載の方法。
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)の評
価値の中で最大の評価値が、所定の世代の間高くなるよう更新されない場合、そのグルー
プのニューラルネットワーク(NN)の数を10%よりも大きい割合で減少させることを
特徴とする請求項又はに記載の方法。
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)の評
価値の中で最大の評価値が、所定の世代の間高くなるよう更新されない場合、そのグルー
プのニューラルネットワーク(NN)の数を半減させることを特徴とする請求項又は
に記載の方法。
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)として、約100個のニューラルネットワ
ーク(NN)を用いることを特徴とする請求項1からまでの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).
前記更新するステップを約100世代繰り返すことを特徴とする請求項1からまでの
いずれか1項記載の方法。
Any one method according to claims 1 to 6, characterized in that repeated about 100 generations the step of the update.
前記評価値を、ゲームキャラクタの行動回数、ゲームキャラクタの残りHP、ゲームキ
ャラクタが受けた総ダメージ、ゲームキャラクタが死亡した回数、の内の少なくともいず
れか又はこれらの組み合わせに基づき決定することを特徴とする請求項1からまでのい
ずれか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つのバトルが終了するまで繰り返した
場合に抽出される各出力値の組み合わせに対する評価値であることを特徴とする請求項1
からまでのいずれか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.
ニューロエボリューションを用いてゲーム内の1又は複数のゲームキャラクタの行動を
出力する複数のニューラルネットワーク(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
ニューロエボリューションを用いてゲーム内の1又は複数のゲームキャラクタの行動を
出力する複数のニューラルネットワーク(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
JP2016165342A 2016-08-26 2016-08-26 Program, system, and method for adjusting neural network structure and parameters using neuro evolution Active JP6351671B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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