WO2019064461A1 - 学習ネットワーク生成装置、及び学習ネットワーク生成プログラム - Google Patents
学習ネットワーク生成装置、及び学習ネットワーク生成プログラム Download PDFInfo
- Publication number
- WO2019064461A1 WO2019064461A1 PCT/JP2017/035356 JP2017035356W WO2019064461A1 WO 2019064461 A1 WO2019064461 A1 WO 2019064461A1 JP 2017035356 W JP2017035356 W JP 2017035356W WO 2019064461 A1 WO2019064461 A1 WO 2019064461A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- individual
- learning network
- learning
- layer
- generation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Definitions
- the present invention relates to a program for generating a learning network that performs machine learning by so-called deep learning.
- Deep learning in which machines (computers) automatically derive judgment rules from learning data by entering a large amount of learning data without human being writing a rule I'm collecting.
- Deep learning which is a type of machine learning, is being applied to fields such as image recognition and speech recognition. Deep learning is said to be characterized in that a machine (computer) automatically learns features to be extracted from learning data. That is, in deep learning, it is said that 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. And various apparatuses using such deep learning are proposed (for example, refer to patent documents 1).
- the learning network is an algorithm that models neural cells (neurons) of the brain of an organism and is provided with a plurality of layers. Each layer is composed of one or more nodes (also referred to as units, hereinafter referred to as units in order to be distinguished from the nodes in the tree structure described later).
- the learning network can improve the accuracy (correct answer rate) that can output the correct answer based on the input by adjusting the input weight (coefficient) to each node by repeatedly performing machine learning.
- a learning network is often represented by a multilayer perceptron model configured by an input layer, one or more intermediate layers, and an output layer.
- each layer has one or more nodes, and one or more input values are given to each unit from the previous layer (external for the input layer).
- the number of units included in each layer and the connection relationship of units between layers vary.
- Each input value to the unit is multiplied by a weighting factor, and the sum of values obtained by multiplying the input value by the weighting factor becomes an argument of the activation function defined for each unit.
- the output of the activation function is the output value to the next layer.
- the learning network has its structure defined by the number of units constituting each layer, the activation function in each unit, the coupling relationship between layers, etc., and the input is given to the defined learning network.
- the learning is performed by correcting the weighting factor applied to the input to each unit so that the output approaches the correct answer.
- the structure of the learning network is inadequate, it is not possible to improve the correct answer rate even if machine learning is repeated.
- the structure of the learning network is an important factor in enhancing the effect of deep learning
- the structure of the appropriate learning network depends on the object (for example, whether the object is identification of characters or identification of images, etc. ) Different. For this reason, conventionally, the designer has basically found and defined the structure of the learning network that seems appropriate for the object by repeating trial and error manually.
- the present invention has been made to solve the above problems, and it is an object of the present invention to provide a learning network generation device and a learning network generation program capable of automatically generating a learning network of a structure suitable for an object. Do.
- a learning network generation device 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 according to the individual, and a learning execution unit that executes evolutionary learning by applying learning data to the program code according to the individual generated by the code generation unit;
- An evaluation / sorting unit that evaluates a learned individual that has undergone evolutionary learning in the learning execution unit and determines whether to leave the individual according to the result of the evaluation.
- the initial individual generation unit may generate data representing the structure of the learning network.
- the initial population generation unit corresponds to a layer in the learning network, data representing the structure of the learning network, and a layer node indicating a connection relationship between at least the one layer and the previous layer;
- the data may be output as tree-structured data including a node connected to the node and a parameter node indicating a parameter related to the structure of the layer corresponding to the layer node.
- the structure of the individual of the learning network can be expressed in a form that is easy to handle.
- data representing the structure of the learning network is the number of units constituting each layer, activation in each unit It is good to include the connection relation between functions and layers.
- the code generation unit preferably generates a program code according to the individual based on the data representing the structure of the learning network generated by the initial individual generation unit and the template data of the common part not depending on the individual.
- the learning network generation apparatus further includes an evolution execution unit that performs an evolution process on the individuals selected by the evaluation / sorting unit to generate a next generation individual
- the code generation unit is an evolution execution unit It is preferable to generate program code according to the generated next-generation individual. In this way, new generations of individuals evolved from superior individuals are automatically generated and evaluated by multiplying superior individuals with each other or causing excellent individuals to mutate. By screening, it is possible to output excellent individuals.
- the learning network generation program according to the present invention may cause a computer to function as any of the above learning network generation devices.
- a learning network generation program includes, on a computer, an initial individual generation 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 generation step.
- An evaluation / sorting step is performed to evaluate a learned individual that has undergone evolutionary learning in the learning execution step, and to determine whether to leave the individual according to the result of the evaluation.
- FIG. 2 is a functional block diagram of a learning network generation device 1. It is a flowchart which shows the procedure of a learning network production
- the learning network generation device 1 defines each learning network (individual) in a tree structure.
- FIG. 2 shows an example of an individual defined in a tree structure.
- the vertical direction of the drawing represents a hierarchy (layer), and the layer drawn in the upper part in the drawing is a layer of a higher hierarchy.
- a node drawn at the right end is called a layer node LN, and represents an attribute of each hierarchy in the learning network.
- the nodes drawn at other than the right end are called parameter nodes PN, and define the parameters of the layer node LN one layer higher.
- the layer node LN of the second layer L2 is 'PreviousDense'
- the value of each parameter node PN belonging to the third layer L3 is set as a parameter to 'PreviousDense'.
- the significance of the value of the parameter node PN is defined for each type of layer node LN.
- 'Flatten' which is the layer node LN of the third layer L3 in FIG. 2, the existence of the layer node LN having no parameter node PN is also permitted.
- the learning network represented by such a tree structure is described by data of a character string. Strings describing tree structures start with " ⁇ ". Then, to the node number in the tree structure (for example, “0:”, “1:”, etc.), a character string indicating the type of layer node LN (for example, “HyperParameter”, “PreviousDense”, etc.) or the immediately preceding layer node LN.
- the structure of the learning network is described by repeating the values of consecutive 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.
- the correspondence between the learning network represented by the tree structure and the learning network depicted by the multi-layer perceptron model is as follows.
- the layer node LN of the top hierarchy L1 is 'HyperParameter', and two parameters ('LEARNING_RATE' and 'MOMENTUM') for this 'HyperParameter' are parameters of the second hierarchy L2.
- 'HyperParameter' defined as the value of the node PN is a parameter related to learning of an individual, and is not directly related to the structure of the learning network represented by the multilayer perceptron model.
- the above 'LEARNING_RATE' and 'MOMENTUM' are merely examples, and the number and type of parameter nodes PN connected to 'HyperParameter' are arbitrary.
- the inputs to the input layer and the input layer in the multilayer perceptron model are common to all individuals and do not appear in the tree structure representation.
- the name of the layer node LN in the layer below the second layer L2 indicates 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 how to connect the input layer to the first intermediate layer.
- the parameter node PN connected to the layer node LN in the layer lower than the second layer L2 is defined according to the number of units included in the layer corresponding to the layer node LN, the type of activation function, and the type of other 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 soft max function, a hyperbolic tangent (tanh) function, and the like.
- the learning network generation device 1 expresses the structure of each layer in the multilayer perceptron model of the individual of the learning network and the connection relationship thereof by a tree structure.
- the weighting factor by which the output value passed between units is multiplied is not defined in the tree structure representation.
- the learning network generation device 1 sets a random value as an initial value before learning of the weighting factor when causing the individual of the learning network to perform learning.
- FIG. 3 shows an example of the configuration of a learning network generation device 1 according to an embodiment of the present invention.
- the learning network generation device 1 generates a learning network by means of genetic programming.
- the learning network generation device 1 is realized, for example, as a computer. That is, the learning network generation device 1 includes a processor 101, a RAM 102, an HDD 103, a graphic processing unit 104, and an input interface 105.
- the learning network generation device 1 is controlled by the processor 101 as a whole.
- the 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).
- the processor 101 may be a combination of two or more elements of a CPU, an MPU, a DSP, an ASIC, and a PLD.
- 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 application programs to be executed by the processor 101.
- the RAM 102 also stores various data necessary for processing by the processor 101.
- 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.
- the auxiliary storage device another type of non-volatile storage device such as a solid state drive (SSD) can also be used.
- SSD solid state drive
- a display device 104 a is connected to the graphic processing unit 104.
- the graphic processing unit 104 displays an image on the screen of the display device 104 a in accordance with an instruction from the processor 101.
- a liquid crystal display, an organic EL (Electro Luminescence) display, or the like is used as the display device 104a.
- An input device 105 a is connected to the input interface 105.
- the input interface 105 transmits the signal output from the input device 105 a to the processor 101.
- the input device 105a includes a keyboard, a pointing device, and the like. Examples of pointing devices include a mouse, a touch panel, a tablet, a touch pad, and a trackball.
- the learning network generation device 1 can be realized by the hardware configuration as described above.
- 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.
- 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 or 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 104 a.
- 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. It is subdivided into containing sub-blocks.
- the storage unit 12 includes a main program 121, an individual code generation program 122, layer name definition data 123, layer structure definition data 124, layer code generation rules 125, template data 126, and individual code 127. , And various programs and data including learning data 128 are stored.
- the main program 121 is executed by the processor 101 to implement the 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 is executed by the processor 101 to realize the function of the individual code generation unit 112.
- the main program 121 and the individual code generation program 122 will be described in detail later.
- the layer name definition data 123 and the layer structure definition data 124 extract a layer node LN from character string data of an individual and define a rule for generating a layer object.
- 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 a tree structure, and one layer node LN is the layer node of the layer It is converted into one layer object together with the parameter node PN for LN. Based on this layer object, program code corresponding to each layer node LN is obtained.
- One individual is represented as an array of layer objects.
- the layer name definition data 123 defines the name of the layer node LN handled by the learning network generation device 1 and the name and order of the parameter nodes PN connected to each layer node LN.
- the layer structure definition data 124 defines the data structure of the layer object for each type of layer node LN. That is, the type of the parameter node PN, the number, the significance of the value of the parameter node PN, etc. differ for each type of layer node LN, and the layer structure definition data 124 defines these pieces of information for each type of layer node LN.
- the data structure defined in the layer structure definition data 124 includes, for example, data indicating the number of units possessed by the layer object, data indicating the type of activation function (for example, identification number), data indicating parameters, and the like.
- a data structure corresponding to the type of layer node LN is described in layer structure definition data 124 as a member variable in a class defined according to the type of layer node LN.
- a class defined according to the type of layer node LN may also define a constructor for creating an instance of a layer object, and a member function such as a destructor for destroying an instance. Note that there is also a layer node LN having no parameter node PN like 'Flatten', and a class defining a layer node LN not having such a parameter node PN does not include a definition regarding the parameter node PN.
- the layer code generation rules 125 define rules and conditions for converting a layer object into a specific program code string.
- the layer code generation rule 125 defines a conversion rule that associates data indicating the type of activation function of an instance of a layer object with a specific activation function.
- the layer code generation rules 125 define rules for converting an instance of a layer object into program code that defines processing in the layer.
- the template data 126 defines a code that is included in common to all individual codes.
- the template data 126 defines, for example, a part other than the learning network part of deep learning.
- the input layer of the learning network is common to all the learning networks to be generated.
- a common part may be defined in the template data 126. In this way, it is possible to completely separate and handle the changeable part and the common part in the learning network. Therefore, the amount of data processed in the changeable part can be reduced.
- common parts can be collectively corrected / changed.
- 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 by a character string.
- the individual code 127 is generated based on individual information 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.
- the learning data 128 is learning data used when the individual code 127 performs deep learning.
- the learning data 128 is defined by, for example, a set of input data and correct data.
- FIG. 5 shows a flowchart showing the procedure of learning network generation processing.
- the initial individual generation unit 111 is realized by the processor 101 executing the main program 121.
- the main program 121 includes, for example, connection rules of the layer node LN, description rules of the learning network handled by the learning network generation device 1 such as the number of allowed 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 defining 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).
- 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 character string data representing a learning network of each individual.
- the process performed by the individual code generation unit 112 is as follows.
- the individual code generation unit 112 decomposes a character string defining an individual into layers, and sets it as an array of layer objects (step S110). Specifically, from the character string indicating the layer node LN in which the layer name definition data 123 is defined in the character string defining the individual, the individual code generation unit 112 immediately precedes the character string indicating the next layer node LN. Up to is recognized as a unit representing one layer object. Then, an instance of a 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.
- the individual code generation unit 112 converts all layer nodes LN included in the character string defining an individual in order into instances of layer objects, and stores them in an array in the order of conversion.
- the individual code generation unit 112 generates a program code according to the learning network of the individual based on the layer code generation rule 125 based on the array of layer objects, and the generated program code defines the template data 126
- the individual code 127 of the individual of 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.
- the learning execution unit 113 is realized by the processor 101 executing the main program 121.
- the learning execution unit 113 applies the learning data 128 to the individual code 127 to execute deep learning (step S130). That is, the learning execution unit 113 first sets a random value as an initial value of the weighting coefficient as an initial value of the input of each unit. Then, the learning input data defined in the learning data 128 is applied to the individual code 127, and the output of the individual code 127 is collated with the correct data corresponding to the input data defined in the learning data 128. Then, according to the comparison result, the internal parameters of the learning network described by the individual code 127 are adjusted. By repeating such processing, deep learning can be performed by the learning network.
- the conditions for performing deep learning are defined in the main program 121.
- the initial value of the weighting factor is a random value, even in the same individual code 127, the learning result may differ for each execution. For this reason, it is good to try a plurality of deep learnings for one individual code 127 and adopt the best learning result.
- the individual evaluation / sorting unit 114 is realized by the processor 101 executing the main program 121 as in the initial individual generation unit 111.
- the individual evaluation / sorting unit 114 evaluates each learned individual that has undergone deep learning by the learning execution unit 113.
- Various known evaluation functions can be used as a method of evaluation.
- the individual evaluation / sorting unit 114 carries out sorting processing of individuals 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 an individual to be left based on the evaluation result and the determination condition, and deletes the other individual (step S140).
- the evolution execution unit 115 is realized by the processor 101 executing the main program 121 as in the initial individual generation unit 111. Prior to the evolution executing unit 115, it is determined by the main program whether or not to execute the evolution process (step S150). Whether 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 so far, the evaluation result of the remaining individuals, and the like. If 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 crossover processing and mutation processing on an individual.
- crossover may be performed by the one-point method.
- two individuals are selected as parent individuals from the remaining individuals, and as shown in FIG. 6, layers that can be exchanged from each of the selected two parent individuals without violating the connection rule
- the node LN is selected, the learning network is disconnected at the layer node LN, and the nodes are changed into child individuals.
- three or more child individuals may be generated by performing different crossover processing on each of the two parent individuals.
- a new individual is generated by the same method as generating an initial individual, and a part of the left-over individual (parent individual) is randomly selected (within a range that does not violate the connection rule). It is good to adopt the method of adding a new layer at random to the individual who left behind (parent individual) to change.
- the evolution execution unit 115 repeatedly executes the evolution process while changing parent individuals randomly 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 data of a tree structure described by the original character string corresponding to the individual evaluated by the individual evaluation / selection unit 114. In this way, it is possible to easily apply the same connection rules as in the generation of the initial individual and the generation rules of the program code of the individual also in the evolution.
- the tree-structured data described by the character string does not include the program code itself, but includes only the information indicating the structure of the learning network, so that the processing load of the processing unit 11 can be suppressed.
- step S120 it is determined that the deep learning in the learning execution unit 113, the evaluation and selection in the individual evaluation / selection unit 114, and the evolution in the evolution execution unit 115 do not execute a further evolution process on the generated child individual It is repeated until a condition (for example, the number of repetitions) is satisfied. Then, when it is determined that the evolution process is not performed (Step S150; No), among the individuals remaining at that time, one having an excellent evaluation result is output as the finally generated individual (Step S170), End learning network generation processing. One or more individuals may be generated finally.
- the learning network generation device and the learning network generation program of the present embodiment can automatically generate a learning network of a structure suitable for an object.
- the learning network is defined by the tree structure as shown in FIG.
- the tree structure in FIG. 2 includes one layer node LN per layer.
- the learning data 128 is defined by a combination of input data and correct answer data, but when the learning execution unit 113 performs so-called “unsupervised learning”, the correct data is not included. May be
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
対象に適した構造の学習ネットワークを自動的に生成することができる学習ネットワーク生成装置を提供することを目的とする。 学習ネットワーク生成装置は、学習ネットワークの個体を定義するデータを生成する初期個体生成部と、初期個体生成部が生成した学習ネットワークの個体を定義するデータに基づき、当該個体に応じたプログラムコードを生成するコード生成部と、コード生成部が生成した個体に応じたプログラムコードに対して学習用データを適用して進化学習を実行する学習実行部と、学習実行部にて進化学習を行った学習済み個体を評価するとともに、評価の結果に応じて個体を残すか否かを判定する評価・選別部と、を備える。
Description
本発明は、いわゆる深層学習(ディープラーニング)により機械学習を行う学習ネットワークを生成するプログラムに関する。
近年、人工知能の分野において、人がルールを記述することなく、多くの学習データを入力することにより、機械(コンピュータ)が学習データからが自動的に判断ルールを導き出す「機械学習」が注目を集めている。この機械学習の一種である深層学習は、画像認識や音声認識といった分野への適用が進んでいる。深層学習は、機械(コンピュータ)が学習データから抽出すべき特徴をも自動的に学習する点に特徴があると言われている。つまり、深層学習では、何に着目すればよいかを教える必要がなく、どのような特徴を利用すれば対象を正しく識別できるのかを自動的に学ぶことができる、と言われている。そして、このような深層学習を利用した様々な装置が提案されている(例えば特許文献1を参照)。
しかしながら、実際にコンピュータに深層学習を行わせるには、予め学習ネットワークを定義する必要がある。ここで、学習ネットワークとは、生物の脳の神経細胞(ニューロン)をモデルとしたアルゴリズムであり複数の層を備えるものである。各層は、1つ以上のノード(ユニットとも言う。以下では後述する木構造におけるノードと区別するためにユニットと呼ぶ。)で構成されている。学習ネットワークは、機械学習を繰り返し行うにより、各ノードに対する入力の重み(係数)を調整することで、入力に基づき正解を出力できる精度(正答率)を高めることができる。
ところで、学習ネットワークは、図1に示したように、入力層、1以上の中間層、及び出力層により構成される多層パーセプトロンモデルによりしばしば表される。この学習ネットワークのモデルにおいて、各層は1以上のノードを有し、各ユニットに対して前層(入力層については外部)から入力値が1つ以上与えられる。各層に含まれるユニットの数や層間のユニットの接続関係は様々である。ユニットに対する入力値には、それぞれ重み係数が掛けられ、この入力値に重み係数を掛けた値の総和が、ユニット毎に規定された活性化関数の引数となる。活性化関数の出力は、次層への出力値となる。
このように、学習ネットワークは、各層を構成するユニットの数、各ユニットにおける活性化関数、層間の結合関係等によりその構造が規定され、その規定された学習ネットワークに対して入力を与えたときの出力が正解に近づくように、各ユニットに対する入力に掛けられる重み係数を修正することで、学習を行う。
したがって、学習ネットワークの構造が不適当であると、機械学習を繰り返しても正答率を高めることはできない。このように学習ネットワークの構造は深層学習の効果を高めるうえで重要な要素であるが、適切な学習ネットワークの構造は、対象によって(例えば、対象が文字の識別なのか、画像の識別なのか等)異なる。このため、従来は、設計者が基本的には手作業によって試行錯誤を繰り返すことにより、対象に対して適切と思われる学習ネットワークの構造を見つけて定義していた。
本発明は、上記課題の解決のためになされたものであり、対象に適した構造の学習ネットワークを自動的に生成することができる学習ネットワーク生成装置および学習ネットワーク生成プログラムを提供することを目的とする。
上記の課題を解決すべく、本発明に係る学習ネットワーク生成装置は、学習ネットワークの個体を定義するデータを生成する初期個体生成部と、初期個体生成部が生成した学習ネットワークの個体を定義するデータに基づき、当該個体に応じたプログラムコードを生成するコード生成部と、コード生成部が生成した個体に応じたプログラムコードに対して学習用データを適用して進化学習を実行する学習実行部と、学習実行部にて進化学習を行った学習済み個体を評価するとともに、評価の結果に応じて個体を残すか否かを判定する評価・選別部と、を備える。このとき、初期個体生成部は、学習ネットワークの構造を表すデータを生成するとよい。
このような構成により、対象に適した構造の学習ネットワークを自動的に生成することができる。
また、本発明では、初期個体生成部は、学習ネットワークの構造を表すデータを、学習ネットワークにおける1つの層に対応し、少なくとも当該1つの層と前層との接続関係を示すレイヤーノードと、レイヤーノードに連なり、当該レイヤーノードに対応する層の構造に関するパラメータを示すパラメータノードとを含む木構造のデータとして出力するとよい。
このようにすれば、取り扱いが容易な形式で、学習ネットワークの個体の構造を表現することができる。
本発明では、学習ネットワークが、それぞれ1以上のユニットを有する複数の層が結合された構造を有する場合において、学習ネットワークの構造を表すデータは、各層を構成するユニットの数、各ユニットにおける活性化関数、及び層間の結合関係を含むとよい。
本発明では、コード生成部は、初期個体生成部が生成した学習ネットワークの構造を表すデータと、個体に依存しない共通部分のテンプレートデータとに基づき、個体に応じたプログラムコードを生成とよい。
本発明では、学習ネットワーク生成装置は、評価・選別部の選別した個体に対し、進化過程を実施して次世代の個体を生成する進化実行部をさらに備え、コード生成部は、進化実行部が生成した次世代の個体に応じたプログラムコードを生成するとよい。このようにすれば、優れた個体同士を掛け合わせたり、優れた個体に突然変異を生じさせたりすることにより、優秀な個体を進化させた新たな世代の個体を自動的に生成し、評価・選別を行うことで優れた個体を出力することができる。
本発明に係る学習ネットワーク生成プログラムは、コンピュータを上記いずれかの学習ネットワーク生成装置として機能させるとよい。
本発明の他の例に係る学習ネットワーク生成プログラムは、コンピュータに、学習ネットワークの個体を定義するデータを生成する初期個体生成ステップと、初期個体生成ステップにて生成した学習ネットワークの個体を定義するデータに基づき、当該個体に応じたプログラムコードを生成するコード生成ステップと、コード生成ステップにて生成した個体に応じたプログラムコードに対して学習用データを適用して進化学習を実行する学習実行ステップと、学習実行ステップにて進化学習を行った学習済み個体を評価するとともに、評価の結果に応じて個体を残すか否かを判定する評価・選別ステップと、を実行させることを特徴とする。
以下、図面を参照して本発明の実施形態に係る学習ネットワーク生成装置1を説明する。
〔学習ネットワーク生成装置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の存在も許容される。
本実施形態に係る学習ネットワーク生成装置1は、個々の学習ネットワーク(個体)を、木構造で定義する。図2は、木構造で定義した個体の一例を示している。図2に例示した木構造において、図面の上下方向は階層(レイヤー)を表しており、図中で上に描かれているレイヤーほど上位階層のレイヤーとなる。また、同一のレイヤーにおいて、右端に描かれたノードはレイヤーノードLNと呼ばれ、学習ネットワークにおける各階層の属性を表す。また、同一のレイヤーにおいて、右端以外に描かれたノードは、パラメータノードPNと呼ばれ、1階層上位のレイヤーノードLNのパラメータを規定する。例えば、第2階層L2のレイヤーノードLNは‘PreviousDense’であり、この‘PreviousDense’には、パラメータとして第3階層L3に属する各パラメータノードPNの値が設定される。なお、後述するように、パラメータノードPNの値の意義は、レイヤーノードLNの種類毎に定義される。また、図2における第3階層L3のレイヤーノードLNである‘Flatten’のように、パラメータノードPNを持たないレイヤーノードLNの存在も許容される。
学習ネットワーク生成装置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}という文字列で表される。
木構造で表した学習ネットワークと多層パーセプトロンモデルで描いた学習ネットワークとの対応関係は次の通りである。
木構造の表現では、全ての個体において、最上位階層L1のレイヤーノードLNは‘HyperParameter’であり、この‘HyperParameter’に対する2つのパラメータ(‘LEARNING_RATE’と‘MOMENTUM’)が第2階層L2のパラメータノードPNの値として規定される‘HyperParameter’は、個体の学習に関するパラメータであり、多層パーセプトロンモデルで表される学習ネットワークの構造には直接関係しない。なお、上記の‘LEARNING_RATE’と‘MOMENTUM’は一例に過ぎず、‘HyperParameter’に連なるパラメータノードPNの数や種類は任意である。
また、学習ネットワーク生成装置1では、多層パーセプトロンモデルにおける入力層及び入力層に対する入力は、全ての個体で共通とされ、木構造の表現には表れない。
第2層L2以下の階層におけるレイヤーノードLNの名称は、多層パーセプトロンモデルにおける前層との接続方法を示している。すなわち、例えば第2層L2のレイヤーノードLNは、入力層と最初の中間層との接続方法を示す。また、第2層L2以下の階層におけるレイヤーノードLNに連なるパラメータノードPNは、レイヤーノードLNに対応する層が有するユニットの数、活性化関数の種類、その他レイヤーノードLNの種類に応じて規定されたパラメータ(例えば活性化関数に適用されるパラメータ)を示す。なお、活性化関数の例としては、ステップ関数、シグモイド関数、ReLU関数、恒等関数、ソフトマックス関数、ハイパボリックタンジェント(tanh)関数などが挙げられる。
このように、本実施形態の学習ネットワーク生成装置1は、学習ネットワークの個体の多層パーセプトロンモデルにおける各層の構造及びその接続関係を、木構造によって表現している。なお、ユニット間を受け渡される出力値に乗じられる重み係数については、木構造の表現では規定されない。学習ネットワーク生成装置1は、重み係数は、学習ネットワークの個体に学習を行わせる際に、重み係数の学習前の初期値としてランダムな値を設定する。
以下では、上述のような木構造で表現した学習ネットワークを生成する学習ネットワーク生成装置1の構成について詳細に説明する。
〔学習ネットワーク生成装置1のハードウェア構成〕
図3は、本発明の実施形態に係る学習ネットワーク生成装置1の構成例を示している。学習ネットワーク生成装置1は、学習ネットワークを遺伝的プログラミングの手法によって生成する。図3に示されるように学習ネットワーク生成装置1は、例えばコンピュータとして実現される。すなわち、学習ネットワーク生成装置1は、プロセッサ101、RAM102、HDD103、グラフィック処理部104、及び入力インタフェース105を備える。
図3は、本発明の実施形態に係る学習ネットワーク生成装置1の構成例を示している。学習ネットワーク生成装置1は、学習ネットワークを遺伝的プログラミングの手法によって生成する。図3に示されるように学習ネットワーク生成装置1は、例えばコンピュータとして実現される。すなわち、学習ネットワーク生成装置1は、プロセッサ101、RAM102、HDD103、グラフィック処理部104、及び入力インタフェース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以上の要素の組み合わせであってもよい。
RAM102(Random Access Memory)は、学習ネットワーク生成装置1の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
HDD103(Hard Disk Drive)は、学習ネットワーク生成装置1の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理部104には、表示装置104aが接続されている。グラフィック処理部104は、プロセッサ101からの命令に従って、画像を表示装置104aの画面に表示させる。表示装置104aとしては、液晶ディスプレイや有機EL(Electro Luminescence)ディスプレイなどが用いられる。
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
以上のようなハードウェア構成によって、学習ネットワーク生成装置1を実現することができる。
〔学習ネットワーク生成装置1の機能ブロック〕
図4は学習ネットワーク生成装置1の機能ブロック図を示している。
学習ネットワーク生成装置1は、処理部11、記憶部12、入力部13、及び出力部14を備える。
図4は学習ネットワーク生成装置1の機能ブロック図を示している。
学習ネットワーク生成装置1は、処理部11、記憶部12、入力部13、及び出力部14を備える。
処理部11は、プロセッサ101がRAM102やHDD103に格納されたプログラムを実行することにより実現される。記憶部12は、RAM102やHDD103により実現される。入力部13は、入力インタフェース105及び入力装置105aにより実現される。出力部14は、グラフィック処理部104及び表示装置104aにより実現される。
図4に示されるように、処理部11は、その処理内容に応じて、初期個体生成部111、個体コード生成部112、学習実行部113、個体評価・選別部114、及び進化実行部115を含むサブブロックに細分化される。また、図3に示されるように、記憶部12は、メインプログラム121、個体コード生成プログラム122、レイヤー名称定義データ123、レイヤー構造定義データ124、レイヤーコード生成ルール125、テンプレートデータ126、個体コード127、及び学習用データ128を含む各種のプログラムやデータを格納する。
メインプログラム121は、プロセッサ101により実行されることで、初期個体生成部111、学習実行部113、個体評価・選別部114、及び進化実行部115の機能を実現する。また、個体コード生成プログラム122は、プロセッサ101により実行されることで個体コード生成部112の機能を実現する。メインプログラム121及び個体コード生成プログラム122については後に詳述する。
レイヤー名称定義データ123とレイヤー構造定義データ124は、個体の文字列データからレイヤーノードLNを抽出し、レイヤーオブジェクトを生成するためのルールを定義する。
レイヤーオブジェクトとは、木構造で表される学習ネットワークにおける各階層のレイヤーノードLNに、当該レイヤーノードLNの持つパラメータノードPNの値を適用したものであり、1つのレイヤーノードLNが、当該レイヤーノードLNに対するパラメータノードPNと共に、1つのレイヤーオブジェクトに変換される。このレイヤーオブジェクトに基づいて、各レイヤーノードLNに対応するプログラムコードが得られる。1つの個体はレイヤーオブジェクトの配列として表される。
レイヤー名称定義データ123は、学習ネットワーク生成装置1にて扱うレイヤーノードLNの名称、各レイヤーノードLNに連なるパラメータノードPNの名称や順番等を定義する。また、レイヤー構造定義データ124は、レイヤーノードLNの種類毎に、レイヤーオブジェクトのデータ構造を定義する。すなわち、パラメータノードPNの種類、数、パラメータノードPNの値の意義等は、レイヤーノードLNの種類毎に異なり、レイヤー構造定義データ124は、レイヤーノードLNの種類毎にこれらの情報を定義する。レイヤー構造定義データ124に定義されるデータ構造は、例えば、当該レイヤーオブジェクトが有するユニットの数を示すデータ、活性化関数の種類を示すデータ(例えば、識別番号)、パラメータを示すデータ等を含む。
プログラムへの実装において、レイヤーノードLNの種類に応じたデータ構造は、レイヤーノードLNの種類に応じて定義されるクラスにおけるメンバ変数としてレイヤー構造定義データ124に記述される。この他、レイヤーノードLNの種類に応じて定義されるクラスは、レイヤーオブジェクトのインスタンスを作るためのコンストラクタ、インスタンスを破棄するためのデストラクタ等のメンバ関数も定義するとよい。なお、‘Flatten’のように、パラメータノードPNを持たないレイヤーノードLNも存在し、このようなパラメータノードPNを持たないレイヤーノードLNを定義するクラスは、パラメータノードPNに関する定義を含まない。
レイヤーコード生成ルール125は、レイヤーオブジェクトを具体的なプログラムコードの文字列に変換するためのルールや条件を規定する。例えば、レイヤーコード生成ルール125は、レイヤーオブジェクトのインスタンスが有する活性化関数の種類を示すデータを、具体的な活性化関数に対応付ける変換ルールを定義する。また、レイヤーコード生成ルール125は、レイヤーオブジェクトのインスタンスを当該レイヤーでの処理を規定するプログラムコードに変換するルールを規定する。
テンプレートデータ126は、全ての個体コードに共通して含まれるコードを規定する。テンプレートデータ126は、例えば、深層学習の学習ネットワーク部分以外の部分を規定する。また、生成する学習ネットワークへ外部からの入力の形式とする場合には、学習ネットワークの入力層は生成する全ての学習ネットワークで共通となる。このように、全ての学習ネットワークで共通となる部分がある場合には、このような共通部分についてもテンプレートデータ126に定義するとよい。このようにすれば、学習ネットワークにおける変更可能な部分と共通部分とを完全に切り分けて扱うことができる。したがって、変更可能な部分で処理するデータ量を削減できる。また、共通部分については一括して修正・変更等を行うことができる。
個体コード127は、個体コード生成部112によって生成される各個体の個体コードであり、文字列で記述されたプログラムコードである。個体コード127は、レイヤーオブジェクトの配列として表される個体の情報、レイヤー名称定義データ123、レイヤー構造定義データ124、レイヤーコード生成ルール125、及びテンプレートデータ126に基づき生成される。
学習用データ128は、個体コード127に深層学習を行わせる際に用いられる学習用データである。学習用データ128は、例えば、入力データと正解データの組により定義される。
続いて、処理部11の構成要素である、初期個体生成部111、個体コード生成部112、学習実行部113、個体評価・選別部114、及び進化実行部115の実現方法を、学習ネットワーク生成装置1による学習ネットワーク生成処理の流れとともに説明する。図5は、学習ネットワーク生成処理の手順を示すフローチャートを示している。
初期個体生成部111は、プロセッサ101がメインプログラム121を実行することにより実現される。メインプログラム121は、例えば、レイヤーノードLNの接続ルールや許容される層数等の学習ネットワーク生成装置1で扱う学習ネットワークの記述ルール、生成する初期個体の数等の初期個体生成条件を含んでいる。初期個体生成部111は、メインプログラム121に規定された初期個体生成ルールに従って、学習ネットワークの構造を定義する文字列を生成し、個体コード生成部112に出力する(ステップS100)。
個体コード生成部112は、プロセッサ101が個体コード生成プログラム122を実行することにより実現される。個体コード生成部112は、各個体の学習ネットワークを表す文字列データに基づき、当該個体の個体コード127を生成する。個体コード生成部112が行う処理は次の通りである。
まず、個体コード生成部112は、個体を定義する文字列を、レイヤー毎に分解してレイヤーオブジェクトの配列とする(ステップS110)。具体的には、個体コード生成部112は、個体を定義する文字列の中で、レイヤー名称定義データ123定義されたレイヤーノードLNを示す文字列から、次のレイヤーノードLNを示す文字列の直前までを、1つのレイヤーオブジェクトを表す単位として認識する。そして、レイヤーノードLNの名称に応じたレイヤーオブジェクトのインスタンスを、レイヤー構造定義データ124に規定されているレイヤーオブジェクトのデータ構造に則って生成する。このとき、パラメータノードPNの値は、インスタンスにおける対応するメンバ変数の値として代入される。
このようにして、個体コード生成部112は、個体を定義する文字列に含まれる全てのレイヤーノードLNを順番にレイヤーオブジェクトのインスタンスに変換し、変換順に並んだに配列に記憶する。
続いて、個体コード生成部112は、レイヤーオブジェクトの配列をレイヤーコード生成ルール125に基づいて個体の学習ネットワークに応じたプログラムコードを生成するとともに、この生成したプログラムコードに、テンプレートデータ126に規定された共通のコードとを組み合わせて、学習ネットワークの個体の個体コード127を生成して出力する(ステップS120)。個体コード127は、文字列で記述されたプログラムコードであり、後の学習や評価のために学習ネットワーク生成装置12に記録される。
学習実行部113は、初期個体生成部111と同様、プロセッサ101がメインプログラム121を実行することにより実現される。学習実行部113は、個体コード127に学習用データ128を適用して、深層学習を実行する(ステップS130)。すなわち、学習実行部113は、はじめに各ユニットの入力について重み係数の初期値としてランダムとしてランダムな値を設定する。そして、学習用データ128に規定された学習用の入力データを個体コード127に適用し、個体コード127の出力を学習用データ128に規定された入力データに対応する正解データと照合する。そして、照合結果に応じて、個体コード127で記述される学習ネットワークの内部パラメータを調整する。このような処理を繰り返すことで、学習ネットワークに深層学習を行わせることができる。なお、深層学習を行う条件(例えば繰り返しの回数等)はメインプログラム121の中に定義される。上述のように、重み係数の初期値はランダムな値であるため、同じ個体コード127でも実行毎に学習結果が異なる場合がある。このため、1つの個体コード127に対して深層学習を複数試行し、最もよい学習結果を採用するようにするとよい。
個体評価・選別部114は、初期個体生成部111と同様、プロセッサ101がメインプログラム121を実行することにより実現される。個体評価・選別部114は、学習実行部113により深層学習を行った学習済みの各個体について、評価を行う。評価の方法としては、様々な既知の評価関数を用いることができる。
続いて、個体評価・選別部114は、評価結果に基づき個体の選別処理を実施する。メインプログラム121は、例えば、各個体を評価結果に応じて残すか否かを決定する判定条件を含んでいる。個体評価・選別部114は、評価結果と判定条件とに基づき、残す個体を選別し、その他の個体については削除する(ステップS140)。
進化実行部115は、初期個体生成部111と同様、プロセッサ101がメインプログラム121を実行することにより実現される。進化実行部115に先立ち、メインプログラムにより、進化過程を実行するか否かが判定される(ステップS150)。進化過程を実行するか否かは、例えば、初期個体からこれまでに進化過程を行った回数、残っている個体の評価結果等に基づいて判定するとよい。進化過程を実行すると判定された場合(ステップS150;Yes)、進化実行部115は、残っている個体に対して進化過程を実施する(ステップS160)。すなわち、進化実行部115は、個体に対して交叉処理および突然変異処理を行う。
交叉処理としては、例えばワンポイント法にて交叉を起こすとよい。ワンポイント法では、残した個体の内から2つの個体を親個体として選択し、図6に示したように、選択した2つの親個体のそれぞれから、接続ルールに違反することなく交換可能なレイヤーノードLNを選択して、当該レイヤーノードLNにて、学習ネットワークを切断し、繋ぎ変えて子個体とする。なお、2つの親個体に対して、それぞれ異なる交叉処理が行われることで、3つ以上の子個体が生成されてもよい。
また、突然変異処理としては、例えば、初期個体を生成するときと同様の手法で新たに個体を生成する、残した個体(親個体)の一部を(接続ルールに違反しない範囲で)ランダムに変更する、残した個体(親個体)にランダムに新たなレイヤーを付加する、といった手法を採用するとよい。
進化実行部115は、メインプログラム121に定義された数の子個体が生成されるまで、ランダムに親個体を変えながら進化過程を繰り返し実施する。なお、進化実行部115による交叉処理や突然変異処理は、個体評価・選別部114が評価した個体に対応する元の文字列で記述された木構造のデータに対して行うとよい。このようにすることで、初期個体の生成時と同じ接続ルールや個体のプログラムコードの生成ルールを、進化時にも容易に適用することが可能となる。また、文字列で記述された木構造のデータは、プログラムコード自体は含まず、学習ネットワークの構造を示す情報のみを含むため、処理部11で行われる処理の負荷を抑制することができる。
進化過程の完了後、処理がステップS120に移される。すなわち、生成された子個体に対して学習実行部113での深層学習、個体評価・選別部114での評価と選別、及び進化実行部115での進化が、さらなる進化過程を実行しないとする判定条件(例えば繰り返しの回数)を満たすまで繰り返される。そして、進化過程を実行しないと判定されると(ステップS150;No)、その時点で残った個体のうち、評価結果が優れたものを最終的に生成された個体として出力し(ステップS170)、学習ネットワーク生成処理を終了する。最終的に生成された個体は1つとしてもよいし、複数としてもよい。
以上で説明した構成及び手順により、本実施形態の学習ネットワーク生成装置および学習ネットワーク生成プログラムは、対象に適した構造の学習ネットワークを自動的に生成することができる。
なお、上記に本実施形態を説明したが、本発明はこれらの例に限定されるものではない。例えば、上記の実施形態において、図2に示したような木構造により学習ネットワークを定義した。図2の木構造は、1つのレイヤーにつき1つのレイヤーノードLNが含まれるものであった。しかし、1つのレイヤーに複数のレイヤーノードLNが含まれることを許容し、分岐を伴う複雑な構造の学習ネットワークを定義できるようにしてもよい。
また、上記の実施形態において、学習用データ128は入力データと正解データの組により定義されたが、学習実行部113にて、いわゆる「教師なし学習」を行う場合には、正解データを含まなくてもよい。
また、前述の実施形態に対して、当業者が適宜、構成要素の追加、削除、設計変更を行ったものや、各実施形態の特徴を適宜組み合わせたものも、本発明の要旨を備えている限り、本発明の範囲に包含される。
1 学習ネットワーク生成装置
11 処理部
12 記憶部
13 入力部
14 出力部
111 初期個体生成部
112 個体コード生成部
113 学習実行部
114 個体評価・選別部
115 進化実行部
121 メインプログラム
122 個体コード生成プログラム
1231 レイヤー名称定義データ
1232 レイヤー構造定義データ
127 コード
124 テンプレートデータ
125 個体コード
126 学習用データ
11 処理部
12 記憶部
13 入力部
14 出力部
111 初期個体生成部
112 個体コード生成部
113 学習実行部
114 個体評価・選別部
115 進化実行部
121 メインプログラム
122 個体コード生成プログラム
1231 レイヤー名称定義データ
1232 レイヤー構造定義データ
127 コード
124 テンプレートデータ
125 個体コード
126 学習用データ
Claims (8)
- 学習ネットワークの個体を定義するデータを生成する初期個体生成部と、
前記初期個体生成部が生成した前記学習ネットワークの個体を定義するデータに基づき、当該個体に応じたプログラムコードを生成するコード生成部と、
前記コード生成部が生成した個体に応じたプログラムコードに対して学習用データを適用して進化学習を実行する学習実行部と、
前記学習実行部にて進化学習を行った学習済み個体を評価するとともに、評価の結果に応じて個体を残すか否かを判定する評価・選別部と、
を備えることを特徴とする学習ネットワーク生成装置。 - 前記初期個体生成部は、前記学習ネットワークの構造を表すデータを生成することを特徴とする請求項1に記載の学習ネットワーク生成装置。
- 前記初期個体生成部は、前記学習ネットワークの構造を表すデータを、
前記学習ネットワークにおける1つの層に対応し、少なくとも当該1つの層と前層との接続関係を示すレイヤーノードと、
前記レイヤーノードに連なり、当該レイヤーノードに対応する層の構造に関するパラメータを示すパラメータノードと
を含む木構造のデータとして出力することを特徴とする請求項2に記載の学習ネットワーク生成装置。 - 前記学習ネットワークは、それぞれ1以上のユニットを有する複数の層が結合された構造を有しており、
学習ネットワークの構造を表すデータは、各層を構成するユニットの数、各ユニットにおける活性化関数、及び層間の結合関係を含むことを特徴とする請求項2または3に記載の学習ネットワーク生成装置。 - 前記コード生成部は、前記初期個体生成部が生成した学習ネットワークの構造を表すデータと、個体に依存しない共通部分のテンプレートデータとに基づき、個体に応じたプログラムコードを生成することを特徴とする請求項1から4の何れか1項に記載の学習ネットワーク生成装置。
- 前記評価・選別部の選別した個体に対し、進化過程を実施して次世代の個体を生成する進化実行部をさらに備え、
前記コード生成部は、前記進化実行部が生成した前記次世代の個体に応じたプログラムコードを生成することを特徴とする請求項1から5のいずれか1項に記載の学習ネットワーク生成装置。 - コンピュータを請求項1から6の何れか1項に記載の学習ネットワーク生成装置として機能させる学習ネットワーク生成プログラム。
- コンピュータに、
学習ネットワークの個体を定義するデータを生成する初期個体生成ステップと、
前記初期個体生成ステップにて生成した前記学習ネットワークの個体を定義するデータに基づき、当該個体に応じたプログラムコードを生成するコード生成ステップと、
前記コード生成ステップにて生成した個体に応じたプログラムコードに対して学習用データを適用して進化学習を実行する学習実行ステップと、
前記学習実行ステップにて進化学習を行った学習済み個体を評価するとともに、評価の結果に応じて個体を残すか否かを判定する評価・選別ステップと、
を実行させることを特徴とする学習ネットワーク生成プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019545516A JP6694197B2 (ja) | 2017-09-28 | 2017-09-28 | 学習ネットワーク生成装置、及び学習ネットワーク生成プログラム |
PCT/JP2017/035356 WO2019064461A1 (ja) | 2017-09-28 | 2017-09-28 | 学習ネットワーク生成装置、及び学習ネットワーク生成プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/035356 WO2019064461A1 (ja) | 2017-09-28 | 2017-09-28 | 学習ネットワーク生成装置、及び学習ネットワーク生成プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019064461A1 true WO2019064461A1 (ja) | 2019-04-04 |
Family
ID=65901142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2017/035356 WO2019064461A1 (ja) | 2017-09-28 | 2017-09-28 | 学習ネットワーク生成装置、及び学習ネットワーク生成プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6694197B2 (ja) |
WO (1) | WO2019064461A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113767363A (zh) * | 2019-11-08 | 2021-12-07 | 大日本印刷株式会社 | 软件生成装置、软件生成方法和程序 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003317073A (ja) * | 2002-04-24 | 2003-11-07 | Fuji Xerox Co Ltd | ニューラルネットワーク処理装置 |
JP2008533615A (ja) * | 2005-03-14 | 2008-08-21 | エル ターラー、ステフエン | ニューラルネットワーク開発およびデータ解析ツール |
JP2017097807A (ja) * | 2015-11-27 | 2017-06-01 | 富士通株式会社 | 学習方法、学習プログラムおよび情報処理装置 |
WO2017154284A1 (ja) * | 2016-03-09 | 2017-09-14 | ソニー株式会社 | 情報処理方法および情報処理装置 |
-
2017
- 2017-09-28 WO PCT/JP2017/035356 patent/WO2019064461A1/ja active Application Filing
- 2017-09-28 JP JP2019545516A patent/JP6694197B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003317073A (ja) * | 2002-04-24 | 2003-11-07 | Fuji Xerox Co Ltd | ニューラルネットワーク処理装置 |
JP2008533615A (ja) * | 2005-03-14 | 2008-08-21 | エル ターラー、ステフエン | ニューラルネットワーク開発およびデータ解析ツール |
JP2017097807A (ja) * | 2015-11-27 | 2017-06-01 | 富士通株式会社 | 学習方法、学習プログラムおよび情報処理装置 |
WO2017154284A1 (ja) * | 2016-03-09 | 2017-09-14 | ソニー株式会社 | 情報処理方法および情報処理装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113767363A (zh) * | 2019-11-08 | 2021-12-07 | 大日本印刷株式会社 | 软件生成装置、软件生成方法和程序 |
CN113767363B (zh) * | 2019-11-08 | 2024-06-07 | 大日本印刷株式会社 | 软件生成装置、软件生成方法和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
JP6694197B2 (ja) | 2020-05-13 |
JPWO2019064461A1 (ja) | 2020-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gao et al. | Deep leaf‐bootstrapping generative adversarial network for structural image data augmentation | |
Humphreys et al. | A data-driven approach for learning to control computers | |
US9619749B2 (en) | Neural network and method of neural network training | |
US9390373B2 (en) | Neural network and method of neural network training | |
CN109783666B (zh) | 一种基于迭代精细化的图像场景图谱生成方法 | |
JP2019032808A (ja) | 機械学習方法および装置 | |
Rawat et al. | Application of adversarial networks for 3D structural topology optimization | |
JP2018535491A (ja) | 画像のセマンティックセグメンテーションのためのシステム及びコンピューター実施方法、並びに非一時的コンピューター可読媒体 | |
US20190057309A1 (en) | Information processing apparatus and information processing method | |
CN112598080A (zh) | 一种基于注意力的宽度图卷积神经网络模型及其训练方法 | |
JP6908302B2 (ja) | 学習装置、識別装置及びプログラム | |
CN104794527A (zh) | 基于卷积神经网络的分类模型构建方法和设备 | |
CN108009635A (zh) | 一种支持增量更新的深度卷积计算模型 | |
KR102363370B1 (ko) | UX-bit 및 몬테카를로 트리 탐색을 이용한 자동 디자인 생성 인공신경망 장치 및 방법 | |
WO2020115706A1 (en) | Modification of a neural network topology | |
Doughan et al. | Novel preprocessors for convolution neural networks | |
JP2020052935A (ja) | 学習済みモデルを生成する方法、データを分類する方法、コンピュータおよびプログラム | |
Xu et al. | The effect of different hidden unit number of sparse autoencoder | |
JP6694197B2 (ja) | 学習ネットワーク生成装置、及び学習ネットワーク生成プログラム | |
CN112668700A (zh) | 一种基于分组注意的宽度图卷积网络模型及其训练方法 | |
WO2021059527A1 (ja) | 学習装置、学習方法、及び、記録媒体 | |
Glez-Morcillo et al. | Gaudii: An automated graphic design expert system | |
US11670403B2 (en) | Method and apparatus for generating chemical structure using neural network | |
CN110298449B (zh) | 计算机进行通用学习的方法、装置和计算机可读存储介质 | |
JP6947460B1 (ja) | プログラム、情報処理装置、及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17926571 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019545516 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17926571 Country of ref document: EP Kind code of ref document: A1 |