WO2020261549A1 - 機械学習装置、機械学習プログラム、及び機械学習方法 - Google Patents
機械学習装置、機械学習プログラム、及び機械学習方法 Download PDFInfo
- Publication number
- WO2020261549A1 WO2020261549A1 PCT/JP2019/025880 JP2019025880W WO2020261549A1 WO 2020261549 A1 WO2020261549 A1 WO 2020261549A1 JP 2019025880 W JP2019025880 W JP 2019025880W WO 2020261549 A1 WO2020261549 A1 WO 2020261549A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- input
- output
- layer
- machine learning
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
Definitions
- the present invention relates to a machine learning device, a machine learning program, and a machine learning method.
- Non-Patent Documents 1-3 As a method of performing machine learning of time series data, a method using a recurrent neural network (recurrent neural network) is known (see Non-Patent Documents 1-3).
- One aspect of the present invention is machine learning that performs machine learning of input data of one dimension or more arranged in a predetermined order by using a recursive neural network having a plurality of nodes connected to each other by weighted edges.
- the recursive neural network is an apparatus, the input layer having one or more input nodes, a first intermediate layer having one or more first intermediate nodes, and a second intermediate having one or more second intermediate nodes. It has a layer and an output layer having one or more output nodes, and the input node, the first intermediate node, the second intermediate node, and the output node are among the plurality of nodes.
- the weights assigned to the edges that are different from each other and connect the first intermediate nodes are fixed to a predetermined size, and the machine learning device has the input layer having the one dimension or more.
- the output data generation process and the weight update process are performed, and the output data generation process receives the input data of one dimension or more received by the input layer from the input layer.
- the first intermediate that outputs the first intermediate data to the first intermediate layer and the first intermediate data of one dimension or more corresponding to the input data of the one dimension or more input to the first intermediate layer by the first process.
- the second process of outputting from the layer to the second intermediate layer and the second intermediate data of one dimension or more corresponding to the first intermediate data of one dimension or more input to the second intermediate layer by the second process.
- the third process of outputting from the second intermediate layer to the output layer and the output data of one dimension or more corresponding to the second intermediate data of one dimension or more input to the output layer by the third process are generated.
- the fourth process is a process in which the first process, the second process, the third process, and the fourth process are performed in this order, and the weight update process includes an expression derived based on the extended Kalman filter method and an expression.
- the time change of the output data output from the machine learning device 1 in the period after the machine learning device 1 is machine-learned about the time change of the displacement of the second weight in the X-axis direction in the double pendulum shown in FIG.
- FIG. 1 is a diagram showing an example of the configuration of the machine learning device 1 according to the embodiment.
- the machine learning device 1 performs machine learning of P-dimensional input data.
- P may be any integer as long as it is an integer of 1 or more.
- the machine learning device 1 performs such machine learning by using a recurrent neural network having a plurality of nodes.
- the plurality of nodes are connected to each other by weighted edges.
- the P-dimensional input data is data that correlates with each other. Further, the P-dimensional input data is data arranged in a predetermined order. In the following, as an example, a case where the predetermined order is in chronological order will be described.
- the P-dimensional input data is P-dimensional time series data.
- the P-dimensional time series data is, for example, data acquired from P sensors in chronological order.
- the P sensors may be P type sensors, or some or all of them may be P sensors of the same type.
- the predetermined order may be another order such as a spatially arranged order instead of the time series order.
- the time indicating the time series order is indicated by the discretized time t.
- t is, for example, an integer, but is not limited to this, and may be another number such as a real number.
- the data D1 at the time t when a certain data D1 is associated with the time t, the data D1 associated with the time t will be referred to as the data D1 at the time t.
- another data D2 calculated based on the data D1 at the time t will be referred to as the data D2 at the time t. That is, the data D2 is the data associated with the time t.
- the data D1 and the data D2 given as examples here indicate some data among the data described below.
- the recurrent neural network according to the embodiment has at least an input layer L1, a first intermediate layer L2, a second intermediate layer L3, and an output layer L4.
- FIG. 2 is a diagram showing an example of the configuration of the recurrent neural network according to the embodiment.
- the recurrent neural network according to the embodiment will be referred to as a deep FORCE learner.
- each node means the operation itself between the data flowing in the neural network. Therefore, each node means a function that performs the operation in the neural network realized by software. In addition, each node means an element that performs the calculation in the neural network realized by hardware.
- an edge connecting between a certain node N1 and another node N2 indicates a data flow from the node N1 to the node N2.
- the data flowing from node N1 to node N2 is multiplied by the weight assigned to the edge connecting between node N1 and node N2. That is, the data after the weight is multiplied by passing through the edge is input to the node N2 from the edge. Therefore, in the neural network realized by software, the edge means a function that performs such weight multiplication. Further, the edge means an element that performs such weight multiplication in the neural network realized by hardware.
- the input layer L1 has an input node.
- the input layer L1 may have the same number of input nodes as the number of dimensions of the P-dimensional input data, or may have a number of input nodes different from the number of dimensions of the P-dimensional input data.
- the number of these input nodes may be less than P and more than P. It may be.
- a weighted linear sum of P-dimensional input data is input to these input nodes.
- a certain input node accepts the input data associated with the input node among the input data.
- the p-th input node among the P input nodes receives the p-th input data among the P-dimensional time series data.
- p is any integer of 1 or more and P or less. That is, p is a number (label) that identifies each of the P input nodes.
- the input layer L1 outputs each of the P-dimensional input data received by the P input nodes to the first intermediate layer L2.
- the first intermediate layer L2 has a plurality of first intermediate nodes. Further, the first intermediate layer L2 receives each of the P-dimensional input data output by the input layer L1. More specifically, the first intermediate layer L2 receives each of the P-dimensional input data output by the input layer L1 by a part or all of the plurality of first intermediate nodes. The first intermediate layer L2 outputs Q-dimensional first intermediate data corresponding to the received P-dimensional input data to the second intermediate layer L3. Q may be any integer as long as it is an integer of 1 or more. Therefore, the first intermediate layer L2 has at least Q first intermediate nodes that output each of the Q-dimensional first intermediate data to the second intermediate layer L3.
- the q-th first intermediate node among the Q first intermediate nodes outputs the q-th first intermediate data among the Q-dimensional first intermediate data to the second intermediate layer L3.
- q is any integer of 1 or more and Q or less.
- q is a number (label) that identifies each of the Q first intermediate nodes with each other, and is also a number (label) that identifies each of the first intermediate data of the Q dimension.
- a first intermediate node when one or more input data is received, a first intermediate node generates an output value obtained when the sum of the received one or more input data is input to the first activation function.
- the first activation function may be any function as long as it is a non-linear function.
- the first intermediate node outputs the generated output value to another node connected to the first intermediate node by the edge.
- the generated output value is output to the second intermediate layer L3 as the first intermediate data.
- Each first intermediate node included in the first intermediate layer L2 generates such an output value.
- the first intermediate layer L2 is, for example, a reservoir in reservoir computing. Therefore, the weight in the first intermediate layer L2 is determined in advance by a random number. Then, the weight is not updated in the first intermediate layer L2. In other words, the weight assigned to the edge connecting the first intermediate nodes is fixed to a predetermined size (that is, a size determined by a random number). In addition, the first intermediate layer L2 may be another intermediate layer in which the weight is not updated in the layer instead of the reservoir.
- the second intermediate layer L3 has R second intermediate nodes.
- R may be any integer as long as it is an integer of 1 or more.
- the second intermediate layer L3 receives Q-dimensional first intermediate data from the first intermediate layer L2 by these R second intermediate nodes.
- the second intermediate layer L3 outputs the R-dimensional second intermediate data corresponding to the received Q-dimensional first intermediate data to the output layer L4. That is, the r-th second intermediate node of the R second intermediate nodes outputs the r-th second intermediate data of the R-dimensional second intermediate data to the output layer L4.
- r is any integer of 1 or more and R or less.
- r is a number (label) that identifies each of the R second intermediate nodes with each other, and is also a number (label) that identifies each of the second intermediate data of the R dimension.
- a second intermediate node when one or more first intermediate data is received, a second intermediate node generates an output value obtained when the sum of the received one or more first intermediate data is input to the second activation function. To do. The second activation function will be described later. Then, the second intermediate node outputs the generated output value to another node connected to the second intermediate node by the edge. As a result, the second intermediate node outputs the output value as the second intermediate data to the output layer L4. The individual second intermediate nodes of the second intermediate layer L3 generate such an output value. Of the processes performed by the second intermediate node, other processes such as bias addition will not be described.
- the second intermediate layer L3 is an intermediate layer in the feedforward neural network.
- the second intermediate layer L3 may have a multi-layer structure instead of the one-layer structure shown in FIG. 2.
- a plurality of layers existing between the first intermediate layer L2 and the output layer L4 are collectively referred to as a second intermediate layer L3.
- the second intermediate layer L3 may be composed of n layers from the 21st intermediate layer to the 2nd n intermediate layer.
- n is an integer of 2 or more.
- the second intermediate layer L3 receives the Q-dimensional first intermediate data by each of the plurality of nodes of the 21st intermediate layer.
- the second intermediate layer L3 outputs the R-dimensional second intermediate data from the second n intermediate layer to the output layer L4.
- the output layer L4 has S output nodes.
- S may be any integer as long as it is an integer of 1 or more.
- the output layer L4 receives R-dimensional second intermediate data from the second intermediate layer L3 by these S output nodes.
- the output layer L4 generates and outputs S-dimensional output data corresponding to the received R-dimensional second intermediate data. That is, the sth output node among the S output nodes generates the sth output data among the S-dimensional output data.
- s is any integer of 1 or more and S or less.
- s is a number (label) that identifies each of the S output nodes from each other, and is also a number (label) that identifies each of the S-dimensional output data from each other.
- a certain output node when a certain output node accepts one or more second intermediate data, it generates an output value obtained when the sum of the received one or more second intermediate data is input to the third activation function. As a result, the output node outputs the output value as output data.
- the third activation function will be described later.
- the individual output nodes of the output layer L4 generate such output values. Of the processes performed by the output node, other processes such as bias addition and output of the output value will not be described.
- the deep FORCE learner has a first intermediate layer L2 which is a reservoir and a second intermediate layer L3 which is an intermediate layer in the feedforward neural network in this example. Therefore, the deep FORCE learner is, in this example, a recurrent neural network that combines reservoir computing and a feedforward neural network.
- the input node, the first intermediate node, the second intermediate node, and the output node are different nodes among the plurality of nodes of the deep FORCE learner, and do not overlap with each other.
- the data D1 from the input node X11 to the first intermediate node X12 is output, the data D1 is multiplied by the weight assigned to the edge connecting the input node X11 and the first intermediate node X12. Will be done. Then, the data D1 after the weight is multiplied is input to the first intermediate node X12.
- the data D2 when some data D2 is output from a certain first intermediate node X21 to another first intermediate node X22, the data D2 is assigned to an edge connecting the first intermediate node X21 and the first intermediate node X22. The weights are multiplied. Then, the data D2 after the weight is multiplied is input to the first intermediate node X22.
- the data D3 from the first intermediate node X31 to the second intermediate node X32 is output, the data D3 is assigned to the edge connecting the first intermediate node X31 and the second intermediate node X32. The weights are multiplied. Then, the data D3 after the weight is multiplied is input to the second intermediate node X32.
- the data D4 from the second intermediate node X41 to the output node X42 is output, the data D4 is multiplied by the weight assigned to the edge connecting the second intermediate node X41 and the output node X42. Node. Then, the data D4 after the weight is multiplied is input to the output node X42.
- the weights in the first intermediate layer L2 are not updated, in the deep FORCE learner, the weights are updated with the weights assigned to the edges connecting the first intermediate node and the second intermediate node and the second intermediate. It is done for the weight assigned to the edge that connects the node and the output node. Further, the weight is not updated for the weight assigned to the edge connecting the input node and the first intermediate node. Therefore, in the following, for convenience of explanation, unless it is necessary to distinguish between the weights for which these weights are updated, they will be collectively referred to as update target weights.
- each " ⁇ ” shown in FIG. 2 indicates a node. That is, each " ⁇ " included in the input layer L1 indicates an input node. Further, “ ⁇ ” included in the first intermediate layer L2 indicates the first intermediate node, respectively. Further, “ ⁇ ” included in the second intermediate layer L3 indicates a second intermediate node, respectively. Further, “ ⁇ ” included in the output layer L4 indicates an output node, respectively.
- the arrows connecting the nodes shown in FIG. 2 are drawn to clearly represent the image of the connection mode by the edges between the nodes in the deep FORCE learner, and are drawn in order to clearly represent the actual deep FORCE learner. It is different from the connection mode by the edge between each node in.
- the input of the input data to the input layer L1 and the output of the output data from the output layer L4 may be performed by a known method or may be performed by a method to be developed in the future. Is omitted.
- the machine learning device 1 uses such a deep FORCE learner to perform machine learning of the above-mentioned P-dimensional input data. More specifically, the machine learning device 1 performs output data generation processing every time the input layer L1 receives P-dimensional input data in chronological order (that is, every time the input data is received in a predetermined order). Performs weight update processing.
- the output data generation process is a process in which the first process, the second process, the third process, and the fourth process are performed in the order of the first process, the second process, the third process, and the fourth process.
- the first process is a process of outputting the P-dimensional input data received by the input layer L1 from the input layer L1 to the first intermediate layer L2.
- the second process is a process of outputting the Q-dimensional first intermediate data corresponding to the P-dimensional input data input to the first intermediate layer L2 by the first process from the first intermediate layer L2 to the second intermediate layer L3. is there.
- the third process is a process of outputting the R-dimensional second intermediate data corresponding to the Q-dimensional first intermediate data input to the second intermediate layer L3 by the second process from the second intermediate layer L3 to the output layer L4. is there.
- the third treatment is composed of n layers from the 21st intermediate layer to the 2nd n intermediate layer as described above, the third treatment is input to the 21st intermediate layer of the second intermediate layer L3 by the second treatment.
- This is a process of outputting the R-dimensional second intermediate data corresponding to the Q-dimensional first intermediate data from the second n intermediate layer of the second intermediate layer L3 to the output layer L4.
- the fourth process is a process of generating S-dimensional output data corresponding to the R-dimensional second intermediate data input to the output layer L4 by the third process.
- the output data generation process is the same as the process for generating output data in a general feedforward neural network. Therefore, further detailed description of the output data generation process will be omitted.
- the Q-dimensional first intermediate data, the S-dimensional output data, and the formula derived based on the extended Kalman filter method are used to perform the above-mentioned update target weight (that is, the first intermediate node and the second intermediate).
- This is a process of updating the weight assigned to each edge connecting the nodes and the weight assigned to each edge connecting the second intermediate node and the output node.
- the machine learning device 1 includes an arithmetic unit 11, a memory 12, and a network interface 13.
- the machine learning device 1 may be configured to include other circuits and other devices.
- the machine learning device 1 may be configured to include an input device such as a keyboard and a mouse.
- the machine learning device 1 may be configured to include an output device such as a display.
- the machine learning device 1 may be configured to include an interface for connecting at least one of the input device and the output device.
- the arithmetic unit 11 is a processor, for example, an FPGA (Field Programmable Gate Array).
- the arithmetic unit 11 may be a CPU (Central Processing Unit) instead of the FPGA, may be a combination of the FPGA and the CPU, or may be another processor.
- CPU Central Processing Unit
- the arithmetic unit 11 is an FPGA. Therefore, the arithmetic unit 11 realizes a deep FORCE learner by the hardware (for example, an integrated circuit or the like) possessed by the FPGA, and performs machine learning on the p-dimensional input data.
- the arithmetic unit 11 is a CPU
- the arithmetic unit 11 may be configured to perform the machine learning by combining the hardware possessed by the CPU and the software executed by the CPU.
- the arithmetic unit 11 may be configured by near memory, memory logic, or the like, as will be described later. In other words, the arithmetic unit 11 may be composed of hardware including at least one of near memory and memory logic.
- the memory 12 stores, for example, various information used by the arithmetic unit 11.
- the memory 12 includes, for example, SSD (Solid State Drive), HDD (Hard Disk Drive), EEPROM (Electrically Erasable Programmable Read-Only Memory), ROM (Read-Only Memory), RAM (Random Access Memory), and the like.
- the memory 12 may be an external storage device connected by a digital input / output port such as USB, instead of the one built in the arithmetic unit 11.
- the network interface 13 is an interface that connects to an external device such as a sensor via a network.
- the weight update process performed by the machine learning device 1 will be described.
- the weight update process described below is a process based on the extended Kalman filter method.
- sequential calculation is performed according to the time series order indicated by the discretized time t. Therefore, the time t that appears as an argument of the function, vector, matrix, etc. described below indicates the time series order in such sequential calculation.
- the following formulation by the extended Kalman filter method is only an example, and may be another formulation.
- the weight updated in the weight update process was the above-mentioned update target weight. Therefore, in the embodiment, the first intermediate layer L2 whose weight is not updated in the layer is virtually considered as a part of the input layer L1. Based on this idea, the above-mentioned first intermediate data can be treated as a substitute for the input data. Therefore, the Q-dimensional vector having the first Q-dimensional intermediate data as a component can be expressed by the following equation (1).
- Each component of the vector y I represented by the above equation (1) represents the first intermediate data of the Q dimension.
- t in the equation (1) is a time indicating the time series order in the sequential calculation as described above. That is, y I (t) indicates the Q-dimensional first intermediate data (that is, the first intermediate data at time t) output by the first intermediate layer L2 according to the input data at time t.
- the Q-dimensional first intermediate data output by the first intermediate layer L2 according to the input data at time t was output by the first intermediate layer L2 when the input data at time t was received by the input layer L1. It is the first intermediate data of Q dimension. Therefore, y I (t) does not indicate the first intermediate data calculated at time t.
- the S-dimensional output data generated by the output layer L4 according to the input data at time t can be expressed by the following equation (2).
- the S-dimensional output data output by the output layer L4 according to the input data at time t is the S-dimensional output data generated by the output layer L4 when the input data at time t is received by the input layer L1. That is.
- Each component of the vector y O represented by the above equation (2) indicates S-dimensional output data. That is, y O (t) indicates the S-dimensional output data (that is, the output data at time t) generated by the output layer L4 immediately after the input data at time t is received by the input layer L1. Therefore, y O (t) does not indicate the output data calculated at time t.
- the R-dimensional second intermediate data output by the second intermediate layer L3 according to the input data at time t can be expressed by the following equation (3).
- the R-dimensional second intermediate data output by the second intermediate layer L3 according to the input data at time t was output by the second intermediate layer L3 when the input data at time t was received by the input layer L1. It is the second intermediate data of R dimension.
- Each component of the vector y H represented by the above equation (3) represents the second intermediate data of the R dimension. That is, y H (t) indicates the R-dimensional second intermediate data (that is, the second intermediate data at time t) output by the second intermediate layer L3 according to the input data at time t. Therefore, y H (t) does not indicate the second intermediate data calculated at time t.
- the qth first intermediate node and the R second intermediate node among the Q first intermediate nodes that output the first intermediate data are received.
- the weight assigned to the edge connecting the r-th second intermediate node can be expressed by the following equation (4).
- Each component of the vector w HI represented by the above equation (4) has the qth first intermediate node among the Q first intermediate nodes and the R second intermediate node that output the first intermediate data.
- the weight assigned to the edge connecting with the r-th second intermediate node is shown. That is, each component of w HI (t) indicates the weight corresponding to the input data at time t (that is, the weight at time t).
- the r-th second intermediate node among the R second intermediate nodes and the S output nodes that output the second intermediate data can be expressed by the following equation (5).
- Each component of the vector w OH represented by the above equation (5) is the r-th second intermediate node among the R second intermediate nodes that output the second intermediate data, and the s-th among the S output nodes. Shows the weight assigned to the edge that joins the output node of. That is, each component of w OH (t) indicates the weight corresponding to the input data at time t (that is, the weight at time t).
- the teacher data at time t in the deep FORCE learner can be expressed by the following equation (6).
- Each component of the vector d (t) represented by the above equation (6) indicates teacher data corresponding to each of the S-dimensional output data at time t.
- the s-th output data of the S-dimensional output data shown in the above equation (2) is based on the following equations (7) and (8) based on the equations (3) and (5). ) Can be expressed as.
- the r-th second intermediate data of the R-dimensional second intermediate data shown in the above equation (3) is based on the following equations (1) and (4), and the following equations (9) and It can be expressed as in equation (10).
- each of the second activation function and the third activation function is a function satisfying a predetermined condition.
- the predetermined condition is that it is an odd function (that is, it is a non-linear function having symmetry with respect to 180 ° rotation about the origin).
- a function satisfying such a predetermined condition is, for example, a hyperbolic tangent function.
- either one or both of the second activation function and the third activation function may be another nonlinear function satisfying a predetermined condition instead of the hyperbolic tangent function.
- the deep FORCE learner can be represented by the nonlinear vector functions shown in the following equations (11) and (12).
- the vector ⁇ (t) in the above equation (11) is a vector calculated by the equation (12), and is a weight vector having an update target weight as a component as shown in the equation (12).
- the vector ⁇ (t) in the above equation (11) indicates a modeling error with respect to the vector ⁇ (t). That is, the vector ⁇ (t) is derived by an algorithm that represents the deep FORCE learner by some non-linear function.
- the extended Kalman filter method is adopted as such an algorithm, in the above equation (11), the first term on the right side of the equation (11) is used as the estimated weight vector, and the left side of the equation (11) is used as the predicted weight vector. It can be re-expressed as equations (13) to (15).
- the estimated weight vector is an estimated value of the above-mentioned weight vector in the extended Kalman filter method. Further, the predicted weight vector is a predicted value of the weight vector in the extended Kalman filter method.
- the " ⁇ ” attached above the vector ⁇ in the above equation (13) indicates that the vector ⁇ with the " ⁇ ” is an estimated weight vector. Further, in the equation (13), the “ ⁇ ” attached above the vector ⁇ indicates that the vector ⁇ with the “ ⁇ ” is the predicted weight vector. Further, the vector e (t) in the equation (13) indicates the difference between the output data at the time t and the teacher data at the time t, as shown in the equation (15). Then, the matrix K in the equation (13) shows the Kalman gain matrix in the extended Kalman filter method. That is, the matrix K (t) represents the Kalman gain matrix at time t.
- the matrix K (t) is a matrix of (Q ⁇ R + S ⁇ R) rows and columns.
- the estimated weight vector shown on the left side of the equation (13) is a (Q ⁇ R + S ⁇ R) dimensional vector
- the vector e (t) is an S dimensional vector.
- the matrix K (t) at time t is expressed by the following equations (16) to (19).
- the " ⁇ " above the matrix U (t) in the above equation (16) means that the matrix U (t) with the " ⁇ " is the predicted value in the extended Kalman filter method for the covariance matrix. Is shown. Further, the matrix A (t) in the equation (16) indicates the scaling factor at time t. This matrix A (t) is calculated by the equation (17). Further, the matrix W (t) in the equation (17) shows a covariance matrix for the modeling error at time t. Further, the matrix V (t) of the equation (18) is a matrix having components corresponding to the error distribution given in advance, and shows an error with respect to the matrix U (t-1) with “ ⁇ ”.
- the matrix U (t-1) with " ⁇ ” indicates the estimated value of the covariance matrix in the extended Kalman filter method.
- the matrix U (t) with " ⁇ ” is calculated by the equation (19). That is, the matrix U (t) with " ⁇ ” is calculated by sequential calculation by the equations (18) and (19). Further, the matrix H (t) in the equation (16) shows the Jacobian in the extended Kalman filter method.
- the matrix H (t) is calculated by the equation (20).
- the matrix H (t), or Jacobian corresponds to the observation matrix in control engineering.
- the machine learning device 1 updates the update target weight by sequential calculation using the above equations (13) to (20).
- the Jacobian is represented by two block matrices, as shown on the right side of equation (20). Then, each component of these two block matrices is represented by the following equations (21) and (22).
- each component of the block matrix shown in the above equation (21) can be expanded as in the following equation (23) by using the above equations (7) to (10).
- each component of the block matrix shown in the above equation (22) can be expanded as in the following equation (24) by using the above equations (7) to (10).
- each component of the two block matrices shown on the right side of the above equation (20) can be calculated based on the above equations (23) and (24).
- the Jacobian described above can be calculated, initial values are given to each of the above-mentioned matrix U (t) with " ⁇ ", the matrix V (t), and the matrix W (t). Therefore, the machine learning device 1 can calculate the matrix K (t) which is a Kalman gain matrix. As a result, the machine learning device 1 can update the update target weight based on the above equations (13) to (15).
- FIG. 3 is a diagram showing an example of the flow of the weight update process performed by the machine learning device 1.
- the machine learning device 1 processes the flowchart shown in FIG. 3 every time the input layer L1 receives P-dimensional input data in chronological order.
- the machine learning device 1 waits until the output data generation process is completed (step S110).
- the machine learning device 1 determines that the output data generation process is completed (step S110-YES), the above equations (7) to (10) and the above equations (20) to (24) and the above-mentioned second activity
- the Jacobian described above is calculated based on the conversion function and the third activation function (for example, both functions are bicurve tangent functions) (step S120).
- the machine learning device 1 receives the first intermediate data output from the first intermediate layer L2, the second intermediate data output from the second intermediate layer L3, the output data generated by the output layer L4, and the output data.
- the Jacobian is calculated using the update target weight.
- the machine learning device 1 calculates the above-mentioned Kalman gain matrix based on the equations (16) to (19) and the Jacobian calculated in step S120 (step S130).
- the process of step S130 is a calculation process for minimizing the matrix U with “ ⁇ ” shown in the above equation (19).
- the machine learning device 1 when the processing of the first step S130 is performed, the machine learning device 1 includes a matrix U (t) with three matrices “ ⁇ ”, a matrix V (t), and a matrix W (t).
- the Kalman gain matrix is calculated using the initial values given in advance by the user for each.
- the machine learning device 1 includes the above equations (13) to (15), a vector ⁇ (t) which is a modeling error, a matrix K (t) calculated in step S130, and teacher data. Based on the output data generated by the output layer L4 and the update target weight, the update target weight is updated (step S140), and the process ends.
- the machine learning device 1 performs the weight update process.
- the machine learning device 1 does not perform the inverse matrix operation as described above.
- the machine learning device 1 merely performs sequential calculation using an equation derived in advance by analytical calculation in the process. Therefore, the machine learning device 1 can reduce the calculation cost of the process as compared with the process of performing the inverse matrix operation.
- the machine learning device 1 can perform online learning by the deep FORCE learner shown in FIG. 2 by the processing.
- the machine learning device 1 can be mounted on the edge device, for example, as a device for performing machine learning by the deep FORCE learning device.
- the deep FORCE learner can be implemented in an edge device or the like as hardware including at least one of near memory and memory logic.
- the memory access speed, calculation speed, and the like of the deep FORCE learner mounted on the edge device or the like as the hardware differ depending on the design of the data flow in the weight update process. Under these circumstances, when a deep FORCE learner is mounted on an edge device or the like as hardware including at least one of near memory and memory logic, it is necessary to consider an efficient data flow.
- FIG. 4 is a diagram showing an example of the overall configuration of the data flow in the weight update process. As shown in FIG. 4, the data flow in the weight update process is roughly divided into six blocks, blocks B1 to B6. Each of the six blocks indicates hardware including at least one of near memory and memory logic. In FIG. 4, the time series order in the data flow is shown by the time t.
- Block B1 is a block that calculates the above-mentioned predicted weight vector by processing based on the above equation (14).
- a vector ⁇ (t) and a vector ⁇ (t) with “ ⁇ ” are input to the block B1.
- the block B1 calculates the vector ⁇ (t) with “ ⁇ ”, that is, the predicted weight vector.
- the block B1 outputs the calculated predicted weight vector to the block B2.
- Block B2 is a block that calculates the predicted value in the extended Kalman filter method for the covariance matrix by the processing based on the above equation (18).
- a matrix U (t-1) with " ⁇ ” and a matrix V (t) are input to the block B2.
- block B2 calculates a predicted value for the covariance matrix, that is, a matrix U (t) with " ⁇ ".
- the block B2 outputs the calculated matrix U (t) with “ ⁇ ” to each of the block B4 and the block B6.
- Block B3 is a block that updates the estimated weight vector by processing based on the above equation (13).
- a vector e (t), a vector ⁇ (t) with “ ⁇ ” output from the block B1, and a matrix K (t) output from the block B6, which will be described later, are input to the block B3.
- the block B3 calculates an estimated weight vector, that is, a vector ⁇ (t + 1) with “ ⁇ ”.
- Block B3 outputs the calculated vector ⁇ (t + 1) with “ ⁇ ”.
- Block B4 is a block that calculates an estimated value in the extended Kalman filter method for the covariance matrix by processing based on the above equation (19).
- a matrix U (t) with " ⁇ " output from block B2 a matrix H (t) output from block B5 described later, and a matrix K (t) output from block B6 described later ) And is entered.
- the block B4 calculates the estimated value, that is, the matrix U (t) with " ⁇ ”.
- Block B4 outputs the calculated matrix U (t) with " ⁇ ”.
- the block B5 is a block for calculating the Jacobian by the processing based on the above equations (7) to (10).
- the vector y I (t) is input to the block B5.
- block B5 calculates the Jacobian, that is, the matrix H (t).
- the block B5 outputs the calculated matrix H (t) to each of the block B4 and the block B6.
- the block B5 also performs the output data generation process described above. The data flow inside the block B5 will be described later.
- Block B6 is a block for calculating the Kalman gain matrix by the processing based on the above equations (16) and (17).
- the matrix U (t) with " ⁇ " output from the block B2 the matrix H (t) output from the block B5, and the matrix W (t) are input.
- the block B6 calculates the Kalman gain matrix, that is, the matrix K (t).
- Block B6 outputs the calculated matrix K (t).
- the block B6 also outputs the matrix K (t) to the block B3.
- FIG. 5 is a diagram showing the simplest concrete example of the data flow inside the block B5.
- the data flow shown in FIG. 5 holds for any function as long as each of the second activation function and the third activation function adopted in the deep FORCE learner satisfies the above-mentioned predetermined conditions. Data flow to do. Further, the data flow shown in FIG. 5 also includes the data flow in the above-mentioned output data generation process.
- the data flow shown in FIG. 5 is roughly divided into eight blocks, blocks B51A to B51H. Each of the eight blocks indicates hardware including at least one of near memory and memory logic. In FIG. 5, the time series order in the data flow is shown by the time t.
- Block B51A is a block that performs the calculation of the above equation (10). That is, the vector y I (t) and the vector w HI (t) are input to the block B51A.
- the block B51A calculates the act r (t), and outputs the calculated act r (t). More specifically, the block B51A outputs the calculated act r (t) to each of the block B51B and the block B51E.
- the block B51B is a block for performing the calculation of the above equation (9). That is, the act r (t) output from the block B51A is input to the block B51B.
- the block B51B calculates a vector y H (t), and outputs the calculated vector y H (t). More specifically, block B51B the calculated vector y H (t), and outputs the respective blocks B51C and blocks B51H.
- the block B51C is a block for performing the calculation of the above equation (8). That is, the vector y H (t) output from the block B51B and the vector w OH (t) are input to the block B51C.
- the block B51C calculates the act s (t), and outputs the calculated act s (t). More specifically, the block B51C outputs the calculated act s (t) to each of the block B51D and the block B51F.
- the block B51D is a block for performing the calculation of the above equation (7). That is, the act s (t) output from the block B51C is input to the block B51D.
- the block B51D calculates a vector y O (t), and outputs the calculated vector y O (t).
- the data flow that flows in the order of block B51A, block B51B, block B51C, and block B51D is the data flow in the output data generation process.
- the block B51E is a block for calculating f H '(act r (t)) in the above equation (23). That is, the act r (t) output from the block B51A is input to the block B51E. Then, the block B51E calculates f H '(act r (t)) and outputs the calculated f H '(act r (t)) to the block B51G.
- the block B51F is a block for calculating f O '(act s (t)) in the above equations (23) and (24). That is, the act s (t) output from the block B51C is input to the block B51F.
- the block B51F is, f O 'calculates (act s (t)), the calculated f O' outputs the (act s (t)). More specifically, the block B51F outputs the calculated f O '(act s (t)) to each of the block B51G and the block B51H.
- the block B51G is a block that performs the calculation of the above equation (23). That is, the block B51G includes a vector y I (t), and the vector w OH (t), f H that is output from the block B51E '(act r (t) ) and, f O output from the block B51F' (Act s (t)) is input. Then, the block B51G calculates each component on the left side of the equation (23).
- the block B51H is a block for performing the calculation of the above equation (24). That is, the vector y H (t) output from the block B51B and the f O '(act s (t)) output from the block B51F are input to the block B51H. Then, the block B51G calculates each component on the left side of the equation (24).
- the values output from each of the block B51G and the block B51H are none other than Jacobian, that is, each component of the matrix H (t).
- the process of calculating act r (t) and act s (t) is standardized in the output data generation process and the Jacobian calculation process. That is, the data flow is a data flow in which the arithmetic processing in a part of the output data generation processing and a part of the weight update processing is standardized.
- the machine learning device 1 can mount a deep FORCE learner on an edge device or the like as hardware including at least one of near memory and memory logic. As a result, the machine learning device 1 can increase the speed of memory access, the calculation speed, and the like without using a special function as each of the second activation function and the third activation function.
- FIG. 6 is a diagram showing another specific example of the data flow inside the block B5.
- the data flow shown in FIG. 6 is a data flow that is established when the second activation function f H is a bicurve tangent function and the third activation function f O is an identity function. Further, the data flow shown in FIG. 6 also includes the data flow in the above-mentioned output data generation process.
- the data flow shown in FIG. 6 is roughly divided into six blocks, block B51A and blocks B52A to B52E. Each of the six blocks indicates hardware including at least one of near memory and memory logic.
- the time series order in the data flow is shown by the time t.
- a block having the same function as the block shown in FIG. 5 that is, block B51A
- the block B51A outputs the act r (t) to the block B52A.
- the block B52A is a block for performing the calculation of the above equation (9). However, block B52A uses a hyperbolic tangent function as the second activation function to perform the calculation.
- the act r (t) output from the block B51A is input to the block B52A.
- the block B52A calculates the vector y H (t) using the hyperbolic tangent function as the second activation function, and outputs the calculated vector y H (t). More specifically, the block B52A outputs the calculated vector y H (t) to each of the block B51C and the block B52C.
- the block B52B is a block for performing the calculation of the above equation (8). That is, the vector y H (t) output from the block B51B and the vector w OH (t) are input to the block B52B. Then, the block B52B calculates act s (t).
- the third activation function is an identity function. That is, in FIG. 6, the block corresponding to the block B51D shown in FIG. 5 is unnecessary, and the act s (t) calculated by the block B52B becomes the vector y O (t).
- the block B52C is a block for calculating f H '(act r (t)) in the above equation (23).
- the second activation function f H is a hyperbolic tangent function.
- f H '(act r (t)) can be written down by the square of the vector y H (t) as shown in the following equation (25).
- the data flow shown in FIG. 6 can include block B52C instead of block B51E shown in FIG.
- the block B52C can be, for example, a look-up table. This is one of the benefits of being able to write down f H '(act r (t)) by the square of the vector y H (t).
- the vector y H (t) output from the block B52A is input to the block B52C.
- the block B52C calculates (or specifies) f H '(act r (t)).
- the block B52C outputs the calculated f H '(act r (t)) to the block B52D.
- the block B52D is a block that performs the calculation of the above equation (23). That is, the vector y I (t), the vector w OH (t), and f H '(act r (t)) output from the block B 52C are input to the block B 52D. Then, the block B52D calculates each component on the left side of the equation (23). The block B52D outputs the calculated components.
- the third activation function f O is an identity function. Therefore, the f O '(act s (t)) used in the block B52D is equal to 1.
- the block B52E is a block for performing the calculation of the above equation (24). That is, the vector y H (t) output from the block B52A is input to the block B52E. Then, the block B52E calculates each component on the left side of the equation (24).
- the third activation function f O is an identity function. Therefore, f O '(act s (t)) used in the block B52E is equal to 1.
- the number of blocks can be reduced as compared with the data flow shown in FIG. 6
- the machine learning device 1 is designed more simply when the deep FORCE learner is mounted on an edge device or the like as hardware including at least one of the near memory and the memory logic based on the data flow shown in FIG. It means that you can do it.
- the machine learning device 1 can reduce the power consumption and increase the speed of memory access, the calculation speed, and the like.
- FIG. 7 is a diagram showing still another specific example of the data flow inside the block B5.
- the second activation function f H is a piecewise linear function shown in the following equations (26) and (27), and it is identity when the third activation function f O is differentiated. It is a data flow that holds when it is a non-linear function that becomes a function.
- ⁇ in the above equations (26) and (27) is a parameter that determines the gain (or slope) of the second activation function.
- the data flow shown in FIG. 7 also includes the data flow in the above-mentioned output data generation process.
- the data flow shown in FIG. 7 is roughly divided into seven blocks, blocks B51A to B51D, and blocks B52A to B52C.
- Each of the seven blocks indicates hardware including at least one of near memory and memory logic.
- the time series order in the data flow is shown by the time t.
- the blocks having the same functions as the blocks shown in FIG. 5 that is, blocks B51A to B51D
- the block B51A outputs the act r (t) to the block B53A.
- FIG. 6 the block B51A outputs the act r (t) to the block B53A.
- the block B51B outputs the vector y H (t) to each of the block B51C and the block B53C. Further, in FIG. 6, the block B51C outputs act s (t) to each of the block B51D, the block B53B, and the block B53C, respectively.
- the block B53A is a block for calculating f H '(act r (t)) in the above equation (23). However, block B53A calculates f H '(act r (t)) by using the piecewise linear function shown in the above equation (26) as the second activation function.
- the act r (t) output from the block B51A is input to the block B53A.
- the block B53A is, 'f H with the function shown in equation (27) above as an' calculates the (act r (t)) f H.
- the block B53A outputs f H '(act r (t)) to the block B53B.
- the block B53B is a block for performing the calculation of the above equation (23). That is, in the block B53B, the vector y I (t), the vector w OH (t), the f H '(act r (t)) output from the block B53A, and the act s (act s ) output from the block B51C. t) and is input. Then, the block B53B calculates each component on the left side of the equation (23). Block B53B outputs the calculated components.
- the third activation function f O is a non-linear function that becomes an identity function when differentiated. Therefore, the f O '(act s (t)) used in the block B53B is the act s (t) itself output from the block B51C.
- the block B53C is a block for performing the calculation of the above equation (24). That is, the vector y H (t) output from the block B51B and the act s (t) output from the block B51C are input to the block B53C. Then, the block B53C calculates each component on the left side of the equation (24).
- the third activation function f O is a non-linear function that becomes an identity function when differentiated. Therefore, the f O '(act s (t)) used in the block B53C is the act s (t) itself output from the block B51C.
- the number of blocks can be reduced as compared with the data flow shown in FIG. This is because the machine learning device 1 is designed more simply when the deep FORCE learner is mounted on an edge device or the like as hardware including at least one of the near memory and the memory logic based on the data flow shown in FIG. It means that you can do it. As a result, in this case, the machine learning device 1 can reduce the power consumption and increase the speed of memory access, the calculation speed, and the like.
- FIG. 8 shows a double pendulum composed of a first weight having a mass m1 connected by a rod having a length l1 from the origin and a second weight having a mass m2 connected to the weight by a rod having a length l2. It is a figure which shows an example.
- the temporal changes in the displacements of the first weight and the second weight in the X-axis direction and the Y-axis direction in the double pendulum shown in FIG. 8 are deterministically described by the equation of motion.
- the direction in which gravity acts is the direction indicated by the arrow g.
- the equation of motion for the double pendulum shown in FIG. 8 is written down for each of the first weight and the second weight.
- the force in the equation of motion written for each of the first weight and the second weight is between the angle ⁇ 1 between the Y-axis and the rod l1 shown in FIG. 8 and the Y-axis and the rod l2. It is shown by a function of four parameters: the angle ⁇ 2 of, the angular velocity which is the change of the angle ⁇ 1 per unit time, and the angular velocity which is the change of the angle ⁇ 2 per unit time.
- FIG. 9 shows the output data output from the machine learning device 1 during the period in which the machine learning device 1 is machine-learning the temporal change of the displacement of the second weight in the X-axis direction in the double pendulum shown in FIG. It is a figure which shows an example of the graph which plotted the temporal change.
- the vertical axis of the graph shown in FIG. 9 shows the displacement of the second weight in the X-axis direction.
- the horizontal axis of the graph shows the elapsed time.
- the period is shown as a period from the elapsed time of 0 to the elapsed time of 800.
- the plot PLT1 in the graph shown in FIG. 9 is a plot of teacher data. Further, the plot PLT2 in the graph is a plot of output data. As shown in FIG. 9, the degree of agreement between the output data output from the machine learning device 1 during online learning and the teacher data is not so high.
- FIG. 10 is output from the machine learning device 1 in the period after the machine learning device 1 is machine-learned about the temporal change of the displacement of the second weight in the X-axis direction in the double pendulum shown in FIG. It is a figure which shows an example of the graph which plotted the temporal change of output data.
- the vertical axis of the graph shown in FIG. 10 shows the displacement of the second weight in the X-axis direction.
- the horizontal axis of the graph shows the elapsed time.
- the said period is shown as a period of elapsed time 800 to elapsed time 1600.
- the plot PLT1 in the graph shown in FIG. 10 is a plot of teacher data. Further, the plot PLT3 in the graph is a plot of output data. As shown in FIG. 10, the degree of agreement between the output data output from the machine learning device 1 after the online learning and the teacher data is higher than that before the online learning.
- the machine is used when the number of first intermediate nodes is 100, the number of second intermediate nodes is 10, and the number of output nodes is 1.
- This is an example of the result of having the learning device 1 perform online learning.
- the accuracy of the results of online learning performed by the machine learning device 1 varies depending on the number of these nodes.
- FIG. 11 shows the output data output from the machine learning device 1 during the period in which the machine learning device 1 is machine-learning the temporal change of the displacement of the second weight in the X-axis direction in the double pendulum shown in FIG. It is a figure which shows another example of the graph which plotted the temporal change.
- the vertical axis of the graph shown in FIG. 11 shows the displacement of the second weight in the X-axis direction.
- the horizontal axis of the graph shows the elapsed time.
- the period is shown as a period from an elapsed time of 0 to an elapsed time of 800.
- the plot PLT1 in the graph shown in FIG. 11 is a plot of teacher data. Further, the plot PLT4 in the graph is a plot of output data. As shown in FIG. 11, the degree of agreement between the output data output from the machine learning device 1 during online learning and the teacher data is not so high. Further, as shown in FIG. 11, the degree of coincidence between the output data output from the machine learning device 1 during online learning in the example shown in FIG. 11 and the teacher data is during online learning in the example shown in FIG. It is lower than the degree of coincidence between the output data output from the machine learning device 1 and the teacher data. This is because the number of the first intermediate nodes in the example shown in FIG. 11 is one-fifth of the number of the first intermediate nodes in the example shown in FIG.
- FIG. 12 is output from the machine learning device 1 in the period after the machine learning device 1 is made to machine learn the temporal change of the displacement of the second weight in the X-axis direction in the double pendulum shown in FIG.
- the vertical axis of the graph shown in FIG. 12 shows the displacement of the second weight in the X-axis direction.
- the horizontal axis of the graph shows the elapsed time.
- the said period is shown as a period of elapsed time 800 to elapsed time 1600.
- the plot PLT1 in the graph shown in FIG. 12 is a plot of teacher data. Further, the plot PLT5 in the graph is a plot of output data. As shown in FIG. 12, the degree of agreement between the output data output from the machine learning device 1 after the online learning and the teacher data is higher than that before the online learning. Further, as shown in FIG. 12, the degree of coincidence between the output data output from the machine learning device 1 during online learning in the example shown in FIG. 12 and the teacher data is during online learning in the example shown in FIG. Compared with the output data and the teacher data output from the machine learning device 1 of the above, there is not much change. This is because even if the number of the first intermediate nodes in the example shown in FIG. 12 is one-fifth of the number of the first intermediate nodes in the example shown in FIG. 9, the online learning performed by the machine learning device 1 is performed. It means that the accuracy of is high.
- the machine learning device 1 can improve the accuracy of online learning while reducing the number of first intermediate nodes by the deep FORCE learner and the weight update process by the extended Kalman filter method. As a result, the machine learning device 1 can achieve both a reduction in manufacturing cost and an improvement in machine learning accuracy.
- the machine learning device uses a recursive neural network having a plurality of nodes connected to each other by weighted edges, and input data of one dimension or more arranged in a predetermined order.
- a recursive neural network is a machine learning device that performs machine learning of the above, in which an input layer having one or more input nodes, a first intermediate layer having one or more first intermediate nodes, and one or more second intermediate layers.
- a second intermediate layer having nodes, an output layer having one or more output nodes, an input node, a first intermediate node, a second intermediate node, and an output node are among a plurality of nodes.
- the weights assigned to the edges that connect the first intermediate nodes to each other are fixed to a predetermined size, and the machine learning device receives input data whose input layer is one dimension or more.
- the output data generation process and the weight update process are performed, and the output data generation process outputs the input data of one dimension or more received by the input layer from the input layer to the first intermediate layer.
- the first process and the second process of outputting the first intermediate data of one dimension or more corresponding to the input data of one dimension or more input to the first intermediate layer by the first process from the first intermediate layer to the second intermediate layer.
- the weight update process is performed in order, and the weight update process is performed between the first intermediate node and the second intermediate by the formula derived based on the extended Kalman filter method, the first intermediate data of one dimension or more, and the output data of one dimension or more.
- the machine learning device can perform online learning of input data having one or more dimensions arranged in a predetermined order.
- a configuration in which the first intermediate layer is a reservoir may be used.
- a configuration may be used in which the equation derived based on the extended Kalman filter method includes a non-linear function which is an odd function as an activation function.
- a configuration in which the nonlinear function included in the equation derived based on the extended Kalman filter method is a hyperbolic tangent function may be used.
- the equation derived based on the extended Kalman filter method includes an equation for calculating the Kalman gain matrix in the extended Kalman filter method, and the machine learning apparatus calculates and calculates the Jacobian based on the equation.
- a configuration may be used that performs weight update processing based on the Jacobian.
- the machine learning device may use a configuration in which at least the weight update process is performed by hardware including at least one of the near memory and the memory logic.
- the machine learning device uses a configuration in which the output data generation process and the weight update process are performed by hardware, and a part of the output data generation process and a part of the weight update process are performed by common hardware. May be good.
- Machine learning device 11 ... Arithmetic logic unit, 12 ... Memory, 13 ... Network interface, L1 ... Input layer, L2 ... First intermediate layer, L3 ... Second intermediate layer, L4 ... Output layer
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
重みが割り当てられたエッジによって互いに結合された複数のノードを有する再帰型ニューラルネットワークを用いて、予め決められた順に並ぶ1次元以上の入力データの機械学習を行う機械学習装置は、入力層が1次元以上の入力データを予め決められた順に受け付ける毎に、出力データ生成処理と重み更新処理とを行い、重み更新処理は、拡張カルマンフィルタ法に基づいて導出された式と、1次元以上の第1中間データと、1次元以上の出力データとによって、第1中間ノードと第2中間ノードとを結合するエッジそれぞれに割り当てられた重みと、第2中間ノードと出力ノードとを結合するエッジそれぞれに割り当てられた重みとを更新する処理である、機械学習装置。
Description
本発明は、機械学習装置、機械学習プログラム、及び機械学習方法に関する。
時系列データの機械学習を行う方法として、再帰型ニューラルネットワーク(リカレントニューラルネットワーク)を用いた方法が知られている(非特許文献1-3参照)。
しかしながら、これらの方法では、多次元の互いに相関を持つ時系列データの機械学習を行うことができない。そこで、当該時系列データの機械学習を行う方法として、再帰型ニューラルネットワークの1つであるリザボアコンピューティングとフィードフォワードニューラルネットワークとを組み合わせたニューラルネットワークを用いた方法が提案されている(非特許文献4参照)。
"Reservoir computing approaches for representation and classification of multivariate time series", Filippo Maria Bianchia, Simone Scardapaneb, Sigurd L ksea, and Rovert Jenssen, arXiv:1803.07870v2 [cs.NE] 6 Nov 2018.
"Merging Echo State and Feedforward Neural Networks for Time Series Forecasting", Stefan Babinec, and Jiri Pospichal, International Conference on Artificial Neural Networks ICANN 2006: Artificial Neural Networks - ICANN 2006 pp 367-375.
"Real-Time Computing Without Stable States: A New Framework for Neural Computation Based on Perturbations", Wolfgang Maass, Thomas Natschlager, and Henry Markram.
"Encoding Multi-Dimensional Time Series Data with Reservoir Computing", Yuichi Katori, 2016 International Symposium on Nonlinear Theory and Its Applications, NOLTA2016, Yugawara, Japan, November 27th-30th, 2016.
ここで、特許文献4に記載された方法では、ニューラルネットワークにおけるノード(ニューロン)間を結合するエッジに割り当てられた重みの更新を行う際、逆行列演算が行われる。このため、当該方法では、計算コストが増大してしまい、時系列データのオンライン学習を行うことが困難な場合があった。
本発明の一態様は、重みが割り当てられたエッジによって互いに結合された複数のノードを有する再帰型ニューラルネットワークを用いて、予め決められた順に並ぶ1次元以上の入力データの機械学習を行う機械学習装置であって、前記再帰型ニューラルネットワークは、1以上の入力ノードを有する入力層と、1以上の第1中間ノードを有する第1中間層と、1以上の第2中間ノードを有する第2中間層と、1以上の出力ノードを有する出力層と、を有し、前記入力ノードと、前記第1中間ノードと、前記第2中間ノードと、前記出力ノードとは、前記複数のノードのうちの互いに異なるノードであり、前記第1中間ノード同士を結合するエッジに割り当てられた重みは、予め決められた大きさに固定されており、前記機械学習装置は、前記入力層が前記1次元以上の入力データを前記予め決められた順に受け付ける毎に、出力データ生成処理と重み更新処理とを行い、前記出力データ生成処理は、前記入力層により受け付けた前記1次元以上の入力データを前記入力層から前記第1中間層に出力する第1処理と、前記第1処理により前記第1中間層に入力された前記1次元以上の入力データに応じた1次元以上の第1中間データを前記第1中間層から前記第2中間層に出力する第2処理と、前記第2処理により前記第2中間層に入力された前記1次元以上の第1中間データに応じた1次元以上の第2中間データを前記第2中間層から前記出力層に出力する第3処理と、前記第3処理により前記出力層に入力された前記1次元以上の第2中間データに応じた1次元以上の出力データを生成する第4処理と、を前記第1処理、前記第2処理、前記第3処理、前記第4処理の順に行う処理であり、前記重み更新処理は、拡張カルマンフィルタ法に基づいて導出された式と、前記1次元以上の第1中間データと、前記1次元以上の出力データとによって、前記第1中間ノードと前記第2中間ノードとを結合するエッジそれぞれに割り当てられた重みと、前記第2中間ノードと前記出力ノードとを結合するエッジそれぞれに割り当てられた重みとを更新する処理である、機械学習装置である。
本発明によれば、予め決められた順に並ぶ1次元以上の入力データのオンライン学習を行うことができる。
<実施形態>
以下、本発明の実施形態について、図面を参照して説明する。
以下、本発明の実施形態について、図面を参照して説明する。
<機械学習装置の構成>
まず、図1を参照し、実施形態に係る機械学習装置1の構成について説明する。図1は、実施形態に係る機械学習装置1の構成の一例を示す図である。
まず、図1を参照し、実施形態に係る機械学習装置1の構成について説明する。図1は、実施形態に係る機械学習装置1の構成の一例を示す図である。
機械学習装置1は、P次元の入力データの機械学習を行う。Pは、1以上の整数であれば、如何なる整数であってもよい。そして、機械学習装置1は、このような機械学習を、複数のノードを有する再帰型ニューラルネットワークを用いて行う。なお、当該再帰型ニューラルネットワークでは、当該複数のノードは、重みが割り当てられたエッジによって互いに結合されている。
ここで、P次元の入力データは、互いに相関を持つデータである。また、P次元の入力データは、予め決められた順に並ぶデータである。以下では、一例として、予め決められた順が時系列順である場合について説明する。この場合、P次元の入力データは、P次元の時系列データである。P次元の時系列データは、例えば、P個のセンサから時系列順に取得されたデータ等である。なお、P個のセンサは、P種類のセンサであってもよく、一部又は全部が互いに同じ種類のP個のセンサであってもよい。また、予め決められた順は、時系列順に代えて、空間的に並べられた順等の他の順であってもよい。
以下では、説明の便宜上、時系列順を示す時刻を、離散化された時刻tによって示す。tは、例えば、整数であるが、これに限られず、実数等の他の数であってもよい。また、以下では、説明の便宜上、あるデータD1が時刻tに対応付けられている場合、時刻tに対応付けられたデータD1のことを、時刻tのデータD1と称して説明する。また、時刻tのデータD1に基づいて算出された他のデータD2を、時刻tのデータD2と称して説明する。すなわち、データD2は、時刻tに対応付けられたデータである。なお、ここで例として挙げたデータD1及びデータD2は、以下において説明するデータのうちの何らかのデータを示している。
ここで、図2に示すように、実施形態に係る再帰型ニューラルネットワークは少なくとも、入力層L1と、第1中間層L2と、第2中間層L3と、出力層L4を有する。図2は、実施形態に係る再帰型ニューラルネットワークの構成の一例を示す図である。以下では、説明の便宜上、実施形態に係る再帰型ニューラルネットワークのことを、深層FORCE学習器と称して説明する。
なお、あるニューラルネットワークにおいて、各ノードは、当該ニューラルネットワークにおいて流れるデータ同士の演算そのものを意味する。このため、各ノードは、ソフトウェアによって実現された当該ニューラルネットワークでは、当該演算を行う関数を意味する。また、各ノードは、ハードウェアによって実現された当該ニューラルネットワークでは、当該演算を行う素子を意味する。
また、あるニューラルネットワークにおいて、あるノードN1から他のノードN2の間を接続するエッジは、ノードN1からノードN2へのデータの流れを示す。ノードN1からノードN2へ流れるデータには、ノードN1とノードN2との間を接続するエッジに割り当てられた重みが乗算される。すなわち、ノードN2には、エッジを通ることによって当該重みが乗算された後の当該データが当該エッジから入力される。このため、ソフトウェアによって実現された当該ニューラルネットワークでは、当該エッジは、このような重みの乗算を行う関数を意味する。また、当該エッジは、ハードウェアによって実現された当該ニューラルネットワークでは、このような重みの乗算を行う素子を意味する。
入力層L1は、入力ノードを有する。ここで、入力層L1は、P次元の入力データの次元数と同じ数の入力ノードを有してもよく、P次元の入力データの次元数と異なる数の入力ノードを有してもよい。なお、P次元の入力データの次元数と異なる数の入力ノードを入力層L1が有する場合、これらの入力ノードの数は、P個よりも少ない数であってもよく、P個よりも多い数であってもよい。そして、当該場合、これらの入力ノードには、例えば、P次元の入力データの重み付き線形和が入力される。以下では、一例として、入力層L1が、P個の入力ノードを有する場合について説明する。この場合、ある入力ノードは、入力データのうち当該入力ノードに対応付けられた入力データを受け付ける。換言すると、P個の入力ノードのうちp番目の入力ノードは、P次元の時系列データのうちp番目の入力データを受け付ける。ここで、pは、1以上P以下の整数のうちのいずれかの整数である。すなわち、pは、P個の入力ノードのそれぞれを互いに識別する数(ラベル)である。入力層L1は、P個の入力ノードにより受け付けたP次元の入力データのそれぞれを第1中間層L2に出力する。
また、第1中間層L2は、複数の第1中間ノードを有する。また、第1中間層L2は、入力層L1が出力するP次元の入力データのそれぞれを受け付ける。より具体的には、第1中間層L2は、複数の第1中間ノードのうちの一部又は全部により、入力層L1が出力するP次元の入力データのそれぞれを受け付ける。第1中間層L2は、受け付けたP次元の入力データに応じたQ次元の第1中間データを第2中間層L3に出力する。Qは、1以上の整数であれば、如何なる整数であってもよい。このため、第1中間層L2は少なくとも、Q次元の第1中間データのそれぞれを第2中間層L3に出力するQ個の第1中間ノードを有する。ここで、これらQ個の第1中間ノードのうちq番目の第1中間ノードは、Q次元の第1中間データのうちq番目の第1中間データを第2中間層L3に出力する。qは、1以上Q以下の整数のうちのいずれかの整数である。qは、Q個の第1中間ノードのそれぞれを互いに識別する数(ラベル)であるとともに、Q次元の第1中間データのそれぞれを互いに識別する数(ラベル)でもある。
ここで、ある第1中間ノードは、1以上の入力データを受け付けた場合、受け付けた1以上の入力データの総和を第1活性化関数へ入力した場合に得られる出力値を生成する。なお、第1活性化関数は、非線形関数であれば、如何なる関数であってもよい。そして、当該第1中間ノードは、生成した当該出力値を、エッジにより当該第1中間ノードに結合されている他のノードへと出力する。当該第1中間ノードが前述のQ個の第1中間ノードのうちのいずれかである場合、生成した当該出力値は、第1中間データとして第2中間層L3に出力される。第1中間層L2が有する個々の第1中間ノードは、このような出力値の生成を行う。なお、第1中間ノードが行う処理のうちバイアスの加算等の他の処理については、説明を省略する。
第1中間層L2は、例えば、リザボアコンピューティングにおけるリザボアである。このため、第1中間層L2内における重みは、事前に乱数によって決定されている。そして、第1中間層L2内における重みの更新は、行われない。換言すると、第1中間ノード同士を結合するエッジに割り当てられた重みは、予め決められた大きさ(すなわち、乱数によって決定された大きさ)に固定されている。なお、第1中間層L2は、リザボアに代えて、層内における重みの更新が行われない他の中間層であってもよい。
第2中間層L3は、R個の第2中間ノードを有する。ここで、Rは、1以上の整数であれば、如何なる整数であってもよい。第2中間層L3は、これらR個の第2中間ノードにより、第1中間層L2からQ次元の第1中間データを受け付ける。第2中間層L3は、受け付けたQ次元の第1中間データに応じたR次元の第2中間データを出力層L4に出力する。すなわち、R個の第2中間ノードのうちr番目の第2中間ノードは、R次元の第2中間データのうちr番目の第2中間データを出力層L4に出力する。rは、1以上R以下の整数のうちのいずれかの整数である。rは、R個の第2中間ノードのそれぞれを互いに識別する数(ラベル)であるとともに、R次元の第2中間データのそれぞれを互いに識別する数(ラベル)でもある。
ここで、ある第2中間ノードは、1以上の第1中間データを受け付けた場合、受け付けた1以上の第1中間データの総和を第2活性化関数へ入力した場合に得られる出力値を生成する。第2活性化関数については、後述する。そして、当該第2中間ノードは、生成した当該出力値を、エッジにより当該第2中間ノードに結合されている他のノードへと出力する。これにより、当該第2中間ノードは、当該出力値を第2中間データとして出力層L4に出力する。第2中間層L3が有する個々の第2中間ノードは、このような出力値の生成を行う。なお、第2中間ノードが行う処理のうちバイアスの加算等の他の処理については、説明を省略する。
第2中間層L3は、フィードフォワードニューラルネットワークにおける中間層である。なお、第2中間層L3は、図2に示すような1層である構成に代えて、多層である構成であってもよい。この場合、深層FORCE学習器では、第1中間層L2と出力層L4との間に存在する複数の層を、まとめて第2中間層L3と称する。例えば、第2中間層L3は、第21中間層~第2n中間層とのn個の層によって構成されてもよい。ここで、nは、2以上の整数である。この場合、第2中間層L3は、第21中間層が有する複数のノードのそれぞれによってQ次元の第1中間データを受け付ける。これにより、当該場合、第2中間層L3では、フィードフォワードニューラルネットワークにおけるデータフローと同様のデータフローによって第21中間層から第2n中間層までの間をデータが流れる。そして、当該場合、第2中間層L3では、第2n中間層から、R次元の第2中間データを出力層L4に出力する。
出力層L4は、S個の出力ノードを有する。ここで、Sは、1以上の整数であれば、如何なる整数であってもよい。出力層L4は、これらS個の出力ノードにより、第2中間層L3からR次元の第2中間データを受け付ける。出力層L4は、受け付けたR次元の第2中間データに応じたS次元の出力データを生成して出力する。すなわち、S個の出力ノードのうちs番目の出力ノードは、S次元の出力データのうちs番目の出力データを生成する。sは、1以上S以下の整数のうちのいずれかの整数である。sは、S個の出力ノードのそれぞれを互いに識別する数(ラベル)であるとともに、S次元の出力データのそれぞれを互いに識別する数(ラベル)でもある。
ここで、ある出力ノードは、1以上の第2中間データを受け付けた場合、受け付けた1以上の第2中間データの総和を第3活性化関数へ入力した場合に得られる出力値を生成する。これにより、当該出力ノードは、当該出力値を出力データとして出力する。第3活性化関数については、後述する。出力層L4が有する個々の出力ノードは、このような出力値の生成を行う。なお、出力ノードが行う処理のうちバイアスの加算、当該出力値の出力等の他の処理については、説明を省略する。
このように、深層FORCE学習器は、この一例において、リザボアである第1中間層L2と、フィードフォワードニューラルネットワークにおける中間層である第2中間層L3とを有する。このため、深層FORCE学習器は、この一例では、リザボアコンピューティングとフィードフォワードニューラルネットワークとを組み合わせた再帰型ニューラルネットワークである。
なお、入力ノードと、第1中間ノードと、第2中間ノードと、出力ノードとは、深層FORCE学習器が有する複数のノードのうちの互いに異なるノードであり、重複することはない。
ここで、ある入力ノードX11からある第1中間ノードX12へあるデータD1が出力される場合、データD1には、入力ノードX11と第1中間ノードX12とを結合するエッジに割り当てられた重みが乗算される。そして、当該重みが乗算された後のデータD1が第1中間ノードX12へと入力される。
また、ある第1中間ノードX21から他の第1中間ノードX22へあるデータD2が出力される場合、データD2には、第1中間ノードX21と第1中間ノードX22とを結合するエッジに割り当てられた重みが乗算される。そして、当該重みが乗算された後のデータD2が第1中間ノードX22へと入力される。
また、ある第1中間ノードX31からある第2中間ノードX32へあるデータD3が出力される場合、データD3には、第1中間ノードX31と第2中間ノードX32とを結合するエッジに割り当てられた重みが乗算される。そして、当該重みが乗算された後のデータD3が第2中間ノードX32へと入力される。
また、ある第2中間ノードX41からある出力ノードX42へあるデータD4が出力される場合、データD4には、第2中間ノードX41と出力ノードX42とを結合するエッジに割り当てられた重みが乗算される。そして、当該重みが乗算された後のデータD4が出力ノードX42へと入力される。
また、第1中間層L2内における重みが更新されないため、深層FORCE学習器では、重みの更新は、第1中間ノードと第2中間ノードとを結合するエッジに割り当てられた重みと、第2中間ノードと出力ノードとを結合するエッジに割り当てられた重みとについて行われる。また、重みの更新は、入力ノードと第1中間ノードとを結合するエッジに割り当てられた重みについて行われない。そこで、以下では、説明の便宜上、これらの重みの更新が行われる重みを区別する必要がない限り、まとめて更新対象重みと称して説明する。
なお、図2に示した「○」はそれぞれ、ノードを示している。すなわち、入力層L1に含まれている「○」はそれぞれ、入力ノードを示す。また、第1中間層L2に含まれている「○」はそれぞれ、第1中間ノードを示す。また、第2中間層L3に含まれている「○」はそれぞれ、第2中間ノードを示す。また、出力層L4に含まれている「○」はそれぞれ、出力ノードを示す。
また、図2に示したノード間を結合する矢印は、深層FORCE学習器における各ノード間のエッジによる接続態様のイメージを分かりやすく表すために描かれているものであり、実際の深層FORCE学習器における各ノード間のエッジによる接続態様とは異なる。
また、入力層L1への入力データの入力と、出力層L4からの出力データの出力とについては、既知の方法によって行われてもよく、これから開発される方法によって行われてもよいため、説明を省略する。
機械学習装置1は、このような深層FORCE学習器を用いて、前述のP次元の入力データの機械学習を行う。より具体的には、機械学習装置1は、入力層L1がP次元の入力データを時系列順に受け付ける毎に(すなわち、当該入力データを予め決められた順に受け付ける毎に)、出力データ生成処理と重み更新処理とを行う。
出力データ生成処理は、第1処理と、第2処理と、第3処理と、第4処理とを、第1処理、第2処理、第3処理、第4処理の順に行う処理である。
第1処理は、入力層L1により受け付けたP次元の入力データを入力層L1から第1中間層L2に出力する処理である。
第2処理は、第1処理により第1中間層L2に入力されたP次元の入力データに応じたQ次元の第1中間データを第1中間層L2から第2中間層L3に出力する処理である。
第3処理は、第2処理により第2中間層L3に入力されたQ次元の第1中間データに応じたR次元の第2中間データを第2中間層L3から出力層L4に出力する処理である。なお、第3処理は、前述したように第21中間層~第2n中間層とのn個の層によって構成される場合、第2処理により第2中間層L3の第21中間層に入力されたQ次元の第1中間データに応じたR次元の第2中間データを第2中間層L3の第2n中間層から出力層L4に出力する処理である。
第4処理は、第3処理により出力層L4に入力されたR次元の第2中間データに応じたS次元の出力データを生成する処理である。
出力データ生成処理については、一般的なフィードフォワードニューラルネットワークにおいて出力データを生成する処理と同様の処理である。このため、出力データ生成処理については、これ以上の詳細な説明を省略する。
重み更新処理は、Q次元の第1中間データと、S次元の出力データと、拡張カルマンフィルタ法に基づいて導出された式とによって、前述の更新対象重み(すなわち、第1中間ノードと第2中間ノードとを結合するエッジそれぞれに割り当てられた重み、及び、第2中間ノードと出力ノードとを結合するエッジそれぞれに割り当てられた重み)を更新する処理である。
以下では、機械学習装置1の構成とともに、このような重み更新処理の詳細について詳しく説明する。
図1に戻る。機械学習装置1は、演算装置11と、メモリ12と、ネットワークインターフェース13を備える。なお、機械学習装置1は、これらに加えて、他の回路、他の装置を備える構成であってもよい。例えば、機械学習装置1は、キーボード、マウス等の入力装置を備える構成であってもよい。また、例えば、機械学習装置1は、ディスプレイ等の出力装置を備える構成であってもよい。また、例えば、機械学習装置1は、当該入力装置と当該出力装置との少なくとも一方を接続するインタフェースを備える構成であってもよい。
演算装置11は、プロセッサであり、例えば、FPGA(Field Programmable Gate Array)である。なお、演算装置11は、FPGAに代えて、CPU(Central Processing Unit)であってもよく、FPGAとCPUの組み合わせであってもよく、他のプロセッサであってもよい。
この一例では、演算装置11は、FPGAである。このため、演算装置11は、FPGAが有するハードウェア(例えば、集積回路等)によって深層FORCE学習器を実現し、p次元の入力データについての機械学習を行う。なお、演算装置11がCPUである場合、演算装置11は、CPUが有するハードウェアと、CPUにより実行されるソフトウェアとの組み合わせによって当該機械学習を行う構成であってもよい。また、演算装置11は、後述するように、ニアメモリ、メモリロジック等によって構成されてもよい。換言すると、演算装置11は、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアによって構成されてもよい。
メモリ12は、例えば、演算装置11が用いる各種の情報を記憶する。メモリ12は、例えば、SSD(Solid State Drive)、HDD(Hard Disk Drive)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、ROM(Read-Only Memory)、RAM(Random Access Memory)等を含む。なお、メモリ12は、演算装置11に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。
ネットワークインターフェース13は、ネットワークを介して、センサ等の外部装置と接続するインタフェースである。
<重み更新処理>
以下、機械学習装置1が行う重み更新処理について説明する。ここで、以下において説明する重み更新処理は、拡張カルマンフィルタ法に基づく処理である。拡張カルマンフィルタ法に基づく重み更新処理では、離散化された時刻tが示す時系列順に応じた逐次計算が行われる。このため、以下において説明する関数、ベクトル、行列等の引数として現われる時刻tは、このような逐次計算における時系列順を示す。なお、拡張カルマンフィルタ法による以下の定式化は、一例に過ぎず、他の定式化であってもよい。
以下、機械学習装置1が行う重み更新処理について説明する。ここで、以下において説明する重み更新処理は、拡張カルマンフィルタ法に基づく処理である。拡張カルマンフィルタ法に基づく重み更新処理では、離散化された時刻tが示す時系列順に応じた逐次計算が行われる。このため、以下において説明する関数、ベクトル、行列等の引数として現われる時刻tは、このような逐次計算における時系列順を示す。なお、拡張カルマンフィルタ法による以下の定式化は、一例に過ぎず、他の定式化であってもよい。
深層FORCE学習器では、重み更新処理において更新される重みは、前述した更新対象重みであった。このため、実施形態では、層内における重みが更新されない第1中間層L2を、仮想的に入力層L1の一部として考える。このような考えの下では、前述の第1中間データを入力データの代わりとして扱うことができる。そこで、Q次元の第1中間データを成分として有するQ次元のベクトルは、以下の式(1)のように表すことができる。
上記の式(1)が示すベクトルyIの各成分は、Q次元の第1中間データを示す。また、式(1)におけるtは、前述した通り、逐次計算における時系列順を示す時刻である。すなわち、yI(t)は、時刻tの入力データに応じて第1中間層L2が出力したQ次元の第1中間データ(すなわち、時刻tの第1中間データ)を示す。なお、時刻tの入力データに応じて第1中間層L2が出力したQ次元の第1中間データは、時刻tの入力データが入力層L1に受け付けられた場合において第1中間層L2が出力したQ次元の第1中間データのことである。このため、yI(t)は、時刻tにおいて算出された第1中間データを示しているわけではない。
また、時刻tの入力データに応じて出力層L4が生成するS次元の出力データは、以下の式(2)のように表すことができる。なお、時刻tの入力データに応じて出力層L4が出力したS次元の出力データは、時刻tの入力データが入力層L1に受け付けられた場合において出力層L4が生成したS次元の出力データのことである。
上記の式(2)が示すベクトルyOの各成分は、S次元の出力データを示す。すなわち、yO(t)は、時刻tの入力データが入力層L1に受け付けられた直後において出力層L4が生成したS次元の出力データ(すなわち、時刻tの出力データ)を示す。このため、yO(t)は、時刻tにおいて算出された出力データを示しているわけではない。
また、時刻tの入力データに応じて第2中間層L3が出力するR次元の第2中間データは、以下の式(3)のように表すことができる。なお、時刻tの入力データに応じて第2中間層L3が出力したR次元の第2中間データは、時刻tの入力データが入力層L1に受け付けられた場合において第2中間層L3が出力したR次元の第2中間データのことである。
上記の式(3)が示すベクトルyHの各成分は、R次元の第2中間データを示す。すなわち、yH(t)は、時刻tの入力データに応じて第2中間層L3が出力したR次元の第2中間データ(すなわち、時刻tの第2中間データ)を示す。このため、yH(t)は、時刻tにおいて算出された第2中間データを示しているわけではない。
また、時刻tの入力データが入力層L1に受け付けられた場合において、第1中間データを出力するQ個の第1中間ノードのうちq番目の第1中間ノードと、R個の第2中間ノードのうちr番目の第2中間ノードとを結合するエッジに割り当たられている重みは、以下の式(4)のように表すことができる。
上記の式(4)が示すベクトルwHIの各成分は、第1中間データを出力するQ個の第1中間ノードのうちq番目の第1中間ノードと、R個の第2中間ノードのうちr番目の第2中間ノードとを結合するエッジに割り当たられている重みを示す。すなわち、wHI(t)の各成分は、時刻tの入力データに応じた当該重み(すなわち、時刻tの当該重み)を示す。
また、時刻tの入力データが入力層L1に受け付けられた場合において、第2中間データを出力するR個の第2中間ノードのうちr番目の第2中間ノードと、S個の出力ノードのうちs番目の出力ノードとを結合するエッジに割り当たられている重みは、以下の式(5)のように表すことができる。
上記の式(5)が示すベクトルwOHの各成分は、第2中間データを出力するR個の第2中間ノードのうちr番目の第2中間ノードと、S個の出力ノードのうちs番目の出力ノードとを結合するエッジに割り当たられている重みを示す。すなわち、wOH(t)の各成分は、時刻tの入力データに応じた当該重み(すなわち、時刻tの当該重み)を示す。
また、深層FORCE学習器における時刻tの教師データは、以下の式(6)のように表すことができる。
上記の式(6)が示すベクトルd(t)の各成分は、時刻tのS次元の出力データのそれぞれに対応する教師データを示す。
ここで、上記の式(2)に示したS次元の出力データのうちのs番目の出力データは、式(3)及び式(5)に基づいて、以下の式(7)及び式(8)のように表すことができる。
一方、上記の式(3)に示したR次元の第2中間データのうちのr番目の第2中間データは、式(1)及び式(4)に基づいて、以下の式(9)及び式(10)のように表すことができる。
式(7)における関数fOは、前述の第3活性化関数である。また、式(9)における関数fHは、前述の第2活性化関数である。ただし、深層FORCE学習器において、第2活性化関数及び第3活性化関数のそれぞれは、所定の条件を満たす関数である。所定の条件は、奇関数であること(すなわち、原点を中心とした180°回転に対する対称性を有する非線形関数であること)、である。このような所定の条件を満たす関数は、例えば、双曲線正接関数である。なお、第2活性化関数と第3活性化関数とのうちいずれか一方又は両方は、双曲線正接関数に代えて、所定の条件を満たす他の非線形関数であってもよい。
ここで、深層FORCE学習器は、以下の式(11)及び式(12)に示した非線形ベクトル関数によって表すことができる。
上記の式(11)におけるベクトルθ(t)は、式(12)によって算出されるベクトルであり、式(12)に示したように更新対象重みを成分として有する重みベクトルである。上記の式(11)におけるベクトルη(t)は、ベクトルθ(t)に対するモデル化誤差を示す。すなわち、ベクトルη(t)は、深層FORCE学習器を何らかの非線形関数によって表すアルゴリズムによって導出される。
そのようなアルゴリズムとして拡張カルマンフィルタ法を採用した場合、上記の式(11)は、式(11)の右辺第1項を推定重みベクトルとし、式(11)の左辺を予測重みベクトルとして、以下の式(13)~式(15)のように表し直すことができる。なお、推定重みベクトルは、前述の重みベクトルについての、拡張カルマンフィルタ法における推定値のことである。また、予測重みベクトルは、重みベクトルについての、拡張カルマンフィルタ法における予測値のことである。
上記の式(13)においてベクトルθの上に付いている「^」は、「^」付きのベクトルθが推定重みベクトルであることを示している。また、式(13)においてベクトルθの上に付いている「 ̄」は、「 ̄」付きのベクトルθが予測重みベクトルであることを示している。また、式(13)におけるベクトルe(t)は、式(15)に示したように、時刻tの出力データと、時刻tの教師データとの差分を示す。そして、式(13)における行列Kは、拡張カルマンフィルタ法におけるカルマンゲイン行列を示す。すなわち、行列K(t)は、時刻tにおけるカルマンゲイン行列を示す。行列K(t)は、(Q×R+S×R)行S列の行列である。何故なら、式(13)の左辺に示した推定重みベクトルが(Q×R+S×R)次元のベクトルであり、ベクトルe(t)がS次元のベクトルであるからである。ここで、時刻tにおける行列K(t)は、以下の式(16)~(19)のように表される。
上記の式(16)において行列U(t)の上に付いている「 ̄」は、「 ̄」付きの行列U(t)が、共分散行列についての、拡張カルマンフィルタ法における予測値であることを示している。また、式(16)における行列A(t)は、時刻tのスケーリングファクタを示す。この行列A(t)は、式(17)によって算出される。また、式(17)における行列W(t)は、時刻tのモデル化誤差についての共分散行列を示す。また、式(18)の行列V(t)は、予め与えられた誤差分布に応じた成分を有する行列であり、「^」付きの行列U(t-1)に対する誤差を示す。「^」付きの行列U(t-1)は、共分散行列の、拡張カルマンフィルタ法における推定値を示す。「^」付きの行列U(t)は、式(19)により算出される。すなわち、「^」付きの行列U(t)は、式(18)及び式(19)による逐次計算により算出される。また、式(16)における行列H(t)は、拡張カルマンフィルタ法におけるヤコビアンを示す。行列H(t)は、式(20)によって算出される。行列H(t)、すなわち、ヤコビアンは、制御工学における観測行列に相当する。
機械学習装置1は、上記の式(13)~(20)を用いた逐次計算により、更新対象重みの更新を行う。この逐次計算による更新対象重みの更新を行うためには、式(20)に示したヤコビアンを具体的に算出する必要がある。ヤコビアンは、式(20)の右辺に示したように、2つのブロック行列によって表される。そして、これら2つのブロック行列の各成分は、以下の式(21)及び式(22)によって表される。
また、上記の式(21)に示したブロック行列の各成分は、上記の式(7)~(10)を用いて、以下の式(23)のように展開することができる。
なお、上記の式(23)は、ノードの結合先が一致していない場合、すなわち、q≠rである場合、0となる。
また、上記の式(22)に示したブロック行列の各成分は、上記の式(7)~(10)を用いて、以下の式(24)のように展開することができる。
このように、上記の式(20)の右辺に示した2つのブロック行列の各成分は、上記の式(23)及び式(24)に基づいて算出することができる。その結果、前述のヤコビアンが算出可能であるため、前述の「^」付きの行列U(t)と、行列V(t)と、行列W(t)とのそれぞれに対して初期値を与えることにより、機械学習装置1は、カルマンゲイン行列である行列K(t)を算出することができる。これにより、機械学習装置1は、上記の式(13)~式(15)に基づいて、更新対象重みの更新を行うことができる。
ここで、図3を参照し、機械学習装置1が行う重み更新処理の流れについて説明する。図3は、機械学習装置1が行う重み更新処理の流れの一例を示す図である。機械学習装置1は、入力層L1がP次元の入力データを時系列順に受け付ける毎に、図3に示したフローチャートの処理を行う。
機械学習装置1は、出力データ生成処理が終了するまで待機する(ステップS110)。
機械学習装置1は、出力データ生成処理が終了したと判定した場合(ステップS110-YES)、上記の式(7)~(10)及び式(20)~(24)と、前述の第2活性化関数及び第3活性化関数(例えば、両関数ともに双曲線正接関数)とに基づいて、前述のヤコビアンを算出する(ステップS120)。この際、機械学習装置1は、第1中間層L2から出力された第1中間データと、第2中間層L3から出力された第2中間データと、出力層L4により生成された出力データと、更新対象重みとを用いて、ヤコビアンを算出する。
次に、機械学習装置1は、式(16)~(19)と、ステップS120において算出されたヤコビアンとに基づいて、前述のカルマンゲイン行列を算出する(ステップS130)。ステップS130の処理は、上記の式(19)に示した「^」付きの行列Uを最小化するための算出処理である。ここで、機械学習装置1は、1回目のステップS130の処理が行われる際、3つの行列「^」付きの行列U(t)と、行列V(t)と、行列W(t)とのそれぞれについてユーザにより予め与えられた初期値を用いて、カルマンゲイン行列を算出する。
次に、機械学習装置1は、上記の式(13)~式(15)と、モデル化誤差であるベクトルη(t)と、ステップS130において算出した行列K(t)と、教師データと、出力層L4が生成した出力データと、更新対象重みとに基づいて、更新対象重みの更新を行い(ステップS140)、処理を終了する。
以上のようなフローチャートの処理により、機械学習装置1は、重み更新処理を行う。ここで、図3に示したフローチャートの処理では、機械学習装置1は、前述したように、逆行列演算を行っていない。換言すると、機械学習装置1は、当該処理において、解析計算によって予め導出されている式を用いた逐次計算を行っているに過ぎない。このため、機械学習装置1は、当該処理の計算コストを、逆行列演算を行う処理と比べて小さくすることができる。また、機械学習装置1は、当該処理によって、図2に示した深層FORCE学習器によるオンライン学習を行うことができる。その結果、機械学習装置1は、例えば、当該深層FORCE学習器による機械学習を行う装置として、エッジデバイスに搭載することができる。深層FORCE学習器をエッジデバイス等への搭載を考える場合、当該処理の効率化が重要となる。このため、当該処理においては、効率的なデータフローを実現することが求められる。特に、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアとして深層FORCE学習器をエッジデバイス等に実装する場合、効率的なデータフローの実現は、メモリアクセスの速度、計算速度等の高速化に繋がるため、非常に重要である。そこで、以下では、当該処理における効率的なデータフローについて説明する。
<重み更新処理におけるデータフロー>
前述した通り、深層FORCE学習器は、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアとしてエッジデバイス等に実装することができる。そして、当該ハードウェアとしてエッジデバイス等に実装される深層FORCE学習器のメモリアクセスの速度、計算速度等は、重み更新処理におけるデータフローの設計に応じて異なる。このような事情から、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアとして深層FORCE学習器をエッジデバイス等に実装にする場合、効率的な当該データフローを考える必要がある。
前述した通り、深層FORCE学習器は、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアとしてエッジデバイス等に実装することができる。そして、当該ハードウェアとしてエッジデバイス等に実装される深層FORCE学習器のメモリアクセスの速度、計算速度等は、重み更新処理におけるデータフローの設計に応じて異なる。このような事情から、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアとして深層FORCE学習器をエッジデバイス等に実装にする場合、効率的な当該データフローを考える必要がある。
そこで、以下では、重み更新処理におけるデータフローとして効率的であると考えられる具体例について説明する。
図4は、重み更新処理におけるデータフローの全体構成の一例を示す図である。重み更新処理におけるデータフローは、図4に示したように、大きく分けてブロックB1~ブロックB6の6つのブロックから構成される。なお、当該6つのブロックのそれぞれは、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアを示す。なお、図4において、データフローにおける時系列順は、時刻tによって示している。
ブロックB1は、上記の式(14)に基づく処理により、前述の予測重みベクトルを算出するブロックである。ブロックB1には、ベクトルη(t)と「^」付きのベクトルθ(t)とが入力される。そして、ブロックB1は、「 ̄」付きのベクトルθ(t)、すなわち、予測重みベクトルを算出する。ブロックB1は、算出した予測重みベクトルを、ブロックB2に出力する。
ブロックB2は、上記の式(18)に基づく処理により、共分散行列についての拡張カルマンフィルタ法における予測値を算出するブロックである。ブロックB2には、「^」付きの行列U(t-1)と、行列V(t)とが入力される。そして、ブロックB2は、共分散行列についての予測値、すなわち、「 ̄」付きの行列U(t)を算出する。ブロックB2は、算出した「 ̄」付きの行列U(t)を、ブロックB4とブロックB6とのそれぞれに出力する。
ブロックB3は、上記の式(13)に基づく処理により、推定重みベクトルを更新するブロックである。ブロックB3には、ベクトルe(t)と、ブロックB1から出力される「 ̄」付きのベクトルθ(t)と、後述するブロックB6から出力される行列K(t)とが入力される。そして、ブロックB3は、推定重みベクトル、すなわち、「^」付きのベクトルθ(t+1)を算出する。ブロックB3は、算出した「^」付きのベクトルθ(t+1)を出力する。
ブロックB4は、上記の式(19)に基づく処理により、共分散行列についての拡張カルマンフィルタ法における推定値を算出するブロックである。ブロックB4には、ブロックB2から出力される「 ̄」付きの行列U(t)と、後述するブロックB5から出力される行列H(t)と、後述するブロックB6から出力される行列K(t)とが入力される。そして、ブロックB4は、当該推定値、すなわち、「^」付きの行列U(t)を算出する。ブロックB4は、算出した「^」付きの行列U(t)を出力する。
ブロックB5は、上記の式(7)~式(10)に基づく処理により、ヤコビアンを算出するブロックである。ブロックB5には、ベクトルyI(t)が入力される。そして、ブロックB5は、ヤコビアン、すなわち、行列H(t)を算出する。ブロックB5は、算出した行列H(t)を、ブロックB4とブロックB6とのそれぞれに出力する。また、ブロックB5は、前述の出力データ生成処理も行う。ブロックB5内部のデータフローについては、後述する。
ブロックB6は、上記の式(16)及び式(17)に基づく処理により、カルマンゲイン行列を算出するブロックである。ブロックB6には、ブロックB2から出力される「 ̄」付きの行列U(t)と、ブロックB5から出力される行列H(t)と、行列W(t)とが入力される。そして、ブロックB6は、カルマンゲイン行列、すなわち、行列K(t)を算出する。ブロックB6は、算出した行列K(t)を出力する。この際、ブロックB6は、ブロックB3にも行列K(t)を出力する。
ここで、図5は、ブロックB5内部のデータフローの最も単純な具体例を示す図である。図5に示したデータフローは、深層FORCE学習器において採用される第2活性化関数及び第3活性化関数のそれぞれが、前述の所定の条件を満たしていれば、如何なる関数であっても成立するデータフローである。また、図5に示したデータフローには、前述の出力データ生成処理におけるデータフローも含まれている。図5に示したデータフローは、大きく分けてブロックB51A~ブロックB51Hの8つのブロックから構成される。なお、当該8つのブロックのそれぞれは、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアを示す。なお、図5において、データフローにおける時系列順は、時刻tによって示している。
ブロックB51Aは、上記の式(10)の計算を行うブロックである。すなわち、ブロックB51Aには、ベクトルyI(t)と、ベクトルwHI(t)とが入力される。そして、ブロックB51Aは、actr(t)を算出し、算出したactr(t)を出力する。より具体的には、ブロックB51Aは、算出したactr(t)を、ブロックB51BとブロックB51Eのそれぞれに出力する。
ブロックB51Bは、上記の式(9)の計算を行うブロックである。すなわち、ブロックB51Bには、ブロックB51Aから出力されるactr(t)が入力される。そして、ブロックB51Bは、ベクトルyH(t)を算出し、算出したベクトルyH(t)を出力する。より具体的には、ブロックB51Bは、算出したベクトルyH(t)を、ブロックB51CとブロックB51Hのそれぞれに出力する。
ブロックB51Cは、上記の式(8)の計算を行うブロックである。すなわち、ブロックB51Cには、ブロックB51Bから出力されるベクトルyH(t)と、ベクトルwOH(t)とが入力される。そして、ブロックB51Cは、acts(t)を算出し、算出したacts(t)を出力する。より具体的には、ブロックB51Cは、算出したacts(t)を、ブロックB51DとブロックB51Fのそれぞれに出力する。
ブロックB51Dは、上記の式(7)の計算を行うブロックである。すなわち、ブロックB51Dには、ブロックB51Cから出力されるacts(t)が入力される。そして、ブロックB51Dは、ベクトルyO(t)を算出し、算出したベクトルyO(t)を出力する。
このように、ブロックB51A、ブロックB51B、ブロックB51C、ブロックB51Dの順に流れるデータフローが、出力データ生成処理におけるデータフローである。
ブロックB51Eは、上記の式(23)におけるfH’(actr(t))を算出するブロックである。すなわち、ブロックB51Eには、ブロックB51Aから出力されるactr(t)が入力される。そして、ブロックB51Eは、fH’(actr(t))を算出し、算出したfH’(actr(t))をブロックB51Gに出力する。
ブロックB51Fは、上記の式(23)及び式(24)におけるfO’(acts(t))を算出するブロックである。すなわち、ブロックB51Fには、ブロックB51Cから出力されるacts(t)が入力される。そして、ブロックB51Fは、fO’(acts(t))を算出し、算出したfO’(acts(t))を出力する。より具体的には、ブロックB51Fは、算出したfO’(acts(t))を、ブロックB51GとブロックB51Hのそれぞれに出力する。
ブロックB51Gは、上記の式(23)の計算を行うブロックである。すなわち、ブロックB51Gには、ベクトルyI(t)と、ベクトルwOH(t)と、ブロックB51Eから出力されるfH’(actr(t))と、ブロックB51Fから出力されるfO’(acts(t))とが入力される。そして、ブロックB51Gは、式(23)の左辺の各成分を算出する。
ブロックB51Hは、上記の式(24)の計算を行うブロックである。すなわち、ブロックB51Hには、ブロックB51Bから出力されるベクトルyH(t)と、ブロックB51Fから出力されるfO’(acts(t))とが入力される。そして、ブロックB51Gは、式(24)の左辺の各成分を算出する。
ここで、ブロックB51GとブロックB51Hとのそれぞれから出力される値は、ヤコビアン、すなわち、行列H(t)の各成分に他ならない。
このように、図5に示したデータフローでは、出力データ生成処理と、ヤコビアンの算出処理とにおいて、actr(t)及びacts(t)を算出する処理が共通化されている。すなわち、当該データフローは、出力データ生成処理の一部と、重み更新処理の一部とにおける演算処理が共通化されたデータフローである。機械学習装置1は、このようなデータフローに基づいて、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアとして深層FORCE学習器をエッジデバイス等に実装することができる。その結果、機械学習装置1は、第2活性化関数及び第3活性化関数のそれぞれとして特殊な関数を用いることなく、メモリアクセスの速度、計算速度等の高速化を図ることができる。
図6は、ブロックB5の内部のデータフローの他の具体例を示す図である。図6に示したデータフローは、第2活性化関数fHが双曲線正接関数であり、且つ、第3活性化関数fOが恒等関数である場合に成立するデータフローである。また、図6に示したデータフローにも、前述の出力データ生成処理におけるデータフローも含まれている。図6に示したデータフローは、大きく分けてブロックB51Aと、ブロックB52A~ブロックB52Eとの6つのブロックから構成される。なお、当該6つのブロックのそれぞれは、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアを示す。なお、図6において、データフローにおける時系列順は、時刻tによって示している。また、図6では、図5に示したブロックと同じ機能を有するブロック(すなわち、ブロックB51A)については、同様の符号を付して説明を省略する。ただし、図6では、ブロックB51Aは、actr(t)をブロックB52Aに出力する。
ブロックB52Aは、上記の式(9)の計算を行うブロックである。ただし、ブロックB52Aは、第2活性化関数として双曲線正接関数を用いて、当該計算を行う。ブロックB52Aには、ブロックB51Aから出力されるactr(t)が入力される。そして、ブロックB52Aは、第2活性化関数として双曲線正接関数を用いてベクトルyH(t)を算出し、算出したベクトルyH(t)を出力する。より具体的には、ブロックB52Aは、算出したベクトルyH(t)を、ブロックB51CとブロックB52Cのそれぞれに出力する。
ブロックB52Bは、上記の式(8)の計算を行うブロックである。すなわち、ブロックB52Bには、ブロックB51Bから出力されるベクトルyH(t)と、ベクトルwOH(t)とが入力される。そして、ブロックB52Bは、acts(t)を算出する。ここで、図6に示した例では、第3活性化関数は、恒等関数である。すなわち、図6では、図5に示したブロックB51Dに相当するブロックが不要であり、ブロックB52Bにより算出されたacts(t)が、ベクトルyO(t)となる。また、恒等関数の微分は、1である。すなわち、fO’(acts(t))=1である。このため、図6では、図5に示したブロックB51Fに相当するブロックが不要である。
ブロックB52Cは、上記の式(23)におけるfH’(actr(t))を算出するブロックである。ただし、図6に示した例では、第2活性化関数fHが双曲線正接関数である。この場合、fH’(actr(t))は、以下の式(25)に示すように、ベクトルyH(t)の2乗によって書き下すことができる。
このため、図6に示したデータフローは、図5に示したブロックB51Eに代えて、ブロックB52Cを含むことができる。また、ブロックB52Cは、例えば、ルックアップテーブルにすることができる。これは、fH’(actr(t))が、ベクトルyH(t)の2乗によって書き下すことができることによる恩恵の1つである。ブロックB52Cは、ブロックB52Aから出力されるベクトルyH(t)が入力される。そして、ブロックB52Cは、fH’(actr(t))を算出(又は特定)する。ブロックB52Cは、算出したfH’(actr(t))をブロックB52Dに出力する。
ブロックB52Dは、上記の式(23)の計算を行うブロックである。すなわち、ブロックB52Dには、ベクトルyI(t)と、ベクトルwOH(t)と、ブロックB52Cから出力されるfH’(actr(t))とが入力される。そして、ブロックB52Dは、式(23)の左辺の各成分を算出する。ブロックB52Dは、算出した当該各成分を出力する。なお、図6に示した例では、前述した通り、第3活性化関数fOが恒等関数である。このため、ブロックB52Dにおいて用いるfO’(acts(t))は、恒等的に1である。
ブロックB52Eは、上記の式(24)の計算を行うブロックである。すなわち、ブロックB52Eには、ブロックB52Aから出力されるベクトルyH(t)が入力される。そして、ブロックB52Eは、式(24)の左辺の各成分を算出する。なお、図6に示した例では、前述した通り、第3活性化関数fOが恒等関数である。このため、ブロックB52Eにおいて用いるfO’(acts(t))は、恒等的に1である。
このように、図6に示したデータフローでは、図5に示したデータフローよりも、ブロックの数を少なくすることができる。これは、図6に示したデータフローに基づいて、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアとして深層FORCE学習器をエッジデバイス等に実装した場合、機械学習装置1をより簡素に設計することができることを意味している。その結果、当該場合、機械学習装置1は、消費電力を低減することができるとともに、メモリアクセスの速度、計算速度等の高速化を図ることができる。
図7は、ブロックB5の内部のデータフローの更に他の具体例を示す図である。図7に示したデータフローは、第2活性化関数fHが以下の式(26)及び式(27)に示す区分線形関数であり、且つ、第3活性化関数fOが微分すると恒等関数となる非線形関数である場合に成立するデータフローである。
上記の式(26)及び式(27)におけるγは、第2活性化関数のゲイン(あるいは傾き)を決定するパラメータである。
また、図7に示したデータフローにも、前述の出力データ生成処理におけるデータフローも含まれている。図7に示したデータフローは、大きく分けてブロックB51A~ブロックB51Dと、ブロックB52A~ブロックB52Cとの7つのブロックから構成される。なお、当該7つのブロックのそれぞれは、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアを示す。なお、図7において、データフローにおける時系列順は、時刻tによって示している。また、図7では、図5に示したブロックと同じ機能を有するブロック(すなわち、ブロックB51A~ブロックB51D)については、同様の符号を付して説明を省略する。ただし、図6では、ブロックB51Aは、actr(t)を、ブロックB53Aに出力する。また、図6では、ブロックB51Bは、ベクトルyH(t)を、ブロックB51CとブロックB53Cとのそれぞれに出力する。また、図6では、ブロックB51Cは、acts(t)を、ブロックB51DとブロックB53BとブロックB53Cとのそれぞれに出力する。
ブロックB53Aは、上記の式(23)におけるfH’(actr(t))を算出するブロックである。ただし、ブロックB53Aは、第2活性化関数として上記の式(26)に示した区分線形関数を用いて、fH’(actr(t))を算出する。ブロックB53Aには、ブロックB51Aから出力されるactr(t)が入力される。そして、ブロックB53Aは、fH’として上記の式(27)に示した関数を用いてfH’(actr(t))を算出する。ブロックB53Aは、fH’(actr(t))を、ブロックB53Bに出力する。
ブロックB53Bは、上記の式(23)の計算を行うブロックである。すなわち、ブロックB53Bには、ベクトルyI(t)と、ベクトルwOH(t)と、ブロックB53Aから出力されるfH’(actr(t))と、ブロックB51Cから出力されるacts(t)とが入力される。そして、ブロックB53Bは、式(23)の左辺の各成分を算出する。ブロックB53Bは、算出した当該各成分を出力する。なお、図7に示した例では、前述した通り、第3活性化関数fOが、微分すると恒等関数になる非線形関数である。このため、ブロックB53Bにおいて用いるfO’(acts(t))は、ブロックB51Cから出力されるacts(t)そのものである。
ブロックB53Cは、上記の式(24)の計算を行うブロックである。すなわち、ブロックB53Cには、ブロックB51Bから出力されるベクトルyH(t)と、ブロックB51Cから出力されるacts(t)とが入力される。そして、ブロックB53Cは、式(24)の左辺の各成分を算出する。なお、図7に示した例では、前述した通り、第3活性化関数fOが、微分すると恒等関数になる非線形関数である。このため、ブロックB53Cにおいて用いるfO’(acts(t))は、ブロックB51Cから出力されるacts(t)そのものである。
このように、図7に示したデータフローでも、図5に示したデータフローよりも、ブロックの数を少なくすることができる。これは、図7に示したデータフローに基づいて、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアとして深層FORCE学習器をエッジデバイス等に実装した場合、機械学習装置1をより簡素に設計することができることを意味している。その結果、当該場合、機械学習装置1は、消費電力を低減することができるとともに、メモリアクセスの速度、計算速度等の高速化を図ることができる。
<機械学習装置による機械学習の結果>
以下、機械学習装置1による機械学習の結果について説明する。
以下、機械学習装置1による機械学習の結果について説明する。
以下では、機械学習装置1による機械学習の結果について、図8に示した二重振り子の変位の時間的変化を機械学習装置1に機械学習させた結果を例に挙げて説明する。図8は、原点から長さl1の棒によって繋がれた質量m1の第1錘と、当該錘と長さl2の棒によって繋がれた質量m2の第2錘とによって構成される二重振り子の一例を示す図である。図8に示した二重振り子における第1錘と第2錘とのX軸方向及びY軸方向それぞれの変位の時間的変化は、運動方程式によって決定論的に記述される。なお、図8において、重力が働く方向は、矢印gによって示される方向である。
図8に示した二重振り子における運動方程式は、第1錘及び第2錘それぞれについて書き下される。その際、第1錘及び第2錘のそれぞれについて書き下された運動方程式における力は、図8に示したY軸と棒l1との間の角度θ1と、当該Y軸と棒l2との間の角度θ2と、角度θ1の単位時間あたりの変化である角速度と、角度θ2の単位時間あたりの変化である角速度との4つのパラメータの関数によって示される。
そこで、我々は、これら4つのパラメータをセンサによって時系列順に検出し、時系列順に検出した当該4つのパラメータを機械学習装置1に4次元の入力データとして入力した。その際、我々は、第1錘及び第2錘それぞれの変位の時間的変化についての教師データを機械学習装置1に予め記憶させておいた。そして、機械学習装置1に所定期間、第1錘及び第2錘それぞれの変位の時間的変化のオンライン学習を行わせた。その結果が、図9及び図10に示したグラフである。
図9は、図8に示した二重振り子における第2錘のX軸方向の変位の時間的変化を機械学習装置1に機械学習させている期間において機械学習装置1から出力された出力データの時間的変化をプロットしたグラフの一例を示す図である。図9に示したグラフの縦軸は、第2錘のX軸方向における変位を示す。当該グラフの横軸は、経過時間を示す。なお、図9では、当該期間が、経過時間0~経過時間800の期間として示されている。
図9に示したグラフにおけるプロットPLT1は、教師データのプロットである。また、当該グラフにおけるプロットPLT2は、出力データのプロットである。図9に示したように、オンライン学習中の機械学習装置1から出力される出力データと教師データとの一致度は、それほど高くない。
一方、図10は、図8に示した二重振り子における第2錘のX軸方向の変位の時間的変化を機械学習装置1に機械学習させた後の期間において機械学習装置1から出力された出力データの時間的変化をプロットしたグラフの一例を示す図である。図10に示したグラフの縦軸は、第2錘のX軸方向における変位を示す。当該グラフの横軸は、経過時間を示す。なお、図10では、当該期間が、経過時間800~経過時間1600の期間として示されている。
図10に示したグラフにおけるプロットPLT1は、教師データのプロットである。また、当該グラフにおけるプロットPLT3は、出力データのプロットである。図10に示したように、オンライン学習後の機械学習装置1から出力される出力データと教師データとの一致度は、オンライン学習前と比べて、高くなっている。
ここで、図9及び図10に示した例は、第1中間ノードの数が100個であり、第2中間ノードの数が10個であり、出力ノードの数が1個である場合において機械学習装置1にオンライン学習を行わせた結果の例である。機械学習装置1が行うオンライン学習の結果は、これらのノードの数によって精度が変わる。
図11及び図12に示した例は、第1中間ノードの数が20個であり、第2中間ノードの数が10個であり、出力ノードの数が1個である場合において、図9及び図10に示したグラフと同様のグラフを機械学習装置1に描かせた場合の結果の例である。
図11は、図8に示した二重振り子における第2錘のX軸方向の変位の時間的変化を機械学習装置1に機械学習させている期間において機械学習装置1から出力された出力データの時間的変化をプロットしたグラフの他の例を示す図である。図11に示したグラフの縦軸は、第2錘のX軸方向における変位を示す。当該グラフの横軸は、経過時間を示す。なお、図11では、当該期間が、経過時間0~経過時間800の期間として示されている。
図11に示したグラフにおけるプロットPLT1は、教師データのプロットである。また、当該グラフにおけるプロットPLT4は、出力データのプロットである。図11に示したように、オンライン学習中の機械学習装置1から出力される出力データと教師データとの一致度は、それほど高くない。また、図11に示したように、図11に示した例におけるオンライン学習中の機械学習装置1から出力される出力データと教師データとの一致度は、図9に示した例におけるオンライン学習中の機械学習装置1から出力される出力データと教師データとの一致度よりも低い。これは、図11に示した例における第1中間ノードの数が、図9に示した例における第1中間ノードの数の5分の1となっているからである。
一方、図12は、図8に示した二重振り子における第2錘のX軸方向の変位の時間的変化を機械学習装置1に機械学習させた後の期間において機械学習装置1から出力された出力データの時間的変化をプロットしたグラフの他の例を示す図である。図12に示したグラフの縦軸は、第2錘のX軸方向における変位を示す。当該グラフの横軸は、経過時間を示す。なお、図12では、当該期間が、経過時間800~経過時間1600の期間として示されている。
図12に示したグラフにおけるプロットPLT1は、教師データのプロットである。また、当該グラフにおけるプロットPLT5は、出力データのプロットである。図12に示したように、オンライン学習後の機械学習装置1から出力される出力データと教師データとの一致度は、オンライン学習前と比べて、高くなっている。また、図12に示したように、図12に示した例におけるオンライン学習中の機械学習装置1から出力される出力データと教師データとの一致度は、図10に示した例におけるオンライン学習中の機械学習装置1から出力される出力データと教師データと比べて、それほど変化していない。これは、図12に示した例における第1中間ノードの数が、図9に示した例における第1中間ノードの数の5分の1となっていても、機械学習装置1が行うオンライン学習の精度が高いことを意味する。
すなわち、機械学習装置1は、深層FORCE学習器と拡張カルマンフィルタ法による重み更新処理とによって、第1中間ノードの数を少なくしつつ、オンライン学習の精度を向上させることができる。その結果、機械学習装置1は、製造コストを低減と、機械学習の精度の向上とを両立させることができる。
以上のように、実施形態に係る機械学習装置は、重みが割り当てられたエッジによって互いに結合された複数のノードを有する再帰型ニューラルネットワークを用いて、予め決められた順に並ぶ1次元以上の入力データの機械学習を行う機械学習装置であって、再帰型ニューラルネットワークは、1以上の入力ノードを有する入力層と、1以上の第1中間ノードを有する第1中間層と、1以上の第2中間ノードを有する第2中間層と、1以上の出力ノードを有する出力層と、を有し、入力ノードと、第1中間ノードと、第2中間ノードと、出力ノードとは、複数のノードのうちの互いに異なるノードであり、第1中間ノード同士を結合するエッジに割り当てられた重みは、予め決められた大きさに固定されており、機械学習装置は、入力層が1次元以上の入力データを予め決められた順に受け付ける毎に、出力データ生成処理と重み更新処理とを行い、出力データ生成処理は、入力層により受け付けた1次元以上の入力データを入力層から第1中間層に出力する第1処理と、第1処理により第1中間層に入力された1次元以上の入力データに応じた1次元以上の第1中間データを第1中間層から第2中間層に出力する第2処理と、第2処理により第2中間層に入力された1次元以上の第1中間データに応じた1次元以上の第2中間データを第2中間層から出力層に出力する第3処理と、第3処理により出力層に入力された1次元以上の第2中間データに応じた1次元以上の出力データを生成する第4処理と、を第1処理、第2処理、第3処理、第4処理の順に行う処理であり、重み更新処理は、拡張カルマンフィルタ法に基づいて導出された式と、1次元以上の第1中間データと、1次元以上の出力データとによって、第1中間ノードと第2中間ノードとを結合するエッジそれぞれに割り当てられた重みと、第2中間ノードと出力ノードとを結合するエッジそれぞれに割り当てられた重みとを更新する処理である。これにより、機械学習装置は、予め決められた順に並ぶ1次元以上の入力データのオンライン学習を行うことができる。
また、機械学習装置では、第1中間層は、リザボアである、構成が用いられてもよい。
また、機械学習装置では、拡張カルマンフィルタ法に基づいて導出された式には、活性化関数として、奇関数である非線形関数が含まれている、構成が用いられてもよい。
また、機械学習装置では、拡張カルマンフィルタ法に基づいて導出された式に含まれる非線形関数は、双曲線正接関数である、構成が用いられてもよい。
また、機械学習装置では、拡張カルマンフィルタ法に基づいて導出された式は、拡張カルマンフィルタ法におけるカルマンゲイン行列を算出する式を含み、機械学習装置は、当該式に基づいてヤコビアンを算出し、算出したヤコビアンに基づいて、重み更新処理を行う、構成が用いられてもよい。
また、機械学習装置は、少なくとも、重み更新処理を、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアによって行う、構成が用いられてもよい。
また、機械学習装置は、出力データ生成処理と重み更新処理をハードウェアによって行い、出力データ生成処理の一部と、重み更新処理の一部とを共通のハードウェアによって行う、構成が用いられてもよい。
1…機械学習装置、11…演算装置、12…メモリ、13…ネットワークインターフェース、L1…入力層、L2…第1中間層、L3…第2中間層、L4…出力層
Claims (10)
- 重みが割り当てられたエッジによって互いに結合された複数のノードを有する再帰型ニューラルネットワークを用いて、予め決められた順に並ぶ1次元以上の入力データの機械学習を行う機械学習装置であって、
前記再帰型ニューラルネットワークは、
1以上の入力ノードを有する入力層と、
1以上の第1中間ノードを有する第1中間層と、
1以上の第2中間ノードを有する第2中間層と、
1以上の出力ノードを有する出力層と、
を有し、
前記入力ノードと、前記第1中間ノードと、前記第2中間ノードと、前記出力ノードとは、前記複数のノードのうちの互いに異なるノードであり、
前記第1中間ノード同士を結合するエッジに割り当てられた重みは、予め決められた大きさに固定されており、
前記機械学習装置は、前記入力層が前記1次元以上の入力データを前記予め決められた順に受け付ける毎に、出力データ生成処理と重み更新処理とを行い、
前記出力データ生成処理は、
前記入力層により受け付けた前記1次元以上の入力データを前記入力層から前記第1中間層に出力する第1処理と、
前記第1処理により前記第1中間層に入力された前記1次元以上の入力データに応じた1次元以上の第1中間データを前記第1中間層から前記第2中間層に出力する第2処理と、
前記第2処理により前記第2中間層に入力された前記1次元以上の第1中間データに応じた1次元以上の第2中間データを前記第2中間層から前記出力層に出力する第3処理と、
前記第3処理により前記出力層に入力された前記1次元以上の第2中間データに応じた1次元以上の出力データを生成する第4処理と、
を前記第1処理、前記第2処理、前記第3処理、前記第4処理の順に行う処理であり、
前記重み更新処理は、
拡張カルマンフィルタ法に基づいて導出された式と、前記1次元以上の第1中間データと、前記1次元以上の出力データとによって、前記第1中間ノードと前記第2中間ノードとを結合するエッジそれぞれに割り当てられた重みと、前記第2中間ノードと前記出力ノードとを結合するエッジそれぞれに割り当てられた重みとを更新する処理である、
機械学習装置。 - 前記第1中間層は、リザボアである、
請求項1に記載の機械学習装置。 - 前記式には、活性化関数として、奇関数である非線形関数が含まれている、
請求項1又は2に記載の機械学習装置。 - 前記非線形関数は、双曲線正接関数である、
請求項3に記載の機械学習装置。 - 前記式は、前記拡張カルマンフィルタ法におけるカルマンゲイン行列を算出する式を含み、
前記式に基づいてヤコビアンを算出し、算出したヤコビアンに基づいて、前記重み更新処理を行う、
請求項1から4のうちいずれか一項に記載の機械学習装置。 - 少なくとも、前記重み更新処理を、ニアメモリとメモリロジックとの少なくとも一方を含むハードウェアによって行う、
請求項1から5のうちいずれか一項に記載の機械学習装置。 - 前記出力データ生成処理と前記重み更新処理を前記ハードウェアによって行い、
前記出力データ生成処理の一部と、前記重み更新処理の一部とを共通の前記ハードウェアによって行う、
請求項6に記載の機械学習装置。 - 重みが割り当てられたエッジによって互いに結合された複数のノードを有する再帰型ニューラルネットワークを用いて、予め決められた順に並ぶ1次元以上の入力データの機械学習をコンピュータに行わせる機械学習プログラムであって、
前記再帰型ニューラルネットワークは、
1以上の入力ノードを有する入力層と、
1以上の第1中間ノードを有する第1中間層と、
1以上の第2中間ノードを有する第2中間層と、
1以上の出力ノードを有する出力層と、
を有し、
前記入力ノードと、前記第1中間ノードと、前記第2中間ノードと、前記出力ノードとは、前記複数のノードのうちの互いに異なるノードであり、
前記第1中間ノード同士を結合するエッジに割り当てられた重みは、予め決められた大きさに固定されており、
前記機械学習プログラムは、前記入力層が前記1次元以上の入力データを前記予め決められた順に受け付ける毎に、出力データ生成処理と重み更新処理とを行わせ、
前記出力データ生成処理は、
前記入力層により受け付けた前記1次元以上の入力データを前記入力層から前記第1中間層に出力する第1処理と、
前記第1処理により前記第1中間層に入力された前記1次元以上の入力データに応じた1次元以上の第1中間データを前記第1中間層から前記第2中間層に出力する第2処理と、
前記第2処理により前記第2中間層に入力された前記1次元以上の第1中間データに応じた1次元以上の第2中間データを前記第2中間層から前記出力層に出力する第3処理と、
前記第3処理により前記出力層に入力された前記1次元以上の第2中間データに応じた1次元以上の出力データを生成する第4処理と、
を前記第1処理、前記第2処理、前記第3処理、前記第4処理の順に行う処理であり、
前記重み更新処理は、
拡張カルマンフィルタ法に基づいて導出された式と、前記1次元以上の第1中間データと、前記1次元以上の出力データとによって、前記第1中間ノードと前記第2中間ノードとを結合するエッジそれぞれに割り当てられた重みと、前記第2中間ノードと前記出力ノードとを結合するエッジそれぞれに割り当てられた重みとを更新する処理である、
機械学習プログラム。 - 重みが割り当てられたエッジによって互いに結合された複数のノードを有する再帰型ニューラルネットワークを用いて、予め決められた順に並ぶ1次元以上の入力データの機械学習を行う機械学習方法であって、
前記再帰型ニューラルネットワークは、
1以上の入力ノードを有する入力層と、
1以上の第1中間ノードを有する第1中間層と、
1以上の第2中間ノードを有する第2中間層と、
1以上の出力ノードを有する出力層と、
を有し、
前記入力ノードと、前記第1中間ノードと、前記第2中間ノードと、前記出力ノードとは、前記複数のノードのうちの互いに異なるノードであり、
前記第1中間ノード同士を結合するエッジに割り当てられた重みは、予め決められた大きさに固定されており、
前記機械学習方法は、前記入力層が前記1次元以上の入力データを前記予め決められた順に受け付ける毎に、出力データ生成処理と重み更新処理とを行う方法であり、
前記出力データ生成処理は、
前記入力層により受け付けた前記1次元以上の入力データを前記入力層から前記第1中間層に出力する第1処理と、
前記第1処理により前記第1中間層に入力された前記1次元以上の入力データに応じた1次元以上の第1中間データを前記第1中間層から前記第2中間層に出力する第2処理と、
前記第2処理により前記第2中間層に入力された前記1次元以上の第1中間データに応じた1次元以上の第2中間データを前記第2中間層から前記出力層に出力する第3処理と、
前記第3処理により前記出力層に入力された前記1次元以上の第2中間データに応じた1次元以上の出力データを生成する第4処理と、
を前記第1処理、前記第2処理、前記第3処理、前記第4処理の順に行う処理であり、
前記重み更新処理は、
拡張カルマンフィルタ法に基づいて導出された式と、前記1次元以上の第1中間データと、前記1次元以上の出力データとによって、前記第1中間ノードと前記第2中間ノードとを結合するエッジそれぞれに割り当てられた重みと、前記第2中間ノードと前記出力ノードとを結合するエッジそれぞれに割り当てられた重みとを更新する処理である、
機械学習方法。 - リザボアコンピューティングとフィードフォワードニューラルネットワークとを組み合わせた再帰型ニューラルネットワークにおいて、重みの更新を拡張カルマンフィルタ法によって行う、
機械学習装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/025880 WO2020261549A1 (ja) | 2019-06-28 | 2019-06-28 | 機械学習装置、機械学習プログラム、及び機械学習方法 |
US17/558,129 US20220114418A1 (en) | 2019-06-28 | 2021-12-21 | Machine learning device, machine learning program, and machine learning method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/025880 WO2020261549A1 (ja) | 2019-06-28 | 2019-06-28 | 機械学習装置、機械学習プログラム、及び機械学習方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/558,129 Continuation-In-Part US20220114418A1 (en) | 2019-06-28 | 2021-12-21 | Machine learning device, machine learning program, and machine learning method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020261549A1 true WO2020261549A1 (ja) | 2020-12-30 |
Family
ID=74061805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/025880 WO2020261549A1 (ja) | 2019-06-28 | 2019-06-28 | 機械学習装置、機械学習プログラム、及び機械学習方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220114418A1 (ja) |
WO (1) | WO2020261549A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210081771A1 (en) * | 2019-09-17 | 2021-03-18 | Kabushiki Kaisha Toshiba | Processing apparatus and inference system |
-
2019
- 2019-06-28 WO PCT/JP2019/025880 patent/WO2020261549A1/ja active Application Filing
-
2021
- 2021-12-21 US US17/558,129 patent/US20220114418A1/en active Pending
Non-Patent Citations (2)
Title |
---|
BABINEC, STEFAN ET AL.: "Merging Echo State and Feedforward Neural Networks for Time Series Forecasting", ICANN 2006, PART I, LNCS 4131, 2006, Berling Heidelberg, pages 367 - 375, XP019039801 * |
RIZAL, AHMAD SHRIL ET AL.: "Recurrent Neural Network with Extended Kalman Filter for Prediction of The Number of Tourist Arrival in Lombok", 2016 INTERNATIONAL CONFERENCE ON INFORMATICS AND COMPUTING, 24 April 2017 (2017-04-24), XP033086272, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/document/7905712> [retrieved on 20190719] * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210081771A1 (en) * | 2019-09-17 | 2021-03-18 | Kabushiki Kaisha Toshiba | Processing apparatus and inference system |
US11526738B2 (en) * | 2019-09-17 | 2022-12-13 | Kabushiki Kaisha Toshiba | Processing apparatus and inference system |
US11893476B2 (en) | 2019-09-17 | 2024-02-06 | Kabushiki Kaisha Toshiba | Processing apparatus and inference system |
Also Published As
Publication number | Publication date |
---|---|
US20220114418A1 (en) | 2022-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Schuman et al. | Opportunities for neuromorphic computing algorithms and applications | |
Vlachas et al. | Multiscale simulations of complex systems by learning their effective dynamics | |
Ergen et al. | Online training of LSTM networks in distributed systems for variable length data sequences | |
CN104662526B (zh) | 用于高效地更新尖峰神经元网络的装置和方法 | |
Aimone et al. | A review of non-cognitive applications for neuromorphic computing | |
Qin et al. | Deep learning of parameterized equations with applications to uncertainty quantification | |
JP2018535491A (ja) | 画像のセマンティックセグメンテーションのためのシステム及びコンピューター実施方法、並びに非一時的コンピューター可読媒体 | |
Chen et al. | Resistive-ram-based in-memory computing for neural network: A review | |
Galluppi et al. | Real time on-chip implementation of dynamical systems with spiking neurons | |
Liu et al. | Predicting parametric spatiotemporal dynamics by multi-resolution PDE structure-preserved deep learning | |
Wang et al. | A first principles approach for data-efficient system identification of spring-rod systems via differentiable physics engines | |
Goyal et al. | Neural ordinary differential equations with irregular and noisy data | |
Sheriffdeen et al. | Accelerating PDE-constrained inverse solutions with deep learning and reduced order models | |
Roy et al. | Machine learning in nonlinear dynamical systems | |
Bounou et al. | Online learning and control of complex dynamical systems from sensory input | |
WO2020261549A1 (ja) | 機械学習装置、機械学習プログラム、及び機械学習方法 | |
Chung et al. | Stochastic Newton and quasi-Newton methods for large linear least-squares problems | |
Hwang et al. | On the number of limit cycles in asymmetric neural networks | |
WO2020262587A1 (ja) | 機械学習装置、機械学習プログラム、及び機械学習方法 | |
Li et al. | Infinite-fidelity coregionalization for physical simulation | |
Wu et al. | Algorithm and implementation of distributed ESN using Spark framework and parallel PSO | |
Nastorg et al. | Ds-gps: A deep statistical graph poisson solver (for faster cfd simulations) | |
Mei et al. | Controlsynth neural ODEs: Modeling dynamical systems with guaranteed convergence | |
Zhang et al. | The expressivity and training of deep neural networks: Toward the edge of chaos? | |
Jain et al. | A kernel class allowing for fast computations in shape spaces induced by diffeomorphisms |
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: 19935308 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: 19935308 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |