JPWO2019064461A1 - Learning network generation device and learning network generation program - Google Patents

Learning network generation device and learning network generation program Download PDF

Info

Publication number
JPWO2019064461A1
JPWO2019064461A1 JP2019545516A JP2019545516A JPWO2019064461A1 JP WO2019064461 A1 JPWO2019064461 A1 JP WO2019064461A1 JP 2019545516 A JP2019545516 A JP 2019545516A JP 2019545516 A JP2019545516 A JP 2019545516A JP WO2019064461 A1 JPWO2019064461 A1 JP WO2019064461A1
Authority
JP
Japan
Prior art keywords
individual
learning
learning network
layer
generation
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.)
Granted
Application number
JP2019545516A
Other languages
Japanese (ja)
Other versions
JP6694197B2 (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of JPWO2019064461A1 publication Critical patent/JPWO2019064461A1/en
Application granted granted Critical
Publication of JP6694197B2 publication Critical patent/JP6694197B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

対象に適した構造の学習ネットワークを自動的に生成することができる学習ネットワーク生成装置を提供することを目的とする。学習ネットワーク生成装置は、学習ネットワークの個体を定義するデータを生成する初期個体生成部と、初期個体生成部が生成した学習ネットワークの個体を定義するデータに基づき、当該個体に応じたプログラムコードを生成するコード生成部と、コード生成部が生成した個体に応じたプログラムコードに対して学習用データを適用して進化学習を実行する学習実行部と、学習実行部にて進化学習を行った学習済み個体を評価するとともに、評価の結果に応じて個体を残すか否かを判定する評価・選別部と、を備える。It is an object of the present invention to provide a learning network generation device capable of automatically generating a learning network having a structure suitable for an object. The learning network generation device generates an initial individual generation unit that generates data defining an individual of the learning network, and generates a program code corresponding to the individual based on the data defining the individual of the learning network generated by the initial individual generation unit. Code generation unit, a learning execution unit that applies evolutionary learning by applying learning data to program codes corresponding to individuals generated by the code generation unit, and a learning execution unit that performs evolutionary learning An evaluation / selection unit that evaluates the individual and determines whether to leave the individual according to the result of the evaluation.

Description

本発明は、いわゆる深層学習(ディープラーニング)により機械学習を行う学習ネットワークを生成するプログラムに関する。   The present invention relates to a program for generating a learning network that performs machine learning by so-called deep learning (deep learning).

近年、人工知能の分野において、人がルールを記述することなく、多くの学習データを入力することにより、機械(コンピュータ)が学習データからが自動的に判断ルールを導き出す「機械学習」が注目を集めている。この機械学習の一種である深層学習は、画像認識や音声認識といった分野への適用が進んでいる。深層学習は、機械(コンピュータ)が学習データから抽出すべき特徴をも自動的に学習する点に特徴があると言われている。つまり、深層学習では、何に着目すればよいかを教える必要がなく、どのような特徴を利用すれば対象を正しく識別できるのかを自動的に学ぶことができる、と言われている。そして、このような深層学習を利用した様々な装置が提案されている(例えば特許文献1を参照)。   In recent years, in the field of artificial intelligence, "machine learning", in which a machine (computer) automatically derives decision rules from learning data by inputting a lot of learning data without describing rules, has attracted attention. I am collecting. Deep learning, which is a type of machine learning, is increasingly applied to fields such as image recognition and speech recognition. It is said that deep learning is characterized in that a machine (computer) automatically learns features to be extracted from learning data. In other words, it is said that in deep learning, it is not necessary to teach what to focus on, and it is possible to automatically learn what features can be used to correctly identify an object. Various devices using such deep learning have been proposed (for example, see Patent Document 1).

特開2017−111660JP, 2017-111660

しかしながら、実際にコンピュータに深層学習を行わせるには、予め学習ネットワークを定義する必要がある。ここで、学習ネットワークとは、生物の脳の神経細胞(ニューロン)をモデルとしたアルゴリズムであり複数の層を備えるものである。各層は、1つ以上のノード(ユニットとも言う。以下では後述する木構造におけるノードと区別するためにユニットと呼ぶ。)で構成されている。学習ネットワークは、機械学習を繰り返し行うにより、各ノードに対する入力の重み(係数)を調整することで、入力に基づき正解を出力できる精度(正答率)を高めることができる。   However, in order for a computer to actually perform deep learning, it is necessary to define a learning network in advance. Here, the learning network is an algorithm using nerve cells (neurons) of the brain of an organism as a model and includes a plurality of layers. Each layer is composed of one or more nodes (also referred to as units; hereinafter, referred to as units to distinguish them from nodes in a tree structure described later). The learning network adjusts the weight (coefficient) of the input to each node by repeatedly performing machine learning, thereby increasing the accuracy (correct answer rate) at which a correct answer can be output based on the input.

ところで、学習ネットワークは、図1に示したように、入力層、1以上の中間層、及び出力層により構成される多層パーセプトロンモデルによりしばしば表される。この学習ネットワークのモデルにおいて、各層は1以上のノードを有し、各ユニットに対して前層(入力層については外部)から入力値が1つ以上与えられる。各層に含まれるユニットの数や層間のユニットの接続関係は様々である。ユニットに対する入力値には、それぞれ重み係数が掛けられ、この入力値に重み係数を掛けた値の総和が、ユニット毎に規定された活性化関数の引数となる。活性化関数の出力は、次層への出力値となる。   Meanwhile, as shown in FIG. 1, a learning network is often represented by a multilayer perceptron model including an input layer, one or more intermediate layers, and an output layer. In this learning network model, each layer has one or more nodes, and one or more input values are given to each unit from the previous layer (for the input layer, from the outside). The number of units included in each layer and the connection relation of units between layers are various. The input values for the units are each multiplied by a weighting factor, and the sum of the values obtained by multiplying the input values by the weighting factor is the argument of the activation function defined for each unit. The output of the activation function is an output value to the next layer.

このように、学習ネットワークは、各層を構成するユニットの数、各ユニットにおける活性化関数、層間の結合関係等によりその構造が規定され、その規定された学習ネットワークに対して入力を与えたときの出力が正解に近づくように、各ユニットに対する入力に掛けられる重み係数を修正することで、学習を行う。   As described above, the structure of the learning network is defined by the number of units constituting each layer, the activation function in each unit, the connection relationship between layers, and the like. When an input is given to the defined learning network, Learning is performed by correcting the weight coefficient applied to the input to each unit so that the output approaches the correct answer.

したがって、学習ネットワークの構造が不適当であると、機械学習を繰り返しても正答率を高めることはできない。このように学習ネットワークの構造は深層学習の効果を高めるうえで重要な要素であるが、適切な学習ネットワークの構造は、対象によって(例えば、対象が文字の識別なのか、画像の識別なのか等)異なる。このため、従来は、設計者が基本的には手作業によって試行錯誤を繰り返すことにより、対象に対して適切と思われる学習ネットワークの構造を見つけて定義していた。   Therefore, if the structure of the learning network is inappropriate, even if machine learning is repeated, the correct answer rate cannot be increased. As described above, the structure of the learning network is an important element in enhancing the effect of deep learning, but the structure of the appropriate learning network depends on the target (for example, whether the target is character identification or image identification, etc.). )different. For this reason, conventionally, a designer has basically found out and defined a structure of a learning network that seems appropriate for an object by repeating trial and error by hand.

本発明は、上記課題の解決のためになされたものであり、対象に適した構造の学習ネットワークを自動的に生成することができる学習ネットワーク生成装置および学習ネットワーク生成プログラムを提供することを目的とする。   The present invention has been made to solve the above problems, and has as its object to provide a learning network generation device and a learning network generation program capable of automatically generating a learning network having a structure suitable for an object. I do.

上記の課題を解決すべく、本発明に係る学習ネットワーク生成装置は、学習ネットワークの個体を定義するデータを生成する初期個体生成部と、初期個体生成部が生成した学習ネットワークの個体を定義するデータに基づき、当該個体に応じたプログラムコードを生成するコード生成部と、コード生成部が生成した個体に応じたプログラムコードに対して学習用データを適用して進化学習を実行する学習実行部と、学習実行部にて進化学習を行った学習済み個体を評価するとともに、評価の結果に応じて個体を残すか否かを判定する評価・選別部と、を備える。このとき、初期個体生成部は、学習ネットワークの構造を表すデータを生成するとよい。   In order to solve the above problems, a learning network generation device according to the present invention includes an initial individual generation unit that generates data defining an individual of a learning network, and data that defines an individual of the learning network generated by the initial individual generation unit. A code generation unit that generates a program code corresponding to the individual, a learning execution unit that executes evolutionary learning by applying learning data to the program code corresponding to the individual generated by the code generation unit, An evaluation / selection unit that evaluates the learned individual that has performed the evolutionary learning in the learning execution unit and determines whether to leave the individual according to the evaluation result. At this time, the initial individual generation unit may generate data representing the structure of the learning network.

このような構成により、対象に適した構造の学習ネットワークを自動的に生成することができる。   With such a configuration, a learning network having a structure suitable for an object can be automatically generated.

また、本発明では、初期個体生成部は、学習ネットワークの構造を表すデータを、学習ネットワークにおける1つの層に対応し、少なくとも当該1つの層と前層との接続関係を示すレイヤーノードと、レイヤーノードに連なり、当該レイヤーノードに対応する層の構造に関するパラメータを示すパラメータノードとを含む木構造のデータとして出力するとよい。   Also, in the present invention, the initial individual generation unit converts data representing the structure of the learning network into a layer node corresponding to one layer in the learning network, and at least a layer node indicating a connection relationship between the one layer and the previous layer; The data may be output as tree-structured data including a parameter node indicating a parameter related to a layer structure corresponding to the layer node.

このようにすれば、取り扱いが容易な形式で、学習ネットワークの個体の構造を表現することができる。   In this way, the structure of the individual of the learning network can be expressed in a format that is easy to handle.

本発明では、学習ネットワークが、それぞれ1以上のユニットを有する複数の層が結合された構造を有する場合において、学習ネットワークの構造を表すデータは、各層を構成するユニットの数、各ユニットにおける活性化関数、及び層間の結合関係を含むとよい。   According to the present invention, when the learning network has a structure in which a plurality of layers each having one or more units are connected, data representing the structure of the learning network includes the number of units constituting each layer, the activation in each unit. It is preferable to include a function and a connection relationship between layers.

本発明では、コード生成部は、初期個体生成部が生成した学習ネットワークの構造を表すデータと、個体に依存しない共通部分のテンプレートデータとに基づき、個体に応じたプログラムコードを生成とよい。   In the present invention, the code generation unit may generate a program code corresponding to an individual based on data representing the structure of the learning network generated by the initial individual generation unit and template data of a common part independent of the individual.

本発明では、学習ネットワーク生成装置は、評価・選別部の選別した個体に対し、進化過程を実施して次世代の個体を生成する進化実行部をさらに備え、コード生成部は、進化実行部が生成した次世代の個体に応じたプログラムコードを生成するとよい。このようにすれば、優れた個体同士を掛け合わせたり、優れた個体に突然変異を生じさせたりすることにより、優秀な個体を進化させた新たな世代の個体を自動的に生成し、評価・選別を行うことで優れた個体を出力することができる。   In the present invention, the learning network generation device further includes an evolution execution unit that generates an individual of the next generation by performing an evolution process on the individuals selected by the evaluation / selection unit, and the code generation unit includes an evolution execution unit. It is preferable to generate a program code corresponding to the generated next-generation individual. In this way, a new generation of individuals that evolved from superior individuals is automatically generated by multiplying superior individuals or causing mutations in superior individuals. An excellent individual can be output by performing the selection.

本発明に係る学習ネットワーク生成プログラムは、コンピュータを上記いずれかの学習ネットワーク生成装置として機能させるとよい。   The learning network generation program according to the present invention may cause a computer to function as any one of the learning network generation devices described above.

本発明の他の例に係る学習ネットワーク生成プログラムは、コンピュータに、学習ネットワークの個体を定義するデータを生成する初期個体生成ステップと、初期個体生成ステップにて生成した学習ネットワークの個体を定義するデータに基づき、当該個体に応じたプログラムコードを生成するコード生成ステップと、コード生成ステップにて生成した個体に応じたプログラムコードに対して学習用データを適用して進化学習を実行する学習実行ステップと、学習実行ステップにて進化学習を行った学習済み個体を評価するとともに、評価の結果に応じて個体を残すか否かを判定する評価・選別ステップと、を実行させることを特徴とする。   A learning network generating program according to another example of the present invention includes: an initial individual generating step of generating data defining an individual of a learning network; and data defining an individual of the learning network generated in the initial individual generating step. A code generation step of generating a program code corresponding to the individual, and a learning execution step of executing evolutionary learning by applying learning data to the program code corresponding to the individual generated in the code generation step. And evaluating a learned individual that has performed the evolutionary learning in the learning execution step, and determining whether to leave the individual according to the evaluation result.

学習ネットワークの多層パーセプトロンモデルによる表現例を示した模式図である。FIG. 3 is a schematic diagram showing an example of expression of a learning network by a multilayer perceptron model. 学習ネットワークを学習ネットワーク生成装置で扱う木構造による表現例を示した模式図である。FIG. 3 is a schematic diagram illustrating an example of expression using a tree structure in which a learning network is handled by a learning network generation device. 学習ネットワーク生成装置の構成例を示す模式図である。It is a schematic diagram which shows the example of a structure of a learning network production | generation apparatus. 学習ネットワーク生成装置1の機能ブロック図である。FIG. 2 is a functional block diagram of the learning network generation device 1. 学習ネットワーク生成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of a learning network generation process. ワンポイント法による交叉を説明する模式図である。It is a schematic diagram explaining the crossing by the one-point method.

以下、図面を参照して本発明の実施形態に係る学習ネットワーク生成装置1を説明する。   Hereinafter, a learning network generation device 1 according to an embodiment of the present invention will be described with reference to the drawings.

〔学習ネットワーク生成装置1が扱う学習ネットワークのデータ構造〕
本実施形態に係る学習ネットワーク生成装置1は、個々の学習ネットワーク(個体)を、木構造で定義する。図2は、木構造で定義した個体の一例を示している。図2に例示した木構造において、図面の上下方向は階層(レイヤー)を表しており、図中で上に描かれているレイヤーほど上位階層のレイヤーとなる。また、同一のレイヤーにおいて、右端に描かれたノードはレイヤーノードLNと呼ばれ、学習ネットワークにおける各階層の属性を表す。また、同一のレイヤーにおいて、右端以外に描かれたノードは、パラメータノードPNと呼ばれ、1階層上位のレイヤーノードLNのパラメータを規定する。例えば、第2階層L2のレイヤーノードLNは‘PreviousDense’であり、この‘PreviousDense’には、パラメータとして第3階層L3に属する各パラメータノードPNの値が設定される。なお、後述するように、パラメータノードPNの値の意義は、レイヤーノードLNの種類毎に定義される。また、図2における第3階層L3のレイヤーノードLNである‘Flatten’のように、パラメータノードPNを持たないレイヤーノードLNの存在も許容される。
[Data Structure of Learning Network Handled by Learning Network Generation Apparatus 1]
The learning network generation device 1 according to the present embodiment defines each learning network (individual) with a tree structure. FIG. 2 shows an example of an individual defined by a tree structure. In the tree structure illustrated in FIG. 2, the vertical direction of the drawing represents a hierarchy (layer), and a layer drawn higher in the drawing is a higher layer. In the same layer, a node drawn on the right end is called a layer node LN, and represents an attribute of each layer in the learning network. In the same layer, nodes drawn at positions other than the right end are called parameter nodes PN, and define parameters of a layer node LN one layer higher. For example, the layer node LN of the second hierarchy L2 is "PreviousDense", and the value of each parameter node PN belonging to the third hierarchy L3 is set as a parameter in "PreviousDense". In addition, as described later, the significance of the value of the parameter node PN is defined for each type of the layer node LN. Further, the existence of a layer node LN having no parameter node PN, such as 'Flatten' which is a layer node LN of the third hierarchy L3 in FIG. 2, is also allowed.

学習ネットワーク生成装置1では、このような木構造で表される学習ネットワークを、文字列のデータで記述する。木構造を記述する文字列は、”{”で開始される。そして、木構造におけるノードの番号(例えば“0:”、“1:”等)、レイヤーノードLNの種類を示す文字列(例えば、'HyperParameter'、'PreviousDense'等)又は直前のレイヤーノードLNに連なるパラメータノードPNの値、及び区切り文字(例えば“,”)の繰り返しにより、学習ネットワークの構造を記述し、最後に”}”を記述することで木構造の記述の末尾を明記する。例えば、図2に示した木構造の学習ネットワークは、{0: 'HyperParameter', 1: 0.425, 2: 0.423, 3: 'PreviousDense', 4: 37, 5: 3, 6: 0.52, 7: 'Flatten', 8: 'FollowingDense', 9: 136, 10: 12, 11: 0.571, 12: 'LastDense', 13: 1, 14: 0, 15: 0.053}という文字列で表される。   In the learning network generation device 1, a learning network represented by such a tree structure is described by character string data. A character string describing a tree structure starts with “{”. Then, a node number (eg, “0:”, “1:”, etc.) in the tree structure, a character string indicating the type of the layer node LN (eg, “HyperParameter”, “PreviousDense”, etc.) or the immediately preceding layer node LN The structure of the learning network is described by repeating the values of the continuous parameter nodes PN and delimiters (for example, “,”), and the end of the description of the tree structure is specified by describing “}” at the end. For example, the tree-structured learning network shown in FIG. 2 is {0: 'HyperParameter', 1: 0.425, 2: 0.423, 3: 'PreviousDense', 4: 37, 5: 3, 6: 0.52, 7: ' Flatten ', 8:' FollowingDense ', 9: 136, 10: 12, 11: 0.571, 12:' LastDense ', 13: 1, 14: 0, 15: 0.053}.

木構造で表した学習ネットワークと多層パーセプトロンモデルで描いた学習ネットワークとの対応関係は次の通りである。   The correspondence between the learning network represented by the tree structure and the learning network drawn by the multilayer perceptron model is as follows.

木構造の表現では、全ての個体において、最上位階層L1のレイヤーノードLNは‘HyperParameter’であり、この‘HyperParameter’に対する2つのパラメータ(‘LEARNING_RATE’と‘MOMENTUM’)が第2階層L2のパラメータノードPNの値として規定される‘HyperParameter’は、個体の学習に関するパラメータであり、多層パーセプトロンモデルで表される学習ネットワークの構造には直接関係しない。なお、上記の‘LEARNING_RATE’と‘MOMENTUM’は一例に過ぎず、‘HyperParameter’に連なるパラメータノードPNの数や種類は任意である。   In the tree structure expression, in all the individuals, the layer node LN of the highest hierarchy L1 is “HyperParameter”, and two parameters (“LEARNING_RATE” and “MOMENTUM”) for the “HyperParameter” are the parameters of the second hierarchy L2. 'HyperParameter' defined as a value of the node PN is a parameter related to learning of an individual, and is not directly related to a structure of a learning network represented by a multilayer perceptron model. Note that the above “LEARNING_RATE” and “MOMENTUM” are merely examples, and the number and type of parameter nodes PN connected to “HyperParameter” are arbitrary.

また、学習ネットワーク生成装置1では、多層パーセプトロンモデルにおける入力層及び入力層に対する入力は、全ての個体で共通とされ、木構造の表現には表れない。   Further, in the learning network generating device 1, the input layer and the input to the input layer in the multilayer perceptron model are common to all individuals and do not appear in the representation of the tree structure.

第2層L2以下の階層におけるレイヤーノードLNの名称は、多層パーセプトロンモデルにおける前層との接続方法を示している。すなわち、例えば第2層L2のレイヤーノードLNは、入力層と最初の中間層との接続方法を示す。また、第2層L2以下の階層におけるレイヤーノードLNに連なるパラメータノードPNは、レイヤーノードLNに対応する層が有するユニットの数、活性化関数の種類、その他レイヤーノードLNの種類に応じて規定されたパラメータ(例えば活性化関数に適用されるパラメータ)を示す。なお、活性化関数の例としては、ステップ関数、シグモイド関数、ReLU関数、恒等関数、ソフトマックス関数、ハイパボリックタンジェント(tanh)関数などが挙げられる。   The names of the layer nodes LN in the second and lower layers L2 and lower indicate the connection method with the previous layer in the multilayer perceptron model. That is, for example, the layer node LN of the second layer L2 indicates a connection method between the input layer and the first intermediate layer. The parameter node PN connected to the layer node LN in the second and lower layers L2 and below is defined according to the number of units of the layer corresponding to the layer node LN, the type of the activation function, and other types of the layer node LN. Parameters (eg, parameters applied to the activation function). Examples of the activation function include a step function, a sigmoid function, a ReLU function, an identity function, a softmax function, and a hyperbolic tangent (tanh) function.

このように、本実施形態の学習ネットワーク生成装置1は、学習ネットワークの個体の多層パーセプトロンモデルにおける各層の構造及びその接続関係を、木構造によって表現している。なお、ユニット間を受け渡される出力値に乗じられる重み係数については、木構造の表現では規定されない。学習ネットワーク生成装置1は、重み係数は、学習ネットワークの個体に学習を行わせる際に、重み係数の学習前の初期値としてランダムな値を設定する。   As described above, the learning network generation device 1 of the present embodiment expresses the structure of each layer in the multilayer perceptron model of the individual of the learning network and the connection relation thereof by the tree structure. The weight coefficient multiplied by the output value passed between units is not specified in the expression of the tree structure. The learning network generation device 1 sets a random value as an initial value of the weight coefficient before learning when the individual of the learning network performs learning.

以下では、上述のような木構造で表現した学習ネットワークを生成する学習ネットワーク生成装置1の構成について詳細に説明する。   Hereinafter, the configuration of the learning network generation device 1 that generates the learning network represented by the tree structure as described above will be described in detail.

〔学習ネットワーク生成装置1のハードウェア構成〕
図3は、本発明の実施形態に係る学習ネットワーク生成装置1の構成例を示している。学習ネットワーク生成装置1は、学習ネットワークを遺伝的プログラミングの手法によって生成する。図3に示されるように学習ネットワーク生成装置1は、例えばコンピュータとして実現される。すなわち、学習ネットワーク生成装置1は、プロセッサ101、RAM102、HDD103、グラフィック処理部104、及び入力インタフェース105を備える。
[Hardware Configuration of Learning Network Generation Apparatus 1]
FIG. 3 shows a configuration example of the learning network generation device 1 according to the embodiment of the present invention. The learning network generation device 1 generates a learning network by a genetic programming technique. As shown in FIG. 3, the learning network generation device 1 is realized as, for example, a computer. That is, the learning network generation device 1 includes the processor 101, the RAM 102, the HDD 103, the graphic processing unit 104, and the input interface 105.

学習ネットワーク生成装置1は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、GPU(Graphics Processing Unit)、またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。   The entire learning network generation device 1 is controlled by the processor 101. Processor 101 may be a multiprocessor. The processor 101 is, for example, a central processing unit (CPU), a micro processing unit (MPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a graphics processing unit (GPU), or a programmable logic device (PLD). . Further, the processor 101 may be a combination of two or more elements among a CPU, an MPU, a DSP, an ASIC, and a PLD.

RAM102(Random Access Memory)は、学習ネットワーク生成装置1の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。   The RAM 102 (Random Access Memory) is used as a main storage device of the learning network generation device 1. The RAM 102 temporarily stores at least a part of an OS (Operating System) program and an application program to be executed by the processor 101. Further, the RAM 102 stores various data necessary for processing by the processor 101.

HDD103(Hard Disk Drive)は、学習ネットワーク生成装置1の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。   The HDD 103 (Hard Disk Drive) is used as an auxiliary storage device of the learning network generation device 1. The HDD 103 stores an OS program, an application program, and various data. It should be noted that another type of non-volatile storage device such as a solid state drive (SSD) can be used as the auxiliary storage device.

グラフィック処理部104には、表示装置104aが接続されている。グラフィック処理部104は、プロセッサ101からの命令に従って、画像を表示装置104aの画面に表示させる。表示装置104aとしては、液晶ディスプレイや有機EL(Electro Luminescence)ディスプレイなどが用いられる。   A display device 104a is connected to the graphic processing unit 104. The graphic processing unit 104 displays an image on the screen of the display device 104a according to a command from the processor 101. As the display device 104a, a liquid crystal display, an organic EL (Electro Luminescence) display, or the like is used.

入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。   An input device 105a is connected to the input interface 105. The input interface 105 transmits a signal output from the input device 105a to the processor 101. Examples of the input device 105a include a keyboard and a pointing device. Examples of the pointing device include a mouse, a touch panel, a tablet, a touch pad, and a trackball.

以上のようなハードウェア構成によって、学習ネットワーク生成装置1を実現することができる。   With the above hardware configuration, the learning network generation device 1 can be realized.

〔学習ネットワーク生成装置1の機能ブロック〕
図4は学習ネットワーク生成装置1の機能ブロック図を示している。
学習ネットワーク生成装置1は、処理部11、記憶部12、入力部13、及び出力部14を備える。
[Functional Blocks of Learning Network Generation Apparatus 1]
FIG. 4 shows a functional block diagram of the learning network generation device 1.
The learning network generation device 1 includes a processing unit 11, a storage unit 12, an input unit 13, and an output unit 14.

処理部11は、プロセッサ101がRAM102やHDD103に格納されたプログラムを実行することにより実現される。記憶部12は、RAM102やHDD103により実現される。入力部13は、入力インタフェース105及び入力装置105aにより実現される。出力部14は、グラフィック処理部104及び表示装置104aにより実現される。   The processing unit 11 is realized by the processor 101 executing a program stored in the RAM 102 or the HDD 103. The storage unit 12 is realized by the RAM 102 and the HDD 103. The input unit 13 is realized by the input interface 105 and the input device 105a. The output unit 14 is realized by the graphic processing unit 104 and the display device 104a.

図4に示されるように、処理部11は、その処理内容に応じて、初期個体生成部111、個体コード生成部112、学習実行部113、個体評価・選別部114、及び進化実行部115を含むサブブロックに細分化される。また、図3に示されるように、記憶部12は、メインプログラム121、個体コード生成プログラム122、レイヤー名称定義データ123、レイヤー構造定義データ124、レイヤーコード生成ルール125、テンプレートデータ126、個体コード127、及び学習用データ128を含む各種のプログラムやデータを格納する。   As illustrated in FIG. 4, the processing unit 11 includes an initial individual generation unit 111, an individual code generation unit 112, a learning execution unit 113, an individual evaluation / selection unit 114, and an evolution execution unit 115 according to the processing content. Sub-blocks. As shown in FIG. 3, the storage unit 12 stores a main program 121, an individual code generation program 122, a layer name definition data 123, a layer structure definition data 124, a layer code generation rule 125, template data 126, and an individual code 127. And various programs and data including the learning data 128 are stored.

メインプログラム121は、プロセッサ101により実行されることで、初期個体生成部111、学習実行部113、個体評価・選別部114、及び進化実行部115の機能を実現する。また、個体コード生成プログラム122は、プロセッサ101により実行されることで個体コード生成部112の機能を実現する。メインプログラム121及び個体コード生成プログラム122については後に詳述する。   The main program 121, when executed by the processor 101, realizes functions of the initial individual generation unit 111, the learning execution unit 113, the individual evaluation / selection unit 114, and the evolution execution unit 115. The individual code generation program 122 implements the function of the individual code generation unit 112 by being executed by the processor 101. The main program 121 and the individual code generation program 122 will be described later in detail.

レイヤー名称定義データ123とレイヤー構造定義データ124は、個体の文字列データからレイヤーノードLNを抽出し、レイヤーオブジェクトを生成するためのルールを定義する。   The layer name definition data 123 and the layer structure definition data 124 define a rule for extracting a layer node LN from character string data of an individual and generating a layer object.

レイヤーオブジェクトとは、木構造で表される学習ネットワークにおける各階層のレイヤーノードLNに、当該レイヤーノードLNの持つパラメータノードPNの値を適用したものであり、1つのレイヤーノードLNが、当該レイヤーノードLNに対するパラメータノードPNと共に、1つのレイヤーオブジェクトに変換される。このレイヤーオブジェクトに基づいて、各レイヤーノードLNに対応するプログラムコードが得られる。1つの個体はレイヤーオブジェクトの配列として表される。   The layer object is obtained by applying the value of the parameter node PN of the layer node LN to the layer node LN of each layer in the learning network represented by the tree structure. It is converted into one layer object together with the parameter node PN for LN. Based on this layer object, a program code corresponding to each layer node LN is obtained. One individual is represented as an array of layer objects.

レイヤー名称定義データ123は、学習ネットワーク生成装置1にて扱うレイヤーノードLNの名称、各レイヤーノードLNに連なるパラメータノードPNの名称や順番等を定義する。また、レイヤー構造定義データ124は、レイヤーノードLNの種類毎に、レイヤーオブジェクトのデータ構造を定義する。すなわち、パラメータノードPNの種類、数、パラメータノードPNの値の意義等は、レイヤーノードLNの種類毎に異なり、レイヤー構造定義データ124は、レイヤーノードLNの種類毎にこれらの情報を定義する。レイヤー構造定義データ124に定義されるデータ構造は、例えば、当該レイヤーオブジェクトが有するユニットの数を示すデータ、活性化関数の種類を示すデータ(例えば、識別番号)、パラメータを示すデータ等を含む。   The layer name definition data 123 defines the names of the layer nodes LN handled by the learning network generation device 1, the names and the order of the parameter nodes PN connected to each layer node LN, and the like. The layer structure definition data 124 defines a data structure of a layer object for each type of the layer node LN. That is, the type and number of the parameter nodes PN, the significance of the values of the parameter nodes PN, and the like differ for each type of the layer node LN, and the layer structure definition data 124 defines such information for each type of the layer node LN. The data structure defined in the layer structure definition data 124 includes, for example, data indicating the number of units included in the layer object, data indicating the type of the activation function (for example, identification number), data indicating a parameter, and the like.

プログラムへの実装において、レイヤーノードLNの種類に応じたデータ構造は、レイヤーノードLNの種類に応じて定義されるクラスにおけるメンバ変数としてレイヤー構造定義データ124に記述される。この他、レイヤーノードLNの種類に応じて定義されるクラスは、レイヤーオブジェクトのインスタンスを作るためのコンストラクタ、インスタンスを破棄するためのデストラクタ等のメンバ関数も定義するとよい。なお、‘Flatten’のように、パラメータノードPNを持たないレイヤーノードLNも存在し、このようなパラメータノードPNを持たないレイヤーノードLNを定義するクラスは、パラメータノードPNに関する定義を含まない。   In the implementation in the program, the data structure according to the type of the layer node LN is described in the layer structure definition data 124 as a member variable in a class defined according to the type of the layer node LN. In addition, the class defined according to the type of the layer node LN may also define member functions such as a constructor for creating an instance of the layer object and a destructor for destroying the instance. Note that there is also a layer node LN having no parameter node PN, such as 'Flatten', and a class defining such a layer node LN having no parameter node PN does not include a definition relating to the parameter node PN.

レイヤーコード生成ルール125は、レイヤーオブジェクトを具体的なプログラムコードの文字列に変換するためのルールや条件を規定する。例えば、レイヤーコード生成ルール125は、レイヤーオブジェクトのインスタンスが有する活性化関数の種類を示すデータを、具体的な活性化関数に対応付ける変換ルールを定義する。また、レイヤーコード生成ルール125は、レイヤーオブジェクトのインスタンスを当該レイヤーでの処理を規定するプログラムコードに変換するルールを規定する。   The layer code generation rule 125 defines rules and conditions for converting a layer object into a specific program code character string. For example, the layer code generation rule 125 defines a conversion rule that associates data indicating the type of the activation function of the instance of the layer object with a specific activation function. Further, the layer code generation rule 125 defines a rule for converting an instance of a layer object into a program code that defines processing in the layer.

テンプレートデータ126は、全ての個体コードに共通して含まれるコードを規定する。テンプレートデータ126は、例えば、深層学習の学習ネットワーク部分以外の部分を規定する。また、生成する学習ネットワークへ外部からの入力の形式とする場合には、学習ネットワークの入力層は生成する全ての学習ネットワークで共通となる。このように、全ての学習ネットワークで共通となる部分がある場合には、このような共通部分についてもテンプレートデータ126に定義するとよい。このようにすれば、学習ネットワークにおける変更可能な部分と共通部分とを完全に切り分けて扱うことができる。したがって、変更可能な部分で処理するデータ量を削減できる。また、共通部分については一括して修正・変更等を行うことができる。   The template data 126 defines a code commonly included in all the individual codes. The template data 126 defines, for example, a part other than the learning network part of the deep learning. In the case of using a form of an external input to the generated learning network, the input layer of the learning network is common to all the generated learning networks. As described above, when there is a portion common to all the learning networks, such a common portion may be defined in the template data 126. In this way, the changeable part and the common part in the learning network can be completely separated and handled. Therefore, the amount of data to be processed in the changeable portion can be reduced. Further, the common part can be collectively modified / changed.

個体コード127は、個体コード生成部112によって生成される各個体の個体コードであり、文字列で記述されたプログラムコードである。個体コード127は、レイヤーオブジェクトの配列として表される個体の情報、レイヤー名称定義データ123、レイヤー構造定義データ124、レイヤーコード生成ルール125、及びテンプレートデータ126に基づき生成される。   The individual code 127 is an individual code of each individual generated by the individual code generation unit 112, and is a program code described in a character string. The individual code 127 is generated based on information of an individual represented as an array of layer objects, layer name definition data 123, layer structure definition data 124, layer code generation rules 125, and template data 126.

学習用データ128は、個体コード127に深層学習を行わせる際に用いられる学習用データである。学習用データ128は、例えば、入力データと正解データの組により定義される。   The learning data 128 is learning data used when the individual code 127 performs deep learning. The learning data 128 is defined, for example, by a set of input data and correct answer data.

続いて、処理部11の構成要素である、初期個体生成部111、個体コード生成部112、学習実行部113、個体評価・選別部114、及び進化実行部115の実現方法を、学習ネットワーク生成装置1による学習ネットワーク生成処理の流れとともに説明する。図5は、学習ネットワーク生成処理の手順を示すフローチャートを示している。   Next, a learning network generating apparatus is used to describe how to implement the initial individual generating unit 111, the individual code generating unit 112, the learning executing unit 113, the individual evaluating / selecting unit 114, and the evolution executing unit 115, which are the components of the processing unit 11. 1 will be described together with the flow of the learning network generation process. FIG. 5 is a flowchart illustrating the procedure of the learning network generation process.

初期個体生成部111は、プロセッサ101がメインプログラム121を実行することにより実現される。メインプログラム121は、例えば、レイヤーノードLNの接続ルールや許容される層数等の学習ネットワーク生成装置1で扱う学習ネットワークの記述ルール、生成する初期個体の数等の初期個体生成条件を含んでいる。初期個体生成部111は、メインプログラム121に規定された初期個体生成ルールに従って、学習ネットワークの構造を定義する文字列を生成し、個体コード生成部112に出力する(ステップS100)。   The initial individual generation unit 111 is realized by the processor 101 executing the main program 121. The main program 121 includes, for example, a description rule of a learning network handled by the learning network generation device 1 such as a connection rule of the layer node LN and an allowable number of layers, and initial individual generation conditions such as the number of initial individuals to be generated. . The initial individual generation unit 111 generates a character string that defines the structure of the learning network according to the initial individual generation rule defined in the main program 121, and outputs the character string to the individual code generation unit 112 (Step S100).

個体コード生成部112は、プロセッサ101が個体コード生成プログラム122を実行することにより実現される。個体コード生成部112は、各個体の学習ネットワークを表す文字列データに基づき、当該個体の個体コード127を生成する。個体コード生成部112が行う処理は次の通りである。   The individual code generation unit 112 is realized by the processor 101 executing the individual code generation program 122. The individual code generation unit 112 generates an individual code 127 of the individual based on the character string data representing the learning network of each individual. The processing performed by the individual code generation unit 112 is as follows.

まず、個体コード生成部112は、個体を定義する文字列を、レイヤー毎に分解してレイヤーオブジェクトの配列とする(ステップS110)。具体的には、個体コード生成部112は、個体を定義する文字列の中で、レイヤー名称定義データ123定義されたレイヤーノードLNを示す文字列から、次のレイヤーノードLNを示す文字列の直前までを、1つのレイヤーオブジェクトを表す単位として認識する。そして、レイヤーノードLNの名称に応じたレイヤーオブジェクトのインスタンスを、レイヤー構造定義データ124に規定されているレイヤーオブジェクトのデータ構造に則って生成する。このとき、パラメータノードPNの値は、インスタンスにおける対応するメンバ変数の値として代入される。   First, the individual code generation unit 112 decomposes a character string defining an individual for each layer into an array of layer objects (step S110). Specifically, in the character string defining the individual, the individual code generation unit 112 converts the character string indicating the layer node LN defined in the layer name definition data 123 to the character string immediately before the character string indicating the next layer node LN. Are recognized as a unit representing one layer object. Then, an instance of the layer object corresponding to the name of the layer node LN is generated according to the data structure of the layer object defined in the layer structure definition data 124. At this time, the value of the parameter node PN is substituted as the value of the corresponding member variable in the instance.

このようにして、個体コード生成部112は、個体を定義する文字列に含まれる全てのレイヤーノードLNを順番にレイヤーオブジェクトのインスタンスに変換し、変換順に並んだに配列に記憶する。   In this way, the individual code generation unit 112 sequentially converts all the layer nodes LN included in the character string defining the individual into instances of the layer object, and stores them in an array arranged in the conversion order.

続いて、個体コード生成部112は、レイヤーオブジェクトの配列をレイヤーコード生成ルール125に基づいて個体の学習ネットワークに応じたプログラムコードを生成するとともに、この生成したプログラムコードに、テンプレートデータ126に規定された共通のコードとを組み合わせて、学習ネットワークの個体の個体コード127を生成して出力する(ステップS120)。個体コード127は、文字列で記述されたプログラムコードであり、後の学習や評価のために学習ネットワーク生成装置12に記録される。   Subsequently, the individual code generation unit 112 generates a program code corresponding to the learning network of the individual based on the array of the layer objects based on the layer code generation rule 125, and defines the generated program code in the template data 126. The individual code 127 of the individual in the learning network is generated and output by combining the common code and the common code (step S120). The individual code 127 is a program code described in a character string, and is recorded in the learning network generation device 12 for later learning and evaluation.

学習実行部113は、初期個体生成部111と同様、プロセッサ101がメインプログラム121を実行することにより実現される。学習実行部113は、個体コード127に学習用データ128を適用して、深層学習を実行する(ステップS130)。すなわち、学習実行部113は、はじめに各ユニットの入力について重み係数の初期値としてランダムとしてランダムな値を設定する。そして、学習用データ128に規定された学習用の入力データを個体コード127に適用し、個体コード127の出力を学習用データ128に規定された入力データに対応する正解データと照合する。そして、照合結果に応じて、個体コード127で記述される学習ネットワークの内部パラメータを調整する。このような処理を繰り返すことで、学習ネットワークに深層学習を行わせることができる。なお、深層学習を行う条件(例えば繰り返しの回数等)はメインプログラム121の中に定義される。上述のように、重み係数の初期値はランダムな値であるため、同じ個体コード127でも実行毎に学習結果が異なる場合がある。このため、1つの個体コード127に対して深層学習を複数試行し、最もよい学習結果を採用するようにするとよい。   The learning execution unit 113 is realized by the processor 101 executing the main program 121, similarly to the initial individual generation unit 111. The learning execution unit 113 executes the deep learning by applying the learning data 128 to the individual code 127 (step S130). That is, the learning execution unit 113 first sets a random value as a random value as an initial value of the weight coefficient for the input of each unit. Then, the learning input data specified in the learning data 128 is applied to the individual code 127, and the output of the individual code 127 is compared with the correct answer data corresponding to the input data specified in the learning data 128. Then, the internal parameters of the learning network described by the individual code 127 are adjusted according to the matching result. By repeating such processing, the learning network can perform deep learning. The conditions for performing deep learning (for example, the number of repetitions) are defined in the main program 121. As described above, since the initial value of the weight coefficient is a random value, the learning result may be different each time the same individual code 127 is executed. For this reason, it is preferable that a plurality of deep learnings are performed on one individual code 127 and the best learning result is adopted.

個体評価・選別部114は、初期個体生成部111と同様、プロセッサ101がメインプログラム121を実行することにより実現される。個体評価・選別部114は、学習実行部113により深層学習を行った学習済みの各個体について、評価を行う。評価の方法としては、様々な既知の評価関数を用いることができる。   The individual evaluation / selection unit 114 is realized by the processor 101 executing the main program 121, similarly to the initial individual generation unit 111. The individual evaluation / selection unit 114 evaluates each learned individual on which the learning execution unit 113 has performed the deep learning. As a method of evaluation, various known evaluation functions can be used.

続いて、個体評価・選別部114は、評価結果に基づき個体の選別処理を実施する。メインプログラム121は、例えば、各個体を評価結果に応じて残すか否かを決定する判定条件を含んでいる。個体評価・選別部114は、評価結果と判定条件とに基づき、残す個体を選別し、その他の個体については削除する(ステップS140)。   Subsequently, the individual evaluation / selection unit 114 performs an individual selection process based on the evaluation result. The main program 121 includes, for example, a determination condition for determining whether to leave each individual according to the evaluation result. The individual evaluation / selection unit 114 selects the individual to be left based on the evaluation result and the determination condition, and deletes the other individuals (step S140).

進化実行部115は、初期個体生成部111と同様、プロセッサ101がメインプログラム121を実行することにより実現される。進化実行部115に先立ち、メインプログラムにより、進化過程を実行するか否かが判定される(ステップS150)。進化過程を実行するか否かは、例えば、初期個体からこれまでに進化過程を行った回数、残っている個体の評価結果等に基づいて判定するとよい。進化過程を実行すると判定された場合(ステップS150;Yes)、進化実行部115は、残っている個体に対して進化過程を実施する(ステップS160)。すなわち、進化実行部115は、個体に対して交叉処理および突然変異処理を行う。   The evolution execution unit 115 is realized by the processor 101 executing the main program 121, similarly to the initial individual generation unit 111. Prior to the evolution execution unit 115, the main program determines whether to execute the evolution process (step S150). Whether or not to execute the evolution process may be determined based on, for example, the number of times the evolution process has been performed from the initial individual up to now, the evaluation results of the remaining individuals, and the like. When it is determined that the evolution process is to be performed (Step S150; Yes), the evolution execution unit 115 performs the evolution process on the remaining individuals (Step S160). That is, the evolution execution unit 115 performs the crossover process and the mutation process on the individual.

交叉処理としては、例えばワンポイント法にて交叉を起こすとよい。ワンポイント法では、残した個体の内から2つの個体を親個体として選択し、図6に示したように、選択した2つの親個体のそれぞれから、接続ルールに違反することなく交換可能なレイヤーノードLNを選択して、当該レイヤーノードLNにて、学習ネットワークを切断し、繋ぎ変えて子個体とする。なお、2つの親個体に対して、それぞれ異なる交叉処理が行われることで、3つ以上の子個体が生成されてもよい。   As the crossover processing, for example, crossover may be performed by a one-point method. In the one-point method, two individuals are selected as parent individuals from the remaining individuals, and as shown in FIG. 6, a layer that can be exchanged without violating the connection rule from each of the two selected parent individuals. The node LN is selected, and the learning network is disconnected at the layer node LN, and reconnected to be a child individual. Note that three or more child individuals may be generated by performing different crossover processes on the two parent individuals.

また、突然変異処理としては、例えば、初期個体を生成するときと同様の手法で新たに個体を生成する、残した個体(親個体)の一部を(接続ルールに違反しない範囲で)ランダムに変更する、残した個体(親個体)にランダムに新たなレイヤーを付加する、といった手法を採用するとよい。   In addition, as the mutation process, for example, a part of the remaining individual (parent individual) is randomly generated (within a range that does not violate the connection rule) by newly generating an individual in the same manner as when generating the initial individual. It is preferable to adopt a method of changing the pattern or adding a new layer randomly to the remaining individual (parent individual).

進化実行部115は、メインプログラム121に定義された数の子個体が生成されるまで、ランダムに親個体を変えながら進化過程を繰り返し実施する。なお、進化実行部115による交叉処理や突然変異処理は、個体評価・選別部114が評価した個体に対応する元の文字列で記述された木構造のデータに対して行うとよい。このようにすることで、初期個体の生成時と同じ接続ルールや個体のプログラムコードの生成ルールを、進化時にも容易に適用することが可能となる。また、文字列で記述された木構造のデータは、プログラムコード自体は含まず、学習ネットワークの構造を示す情報のみを含むため、処理部11で行われる処理の負荷を抑制することができる。   The evolution execution unit 115 repeatedly performs the evolution process while randomly changing parent individuals until the number of child individuals defined in the main program 121 is generated. The crossover process and the mutation process by the evolution execution unit 115 may be performed on tree-structured data described by the original character string corresponding to the individual evaluated by the individual evaluation / selection unit 114. This makes it possible to easily apply the same connection rules as when generating the initial individual and the rules for generating the program code of the individual during evolution. Further, the tree-structured data described by the character string does not include the program code itself, but includes only information indicating the structure of the learning network, so that the processing load performed by the processing unit 11 can be suppressed.

進化過程の完了後、処理がステップS120に移される。すなわち、生成された子個体に対して学習実行部113での深層学習、個体評価・選別部114での評価と選別、及び進化実行部115での進化が、さらなる進化過程を実行しないとする判定条件(例えば繰り返しの回数)を満たすまで繰り返される。そして、進化過程を実行しないと判定されると(ステップS150;No)、その時点で残った個体のうち、評価結果が優れたものを最終的に生成された個体として出力し(ステップS170)、学習ネットワーク生成処理を終了する。最終的に生成された個体は1つとしてもよいし、複数としてもよい。   After the completion of the evolution process, the process moves to step S120. That is, it is determined that deep learning in the learning execution unit 113, evaluation and selection in the individual evaluation / selection unit 114, and evolution in the evolution execution unit 115 do not execute a further evolution process on the generated child individual. The process is repeated until a condition (for example, the number of repetitions) is satisfied. If it is determined that the evolution process is not to be performed (Step S150; No), among the remaining individuals at that time, those with excellent evaluation results are output as finally generated individuals (Step S170). The learning network generation processing ends. The number of individuals finally generated may be one or plural.

以上で説明した構成及び手順により、本実施形態の学習ネットワーク生成装置および学習ネットワーク生成プログラムは、対象に適した構造の学習ネットワークを自動的に生成することができる。   With the configuration and procedure described above, the learning network generation device and the learning network generation program of the present embodiment can automatically generate a learning network having a structure suitable for a target.

なお、上記に本実施形態を説明したが、本発明はこれらの例に限定されるものではない。例えば、上記の実施形態において、図2に示したような木構造により学習ネットワークを定義した。図2の木構造は、1つのレイヤーにつき1つのレイヤーノードLNが含まれるものであった。しかし、1つのレイヤーに複数のレイヤーノードLNが含まれることを許容し、分岐を伴う複雑な構造の学習ネットワークを定義できるようにしてもよい。   Although the present embodiment has been described above, the present invention is not limited to these examples. For example, in the above embodiment, the learning network is defined by a tree structure as shown in FIG. The tree structure in FIG. 2 includes one layer node LN for each layer. However, one layer may include a plurality of layer nodes LN, and a learning network having a complicated structure with branching may be defined.

また、上記の実施形態において、学習用データ128は入力データと正解データの組により定義されたが、学習実行部113にて、いわゆる「教師なし学習」を行う場合には、正解データを含まなくてもよい。   Further, in the above embodiment, the learning data 128 is defined by a set of the input data and the correct answer data. However, when performing the so-called “unsupervised learning” in the learning executing unit 113, the learning data 128 does not include the correct answer data. You may.

また、前述の実施形態に対して、当業者が適宜、構成要素の追加、削除、設計変更を行ったものや、各実施形態の特徴を適宜組み合わせたものも、本発明の要旨を備えている限り、本発明の範囲に包含される。   Also, those in which a person skilled in the art appropriately adds, deletes, or changes the design of the above-described embodiments, or appropriately combines the features of the embodiments also have the gist of the present invention. As long as they are included in the scope of the present invention.

1 学習ネットワーク生成装置
11 処理部
12 記憶部
13 入力部
14 出力部
111 初期個体生成部
112 個体コード生成部
113 学習実行部
114 個体評価・選別部
115 進化実行部
121 メインプログラム
122 個体コード生成プログラム
1231 レイヤー名称定義データ
1232 レイヤー構造定義データ
127 コード
124 テンプレートデータ
125 個体コード
126 学習用データ
Reference Signs List 1 learning network generation device 11 processing unit 12 storage unit 13 input unit 14 output unit 111 initial individual generation unit 112 individual code generation unit 113 learning execution unit 114 individual evaluation / selection unit 115 evolution execution unit 121 main program 122 individual code generation program 1231 Layer name definition data 1232 Layer structure definition data 127 Code 124 Template data 125 Individual code 126 Learning data

Claims (8)

学習ネットワークの個体を定義するデータを生成する初期個体生成部と、
前記初期個体生成部が生成した前記学習ネットワークの個体を定義するデータに基づき、当該個体に応じたプログラムコードを生成するコード生成部と、
前記コード生成部が生成した個体に応じたプログラムコードに対して学習用データを適用して進化学習を実行する学習実行部と、
前記学習実行部にて進化学習を行った学習済み個体を評価するとともに、評価の結果に応じて個体を残すか否かを判定する評価・選別部と、
を備えることを特徴とする学習ネットワーク生成装置。
An initial individual generation unit that generates data defining an individual of the learning network;
Based on data defining the individual of the learning network generated by the initial individual generation unit, a code generation unit that generates a program code corresponding to the individual,
A learning execution unit that executes evolutionary learning by applying learning data to a program code corresponding to an individual generated by the code generation unit;
Evaluating the learned individual that has performed the evolutionary learning in the learning execution unit, and an evaluation / selection unit that determines whether to leave the individual according to the evaluation result,
A learning network generation device, comprising:
前記初期個体生成部は、前記学習ネットワークの構造を表すデータを生成することを特徴とする請求項1に記載の学習ネットワーク生成装置。   The learning network generation device according to claim 1, wherein the initial individual generation unit generates data representing a structure of the learning network. 前記初期個体生成部は、前記学習ネットワークの構造を表すデータを、
前記学習ネットワークにおける1つの層に対応し、少なくとも当該1つの層と前層との接続関係を示すレイヤーノードと、
前記レイヤーノードに連なり、当該レイヤーノードに対応する層の構造に関するパラメータを示すパラメータノードと
を含む木構造のデータとして出力することを特徴とする請求項2に記載の学習ネットワーク生成装置。
The initial individual generation unit, data representing the structure of the learning network,
A layer node corresponding to one layer in the learning network and indicating a connection relationship between at least the one layer and a previous layer;
The learning network generation device according to claim 2, wherein the learning network generation device outputs the data as a tree structure including a parameter node indicating a parameter related to a structure of a layer corresponding to the layer node.
前記学習ネットワークは、それぞれ1以上のユニットを有する複数の層が結合された構造を有しており、
学習ネットワークの構造を表すデータは、各層を構成するユニットの数、各ユニットにおける活性化関数、及び層間の結合関係を含むことを特徴とする請求項2または3に記載の学習ネットワーク生成装置。
The learning network has a structure in which a plurality of layers each having one or more units are connected,
4. The learning network generation device according to claim 2, wherein the data representing the structure of the learning network includes the number of units constituting each layer, an activation function in each unit, and a connection relationship between layers. 5.
前記コード生成部は、前記初期個体生成部が生成した学習ネットワークの構造を表すデータと、個体に依存しない共通部分のテンプレートデータとに基づき、個体に応じたプログラムコードを生成することを特徴とする請求項1から4の何れか1項に記載の学習ネットワーク生成装置。   The code generator generates a program code corresponding to an individual based on data representing a structure of a learning network generated by the initial individual generator and template data of a common part independent of the individual. The learning network generation device according to claim 1. 前記評価・選別部の選別した個体に対し、進化過程を実施して次世代の個体を生成する進化実行部をさらに備え、
前記コード生成部は、前記進化実行部が生成した前記次世代の個体に応じたプログラムコードを生成することを特徴とする請求項1から5のいずれか1項に記載の学習ネットワーク生成装置。
The individual selected by the evaluation / selection unit further includes an evolution execution unit that performs an evolution process to generate a next generation individual,
The learning network generation device according to any one of claims 1 to 5, wherein the code generation unit generates a program code according to the next generation individual generated by the evolution execution unit.
コンピュータを請求項1から6の何れか1項に記載の学習ネットワーク生成装置として機能させる学習ネットワーク生成プログラム。   A learning network generation program for causing a computer to function as the learning network generation device according to any one of claims 1 to 6. コンピュータに、
学習ネットワークの個体を定義するデータを生成する初期個体生成ステップと、
前記初期個体生成ステップにて生成した前記学習ネットワークの個体を定義するデータに基づき、当該個体に応じたプログラムコードを生成するコード生成ステップと、
前記コード生成ステップにて生成した個体に応じたプログラムコードに対して学習用データを適用して進化学習を実行する学習実行ステップと、
前記学習実行ステップにて進化学習を行った学習済み個体を評価するとともに、評価の結果に応じて個体を残すか否かを判定する評価・選別ステップと、
を実行させることを特徴とする学習ネットワーク生成プログラム。

On the computer,
An initial individual generation step of generating data defining an individual of the learning network;
A code generation step of generating a program code corresponding to the individual based on the data defining the individual of the learning network generated in the initial individual generation step,
A learning execution step of executing evolutionary learning by applying learning data to a program code corresponding to the individual generated in the code generation step,
Evaluating the learned individual that has performed the evolutionary learning in the learning execution step, and an evaluation / selection step of determining whether to leave the individual according to the result of the evaluation,
A learning network generation program, characterized by causing a computer to execute a learning network.

JP2019545516A 2017-09-28 2017-09-28 Learning network generation device and learning network generation program Active JP6694197B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/035356 WO2019064461A1 (en) 2017-09-28 2017-09-28 Learning network generation device and learning network generation program

Publications (2)

Publication Number Publication Date
JPWO2019064461A1 true JPWO2019064461A1 (en) 2020-03-26
JP6694197B2 JP6694197B2 (en) 2020-05-13

Family

ID=65901142

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019545516A Active JP6694197B2 (en) 2017-09-28 2017-09-28 Learning network generation device and learning network generation program

Country Status (2)

Country Link
JP (1) JP6694197B2 (en)
WO (1) WO2019064461A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003317073A (en) * 2002-04-24 2003-11-07 Fuji Xerox Co Ltd Neural network processor
JP2008533615A (en) * 2005-03-14 2008-08-21 エル ターラー、ステフエン Neural network development and data analysis tools
JP2017097807A (en) * 2015-11-27 2017-06-01 富士通株式会社 Learning method, learning program, and information processing device
WO2017154284A1 (en) * 2016-03-09 2017-09-14 ソニー株式会社 Information processing method and information processing device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003317073A (en) * 2002-04-24 2003-11-07 Fuji Xerox Co Ltd Neural network processor
JP2008533615A (en) * 2005-03-14 2008-08-21 エル ターラー、ステフエン Neural network development and data analysis tools
JP2017097807A (en) * 2015-11-27 2017-06-01 富士通株式会社 Learning method, learning program, and information processing device
WO2017154284A1 (en) * 2016-03-09 2017-09-14 ソニー株式会社 Information processing method and information processing device

Also Published As

Publication number Publication date
WO2019064461A1 (en) 2019-04-04
JP6694197B2 (en) 2020-05-13

Similar Documents

Publication Publication Date Title
Gao et al. Deep leaf‐bootstrapping generative adversarial network for structural image data augmentation
Schuman et al. Evolutionary optimization for neuromorphic systems
Li et al. Self-paced multi-task learning
JP6605259B2 (en) Neural network structure expansion method, dimension reduction method, and apparatus using the method
US9390373B2 (en) Neural network and method of neural network training
Han et al. An improved evolutionary extreme learning machine based on particle swarm optimization
US20160283842A1 (en) Neural network and method of neural network training
CN112598080B (en) Attention-based width graph convolutional neural network model system and training method
Rawat et al. Application of adversarial networks for 3D structural topology optimization
US20230268035A1 (en) Method and apparatus for generating chemical structure using neural network
US20200184334A1 (en) Modification of neural network topology
KR102363370B1 (en) Artificial neural network automatic design generation apparatus and method using UX-bit and Monte Carlo tree search
JP7115207B2 (en) Learning program, learning method and learning device
KR20210060146A (en) Method and apparatus for processing data using deep neural network model, method and apparatus for trining deep neural network model
Doughan et al. Novel preprocessors for convolution neural networks
CN116249994A (en) Predictive model with decomposable hierarchy configured to generate interpretable results
CN112668700A (en) Width map convolutional network model based on grouping attention and training method thereof
JP6694197B2 (en) Learning network generation device and learning network generation program
CN110298449B (en) Method and device for computer to carry out general learning and computer readable storage medium
JP2020052935A (en) Method of creating learned model, method of classifying data, computer and program
Li et al. A hint from arithmetic: On systematic generalization of perception, syntax, and semantics
WO2021059527A1 (en) Learning device, learning method, and recording medium
WO2023228290A1 (en) Learning device, learning method, and program
KR102289785B1 (en) Metacognition Deep Neuro-Fuzzy Network Learning and Inferring Method and System Thereof
JP6947460B1 (en) Programs, information processing equipment, and methods

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191202

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191202

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20191218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200303

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: 20200317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200403

R150 Certificate of patent or registration of utility model

Ref document number: 6694197

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250