WO2022145232A1 - 情報処理装置および情報処理方法、並びにプログラム - Google Patents
情報処理装置および情報処理方法、並びにプログラム Download PDFInfo
- Publication number
- WO2022145232A1 WO2022145232A1 PCT/JP2021/046271 JP2021046271W WO2022145232A1 WO 2022145232 A1 WO2022145232 A1 WO 2022145232A1 JP 2021046271 W JP2021046271 W JP 2021046271W WO 2022145232 A1 WO2022145232 A1 WO 2022145232A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- layer
- teacher
- output
- value
- output data
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 69
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000005457 optimization Methods 0.000 claims abstract description 178
- 238000013500 data storage Methods 0.000 claims abstract description 140
- 238000012545 processing Methods 0.000 claims abstract description 96
- 238000013528 artificial neural network Methods 0.000 claims abstract description 76
- 238000000034 method Methods 0.000 claims description 416
- 230000008569 process Effects 0.000 claims description 293
- 238000004364 calculation method Methods 0.000 claims description 180
- 210000002569 neuron Anatomy 0.000 claims description 122
- 230000004913 activation Effects 0.000 claims description 110
- 238000010606 normalization Methods 0.000 claims description 28
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000003247 decreasing effect Effects 0.000 claims description 5
- 230000009467 reduction Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 144
- 239000011159 matrix material Substances 0.000 description 61
- 239000013598 vector Substances 0.000 description 43
- 230000015654 memory Effects 0.000 description 41
- 238000004891 communication Methods 0.000 description 11
- 238000013527 convolutional neural network Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 9
- 238000012549 training Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000011423 initialization method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000611 regression analysis Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 235000004257 Cordia myxa Nutrition 0.000 description 1
- 244000157795 Cordia myxa Species 0.000 description 1
- 238000012897 Levenberg–Marquardt algorithm Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000002939 conjugate gradient method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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 an information processing apparatus and an information processing method configured by a computer that performs information processing including weight adjustment of the neural network, and a program, for example, each layer constituting the neural network using teacher data for the entire network.
- a computer that performs information processing including weight adjustment of the neural network
- a program for example, each layer constituting the neural network using teacher data for the entire network.
- NN weight adjustment methods of existing neural networks
- Examples of the method by iterative calculation include an error back propagation method, a conjugate gradient method, a Newton method, a quasi-Newton method, and a Levenberg-Marquardt algorithm.
- a neural network has a configuration as shown in FIG. Such a configuration is the same in the present invention, and the configuration and reference numerals in FIG. 3 are also used in the description of the present invention.
- the neural network has an input layer a with four neurons a (1) to a (4) and an intermediate layer b with three neurons b (1) to b (3). It is composed of an output layer c having four neurons c (1) to c (4).
- the number of layers in the entire network is three, but the number of intermediate layers b may be plural, so the number of layers in the entire network may be four or more.
- the number of neurons in each layer is not limited to the example shown in the figure.
- Y b (j) f ( ⁇ i Wa (i) b (j) Y a (i) ) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ (2)
- Y c (k) f ( ⁇ j W b (j) c (k) Y b (j) ) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ (3)
- j 1 to Mb.
- W a (i) b (j) is a weight value used in the output calculation of the intermediate layer b, and is a weight value from the i-th neuron of the input layer a to the j-th neuron of the intermediate layer b.
- W b (j) c (k) is a weight value used in the output calculation of the output layer c, and is a weight value from the j-th neuron of the intermediate layer b to the k-th neuron of the output layer c.
- the function f is an activation function, and a sigmoid function or the like is generally used.
- the teacher input data corresponding to X a (1) to X a (4) and Y c (1) to Y c (4) are applied to the entire network.
- the weight values W a (i) b (j) and W b (j) c (k) can be obtained.
- p 1 to Mp is the number of the teacher data set, and Mp is the number of the teacher data sets to be given.
- One teacher dataset may be referred to herein as a teacher data record or simply a record from the point of view of system processing.
- teacher input data X a (1), p to X a (4), p and teacher output data Yt c (1), p to Yt c (4), p are all teaching data for the entire network. ), That is, teacher data given from outside the NN.
- teacher data including teacher input data and teacher output data
- the concept of the term teacher data extends beyond teacher data for the entire network, which will be described later.
- the teacher input data X a (1) to X a (4) are explanatory variables
- the teacher output data Yt c (1) to Yt c (4) are objective variables.
- These explanatory variables and objective variables are, for example, actually measured data and experimental data collected in the real world.
- the ideal output of the teacher output data Yt c (1) to Yt c (4) is that the output of the entire network (that is, the output of the output layer c) Y c (1) to Y c (4) is brought closer. It means the desired value.
- the least squares method is known as a method of optimizing the weight value of the output layer c of the neural network by one calculation process.
- the least squares method can be briefly explained as follows.
- the above equation (4) is a linear form for Wi i .
- a large number (Mp) of teacher data sets consisting of Y i (Y 1 , Y 2 , Y 3 , Y 4 , ...) And St (ideal value) are given to this equation (4).
- the optimum solution is to minimize the error E by the following equation (5) defined as the sum of squares of the residuals of the output value S obtained by substituting each Y i into the equation (4) and the ideal value St.
- the number of teacher data sets is Mp
- the least squares method is widely used as a fitting method when a model function (theoretical formula) is applied to a large number of measured values with variations for analysis. At this time, the measured values and the model function are used for calculation. Find the parameter of the model function that minimizes the error E defined as the sum of squares of the residuals with the theoretical value.
- the model function (theoretical formula) in the case of performing such an analysis corresponds to the above-mentioned formula (4), and the measured value is the ideal value St (Mp St) as the teacher data given to the formula (4).
- the theoretical value calculated by the model function corresponds to the output value S (Mp S) obtained by substituting each Y i into the equation (4). Therefore, in the description of the present application, the term "ideal value” is used as a term different from the "theoretical value" in the above-mentioned fitting for analysis (opposite position).
- the least squares method is a calculation formula that is the source of the error to be minimized (this calculation formula is not a formula that defines the error, but a formula that is included in the formula that defines the error, that is, If the equation corresponding to the model function used for fitting is linear with respect to the parameter, it is the linear least squares method, and if it is non-linear with respect to the parameter, it is the nonlinear least squares method. Since the above-mentioned equation (4) is represented by a linear bond of each parameter Wi (W 1 , W 2 , W 3 , W 4 , ...), the error E defined by the above-mentioned equation (5).
- the optimization process for obtaining the optimum solution of the parameter Wi i that minimizes is the optimization process by the linear least squares method.
- the source of the error to be minimized (Calculation formula corresponding to the above-mentioned formula (4)) is a complicated calculation including, for example, a high-order function of Y i , a sin function, a cos function, an exponential function, a logarithmic function, and the like.
- the optimization process that minimizes the error may be an optimization process by a method other than the least squares method, and further, the optimization process is executed by exchanging the parameters in the same formula (that is, Y i) .
- the parameters in the same formula that is, Y i
- the present invention is a technique related to a neural network
- a method of training a neural network in an image processing method is known as an applied technique of the neural network (see Patent Document 1).
- this method is a combination method in which a neural network is used as one package and a plurality of the packages are combined, the field of the invention is different from that of the present invention regarding the calculation processing method inside the neural network.
- Patent Document 2 a document describing a new training method of the neural network is known (see Patent Document 2).
- iterative calculation it is different from the present invention which does not require iterative calculation.
- this document proposes a method of optimizing information in a specific layer by introducing an "optimization layer", but it is possible to optimize weight values in all layers. Different from the present invention.
- Patent Document 4 Non-Patent Documents 1 and 2. Since all of them are premised on iterative calculation, they are different from the present invention in which the learning process can be performed without using the iterative calculation.
- a method for generating training data for the entire neural network a method for creating modified teacher data (see Patent Document 5) and a method for generating training data for an image processing neural network through generation of similar images (patent). Reference 6) is known.
- the generated training data is not for training the intermediate layer individually, so that the use of the generated training data is different from that of the present invention.
- one-shot learning refers to the overall learning framework that performs effective learning after limiting the teacher data record to only one record, but it is not a term that defines a specific learning method, but learning.
- the content is different from that of the present invention, which aims to improve time and learning effect.
- Japanese Unexamined Patent Publication No. 2020-198098 Japanese Unexamined Patent Publication No. 2020-191088 Japanese Unexamined Patent Publication No. 2020-191017 Special Table 2020-531968 Gazette Japanese Unexamined Patent Publication No. 2020-135141 Japanese Unexamined Patent Publication No. 2019-46269
- the learning time becomes long, and it takes time and effort to adjust the update rate required for the iterative calculation by trial and error. Since the time required for the process depends on the number of repetitions, there is a problem that it is difficult to estimate the required number of hours in advance.
- the least squares method is known as a method of optimizing the weight value of the output layer c of the neural network by one calculation process.
- the weight value of the intermediate layer b cannot be optimized.
- the weight value of the output layer c and the weight value of the intermediate layer b (if there are a plurality of intermediate layers b, the weight values of all the intermediate layers b) are obtained by the same algorithm by the minimum square method.
- activation function input value calculation formula the calculation formula for calculating the value to be input to the activation function. Therefore, for each layer, a large number of teacher data sets (teacher input data and teacher output data) for learning the activation function input value calculation formula are required.
- the weight value of the output layer c is the weight value W b (j) c (k) from the j-th neuron of the intermediate layer b to the k-th neuron of the output layer c, and the intermediate layer b.
- the weight value of is the weight value Wa (i) b (j) from the i-th neuron of the input layer a to the j-th neuron of the intermediate layer b, or a plurality of intermediate layers b (b1, b2). In the case, it is the weight value W b1 (i) b2 (j) from the neuron of the intermediate layer b1 on the input side of the own layer to the neuron of the intermediate layer b2 which is the own layer.
- teacher data for the entire network (overall NN) is given as shown in FIG. 3, not all of the teacher data sets (teacher input data and teacher output data) required for each layer can be obtained. That is, since the teacher input data for the entire NN becomes the input X a (i) to the input layer a, if it is substituted into the above-mentioned equation (1), the input layer a becomes the second layer, the intermediate layer b. Teacher input data Y a (i) can be obtained. However, it is not possible to obtain teacher input data for the third and subsequent layers, the intermediate layer b and the output layer c. Further, the teacher output data Yt c (k) (see FIG.
- the activation function input value calculation formula included in the output calculation formula of the intermediate layer b is ⁇ i Wa (i) b (j) Y a (i) included in the above-mentioned formula (2), or a plurality. ⁇ i W b1 (i) b2 (j) Y b1 (i) when there is an intermediate layer b (b1, b2) of the above, and teacher output data for these cannot be obtained.
- An object of the present invention is an information processing device and an information processing method capable of realizing effective learning in a short time, avoidance of trouble of adjusting the update rate by trial and error, prediction of learning time, and reduction of error. Also, it is in the place of providing the program.
- the present invention is an information processing apparatus configured by a computer that executes information processing including weight adjustment by a neural network.
- a weight value storage means for storing the weight values of each layer constituting the neural network
- a teacher output data storage means for storing teacher output data for the output of each layer, including teacher output data for the output of the output layer of the teacher dataset for the entire network.
- the weight value after initialization stored in the weight value storage means and the teacher output data for the output of the own layer stored in the teacher output data storage means are used for the output of the layer on the input side of the own layer.
- It is equipped with a teacher output data generation means that generates teacher output data and executes a teacher output data generation process to store the teacher output data for the output of the generated input side layer in the teacher output data storage means.
- the output value of the third layer was obtained and obtained as the optimum solution or a solution close to the optimum solution by the optimization process for obtaining the parameter that minimizes this error Eye. It is characterized in that the output value of the (n-1) th layer is stored in the teacher output data storage means as the teacher output data for the output of the (n-1) th layer. It is a thing.
- the "weight value after initialization” is a weight value automatically generated by a random number or the like, a weight value before updating the operating system, or is it used in a system having the same or similar network configuration?
- the weight values used, or combinations thereof, etc. are included.
- the "error Ey" uses the calculated value by the calculation formula of the output of the nth layer using the output value of the (n-1) th layer and the teacher output data for the output of the nth layer.
- the specified error Ey may be used, and the activity of calculating the input value to the activation function when the activation function is included in the calculation formula of the output of the nth layer using the output value of the (n-1) th layer. It may be an error Ey determined by using the calculated value by the conversion function input value calculation formula and the value obtained by inputting the teacher output data for the output of the nth layer into the inverse function of the activation function.
- the information processing apparatus of the present invention is provided with the teacher output data generation means, it is possible to generate the teacher output data for the outputs of all the intermediate layers of the neural network, so that the teacher data set for the entire network can be generated. Together with the teacher output data for the output of the output layer given as, the teacher output data for the output of each layer of the neural network is obtained. Since the input layer has no weight value as shown in the above-mentioned equation (1), the teacher output data for the output of the input layer is not required.
- the teacher output data generation means generates teacher output data for the output of each layer by an independent optimization process for each layer with the weight value after initialization fixed. Therefore, the teacher output data It is not necessary to perform iterative calculation at all, or even if iterative calculation is performed, local iterative calculation in the optimization process independent for each layer (in the calculation process in each layer, for each neuron) In some cases, the calculation unit can be divided.)
- the weight value of each layer is weighted by the optimization process independently for each layer using the teacher output data for the obtained output of each layer. Can be adjusted and decided. Therefore, even when the weight value is adjusted and determined, it is not necessary to perform the iterative calculation at all, or even if the iterative calculation is performed, the local iterative calculation in the optimization process independent for each layer (inside each layer). In the calculation process of, the calculation unit may be divided for each neuron.
- the information processing apparatus of the present invention does not necessarily have to be configured to execute the adjustment determination of the weight value, and may be an apparatus that completes the processing until the generation of the teacher output data. Even in this case, the information processing apparatus of the present invention can complete the teacher output data generation process in a short time, and if the teacher output data generated by the information processing apparatus of the present invention is used in an external system, In an external system, effective weight value adjustment determination processing can be realized in a short time.
- the calculation unit can be divided. It only depends on the number of repetitions. Therefore, it becomes easy to estimate the number of hours required for learning in advance.
- the generated teacher output data can be extracted to the outside of the neural network and distributed by a communication line such as the Internet or a recording medium such as a DVD or a USB memory, the neural network constituting various systems can be distributed. It can be used for construction, which achieves the above objectives.
- Teacher output data generation means For the error Ey, calculate the calculation formula for the output of the nth layer using the output value of the (n-1) th layer, or the input value to the activation function when this calculation formula includes the activation function.
- the minimum for finding the parameter that minimizes the error Ey due to the sum of squares by setting the formula obtained by partially differentiating the error Ey due to the sum of squares as a parameter with the output value of the (n-1) th layer as zero. It is desirable that the configuration is such that the optimization process by the square method is executed.
- the "least squares method” may be either a linear least squares method or a nonlinear least squares method. That is, the “calculation formula for the output of the nth layer using the output value of the (n-1) th layer” or the “activation function input value calculation formula” when the activation function is included in this calculation formula is , If the parameter (here, the output value is the parameter, not the weight value) is represented by a linear combination, it is the linear least-squares method, otherwise it is the non-linear least-squares method. Is.
- the optimization process is performed by the least squares method in this way, the formula for finding the optimal solution or a solution close to it becomes a simple formula, and the calculation time is shortened.
- the calculation formula for the output of each layer includes the weighted sum S of the output values of the layers on the input side of the own layer, as in the above-mentioned equations (2) and (3), the parameter Since (here, the output value) is a linear combination
- the optimization process is performed by the linear least squares method. Therefore, the formula for finding the optimum solution becomes simpler, the calculation time becomes shorter, and the error occurs. Also becomes smaller.
- teacher output data generation means Of the teacher output data stored in the teacher output data storage means before the optimization process is executed, all the teacher output data for the output from each neuron of the process target layer for which the optimization process is executed is the process target layer. Assuming that it is within the output range of the activation function of By dividing all teacher output data for the output from each neuron in the layer to be processed by the maximum absolute value of all these teacher output data, all teacher output data is within the range of -1 to 1.
- all the absolute values of all teacher output data for the output from each neuron in the layer to be processed are within a predetermined threshold according to the format of the real type data applied to these teacher output data. It is desirable that the configuration is such that the teacher output data normalization process that divides the teacher output data by the same value is executed.
- the teacher output data normalization process is executed by the teacher output data generation means in this way, the calculation of the inverse matrix can be stabilized when the optimization process is executed. That is, if a large value of teacher output data is given at the time of calculation of the inverse matrix, the calculation may fail, but such a situation can be avoided.
- a teacher input data storage means for storing teacher input data for inputs to each layer, including teacher input data for inputs to the input layer of the teacher data set for the entire network.
- the teacher input data from the input side layer of the own layer stored in the teacher input data storage means to the own layer, and the teacher output data for the output of the own layer stored in the teacher output data storage means are used.
- the weight value from the input side layer of the own layer to the own layer is adjusted and determined, the weight value optimization process for storing the determined weight value in the weight value storage means is executed, and then the weight value optimization process is performed.
- a weight value optimization means for executing a teacher input data generation process in which a value is calculated and the calculated output value of the own layer is stored in the teacher input data storage means as teacher input data to the layer on the output side of the own layer.
- This weight value optimization means The number of layers constituting the neural network is N, the number of the own layer is n, the number of the layer on the input side of the own layer is (n-1), the number of the layer on the output side of the own layer is (n + 1), and the output is performed.
- the (n-1) th solution is the optimal solution or a solution close to it by the optimization process in which the weight value from the (n-1) th layer to the nth layer is used as a parameter and the parameter that minimizes this error Ew is obtained.
- the weight value from the layer to the nth layer is obtained, and the process of storing the obtained weight value in the weight value storage means is executed. After that, as a teacher input data generation process, The weight value from the (n-1) th layer to the nth layer determined by the weight value optimization process, and the (n-1) th layer to the nth layer stored in the teacher input data storage means.
- the calculation formula of the output of the nth layer using the output value of the (n-1) th layer using the teacher input data of (n-1) th layer to the nth layer By inputting data, the output value of the nth layer is calculated, and the calculated output value of the nth layer is stored in the teacher input data storage means as the teacher input data to the (n + 1) th layer. It is desirable that it is configured to execute.
- the weight values of the output layer and all the intermediate layers can be locally optimized for each layer (calculation unit can be divided for each neuron). In some cases), it can be obtained. Therefore, as described above, effective learning in a short time, avoidance of the trouble of adjusting the update rate by trial and error, prediction of learning time, and reduction of error can be realized.
- the weight value optimization means is As the weight value optimization process, the error Ew is calculated by using the output value of the (n-1) th layer to calculate the output of the nth layer, or the activation function when the calculation formula includes an activation function. Activation function to calculate the input value to the input value calculation formula and the teacher output data for the output of the nth layer or the value obtained by inputting this teacher output data to the inverse function of the activation function.
- the error Ew due to the sum of squares is set to zero by setting the expression that is partially differentiated by the weight value from the (n-1) th layer to the nth layer as a parameter. It is desirable that the configuration is such that the optimization process by the least squares method for finding the parameter that minimizes the error Ew due to the sum of squares is executed.
- the "least squares method” may be either a linear least squares method or a nonlinear least squares method. That is, the “calculation formula for the output of the nth layer using the output value of the (n-1) th layer” or the “activation function input value calculation formula” when the activation function is included in this calculation formula is , If the parameter (here, the weight value is the parameter, not the output value) is represented by a linear combination, it is the linear least-squared method, otherwise it is the non-linear least-squared method. Is.
- the optimization process is performed by the least squares method in this way, the formula for finding the optimal solution or a solution close to it becomes a simple formula, and the calculation time is shortened.
- the calculation formula for the output of each layer includes the weighted sum S of the output values of the layers on the input side of the own layer, as in the above-mentioned equations (2) and (3), the parameter Since (here, the weight value) is a linear combination
- the optimization process is performed by the linear least squares method. Therefore, the formula for finding the optimum solution becomes simpler, the calculation time becomes shorter, and the error occurs. Also becomes smaller.
- the present invention is an information processing method for executing information processing including weight adjustment by a neural network by a computer.
- a teacher output data storage means for storing the teacher output data for the output of each layer including the teacher output data for the output of the output layer of the teacher data set for the entire network is provided.
- the teacher output data generation means uses the weight value after initialization stored in the weight value storage means and the teacher output data for the output of the own layer stored in the teacher output data storage means of the own layer.
- the teacher output data generation process is executed to generate the teacher output data for the output of the input side layer and store the teacher output data for the generated output of the input side layer in the teacher output data storage means.
- the output value of the third layer was obtained and obtained as the optimum solution or a solution close to the optimum solution by the optimization process for obtaining the parameter that minimizes this error Eye. It is characterized in that a process of storing the output value of the (n-1) th layer in the teacher output data storage means as the teacher output data for the output of the (n-1) th layer is executed.
- the teacher output data generation means may execute the optimization process by the least squares method or the teacher output data normalization process, as in the case of the above-mentioned information processing apparatus.
- a teacher input data storage means for storing the teacher input data for the input to each layer including the teacher input data for the input to the input layer of the teacher data set for the entire network is provided.
- the weight value optimizing means stores the teacher input data from the input side layer of the own layer stored in the teacher input data storage means to the own layer, and the output of the own layer stored in the teacher output data storage means.
- the weight value from the input side layer of the own layer to the own layer is adjusted and determined, and the weight value optimization process for storing the determined weight value in the weight value storage means is executed, and then the weight value optimization process is executed.
- the weight value from the input side layer of the own layer to the own layer determined by this weight value optimization process, and the teacher input data from the input side layer of the own layer stored in the teacher input data storage means to the own layer. Use to calculate the output value of the own layer, and execute the teacher input data generation process to store the calculated output value of the own layer in the teacher input data storage means as the teacher input data to the layer on the output side of the own layer.
- the weight value optimization means is The number of layers constituting the neural network is N, the number of the own layer is n, the number of the layer on the input side of the own layer is (n-1), the number of the layer on the output side of the own layer is (n + 1), and the output is performed.
- the (n-1) th solution is the optimal solution or a solution close to it by the optimization process in which the weight value from the (n-1) th layer to the nth layer is used as a parameter and the parameter that minimizes this error Ew is obtained.
- the weight value from the layer to the nth layer is obtained, and the process of storing the obtained weight value in the weight value storage means is executed.
- a teacher input data generation process The weight value from the (n-1) th layer to the nth layer determined by the weight value optimization process, and the (n-1) th layer to the nth layer stored in the teacher input data storage means.
- the calculation formula of the output of the nth layer using the output value of the (n-1) th layer using the teacher input data of (n-1) th layer to the nth layer By inputting data, the output value of the nth layer is calculated, and the calculated output value of the nth layer is stored in the teacher input data storage means as the teacher input data to the (n + 1) th layer. It is desirable to execute.
- the weight value optimization means may execute the optimization process by the least squares method, as in the case of the above-mentioned information processing apparatus.
- program of the present invention is for operating a computer as the information processing device described above.
- the above program or a part thereof may be, for example, a magneto-optical disk (MO), a compact disk (CD), a digital versatile disk (DVD), a flexible disk (FD), a magnetic tape, or a read-only memory (ROM).
- Record on recording media such as electrically erasable and rewritable read-only memory (EEPROM), flash memory, random access memory (RAM), hard disk drive (HDD), solid state drive (SSD), and flash disk. It can be stored and distributed, and can be transmitted using, for example, a wired network such as LAN, MAN, WAN, the Internet, an intranet, an extranet, a wireless communication network, or a transmission medium such as a combination thereof. It is also possible to carry it on a carrier. Further, the above program may be a part of another program, or may be recorded on a recording medium together with a separate program.
- the information processing apparatus of the present invention may be described in another expression as follows. That is, the present invention is an information processing apparatus configured by a computer that executes information processing including weight adjustment by a neural network.
- a weight value storage means for storing the weight values of each layer constituting the neural network
- a teacher output data storage means for storing teacher output data for the output of each layer, including teacher output data for the output of the output layer of the teacher dataset for the entire network.
- the weight value after initialization stored in the weight value storage means and the teacher output data for the output of the own layer stored in the teacher output data storage means are used to input the weight value of the own layer and the own layer.
- the output value of the own layer and the output error Ey of the own layer defined by the formula including the teacher output data with respect to the output of the own layer
- the output value of the input side layer of the own layer is used as a parameter
- this error Ey is used as a parameter.
- the output value of the layer on the input side of the own layer is obtained as the optimum solution or a solution close to it, and the obtained output value is the teacher output data for the output of the layer on the input side of the own layer. It is characterized by having a teacher output data generation means for executing a teacher output data generation process to be stored in the teacher output data storage means.
- a teacher input data storage means for storing teacher input data for inputs to each layer, including teacher input data for inputs to the input layer of the teacher data set for the entire network.
- the teacher input data from the input side layer of the own layer stored in the teacher input data storage means to the own layer, and the teacher output data for the output of the own layer stored in the teacher output data storage means are used.
- the weight value of the own layer, the output value of the input side of the own layer, and the output error Ew of the own layer defined by the formula including the teacher output data with respect to the output of the own layer, the weight value of the own layer is used as a parameter.
- the weight value of the own layer is obtained as the optimum solution or a solution close to the optimum solution by the optimization process for obtaining the parameter that minimizes the error Ew, and the weight value optimization process for storing the obtained weight value in the weight value storage means is performed.
- the weight value of the own layer obtained by this weight value optimization process and the teacher input data from the input side layer of the own layer stored in the teacher input data storage means to the own layer are used.
- the output value of the own layer is calculated by the calculation formula of the output of the layer, and the calculated output value of the own layer is stored in the teacher input data storage means as the teacher input data to the layer on the output side of the own layer. It is desirable to have a configuration equipped with a weight value optimization means for executing the process.
- teacher output data for all intermediate layer outputs it is possible to generate teacher output data for all intermediate layer outputs, so that it can be combined with the teacher output data for the output of the output layer given as a teacher data set for the entire network. Since teacher data sets are obtained for the output layer and all intermediate layers, it is possible to adjust and determine the weight value of each layer by independent optimization processing for each layer, and effective learning in a short time and trial and error. It has the effect of avoiding the trouble of adjusting the update rate, predicting the learning time, and reducing the error.
- the whole block diagram of the information processing apparatus of one Embodiment of this invention The hardware configuration diagram of the information processing apparatus of the said embodiment.
- the block diagram of the neural network and the acquisition teacher data storage means of the said embodiment The block diagram of the network configuration information storage means of the said Embodiment.
- Another explanatory diagram of the weight value optimization process of the said embodiment The explanatory view of the teacher input data generation processing of the said embodiment.
- the figure of the flowchart which shows the whole flow of learning of the neural network of the said embodiment.
- the figure of the flowchart which shows the flow of the learning process of the neural network by the learning means of the said embodiment.
- FIG. The figure which shows the result (calculation time) of Experimental Example 1.
- FIG. 1 shows the overall configuration of the information processing apparatus 10 of the present embodiment
- FIG. 2 shows the hardware configuration of the information processing apparatus 10.
- FIG. 3 is a configuration diagram of the neural network and the acquired teacher data storage means 43
- FIG. 4 is a configuration diagram of the network configuration information storage means 42
- FIG. 5 shows the identification information of the nth layer. The associated variable, the format of the value of the variable, and the initialization method are shown.
- FIGS. 6 and 7 are explanatory views of the teacher output data generation process by the teacher output data generation means 33B
- FIGS. 8 and 9 are explanatory views of the weight value optimization process by the weight value optimization means 33D. Yes, FIG.
- FIG. 10 is an explanatory diagram of a teacher input data generation process by the weight value optimizing means 33D. Further, FIG. 11 shows a flow chart of the overall flow of learning of the neural network, and FIG. 12 shows a flow chart of the learning process of the neural network by the learning means 33.
- the information processing device 10 includes a device main body 20 configured by a computer, a display device 60 such as a liquid crystal display, and an input device 70 such as a mouse and a keyboard. Further, the information processing apparatus 10 is requested to be operated by a requester who requests the administrator of the information processing apparatus 10 to perform work via a communication line 1 (whether wired or wireless) such as the Internet or LAN. The person terminal (or the system managed by the client) 80 is connected.
- the apparatus main body 20 includes a processing means 30 for executing various processes related to the learning of the neural network, and a storage means 40 for storing various data necessary for executing the various processes.
- the computer constituting the apparatus main body 20 is mainly a personal computer (including a desktop computer and a laptop computer), but may be a portable device such as a handheld computer or a tablet terminal, or may be a large computer (main frame). In short, it suffices to have the necessary functions.
- the display device 60 and the input device 70 may be integrated with the device main body 20, and in the case of a portable device, they are often integrated.
- the computer constituting the apparatus main body 20 has a main storage device (main storage device) composed of a central processing unit (CPU) 110 connected by a bus 100 and a DRAM or the like as a typical hardware configuration.
- Main memory 120 cache memory 130 composed of SRAM and the like, auxiliary storage device 140 such as HDD and SSD, communication interface (communication I / F) 150 for communication line 1, and interface for display device 60.
- (I / F) 160 and an interface (I / F) 160 for the input device 70 are provided.
- the central processing unit (CPU) 110 and the cache memory 130 are connected by a bus 101 capable of high-speed data transfer.
- a multiprocessor may be used by a plurality of central processing units (CPUs) 110.
- the installation of the cache memory 130 may be omitted.
- the auxiliary storage device 140 may be an external HDD, SSD, or the like, or may be an external recording medium 90 such as a DVD, a CD, or a USB memory.
- the processing means 30 includes a teacher data acquisition means 31, an initialization means 32, and a learning means 33.
- the learning means 33 includes a teacher output data registration means 33A for an output layer, a teacher output data generation means 33B, a teacher input data registration means 33C for an input layer, and a weight value optimization means 33D.
- Each of the means 31, 32, 33 included in these processing means 30 includes a central processing unit (CPU) 110, one or more programs defining the operation procedure of the CPU, and a main memory 120 and a cache memory 130. It is realized by a working memory (including a program area on the main memory 120, excluding a storage area secured on the main memory 120 as a storage means 40). The details of each of these means 31, 32, 33 will be described later.
- the storage means 40 includes a program storage means 41, a network configuration information storage means 42, an acquisition teacher data storage means 43, an input side layer address storage means 44, a weight value storage means 45, and a weighted sum storage means. It includes 46, an activation function type storage means 47, an output value storage means 48, a teacher output data storage means 49, and a teacher input data storage means 50.
- Each of the storage means 41 to 50 included in these storage means 40 is realized by the main storage device (main memory) 120, the cache memory 130, and the auxiliary storage device 140. The details of each of these storage means 41 to 50 will be described later.
- the present invention executes a process of adjusting and determining the weight value of the neural network, but the configuration of the NN to be processed is the same as the configuration of the existing NN as shown in FIG. 3, and the weight value is adjusted and determined.
- the only difference is the method of learning processing. That is, after the learning stage is completed and the weight value is determined, the operation of various systems (identification system, pattern recognition system, etc.) composed of NNs using the determined weight value is the same as before.
- the stage processing is no different from the conventional one.
- the present invention can be applied to all existing NNs. Further, the present invention can be applied to new NNs to be developed in the future if there is a similar connection relationship between neurons.
- the calculation formula of the output of each layer shown in the above-mentioned formulas (1), (2), and (3) can also be used in the processing of the present invention.
- the configuration shown in FIG. 3 is an example, and the number of layers and the number of neurons in each layer are not limited to the example of FIG.
- the present invention is not limited to the case where the calculation formula for the output of each layer includes such a weighted sum S, and the output value of the previous layer (the layer on the input side of the own layer) and The present invention is applied to any calculation formula for calculating the output value of the own layer using the weight value of the own layer (the weight value from the neuron of the layer on the input side of the own layer to the neuron of the own layer). Can be done.
- the output calculation formula may be a weighted sum S plus a bias, and is a quadratic or higher-order function, a sine function (sin function), a cosine function (cos function), or a logarithmic function for the output value or the weight value. , Exponential function, etc.
- equations (2) and (3) are equations including the activation function f
- the calculation equation of the output of each layer uses the activation function f. The expression may not be included.
- the optimization process by the least squares method When the optimization process by the least squares method is executed in the present invention, if the calculation formula of the output is a linear combination for the parameters, the optimization process is performed by the linear least squares method, and the parameters are linearly combined. If not, the optimization process is performed by the nonlinear least squares method.
- the optimization processing is the processing by the least squares method is determined by whether or not the error formula is defined by the sum of squares, and therefore corresponds to the above-mentioned equations (2) and (3). Regardless of what the output calculation formula is, for example, even if the output calculation formula is a sine function (sin function), if the error formula is defined by the sum of squares. , The optimization process by the least squares method will be executed.
- the teacher data acquisition means 31 executes a process of storing a large number (Mp) of teacher data sets acquired from the outside of the neural network in the acquisition teacher data storage means 43 (see FIG. 3). As shown in FIG. 3, each teacher data set is stored in each record (teacher data record) in association with the number of the teacher data set.
- These teacher data sets may be data collected by the administrator of the information processing apparatus 10, or may be data collected by a requester who requests the administrator to perform the work.
- the requester may transmit a large number (Mp) of the collected teacher data sets to the information processing apparatus 10 via the communication line 1, store the collected teacher data sets in a recording medium 90 such as a DVD or a USB memory, and inform the administrator. You may hand it over.
- the requester has a fixed NN configuration (excluding weight values) in the system 80 managed by the client, and the weight values (weight data) corresponding to the configuration and the teacher output data for the output of the intermediate layer.
- the network configuration information (see FIG. 4) about the NN in the system 80 is also transmitted to the information processing apparatus 10 via the communication line 1 or stored in the recording medium 90 and sent to the administrator. Pass it and ask the administrator to do the work (decision to adjust the weight value and generate teacher output data).
- the client may request the administrator to perform the work including the determination of the NN configuration. In that case, the administrator is involved in the work request.
- the network configuration information (see FIG. 4) determined by the administrator is also transmitted to the requester terminal (or system) 80 via the communication line 1, or the recording medium 90. Store in and pass it to the requester.
- the initialization means 32 executes an acquisition process of network configuration information and an initialization process of information of each layer.
- the initialization means 32 has network configuration information (layer numbers, neurons of each layer) stored in the network configuration information storage means 42 (see FIG. 4) on the auxiliary storage device 140. (Number, type of activation function) is read and placed on the main memory 120, and an information storage area (see FIG. 5) of each layer is secured on the main memory 120 according to the read network configuration information.
- the state in which the storage area is secured includes a state in which the storage area is temporarily saved in the auxiliary storage device 140 such as an HDD or SSD by a swap operation, a state in which the storage area is secured in the cache memory 130, and the like. Is also included.
- the storage area for the network configuration information on the main memory 120 is also referred to as the network configuration information storage means 42.
- the network configuration information stored in the network configuration information storage means 42 on the auxiliary storage device 140 may be data determined by the administrator and input by the input device 70, or may be data received from the requester and stored.
- FIG. 5 shows the contents of the information storage area of each layer secured on the main memory 120 by the above network configuration information acquisition process (each variable, the format of the value for each variable, and the initialization method).
- the variables include the address (C) of the layer on the input side, the weight value (D), the value of the weighted sum S (E), the type of activation function (F), the output value (G), and the nth layer (the nth layer ().
- each variable shown in FIG. 5 is the storage information associated with the identification information of the nth layer (the number of the nth layer or the address of the nth layer on the main memory 120). Therefore, the storage areas of each variable of FIG. 5 secured on the main memory 120 are the input side layer address storage means 44, the weight value storage means 45, the weighted sum storage means 46, the activation function type storage means 47, respectively. It is a part associated with the identification information of the nth layer of the output value storage means 48, the teacher output data storage means 49, and the teacher input data storage means 50.
- the values of some variables are also stored in the auxiliary storage device 140, which is a non-volatile memory for storage, and the storage location of the values of those variables on the auxiliary storage device 140 is also the weight value storage means 45.
- the teacher output data storage means 49, etc. are referred to by the same name as the storage area on the main memory 120.
- the weight value (D) is an array having an element of the number of neurons in the (n-1) th layer (the layer on the input side of the own layer) ⁇ the number of neurons in the nth layer (the own layer), and is an initial sequence.
- the conversion means 32 initializes each of these elements with a random number. When processing the threshold value, 1 is added to the number of neurons in the layer on the input side for initialization.
- the initialization of the weight value (D) there is a system in operation (for example, a system 80 managed by the client), and the newly obtained teacher data set is used to determine the NN in the system.
- the weight value used in the system before the update may be used as the weight value after the initialization.
- the weight value of an operating system for example, system 80, etc.
- the weight value of the system before the update is determined by a conventional method such as an error back propagation method, and the weight value determination method according to the present invention may be switched from this update.
- the weight value of the system before the update is also determined by the present invention, and this update may be continuously determined by the present invention.
- the weight value after initialization (that is, the first weight used in a fixed state for generating the teacher output data of the intermediate layer before the weight value optimization process by the weight value optimization means 33D is executed). Value) is created with a random number. Also, learn using only the new teacher dataset. In this case 1, since the past teacher data set and weight information do not remain, it is a case of re-learning from the beginning corresponding to the new teacher data set. This is when the system built by the neural network to be learned changes its behavior (for example, when the machine deteriorates significantly and the movement changes, or when the camera lens is changed and the appropriate image recognition method changes. Etc.) is the learning process.
- the weight value after initialization (first weight value) is created with a random number. You will also learn using both the new teacher dataset and the teacher dataset up to the last update. In this case 2, the accuracy of prediction is improved (error is reduced) by adding a new teacher data set. This is a learning process when the behavior of the system is not much different from before, but the prediction accuracy of the neural network is to be improved.
- the weight value of the pre-update system is used as the weight value after initialization (first weight value). Also, learn using only the new teacher dataset. This case 3 can be used, for example, when the system changes slowly (such as when the machine gradually deteriorates). Since the previous learning result remains in the weight information before the update, learning that inherits it can be expected.
- the weight value of the pre-update system is used as the weight value after initialization (first weight value). Learn using both the new teacher dataset and the teacher dataset up to the last update. In this case 4, as in the case 2, by adding a new teacher data set, the accuracy of prediction is improved (error is reduced).
- the weight value used or used in the system having the same or similar network configuration is used as the weight value after initialization (first weight value).
- the weight value after initialization is a combination of the weight value before update used in the running system and the weight value of the system having the same or similar network configuration. It may be used as a weight value).
- the value (E) of the weighted sum S is an array having elements of the number of neurons in the nth layer (own layer), and the initialization means 32 initializes all of these elements with 0. Further, the initialization means 32 registers an integer value for identifying the type of the activation function in the activation function type (F) based on the acquired network configuration information (see FIG. 4).
- the output value (G) is an array having an element of the number of neurons in the nth layer (own layer), but initialization is not necessary.
- the teacher output data (H) to the nth layer (own layer) is an array having an element of the number of neurons of the nth layer (own layer) ⁇ the number of teacher data sets Mp, but initialization is unnecessary.
- the teacher input data (I) to the (n + 1) th layer is an array having an element of the number of neurons of the nth layer (own layer) ⁇ the number of teacher data sets Mp. However, initialization is not necessary.
- the teacher output data registration means 33A for the output layer acquires the teacher output data in the teacher data set (Mp pieces) acquired by the teacher data acquisition means 31 and stored in the teacher data storage means 43 (see FIG. 3).
- the process of copying and registering to the variable (H) (see FIG. 5) of the output layer (Nth layer: where N is the number of layers) is executed. That is, the teacher output data to the Nth layer (M (N) teacher output data for the output of each neuron in the Nth layer: where M (N) is the number of neurons in the Nth layer) is N.
- the information in the second layer (see FIG. 5) is stored in the teacher output data storage means 49. Therefore, the number of teacher output data to be registered is M (N) ⁇ Mp.
- the teacher output data generation means 33B executes the teacher output data normalization process and the teacher output data generation process.
- the teacher output data generation means 33B executes the latter teacher output data generation process (optimization process for minimizing the error Ey (n) for the output of the nth layer) in the former teacher output data normalization process.
- the teacher output data stored in the teacher output data storage means 49 all the teacher output data (n shown in FIG. 5) for the output from each neuron of the layer (processing target layer) for executing the optimization process.
- this teacher output data normalization process is executed when the process target layer is other than the output layer. This is because when the processing target layer is an output layer, the teacher output data (value of the variable (H) shown in FIG. 5) of that layer is the teacher output data registered by the teacher output data registration means 33A for the output layer. .. Further, the teacher output data normalization process excludes the case where the processing target layer is the output layer (Nth layer: where N is the number of layers), so that it is one of the (N-1) th layers (one of the output layers). The processing target layer executes up to the second layer while decreasing the number of the processing target layer by 1 in order from the previous layer), and normalizes up to the teacher output data for the output of the second layer. There is no need to normalize the teacher output data to the output of the input layer (first layer). This is because the input to the input layer becomes the output of the input layer as it is, as in the above-mentioned equation (1).
- the teacher output data to be normalized is stored in the teacher output data storage means 49.
- the teacher output data for the output of each neuron in the fifth layer is the normalization target, but the teacher to the fifth layer of the normalization target is the teacher.
- the output data is generated by the teacher output data generation process in which the sixth layer is the processing target layer. This cycle is established by executing the teacher output data generation process in order from the output layer while reducing the number of the process target layer by one.
- the teacher output data generation process is executed with the output layer (Nth layer) as the processing target layer
- the teacher output data for the output of the (N-1) th layer is generated, and the teacher output data storage means 49. Is remembered in.
- this teacher output data normalization process is executed with the (N-1) th layer as the processing target layer
- the teacher output data for the output of the (N-1) th layer to be normalized is , It is already stored in the teacher output data storage means 49.
- the teacher output data generation means 33B among the teacher output data stored in the teacher output data storage means 49, all the teacher output data for the output from each neuron of the processing target layer is the processing target layer.
- the activation function f is within the outputable range, one of the following first and second teacher output data normalization processes is executed.
- the teacher output data generation process as shown in equations (6), (8), (9), and (11) shown in FIG. Because it is input to. If the activation function f is not included in the calculation formula of the output of the processing target layer, it is not necessary to input the teacher output data to the inverse function f -1 , so this premise is unnecessary.
- all teacher output data for the output from each neuron in the processing target layer is divided by the maximum absolute value of all these teacher output data, so that all teachers are all teachers. Keep the output data in the range -1 to 1. For example, if the distribution range of the teacher output data is -50 to 25, the maximum absolute value is 50, so it is normalized to -1 to 0.5 by dividing by 50. If all the teacher output data is within the range of -1 to 1, it is not always necessary to divide by the maximum absolute value, but it may be divided by the maximum absolute value. For example, the distribution range of -0.4 to 0.8 is normalized to -0.5 to 1.
- the absolute values of all the teacher output data for the output from each neuron in the processing target layer are real numbers applied to these teacher output data (variable (H) shown in FIG. 5).
- All teacher output data is divided by the same value so that it falls within a predetermined threshold according to the format of the type data. Therefore, the threshold value is a predetermined value depending on the performance of the computer.
- the same value may be a constant selected from a plurality of constants (for example, 10, 100, 1000, ...) Prepared in advance, and the maximum absolute value of all teacher output data is used as a threshold value. It may be a value divided (a value exceeding 1) or a value obtained by multiplying the value by a coefficient exceeding 1 (a value on the safety side).
- the threshold value is 1000 and the distribution range of the teacher output data is -14230 to 2381, the constant 100 is selected as the same value (because it does not fall within the threshold value even if divided by the constant 10). ), By dividing by 100, it is normalized to -142.3 to 23.81. Further, since the maximum absolute value is 14230, the value 14.230 obtained by dividing 14230 by the threshold value 1000 may be the same value, and by dividing by 14.230, it is normalized to -1000 to 167.32. To. Further, a value of 14.230 obtained by dividing the maximum absolute value 14230 by a threshold value of 1000 and multiplying it by, for example, 1.1 (a coefficient exceeding 1) may be set to the same value of 15.653 (safety side value). By dividing by 653, it is normalized to -909.09 to 152.11. If it is within the threshold value, it is not necessary to divide by the same value.
- the output value of the layer on the input side of the layer was obtained and obtained as the optimum solution or a solution close to the optimum solution by the optimization process for obtaining the parameter that minimizes this error Eye.
- the output value is stored in the teacher output data storage means 49 as teacher output data for the output of the layer on the input side of the own layer.
- the teacher output data generation means 33B executes the following teacher output data generation process according to the lowermost part of FIG. 6 and the equation (11) shown in FIG. 7, which will be described later.
- the calculation formula of the output of each layer is the weighted sum S of the output value of the previous layer (the layer on the input side of the own layer) as in the above-mentioned formulas (2) and (3).
- the error Ey (n) is defined by the sum of squares as in the equation (9) of FIG. 6 described later, and the optimization process by the least squares method is executed.
- the formula for the case. Therefore, the teacher output data generation process can be generalized and expressed as follows by giving the calculation formula of the output of each layer an arbitrariness and also giving an arbitrariness to the optimization process.
- the formula of the first error Ey (n) is the calculated value by the calculation formula of the output of the nth layer using the output value Y (n-1, j; p) of the (n-1) th layer. It is an equation defined by using the teacher output data Yt (n, k; p) for the output of the nth layer.
- the formula of the second error Ey (n) is the activation function f in the formula for calculating the output of the nth layer using the output value Y (n-1, j; p) of the (n-1) th layer.
- the value calculated by the activation function input value calculation formula (the formula in parentheses of f specified) for calculating the input value to the activation function f when is included, and the teacher output data Yt for the output of the nth layer. It is an equation determined by inputting (n, k; p) into the inverse function f -1 of the activation function f and using the value obtained.
- the number of layers constituting the neural network is N
- the number of the own layer is n
- the number of the input side layer of the own layer is (n-1)
- the number of the output layer is set.
- the output value Y (n-1, j; p) of the (n-1) th layer is used as a parameter, and this error Ey (n) is minimized.
- the output value Y (n-1, j; p) of the (n-1) th layer is obtained as the optimum solution or a solution close to the optimum solution by the optimization process for obtaining the parameters, and the obtained (n-1) th layer is obtained.
- the teacher output data generation means 33B uses the generated teacher output data Yt (n-1, j; p) as the information of the (n-1) th layer, and describes the (n-1) th layer.
- Yt (n, k; p) is the teacher output data for the output of the kth neuron in the nth layer.
- the subscript t of Y indicates teaching.
- p 1 to Mp, where p is the number of the teacher data set and Mp is the number of teacher data sets.
- W (n-1, j; n, k) is a weight value from the j-th neuron of the (n-1) th layer to the k-th neuron of the nth layer.
- Y (n-1, j; p) is the output value of the jth neuron in the (n-1) th layer.
- H variable
- the generated teacher output data is registered as information on the input side layer of the processing target layer, so from the standpoint of the input side layer, the teacher output data of the number of neurons in the own layer ⁇ Mp. Will be registered.
- the purpose is to obtain teacher output data for the output of the second layer. Since the input layer (first layer) has no weight value as in the above equation (1), when the teacher input data in the teacher data set is input to the input layer, the value is used as it is in the input layer. This is because the teacher output data for the output of the input layer is not required because it is the output of.
- FIG. 6 shows the derivation process of the above teacher output data generation process.
- the error Ey is described using the sign of NN shown in FIG. 3, the following equation (6) is obtained.
- the error Ey is an error due to the sum of squares, it is assumed that the optimization process by the minimum square method is executed.
- the error Ey is not limited to the sum of the squares of the errors, for example, the error. It may be the sum of absolute values, the sum of the squares of errors, etc., and the definition of error Ey is arbitrary.
- [Q bc ] is a square matrix, and is obtained by substituting the weight value W b (j) c (k) after initialization stored in the weight value storage means 45.
- [U bc, p ] is a vertical vector, and the weight value W b (j) c (k) after initialization stored in the weight value storage means 45 is substituted into the teacher output data storage means 49. Obtained by substituting the stored teacher output data Yt c (k), p .
- Equation (9) is an error Ey (n) for the output of the nth layer.
- n N, ..., 5, 4, 3 and N is the number of layers.
- No calculation is required for n 2. That is, the error Ey (2) for the output of the second layer does not need to be considered. This is because it is not necessary to generate teacher output data for the output of the neuron in the first layer (input layer a).
- Y (n-1, j; p) is the output value of the jth neuron in the (n-1) th layer.
- Yt (n, k; p) is the teacher output data for the output of the kth neuron in the nth layer.
- the solution of the parameter Y (n-1, j; p) obtained by the optimization process is obtained as the teacher output data Yt (n-1, j;) for the output of the jth neuron in the (n-1) th layer.
- p the following matrix expression equation (11) as shown at the bottom of FIG. 6 and FIG. 7 is obtained.
- the equation (11) is a generalized equation of the equation (8) of FIG. 6 described above.
- [Q (n-1; n)] is a matrix for generating teacher output, and is a square matrix of M (n-1) rows ⁇ M (n-1) columns.
- M (n-1) is the number of neurons in the (n-1) th layer.
- W (n-1, j; n, k) is a weight value from the j-th neuron in the (n-1) th layer to the k-th neuron in the nth layer.
- the value of each element of the teacher output generation matrix Q (n-1; n) is the weight value W (n-1, j; n, k) after initialization stored in the weight value storage means 45. Obtained by substituting.
- [Yt (n-1; p)] is a teacher output vector and is a vertical vector of M (n-1) dimension.
- This teacher output vector Yt (n-1; p) is a set of teacher output data Yt (n-1, j; p) of the (n-1) th layer obtained by the teacher output data generation process.
- p 1 to Mp, where p is the number of the teacher data set and Mp is the number of teacher data sets.
- the process of obtaining the teacher output vector Yt (n-1; p) is repeated Mp times, so that the number of teacher output vectors to be obtained is M (n-1). ) ⁇ Mp.
- the inverse matrix of the teacher output generation matrix Q (n-1; n) is calculated, and the inverse matrix is used as the teacher output generation vector U. It can be obtained by multiplying U (n-1; n; p) from the left side of (n-1; n; p). Further, it may be obtained by using LQ decomposition or the like.
- the approximate value of the inverse matrix may be obtained by some method. For example, a method of adding a minute random number (for example, a random number having a value between -1.0E-10 to 1.0E-10) to each value of the teacher output generation matrix Q (n-1; n), sweeping out.
- a minute random number for example, a random number having a value between -1.0E-10 to 1.0E-10
- the processing is stopped when the diagonal component becomes 0, and the inverse matrix in the middle of calculation is used.
- the sweep method is applied to obtain the inverse matrix, the diagonal component is When it becomes 0, it is a method of replacing the diagonal component with a minute value (for example, 1.0E-10 or the like) and continuing the calculation.
- [U (n-1; n; p)] is a vector for generating a teacher output, and is an M (n-1) -dimensional vertical vector.
- f -1 is the inverse function of the activation function f.
- Yt (n, k; p) is the teacher output data for the output of the kth neuron in the nth layer.
- the value of each element of the teacher output generation vector U (n-1; n; p) is the weight value W (n-1, j; n, k) after initialization stored in the weight value storage means 45. ),
- the teacher output data Yt (n, k; p) stored in the teacher output data storage means 49 is substituted.
- the optimization process by iterative calculation in this case is a process that is executed independently for each layer for each layer, and is not a process that is executed over the entire network. Therefore, even if the execution time of the optimization process in all layers is totaled, the solution can be obtained in a short time as compared with the case of performing the iterative calculation such as the conventional backpropagation method.
- the teacher input data registration means 33C for the input layer acquires the teacher input data in the teacher data set (Mp pieces) acquired by the teacher data acquisition means 31 and stored in the teacher data storage means 43 (see FIG. 3).
- the process of copying and registering to the variable (I) (see FIG. 5) of the input layer (first layer) is executed. That is, the teacher input data to the output side layer (second layer) of the input layer (teacher for the input data output from each of the M (1) neurons of the first layer and input to the second layer).
- Input data However, M (1) stores the number of neurons in the input layer) in the teacher input data storage means 50 as information (see FIG. 5) of the input layer (first layer). Therefore, the number of teacher input data to be registered is M (1) ⁇ Mp.
- the weight value optimization means 33D executes the weight value optimization process and the teacher input data generation process.
- the weight value optimizing means 33D has, for each layer, the teacher input data from the input side layer of the own layer stored in the teacher input data storage means 50 to the own layer, and the teacher output.
- the weight value of the own layer is used as a parameter, and the weight value of the own layer is set as the optimum solution or a solution close to the optimum solution by the optimization process for obtaining the parameter that minimizes this error Ew. Obtained, and the obtained weight value is stored in the weight value storage means 45.
- the weight value optimization means 33D executes the following weight value optimization process according to the lowermost part of FIG. 8 and the equation (17) shown in FIG. 9, which will be described later.
- the calculation formula of the output of each layer is the weighted sum S of the output value of the previous layer (the layer on the input side of the own layer) as in the above-mentioned formulas (2) and (3).
- the error Ew (n) is defined by the sum of squares as in the equation (15) of FIG. 8 described later, and the optimization process by the least squares method is executed.
- the formula for the case. Therefore, the weight value optimization process can be generalized and expressed as follows by giving the calculation formula of the output of each layer an arbitrariness and also giving the optimization process an arbitrariness.
- the formula of the first error Ew (n) is the calculated value by the calculation formula of the output of the nth layer using the output value Y (n-1, j; p) of the (n-1) th layer. It is an equation defined by using the teacher output data Yt (n, k; p) for the output of the nth layer.
- the formula of the second error Ew (n) is the activation function f in the formula for calculating the output of the nth layer using the output value Y (n-1, j; p) of the (n-1) th layer.
- the value calculated by the activation function input value calculation formula (the formula in parentheses of f specified) for calculating the input value to the activation function f when is included, and the teacher output data Yt for the output of the nth layer. It is an equation determined by inputting (n, k; p) into the inverse function f -1 of the activation function f and using the value obtained.
- the number of layers constituting the neural network is N
- the number of the own layer is n
- the number of the layer on the input side of the own layer is (n-1)
- the output side of the own layer is indicated by N
- the layer number of is indicated by (n + 1)
- the output layer number is indicated by N
- the weight value from the (n-1) th layer to the nth layer is used as a parameter, and the parameter that minimizes this error Ew (n) is obtained.
- the weight value from the (n-1) th layer to the nth layer is obtained as the optimum solution or a solution close to the optimum solution by the conversion process, and the obtained weight value is stored in the weight value storage means 45.
- the weight value optimization means 33D registers the obtained weight value in the variable (D) of FIG. 5 as the information of the nth layer. Since the weight value (first weight value) after initialization is stored in the variable (D) of FIG. 5 that stores the information of the nth layer of the weight value storage means 45, the obtained weight value is obtained. Is overwritten and memorized.
- the number of weight values to be stored is the number of neurons in the (n-1) th layer M (n-1) ⁇ the number of neurons in the nth layer M (n).
- the processing may be performed up to the middle layer.
- the teacher input data storage means 50 stores the teacher input data from the (n-1) th layer to the nth layer, and the teacher output data storage means 49. It is necessary that the teacher output data for the output of the nth layer is stored in the nth layer. Of these, for the teacher output data, the teacher output data (teacher output data for the entire network) for the output of the output layer is registered by the teacher output data registration means 33A for the output layer, and all the teacher output data is registered by the teacher output data generation means 33B. Teacher output data for the output of the middle layer is generated and registered. Therefore, all the necessary teacher output data are available.
- the teacher input data to the second layer is registered in the teacher input data storage means 50 as the information of the input layer by the teacher input data registration means 33C for the input layer. Therefore, since the teacher input data to the second layer and the teacher output data to the second layer are prepared, the weight value of the second layer can be obtained. Then, in the teacher input data generation process described later, the weight value of the second layer obtained by this weight value optimization process and the teacher input data to the second layer are used to teach the third layer. The input data is generated and registered in the teacher input data storage means 50. Subsequently, the weight value of the third layer is obtained by using the teacher input data to the third layer and the teacher output data to the third layer generated by the teacher input data generation process. By repeating this cycle (see the loop processing in steps S309 to S312 of FIG. 12 described later), the weight values of all the intermediate layers and the output layers can be obtained.
- FIG. 8 shows the derivation process of the above weight value optimization process.
- the error Ew is described using the sign of NN shown in FIG. 3, the following equation (12) is obtained.
- the error Ew is an error due to the sum of squares, it is assumed that the optimization process by the minimum square method is executed.
- the error Ew is not limited to the sum of the squares of the errors, for example, the error. It may be the sum of absolute values, the sum of the squares of errors, etc., and the definition of error Ew is arbitrary.
- [R a, p ] is a square matrix, and the teacher input data Y a (i), p stored in the teacher input data storage means 50 (intermediate layer b output from the i-th neuron of the input layer a). It is obtained by substituting the teacher input data).
- [V ab (j), p ] is a vertical vector
- the teacher input data Y a (i), p stored in the teacher input data storage means 50 is substituted and stored in the teacher output data storage means 49. It is obtained by substituting the teacher output data Yt b (j), p .
- the equation (14) is generalized.
- the number of the neuron in the input layer a is i and the number of the neuron in the intermediate layer b is j, but after generalization, the number is (n-1).
- Let j be the number of neurons in the nth layer, and let k be the number of neurons in the nth layer. Therefore, the meaning of j is reversed before and after generalization.
- Equation (15) is an error Ew (n) for the output of the nth layer.
- n 2,3,4, ..., N, where N is the number of layers.
- k 1 to M (n), where k is the number of neurons in the nth layer and M (n) is the number of neurons in the nth layer.
- Y (n-1, j; p) is the output value of the jth neuron in the (n-1) th layer.
- Yt (n, k; p) is the teacher output data for the output of the kth neuron in the nth layer.
- Equation (17) is a generalized equation of the equation (14) of FIG. 8 described above.
- [R (n-1; p)] is a weight optimization matrix, and is a square matrix of M (n-1) rows ⁇ M (n-1) columns.
- M (n-1) is the number of neurons in the (n-1) th layer.
- p 1 to Mp, where p is the number of the teacher data set and Mp is the number of teacher data sets.
- the value of each element of the weight optimization matrix R (n-1; p) is obtained by substituting the teacher input data Y (n-1, j; p) stored in the teacher input data storage means 50. Be done.
- [W (n-1; n, k)] is a weight vector and is a vertical vector of M (n-1) dimension.
- This weight vector W (n-1; n, k) is a set of weight values from each neuron in the (n-1) th layer to the kth neuron in the nth layer obtained by the weight value optimization process.
- W (n-1, j; n, k) is a weight value from the j-th neuron in the (n-1) th layer to the k-th neuron in the nth layer.
- k 1 to M (n), where k is the number of neurons in the nth layer and M (n) is the number of neurons in the nth layer.
- the process of obtaining the weight vector W (n-1; n, k) is repeated M (n) times.
- the inverse matrix of the weight optimization matrix R (n-1; p) is calculated, and the inverse matrix is used as the weight optimization vector. It can be obtained by multiplying V (n-1; n, k; p) from the left side of V (n-1; n, k; p). Further, it may be obtained by using LQ decomposition or the like.
- the approximate value of the inverse matrix may be obtained by some method, and the method is for generating the teacher output of FIG. 7 described above. It is the same as the case where the inverse matrix of the matrix Q (n-1; n) does not exist.
- [V (n-1; n, k; p)] is a weight optimization vector, and is an M (n-1) -dimensional vertical vector.
- f -1 is the inverse function of the activation function f.
- Yt (n, k; p) is the teacher output data for the output of the kth neuron in the nth layer.
- the value of each element of the weight optimization vector V (n-1; n, k; p) is the teacher input data Y (n-1, j; p) stored in the teacher input data storage means 50. It is obtained by substituting and substituting the teacher output data Yt (n, k; p) stored in the teacher output data storage means 49.
- the optimization process by iterative calculation in this case is a process that is executed independently for each layer for each layer, and is not a process that is executed over the entire network. Therefore, even if the execution time of the optimization process in all layers is totaled, the solution can be obtained in a short time as compared with the case of performing the iterative calculation such as the conventional backpropagation method.
- the weight value optimizing means 33D is derived from the weight value of the own layer obtained by the above-mentioned weight value optimization process and the input side layer of the own layer stored in the teacher input data storage means 50.
- the teacher input data to the own layer calculate the output value of the own layer by the calculation formula of the output of the own layer, and use the calculated output value of the own layer as the teacher input data to the layer on the output side of the own layer. It is stored in the teacher input data storage means 50.
- the weight value optimizing means 33D has the weight values from the (n-1) th layer to the nth layer determined by the weight value optimization process described above, and the teacher. Using the teacher input data from the (n-1) th layer to the nth layer stored in the input data storage means 50, and using the output value of the (n-1) th layer, the nth layer By inputting the teacher input data from the (n-1) th layer to the nth layer in the output calculation formula, the output value of the nth layer is calculated, and the calculated output value of the nth layer is calculated. Is stored in the teacher input data storage means 50 as the teacher input data to the (n + 1) th layer.
- FIG. 10 shows the following equation (18), which is a generalization of the above equations (2) and (3).
- This formula (18) is a calculation formula for the output of the nth layer using the output value of the (n-1) th layer, and is a calculation formula used in the above-mentioned teacher input data generation process.
- the formula (18) is a formula including a weighted sum S of the output values of the (n-1) th layer, but in the present invention, the calculation formula of the output of each layer is a weighted sum S. It is not limited to the expression including.
- Y (n, k; p) f ( ⁇ j W (n-1, j; n, k) Y (n-1, j; p)) ... ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ (18)
- p 1 to Mp
- Mp the number of teacher data sets
- j 1 to M (n-1), where j is the number of the neuron in the (n-1) th layer (the layer on the input side of the own layer), and M (n-1) is (n-1). )
- f is an activation function.
- Y (n, k; p) is the output value of the kth neuron in the nth layer (own layer), that is, the teacher input data to the obtained (n + 1) th layer (the output side layer of the own layer). be.
- W (n-1, j; n, k) is the kth neuron in the nth layer (own layer) from the jth neuron in the (n-1) th layer (the layer on the input side of the own layer). It is a weight value to.
- Y (n-1, j; p) is the output value of the jth neuron in the (n-1) th layer (the layer on the input side of the own layer), that is, the teacher to the nth layer (own layer). It is input data.
- the program storage means 41 stores various programs used in NN learning.
- the program storage means 41 is realized by the auxiliary storage device 140 (see FIG. 2), and the program area on the main memory 120 also becomes the program storage means 41 during processing.
- the network configuration information storage means 42 stores the network configuration information of the NN in association with the number of the layer of the NN, the number of neurons in each layer, and the activation function of each layer.
- the network configuration information storage means 42 is realized by the auxiliary storage device 140, and when the network configuration information is read on the main memory 120, the storage area of the information on the main memory 120 is also the network configuration information storage means. It becomes 42.
- the acquired teacher data storage means 43 stores a large number of teacher data sets (teacher data group for the entire network) acquired from outside the NN.
- the acquisition teacher data storage means 43 is realized by the auxiliary storage device 140, but the teacher data set read on the main memory 120 is different from the area of the teacher output data storage means 49 and the teacher input data storage means 50. If it is left in the area, the other area also becomes the acquisition teacher data storage means 43.
- the input-side layer address storage means 44 stores the address of the input-side layer of its own layer for each layer of the NN in association with the identification information (address or layer number) of each layer. be.
- the input side layer address storage means 44 is realized by the storage area of the variable (C) of FIG. 5 arranged on the main memory 120.
- the format of the value of the variable (C) is an address value.
- the weight value storage means 45 uses the weight value (weight value from each neuron in the input side layer of the own layer to each neuron in the own layer) for each layer of the NN as the identification information (weight value) of each layer. It is stored in association with the address or layer number).
- the weight value storage means 45 is realized by the storage area of the variable (D) of FIG. 5 arranged on the main memory 120.
- the format of the value of the variable (D) is real type data of a two-dimensional array. Further, since the weight value after the adjustment is determined is used for utilization such as data transmission to the requester, it is also stored in the auxiliary storage device 140.
- the storage location of the weight value on the auxiliary storage device 140 is also the weight value storage means 45. Further, when the initialization process of the weight value by the initialization means 32 is executed by using the weight value before the update of the operating system, the weight value of the system having the same or similar network configuration, or the like, instead of the random number. Since the weight values for initialization are stored in the auxiliary storage device 140, the storage location of the weight values for initialization on the auxiliary storage device 140 is also the weight value storage means 45.
- the weighted sum storage means 46 is a value of the weighted sum S for each layer of the NN (the value of the weighted sum S of the output value of the layer on the input side of the own layer, and is the value of the own layer.
- the value before being input to the activation function f) is stored in association with the identification information (address or layer number) of each layer.
- the weighted sum storage means 46 is realized by the storage area of the variable (E) of FIG. 5 arranged on the main memory 120.
- the format of the value of the variable (E) is real type data of a one-dimensional array. This variable (E) is used when testing the constructed NN using the weight value and the test data after the adjustment decision.
- the activation function type storage means 47 stores the type of activation function for each layer of NN in association with the identification information (address or layer number) of each layer.
- the activation function type storage means 47 is realized by the storage area of the variable (F) of FIG. 5 arranged on the main memory 120.
- the value format of the variable (F) is an integer value.
- the activation function can be set to a different function for each layer. For example, a sigmoid function, a ReLU function, a hyperbolic tangent function (tanh function), a SELU function, a softmax function, a step function, a discontinuous function, etc.
- Various functions can be prepared as options for the activation function of each layer.
- the output value storage means 48 outputs the output value for each layer of the NN (the output of the own layer calculated by the calculation formula of the output of the own layer using the output value of the layer on the input side of the own layer). It is a value, and in the case of a layer using the activation function f, the value after being input to the activation function) is stored in association with the identification information (address or layer number) of each layer.
- the output value storage means 48 is realized by the storage area of the variable (G) of FIG. 5 arranged on the main memory 120.
- the format of the value of the variable (G) is real type data of a one-dimensional array. This variable (G) is used when testing the constructed NN using the weight value and the test data after the adjustment decision.
- the teacher output data storage means 49 stores the teacher output data for the output of the own layer for each layer of the NN in association with the identification information (address or layer number) of each layer.
- the teacher output data storage means 49 is realized by the storage area of the variable (H) of FIG. 5 arranged on the main memory 120.
- the format of the value of the variable (H) is real type data of a two-dimensional array.
- the generated teacher output data is used for utilization such as data transmission to the requester, it is also stored in the auxiliary storage device 140. Therefore, the storage location of the teacher output data on the auxiliary storage device 140 is also the teacher output data storage means 49.
- the teacher input data storage means 50 stores the teacher input data for each layer of the NN to the output side layer of the own layer in association with the identification information (address or layer number) of each layer. It is a thing.
- the teacher input data storage means 50 is realized by the storage area of the variable (I) of FIG. 5 arranged on the main memory 120.
- the format of the value of the variable (I) is real type data of a two-dimensional array.
- the teacher input data is also stored in the auxiliary storage device 140. Therefore, the storage location of the teacher input data on the auxiliary storage device 140 is also the teacher input data storage means 50.
- a large number (Mp) of teacher data sets acquired from the outside of the neural network are stored in the acquired teacher data storage means 43 (see FIG. 3) by the teacher data acquisition means 31 (step S1).
- the teacher data set may be data collected by the administrator of the information processing apparatus 10, or may be data received from the requester terminal (or the system managed by the requester) 80 via the communication line 1, and may be the requester.
- the data may be received from the data stored in the recording medium 90.
- the initialization means 32 executes the network configuration information acquisition process and the information initialization process of each layer (step S2). Since the details of these processes have already been described in detail in the description of the initialization means 32, they will be briefly described here.
- the initialization means 32 reads and reads the network configuration information (layer number, number of neurons in each layer, type of activation function) from the network configuration information storage means 42 (see FIG. 4). According to the network configuration information, a storage area (see FIG. 5) for information of each layer is secured on the main memory 120.
- the initialization means 32 performs a process of storing the memory address of the input side layer of the own layer in the input side layer address storage means 44 as an initialization process of the information of each layer, and a process of initializing the weight value with a random number and weighting.
- a process of storing an integer value that identifies the type of the activation function based on the information in the activation function type storage means 47 is executed.
- step S3 the learning process of the neural network is executed by the learning means 33 (step S3).
- FIG. 12 shows the flow of this learning process.
- Mp ⁇ number of neurons M (N) in the output layer is stored in the teacher output data storage means 49 (see variable (H) in FIG. 5) as teacher output data for the output of the output layer (Nth layer) (see variable (H) in FIG. 5).
- n N (N is the number of layers)
- the teacher output data generation means 33B starts generating the teacher output data of each layer in order from the output layer (Nth layer) (step S302).
- the teacher output data generation means 33B executes a teacher output data normalization process for normalizing the teacher output data for the output of the nth layer stored in the teacher output data storage means 49 (step S303).
- the teacher output data normalization process is not executed. Since the details of this teacher output data normalization process have already been described in detail in the description of the teacher output data generation means 33B, detailed description thereof will be omitted here.
- the teacher output data generation means 33B of the (n-1) th layer is subjected to the optimization process for minimizing the error Eye (n) for the output of the nth layer.
- the teacher output data generation process for generating the teacher output data for the output and storing the generated teacher output data in the teacher output data storage means 49 is executed (step S305). Since the details of this teacher output data generation process have already been described in detail in the description of the teacher output data generation means 33B, detailed description thereof will be omitted here.
- the teacher output data normalization process (step S303) and the teacher output data generation process (step S305) by the teacher output data generation means 33B are repeated while reducing n by 1, so that the teacher output data normalization
- step S305 since the teacher output data for the output of the previous layer (second layer) can be generated (see FIG. 7), the teacher output data for the output of the second layer is generated. Become. This is because in the input layer (first layer), since the input is output as it is as in the above-mentioned equation (1), it is not necessary to generate or normalize the teacher output data for the output of the input layer.
- the data is stored in the acquisition teacher data storage means 43 (see FIG. 3) by the input layer teacher input data registration means 33C.
- the teacher input data (the number of elements is Mp ⁇ the number of neurons in the input layer M (1)) in the teacher data set (Mp) is input to the output side layer (second layer) of the input layer.
- the data is stored in the information storage area (see the variable (I) in FIG. 5) of the input layer (first layer) of the teacher input data storage means 50 (step S307).
- the weight value used in the output calculation of the nth layer) is obtained, and the weight value optimization process for storing the obtained weight value in the weight value storage means 45 is executed (step S309). Since the details of this weight value optimization process have already been described in detail in the description of the weight value optimization means 33D, detailed description thereof will be omitted here.
- the weight value optimizing means 33D is the weight value of the nth layer obtained by the weight value optimizing process and stored in the weight value storage means 45, and the teacher input data.
- the (n + 1) th layer A teacher input data generation process is executed in which the teacher input data to (the layer on the output side of the own layer) is generated and the generated teacher input data is stored in the teacher input data storage means 50 (step S311). Since the details of this teacher input data generation process have already been described in detail in the description of the weight value optimizing means 33D, detailed description thereof will be omitted here.
- the weight value optimization process (step S309) and the teacher input data generation process (step S311) by the weight value optimization means 33D are repeated while increasing n by 1, so that the weight value optimization process is performed.
- the teacher input data to the output side layer (Nth layer) of the own layer can be generated, so that the teacher input data to the output layer (Nth layer) is generated. Will be done.
- the information processing apparatus 10 includes the teacher output data generation means 33B, it is possible to generate teacher output data for the outputs of all the intermediate layers of the neural network. Therefore, the teacher output data for the output of each layer of the NN can be obtained together with the teacher output data for the output of the output layer given as the teacher data set for the entire network. Since the input layer has no weight value as shown in the above-mentioned equation (1), the teacher output data for the output of the input layer is not required.
- the teacher output data generation means 33B since the teacher output data generation means 33B generates teacher output data for the output of each layer by an optimization process independent for each layer in a state where the weight value after initialization is fixed, the teacher output data. It is not necessary to perform iterative calculation at all, or even if iterative calculation is performed, local iterative calculation by optimization processing independent for each layer (in some cases, the calculation unit can be divided for each neuron). There is.) Therefore, the teacher output data generation process can be executed in a short time.
- the information processing apparatus 10 includes the weight value optimizing means 33D, the weight values of the output layer and all the intermediate layers are set for each layer by using the teacher output data generated by the teacher output data generation means 33B. It can be obtained by an independent local optimization process (in some cases, the calculation unit can be divided for each neuron in the calculation process in each layer). Therefore, even when the weight value is adjusted and determined, it is not necessary to perform the iterative calculation at all, or even if the iterative calculation is performed, the local iterative calculation (for each neuron) in the optimization process independent for each layer. In some cases, the calculation unit can be divided into.).
- the weight value of each layer is generated by the teacher output data generation means 33B to generate the teacher output data for the output of each layer, or by the weight value optimization means 33D using the teacher output data generated by the teacher output data generation means 33B. It is not necessary to perform iterative calculations at all for both of the situations where the adjustment is made, or local iterative calculations that remain in the layer (in the calculation process in each layer, the calculation unit may be divided for each neuron. ) Will be enough. Therefore, it is not necessary to perform iterative calculation over the entire network as in the conventional backpropagation method, so effective learning can be performed in a shorter time than in the past.
- the time required for learning does not depend on the number of iterations at all, or even if it does, local iterative calculations for each layer (in each layer).
- the calculation unit may be divided for each neuron.) It only depends on the number of repetitions. Therefore, it is possible to easily estimate the number of hours required for learning in advance.
- the teacher output data generated by the teacher output data generation means 33B is extracted to the outside of the neural network and distributed by a communication line 1 such as the Internet or a recording medium 90 such as a DVD or a USB memory. Therefore, it can be used for constructing a neural network constituting various systems.
- the equations of the error Ey (n) and / or the error Ew (n) are summed up as the equations (6) and (9) of FIG. 6, the equations (12) and the equations (15) of FIG. If the optimization process is performed by the least squares method, the formula for finding the optimal solution or a solution close to it becomes a simple formula, and the calculation time can be shortened.
- the calculation formula for the output of each layer includes the weighted sum S of the output values of the layers on the input side of the own layer, as in the above-mentioned equations (2) and (3), the output is output. Regardless of whether the value or the weight value is considered as a parameter, the expression of the linear combination is obtained for the parameter.
- both the optimization process by the teacher output data generation means 33B and the optimization process by the weight value optimization means 33D are performed. Since the optimization process is performed by the linear minimum square method, the formula for obtaining the optimum solution becomes simpler, the calculation time can be shortened, and the error can be reduced.
- the teacher output data generation means 33B executes the teacher output data normalization process, it is possible to stabilize the calculation of the inverse matrix when executing the optimization process. That is, if a large value of teacher output data is given at the time of calculation of the inverse matrix, the calculation may fail, but such a situation can be avoided.
- Example 1 (Experimental Example 1: FIGS. 13 to 16)
- the RND in the functions (B) and (D) is a uniform random number from 0 to 1.
- a set of (X1, X2) in which a uniform random number from 0 to 1 is applied to X1 and X2 is created in 1,000 records, and these are used as teacher input data.
- 1,000 records of the set of (Y1, Y2) obtained as a result of applying the function (A) to those (X1, X2) are prepared, and these are used as teacher output data.
- the above is all teacher data for the entire network.
- the network configuration information stored in the network configuration information storage means 42 in Experimental Example 1 is as shown in FIG.
- FIG. 15 shows the result (calculation time) of Experimental Example 1.
- the update rate of the error back propagation method was 0.001.
- the result of the error backpropagation method is a numerical value at the time when the weight has been updated 1000 times (1000 epochs). According to the results shown in FIG. 15, it can be seen that the method of the present invention has significantly less calculation time and less mean squared error (MSE) than the error backpropagation method.
- MSE mean squared error
- FIG. 16 is a graph showing how the error converges in the iterative calculation by the error back propagation method for the learning of the function (A). Also, for comparison, calculation errors by the method of the present invention are shown. According to the comparison result of FIG. 16, it can be seen that the method of the present invention has a shorter time and a smaller error, and the calculation result by the method of the present invention is very excellent.
- the specifications of the computers used in Experimental Example 1 and Experimental Examples 2 and 3 below are as follows.
- the CPU is Intel Core i9-8950HK (using only one core) (registered trademark)
- the main memory is 32GB
- the OS is Windows 10 (registered trademark)
- the compiler is Visual Studio 2019 (registered trademark).
- Example 2 (Experimental Example 2: FIGS. 17 and 18)
- the activation function f was changed to X2, and the same learning as in Experimental Example 1 described above was performed.
- the sigmoid function used in Experimental Example 1 is represented by the following equation (F-1), and the X2 function used in Experimental Example 2 is represented by the following equation (F-2).
- F-1 The sigmoid function used in Experimental Example 1
- F-2 the X2 function used in Experimental Example 2
- various functions other than these can be adopted as the activation function f.
- FIG. 18 shows the result (calculation time) of Experimental Example 2.
- learning failed and all the output values were nan (not a number), whereas in the method of the present invention, learning was successful.
- the weight value takes an extremely large value and cannot be restored.
- Example 3 FIGS. 19 to 23
- a data set for machine learning evaluation was obtained from the UCI Machine Learning Repository (https://archive.ics.uci.edu/ml/index.php) and the present invention was obtained. The method was evaluated.
- the number of neurons in the input layer and the number of neurons in the output layer are equal to the number of input dimensions and the number of output dimensions of each data set shown in FIG.
- the activation function f of the intermediate layer was a sigmoid function, and the activation function f of the output layer was Linear (no activation function).
- FIG. 21 shows the result of Experimental Example 3 (learning time [ms]). It is a value measured by c ++ stlchrono (registered trademark). For comparison, the method of the present invention, the error back propagation method (update rate 0.00001), and the error back propagation method (update rate 0.0001) were learned. According to the results shown in FIG. 21, it can be seen that the learning time by the method of the present invention is short.
- FIG. 22 shows the result (absolute value error) of Experimental Example 3.
- CNN Convolutional neural network
- CNN Convolutional Neural
- FIG. 24 shows the contents of the processing in the convolution layer c.
- the subscript c indicates the convolutional layer c, not the output layer.
- the subscript b indicates not the intermediate layer but the layer immediately before the convolution layer c.
- a weight matrix W which is a convolution matrix of 2 rows ⁇ 2 columns. This weight matrix W serves as a filter applied to the input image to the convolution layer c (the output image of the layer b immediately before the convolution layer c) while shifting the position by one pixel. Therefore, the output image of the convolution layer c can be obtained by the following output calculation formulas (E-1) to (E-4) shown in FIG. 24.
- Y C (1,1) W 11 Y b (1,1) + W 12 Y b (1,2) + W 21 Y b (2,1) + W 22 Y b (2,2)
- E-1) Y C (1,2) W 11 Y b (1,2) + W 12 Y b (1,3) + W 21 Y b (2,2) + W 22 Y b (2,3)
- E-2) Y C (2,1) W 11 Y b (2,1) + W 12 Y b (2,2) + W 21 Y b (3,1) + W 22 Y b (3,2)
- E-3) Y C (2,2) W 11 Y b (2,2) + W 12 Y b (2,3) + W 21 Y b (3,2) + W 22 Y b (3,3) (E-4)
- FIG. 25 shows the contents of the teacher output data generation process of CNN.
- the relationship between each pixel (i, j) of the input image to the convolution layer c (output image of the previous layer b) and each pixel (u, v) of the output image of the convolution layer c is generalized.
- the weight value can be expressed as W b (i, j) c (u, v) .
- W b (i, j) c (u, v) it becomes as shown in the equation (E-5) shown in FIG.
- the error Eye does not necessarily have to be defined by the sum of squares.
- Ey (1/2) ⁇ (u, v) ⁇ p ( ⁇ (i, j) Y b (i, j), p W b (i, j) c (u, v) -Yt c (u, v), p ) 2 ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ (E-5)
- the weight matrix W used in the processing of the convolution layer c is a filter used while shifting one pixel at a time, it determines all the coupling relationships between b (i, j) and c (u, v). is not. For example, in the example of FIG. 24, there is no bond between b (1,1) and c (1,2). Therefore, if there is no bond between b (i, j) and c (u, v), W b (i, j) c (u, v) takes a value of zero.
- weight matrix W is a filter used while shifting one pixel at a time, there are weight values having the same value in the combination of b (i, j) and c (u, v).
- W b (1,1) c (1,1) is W 11
- W b (1,2) c (1 , 2) is also W 11 , they are the same value. .. Therefore, it is necessary to perform weight replacement using the following equation (E-6) shown in FIG. 25.
- an equation of matrix expression such as the equation (E-8) shown at the bottom of FIG. 25 can be obtained.
- the vertical vector Yt in the center of the equation (E-8) is a set of the teacher output data to be obtained, and corresponds to the teacher output vector Yt (n-1; p) of the equation (11) of FIG. 7 of the above embodiment.
- the square matrix Q on the left side of the equation (E-8) corresponds to the teacher output generation matrix Q (n-1; n) of the equation (11) of FIG. 7 of the above embodiment. Since the number of elements of this square matrix Q is 9 pixels ⁇ 9 pixels, it is 81. Further, the vertical vector U on the right side of the equation (E-8) corresponds to the teacher output generation vector U (n-1; n; p) of the equation (11) of FIG. 7 of the above embodiment. The number of elements of this vertical vector U is 9, which is the same as the number of pixels.
- each element of the square matrix Q on the left side of the equation (E-8) and each element of the vertical vector U on the right side are set as zero.
- FIG. 26 shows the content of the weight value optimization process of the convolutional layer c of the CNN.
- the weight value W b (i, j) which generalizes the relationship between each pixel (i, j) and each pixel (u, v).
- the error Ew is described using c (u, v) , it becomes as shown in the equation (E-9) shown in FIG.
- the error Ew does not necessarily have to be defined by the sum of squares.
- Ew (1/2) ⁇ (u, v) ⁇ p ( ⁇ (i, j) Y b (i, j), p W b (i, j) c (u, v) -Yt c (u, v), p ) 2 ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ (E-9)
- Equation (E-11) an equation of matrix expression such as the equation (E-11) shown at the bottom of FIG. 26 can be obtained.
- the vertical vector W in the center of the equation (E-11) is a set of weight values to be obtained, and corresponds to the weight vector W (n-1; n, k) of the equation (17) of FIG. 9 of the embodiment.
- the square matrix R on the left side of the equation (E-11) corresponds to the weight optimization matrix R (n-1; p) of the equation (17) of FIG. 9 of the embodiment. Since the number of elements of this square matrix R is 4 pixels ⁇ 4 pixels, it is 16. Further, the vertical vector V on the right side of the equation (E-11) corresponds to the weight optimization vector V (n-1; n, k; p) of the equation (17) of FIG. 9 of the embodiment. The number of elements of this vertical vector V is 4, which is the same as the number of pixels.
- each element of the square matrix R on the left side of the equation (E-11) and each element of the vertical vector V on the right side are set as zero.
- the teacher output data Yt c (u, v), p (Yt c (1,1), p , Yt c (1 ) for the output image (2 ⁇ 2 pixels) of the folding layer c.
- FIG. 27 shows the contents of the learning process when the neural network is branched.
- each layer of the networks C and D on the output side is independently trained by performing the same processing as the teacher output data generation means 33B of the embodiment.
- Generate output data in the layer that is a branching node, consider a layer V2 in which neurons c1, c2, d1, and d2 constituting networks C and D are collectively and virtually connected.
- the networks A and B on the input side consider a layer V1 in which the neurons a1, a2, b1, and b2 constituting the networks A and B are collectively and virtually connected.
- the teacher output data is generated by performing the same processing as the teacher output data generation means 33B of the embodiment for the virtually coupled layers V2 and V1. Subsequently, the teacher output data is independently generated for each of the layers of the networks A and B on the input side by performing the same processing as the teacher output data generation means 33B of the embodiment.
- the calculation order of each layer is reversed and the same processing is performed.
- the multitasking NN for example, multitasking
- the information processing apparatus and the information processing method of the present invention and the program execute, for example, a learning process of adjusting and determining the weight value of each layer constituting the neural network by using the teacher data for the entire network.
- a learning process of adjusting and determining the weight value of each layer constituting the neural network by using the teacher data for the entire network.
- it is used when extracting the weight value obtained in this learning process or the teacher data generated in the process of executing the learning process, which is different from the teacher data for the entire network, and utilizing it in another system. Suitable for.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Feedback Control In General (AREA)
Abstract
短時間での効果的な学習、試行錯誤的な更新率の調整の手間の回避、学習時間の予測、誤差の低減を実現することができる情報処理装置および情報処理方法を提供する。 ニューラルネットワークの各層について、重み値記憶手段45に記憶された初期化後の重み値、および各層の出力に対する教師出力データを記憶する教師出力データ記憶手段49に記憶された自層の出力に対する教師出力データを用いて、自層の出力の誤差Eyについて、自層の入力側の層の出力値をパラメータとし、この誤差Eyを最小にするパラメータを求める最適化処理により、自層の入力側の層の出力値を求め、求めた出力値を、自層の入力側の層の出力に対する教師出力データとして教師出力データ記憶手段49に記憶させる教師出力データ生成手段33Bを設け、情報処理装置10を構成した。
Description
本発明は、ニューラルネットワークの重み調整を含む情報処理を実行するコンピュータにより構成された情報処理装置および情報処理方法、並びにプログラムに係り、例えば、ネットワーク全体に対する教師データを用いてニューラルネットワークを構成する各層の重み値を調整決定する学習処理を実行する場合、あるいは、この学習処理で得られた重み値や、学習処理の実行過程で生成された、ネットワーク全体に対する教師データとは異なる教師データを抽出し、他のシステムでの利活用を図る場合等に利用できる。
現存するニューラルネットワーク(以下、NNと略記することがある。)の重み調整方法の殆どは繰り返し計算によるものである。繰り返し計算による手法としては、例えば、誤差逆伝播法、共役勾配法、ニュートン法、準ニュートン法、レーベンバーグ・マルカートアルゴリズム(Levenberg-Marquardt algorithm)等がある。
一般に、ニューラルネットワークは、図3に示すような構成を備えている。このような構成は、本発明でも同様であり、図3の構成や符号は、本発明の説明でも使用する。図3の例では、ニューラルネットワークは、4つのニューロンa(1)~a(4)を備えた入力層aと、3つのニューロンb(1)~b(3)を備えた中間層bと、4つのニューロンc(1)~c(4)を備えた出力層cとにより構成されている。この例では、ネットワーク全体の層の数は、3層であるが、中間層bの数は複数でもよいので、ネットワーク全体では4層以上でもよい。各層のニューロン数も図示の例に限定されるものではない。このNNの入力層aのa(1)~a(4)に対し、Xa(1)~Xa(4)がそれぞれ入力されると、次の式(1)、式(2)、式(3)により、出力層cのc(1)~c(4)から、Yc(1)~Yc(4)がそれぞれ出力される。
Ya(i)=Xa(i) ・・・・・・・・・・・・・・・・・・・・・(1)
Yb(j)=f(ΣiWa(i)b(j)Ya(i)) ・・・・・・・・・・・・(2)
Yc(k)=f(ΣjWb(j)c(k)Yb(j)) ・・・・・・・・・・・・(3)
ここで、式(1)は、入力層aの出力Ya(i)の計算式であり、i=1~4は、入力層aのニューロンの番号であり、入力層aのニューロン数をMaとして一般化すると、i=1~Maとなる。また、式(2)は、中間層bの出力Yb(j)の計算式であり、j=1~3は、中間層bのニューロンの番号であり、中間層bのニューロン数をMbとして一般化すると、j=1~Mbとなる。Wa(i)b(j)は、中間層bの出力計算で用いられる重み値であり、入力層aのi番目のニューロンから中間層bのj番目のニューロンへの重み値である。さらに、式(3)は、出力層cの出力Yc(k)の計算式であり、k=1~4は、出力層cのニューロンの番号であり、出力層cのニューロン数をMcとして一般化すると、k=1~Mcとなる。Wb(j)c(k)は、出力層cの出力計算で用いられる重み値であり、中間層bのj番目のニューロンから出力層cのk番目のニューロンへの重み値である。そして、関数fは、活性化関数であり、一般にシグモイド関数等が用いられる。
ニューラルネットワークの学習処理では、図3に示すように、ネットワーク全体に対し、Xa(1)~Xa(4)に対応する教師入力データと、Yc(1)~Yc(4)に対応する教師出力データYtc(1)~Ytc(4)とからなる教師データセットを多数与えることで、重み値Wa(i)b(j)、Wb(j)c(k)を調整決定する。p=1~Mpは、教師データセットの番号であり、Mpは、与える教師データセットの数である。1つの教師データセットは、システム処理の観点から、本願では、教師データレコードまたは単にレコードと呼ぶことがある。これらの教師入力データXa(1),p~Xa(4),pおよび教師出力データYtc(1),p~Ytc(4),pは、すべてネットワーク全体に対する教師データ(teaching data)、すなわちNNの外部から与えられる教師データである。本発明では、教師データ(教師入力データ、教師出力データを含む。)という用語の概念は、ネットワーク全体に対する教師データ以外にも広がるが、この点は後述する。NNが、予測モデルであれば、教師入力データXa(1)~Xa(4)は、説明変数であり、教師出力データYtc(1)~Ytc(4)は、目的変数であり、これらの説明変数および目的変数は、例えば、実社会で収集された実測データや実験データ等である。教師出力データYtc(1)~Ytc(4)が理想出力とされているのは、ネットワーク全体の出力(すなわち、出力層cの出力)Yc(1)~Yc(4)を近づけたい値という意味である。
また、ニューラルネットワークの出力層cの重み値を1度の計算処理で最適化する手法としては最小二乗法が知られている。最小二乗法を簡単に説明すると、次のようになる。
S=ΣiWiYi=W1Y1+W2Y2+W3Y3+W4Y4+… ・・・・(4)
上記の式(4)は、Wiについての線形式である。最小二乗法は、この式(4)に対し、Yi(Y1,Y2,Y3,Y4,…)およびSt(理想値)からなる多数(Mp個)の教師データセットが与えられたとき、パラメータWi(W1,W2,W3,W4,…)の最適解を得る手法として用いることができる。最適解とは、式(4)に各Yiを代入して得られる出力値Sと、理想値Stとの残差の2乗和として定めた次の式(5)による誤差Eを最小にするパラメータWiの解である。ここで、教師データセット数は、Mpであるため、p=1~Mpを用いて、各YiはYi,pとし、出力値SはSpとし、理想値StはStpとする。
E=Σp(Stp-Sp)2=Σp(Stp-ΣiWiYi,p)2 ・・・・(5)
なお、最小二乗法は、ばらつきのある多数の測定値にモデル関数(理論式)を当て嵌めて解析する場合のフィッティング手法として広く用いられているが、この際、測定値と、モデル関数で計算される理論値との残差の2乗和として定めた誤差Eを最小にするモデル関数のパラメータを求める。このような解析を行う場合のモデル関数(理論式)は、前述した式(4)に相当し、測定値は、式(4)に与える教師データとしての理想値St(Mp個のSt)に相当し、モデル関数で計算される理論値は、式(4)に各Yiを代入して得られる出力値S(Mp個のS)に相当する。従って、本願の説明では、「理想値」という用語は、上記の解析用のフィッティングにおける「理論値」とは異なる立場(逆の立場)の用語として用いている。
また、最小二乗法は、最小にしようとする誤差の発生元となる計算式(この計算式は、誤差を定義する式のことではなく、誤差を定義する式の中に入っている式、すなわちフィッティングに用いるモデル関数に相当する式のことである。)が、パラメータに関して線形であれば、線形最小二乗法であり、パラメータに関して非線形であれば、非線形最小二乗法である。前述した式(4)は、各パラメータWi(W1,W2,W3,W4,…)の1次結合で表わされているので、前述した式(5)で定めた誤差Eを最小にするパラメータWiの最適解を得る最適化処理は、線形最小二乗法による最適化処理である。最小二乗法の線形・非線形の区別については、Yi(Y1,Y2,Y3,Y4,…)に関して線形であるか否かは関係ないので、最小にしようとする誤差の発生元の計算式(前述した式(4)に相当する計算式)が、例えば、Yiの高次関数、正弦(sin)関数、余弦(cos)関数、指数関数、対数関数等を含む複雑な計算式であっても、各パラメータWi(W1,W2,W3,W4,…)に関して線形であれば、線形最小二乗法である。なお、統計学における回帰分析では、Yiに関して非線形となっている計算式を当て嵌める場合は、非線形回帰分析と呼ばれるので、最小二乗法の線形・非線形の定義とは異なっている。本発明では、最小二乗法を適用する場合は、線形最小二乗法、非線形最小二乗法のいずれを適用することもでき、また、最小にしようとする誤差は、必ずしも二乗和誤差として定義する必要はないので、誤差を最小にする最適化処理は、最小二乗法以外の方法による最適化処理でもよく、さらに、同様の計算式においてパラメータを入れ替えて最適化処理を実行するが(すなわち、Yiがパラメータになる処理と、Wiがパラメータになる処理とがあるが)、これらの詳細については後述し、ここでは用語の定義と説明に留めるものとする。
また、本発明は、ニューラルネットワークに関する技術であるが、ニューラルネットワークの応用技術としては、ニューラルネットワークに画像処理方法を訓練させる方法が知られている(特許文献1参照)。しかし、この方法は、ニューラルネットワークを1つのパッケージとして、そのパッケージを複数組み合わせる組み合わせ方法であるから、ニューラルネットワーク内部の計算処理方法に関する本発明とは発明の分野が異なるものである。
また、ニューラルネットワーク内部の計算処理に言及している文献として、ニューラルネットワークの新しい訓練方法について記述した文献が知られている(特許文献2参照)。しかし、訓練には繰り返し計算(イタレーション)を用いているので、繰り返し計算を必要としない本発明とは異なる。また、この文献では、「最適化層」を導入することで、特定の層で情報の最適化を行う手法を提案しているが、全ての層で重み値の最適化を実行することができる本発明とは異なる。
さらに、ニューラルネットワーク内部の計算処理に関する技術として、ニューラルネットワークのハイパーパラメータ(更新率を含む)を調整する手法が知られている(特許文献3参照)。しかし、この手法は、ニューラルネットワークが繰り返し計算を行うことを前提としているので、繰り返し計算や更新率を使わずにニューラルネットワークの重み値を調整できる本発明とは異なる。
また、その他にも、ニューラルネットワーク内部の計算処理に言及しているが、繰り返し計算を前提としている文献が知られている(特許文献4、非特許文献1,2参照)。いずれも繰り返し計算を前提としているので、繰り返し計算を用いることなく学習処理を行うことができる本発明とは異なる。
さらに、ニューラルネットワーク全体の訓練データを生成するための手法として、修正教師データを作成する手法(特許文献5参照)、類似画像の生成を通じて画像処理用ニューラルネットワークへの訓練データを生成する手法(特許文献6参照)が知られている。しかし、これらの手法では、生成される訓練データは中間層を個別に訓練するためのものではないため、生成する訓練データの用途が本発明とは異なる。
また、教師データレコードを1レコードのみに限定したうえで効果的な学習を行う学習の枠組み全般を指す「ワンショットラーニング」という用語があるが、具体的な学習手法を定義する用語ではなく、学習時間や学習効果の向上を図る本発明とは、内容が異なるものである。
Martin Riedmiller and Heinrich Braun, "A Direct Adaptive Method for Faster Backpropagation Learning: The RPROP Algorithm," IEEE Conf. on Neural Networks, (1993)
Yunlong Yu and Fuxian Liu, "Effective Neural Network Training With a New Weighting Mechanism-Based Optimization Algorithm," IEEE Access, (2019)
前述した従来の誤差逆伝播法等による繰り返し計算を行うニューラルネットワークの学習処理では、学習時間が長時間になる、繰り返し計算で必要となる更新率を試行錯誤的に調整するので手間がかかる、学習に要する時間が繰り返し数に依存するので必要な時間数を予め見積もることが困難であるといった問題があった。
また、既存の学習方法では、f(x)=x2等といった特定の活性化関数を用いた場合、重み調整を行ってもニューラルネットワークの出力値に大きな誤差が生じるという問題もあった。
さらに、前述したように、ニューラルネットワークの出力層cの重み値を1度の計算処理で最適化する手法としては最小二乗法が知られている。しかし、中間層bの重み値を最適化することができない。仮に、出力層cの重み値と、中間層bの重み値(複数の中間層bがある場合には、全ての中間層bの重み値)とを、最小二乗法による同じアルゴリズムで求めるとすると、前述した式(4)および式(5)を用いた説明の如く、各層において、式(4)に相当する計算式(各層の出力計算式に含まれる活性化関数f(…)のカッコ内に記載された計算式、すなわち活性化関数へ入力する値を計算する計算式であり、以下、「活性化関数入力値計算式」という。)に対し、最小二乗法を適用することになる。従って、各層について、活性化関数入力値計算式を学習するための多数の教師データセット(教師入力データおよび教師出力データ)が必要となる。ここで、出力層cの重み値とは、中間層bのj番目のニューロンから出力層cのk番目のニューロンへの重み値Wb(j)c(k)のことであり、中間層bの重み値とは、入力層aのi番目のニューロンから中間層bのj番目のニューロンへの重み値Wa(i)b(j)、または複数の中間層b(b1,b2)がある場合には、自層の入力側の中間層b1のニューロンから自層である中間層b2のニューロンへの重み値Wb1(i)b2(j)のことである。
ところが、図3のようにネットワーク全体(NN全体)に対する教師データが与えられても、各層について必要な教師データセット(教師入力データおよび教師出力データ)の全てが得られるわけではない。すなわち、NN全体に対する教師入力データは、入力層aへの入力Xa(i)となるので、前述した式(1)に代入すれば、入力層aから2番目の層である中間層bへの教師入力データYa(i)を得ることができる。しかし、3番目以降の層である中間層bや出力層cへの教師入力データを得ることはできない。また、NN全体に対する教師出力データYtc(k)(図3参照)は、出力層cの出力Yc(k)に対する教師出力データとして与えられるが、このYtc(k)を前述した式(3)の活性化関数fの逆関数f-1に入力し、f-1(Ytc(k))とすれば、このf-1(Ytc(k))は、出力層cの出力計算式である式(3)に含まれる活性化関数入力値計算式(ΣjWb(j)c(k)Yb(j))に対する教師出力データとなる。しかし、中間層bの出力計算式に含まれる活性化関数入力値計算式に対する教師出力データを得ることはできない。ここで、中間層bの出力計算式に含まれる活性化関数入力値計算式は、前述した式(2)に含まれるΣiWa(i)b(j)Ya(i)、または複数の中間層b(b1,b2)がある場合におけるΣiWb1(i)b2(j)Yb1(i)であり、これらに対する教師出力データが得られない。
以上より、出力層cの重み値および全ての中間層bの重み値について、最小二乗法による最適化処理を行って最適解を得ることは困難であった。
本発明の目的は、短時間での効果的な学習、試行錯誤的な更新率の調整の手間の回避、学習時間の予測、誤差の低減を実現することができる情報処理装置および情報処理方法、並びにプログラムを提供するところにある。
<情報処理装置の発明>
本発明は、ニューラルネットワークによる重み調整を含む情報処理を実行するコンピュータにより構成された情報処理装置であって、
ニューラルネットワークを構成する各層の重み値を記憶する重み値記憶手段と、
ネットワーク全体に対する教師データセットのうちの出力層の出力に対する教師出力データを含む各層の出力に対する教師出力データを記憶する教師出力データ記憶手段と、
各層について、重み値記憶手段に記憶された初期化後の重み値、および教師出力データ記憶手段に記憶された自層の出力に対する教師出力データを用いて、自層の入力側の層の出力に対する教師出力データを生成し、生成した入力側の層の出力に対する教師出力データを教師出力データ記憶手段に記憶させる教師出力データ生成処理を実行する教師出力データ生成手段とを備え、
この教師出力データ生成手段は、
ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、出力層の番号をNで示したとき、n=Nからn=3までnを1ずつ減らしながら、
教師出力データ記憶手段に記憶されたn番目の層の出力に対する教師出力データと、重み値記憶手段に記憶された初期化後の重み値のうちの(n-1)番目の層からn番目の層への重み値とを用いて、
(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Eyについて、(n-1)番目の層の出力値をパラメータとし、この誤差Eyを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層の出力値を求め、求めた(n-1)番目の層の出力値を、(n-1)番目の層の出力に対する教師出力データとして教師出力データ記憶手段に記憶させる処理を実行する構成とされている
ことを特徴とするものである。
ニューラルネットワークを構成する各層の重み値を記憶する重み値記憶手段と、
ネットワーク全体に対する教師データセットのうちの出力層の出力に対する教師出力データを含む各層の出力に対する教師出力データを記憶する教師出力データ記憶手段と、
各層について、重み値記憶手段に記憶された初期化後の重み値、および教師出力データ記憶手段に記憶された自層の出力に対する教師出力データを用いて、自層の入力側の層の出力に対する教師出力データを生成し、生成した入力側の層の出力に対する教師出力データを教師出力データ記憶手段に記憶させる教師出力データ生成処理を実行する教師出力データ生成手段とを備え、
この教師出力データ生成手段は、
ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、出力層の番号をNで示したとき、n=Nからn=3までnを1ずつ減らしながら、
教師出力データ記憶手段に記憶されたn番目の層の出力に対する教師出力データと、重み値記憶手段に記憶された初期化後の重み値のうちの(n-1)番目の層からn番目の層への重み値とを用いて、
(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Eyについて、(n-1)番目の層の出力値をパラメータとし、この誤差Eyを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層の出力値を求め、求めた(n-1)番目の層の出力値を、(n-1)番目の層の出力に対する教師出力データとして教師出力データ記憶手段に記憶させる処理を実行する構成とされている
ことを特徴とするものである。
ここで、「初期化後の重み値」には、乱数等により自動生成された重み値、稼働中のシステムの更新前の重み値、同一または類似のネットワーク構成を有するシステムで使用されているか若しくは使用されていた重み値、あるいはこれらの組合せ等が含まれる。
また、「n=Nからn=3までnを1ずつ減らしながら」の「n=3まで」とは、(n-1)番目の層が2番目の層になるまでという意味であり、2番目の層の出力に対する教師出力データまで求める趣旨である。
さらに、「誤差Ey」は、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式による計算値と、n番目の層の出力に対する教師出力データとを用いて定めた誤差Eyでもよく、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データを活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Eyでもよい。
このような本発明の情報処理装置においては、教師出力データ生成手段を備えているので、ニューラルネットワークの全ての中間層の出力に対する教師出力データを生成することができるため、ネットワーク全体に対する教師データセットとして与えられる出力層の出力に対する教師出力データと合わせ、ニューラルネットワークの各層の出力に対する教師出力データが得られる。なお、前述した式(1)に示すように入力層には重み値はないので、入力層の出力に対する教師出力データは必要ない。
この際、教師出力データ生成手段は、初期化後の重み値を固定した状態で、各層について、層毎に独立した最適化処理により、各層の出力に対する教師出力データを生成するので、教師出力データの生成にあたり、繰り返し計算を全く行う必要がないか、または、繰り返し計算を行ったとしても、層毎に独立した最適化処理での局所的な繰り返し計算(各層内の計算処理において、ニューロン毎に計算単位を分割できる場合もある。)となる。
また、教師出力データ生成手段により各層の出力に対する教師出力データが得られるので、得られた各層の出力に対する教師出力データを用いて、各層について、層毎に独立した最適化処理により各層の重み値を調整決定することが可能となる。このため、重み値を調整決定する場面でも、繰り返し計算を全く行う必要がなくなるか、または、繰り返し計算を行ったとしても、層毎に独立した最適化処理での局所的な繰り返し計算(各層内の計算処理において、ニューロン毎に計算単位を分割できる場合もある。)となる。
従って、教師出力データ生成手段により各層の出力に対する教師出力データを生成する場面、あるいは、得られた教師出力データを用いて各層の重み値を調整決定する場面の双方について、繰り返し計算を全く行う必要がなくなるか、または、層内に留まる局所的な繰り返し計算(ニューロン毎に計算単位を分割できる場合もある。)で済むようになる。このため、従来の誤差逆伝播法等のようなネットワーク全体に渡る繰り返し計算を行う必要はないので、従来に比べ、短時間での効果的な学習が可能となる。
但し、ここでは、説明の便宜上、得られた教師出力データを用いて重み値を調整決定する場面に言及しているが、得られた教師出力データの外部での利活用を前提とすれば、本発明の情報処理装置は、必ずしも重み値の調整決定まで実行する構成とする必要はなく、教師出力データの生成までで処理を終了する装置としてもよい。この場合でも、本発明の情報処理装置は、教師出力データ生成処理を短時間で完了させることができ、また、本発明の情報処理装置で生成した教師出力データを外部のシステムで利用すれば、外部のシステムにおいて、短時間での効果的な重み値の調整決定処理を実現することができる。
また、繰り返し計算を行う場合は、繰り返し計算で必要となる更新率を試行錯誤しながら調整する手間がかかるが、本発明では、少なくともネットワーク全体に渡って行われる繰り返し計算で必要となる更新率について、その値を試行錯誤しながら調整する手間を回避することが可能となるので、学習時の作業者の手間が軽減される。
さらに、少なくともネットワーク全体に渡って行われる繰り返し計算を回避することができるので、学習に要する時間が繰り返し数に全く依存しないか、または依存したとしても層毎の局所的な繰り返し計算(ニューロン毎に計算単位を分割できる場合もある。)での繰り返し数に依存するだけとなる。このため、学習に必要な時間数を予め見積もり易くなる。
また、既存の学習方法では、f(x)=x2等といった特定の活性化関数を用いた場合、重み調整を行ってもニューラルネットワークの出力値に大きな誤差が生じるという問題があったが、本発明では、全ての層を層毎の最適化処理で学習することが可能であるため、活性化関数の種類によらずに誤差を低減することが可能となる。
さらに、生成した教師出力データは、ニューラルネットワークの外部に抽出し、インターネット等の通信回線、またはDVDやUSBメモリ等の記録媒体により流通させることが可能であるため、各種システムを構成するニューラルネットワークの構築に利用することができ、これらにより前記目的が達成される。
(教師出力データ生成手段により最小二乗法による最適化処理を実行する構成)
また、前述した情報処理装置において、
教師出力データ生成手段は、
誤差Eyを、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを活性化関数の逆関数に入力して得られる値との差の二乗和を含む式で定め、この二乗和による誤差Eyを、パラメータとしての(n-1)番目の層の出力値で偏微分した式をゼロと置くことにより、二乗和による誤差Eyを最小にするパラメータを求める最小二乗法による最適化処理を実行する構成とされていることが望ましい。
また、前述した情報処理装置において、
教師出力データ生成手段は、
誤差Eyを、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを活性化関数の逆関数に入力して得られる値との差の二乗和を含む式で定め、この二乗和による誤差Eyを、パラメータとしての(n-1)番目の層の出力値で偏微分した式をゼロと置くことにより、二乗和による誤差Eyを最小にするパラメータを求める最小二乗法による最適化処理を実行する構成とされていることが望ましい。
ここで、「最小二乗法」は、線形最小二乗法でも、非線形最小二乗法でもよい。すなわち、「(n-1)番目の層の出力値を用いたn番目の層の出力の計算式」またはこの計算式に活性化関数が含まれる場合の「活性化関数入力値計算式」が、パラメータ(ここでは、重み値ではなく、出力値がパラメータとなっている。)について1次結合で表されている場合は、線形最小二乗法であり、それ以外の場合は、非線形最小二乗法である。
このように最小二乗法による最適化処理を行う構成とした場合には、最適解またはそれに近い解を求める式が簡易な式になり、計算時間が短くなる。特に、前述した式(2)、式(3)のように、各層の出力の計算式が、自層の入力側の層の出力値の重み付き和Sを含む式である場合には、パラメータ(ここでは、出力値)について1次結合となるので、線形最小二乗法による最適化処理となることから、最適解を求める式が、より簡易になり、計算時間が、より短くなるとともに、誤差も小さくなる。
(教師出力データ生成手段により教師出力データ正規化処理を実行する構成)
さらに、前述した情報処理装置において、
教師出力データ生成手段は、
最適化処理を実行する前に、教師出力データ記憶手段に記憶された教師出力データのうち、最適化処理を実行する処理対象層の各ニューロンからの出力に対する全ての教師出力データが、処理対象層の活性化関数の出力可能な範囲に収まるようにすることを前提として、
処理対象層の各ニューロンからの出力に対する全ての教師出力データを、これらの全ての教師出力データのうちの最大絶対値で除することにより、全ての教師出力データを-1から1までの範囲内にするか、
または、処理対象層の各ニューロンからの出力に対する全ての教師出力データの絶対値が、これらの教師出力データに適用する実数型データのフォーマットに応じて予め定めた閾値内に収まるように、全ての教師出力データを同一の値で除する教師出力データ正規化処理を実行する構成とされていることが望ましい。
さらに、前述した情報処理装置において、
教師出力データ生成手段は、
最適化処理を実行する前に、教師出力データ記憶手段に記憶された教師出力データのうち、最適化処理を実行する処理対象層の各ニューロンからの出力に対する全ての教師出力データが、処理対象層の活性化関数の出力可能な範囲に収まるようにすることを前提として、
処理対象層の各ニューロンからの出力に対する全ての教師出力データを、これらの全ての教師出力データのうちの最大絶対値で除することにより、全ての教師出力データを-1から1までの範囲内にするか、
または、処理対象層の各ニューロンからの出力に対する全ての教師出力データの絶対値が、これらの教師出力データに適用する実数型データのフォーマットに応じて予め定めた閾値内に収まるように、全ての教師出力データを同一の値で除する教師出力データ正規化処理を実行する構成とされていることが望ましい。
このように教師出力データ生成手段により教師出力データ正規化処理を実行する構成とした場合には、最適化処理を実行する際に、逆行列の計算を安定させることができる。すなわち、逆行列の計算時に、大きな値の教師出力データが与えられると、計算に失敗することがあるが、そのような事態を回避することができる。
(重み値最適化手段を備えた構成)
以上に述べた情報処理装置において、
ネットワーク全体に対する教師データセットのうちの入力層への入力に対する教師入力データを含む各層への入力に対する教師入力データを記憶する教師入力データ記憶手段と、
各層について、教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データ、および教師出力データ記憶手段に記憶にされた自層の出力に対する教師出力データを用いて、自層の入力側の層から自層への重み値を調整決定し、決定した重み値を重み値記憶手段に記憶させる重み値最適化処理を実行し、その後、この重み値最適化処理により決定した自層の入力側の層から自層への重み値、および教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データを用いて、自層の出力値を算出し、算出した自層の出力値を、自層の出力側の層への教師入力データとして教師入力データ記憶手段に記憶させる教師入力データ生成処理を実行する重み値最適化手段とを備え、
この重み値最適化手段は、
ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、自層の出力側の層の番号を(n+1)、出力層の番号をNで示したとき、n=2からnを1ずつ増やしながら、
重み値最適化処理として、
教師入力データ記憶手段に記憶された(n-1)番目の層からn番目の層への教師入力データ、および教師出力データ記憶手段に記憶にされたn番目の層の出力に対する教師出力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Ewについて、(n-1)番目の層からn番目の層への重み値をパラメータとし、この誤差Ewを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層からn番目の層への重み値を求め、求めた重み値を重み値記憶手段に記憶させる処理を実行し、
その後、教師入力データ生成処理として、
重み値最適化処理により決定した(n-1)番目の層からn番目の層への重み値、および教師入力データ記憶手段に記憶された(n-1)番目の層からn番目の層への教師入力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式に、(n-1)番目の層からn番目の層への教師入力データを入力することにより、n番目の層の出力値を算出し、算出したn番目の層の出力値を、(n+1)番目の層への教師入力データとして教師入力データ記憶手段に記憶させる処理を実行する構成とされていることが望ましい。
以上に述べた情報処理装置において、
ネットワーク全体に対する教師データセットのうちの入力層への入力に対する教師入力データを含む各層への入力に対する教師入力データを記憶する教師入力データ記憶手段と、
各層について、教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データ、および教師出力データ記憶手段に記憶にされた自層の出力に対する教師出力データを用いて、自層の入力側の層から自層への重み値を調整決定し、決定した重み値を重み値記憶手段に記憶させる重み値最適化処理を実行し、その後、この重み値最適化処理により決定した自層の入力側の層から自層への重み値、および教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データを用いて、自層の出力値を算出し、算出した自層の出力値を、自層の出力側の層への教師入力データとして教師入力データ記憶手段に記憶させる教師入力データ生成処理を実行する重み値最適化手段とを備え、
この重み値最適化手段は、
ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、自層の出力側の層の番号を(n+1)、出力層の番号をNで示したとき、n=2からnを1ずつ増やしながら、
重み値最適化処理として、
教師入力データ記憶手段に記憶された(n-1)番目の層からn番目の層への教師入力データ、および教師出力データ記憶手段に記憶にされたn番目の層の出力に対する教師出力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Ewについて、(n-1)番目の層からn番目の層への重み値をパラメータとし、この誤差Ewを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層からn番目の層への重み値を求め、求めた重み値を重み値記憶手段に記憶させる処理を実行し、
その後、教師入力データ生成処理として、
重み値最適化処理により決定した(n-1)番目の層からn番目の層への重み値、および教師入力データ記憶手段に記憶された(n-1)番目の層からn番目の層への教師入力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式に、(n-1)番目の層からn番目の層への教師入力データを入力することにより、n番目の層の出力値を算出し、算出したn番目の層の出力値を、(n+1)番目の層への教師入力データとして教師入力データ記憶手段に記憶させる処理を実行する構成とされていることが望ましい。
ここで、「n=2からnを1ずつ増やしながら」として、処理を終了する層を定めていないのは、必ずしもn=2からn=Nまでの全ての処理を実行する必要はなく、途中の層までの処理としてもよい趣旨である。例えば、中間層の出力を抽出し、他のシステムで利用する場合には、重み値最適化処理は、必ずしもn=2からn=Nまでの全てについて実行する必要はなく、途中の層までの処理としてもよく、これに合わせ、教師入力データ生成処理も、途中の層までの処理としてもよい。
なお、重み値最適化処理は、ニューラルネットワークの全ての層の重み値を調整決定する場合には、n=2からn=Nまでnを1ずつ増やしながら実行する。一方、教師入力データ生成処理は、n=2からn=Nまでnを1ずつ増やしながら実行すると、最後のn=Nの処理(出力層の処理)では、存在しない(N+1)番目の層への教師入力データを生成することになるので、この生成を回避するため、通常は、n=2からn=(N-1)までnを1ずつ増やしながら実行すればよい。
このように重み値最適化手段を備えた構成とした場合には、出力層および全ての中間層の重み値を、層毎に独立した局所的な最適化処理(ニューロン毎に計算単位を分割できる場合もある。)で求めることができる。このため、前述したように、短時間での効果的な学習、試行錯誤的な更新率の調整の手間の回避、学習時間の予測、誤差の低減を実現することができる。
(重み値最適化手段により最小二乗法による最適化処理を実行する構成)
また、上述した重み値最適化手段を備えた構成とした場合において、
重み値最適化手段は、
重み値最適化処理として、誤差Ewを、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを活性化関数の逆関数に入力して得られる値との差の二乗和を含む式で定め、この二乗和による誤差Ewを、パラメータとしての(n-1)番目の層からn番目の層への重み値で偏微分した式をゼロと置くことにより、二乗和による誤差Ewを最小にするパラメータを求める最小二乗法による最適化処理を実行する構成とされていることが望ましい。
また、上述した重み値最適化手段を備えた構成とした場合において、
重み値最適化手段は、
重み値最適化処理として、誤差Ewを、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを活性化関数の逆関数に入力して得られる値との差の二乗和を含む式で定め、この二乗和による誤差Ewを、パラメータとしての(n-1)番目の層からn番目の層への重み値で偏微分した式をゼロと置くことにより、二乗和による誤差Ewを最小にするパラメータを求める最小二乗法による最適化処理を実行する構成とされていることが望ましい。
ここで、「最小二乗法」は、線形最小二乗法でも、非線形最小二乗法でもよい。すなわち、「(n-1)番目の層の出力値を用いたn番目の層の出力の計算式」またはこの計算式に活性化関数が含まれる場合の「活性化関数入力値計算式」が、パラメータ(ここでは、出力値ではなく、重み値がパラメータとなっている。)について1次結合で表されている場合は、線形最小二乗法であり、それ以外の場合は、非線形最小二乗法である。
このように最小二乗法による最適化処理を行う構成とした場合には、最適解またはそれに近い解を求める式が簡易な式になり、計算時間が短くなる。特に、前述した式(2)、式(3)のように、各層の出力の計算式が、自層の入力側の層の出力値の重み付き和Sを含む式である場合には、パラメータ(ここでは、重み値)について1次結合となるので、線形最小二乗法による最適化処理となることから、最適解を求める式が、より簡易になり、計算時間が、より短くなるとともに、誤差も小さくなる。
<情報処理方法の発明>
また、以下に述べる本発明の情報処理方法では、以上に述べた本発明の情報処理装置で得られる作用・効果がそのまま得られ、これにより前記目的が達成される。
すなわち、本発明は、ニューラルネットワークによる重み調整を含む情報処理をコンピュータにより実行する情報処理方法であって、
ニューラルネットワークを構成する各層の重み値を記憶する重み値記憶手段と、
ネットワーク全体に対する教師データセットのうちの出力層の出力に対する教師出力データを含む各層の出力に対する教師出力データを記憶する教師出力データ記憶手段とを設けておき、
教師出力データ生成手段が、各層について、重み値記憶手段に記憶された初期化後の重み値、および教師出力データ記憶手段に記憶された自層の出力に対する教師出力データを用いて、自層の入力側の層の出力に対する教師出力データを生成し、生成した入力側の層の出力に対する教師出力データを教師出力データ記憶手段に記憶させる教師出力データ生成処理を実行し、
この際、教師出力データ生成手段は、
ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、出力層の番号をNで示したとき、n=Nからn=3までnを1ずつ減らしながら、
教師出力データ記憶手段に記憶されたn番目の層の出力に対する教師出力データと、重み値記憶手段に記憶された初期化後の重み値のうちの(n-1)番目の層からn番目の層への重み値とを用いて、
(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Eyについて、(n-1)番目の層の出力値をパラメータとし、この誤差Eyを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層の出力値を求め、求めた(n-1)番目の層の出力値を、(n-1)番目の層の出力に対する教師出力データとして教師出力データ記憶手段に記憶させる処理を実行する
ことを特徴とするものである。
ニューラルネットワークを構成する各層の重み値を記憶する重み値記憶手段と、
ネットワーク全体に対する教師データセットのうちの出力層の出力に対する教師出力データを含む各層の出力に対する教師出力データを記憶する教師出力データ記憶手段とを設けておき、
教師出力データ生成手段が、各層について、重み値記憶手段に記憶された初期化後の重み値、および教師出力データ記憶手段に記憶された自層の出力に対する教師出力データを用いて、自層の入力側の層の出力に対する教師出力データを生成し、生成した入力側の層の出力に対する教師出力データを教師出力データ記憶手段に記憶させる教師出力データ生成処理を実行し、
この際、教師出力データ生成手段は、
ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、出力層の番号をNで示したとき、n=Nからn=3までnを1ずつ減らしながら、
教師出力データ記憶手段に記憶されたn番目の層の出力に対する教師出力データと、重み値記憶手段に記憶された初期化後の重み値のうちの(n-1)番目の層からn番目の層への重み値とを用いて、
(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Eyについて、(n-1)番目の層の出力値をパラメータとし、この誤差Eyを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層の出力値を求め、求めた(n-1)番目の層の出力値を、(n-1)番目の層の出力に対する教師出力データとして教師出力データ記憶手段に記憶させる処理を実行する
ことを特徴とするものである。
ここで、教師出力データ生成手段が、最小二乗法による最適化処理や、教師出力データ正規化処理を実行してもよいのは、前述した情報処理装置の場合と同様である。
(重み値最適化手段が、重み値最適化処理、教師入力データ生成処理を実行する場合)
また、上述した情報処理方法において、
ネットワーク全体に対する教師データセットのうちの入力層への入力に対する教師入力データを含む各層への入力に対する教師入力データを記憶する教師入力データ記憶手段を設けておき、
重み値最適化手段が、各層について、教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データ、および教師出力データ記憶手段に記憶にされた自層の出力に対する教師出力データを用いて、自層の入力側の層から自層への重み値を調整決定し、決定した重み値を重み値記憶手段に記憶させる重み値最適化処理を実行し、その後、この重み値最適化処理により決定した自層の入力側の層から自層への重み値、および教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データを用いて、自層の出力値を算出し、算出した自層の出力値を、自層の出力側の層への教師入力データとして教師入力データ記憶手段に記憶させる教師入力データ生成処理を実行し、
この際、重み値最適化手段は、
ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、自層の出力側の層の番号を(n+1)、出力層の番号をNで示したとき、n=2からnを1ずつ増やしながら、
重み値最適化処理として、
教師入力データ記憶手段に記憶された(n-1)番目の層からn番目の層への教師入力データ、および教師出力データ記憶手段に記憶にされたn番目の層の出力に対する教師出力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Ewについて、(n-1)番目の層からn番目の層への重み値をパラメータとし、この誤差Ewを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層からn番目の層への重み値を求め、求めた重み値を重み値記憶手段に記憶させる処理を実行し、
その後、教師入力データ生成処理として、
重み値最適化処理により決定した(n-1)番目の層からn番目の層への重み値、および教師入力データ記憶手段に記憶された(n-1)番目の層からn番目の層への教師入力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式に、(n-1)番目の層からn番目の層への教師入力データを入力することにより、n番目の層の出力値を算出し、算出したn番目の層の出力値を、(n+1)番目の層への教師入力データとして教師入力データ記憶手段に記憶させる処理を実行することが望ましい。
また、上述した情報処理方法において、
ネットワーク全体に対する教師データセットのうちの入力層への入力に対する教師入力データを含む各層への入力に対する教師入力データを記憶する教師入力データ記憶手段を設けておき、
重み値最適化手段が、各層について、教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データ、および教師出力データ記憶手段に記憶にされた自層の出力に対する教師出力データを用いて、自層の入力側の層から自層への重み値を調整決定し、決定した重み値を重み値記憶手段に記憶させる重み値最適化処理を実行し、その後、この重み値最適化処理により決定した自層の入力側の層から自層への重み値、および教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データを用いて、自層の出力値を算出し、算出した自層の出力値を、自層の出力側の層への教師入力データとして教師入力データ記憶手段に記憶させる教師入力データ生成処理を実行し、
この際、重み値最適化手段は、
ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、自層の出力側の層の番号を(n+1)、出力層の番号をNで示したとき、n=2からnを1ずつ増やしながら、
重み値最適化処理として、
教師入力データ記憶手段に記憶された(n-1)番目の層からn番目の層への教師入力データ、および教師出力データ記憶手段に記憶にされたn番目の層の出力に対する教師出力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Ewについて、(n-1)番目の層からn番目の層への重み値をパラメータとし、この誤差Ewを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層からn番目の層への重み値を求め、求めた重み値を重み値記憶手段に記憶させる処理を実行し、
その後、教師入力データ生成処理として、
重み値最適化処理により決定した(n-1)番目の層からn番目の層への重み値、および教師入力データ記憶手段に記憶された(n-1)番目の層からn番目の層への教師入力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式に、(n-1)番目の層からn番目の層への教師入力データを入力することにより、n番目の層の出力値を算出し、算出したn番目の層の出力値を、(n+1)番目の層への教師入力データとして教師入力データ記憶手段に記憶させる処理を実行することが望ましい。
ここで、重み値最適化手段が、最小二乗法による最適化処理を実行してもよいのは、前述した情報処理装置の場合と同様である。
<プログラムの発明>
また、本発明のプログラムは、以上に述べた情報処理装置として、コンピュータを機能させるためのものである。
なお、上記のプログラムまたはその一部は、例えば、光磁気ディスク(MO)、コンパクトディスク(CD)、デジタル・バーサタイル・ディスク(DVD)、フレキシブルディスク(FD)、磁気テープ、読出し専用メモリ(ROM)、電気的消去および書換可能な読出し専用メモリ(EEPROM)、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、フラッシュディスク等の記録媒体に記録して保存や流通等させることが可能であるとともに、例えば、LAN、MAN、WAN、インターネット、イントラネット、エクストラネット等の有線ネットワーク、あるいは無線通信ネットワーク、さらにはこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に載せて搬送することも可能である。さらに、上記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
<本発明の情報処理装置を別の表現で記述した場合>
本発明の情報処理装置を別の表現で記述すると、次のようになる。
すなわち、本発明は、ニューラルネットワークによる重み調整を含む情報処理を実行するコンピュータにより構成された情報処理装置であって、
ニューラルネットワークを構成する各層の重み値を記憶する重み値記憶手段と、
ネットワーク全体に対する教師データセットのうちの出力層の出力に対する教師出力データを含む各層の出力に対する教師出力データを記憶する教師出力データ記憶手段と、
各層について、重み値記憶手段に記憶された初期化後の重み値、および教師出力データ記憶手段に記憶された自層の出力に対する教師出力データを用いて、自層の重み値および自層の入力側の層の出力値、並びに自層の出力に対する教師出力データを含む式で定められた自層の出力の誤差Eyについて、自層の入力側の層の出力値をパラメータとし、この誤差Eyを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として自層の入力側の層の出力値を求め、求めた出力値を、自層の入力側の層の出力に対する教師出力データとして教師出力データ記憶手段に記憶させる教師出力データ生成処理を実行する教師出力データ生成手段と
を備えたことを特徴とするものである。
すなわち、本発明は、ニューラルネットワークによる重み調整を含む情報処理を実行するコンピュータにより構成された情報処理装置であって、
ニューラルネットワークを構成する各層の重み値を記憶する重み値記憶手段と、
ネットワーク全体に対する教師データセットのうちの出力層の出力に対する教師出力データを含む各層の出力に対する教師出力データを記憶する教師出力データ記憶手段と、
各層について、重み値記憶手段に記憶された初期化後の重み値、および教師出力データ記憶手段に記憶された自層の出力に対する教師出力データを用いて、自層の重み値および自層の入力側の層の出力値、並びに自層の出力に対する教師出力データを含む式で定められた自層の出力の誤差Eyについて、自層の入力側の層の出力値をパラメータとし、この誤差Eyを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として自層の入力側の層の出力値を求め、求めた出力値を、自層の入力側の層の出力に対する教師出力データとして教師出力データ記憶手段に記憶させる教師出力データ生成処理を実行する教師出力データ生成手段と
を備えたことを特徴とするものである。
(重み値最適化手段を備えた構成)
上述した情報処理装置において、
ネットワーク全体に対する教師データセットのうちの入力層への入力に対する教師入力データを含む各層への入力に対する教師入力データを記憶する教師入力データ記憶手段と、
各層について、教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データ、および教師出力データ記憶手段に記憶にされた自層の出力に対する教師出力データを用いて、自層の重み値および自層の入力側の層の出力値、並びに自層の出力に対する教師出力データを含む式で定められた自層の出力の誤差Ewについて、自層の重み値をパラメータとし、この誤差Ewを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として自層の重み値を求め、求めた重み値を重み値記憶手段に記憶させる重み値最適化処理を実行し、その後、この重み値最適化処理により求めた自層の重み値、および教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データを用いて、自層の出力の計算式により自層の出力値を算出し、算出した自層の出力値を、自層の出力側の層への教師入力データとして教師入力データ記憶手段に記憶させる教師入力データ生成処理を実行する重み値最適化手段と
を備えた構成とすることが望ましい。
上述した情報処理装置において、
ネットワーク全体に対する教師データセットのうちの入力層への入力に対する教師入力データを含む各層への入力に対する教師入力データを記憶する教師入力データ記憶手段と、
各層について、教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データ、および教師出力データ記憶手段に記憶にされた自層の出力に対する教師出力データを用いて、自層の重み値および自層の入力側の層の出力値、並びに自層の出力に対する教師出力データを含む式で定められた自層の出力の誤差Ewについて、自層の重み値をパラメータとし、この誤差Ewを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として自層の重み値を求め、求めた重み値を重み値記憶手段に記憶させる重み値最適化処理を実行し、その後、この重み値最適化処理により求めた自層の重み値、および教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データを用いて、自層の出力の計算式により自層の出力値を算出し、算出した自層の出力値を、自層の出力側の層への教師入力データとして教師入力データ記憶手段に記憶させる教師入力データ生成処理を実行する重み値最適化手段と
を備えた構成とすることが望ましい。
以上に述べたように本発明によれば、全ての中間層の出力に対する教師出力データを生成することができるので、ネットワーク全体に対する教師データセットとして与えられる出力層の出力に対する教師出力データと合わせ、出力層および全ての中間層について教師データセットが得られることから、層毎に独立した最適化処理により各層の重み値を調整決定することが可能となり、短時間での効果的な学習、試行錯誤的な更新率の調整の手間の回避、学習時間の予測、誤差の低減を実現することができるという効果がある。
以下に本発明の一実施形態について図面を参照して説明する。図1には、本実施形態の情報処理装置10の全体構成が示され、図2には、情報処理装置10のハードウェア構成が示されている。また、図3は、ニューラルネットワークおよび取得教師データ記憶手段43の構成図であり、図4は、ネットワーク構成情報記憶手段42の構成図であり、図5には、n番目の層の識別情報に関連付けられた変数、当該変数の値の形式、および初期化方法が示されている。さらに、図6および図7は、教師出力データ生成手段33Bによる教師出力データ生成処理の説明図であり、図8および図9は、重み値最適化手段33Dによる重み値最適化処理の説明図であり、図10は、重み値最適化手段33Dによる教師入力データ生成処理の説明図である。また、図11には、ニューラルネットワークの学習の全体的な流れがフローチャートで示され、図12には、学習手段33によるニューラルネットワークの学習処理の流れがフローチャートで示されている。
<情報処理装置10の全体構成>
図1において、情報処理装置10は、コンピュータにより構成された装置本体20と、液晶ディスプレイ等の表示装置60と、マウスやキーボード等の入力装置70とを備えている。また、情報処理装置10には、インターネットやLAN等の通信回線1(有線、無線を問わない。)を介して、情報処理装置10の管理者に対して作業を依頼する依頼者が操作する依頼者端末(または依頼者が管理するシステム)80が接続されている。
装置本体20は、ニューラルネットワークの学習に関する各種処理を実行する処理手段30と、各種処理の実行に必要な各種データを記憶する記憶手段40とを備えている。装置本体20を構成するコンピュータは、主としてパーソナルコンピュータ(デスクトップコンピュータ、ラップトップコンピュータを含む。)であるが、ハンドヘルドコンピュータやタブレット端末等の携帯機器でもよく、また、大型コンピュータ(メインフレーム)でもよく、要するに、必要な機能を備えていればよい。なお、表示装置60や入力装置70は、装置本体20と一体化されていてもよく、携帯機器の場合は、一体化されていることが多い。
図2に示すように、装置本体20を構成するコンピュータは、典型的なハードウェア構成として、バス100により接続された中央演算処理装置(CPU)110と、DRAM等で構成された主記憶装置(メインメモリ)120と、SRAM等で構成されたキャッシュメモリ130と、HDDやSSD等の補助記憶装置140と、通信回線1用の通信インターフェース(通信I/F)150と、表示装置60用のインターフェース(I/F)160と、入力装置70用のインターフェース(I/F)160とを備えている。中央演算処理装置(CPU)110とキャッシュメモリ130とは、高速データ転送が可能なバス101により接続されている。なお、複数の中央演算処理装置(CPU)110によるマルチプロセッサとしてもよい。キャッシュメモリ130の設置は、省略してもよい。補助記憶装置140は、外付けのHDDやSSD等でもよく、DVD、CD、USBメモリ等の外部の記録媒体90としてもよい。
処理手段30は、教師データ取得手段31と、初期化手段32と、学習手段33とを含んで構成されている。学習手段33は、出力層用教師出力データ登録手段33Aと、教師出力データ生成手段33Bと、入力層用教師入力データ登録手段33Cと、重み値最適化手段33Dとを含んで構成されている。これらの処理手段30に含まれる各手段31,32,33は、中央演算処理装置(CPU)110、およびこのCPUの動作手順を規定する1つまたは複数のプログラム、並びにメインメモリ120やキャッシュメモリ130等の作業用メモリ(メインメモリ120上のプログラム領域を含む。但し、記憶手段40としてメインメモリ120上に確保された記憶領域を除く。)により実現される。なお、これらの各手段31,32,33の詳細は、後述する。
また、記憶手段40は、プログラム記憶手段41と、ネットワーク構成情報記憶手段42と、取得教師データ記憶手段43と、入力側層アドレス記憶手段44と、重み値記憶手段45と、重み付き和記憶手段46と、活性化関数種類記憶手段47と、出力値記憶手段48と、教師出力データ記憶手段49と、教師入力データ記憶手段50とを含んで構成されている。これらの記憶手段40に含まれる各記憶手段41~50は、主記憶装置(メインメモリ)120、キャッシュメモリ130、補助記憶装置140により実現される。なお、これらの各記憶手段41~50の詳細は、後述する。
(ニューラルネットワークの構成)
本発明は、ニューラルネットワークの重み値を調整決定する処理を実行するが、その処理対象となるNNの構成は、図3に示すような既存のNNの構成と同様であり、重み値を調整決定する学習処理の方法が異なるだけである。すなわち、学習段階が終了し、重み値が決定された後は、従来と同様であり、決定された重み値を使用したNNで構成される各種のシステム(識別システム、パターン認識システム等)の運用段階の処理は、何ら従来と変わらない。換言すれば、本発明は、既存のNNの全てに適用することができる。また、本発明は、同様なニューロン間の結合関係があれば、今後開発される新たなNNにも適用することができる。従って、前述した式(1)、式(2)、式(3)に示した各層の出力の計算式も本発明の処理に使用することができる。但し、図3に示した構成は一例であり、層の数や、各層のニューロン数は、図3の例に限られるものではない。
本発明は、ニューラルネットワークの重み値を調整決定する処理を実行するが、その処理対象となるNNの構成は、図3に示すような既存のNNの構成と同様であり、重み値を調整決定する学習処理の方法が異なるだけである。すなわち、学習段階が終了し、重み値が決定された後は、従来と同様であり、決定された重み値を使用したNNで構成される各種のシステム(識別システム、パターン認識システム等)の運用段階の処理は、何ら従来と変わらない。換言すれば、本発明は、既存のNNの全てに適用することができる。また、本発明は、同様なニューロン間の結合関係があれば、今後開発される新たなNNにも適用することができる。従って、前述した式(1)、式(2)、式(3)に示した各層の出力の計算式も本発明の処理に使用することができる。但し、図3に示した構成は一例であり、層の数や、各層のニューロン数は、図3の例に限られるものではない。
(各層の出力の計算式の任意性)
また、前述した式(2)、式(3)は、前の層(自層の入力側の層)の出力値の重み付き和S(ΣiWa(i)b(j)Ya(i)、ΣjWb(j)c(k)Yb(j))を含んでいる。これらの計算式は、出力値Ya(i)、Yb(j)から見ても、重み値Wa(i)b(j)、Wb(j)c(k)から見ても、一次結合で表された式である。しかし、本発明は、各層の出力の計算式が、このような重み付き和Sを含む式になっている場合に限らず、前の層(自層の入力側の層)の出力値と、自層の重み値(自層の入力側の層のニューロンから自層のニューロンへの重み値)とを用いて自層の出力値を計算する何らかの計算式であれば、本発明を適用することができる。例えば、出力の計算式は、重み付き和Sにバイアスを加算した式でもよく、出力値または重み値についての2次以上の関数、正弦関数(sin関数)、余弦関数(cos関数)、対数関数、指数関数等でもよい。また、前述した式(2)、式(3)は、活性化関数fを含む式となっていたが、各層(一部の層でもよい。)の出力の計算式は、活性化関数fを含まない式としてもよい。そして、本発明において最小二乗法による最適化処理を実行する場合には、出力の計算式が、パラメータについて一次結合になっていれば、線形最小二乗法による最適化処理となり、パラメータについて一次結合になっていなければ、非線形最小二乗法による最適化処理となる。なお、本発明では、出力値がパラメータになる教師出力データ生成処理と、重み値がパラメータになる重み値最適化処理とがある。また、最適化処理が、最小二乗法による処理であるか否かは、誤差の式が二乗和で定められているか否かにより決まるので、前述した式(2)、式(3)に相当する出力の計算式が、どのような式になっているかは関係なく、例えば、出力の計算式が、正弦関数(sin関数)になっていても、誤差の式が二乗和で定められていれば、最小二乗法による最適化処理を実行することになる。
また、前述した式(2)、式(3)は、前の層(自層の入力側の層)の出力値の重み付き和S(ΣiWa(i)b(j)Ya(i)、ΣjWb(j)c(k)Yb(j))を含んでいる。これらの計算式は、出力値Ya(i)、Yb(j)から見ても、重み値Wa(i)b(j)、Wb(j)c(k)から見ても、一次結合で表された式である。しかし、本発明は、各層の出力の計算式が、このような重み付き和Sを含む式になっている場合に限らず、前の層(自層の入力側の層)の出力値と、自層の重み値(自層の入力側の層のニューロンから自層のニューロンへの重み値)とを用いて自層の出力値を計算する何らかの計算式であれば、本発明を適用することができる。例えば、出力の計算式は、重み付き和Sにバイアスを加算した式でもよく、出力値または重み値についての2次以上の関数、正弦関数(sin関数)、余弦関数(cos関数)、対数関数、指数関数等でもよい。また、前述した式(2)、式(3)は、活性化関数fを含む式となっていたが、各層(一部の層でもよい。)の出力の計算式は、活性化関数fを含まない式としてもよい。そして、本発明において最小二乗法による最適化処理を実行する場合には、出力の計算式が、パラメータについて一次結合になっていれば、線形最小二乗法による最適化処理となり、パラメータについて一次結合になっていなければ、非線形最小二乗法による最適化処理となる。なお、本発明では、出力値がパラメータになる教師出力データ生成処理と、重み値がパラメータになる重み値最適化処理とがある。また、最適化処理が、最小二乗法による処理であるか否かは、誤差の式が二乗和で定められているか否かにより決まるので、前述した式(2)、式(3)に相当する出力の計算式が、どのような式になっているかは関係なく、例えば、出力の計算式が、正弦関数(sin関数)になっていても、誤差の式が二乗和で定められていれば、最小二乗法による最適化処理を実行することになる。
<処理手段30に含まれる各手段31,32,33の詳細構成>
(教師データ取得手段31の構成)
教師データ取得手段31は、ニューラルネットワークの外部から取得した多数(Mp個)の教師データセットを、取得教師データ記憶手段43(図3参照)に記憶させる処理を実行するものである。図3に示すように、各教師データセットは、教師データセットの番号と関連付けられて各レコード(教師データレコード)に記憶される。これらの教師データセットは、情報処理装置10の管理者が収集したデータでもよく、管理者に作業を依頼する依頼者が収集したデータでもよい。依頼者は、収集した多数(Mp個)の教師データセットを、通信回線1を介して情報処理装置10へ送信してもよく、DVDやUSBメモリ等の記録媒体90に格納して管理者に渡してもよい。また、依頼者は、自分が管理するシステム80内のNNの構成(重み値を除く。)が決まっていて、その構成に対応する重み値(重みデータ)や、中間層の出力に対する教師出力データを入手したい場合には、システム80内のNNについてのネットワーク構成情報(図4参照)も、通信回線1を介して情報処理装置10へ送信するか、または記録媒体90に格納して管理者に渡し、管理者に作業(重み値の調整決定や、教師出力データの生成)を依頼する。一方、新規にシステム80を立ち上げる場合等には、依頼者は、NNの構成の決定も含めて管理者に作業を依頼してもよく、その場合には、管理者は、作業依頼に係るデータ(重みデータや教師出力データ)に加え、管理者が決定したネットワーク構成情報(図4参照)も、通信回線1を介して依頼者端末(またはシステム)80に送信するか、または記録媒体90に格納して依頼者に渡す。
教師データ取得手段31は、ニューラルネットワークの外部から取得した多数(Mp個)の教師データセットを、取得教師データ記憶手段43(図3参照)に記憶させる処理を実行するものである。図3に示すように、各教師データセットは、教師データセットの番号と関連付けられて各レコード(教師データレコード)に記憶される。これらの教師データセットは、情報処理装置10の管理者が収集したデータでもよく、管理者に作業を依頼する依頼者が収集したデータでもよい。依頼者は、収集した多数(Mp個)の教師データセットを、通信回線1を介して情報処理装置10へ送信してもよく、DVDやUSBメモリ等の記録媒体90に格納して管理者に渡してもよい。また、依頼者は、自分が管理するシステム80内のNNの構成(重み値を除く。)が決まっていて、その構成に対応する重み値(重みデータ)や、中間層の出力に対する教師出力データを入手したい場合には、システム80内のNNについてのネットワーク構成情報(図4参照)も、通信回線1を介して情報処理装置10へ送信するか、または記録媒体90に格納して管理者に渡し、管理者に作業(重み値の調整決定や、教師出力データの生成)を依頼する。一方、新規にシステム80を立ち上げる場合等には、依頼者は、NNの構成の決定も含めて管理者に作業を依頼してもよく、その場合には、管理者は、作業依頼に係るデータ(重みデータや教師出力データ)に加え、管理者が決定したネットワーク構成情報(図4参照)も、通信回線1を介して依頼者端末(またはシステム)80に送信するか、または記録媒体90に格納して依頼者に渡す。
(初期化手段32の構成:ネットワーク構成情報の取得処理)
初期化手段32は、ネットワーク構成情報の取得処理と、各層の情報の初期化処理とを実行するものである。この初期化手段32は、前者のネットワーク構成情報の取得処理では、補助記憶装置140上のネットワーク構成情報記憶手段42(図4参照)に記憶されているネットワーク構成情報(層の番号、各層のニューロン数、活性化関数の種類)を読み込み、メインメモリ120上に配置するとともに、読み込んだネットワーク構成情報に従って、メインメモリ120上に各層の情報の記憶領域(図5参照)を確保する。この記憶領域が確保された状態には、スワップ操作で一時的にHDDやSSD等の補助記憶装置140に記憶領域が退避されている状態や、キャッシュメモリ130に記憶領域が確保されている状態等も含まれる。なお、メインメモリ120上のネットワーク構成情報の記憶領域も、ネットワーク構成情報記憶手段42と呼ぶものとする。補助記憶装置140上のネットワーク構成情報記憶手段42に記憶されたネットワーク構成情報は、管理者が決定して入力装置70で入力したデータでもよく、依頼者から受け取って格納したデータでもよい。
初期化手段32は、ネットワーク構成情報の取得処理と、各層の情報の初期化処理とを実行するものである。この初期化手段32は、前者のネットワーク構成情報の取得処理では、補助記憶装置140上のネットワーク構成情報記憶手段42(図4参照)に記憶されているネットワーク構成情報(層の番号、各層のニューロン数、活性化関数の種類)を読み込み、メインメモリ120上に配置するとともに、読み込んだネットワーク構成情報に従って、メインメモリ120上に各層の情報の記憶領域(図5参照)を確保する。この記憶領域が確保された状態には、スワップ操作で一時的にHDDやSSD等の補助記憶装置140に記憶領域が退避されている状態や、キャッシュメモリ130に記憶領域が確保されている状態等も含まれる。なお、メインメモリ120上のネットワーク構成情報の記憶領域も、ネットワーク構成情報記憶手段42と呼ぶものとする。補助記憶装置140上のネットワーク構成情報記憶手段42に記憶されたネットワーク構成情報は、管理者が決定して入力装置70で入力したデータでもよく、依頼者から受け取って格納したデータでもよい。
図5には、上記のネットワーク構成情報の取得処理によりメインメモリ120上に確保された各層の情報の記憶領域の内容(各変数、各変数についての値の形式および初期化方法)が示されている。変数には、入力側の層のアドレス(C)、重み値(D)、重み付き和Sの値(E)、活性化関数の種類(F)、出力値(G)、n番目の層(自層)への教師出力データ(H)、(n+1)番目の層(自層の出力側の層)への教師入力データ(I)がある。
図5に示された各変数の値は、n番目の層の識別情報(n番目の層の番号またはメインメモリ120上のn番目の層のアドレス)に関連付けられた記憶情報である。従って、メインメモリ120上に確保された図5の各変数の記憶領域は、それぞれ入力側層アドレス記憶手段44、重み値記憶手段45、重み付き和記憶手段46、活性化関数種類記憶手段47、出力値記憶手段48、教師出力データ記憶手段49、教師入力データ記憶手段50のうちのn番目の層の識別情報に関連付けられた部分である。なお、一部の変数の値については、保存のために不揮発性メモリである補助記憶装置140にも記憶され、補助記憶装置140上のそれらの変数の値の格納場所も、重み値記憶手段45、教師出力データ記憶手段49等のように、メインメモリ120上の記憶領域と同名で呼ぶものとする。
(初期化手段32の構成:各層の情報の初期化処理)
初期化手段32は、各層の情報の初期化処理では、図5に示すように、入力側の層のアドレス(C)には、取得したネットワーク構成情報(図4参照)に基づき、(n-1)番目の層(1つ前の層)のメモリアドレスを登録する。
初期化手段32は、各層の情報の初期化処理では、図5に示すように、入力側の層のアドレス(C)には、取得したネットワーク構成情報(図4参照)に基づき、(n-1)番目の層(1つ前の層)のメモリアドレスを登録する。
また、重み値(D)は、(n-1)番目の層(自層の入力側の層)のニューロン数×n番目の層(自層)のニューロン数の要素を持つ配列であり、初期化手段32は、これらの各要素を乱数で初期化する。なお、閾値の処理を入れる際には、入力側の層のニューロン数に1を加えて初期化する。
但し、重み値(D)の初期化については、稼働中のシステム(例えば、依頼者が管理するシステム80等)があり、新たに得られた教師データセットを用いて、そのシステム内のNNの重み値を更新する場合には、更新前のシステムで使用していた重み値を、初期化後の重み値として用いてもよい。
従って、稼働中のシステム(例えばシステム80等)の重み値の更新では、大別すると、以下の4つのケースがある。なお、以下の4つのケースは、更新前のシステムの重み値が誤差逆伝播法等の従来の方法で決定されていて、今回の更新から、本発明による重み値の決定方法に切り替える場合でもよく、更新前のシステムの重み値も、本発明により決定されていて、今回の更新も、引き続き本発明により決定する場合でもよい。
ケース1では、初期化後の重み値(すなわち、重み値最適化手段33Dによる重み値最適化処理の実行前に、中間層の教師出力データを生成するために固定した状態で使用する最初の重み値)は、乱数で作成する。また、新たな教師データセットだけを使って学習する。このケース1は、過去の教師データセットや重みの情報は残らないので、新たな教師データセットに対応して最初から学習し直すケースである。これは、学習対象のニューラルネットワークにより構築されたシステムが振る舞いを変えた場合(例えば、機械が大きく劣化して動き方が変わった場合、カメラのレンズを変更したため適切な画像認識方法が変わった場合等)に行う学習処理である。
ケース2では、初期化後の重み値(最初の重み値)は、乱数で作成する。また、新たな教師データセットおよび前回更新までの教師データセットの双方を使って学習する。このケース2では、新たな教師データセットを加えることで、予測の精度が向上(誤差が減少)する。これは、システムの振る舞いは以前と大きく変わらないがニューラルネットワークの予測精度を向上させたい場合の学習処理である。
ケース3では、初期化後の重み値(最初の重み値)として、更新前システムの重み値を使う。また、新たな教師データセットだけを使って学習する。このケース3は、例えば、システムの変化が緩やかな場合(機械が徐々に劣化する場合等)に使うことができる。以前の学習結果が更新前の重み情報に残っているので、それを引き継いだ学習が期待できる。
ケース4では、初期化後の重み値(最初の重み値)として、更新前システムの重み値を使う。新たな教師データセットおよび前回更新までの教師データセットの双方を使って学習する。このケース4では、ケース2と同様に、新たな教師データセットを加えることで、予測の精度が向上(誤差が減少)する。
また、重み値(D)の初期化では、同一または類似のネットワーク構成を有するシステムで使用されているか若しくは使用されていた重み値を、初期化後の重み値(最初の重み値)として用いてもよく、あるいは、稼働中のシステムで使用していた更新前の重み値と、同一または類似のネットワーク構成を有するシステムの重み値とを組み合わせた重み値を、初期化後の重み値(最初の重み値)として用いてもよい。
さらに、重み付き和Sの値(E)は、n番目の層(自層)のニューロン数の要素を持つ配列であり、初期化手段32は、これらの要素の全てを0で初期化する。また、初期化手段32は、活性化関数の種類(F)には、取得したネットワーク構成情報(図4参照)に基づき、活性化関数の種類を識別する整数値を登録する。
また、出力値(G)は、n番目の層(自層)のニューロン数の要素を持つ配列であるが、初期化は不要である。さらに、n番目の層(自層)への教師出力データ(H)は、n番目の層(自層)のニューロン数×教師データセット数Mpの要素を持つ配列であるが、初期化は不要である。また、(n+1)番目の層(自層の出力側の層)への教師入力データ(I)は、n番目の層(自層)のニューロン数×教師データセット数Mpの要素を持つ配列であるが、初期化は不要である。
(学習手段33/出力層用教師出力データ登録手段33Aの構成)
出力層用教師出力データ登録手段33Aは、教師データ取得手段31により取得して取得教師データ記憶手段43(図3参照)に記憶されている教師データセット(Mp個)のうちの教師出力データを、出力層(N番目の層:但し、Nは層の数)の変数(H)(図5参照)にコピーして登録する処理を実行するものである。すなわち、N番目の層への教師出力データ(N番目の層の各ニューロンの出力に対するM(N)個の教師出力データ:但し、M(N)はN番目の層のニューロン数)を、N番目の層の情報(図5参照)として教師出力データ記憶手段49に記憶させる。従って、登録する教師出力データの数は、M(N)×Mpである。
出力層用教師出力データ登録手段33Aは、教師データ取得手段31により取得して取得教師データ記憶手段43(図3参照)に記憶されている教師データセット(Mp個)のうちの教師出力データを、出力層(N番目の層:但し、Nは層の数)の変数(H)(図5参照)にコピーして登録する処理を実行するものである。すなわち、N番目の層への教師出力データ(N番目の層の各ニューロンの出力に対するM(N)個の教師出力データ:但し、M(N)はN番目の層のニューロン数)を、N番目の層の情報(図5参照)として教師出力データ記憶手段49に記憶させる。従って、登録する教師出力データの数は、M(N)×Mpである。
(学習手段33/教師出力データ生成手段33Bの構成:教師出力データ正規化処理)
教師出力データ生成手段33Bは、教師出力データ正規化処理と、教師出力データ生成処理とを実行するものである。この教師出力データ生成手段33Bは、前者の教師出力データ正規化処理では、後者の教師出力データ生成処理(n番目の層の出力についての誤差Ey(n)を最小にする最適化処理)を実行する前に、教師出力データ記憶手段49に記憶された教師出力データのうち、最適化処理を実行する層(処理対象層)の各ニューロンからの出力に対する全ての教師出力データ(図5に示すn番目の層の情報として登録されている変数(H)の値)について、逆行列の計算を安定させるようにするため、それぞれの教師出力データの相対的な大小関係を維持しながら、適切な値に変更して正規化する。正規化後の教師出力データは、教師出力データ記憶手段49に上書きする。
教師出力データ生成手段33Bは、教師出力データ正規化処理と、教師出力データ生成処理とを実行するものである。この教師出力データ生成手段33Bは、前者の教師出力データ正規化処理では、後者の教師出力データ生成処理(n番目の層の出力についての誤差Ey(n)を最小にする最適化処理)を実行する前に、教師出力データ記憶手段49に記憶された教師出力データのうち、最適化処理を実行する層(処理対象層)の各ニューロンからの出力に対する全ての教師出力データ(図5に示すn番目の層の情報として登録されている変数(H)の値)について、逆行列の計算を安定させるようにするため、それぞれの教師出力データの相対的な大小関係を維持しながら、適切な値に変更して正規化する。正規化後の教師出力データは、教師出力データ記憶手段49に上書きする。
但し、この教師出力データ正規化処理は、処理対象層が出力層以外の場合に実行する。処理対象層が出力層の場合には、その層の教師出力データ(図5に示す変数(H)の値)は、出力層用教師出力データ登録手段33Aにより登録された教師出力データだからである。また、教師出力データ正規化処理は、処理対象層が出力層(N番目の層:但し、Nは層の数)の場合を除くので、(N-1)番目の層(出力層の1つ前の層)から順に、処理対象層の番号を1ずつ減らしながら、処理対象層が2番目の層まで実行し、2番目の層の出力に対する教師出力データまで正規化する。入力層(1番目の層)の出力に対する教師出力データの正規化は必要ない。前述した式(1)のように、入力層への入力が、そのまま入力層の出力となるからである。
この教師出力データ正規化処理を実行するためには、教師出力データ記憶手段49に正規化対象の教師出力データが記憶されている状態になっている必要がある。例えば、5番目の層が処理対象層である場合は、5番目の層の各ニューロンの出力に対する全ての教師出力データが正規化対象となるが、この正規化対象の5番目の層への教師出力データは、6番目の層を処理対象層とする教師出力データ生成処理で生成されていることになる。この循環は、教師出力データ生成処理が、出力層から順に、処理対象層の番号を1つずつ減らしながら実行されることにより成立している。すなわち、出力層(N番目の層)を処理対象層として教師出力データ生成処理が実行されると、(N-1)番目の層の出力に対する教師出力データが生成され、教師出力データ記憶手段49に記憶される。次に、(N-1)番目の層を処理対象層として、この教師出力データ正規化処理を実行する際には、正規化対象の(N-1)番目の層の出力に対する教師出力データは、教師出力データ記憶手段49に既に記憶されている状態となっている。さらに、正規化された(N-1)番目の層の出力に対する教師出力データを用いて、(N-1)番目の層を処理対象層として教師出力データ生成処理が実行されると、(N-2)番目の層の出力に対する教師出力データが生成され、教師出力データ記憶手段49に記憶される。続いて、(N-2)番目の層を処理対象層として、この教師出力データ正規化処理を実行する際には、正規化対象の(N-2)番目の層の出力に対する教師出力データは、教師出力データ記憶手段49に既に記憶されている状態となっている。この循環が繰り返されることになる(後述する図12のステップS303~S306のループ処理を参照)。
具体的には、教師出力データ生成手段33Bは、教師出力データ記憶手段49に記憶された教師出力データのうち、処理対象層の各ニューロンからの出力に対する全ての教師出力データが、処理対象層の活性化関数fの出力可能な範囲に収まるようにすることを前提として、次の第1、第2のいずれかの教師出力データ正規化処理を実行する。教師出力データ生成処理では、後述する図6に示す式(6)、式(8)、式(9)、式(11)のように、教師出力データを活性化関数fの逆関数f-1に入力するからである。なお、処理対象層の出力の計算式に活性化関数fが含まれていない場合には、教師出力データを逆関数f-1に入力する必要はないので、この前提は不要である。
第1の教師出力データ正規化処理では、処理対象層の各ニューロンからの出力に対する全ての教師出力データを、これらの全ての教師出力データのうちの最大絶対値で除することにより、全ての教師出力データを-1から1までの範囲内にする。例えば、教師出力データの分布範囲が、-50~25であったとすると、最大絶対値は50であるため、50で除することにより、-1~0.5に正規化される。なお、全ての教師出力データが、-1から1までの範囲内に収まっている場合には、必ずしも最大絶対値で除する必要はないが、最大絶対値で除してもよく、除した場合には、例えば、-0.4~0.8という分布範囲は、-0.5~1に正規化される。
第2の教師出力データ正規化処理では、処理対象層の各ニューロンからの出力に対する全ての教師出力データの絶対値が、これらの教師出力データ(図5に示す変数(H))に適用する実数型データのフォーマットに応じて予め定めた閾値内に収まるように、全ての教師出力データを同一の値で除する。従って、閾値は、計算機の性能に依存して事前に定められる値である。ここで、同一の値は、予め用意しておいた複数の定数(例えば、10、100、1000、…等)の中から選択した定数でもよく、全ての教師出力データの最大絶対値を閾値で除した値(1を超える値となる。)や、その値に1を超える係数を乗じた値(安全サイドの値)でもよい。例えば、閾値が1000であり、教師出力データの分布範囲が、-14230~2381であったとすると、同一の値として定数100が選択され(定数10で除しても、閾値内に収まらないため。)、100で除することにより、-142.3~23.81に正規化される。また、最大絶対値が14230であるから、その14230を閾値1000で除した値14.230を同一の値としてもよく、14.230で除することにより、-1000~167.32に正規化される。さらに、最大絶対値14230を閾値1000で除した値14.230に例えば1.1(1を超える係数)を乗じた値15.653(安全サイドの値)を同一の値としてもよく、15.653で除することにより、-909.09~152.11に正規化される。なお、閾値内に収まっている場合には、同一の値で除する必要はない。
(学習手段33/教師出力データ生成手段33Bの構成:教師出力データ生成処理)
教師出力データ生成手段33Bは、教師出力データ生成処理では、各層について、重み値記憶手段45に記憶された初期化後の重み値、および教師出力データ記憶手段49に記憶された自層の出力に対する教師出力データを用いて、自層の重み値および自層の入力側の層の出力値、並びに自層の出力に対する教師出力データを含む式で定められた自層の出力の誤差Eyについて、自層の入力側の層の出力値をパラメータとし、この誤差Eyを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として自層の入力側の層の出力値を求め、求めた出力値を、自層の入力側の層の出力に対する教師出力データとして教師出力データ記憶手段49に記憶させる。
教師出力データ生成手段33Bは、教師出力データ生成処理では、各層について、重み値記憶手段45に記憶された初期化後の重み値、および教師出力データ記憶手段49に記憶された自層の出力に対する教師出力データを用いて、自層の重み値および自層の入力側の層の出力値、並びに自層の出力に対する教師出力データを含む式で定められた自層の出力の誤差Eyについて、自層の入力側の層の出力値をパラメータとし、この誤差Eyを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として自層の入力側の層の出力値を求め、求めた出力値を、自層の入力側の層の出力に対する教師出力データとして教師出力データ記憶手段49に記憶させる。
具体的には、教師出力データ生成手段33Bは、後述する図6の最下部および図7に示す式(11)に従って、次のような教師出力データ生成処理を実行する。但し、式(11)は、各層の出力の計算式が、前述した式(2)および式(3)の如く、前の層(自層の入力側の層)の出力値の重み付き和Sを活性化関数fに入力する式となっていて、かつ、後述する図6の式(9)の如く、誤差Ey(n)を二乗和により定義し、最小二乗法による最適化処理を実行する場合の式である。従って、各層の出力の計算式に任意性を持たせ、かつ、最適化処理にも任意性を持たせることにより、教師出力データ生成処理を一般化して表現すると、次のようになる。
先ず、誤差Ey(n)を一般化すると、次の2通りとなる。第1の誤差Ey(n)の式は、(n-1)番目の層の出力値Y(n-1,j;p)を用いたn番目の層の出力の計算式による計算値と、n番目の層の出力に対する教師出力データYt(n,k;p)とを用いて定めた式である。第2の誤差Ey(n)の式は、(n-1)番目の層の出力値Y(n-1,j;p)を用いたn番目の層の出力の計算式に活性化関数fが含まれる場合の活性化関数fへの入力値を計算する活性化関数入力値計算式(f(…)のカッコ内の式)による計算値と、n番目の層の出力に対する教師出力データYt(n,k;p)を活性化関数fの逆関数f-1に入力して得られる値とを用いて定めた式である。
そして、教師出力データ生成手段33Bは、ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、出力層の番号をNで示したとき、n=Nからn=3までnを1ずつ減らしながら、
教師出力データ記憶手段49に記憶されたn番目の層の出力に対する教師出力データYt(n,k;p)と、重み値記憶手段45に記憶された初期化後の重み値のうちの(n-1)番目の層からn番目の層への重み値W(n-1,j;n,k)とを用いて、
上述した2通りの誤差Ey(n)のいずれかについて、(n-1)番目の層の出力値Y(n-1,j;p)をパラメータとし、この誤差Ey(n)を最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層の出力値Y(n-1,j;p)を求め、求めた(n-1)番目の層の出力値Y(n-1,j;p)を、(n-1)番目の層の出力に対する教師出力データYt(n-1,j;p)として教師出力データ記憶手段49に記憶させる処理を実行する。
教師出力データ記憶手段49に記憶されたn番目の層の出力に対する教師出力データYt(n,k;p)と、重み値記憶手段45に記憶された初期化後の重み値のうちの(n-1)番目の層からn番目の層への重み値W(n-1,j;n,k)とを用いて、
上述した2通りの誤差Ey(n)のいずれかについて、(n-1)番目の層の出力値Y(n-1,j;p)をパラメータとし、この誤差Ey(n)を最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層の出力値Y(n-1,j;p)を求め、求めた(n-1)番目の層の出力値Y(n-1,j;p)を、(n-1)番目の層の出力に対する教師出力データYt(n-1,j;p)として教師出力データ記憶手段49に記憶させる処理を実行する。
この際、教師出力データ生成手段33Bは、生成した教師出力データYt(n-1,j;p)を、(n-1)番目の層の情報として、(n-1)番目の層についての図5の変数(H)に登録する。現在の処理対象層は、n番目の層であるから、n番目の層の情報として図5の変数(C)に登録されている入力側の層のアドレスから、(n-1)番目の層のアドレスを取得することができる。
ここで、Yt(n,k;p)は、n番目の層のk番目のニューロンの出力に対する教師出力データである。Yの添え字tは、teacingを示している。p=1~Mpであり、pは、教師データセットの番号、Mpは、教師データセット数である。また、W(n-1,j;n,k)は、(n-1)番目の層のj番目のニューロンからn番目の層のk番目のニューロンへの重み値である。
Y(n-1,j;p)は、(n-1)番目の層のj番目のニューロンの出力値である。また、Yt(n-1,j;p)は、教師出力データ生成処理で生成される(n-1)番目の層のj番目のニューロンの出力に対する教師出力データである。この教師出力データYt(n-1,j;p)は、j=1~M(n-1)、p=1~Mpについて生成されるので、生成される教師出力データの数は、M(n-1)×Mpである。M(n-1)は、(n-1)番目の層のニューロン数である。なお、生成した教師出力データを記憶させる図5の変数(H)の説明には「n番目の層(自層)のニューロン数×教師データセット数Mpの要素を持つ配列」と記載されているが、上述したように、生成した教師出力データは、処理対象層の入力側の層の情報として登録するので、入力側の層の立場で見れば、自層のニューロン数×Mpの教師出力データが登録されることになる。
また、「n=Nからn=3までnを1ずつ減らしながら」の「n=3まで」とは、(n-1)番目の層が2番目の層になるまでという意味であり、2番目の層の出力に対する教師出力データまで求める趣旨である。前述した式(1)のように、入力層(1番目の層)には重み値がないので、教師データセットのうちの教師入力データが入力層に入力されると、その値がそのまま入力層の出力となるので、入力層の出力に対する教師出力データは必要ないからである。
図6には、以上の教師出力データ生成処理の導出過程が示されている。先ず、図3に示したNNの符合を用いて、誤差Eyを記載すると、次の式(6)のようになる。ここでは、誤差Eyを2乗和による誤差としているので、最小二乗法による最適化処理を実行することを前提としているが、誤差Eyは、誤差の2乗の和に限らず、例えば、誤差の絶対値の和や、誤差の4乗の和等としてもよく、誤差Eyの定義は任意である。
Ey=(1/2)ΣkΣp{ΣjYb(j),pWb(j)c(k)-f-1(Ytc(k),p)}2 (6)
この誤差Eyを最小にするパラメータYb(j),pを求めるので、式(6)をパラメータYb(j),pで偏微分した式をゼロと置くことにより、次の式(7)を得る。そして、この式(7)をj=1,2,3について書き出す。すなわち、中間層bの各ニューロンb(1)、b(2)、b(3)の出力値Yb(1),p、Yb(2),p、Yb(3),pで偏微分する。ここで特徴的なのは、Wb(j)c(k)ではなく、Yb(j),pをパラメータとすることにより、Yb(j),pで偏微分している点である。従って、重み値Wb(j)c(k)については、初期化後の重み値(最初の重み値)を維持したままで各層の教師出力データ生成処理が進む。
∂Ey/∂Yb(j),p=0 ・・・・・・・・・・・・・・・・(7)
それから、最適化処理で得られるパラメータYb(j),pの解を、中間層bの出力に対する教師出力データYtb(j),pと置くと、図6に示すような次の行列表現の式(8)が得られる。[Ytb,p]が、求める解の集合である縦ベクトルである。式(8)は、p=1~Mp(Mpは、教師データセット数(教師データレコード数))について得られるので、求める教師出力データの数は、3(中間層bのニューロン数)×Mpである。[Qbc]は、正方行列であり、重み値記憶手段45に記憶されている初期化後の重み値Wb(j)c(k)を代入して得られる。[Ubc,p]は、縦ベクトルであり、重み値記憶手段45に記憶されている初期化後の重み値Wb(j)c(k)を代入するとともに、教師出力データ記憶手段49に記憶されている教師出力データYtc(k),pを代入して得られる。
[Qbc][Ytb,p]=[Ubc,p] ・・・・・・・・・・・・(8)
さらに、複数の中間層b(b1,b2)がある場合の中間層b2の出力についての誤差Eyも同様であるため、以上の式(6)、式(7)、式(8)を一般化する。
前述した式(6)を一般化すると、次の式(9)となる。式(9)は、n番目の層の出力についての誤差Ey(n)である。n=N,…,5,4,3であり、Nは層の数である。n=2は演算不要である。すなわち、2番目の層の出力についての誤差Ey(2)は考慮不要である。1番目の層(入力層a)のニューロンの出力に対する教師出力データの生成は不要だからである。
Ey(n)=(1/2)ΣkΣp{ΣjY(n-1,j;p)W(n-1,j;n,k)-f-1(Yt(n,k;p))}2 ・・・・・・・・・・・(9)
ここで、Σkは、k=1~M(n)の和であり、kは、n番目の層のニューロンの番号であり、M(n)は、n番目の層のニューロン数である。Σpは、p=1~Mpの和であり、pは、教師データセットの番号であり、Mpは、教師データセット数である。Σjは、j=1~M(n-1)の和であり、jは、(n-1)番目の層のニューロンの番号であり、M(n-1)は、(n-1)番目の層のニューロン数である。Y(n-1,j;p)は、(n-1)番目の層のj番目のニューロンの出力値である。Yt(n,k;p)は、n番目の層のk番目のニューロンの出力に対する教師出力データである。
この誤差Ey(n)を最小にするパラメータY(n-1,j;p)を求めるので、式(9)をパラメータY(n-1,j;p)で偏微分した式をゼロと置くことにより、次の式(10)を得る。式(10)は、前述した式(7)を一般化した式である。そして、この式(10)をj=1~M(n-1)について書き出す。
∂Ey(n)/∂Y(n-1,j;p)=0 ・・・・・・(10)
それから、最適化処理で得られるパラメータY(n-1,j;p)の解を、(n-1)番目の層のj番目のニューロンの出力に対する教師出力データYt(n-1,j;p)と置くと、図6の最下部および図7に示すような次の行列表現の式(11)が得られる。式(11)は、前述した図6の式(8)を一般化した式である。
[Q(n-1;n)][Yt(n-1;p)]=[U(n-1;n;p)] ・・・・・・・・・・・・・・・・・・・・・・(11)
ここで、[Q(n-1;n)]は、教師出力生成用行列であり、M(n-1)行×M(n-1)列の正方行列である。M(n-1)は、(n-1)番目の層のニューロン数である。W(n-1,j;n,k)は、(n-1)番目の層のj番目のニューロンからn番目の層のk番目のニューロンへの重み値である。この教師出力生成用行列Q(n-1;n)の各要素の値は、重み値記憶手段45に記憶されている初期化後の重み値W(n-1,j;n,k)を代入して得られる。
また、[Yt(n-1;p)]は、教師出力ベクトルであり、M(n-1)次元の縦ベクトルである。この教師出力ベクトルYt(n-1;p)は、教師出力データ生成処理で求める(n-1)番目の層の教師出力データYt(n-1,j;p)の集合である。Yt(n-1,j;p)は、(n-1)番目の層のj番目のニューロンの出力に対する教師出力データであり、j=1~M(n-1)である。p=1~Mpであり、pは、教師データセットの番号であり、Mpは、教師データセット数である。式(11)は、p=1~Mpについて得られるので、教師出力ベクトルYt(n-1;p)を求める処理がMp回繰り返されるため、求める教師出力ベクトルの数は、M(n-1)×Mpとなる。この教師出力ベクトルYt(n-1;p)の各要素の値は、教師出力生成用行列Q(n-1;n)の逆行列を計算し、その逆行列を、教師出力生成用ベクトルU(n-1;n;p)の左側からU(n-1;n;p)に掛けることにより求めることができる。また、LQ分解等を用いて求めてもよい。教師出力生成用行列Q(n-1;n)の逆行列が存在しない場合には、何らかの方法で逆行列の近似値を求めてもよい。例えば、教師出力生成用行列Q(n-1;n)の各値に微小な乱数(例えば-1.0E-10~1.0E-10の間の値をとる乱数等)を加える方法、掃き出し法を適用して逆行列を求める際に対角成分が0となった時点で処理を止めて計算途中の逆行列を用いる方法、掃き出し法を適用して逆行列を求める際に対角成分が0となった場合、当該対角成分を微小値(例えば1.0E-10等)に置き換えて計算を続ける方法等である。
さらに、[U(n-1;n;p)]は、教師出力生成用ベクトルであり、M(n-1)次元の縦ベクトルである。f-1は、活性化関数fの逆関数である。Yt(n,k;p)は、n番目の層のk番目のニューロンの出力に対する教師出力データである。この教師出力生成用ベクトルU(n-1;n;p)の各要素の値は、重み値記憶手段45に記憶されている初期化後の重み値W(n-1,j;n,k)を代入するとともに、教師出力データ記憶手段49に記憶されている教師出力データYt(n,k;p)を代入して得られる。教師出力データ正規化処理の説明で既に詳述している通り、n番目の層が処理対象層である場合は、(n-1)番目の層の出力に対する教師出力データYt(n-1,j;p)を求めるので、その際には、n番目の層の出力に対する教師出力データYt(n,k;p)は既に求められて教師出力データ記憶手段49に記憶されている状態である。
また、各層の出力の計算式が、前の層の出力値の重み付き和Sではなく、より複雑な式である場合や、誤差Ey(n)を2乗和で定義しなかった場合には、式(11)のような簡潔な式で最適解を求めることができない場合が多いが、その場合には、例えば、勾配法(最急降下法)等の繰り返し計算により、最適に近い解を求めることができる。この場合の繰り返し計算による最適化処理は、各層について、層毎に独立して実行される処理であり、ネットワーク全体に渡って実行される処理ではない。従って、全ての層での最適化処理の実行時間を合計しても、従来の誤差逆伝播法等の繰り返し計算を行う場合に比べ、短時間で解を得ることができる。
(学習手段33/入力層用教師入力データ登録手段33Cの構成)
入力層用教師入力データ登録手段33Cは、教師データ取得手段31により取得して取得教師データ記憶手段43(図3参照)に記憶されている教師データセット(Mp個)のうちの教師入力データを、入力層(1番目の層)の変数(I)(図5参照)にコピーして登録する処理を実行するものである。すなわち、入力層の出力側の層(2番目の層)への教師入力データ(1番目の層のM(1)個の各ニューロンから出力されて2番目の層に入力される入力データに対する教師入力データ:但し、M(1)は入力層のニューロン数)を、入力層(1番目の層)の情報(図5参照)として教師入力データ記憶手段50に記憶させる。従って、登録する教師入力データの数は、M(1)×Mpである。
入力層用教師入力データ登録手段33Cは、教師データ取得手段31により取得して取得教師データ記憶手段43(図3参照)に記憶されている教師データセット(Mp個)のうちの教師入力データを、入力層(1番目の層)の変数(I)(図5参照)にコピーして登録する処理を実行するものである。すなわち、入力層の出力側の層(2番目の層)への教師入力データ(1番目の層のM(1)個の各ニューロンから出力されて2番目の層に入力される入力データに対する教師入力データ:但し、M(1)は入力層のニューロン数)を、入力層(1番目の層)の情報(図5参照)として教師入力データ記憶手段50に記憶させる。従って、登録する教師入力データの数は、M(1)×Mpである。
(学習手段33/重み値最適化手段33Dの構成:重み値最適化処理)
重み値最適化手段33Dは、重み値最適化処理と、教師入力データ生成処理とを実行するものである。この重み値最適化手段33Dは、前者の重み値最適化処理では、各層について、教師入力データ記憶手段50に記憶された自層の入力側の層から自層への教師入力データ、および教師出力データ記憶手段49に記憶にされた自層の出力に対する教師出力データを用いて、自層の重み値および自層の入力側の層の出力値、並びに自層の出力に対する教師出力データを含む式で定められた自層の出力の誤差Ewについて、自層の重み値をパラメータとし、この誤差Ewを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として自層の重み値を求め、求めた重み値を重み値記憶手段45に記憶させる。
重み値最適化手段33Dは、重み値最適化処理と、教師入力データ生成処理とを実行するものである。この重み値最適化手段33Dは、前者の重み値最適化処理では、各層について、教師入力データ記憶手段50に記憶された自層の入力側の層から自層への教師入力データ、および教師出力データ記憶手段49に記憶にされた自層の出力に対する教師出力データを用いて、自層の重み値および自層の入力側の層の出力値、並びに自層の出力に対する教師出力データを含む式で定められた自層の出力の誤差Ewについて、自層の重み値をパラメータとし、この誤差Ewを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として自層の重み値を求め、求めた重み値を重み値記憶手段45に記憶させる。
具体的には、重み値最適化手段33Dは、後述する図8の最下部および図9に示す式(17)に従って、次のような重み値最適化処理を実行する。但し、式(17)は、各層の出力の計算式が、前述した式(2)および式(3)の如く、前の層(自層の入力側の層)の出力値の重み付き和Sを活性化関数fに入力する式となっていて、かつ、後述する図8の式(15)の如く、誤差Ew(n)を二乗和により定義し、最小二乗法による最適化処理を実行する場合の式である。従って、各層の出力の計算式に任意性を持たせ、かつ、最適化処理にも任意性を持たせることにより、重み値最適化処理を一般化して表現すると、次のようになる。
先ず、誤差Ew(n)を一般化すると、次の2通りとなる。第1の誤差Ew(n)の式は、(n-1)番目の層の出力値Y(n-1,j;p)を用いたn番目の層の出力の計算式による計算値と、n番目の層の出力に対する教師出力データYt(n,k;p)とを用いて定めた式である。第2の誤差Ew(n)の式は、(n-1)番目の層の出力値Y(n-1,j;p)を用いたn番目の層の出力の計算式に活性化関数fが含まれる場合の活性化関数fへの入力値を計算する活性化関数入力値計算式(f(…)のカッコ内の式)による計算値と、n番目の層の出力に対する教師出力データYt(n,k;p)を活性化関数fの逆関数f-1に入力して得られる値とを用いて定めた式である。
そして、重み値最適化手段33Dは、ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、自層の出力側の層の番号を(n+1)、出力層の番号をNで示したとき、n=2からnを1ずつ増やしながら、
教師入力データ記憶手段50に記憶された(n-1)番目の層からn番目の層への教師入力データ、および教師出力データ記憶手段49に記憶にされたn番目の層の出力に対する教師出力データを用いて、
上述した2通りの誤差Ew(n)のいずれかについて、(n-1)番目の層からn番目の層への重み値をパラメータとし、この誤差Ew(n)を最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層からn番目の層への重み値を求め、求めた重み値を重み値記憶手段45に記憶させる。
教師入力データ記憶手段50に記憶された(n-1)番目の層からn番目の層への教師入力データ、および教師出力データ記憶手段49に記憶にされたn番目の層の出力に対する教師出力データを用いて、
上述した2通りの誤差Ew(n)のいずれかについて、(n-1)番目の層からn番目の層への重み値をパラメータとし、この誤差Ew(n)を最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層からn番目の層への重み値を求め、求めた重み値を重み値記憶手段45に記憶させる。
この際、重み値最適化手段33Dは、求めた重み値を、n番目の層の情報として、図5の変数(D)に登録する。重み値記憶手段45のうちのn番目の層の情報を記憶する図5の変数(D)には、初期化後の重み値(最初の重み値)が記憶されているので、求めた重み値を上書きして記憶させる。記憶させる重み値の数は、(n-1)番目の層のニューロン数M(n-1)×n番目の層のニューロン数M(n)である。
また、重み値最適化処理は、通常、n=2からn=Nまでnを1ずつ増やしながら実行する。すなわち、出力層(N番目の層)の重み値まで求める。しかし、必ずしもn=Nまで実行する必要はなく、途中の層までの処理としてもよい。例えば、中間層の出力を抽出し、他のシステムで利用する場合等には、重み値最適化処理は、必ずしもn=2からn=Nまでの全てについて実行する必要はない。なお、前述した式(1)のように入力層には重み値がないので、n=2からの処理としている。n=2の場合は、(n-1)=1となり、入力層(1番目の層)から2番目の層への重み値、すなわち2番目の層の重み値を求めることになる。
この重み値最適化処理を実行するためには、教師入力データ記憶手段50に(n-1)番目の層からn番目の層への教師入力データが記憶され、かつ、教師出力データ記憶手段49にn番目の層の出力に対する教師出力データが記憶されている状態となっている必要がある。このうち、教師出力データについては、出力層用教師出力データ登録手段33Aにより出力層の出力に対する教師出力データ(ネットワーク全体に対する教師出力データ)が登録され、かつ、教師出力データ生成手段33Bにより全ての中間層の出力に対する教師出力データが生成されて登録されている。従って、必要な教師出力データが全て揃っている。
教師入力データについては、最初は、入力層用教師入力データ登録手段33Cにより入力層の情報として2番目の層への教師入力データが教師入力データ記憶手段50に登録される。従って、2番目の層への教師入力データと、2番目の層への教師出力データとが揃っているので、2番目の層の重み値を求めることができる。それから、後述する教師入力データ生成処理で、この重み値最適化処理により求めた2番目の層の重み値と、2番目の層への教師入力データとを用いて、3番目の層への教師入力データを生成して教師入力データ記憶手段50に登録する。続いて、教師入力データ生成処理により生成した3番目の層への教師入力データと、3番目の層への教師出力データとを用いて、3番目の層の重み値を求める。この循環を繰り返すことにより(後述する図12のステップS309~S312のループ処理を参照)、全ての中間層および出力層の重み値を求めることができる。
図8には、以上の重み値最適化処理の導出過程が示されている。先ず、図3に示したNNの符合を用いて、誤差Ewを記載すると、次の式(12)のようになる。ここでは、誤差Ewを2乗和による誤差としているので、最小二乗法による最適化処理を実行することを前提としているが、誤差Ewは、誤差の2乗の和に限らず、例えば、誤差の絶対値の和や、誤差の4乗の和等としてもよく、誤差Ewの定義は任意である。
Ew=(1/2)Σp{ΣiYa(i),pWa(i)b(j)-f-1(Ytb(j),p)}2 (12)
この誤差Ewを最小にするパラメータWa(i)b(j)を求めるので、式(12)をパラメータWa(i)b(j)で偏微分した式をゼロと置くことにより、次の式(13)を得る。そして、この式(13)をi=1,2,3,4、j=1,2,3について書き出す。すなわち、中間層bの重み値Wa(1)b(1)、Wa(1)b(2)、Wa(2)b(1)、Wa(2)b(2)等で偏微分する。ここで特徴的なのは、前述した図6の式(7)とは異なり、Ya(i),pではなく、Wa(i)b(j)をパラメータとすることにより、Wa(i)b(j)で偏微分している点である。従って、同様な誤差Eの式について、ある処理では、出力値をパラメータとし、別の処理では、重み値をパラメータとするというパラメータの入れ替えを行っている。
∂Ew/∂Wa(i)b(j)=0 ・・・・・・・・・・・・・・・(13)
上記の式(13)より、図8に示すような次の行列表現の式(14)が得られるので、最適解となるパラメータWa(i)b(j)を求めることができる。[Wab(j)]が、求める解の集合である縦ベクトルである。式(14)は、j=1,2,3の各々について得られるので、Wab(j)を求める処理を3回(中間層bのニューロン数だけ)繰り返す。[Ra,p]は、正方行列であり、教師入力データ記憶手段50に記憶されている教師入力データYa(i),p(入力層aのi番目のニューロンから出力される中間層bへの教師入力データ)を代入して得られる。[Vab(j),p]は、縦ベクトルであり、教師入力データ記憶手段50に記憶されている教師入力データYa(i),pを代入するとともに、教師出力データ記憶手段49に記憶されている教師出力データYtb(j),pを代入して得られる。
[Ra,p][Wab(j)]=[Vab(j),p] ・・・・・・・・・・(14)
さらに、複数の中間層b(b1,b2)がある場合の中間層b2の出力についての誤差Ew、および出力層cの出力についての誤差Ewも同様であるため、以上の式(12)、式(13)、式(14)を一般化する。この際、式(12)~式(14)では、入力層aのニューロンの番号をiとし、中間層bのニューロンの番号をjとしていたが、一般化した後は、(n-1)番目の層のニューロンの番号をjとし、n番目の層のニューロンの番号をkとする。従って、jが示す意味は、一般化の前後で逆転している。
前述した式(12)を一般化すると、次の式(15)となる。式(15)は、n番目の層の出力についての誤差Ew(n)である。n=2,3,4,…,Nであり、Nは層の数である。
Ew(n)=(1/2)Σp{ΣjY(n-1,j;p)W(n-1,j;n,k)-f-1(Yt(n,k;p))}2 ・・・・・・・・・(15)
ここで、k=1~M(n)であり、kは、n番目の層のニューロンの番号であり、M(n)は、n番目の層のニューロン数である。Σpは、p=1~Mpの和であり、pは、教師データセットの番号であり、Mpは、教師データセット数である。Σjは、j=1~M(n-1)の和であり、jは、(n-1)番目の層のニューロンの番号であり、M(n-1)は、(n-1)番目の層のニューロン数である。Y(n-1,j;p)は、(n-1)番目の層のj番目のニューロンの出力値である。Yt(n,k;p)は、n番目の層のk番目のニューロンの出力に対する教師出力データである。
この誤差Ew(n)を最小にするパラメータW(n-1,j;n,k)を求めるので、式(15)をパラメータW(n-1,j;n,k)で偏微分した式をゼロと置くことにより、次の式(16)を得る。式(16)は、前述した式(13)を一般化した式である。そして、この式(16)をj=1~M(n-1)、k=1~M(N)について書き出す。
∂Ew(n)/∂W(n-1,j;n,k)=0 ・・・(16)
上記の式(16)より、図8の最下部および図9に示すような次の行列表現の式(17)が得られるので、最適解となるパラメータW(n-1,j;n,k)を求めることができる。式(17)は、前述した図8の式(14)を一般化した式である。
[R(n-1;p)][W(n-1;n,k)]=[V(n-1;n,k;p)] ・・・・・・・・・・・・・・・・・・・・・(17)
ここで、[R(n-1;p)]は、重み最適化用行列であり、M(n-1)行×M(n-1)列の正方行列である。M(n-1)は、(n-1)番目の層のニューロン数である。Y(n-1,j;p)は、(n-1)番目の層のj番目のニューロンから出力されるn番目の層の各ニューロンへの教師入力データであり、j=1~M(n-1)である。p=1~Mpであり、pは、教師データセットの番号であり、Mpは、教師データセット数である。この重み最適化用行列R(n-1;p)の各要素の値は、教師入力データ記憶手段50に記憶されている教師入力データY(n-1,j;p)を代入して得られる。
また、[W(n-1;n,k)]は、重みベクトルであり、M(n-1)次元の縦ベクトルである。この重みベクトルW(n-1;n,k)は、重み値最適化処理で求める(n-1)番目の層の各ニューロンからn番目の層のk番目のニューロンへの重み値の集合である。W(n-1,j;n,k)は、(n-1)番目の層のj番目のニューロンからn番目の層のk番目のニューロンへの重み値である。k=1~M(n)であり、kは、n番目の層のニューロンの番号、M(n)は、n番目の層のニューロン数である。式(17)は、k=1~M(n)について得られるので、重みベクトルW(n-1;n,k)を求める処理をM(n)回繰り返す。この重みベクトルW(n-1;n,k)の各要素の値は、重み最適化用行列R(n-1;p)の逆行列を計算し、その逆行列を、重み最適化用ベクトルV(n-1;n,k;p)の左側からV(n-1;n,k;p)に掛けることにより求めることができる。また、LQ分解等を用いて求めてもよい。重み最適化用行列R(n-1;p)の逆行列が存在しない場合には、何らかの方法で逆行列の近似値を求めてもよく、その方法は、前述した図7の教師出力生成用行列Q(n-1;n)の逆行列が存在しない場合と同様である。
さらに、[V(n-1;n,k;p)]は、重み最適化用ベクトルであり、M(n-1)次元の縦ベクトルである。f-1は、活性化関数fの逆関数である。Yt(n,k;p)は、n番目の層のk番目のニューロンの出力に対する教師出力データである。この重み最適化用ベクトルV(n-1;n,k;p)の各要素の値は、教師入力データ記憶手段50に記憶されている教師入力データY(n-1,j;p)を代入するとともに、教師出力データ記憶手段49に記憶されている教師出力データYt(n,k;p)を代入して得られる。
また、各層の出力の計算式が、前の層の出力値の重み付き和Sではなく、より複雑な式である場合や、誤差Ew(n)を2乗和で定義しなかった場合には、式(17)のような簡潔な式で最適解を求めることができない場合が多いが、その場合には、例えば、勾配法(最急降下法)等の繰り返し計算により、最適に近い解を求めることができる。この場合の繰り返し計算による最適化処理は、各層について、層毎に独立して実行される処理であり、ネットワーク全体に渡って実行される処理ではない。従って、全ての層での最適化処理の実行時間を合計しても、従来の誤差逆伝播法等の繰り返し計算を行う場合に比べ、短時間で解を得ることができる。
(学習手段33/重み値最適化手段33Dの構成:教師入力データ生成処理)
重み値最適化手段33Dは、教師入力データ生成処理では、上述した重み値最適化処理により求めた自層の重み値、および教師入力データ記憶手段50に記憶された自層の入力側の層から自層への教師入力データを用いて、自層の出力の計算式により自層の出力値を算出し、算出した自層の出力値を、自層の出力側の層への教師入力データとして教師入力データ記憶手段50に記憶させる。
重み値最適化手段33Dは、教師入力データ生成処理では、上述した重み値最適化処理により求めた自層の重み値、および教師入力データ記憶手段50に記憶された自層の入力側の層から自層への教師入力データを用いて、自層の出力の計算式により自層の出力値を算出し、算出した自層の出力値を、自層の出力側の層への教師入力データとして教師入力データ記憶手段50に記憶させる。
具体的には、重み値最適化手段33Dは、教師入力データ生成処理では、上述した重み値最適化処理により決定した(n-1)番目の層からn番目の層への重み値、および教師入力データ記憶手段50に記憶された(n-1)番目の層からn番目の層への教師入力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式に、(n-1)番目の層からn番目の層への教師入力データを入力することにより、n番目の層の出力値を算出し、算出したn番目の層の出力値を、(n+1)番目の層への教師入力データとして教師入力データ記憶手段50に記憶させる。
図10には、前述した式(2)および式(3)を一般化した次の式(18)が示されている。この式(18)は、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式であり、上記の教師入力データ生成処理で用いる計算式である。但し、式(18)は、(n-1)番目の層の出力値の重み付き和Sを含む式となっているが、本発明では、各層の出力の計算式は、重み付き和Sを含む式に限定されるものではない。
Y(n,k;p)=f(ΣjW(n-1,j;n,k)Y(n-1,j;p)) ・・・・・・・・・・・・・・・・・・・・・・・(18)
ここで、p=1~Mpであり、pは教師データセットの番号、Mpは教師データセット数である。j=1~M(n-1)であり、jは、(n-1)番目の層(自層の入力側の層)のニューロンの番号、M(n-1)は、(n-1)番目の層のニューロン数である。fは、活性化関数である。Y(n,k;p)は、n番目の層(自層)のk番目のニューロンの出力値、すなわち求める(n+1)番目の層(自層の出力側の層)への教師入力データである。W(n-1,j;n,k)は、(n-1)番目の層(自層の入力側の層)のj番目のニューロンからn番目の層(自層)のk番目のニューロンへの重み値である。Y(n-1,j;p)は、(n-1)番目の層(自層の入力側の層)のj番目のニューロンの出力値、すなわちn番目の層(自層)への教師入力データである。
また、教師入力データ生成処理は、n=2からn=(N-1)までnを1ずつ増やしながら実行する。nは層の番号、Nは層の数である。従って、n=Nの処理(出力層の処理)は不要である。n=Nの処理(出力層の処理)を実行すると、存在しない(N+1)番目の層への教師入力データを生成することになるからである。なお、n=1の処理(入力層の処理)がないのは、入力層の出力側の層(2番目の層)への教師入力データは、入力層用教師入力データ登録手段33Cにより教師入力データ記憶手段50に登録されるからである。
さらに、前述した重み値最適化処理は、通常、n=2からn=Nまでnを1ずつ増やしながら実行し、ニューラルネットワークの全ての層の重み値を調整決定するが、例えば、中間層の出力を抽出し、他のシステムで利用する場合等には、重み値最適化処理は、必ずしもn=2からn=Nまでの全てについて実行する必要はなく、途中の層までの処理としてもよかった。従って、これに合わせて、教師入力データ生成処理も、途中の層までの処理としてもよい。
<記憶手段40の詳細構成>
(記憶手段40/プログラム記憶手段41の構成)
プログラム記憶手段41は、NNの学習で用いられる各種のプログラムを記憶するものである。このプログラム記憶手段41は、補助記憶装置140(図2参照)により実現されるが、処理中には、メインメモリ120上のプログラム領域もプログラム記憶手段41となる。
プログラム記憶手段41は、NNの学習で用いられる各種のプログラムを記憶するものである。このプログラム記憶手段41は、補助記憶装置140(図2参照)により実現されるが、処理中には、メインメモリ120上のプログラム領域もプログラム記憶手段41となる。
(記憶手段40/ネットワーク構成情報記憶手段42の構成)
ネットワーク構成情報記憶手段42は、図4に示すように、NNのネットワーク構成情報として、NNの層の番号と、各層のニューロン数と、各層の活性化関数とを関連付けて記憶するものである。このネットワーク構成情報記憶手段42は、補助記憶装置140により実現されるが、メインメモリ120上にネットワーク構成情報が読み込まれたときには、メインメモリ120上の当該情報の記憶領域も、ネットワーク構成情報記憶手段42となる。
ネットワーク構成情報記憶手段42は、図4に示すように、NNのネットワーク構成情報として、NNの層の番号と、各層のニューロン数と、各層の活性化関数とを関連付けて記憶するものである。このネットワーク構成情報記憶手段42は、補助記憶装置140により実現されるが、メインメモリ120上にネットワーク構成情報が読み込まれたときには、メインメモリ120上の当該情報の記憶領域も、ネットワーク構成情報記憶手段42となる。
(記憶手段40/取得教師データ記憶手段43の構成)
取得教師データ記憶手段43は、図3に示すように、NNの外部から取得した多数の教師データセット(ネットワーク全体に対する教師データ群)を記憶するものである。この取得教師データ記憶手段43は、補助記憶装置140により実現されるが、メインメモリ120上に読み込んだ教師データセットを、教師出力データ記憶手段49や教師入力データ記憶手段50の領域とは別の領域に残しておく場合には、その別の領域も、取得教師データ記憶手段43となる。
取得教師データ記憶手段43は、図3に示すように、NNの外部から取得した多数の教師データセット(ネットワーク全体に対する教師データ群)を記憶するものである。この取得教師データ記憶手段43は、補助記憶装置140により実現されるが、メインメモリ120上に読み込んだ教師データセットを、教師出力データ記憶手段49や教師入力データ記憶手段50の領域とは別の領域に残しておく場合には、その別の領域も、取得教師データ記憶手段43となる。
(記憶手段40/入力側層アドレス記憶手段44の構成)
入力側層アドレス記憶手段44は、図5に示すように、NNの各層についての自層の入力側の層のアドレスを、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この入力側層アドレス記憶手段44は、メインメモリ120上に配置された図5の変数(C)の記憶領域により実現される。変数(C)の値の形式は、アドレス値である。
入力側層アドレス記憶手段44は、図5に示すように、NNの各層についての自層の入力側の層のアドレスを、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この入力側層アドレス記憶手段44は、メインメモリ120上に配置された図5の変数(C)の記憶領域により実現される。変数(C)の値の形式は、アドレス値である。
(記憶手段40/重み値記憶手段45の構成)
重み値記憶手段45は、図5に示すように、NNの各層についての重み値(自層の入力側の層の各ニューロンから自層の各ニューロンへの重み値)を、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この重み値記憶手段45は、メインメモリ120上に配置された図5の変数(D)の記憶領域により実現される。変数(D)の値の形式は、2次元配列の実数型データである。また、調整決定後の重み値は、依頼者へデータ送信される等、利活用に供されるので、補助記憶装置140にも記憶される。従って、補助記憶装置140上の重み値の格納場所も、重み値記憶手段45である。また、初期化手段32による重み値の初期化処理を、乱数ではなく、稼働中のシステムの更新前の重み値や、同一または類似のネットワーク構成を有するシステムの重み値等を用いて実行する場合には、それらの初期化用の重み値を補助記憶装置140に格納しておくので、補助記憶装置140上の初期化用の重み値の格納場所も、重み値記憶手段45である。
重み値記憶手段45は、図5に示すように、NNの各層についての重み値(自層の入力側の層の各ニューロンから自層の各ニューロンへの重み値)を、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この重み値記憶手段45は、メインメモリ120上に配置された図5の変数(D)の記憶領域により実現される。変数(D)の値の形式は、2次元配列の実数型データである。また、調整決定後の重み値は、依頼者へデータ送信される等、利活用に供されるので、補助記憶装置140にも記憶される。従って、補助記憶装置140上の重み値の格納場所も、重み値記憶手段45である。また、初期化手段32による重み値の初期化処理を、乱数ではなく、稼働中のシステムの更新前の重み値や、同一または類似のネットワーク構成を有するシステムの重み値等を用いて実行する場合には、それらの初期化用の重み値を補助記憶装置140に格納しておくので、補助記憶装置140上の初期化用の重み値の格納場所も、重み値記憶手段45である。
(記憶手段40/重み付き和記憶手段46の構成)
重み付き和記憶手段46は、図5に示すように、NNの各層についての重み付き和Sの値(自層の入力側の層の出力値の重み付き和Sの値であり、自層の活性化関数fに入力する前の値)を、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この重み付き和記憶手段46は、メインメモリ120上に配置された図5の変数(E)の記憶領域により実現される。変数(E)の値の形式は、1次元配列の実数型データである。この変数(E)は、調整決定後の重み値およびテストデータを用いて、構築したNNのテストを行う場合等に使用される。
重み付き和記憶手段46は、図5に示すように、NNの各層についての重み付き和Sの値(自層の入力側の層の出力値の重み付き和Sの値であり、自層の活性化関数fに入力する前の値)を、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この重み付き和記憶手段46は、メインメモリ120上に配置された図5の変数(E)の記憶領域により実現される。変数(E)の値の形式は、1次元配列の実数型データである。この変数(E)は、調整決定後の重み値およびテストデータを用いて、構築したNNのテストを行う場合等に使用される。
(記憶手段40/活性化関数種類記憶手段47の構成)
活性化関数種類記憶手段47は、図5に示すように、NNの各層についての活性化関数の種類を、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この活性化関数種類記憶手段47は、メインメモリ120上に配置された図5の変数(F)の記憶領域により実現される。変数(F)の値の形式は、整数値である。なお、活性化関数は、層毎に異なる関数を設定することができ、例えば、シグモイド関数、ReLU関数、ハイパボリックタンジェント関数(tanh関数)、SELU関数、ソフトマックス関数、ステップ関数、不連続関数等、様々な関数を各層の活性化関数の選択肢として用意しておくことができる。
活性化関数種類記憶手段47は、図5に示すように、NNの各層についての活性化関数の種類を、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この活性化関数種類記憶手段47は、メインメモリ120上に配置された図5の変数(F)の記憶領域により実現される。変数(F)の値の形式は、整数値である。なお、活性化関数は、層毎に異なる関数を設定することができ、例えば、シグモイド関数、ReLU関数、ハイパボリックタンジェント関数(tanh関数)、SELU関数、ソフトマックス関数、ステップ関数、不連続関数等、様々な関数を各層の活性化関数の選択肢として用意しておくことができる。
(記憶手段40/出力値記憶手段48の構成)
出力値記憶手段48は、図5に示すように、NNの各層についての出力値(自層の入力側の層の出力値を用いて自層の出力の計算式により計算された自層の出力値であり、活性化関数fを使用する層の場合には、活性化関数へ入力した後の値)を、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この出力値記憶手段48は、メインメモリ120上に配置された図5の変数(G)の記憶領域により実現される。変数(G)の値の形式は、1次元配列の実数型データである。この変数(G)は、調整決定後の重み値およびテストデータを用いて、構築したNNのテストを行う場合等に使用される。
出力値記憶手段48は、図5に示すように、NNの各層についての出力値(自層の入力側の層の出力値を用いて自層の出力の計算式により計算された自層の出力値であり、活性化関数fを使用する層の場合には、活性化関数へ入力した後の値)を、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この出力値記憶手段48は、メインメモリ120上に配置された図5の変数(G)の記憶領域により実現される。変数(G)の値の形式は、1次元配列の実数型データである。この変数(G)は、調整決定後の重み値およびテストデータを用いて、構築したNNのテストを行う場合等に使用される。
(記憶手段40/教師出力データ記憶手段49の構成)
教師出力データ記憶手段49は、図5に示すように、NNの各層についての自層の出力に対する教師出力データを、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この教師出力データ記憶手段49は、メインメモリ120上に配置された図5の変数(H)の記憶領域により実現される。変数(H)の値の形式は、2次元配列の実数型データである。また、生成した教師出力データは、依頼者にデータ送信する等、利活用に供されるので、補助記憶装置140にも記憶される。従って、補助記憶装置140上の教師出力データの格納場所も、教師出力データ記憶手段49である。
教師出力データ記憶手段49は、図5に示すように、NNの各層についての自層の出力に対する教師出力データを、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この教師出力データ記憶手段49は、メインメモリ120上に配置された図5の変数(H)の記憶領域により実現される。変数(H)の値の形式は、2次元配列の実数型データである。また、生成した教師出力データは、依頼者にデータ送信する等、利活用に供されるので、補助記憶装置140にも記憶される。従って、補助記憶装置140上の教師出力データの格納場所も、教師出力データ記憶手段49である。
(記憶手段40/教師入力データ記憶手段50の構成)
教師入力データ記憶手段50は、図5に示すように、NNの各層についての自層の出力側の層への教師入力データを、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この教師入力データ記憶手段50は、メインメモリ120上に配置された図5の変数(I)の記憶領域により実現される。変数(I)の値の形式は、2次元配列の実数型データである。また、生成した教師入力データが、依頼者にデータ送信される等、利活用に供される場合には、教師入力データも補助記憶装置140に記憶される。従って、補助記憶装置140上の教師入力データの格納場所も、教師入力データ記憶手段50である。
教師入力データ記憶手段50は、図5に示すように、NNの各層についての自層の出力側の層への教師入力データを、各層の識別情報(アドレスや層の番号)と関連付けて記憶するものである。この教師入力データ記憶手段50は、メインメモリ120上に配置された図5の変数(I)の記憶領域により実現される。変数(I)の値の形式は、2次元配列の実数型データである。また、生成した教師入力データが、依頼者にデータ送信される等、利活用に供される場合には、教師入力データも補助記憶装置140に記憶される。従って、補助記憶装置140上の教師入力データの格納場所も、教師入力データ記憶手段50である。
<学習の流れ:図11、図12>
図11において、先ず、教師データ取得手段31により、ニューラルネットワークの外部から取得した多数(Mp個)の教師データセットを、取得教師データ記憶手段43(図3参照)に記憶させる(ステップS1)。この際、教師データセットは、情報処理装置10の管理者が収集したデータでもよく、依頼者端末(または依頼者が管理するシステム)80から通信回線1を介して受信したデータでもよく、依頼者から記録媒体90に格納された状態で受け取ったデータでもよい。
次に、初期化手段32により、ネットワーク構成情報の取得処理と、各層の情報の初期化処理とを実行する(ステップS2)。これらの処理の詳細については、初期化手段32の説明で既に詳述しているため、ここでは簡単に説明する。
初期化手段32は、ネットワーク構成情報の取得処理では、ネットワーク構成情報記憶手段42(図4参照)からネットワーク構成情報(層の番号、各層のニューロン数、活性化関数の種類)を読み込み、読み込んだネットワーク構成情報に従って、メインメモリ120上に各層の情報の記憶領域(図5参照)を確保する。
また、初期化手段32は、各層の情報の初期化処理として、自層の入力側の層のメモリアドレスを入力側層アドレス記憶手段44に記憶させる処理と、重み値を乱数で初期化して重み値記憶手段45に記憶させる処理と、重み付き和Sの値を0で初期化して重み付き和記憶手段46に記憶させる処理と、ネットワーク構成情報記憶手段42(図4参照)から読み込んだネットワーク構成情報に基づき活性化関数の種類を識別する整数値を活性化関数種類記憶手段47に記憶させる処理とを実行する。
続いて、学習手段33により、ニューラルネットワークの学習処理を実行する(ステップS3)。図12には、この学習処理の流れが示されている。
図12において、先ず、出力層用教師出力データ登録手段33Aにより、取得教師データ記憶手段43(図3参照)に記憶されている教師データセット(Mp個)のうちの教師出力データ(要素数は、Mp×出力層のニューロン数M(N))を、出力層(N番目の層)の出力に対する教師出力データとして教師出力データ記憶手段49(図5の変数(H)参照)に記憶させる(ステップS301)。
次に、n=N(Nは層の数)とし、出力層(N番目の層)から順に、教師出力データ生成手段33Bによる各層の教師出力データの生成を開始する(ステップS302)。
それから、教師出力データ生成手段33Bにより、教師出力データ記憶手段49に記憶されているn番目の層の出力に対する教師出力データを正規化する教師出力データ正規化処理を実行する(ステップS303)。但し、出力層(n=N)では、教師データセットのうちの教師出力データが教師出力データ記憶手段49に記憶されているので、教師出力データ正規化処理は実行しない。この教師出力データ正規化処理の詳細については、教師出力データ生成手段33Bの説明で既に詳述しているので、ここでは詳しい説明を省略する。
続いて、教師出力データ生成手段33Bにより、n=2であるか否かを判断する(ステップS304)。
ここで、n=2でない場合には、教師出力データ生成手段33Bは、n番目の層の出力についての誤差Ey(n)を最小にする最適化処理により、(n-1)番目の層の出力に対する教師出力データを生成し、生成した教師出力データを教師出力データ記憶手段49に記憶させる教師出力データ生成処理を実行する(ステップS305)。この教師出力データ生成処理の詳細については、教師出力データ生成手段33Bの説明で既に詳述しているので、ここでは詳しい説明を省略する。
そして、1つ前の層の処理に移行するため、nを1減らし(ステップS306)、前述したステップS303の処理に戻る。以降、前述したステップS304でn=2であると判断されるまで、ステップS303~S306の処理を繰り返す。
一方、前述したステップS304でn=2であった場合には、ステップS303~S306のループを抜け、教師出力データ生成手段33Bによる処理を終了する。ステップS303~S306のループでは、nを1ずつ減らしながら、教師出力データ生成手段33Bによる教師出力データ正規化処理(ステップS303)および教師出力データ生成処理(ステップS305)を繰り返すので、教師出力データ正規化処理(ステップS303)は、n=2まで実行されることになり、教師出力データ生成処理(ステップS305)は、n=3まで実行されることになる。
従って、n=2のときの教師出力データ正規化処理(ステップS303)では、2番目の層の出力に対する教師出力データを正規化することになり、n=3のときの教師出力データ生成処理(ステップS305)では、1つ前の層(2番目の層)の出力に対する教師出力データを生成することができるので(図7参照)、2番目の層の出力に対する教師出力データを生成することになる。入力層(1番目の層)では、前述した式(1)のように入力がそのまま出力となるので、入力層の出力に対する教師出力データの生成や正規化は必要ないからである。なお、時間的には、n=3のときの教師出力データ生成処理(ステップS305)の後に、n=2のときの教師出力データ正規化処理(ステップS303)が実行されるので、2番目の層の出力に対する教師出力データが生成されてから、その教師出力データの正規化が実行されることになる。
そして、ステップS303~S306のループを抜け、教師出力データ生成手段33Bによる処理を終了した後に、入力層用教師入力データ登録手段33Cにより、取得教師データ記憶手段43(図3参照)に記憶されている教師データセット(Mp個)のうちの教師入力データ(要素数は、Mp×入力層のニューロン数M(1))を、入力層の出力側の層(2番目の層)への教師入力データとして教師入力データ記憶手段50のうちの入力層(1番目の層)の情報の記憶領域(図5の変数(I)参照)に記憶させる(ステップS307)。
次に、n=2とし、2番目の層から順に、重み値最適化手段33Dによる各層の重み値の最適化および教師入力データの生成を開始する(ステップS308)。
それから、重み値最適化手段33Dにより、n番目の層の出力についての誤差Ew(n)を最小にする最適化処理により、(n-1)番目の層からn番目の層への重み値(n番目の層の出力計算で用いる重み値)を求め、求めた重み値を重み値記憶手段45に記憶させる重み値最適化処理を実行する(ステップS309)。この重み値最適化処理の詳細については、重み値最適化手段33Dの説明で既に詳述しているので、ここでは詳しい説明を省略する。
続いて、重み値最適化手段33Dにより、n=Nであるか否かを判断する(ステップS310)。
ここで、n=Nでない場合には、重み値最適化手段33Dは、重み値最適化処理で得られて重み値記憶手段45に記憶されているn番目の層の重み値、および教師入力データ記憶手段50に記憶されているn番目の層への教師入力データを用いて、n番目の層の出力の計算式でn番目の層の出力値を計算することにより、(n+1)番目の層(自層の出力側の層)への教師入力データを生成し、生成した教師入力データを教師入力データ記憶手段50に記憶させる教師入力データ生成処理を実行する(ステップS311)。この教師入力データ生成処理の詳細については、重み値最適化手段33Dの説明で既に詳述しているので、ここでは詳しい説明を省略する。
そして、次の層の処理に移行するため、nを1増やし(ステップS312)、前述したステップS309の処理に戻る。以降、前述したステップS310でn=Nであると判断されるまで、ステップS309~S312の処理を繰り返す。
一方、前述したステップS310でn=Nであった場合には、ステップS309~S312のループを抜け、学習処理を終了する。ステップS309~S312のループでは、nを1ずつ増やしながら、重み値最適化手段33Dによる重み値最適化処理(ステップS309)および教師入力データ生成処理(ステップS311)を繰り返すので、重み値最適化処理(ステップS309)は、n=Nまで実行されることになり、教師入力データ生成処理(ステップS311)は、n=(N-1)まで実行されることになる。
従って、n=Nのときの重み値最適化処理(ステップS309)では、出力層(N番目の層)の重み値を調整決定することになり、n=(N-1)のときの教師入力データ生成処理(ステップS311)では、自層の出力側の層(N番目の層)への教師入力データを生成することができるので、出力層(N番目の層)への教師入力データを生成することになる。時間的には、n=(N-1)のときの教師入力データ生成処理(ステップS311)の後に、n=Nのときの重み値最適化処理(ステップS309)が実行されるので、出力層(N番目の層)への教師入力データが生成されてから、出力層(N番目の層)の重み値の調整決定が行われることになる。
<本実施形態の効果>
このような本実施形態によれば、次のような効果がある。すなわち、情報処理装置10は、教師出力データ生成手段33Bを備えているので、ニューラルネットワークの全ての中間層の出力に対する教師出力データを生成することができる。従って、ネットワーク全体に対する教師データセットとして与えられる出力層の出力に対する教師出力データと合わせ、NNの各層の出力に対する教師出力データを得ることができる。なお、前述した式(1)に示すように入力層には重み値はないので、入力層の出力に対する教師出力データは必要ない。
また、教師出力データ生成手段33Bは、初期化後の重み値を固定した状態で、各層について、層毎に独立した最適化処理により、各層の出力に対する教師出力データを生成するので、教師出力データの生成にあたり、繰り返し計算を全く行う必要がないか、または、繰り返し計算を行ったとしても、層毎に独立した最適化処理での局所的な繰り返し計算(ニューロン毎に計算単位を分割できる場合もある。)となる。このため、教師出力データ生成処理は、短時間で実行することができる。
なお、教師出力データ生成手段33Bによる最適化処理で中間層の出力に対する教師出力データを生成するという情報処理技術に関する思想、すなわち、ある層(n番目の層)の出力の誤差Ey(n)を最小にする解(最適解またはそれに近い解)を求め、求めた解を、前の層((n-1)番目の層)の出力に対する教師出力データであると考える思想(図6の式(8)、図7の式(11)参照)は、容易に想到できる思想ではない。なぜなら、回帰やフィッティングの分野では、求めた解は、誤差Ey(n)の定義に含まれる出力の計算式に入れ戻すのが通常の流れ(普通の考え方)であり、そのために最適化処理を行っているともいえる。従って、求めた解を、別の最適化処理(本発明では、前の層の出力の誤差を最小にする解を求める最適化処理)で使用する教師出力データであると考えることは、自然な流れではないからである。ここに本発明の大きな特徴があるとともに、それを実現するために、誤差の式を、重み値ではなく、出力値で偏微分し、ゼロと置くことに特徴がある。
さらに、情報処理装置10は、重み値最適化手段33Dを備えているので、教師出力データ生成手段33Bにより生成した教師出力データを用いて、出力層および全ての中間層の重み値を、層毎に独立した局所的な最適化処理(各層内の計算処理において、ニューロン毎に計算単位を分割できる場合もある。)で求めることができる。このため、重み値を調整決定する場面でも、繰り返し計算を全く行う必要がなくなるか、または、繰り返し計算を行ったとしても、層毎に独立した最適化処理での局所的な繰り返し計算(ニューロン毎に計算単位を分割できる場合もある。)となる。
従って、教師出力データ生成手段33Bにより各層の出力に対する教師出力データを生成する場面、あるいは、重み値最適化手段33Dにより、教師出力データ生成手段33Bにより生成した教師出力データを用いて各層の重み値を調整決定する場面の双方について、繰り返し計算を全く行う必要がなくなるか、または、層内に留まる局所的な繰り返し計算(各層内の計算処理において、ニューロン毎に計算単位を分割できる場合もある。)で済むようになる。このため、従来の誤差逆伝播法等のようなネットワーク全体に渡る繰り返し計算を行う必要はないので、従来に比べ、短時間での効果的な学習を行うことができる。
また、繰り返し計算を行う場合は、繰り返し計算で必要となる更新率を試行錯誤しながら調整する手間がかかるが、情報処理装置10では、少なくともネットワーク全体に渡って行われる繰り返し計算で必要となる更新率について、その値を試行錯誤しながら調整する手間を回避することができるので、学習時の作業者(情報処理装置10の管理者)の手間を軽減することができる。
さらに、少なくともネットワーク全体に渡って行われる繰り返し計算を回避することができるので、学習に要する時間が繰り返し数に全く依存しないか、または依存したとしても層毎の局所的な繰り返し計算(各層内の計算処理において、ニューロン毎に計算単位を分割できる場合もある。)での繰り返し数に依存するだけとなる。このため、学習に必要な時間数を予め見積もり易くすることができる。
また、既存の学習方法では、f(x)=x2等といった特定の活性化関数を用いた場合、重み調整を行ってもニューラルネットワークの出力値に大きな誤差が生じるという問題があったが、情報処理装置10では、全ての層を層毎の最適化処理(教師出力データ生成手段33Bによる最適化処理、および重み値最適化手段33Dによる最適化処理)で学習することができるため、活性化関数の種類によらずに誤差を低減することができる。
さらに、教師出力データ生成手段33Bにより生成した教師出力データは、図1に示すように、ニューラルネットワークの外部に抽出し、インターネット等の通信回線1、またはDVDやUSBメモリ等の記録媒体90により流通させることができるため、各種システムを構成するニューラルネットワークの構築に利用することができる。
また、誤差Ey(n)および/または誤差Ew(n)の式を、図6の式(6)、式(9)、図8の式(12)、式(15)のように、二乗和で定義し、最小二乗法による最適化処理を行えば、最適解またはそれに近い解を求める式が簡易な式になり、計算時間を短くすることができる。特に、前述した式(2)、式(3)のように、各層の出力の計算式が、自層の入力側の層の出力値の重み付き和Sを含む式である場合には、出力値または重み値のいずれをパラメータと考えても、パラメータについて1次結合の式となるので、教師出力データ生成手段33Bによる最適化処理、および重み値最適化手段33Dによる最適化処理の双方が、線形最小二乗法による最適化処理となることから、最適解を求める式が、より簡易になり、計算時間を、より短くすることができるとともに、誤差も小さくすることができる。
さらに、教師出力データ生成手段33Bは、教師出力データ正規化処理を実行するので、最適化処理を実行する際に、逆行列の計算を安定させることができる。すなわち、逆行列の計算時に、大きな値の教師出力データが与えられると、計算に失敗することがあるが、そのような事態を回避することができる。
<効果確認のための実験>
(実験例1:図13~図16)
実験例1では、本発明により、図13に示した関数(A),(B),(C),(D)を学習させた。関数(B),(D)中のRNDは、0から1までの一様乱数である。X1,X2に0から1までの一様乱数を当て嵌めた(X1,X2)の組を1,000レコード作成し、これらを教師入力データとする。また、それらの(X1,X2)に関数(A)を適用した結果として得られた(Y1,Y2)の組を1,000レコード用意し、これらを教師出力データとする。関数(B),(C),(D)も同様である。以上は、すべてネットワーク全体に対する教師データである。
実験例1では、本発明により、図13に示した関数(A),(B),(C),(D)を学習させた。関数(B),(D)中のRNDは、0から1までの一様乱数である。X1,X2に0から1までの一様乱数を当て嵌めた(X1,X2)の組を1,000レコード作成し、これらを教師入力データとする。また、それらの(X1,X2)に関数(A)を適用した結果として得られた(Y1,Y2)の組を1,000レコード用意し、これらを教師出力データとする。関数(B),(C),(D)も同様である。以上は、すべてネットワーク全体に対する教師データである。
実験例1でネットワーク構成情報記憶手段42に記憶させるネットワーク構成情報は、図14のようにした。
また、比較のために、誤差逆伝播法による学習も行った。図15には、実験例1の結果(計算時間)が示されている。誤差逆伝播法の更新率は、0.001とした。誤差逆伝播法の結果は、1000回重みを更新し終えた時点(1000エポック)の数値である。図15に示した結果によれば、本発明の方法のほうが、誤差逆伝播法よりも計算時間が大幅に少なく、平均二乗誤差(MSE:mean squared error)も少ないことがわかる。
さらに、図16は、関数(A)の学習について、誤差逆伝搬法による繰り返し計算で誤差が収束する様子をグラフ化したものである。また、比較のため、本発明の方法による計算誤差も示されている。図16の比較結果によれば、本発明の方法のほうが、短時間で、かつ、小誤差であり、本発明の方法による計算結果が非常に優れていることがわかる。
なお、実験例1および以下の実験例2,3で使用したコンピュータの仕様(スペック)は、次の通りである。CPUは、Intel Core i9-8950HK(1コアのみを使用)(登録商標)、メインメモリは、32GB、OSは、Windows10(登録商標)、コンパイラは、Visual Studio 2019(登録商標)である。
(実験例2:図17、図18)
実験例2では、図17に示すように、活性化関数fをX2に変更し、前述した実験例1と同様な学習を行った。実験例1で用いたシグモイド関数は、次の式(F-1)で示され、実験例2で用いたX2関数は、次の式(F-2)で示される。なお、既に述べている通り、活性化関数fには、これら以外の様々な関数を採用することができる。
実験例2では、図17に示すように、活性化関数fをX2に変更し、前述した実験例1と同様な学習を行った。実験例1で用いたシグモイド関数は、次の式(F-1)で示され、実験例2で用いたX2関数は、次の式(F-2)で示される。なお、既に述べている通り、活性化関数fには、これら以外の様々な関数を採用することができる。
f(X)={2/(1+e-X)}-1 ・・・・・・・・(F-1)
f(X)=X2(X≧0)、f(X)=-X2(X<0) ・・(F-2)
図18には、実験例2の結果(計算時間)が示されている。誤差逆伝播法では学習に失敗し、出力値が全てnan(not a number)となったのに対し、本発明の方法では学習に成功した。一般に、誤差逆伝播法等の繰り返し計算による学習で学習に失敗すると、重み値が極端に大きな値をとり、復帰できなくなる現象等が知られている。
(実験例3:図19~図23)
実験例3では、図19に示すように、UCI Machine Learning Repository (https://archive.ics.uci.edu/ml/index.php)から機械学習評価用のデータセットを取得して本発明の方法の評価を行った。図20に示す9種類のネットワーク構造(ネットワーク構造ID=β0~β8)を用意し、これらの9種類のネットワーク構造の各々について、図19に示す7種類のデータセット(データセットID=α1~α7)の各々を用いて学習を行った。
実験例3では、図19に示すように、UCI Machine Learning Repository (https://archive.ics.uci.edu/ml/index.php)から機械学習評価用のデータセットを取得して本発明の方法の評価を行った。図20に示す9種類のネットワーク構造(ネットワーク構造ID=β0~β8)を用意し、これらの9種類のネットワーク構造の各々について、図19に示す7種類のデータセット(データセットID=α1~α7)の各々を用いて学習を行った。
図20に示す9種類のネットワーク構造において、入力層のニューロン数および出力層のニューロン数は、図19に示す各データセットの入力次元数および出力次元数にそれぞれ等しい。中間層の活性化関数fは、いずれもシグモイド関数とし、出力層の活性化関数fは、Linear(活性化関数なし)とした。この場合、図20のネットワーク構造ID=β0の計算は、重回帰分析と同じ結果となる。
図21には、実験例3の結果(学習時間[ms])が示されている。c++ stl chrono(登録商標)により計測した値である。比較のため、本発明の方法、誤差逆伝播法(更新率0.00001)、誤差逆伝播法(更新率0.0001)について学習を行った。図21に示した結果によれば、本発明の方法による学習時間が、短時間であることがわかる。
図22には、実験例3の結果(絶対値誤差)が示されている。太枠で囲まれた数値は、7種類のデータセット(データセットID=α1~α7)の各々において、誤差が一番小さくなったネットワーク構造での誤差の値である。いずれのデータセットIDでも、本発明のほうが、誤差が小さくなった。
図23には、実験例3の結果(絶対値誤差)として、Yacht Hydrodynamics Data Set(データセットID=α7)のネットワーク構造ID=β4について、本発明の方法、誤差逆伝播法(更新率0.00001)、誤差逆伝播法(更新率0.0001)による各誤差の時間変化の様子が示されている。図中点線で示すように、誤差逆伝播法(更新率0.0001)では、途中から誤差が振動している。一般に、誤差逆伝播法等の繰り返し計算(イタレーション)を伴う手法では、更新率を高めに設定すると、早く収束することも多いが、振動を起こしやすくなる。
<変形の形態>
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
(CNNへの適用)
例えば、前記実施形態では、全結合層を対象とした説明となっていたが、本発明は、全結合層に限らず、例えば、畳み込み層(Convolutional layer)を有する畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)にも適用することができる。
例えば、前記実施形態では、全結合層を対象とした説明となっていたが、本発明は、全結合層に限らず、例えば、畳み込み層(Convolutional layer)を有する畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)にも適用することができる。
図24には、畳み込み層cでの処理の内容が示されている。ここでは、cという添え字は、出力層ではなく、畳み込み層cを示している。また、bという添え字は、中間層ではなく、畳み込み層cの1つ前の層を示している。図24では、一例として、2行×2列の畳み込み行列である重み行列Wが示されている。この重み行列Wは、畳み込み層cへの入力画像(畳み込み層cの1つ前の層bの出力画像)に対し、1画素ずつ位置をずらしながら適用されるフィルタの役割を果たすものである。従って、畳み込み層cの出力画像は、図24に示した次の出力の計算式(E-1)~(E-4)で得られる。
YC(1,1)=W11Yb(1,1)+W12Yb(1,2)+W21Yb(2,1)+W22Yb(2,2) (E-1)
YC(1,2)=W11Yb(1,2)+W12Yb(1,3)+W21Yb(2,2)+W22Yb(2,3) (E-2)
YC(2,1)=W11Yb(2,1)+W12Yb(2,2)+W21Yb(3,1)+W22Yb(3,2) (E-3)
YC(2,2)=W11Yb(2,2)+W12Yb(2,3)+W21Yb(3,2)+W22Yb(3,3) (E-4)
YC(1,2)=W11Yb(1,2)+W12Yb(1,3)+W21Yb(2,2)+W22Yb(2,3) (E-2)
YC(2,1)=W11Yb(2,1)+W12Yb(2,2)+W21Yb(3,1)+W22Yb(3,2) (E-3)
YC(2,2)=W11Yb(2,2)+W12Yb(2,3)+W21Yb(3,2)+W22Yb(3,3) (E-4)
図25には、CNNの教師出力データ生成処理の内容が示されている。先ず、畳み込み層cへの入力画像(1つ前の層bの出力画像)の各画素(i,j)と、畳み込み層cの出力画像の各画素(u,v)との関係を一般化し、全ての画素間に何らかの結合関係があるものと仮定する。従って、重み値は、Wb(i,j)c(u,v)と表現することができる。この重み値Wb(i,j)c(u,v)を用いて誤差Eyを記述すると、図25に示す式(E-5)のようになる。但し、前記実施形態で述べたように、誤差Eyは、必ずしも2乗和により定義する必要はない。
Ey=(1/2)Σ(u,v)Σp(Σ(i,j)Yb(i,j),pWb(i,j)c(u,v)-Ytc(u,v),p)2
・・・・・・・・(E-5)
・・・・・・・・(E-5)
しかし、畳み込み層cの処理で使用する重み行列Wは、1画素ずつ、ずらしながら使用するフィルタであるため、b(i,j)とc(u,v)との全ての結合関係を定めるものではない。例えば、図24の例では、b(1,1)とc(1,2)との間には結合がない。従って、b(i,j)とc(u,v)との間に結合がない場合には、Wb(i,j)c(u,v)は、ゼロの値をとる。
また、重み行列Wは、1画素ずつ、ずらしながら使用するフィルタであるため、b(i,j)とc(u,v)との結合の中に、同じ値となる重み値が存在する。例えば、Wb(1,1)c(1,1)は、W11であり、Wb(1,2)c(1,2)も、W11であるから、これらは、同じ値である。従って、図25に示す次の式(E-6)を用いて、重み置き換えを行う必要がある。
Wb(i,j)c(u,v)=W(i-u+1)(j-v+1) ・・・・・・・・・・(E-6)
但し、図24の例で、i-u+1≦0、j-v+1≦0、i-u+1≧3、j-v+1≧3の場合には、重み行列Wの各要素W11,W12,W21,W22の添え字の上限下限を外れる。従って、この場合には、W(i-u+1)(j-v+1)=0とする。
そして、式(E-5)で示した誤差Eyを最小にするYb(i,j),p(畳み込み層cの1つ前の層bの出力値)の解を求めるため、誤差EyをYb(i,j),pで偏微分してゼロとおくと、図25に示す次の式(E-7)となる。そして、この式(E-7)を、(i,j)=(1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3)について書き出す。すなわち、畳み込み層cの1つ前の層bの全画素について書き出す。
∂Ey/∂Yb(i,j),p=0 ・・・・・・・・・・・・・(E-7)
上記の式(E-7)により、図25の最下部に示す式(E-8)のような行列表現の式が得られる。式(E-8)の中央の縦ベクトルYtが、求める教師出力データの集合であり、前記実施形態の図7の式(11)の教師出力ベクトルYt(n-1;p)に相当する。この縦ベクトルYtの次元数は、畳み込み層cの1つ前の層bの画素数であり、3×3=9である。式(E-8)は、p=1~Mp(Mpは教師データセット数)について得られるので、求める教師出力データの数は、Ytの次元数9×Mpである。
式(E-8)の左側の正方行列Qは、前記実施形態の図7の式(11)の教師出力生成用行列Q(n-1;n)に相当する。この正方行列Qの要素数は、9画素×9画素なので、81である。また、式(E-8)の右側の縦ベクトルUは、前記実施形態の図7の式(11)の教師出力生成用ベクトルU(n-1;n;p)に相当する。この縦ベクトルUの要素数は、画素数と同じ9である。
式(E-8)を完成させる際には、先ず、式(E-8)の左側の正方行列Qの各要素と、右側の縦ベクトルUの各要素とをゼロと置いておく。
次に、式(E-7)を展開する。例えば、式(E-7)を5番目の画素を示す(i,j)=(2,2)について書き出すと、図25の最下部のような展開式が得られる。この展開式の中から、Yb(1,1),pの係数(W22W11等)を全部抽出し、式(E-8)の左側の正方行列Qの5番目の行におけるYtb(1,1),pに対応する要素(Ytb(1,1),pと掛け合わされる要素)に加算していく。また、展開式の中から、Yb(1,2),pの係数(W22W12、W21W11等)を全部抽出し、正方行列Qの5番目の行におけるYtb(1,2),pに対応する要素(Ytb(1,2),pと掛け合わされる要素)に加算していく。Yb(1,3),p、Yb(2,1),p、…、Yb(3,3),pの係数についても同様であり、すべて正方行列Qの5番目の行に加算していく。
このような加算処理を、全画素(i,j)について実行する。すなわち、式(E-7)を1番目の画素を示す(i,j)=(1,1)について書き出し、得られた展開式の中から各教師出力データ(Ytb(1,1),p、Yb(1,2),p、…)に対応する係数を全部抽出し、正方行列Qの1番目の行に加算していく。同様に、式(E-7)を2番目の画素を示す(i,j)=(1,2)について書き出し、得られた展開式の中から各教師出力データ(Ytb(1,1),p、Yb(1,2),p、…)に対応する係数を全部抽出し、正方行列Qの2番目の行に加算していく。他の画素についても同様である。
また、上記の展開式の中から、畳み込み層cの出力画像(2×2画素)に対する教師出力データYtc(u,v),p(Ytc(1,1),p、Ytc(1,2),p、Ytc(2,1),p、Ytc(2,2),p)を含む全部の項(W22Ytc(1,1),p、W21Ytc(1,2),p、W12Ytc(2,1),p、W11Ytc(2,2),p)を抽出し、式(E-8)の右側の縦ベクトルUの5番目の要素に加算する。
このような加算処理を、全画素(i,j)について実行する。すなわち、5番目の画素(i,j)=(2,2)以外の画素についても同様な処理を行い、縦ベクトルUの5番目の要素以外の要素に加算する。
図26には、CNNの畳み込み層cの重み値最適化処理の内容が示されている。先ず、前述した図25の式(E-5)の場合と同様に、各画素(i,j)と各画素(u,v)との関係を一般化した重み値Wb(i,j)c(u,v)を用いて誤差Ewを記述すると、図26に示す式(E-9)のようになる。但し、前記実施形態で述べたように、誤差Ewは、必ずしも2乗和により定義する必要はない。
Ew=(1/2)Σ(u,v)Σp(Σ(i,j)Yb(i,j),pWb(i,j)c(u,v)-Ytc(u,v),p)2
・・・・・・・・・(E-9)
・・・・・・・・・(E-9)
続いて、前述した図25の場合と同様に、b(i,j)とc(u,v)との間に結合がない場合には、Wb(i,j)c(u,v)をゼロとする。また、前述した式(E-6)による重み値の置き換えを行う。
そして、式(E-9)で示した誤差Ewを最小にするWb(i,j)c(u,v)の解を求めるため、誤差EwをWb(i,j)c(u,v)で偏微分してゼロとおくと、図26に示す次の式(E-10)となる。
∂Ew/∂W11=0、∂Ew/∂W12=0、
∂Ew/∂W21=0、∂Ew/∂W22=0 ・・・・(E-10)
∂Ew/∂W21=0、∂Ew/∂W22=0 ・・・・(E-10)
上記の式(E-10)により、図26の最下部に示す式(E-11)のような行列表現の式が得られる。式(E-11)の中央の縦ベクトルWが、求める重み値の集合であり、前記実施形態の図9の式(17)の重みベクトルW(n-1;n,k)に相当する。この縦ベクトルWの次元数は、畳み込み層cの画素数であり、2×2=4である。
式(E-11)の左側の正方行列Rは、前記実施形態の図9の式(17)の重み最適化用行列R(n-1;p)に相当する。この正方行列Rの要素数は、4画素×4画素なので、16である。また、式(E-11)の右側の縦ベクトルVは、前記実施形態の図9の式(17)の重み最適化用ベクトルV(n-1;n,k;p)に相当する。この縦ベクトルVの要素数は、画素数と同じ4である。
式(E-11)を完成させる際には、先ず、式(E-11)の左側の正方行列Rの各要素と、右側の縦ベクトルVの各要素とをゼロと置いておく。
次に、式(E-10)を展開する。例えば、式(E-10)の∂Ew/∂W11=0について書き出すと、図26の最下部のような展開式が得られる。この展開式の中から、W11の係数(Yb(1,1),pYb(1,1),p、Yb(1,2),pYb(1,2),p等)を全部抽出し、式(E-11)の左側の正方行列Rの1番目の行におけるW11に対応する要素(W11と掛け合わされる要素)に加算していく。同様に、展開式の中から、W12の係数(Yb(1,1),pYb(1,2),p等)を全部抽出し、式(E-11)の左側の正方行列Rの1番目の行におけるW12に対応する要素(W12と掛け合わされる要素)に加算していく。W21、W22も同様である。
このような加算処理を、式(E-10)の∂Ew/∂W12=0についても実行し、抽出した係数を、式(E-11)の左側の正方行列Rの2番目の行の各要素に加算していく。また、式(E-10)の∂Ew/∂W21=0についても実行し、抽出した係数を、式(E-11)の左側の正方行列Rの3番目の行の各要素に加算していく。さらに、式(E-10)の∂Ew/∂W22=0についても実行し、抽出した係数を、式(E-11)の左側の正方行列Rの4番目の行の各要素に加算していく。
また、上記の展開式の中から、畳み込み層cの出力画像(2×2画素)に対する教師出力データYtc(u,v),p(Ytc(1,1),p、Ytc(1,2),p、Ytc(2,1),p、Ytc(2,2),p)を含む全部の項(Yb(1,1),pYtc(1,1),p、Yb(1,2),pYtc(1,2),p、Yb(2,1),pYtc(2,1),p、Yb(2,2),pYtc(2,2),p)を抽出し、式(E-11)の右側の縦ベクトルVの1番目の要素に加算する。
このような加算処理を、式(E-10)の∂Ew/∂W12=0についても実行し、抽出した全部の項を、式(E-11)の右側の縦ベクトルVの2番目の要素に加算する。また、式(E-10)の∂Ew/∂W21=0についても実行し、抽出した全部の項を、式(E-11)の右側の縦ベクトルVの3番目の要素に加算する。さらに、式(E-10)の∂Ew/∂W22=0についても実行し、抽出した全部の項を、式(E-11)の右側の縦ベクトルVの4番目の要素に加算する。
(ニューラルネットワークの分岐)
図27には、ニューラルネットワークが分岐している場合の学習処理の内容が示されている。独立したニューラルネットワークA,B,C,Dがあるとすると、出力側のネットワークCおよびDの各層について、前記実施形態の教師出力データ生成手段33Bと同様な処理を行うことにより、それぞれ独立に教師出力データを生成する。また、分岐の節となっている層では、ネットワークCおよびDを構成するニューロンc1,c2,d1,d2をまとめて仮想的に結合した層V2を考える。入力側のネットワークAおよびBも同様に、ネットワークAおよびBを構成するニューロンa1,a2,b1,b2をまとめて仮想的に結合した層V1を考える。
図27には、ニューラルネットワークが分岐している場合の学習処理の内容が示されている。独立したニューラルネットワークA,B,C,Dがあるとすると、出力側のネットワークCおよびDの各層について、前記実施形態の教師出力データ生成手段33Bと同様な処理を行うことにより、それぞれ独立に教師出力データを生成する。また、分岐の節となっている層では、ネットワークCおよびDを構成するニューロンc1,c2,d1,d2をまとめて仮想的に結合した層V2を考える。入力側のネットワークAおよびBも同様に、ネットワークAおよびBを構成するニューロンa1,a2,b1,b2をまとめて仮想的に結合した層V1を考える。
それから、仮想的に結合した層V2,V1について、前記実施形態の教師出力データ生成手段33Bと同様な処理を行うことにより、教師出力データを生成する。続いて、入力側のネットワークAおよびBの各層について、前記実施形態の教師出力データ生成手段33Bと同様な処理を行うことにより、それぞれ独立に教師出力データを生成する。
また、重み値適正化処理の場合は、各層の計算順序を上記と逆にして同様な処理を行う。これにより、例えば、出力側のネットワークCの出力層(ニューロンc3,c4)と、ネットワークDの出力層(ニューロンd3,d4)とに、異なるタスクを与えることで、マルチタスクNN(例えば、マルチタスクCNN)の学習を行うことができる。
以上のように、本発明の情報処理装置および情報処理方法、並びにプログラムは、例えば、ネットワーク全体に対する教師データを用いてニューラルネットワークを構成する各層の重み値を調整決定する学習処理を実行する場合、あるいは、この学習処理で得られた重み値や、学習処理の実行過程で生成された、ネットワーク全体に対する教師データとは異なる教師データを抽出し、他のシステムでの利活用を図る場合等に用いるのに適している。
10 情報処理装置
33B 教師出力データ生成手段
33D 重み値最適化手段
45 重み値記憶手段
49 教師出力データ記憶手段
50 教師入力データ記憶手段
33B 教師出力データ生成手段
33D 重み値最適化手段
45 重み値記憶手段
49 教師出力データ記憶手段
50 教師入力データ記憶手段
Claims (8)
- ニューラルネットワークによる重み調整を含む情報処理を実行するコンピュータにより構成された情報処理装置であって、
前記ニューラルネットワークを構成する各層の重み値を記憶する重み値記憶手段と、
ネットワーク全体に対する教師データセットのうちの出力層の出力に対する教師出力データを含む各層の出力に対する教師出力データを記憶する教師出力データ記憶手段と、
各層について、前記重み値記憶手段に記憶された初期化後の重み値、および前記教師出力データ記憶手段に記憶された自層の出力に対する教師出力データを用いて、自層の入力側の層の出力に対する教師出力データを生成し、生成した前記入力側の層の出力に対する教師出力データを前記教師出力データ記憶手段に記憶させる教師出力データ生成処理を実行する教師出力データ生成手段とを備え、
この教師出力データ生成手段は、
前記ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、出力層の番号をNで示したとき、n=Nからn=3までnを1ずつ減らしながら、
前記教師出力データ記憶手段に記憶されたn番目の層の出力に対する教師出力データと、前記重み値記憶手段に記憶された初期化後の重み値のうちの(n-1)番目の層からn番目の層への重み値とを用いて、
(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の前記活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを前記活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Eyについて、(n-1)番目の層の出力値をパラメータとし、この誤差Eyを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層の出力値を求め、求めた(n-1)番目の層の出力値を、(n-1)番目の層の出力に対する教師出力データとして前記教師出力データ記憶手段に記憶させる処理を実行する構成とされている
ことを特徴とする情報処理装置。 - 前記教師出力データ生成手段は、
前記誤差Eyを、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の前記活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを前記活性化関数の逆関数に入力して得られる値との差の二乗和を含む式で定め、この二乗和による誤差Eyを、パラメータとしての(n-1)番目の層の出力値で偏微分した式をゼロと置くことにより、二乗和による誤差Eyを最小にするパラメータを求める最小二乗法による最適化処理を実行する構成とされている
ことを特徴とする請求項1に記載の情報処理装置。 - 前記教師出力データ生成手段は、
前記最適化処理を実行する前に、前記教師出力データ記憶手段に記憶された教師出力データのうち、前記最適化処理を実行する処理対象層の各ニューロンからの出力に対する全ての教師出力データが、前記処理対象層の活性化関数の出力可能な範囲に収まるようにすることを前提として、
前記処理対象層の各ニューロンからの出力に対する全ての教師出力データを、これらの全ての教師出力データのうちの最大絶対値で除することにより、全ての教師出力データを-1から1までの範囲内にするか、
または、前記処理対象層の各ニューロンからの出力に対する全ての教師出力データの絶対値が、これらの教師出力データに適用する実数型データのフォーマットに応じて予め定めた閾値内に収まるように、全ての教師出力データを同一の値で除する教師出力データ正規化処理を実行する構成とされている
ことを特徴とする請求項1または2に記載の情報処理装置。 - ネットワーク全体に対する教師データセットのうちの入力層への入力に対する教師入力データを含む各層への入力に対する教師入力データを記憶する教師入力データ記憶手段と、
各層について、前記教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データ、および前記教師出力データ記憶手段に記憶にされた自層の出力に対する教師出力データを用いて、自層の入力側の層から自層への重み値を調整決定し、決定した重み値を前記重み値記憶手段に記憶させる重み値最適化処理を実行し、その後、この重み値最適化処理により決定した自層の入力側の層から自層への重み値、および前記教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データを用いて、自層の出力値を算出し、算出した自層の出力値を、自層の出力側の層への教師入力データとして前記教師入力データ記憶手段に記憶させる教師入力データ生成処理を実行する重み値最適化手段とを備え、
この重み値最適化手段は、
前記ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、自層の出力側の層の番号を(n+1)、出力層の番号をNで示したとき、n=2からnを1ずつ増やしながら、
前記重み値最適化処理として、
前記教師入力データ記憶手段に記憶された(n-1)番目の層からn番目の層への教師入力データ、および前記教師出力データ記憶手段に記憶にされたn番目の層の出力に対する教師出力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の前記活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを前記活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Ewについて、(n-1)番目の層からn番目の層への重み値をパラメータとし、この誤差Ewを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層からn番目の層への重み値を求め、求めた重み値を前記重み値記憶手段に記憶させる処理を実行し、
その後、前記教師入力データ生成処理として、
前記重み値最適化処理により決定した(n-1)番目の層からn番目の層への重み値、および前記教師入力データ記憶手段に記憶された(n-1)番目の層からn番目の層への教師入力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式に、(n-1)番目の層からn番目の層への教師入力データを入力することにより、n番目の層の出力値を算出し、算出したn番目の層の出力値を、(n+1)番目の層への教師入力データとして前記教師入力データ記憶手段に記憶させる処理を実行する構成とされている
ことを特徴とする請求項1~3のいずれかに記載の情報処理装置。 - 前記重み値最適化手段は、
前記重み値最適化処理として、前記誤差Ewを、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の前記活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを前記活性化関数の逆関数に入力して得られる値との差の二乗和を含む式で定め、この二乗和による誤差Ewを、パラメータとしての(n-1)番目の層からn番目の層への重み値で偏微分した式をゼロと置くことにより、二乗和による誤差Ewを最小にするパラメータを求める最小二乗法による最適化処理を実行する構成とされている
ことを特徴とする請求項4に記載の情報処理装置。 - ニューラルネットワークによる重み調整を含む情報処理をコンピュータにより実行する情報処理方法であって、
前記ニューラルネットワークを構成する各層の重み値を記憶する重み値記憶手段と、
ネットワーク全体に対する教師データセットのうちの出力層の出力に対する教師出力データを含む各層の出力に対する教師出力データを記憶する教師出力データ記憶手段とを設けておき、
教師出力データ生成手段が、各層について、前記重み値記憶手段に記憶された初期化後の重み値、および前記教師出力データ記憶手段に記憶された自層の出力に対する教師出力データを用いて、自層の入力側の層の出力に対する教師出力データを生成し、生成した前記入力側の層の出力に対する教師出力データを前記教師出力データ記憶手段に記憶させる教師出力データ生成処理を実行し、
この際、前記教師出力データ生成手段は、
前記ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、出力層の番号をNで示したとき、n=Nからn=3までnを1ずつ減らしながら、
前記教師出力データ記憶手段に記憶されたn番目の層の出力に対する教師出力データと、前記重み値記憶手段に記憶された初期化後の重み値のうちの(n-1)番目の層からn番目の層への重み値とを用いて、
(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の前記活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを前記活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Eyについて、(n-1)番目の層の出力値をパラメータとし、この誤差Eyを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層の出力値を求め、求めた(n-1)番目の層の出力値を、(n-1)番目の層の出力に対する教師出力データとして前記教師出力データ記憶手段に記憶させる処理を実行する
ことを特徴とする情報処理方法。 - ネットワーク全体に対する教師データセットのうちの入力層への入力に対する教師入力データを含む各層への入力に対する教師入力データを記憶する教師入力データ記憶手段を設けておき、
重み値最適化手段が、各層について、前記教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データ、および前記教師出力データ記憶手段に記憶にされた自層の出力に対する教師出力データを用いて、自層の入力側の層から自層への重み値を調整決定し、決定した重み値を前記重み値記憶手段に記憶させる重み値最適化処理を実行し、その後、この重み値最適化処理により決定した自層の入力側の層から自層への重み値、および前記教師入力データ記憶手段に記憶された自層の入力側の層から自層への教師入力データを用いて、自層の出力値を算出し、算出した自層の出力値を、自層の出力側の層への教師入力データとして前記教師入力データ記憶手段に記憶させる教師入力データ生成処理を実行し、
この際、前記重み値最適化手段は、
前記ニューラルネットワークを構成する層の数をNとし、自層の番号をn、自層の入力側の層の番号を(n-1)、自層の出力側の層の番号を(n+1)、出力層の番号をNで示したとき、n=2からnを1ずつ増やしながら、
前記重み値最適化処理として、
前記教師入力データ記憶手段に記憶された(n-1)番目の層からn番目の層への教師入力データ、および前記教師出力データ記憶手段に記憶にされたn番目の層の出力に対する教師出力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式またはこの計算式に活性化関数が含まれる場合の前記活性化関数への入力値を計算する活性化関数入力値計算式による計算値と、n番目の層の出力に対する教師出力データまたはこの教師出力データを前記活性化関数の逆関数に入力して得られる値とを用いて定めた誤差Ewについて、(n-1)番目の層からn番目の層への重み値をパラメータとし、この誤差Ewを最小にするパラメータを求める最適化処理により、最適解またはそれに近い解として(n-1)番目の層からn番目の層への重み値を求め、求めた重み値を前記重み値記憶手段に記憶させる処理を実行し、
その後、前記教師入力データ生成処理として、
前記重み値最適化処理により決定した(n-1)番目の層からn番目の層への重み値、および前記教師入力データ記憶手段に記憶された(n-1)番目の層からn番目の層への教師入力データを用いて、(n-1)番目の層の出力値を用いたn番目の層の出力の計算式に、(n-1)番目の層からn番目の層への教師入力データを入力することにより、n番目の層の出力値を算出し、算出したn番目の層の出力値を、(n+1)番目の層への教師入力データとして前記教師入力データ記憶手段に記憶させる処理を実行する
ことを特徴とする請求項1に記載の情報処理方法。 - 請求項1~5のいずれかに記載の情報処理装置として、コンピュータを機能させるためのプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021-000013 | 2021-01-02 | ||
JP2021000013A JP2022105339A (ja) | 2021-01-02 | 2021-01-02 | 情報処理装置および情報処理方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022145232A1 true WO2022145232A1 (ja) | 2022-07-07 |
Family
ID=82259255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/046271 WO2022145232A1 (ja) | 2021-01-02 | 2021-12-15 | 情報処理装置および情報処理方法、並びにプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2022105339A (ja) |
WO (1) | WO2022145232A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0620048A (ja) * | 1992-07-01 | 1994-01-28 | Canon Inc | 画像処理装置 |
JP2010123072A (ja) * | 2008-11-21 | 2010-06-03 | Nagoya Institute Of Technology | パルスニューロンモデルのためのバックプロパゲーション学習法 |
JP2018128942A (ja) * | 2017-02-10 | 2018-08-16 | ヤフー株式会社 | 解析装置、解析方法、およびプログラム |
-
2021
- 2021-01-02 JP JP2021000013A patent/JP2022105339A/ja active Pending
- 2021-12-15 WO PCT/JP2021/046271 patent/WO2022145232A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0620048A (ja) * | 1992-07-01 | 1994-01-28 | Canon Inc | 画像処理装置 |
JP2010123072A (ja) * | 2008-11-21 | 2010-06-03 | Nagoya Institute Of Technology | パルスニューロンモデルのためのバックプロパゲーション学習法 |
JP2018128942A (ja) * | 2017-02-10 | 2018-08-16 | ヤフー株式会社 | 解析装置、解析方法、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2022105339A (ja) | 2022-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200410384A1 (en) | Hybrid quantum-classical generative models for learning data distributions | |
Gemici et al. | Generative temporal models with memory | |
US11526722B2 (en) | Data analysis apparatus, data analysis method, and data analysis program | |
JP7059458B2 (ja) | 生成的敵対神経網ベースの分類システム及び方法 | |
Crépey et al. | Gaussian process regression for derivative portfolio modeling and application to CVA computations | |
US11380301B2 (en) | Learning apparatus, speech recognition rank estimating apparatus, methods thereof, and program | |
JP2022189799A (ja) | Few-shot模倣のためのデモンストレーション条件付き強化学習 | |
Lima et al. | Evaluation of recurrent neural networks for hard disk drives failure prediction | |
Joudar et al. | Using continuous Hopfield neural network for solving a new optimization architecture model of probabilistic self organizing map | |
WO2019208564A1 (ja) | ニューラルネットワーク学習装置、ニューラルネットワーク学習方法、プログラム | |
WO2022145232A1 (ja) | 情報処理装置および情報処理方法、並びにプログラム | |
Phalak et al. | Approximate quantum random access memory architectures | |
Gao et al. | Minimax D-optimal designs for multivariate regression models with multi-factors | |
WO2019194128A1 (ja) | モデル学習装置、モデル学習方法、プログラム | |
US20200380446A1 (en) | Artificial Intelligence Based Job Wages Benchmarks | |
Malekzadeh et al. | Uncertainty-aware transfer across tasks using hybrid model-based successor feature reinforcement learning☆ | |
Sajadimanesh et al. | NISQ-Friendly Non-Linear Activation Functions for Quantum Neural Networks | |
Zhong et al. | An effective and efficient broad-based ensemble learning model for moderate-large scale image recognition | |
KR20230027588A (ko) | 딥 러닝 모델의 생성 방법 및 이를 수행하는 컴퓨팅 장치 장치 | |
JP7047665B2 (ja) | 学習装置、学習方法及び学習プログラム | |
JP7297286B2 (ja) | 最適化方法、最適化プログラム、推論方法、および推論プログラム | |
JP2021135683A (ja) | 学習装置、推論装置、学習方法及び推論方法 | |
Zhang et al. | Online kernel classification with adjustable bandwidth using control-based learning approach | |
JP7559939B2 (ja) | ニューラルネットワーク学習装置、ニューラルネットワーク学習方法、プログラム | |
Xiang et al. | Semi-parametric training of autoencoders with Gaussian kernel smoothed topology learning neural networks |
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: 21915093 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21915093 Country of ref document: EP Kind code of ref document: A1 |