WO2020049637A1 - 学習装置 - Google Patents
学習装置 Download PDFInfo
- Publication number
- WO2020049637A1 WO2020049637A1 PCT/JP2018/032762 JP2018032762W WO2020049637A1 WO 2020049637 A1 WO2020049637 A1 WO 2020049637A1 JP 2018032762 W JP2018032762 W JP 2018032762W WO 2020049637 A1 WO2020049637 A1 WO 2020049637A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- weight
- matrix
- arithmetic unit
- arithmetic
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Definitions
- the present invention relates to a learning device.
- the learning data is data used for learning the discriminant model.
- machine learning for example, parameters of arithmetic expressions and discriminants used in a predetermined learning device are adjusted based on the relationship between input and output indicated by the learning data.
- the learning device is, for example, a discrimination model that performs discrimination regarding one or a plurality of labels when data is input.
- Non-Patent Document 1 discloses an example of a learning computation circuit and a learning method for efficiently executing deep learning of a neural network, particularly with low power consumption. Has been described.
- Non-Patent Document 2 in deep learning in CNN (Convolutional Neural Network), a learning range is divided into a plurality of convolutional layers into a layer in which weights are fixed and a layer in which weights are updated (extended function layer). An example of a learning method for shortening the learning time by restricting the learning time is described.
- Non-Patent Document 3 describes an optimization example of an accelerator design based on an FPGA (Field-Programmable ⁇ Gate ⁇ Array ⁇ ) as an example of a circuit configuration for learning operation in machine learning.
- FPGA Field-Programmable ⁇ Gate ⁇ Array ⁇
- FIG. 10 is an explanatory diagram showing an example of a general learning method and a circuit configuration for learning in a neural network including one or more intermediate layers between an input layer and an output layer.
- the large-scale learning circuit 70 learns the entire neural network as a predetermined discriminant model in order to support a learning algorithm for general use.
- the balloon attached to the large-scale learning circuit 70 shown in FIG. 10 schematically describes the processing direction and the processing range in the learning process of the neural network.
- a unit 71 corresponding to a neuron in the neural network is represented by an ellipse.
- a line segment 72 (a line connecting between the units 71 shown in FIG. 10) represents a connection between the units 71.
- An arrow 73 (bold arrow pointing right in FIG. 10) indicates the inference processing and the range of the inference processing.
- An arrow 74 (a thick left arrow shown in FIG. 10) indicates a parameter update process and a range of the parameter update process.
- the parameter update process is an example of a learning process.
- FIG. 10 shows an example of a feedforward neural network in which the input to each unit 71 is the output of the unit 71 in the preceding layer.
- the input to each unit 71 may include the output of the unit 71 in the previous layer at the previous time, as in a recurrent neural network.
- the direction of the inference processing is considered to be the direction from the input layer to the output layer (forward direction). It is. Further, the input to each unit 71 is not limited to the above example.
- the inference processing performed in a predetermined order from the input layer is also called “forward propagation”.
- the direction of the parameter update processing is not particularly limited.
- the direction of the parameter update process may be a direction (reverse direction) from the output layer to the input layer.
- the parameter updating process shown in FIG. 10 is an example of a process executed by the back propagation method.
- the parameter update processing is not limited to the processing executed by the back propagation method.
- the parameter update processing may be executed by STDP (Spike ⁇ Timing ⁇ Dependent ⁇ Plasticity ⁇ ).
- model learning methods in deep learning include the following learning methods. First, after inputting learning data to the input layer, an inference process of calculating the output of each unit 71 in the forward direction in each layer up to the output layer is performed (forward propagation: see arrow 73 shown in FIG. 10).
- the parameters used to calculate the output of each unit 71 in the layer are determined.
- a parameter update process for updating is performed (back propagation: see arrow 74 shown in FIG. 10). As shown in FIG. 10, the parameter update processing is performed by following each layer from the output layer to the first layer in the reverse direction. The parameter updating process is performed so that the calculated error is minimized.
- the output of each unit 71 in all the layers (first to n-th layers) subsequent to the input layer is calculated by the parameter update processing.
- the parameters used for updating are updated.
- the updated parameter is, for example, the weight of the connection between the units 71 that connects each unit 71 in the layer and the unit 71 in another layer.
- FIG. 10 shows a large-scale learning circuit 70 that performs the above-described inference processing and parameter updating processing with high calculation accuracy as an example of realizing an arithmetic circuit that performs learning.
- FIG. 11 is an explanatory diagram showing an example of input / output of the unit 71 and coupling with another unit 71 when focusing on one unit 71.
- FIG. 11A shows an example of input / output of one unit 71.
- FIG. 11B shows an example of coupling between units 71 arranged in two layers.
- f () in Expression (1A) represents an activation function.
- a in the formula (1B) represents an intercept.
- w 1 to w 4 in the equation (1B) represent parameters such as weights corresponding to the respective inputs (x 1 to x 4 ).
- the intercept a in the equation (2B) can be regarded as a coefficient of a constant term having a value of 1 (that is, one of the parameters).
- the intercept a is omitted.
- k in the expression (2C) represents an input to each unit 71 in the layer, more specifically, an identifier of another unit 71 that performs the input.
- L in Equation (2D) represents a layer identifier.
- w i, k in Expression (2D) represents a parameter of each unit i in the L-th layer. More specifically, w i, k corresponds to the weight of the connection between each unit i and another unit k (connection between units 71).
- the calculation in which a certain unit 71 calculates the output z from the input x corresponds to the inference processing in the unit 71.
- parameters for example, weight w
- the inference process is, for example, a process performed by an operating monitoring system or the like to determine whether an object in an image is a specific object.
- the calculation for obtaining the parameters of the unit 71 corresponds to the parameter updating process in the unit 71.
- FIG. 12 shows an example of an inference apparatus that performs inference processing.
- FIG. 12 is a block diagram illustrating a configuration example of a general inference apparatus.
- the inference device 80 illustrated in FIG. 12 includes a weight memory 81, a weight load unit 82, and a calculation unit 83.
- the weight memory 81 has a function of storing the weight matrix W.
- the weight loading unit 82 has a function of loading the weight matrix W stored in the weight memory 81 from the weight memory 81.
- the weight loading unit 82 inputs the loaded weight matrix W to the calculation unit 83.
- the arithmetic unit 83 has a function of performing the above inference processing using the input weight matrix W.
- FIG. 13 shows an example of a learning device that performs a parameter updating process.
- FIG. 13 is a block diagram illustrating a configuration example of a general learning device.
- the learning device 90 shown in FIG. 13 includes a weight memory 91, a weight load unit 92, a calculation unit 93, and a weight storage unit 94.
- the weight memory 91 has a function of storing the weight matrix W.
- the weight loading unit 92 has a function of loading the weight matrix W stored in the weight memory 91 from the weight memory 91.
- the weight load unit 92 inputs the loaded weight matrix W to the calculation unit 93.
- the operation unit 93 has a function of performing the above-described parameter update process using the input weight matrix W.
- the operation unit 93 inputs the weight matrix W updated in the parameter update process to the weight storage unit 94.
- the weight storage unit 94 has a function of writing the weight matrix W updated by the calculation unit 93 into the weight memory 91.
- the weight storage unit 94 updates the weight matrix W stored in the weight memory 91 to the input weight matrix W.
- the weight storage unit 94 may have a function of temporarily storing the weight matrix W.
- Patent Document 1 describes a neuroprocessor that performs high-speed calculation of inference and learning of a neural network without increasing hardware.
- the components of the weight matrix W are rearranged and used.
- such transposed matrix W T of the weight matrix W, disposed was replaced matrix of each component are used.
- Patent Literature 1 and Non-Patent Literatures 1 to 3 do not disclose a method of rearranging components of a matrix with low power consumption.
- an object of the present invention is to provide a learning device that solves the above-described problem and that can rearrange the components of a matrix with low power consumption.
- a learning device is a learning device including an operation unit to which a matrix of M rows and N columns (M and N are each an integer of 1 or more) is input.
- the operation unit includes a plurality of operation units. Is characterized in that, when a matrix is input to the calculation unit, each component of the matrix is read, and the read component is input to the corresponding calculation unit.
- each component of the matrix can be rearranged with low power consumption.
- FIG. 1 is a block diagram illustrating a configuration example of a first embodiment of a learning device according to the present invention.
- FIG. 3 is a block diagram illustrating a configuration example of a calculation unit 1300 according to the first embodiment.
- FIG. 14 is a block diagram illustrating another configuration example of the calculation unit 1300 according to the first embodiment.
- FIG. 14 is a block diagram illustrating another configuration example of the calculation unit 1300 according to the first embodiment.
- 9 is a flowchart illustrating an operation of a transpose matrix generation process by a calculation unit 1300 according to the first embodiment.
- FIG. 14 is a block diagram illustrating a configuration example of a calculation unit 1300 according to the second embodiment.
- FIG. 13 is a flowchart illustrating an operation of a 180 ° rotation matrix generation process by a calculation unit 1300 according to the second embodiment.
- FIG. 3 is an explanatory diagram illustrating a hardware configuration example of a learning device 1000 according to the present invention. It is a block diagram showing the outline of the learning device by the present invention.
- FIG. 3 is an explanatory diagram showing an example of a general learning method and a circuit configuration for learning in a neural network including one or more intermediate layers between an input layer and an output layer.
- FIG. 4 is an explanatory diagram showing an example of input / output of a unit 71 and coupling with another unit 71 when focusing on one unit 71. It is a block diagram showing an example of composition of a general inference device. It is a block diagram showing an example of composition of a general learning device.
- FIG. 1 is a block diagram illustrating a configuration example of a first embodiment of a learning device according to the present invention.
- the learning device 1000 includes a weight memory 1100, a weight load unit 1200, a calculation unit 1300, and a weight storage unit 1400.
- the arithmetic unit 1300 includes a group of arithmetic units having wirings capable of transferring components internally.
- the operation of rearranging each component by exchanging components by each arithmetic unit that has read the components is Low power consumption.
- the function of each component of the learning device 1000 that rearranges each component of the weight matrix W with low power consumption will be described.
- the weight memory 1100 has a function of storing a weight matrix W (parameter group) used for inference processing and learning processing. Note that the weight of each unit 71 is a parameter of each unit 71 in the present embodiment.
- the discrimination model is, for example, a neural network.
- the weight loading unit 1200 has a function of loading the weight matrix W from the weight memory 1100. Regardless of which of the inference process and the learning process is performed, the weight loading unit 1200 loads the weight matrix W from the weight memory 1100 as it is. The weight loading unit 1200 inputs the loaded weight matrix W to the calculation unit 1300.
- the operation unit 1300 has a function of performing the above inference processing or the above learning processing using the weight matrix W loaded from the weight memory 1100.
- the arithmetic unit 1300 calculates, in a predetermined order, the output for the discriminating data of each unit 71 of the discriminating model in which a plurality of layers each composed of one or more units 71 are combined in a layered manner. Execute the process. Further, the arithmetic unit 1300 executes a learning process of updating at least a part of the weight of each unit 71 based on the output of each unit 71 for learning data.
- the calculation unit 1300 inputs the weight matrix W updated in the learning process to the weight storage unit 1400.
- the weight storage unit 1400 has a function of writing the weight matrix W updated by the calculation unit 1300 into the weight memory 1100.
- the weight storage unit 1400 updates the weight matrix W stored in the weight memory 1100 to the input weight matrix W.
- the weight storage unit 1400 may have a function of temporarily storing the weight matrix W.
- the weight storage unit 1400 stores the update target weight (weight matrix W) of each unit 71 in the learning process in the weight memory 1100.
- the weight storage unit 1400 stores the weight matrix W in the weight memory 1100, so that the updated inference processing and learning processing use the updated weight matrix W.
- FIG. 2 is a block diagram showing a configuration example of the arithmetic unit 1300 according to the first embodiment.
- the arithmetic unit 1300 includes arithmetic units 1301 to 1309, first weight registers 1311 to 1319, and second weight registers 1321 to 1329.
- the operation unit 1300 of the present embodiment includes nine operation units. Note that the number of arithmetic units included in the arithmetic unit 1300 is not limited to nine. Arithmetic unit 1300 may include a plurality of arithmetic units arranged in a matrix format. The arithmetic unit 1300 of the present embodiment includes arithmetic units arranged in a matrix format of three rows and three columns.
- the arithmetic unit 1301 is arranged in the arithmetic unit 1300 together with the first weight register 1311 and the second weight register 1321.
- other arithmetic units are arranged in the arithmetic unit 1300 together with the first weight register and the second weight register.
- the first weight register stores the weight read by each arithmetic unit when the weight matrix W is input to the arithmetic unit 1300.
- Each operation unit reads a component of the weight matrix W corresponding to its own arrangement.
- the arithmetic units arranged at the m-th (m is an integer of 1 to 3) number from the top and the n-th (n is an integer of 1 to 3) number from the left in the arithmetic unit 1300 are the arithmetic units When the weight matrix W is input to 1300, the (m, n) components of the weight matrix W are read.
- the calculator 1301 which is disposed in the first from the left, reads the weight w 1 is (1, 1) component of the weight matrix W.
- the first weight register 1311, the weights w 1 is stored to the computing unit 1301 is read.
- Each arithmetic unit performs inference processing and learning processing using the weight stored in the first weight register.
- the operation unit 1300 is provided between the operation unit 1302 and the operation unit 1304, between the operation unit 1303 and the operation unit 1307, and between the operation unit 1306 and the operation unit 1308.
- Each is configured to be able to transfer data.
- the arithmetic units are connected by wiring.
- the transposed matrix W T of the weight matrix W is used.
- the weight w 2 is (1,2) component of the weight matrix W becomes the transposed matrix W T (2,1) component.
- the weight w 4 is a (2,1) component of the weight matrix W becomes a transposed matrix W, T (1, 2) component.
- the weights are exchanged between the arithmetic unit 1302 and the arithmetic unit 1304. Specifically, the computing unit 1302 writes the weight w 2 stored in the first weight register 1312 to the second weight register 1324 of the arithmetic unit 1304.
- the arithmetic unit 1304 writes the weight w 4 stored in the first weight register 1314 into the second weight register 1322 of the arithmetic unit 1302. Similarly, weights are also exchanged between the computing units 1303 and 1307 and between the computing units 1306 and 1308, respectively.
- weights are exchanged according to, for example, a time division multiplexing method.
- calculator 1302 after writing the weight w 2 to the second weight register 1324, the computing unit 1304 writes the weights w 4 to a second weight register 1322.
- the arithmetic units 1303 and 1307, and the arithmetic units 1306 and 1308 also exchange weights according to the time division multiplexing method.
- each of the arithmetic units except the arithmetic units 1301, 1305, and 1309 exchanges the weight written in the second weight register with the weight stored in the first weight register.
- calculator 1302 writes the weights w 4 written in the second weight register 1322 to the first weight register 1312.
- the arithmetic unit 1302 writes the weight w 2 stored in the first weight register 1312 to the second weight register 1322.
- the arithmetic unit 1300 By executing the above processing, the arithmetic unit 1300 generates a transposed matrix W T of the weight matrix W virtually. In other words, each first weight registers, each weight is stored in the array as the transposed matrix W T shown in FIG. Therefore, calculation unit 1300 may perform a learning process using the transposed matrix W T.
- FIG. 3 is a block diagram showing another example of the configuration of the arithmetic unit 1300 according to the first embodiment. As shown in the configuration example shown in FIG. 3, two units are provided between the computing unit 1302 and the computing unit 1304, between the computing unit 1303 and the computing unit 1307, and between the computing unit 1306 and the computing unit 1308, respectively. Wiring may be present.
- the two arithmetic units connected by the two wires shown in FIG. 3 can simultaneously execute weight exchange.
- the work operation unit 1302 writes the weights w 2 to the second weight register 1324
- the task of the computing unit 1304 writes the weights w 4 to a second weight register 1322 may be executed simultaneously.
- FIG. 4 is a block diagram showing another example of the configuration of the arithmetic unit 1300 according to the first embodiment. Unlike the configuration examples shown in FIGS. 2 and 3, in the configuration example shown in FIG. 4, arithmetic units for exchanging weights are not directly connected.
- Each arithmetic unit shown in FIG. 4 exchanges each weight as follows. For example, calculator 1302 first writes the weight w 2 to the second weight register 1321 of the arithmetic unit 1301. Then, the computing unit 1301 writes the written weights w 2 to the second weight register 1324 of the arithmetic unit 1304.
- the computing unit 1304 After the weight w 2 is written in the second weight register 1324, the computing unit 1304 writes the weights w 4 to a second weight register 1321 of the arithmetic unit 1301. Then, the computing unit 1301 writes the weights w 4 written in the second weight register 1322 of the arithmetic unit 1302.
- each computing unit shown in FIG. 4 inputs a weight to a destination computing unit via another computing unit. As shown in FIG. 4, through the operation unit 1302 and the computing unit 1304 and the operation unit 1301 connected by solid arrows, the weight w 2 and the weight w 4 it is exchanged.
- the weights may be exchanged via routes other than the route shown in FIG. Further, as in the configuration example shown in FIG. 3, two wirings (corresponding to the arrows shown in FIG. 4) may exist between the computing units.
- each of the arithmetic units except the arithmetic units 1301, 1305, and 1309 exchanges the weight written in the second weight register with the weight stored in the first weight register.
- each arithmetic unit can freely set the transfer destination of the weight, that is, if each arithmetic unit has a routing capability, weight exchange between the arithmetic units is executed more flexibly. .
- each computing unit included in the computing unit 1300 to which the matrix of M rows and N columns (M and N are each an integer of 1 or more) of the present embodiment is generalized and described as follows.
- m is an integer of 1 or more and M or less
- n is an integer of 1 or more and N or less
- the m-th arithmetic unit from the top and the n-th arithmetic unit from the left Reads an (m, n) component of the matrix when a matrix of M rows and N columns is input to the arithmetic unit 1300.
- the m-th computing unit from the top and the n-th computing unit from the left correspond to the n-th computing unit from the top and the m-th computing unit from the left. That is, the arithmetic unit that reads the (m, n) component (m ⁇ n) of the matrix corresponds to the arithmetic unit that reads the (n, m) component of the matrix. Each computing unit inputs the read component to the corresponding computing unit.
- the reason for setting “m ⁇ n” is to exclude computing units (for example, computing unit 1301, computing unit 1305, and computing unit 1309) corresponding to the diagonal components of the square matrix.
- the calculation unit 1300 can generate a transposed matrix W T based on weight matrix W with low power consumption.
- FIG. 5 is a flowchart illustrating an operation of a transposed matrix generation process performed by the calculation unit 1300 according to the first embodiment.
- each arithmetic unit reads the corresponding weight of the weight matrix W (step S101).
- Each arithmetic unit stores the read weight in the first weight register.
- each of the arithmetic units except the arithmetic unit 1301, the arithmetic unit 1305, and the arithmetic unit 1309 exchanges the weight with the corresponding arithmetic unit (step S102). That is, each arithmetic unit writes the stored weight into the second weight register of the corresponding arithmetic unit. The weight is written from the corresponding arithmetic unit to the second weight register of each arithmetic unit.
- each of the arithmetic units except the arithmetic unit 1301, the arithmetic unit 1305, and the arithmetic unit 1309 exchanges the weight written in the second weight register with the weight stored in the first weight register (step S103).
- each arithmetic unit writes the weight written in the second weight register into the first weight register.
- Each arithmetic unit writes the weight stored in the first weight register into the second weight register.
- operation unit 1300 ends the transposed matrix generation processing.
- the learning device 1000 includes an arithmetic unit 1300 including a plurality of arithmetic units directly connected by wiring.
- the arithmetic units connected by wiring can exchange the read weights. That is, the calculation unit 1300 can easily generate a transposed matrix W T from the input weight matrix W.
- the learning device 1000 of this embodiment in the generation of the transposed matrix W T Power consumption can be reduced.
- FIG. 6 is a block diagram illustrating a configuration example of the calculation unit 1300 according to the second embodiment.
- the configuration of the learning device 1000 of the present embodiment is the same as the configuration of the learning device 1000 shown in FIG.
- the arithmetic unit 1300 of the present embodiment also includes arithmetic units 1301 to 1309, first weight registers 1311 to 1319, and second weight registers 1321 to 1329, as in the first embodiment. . That is, the arithmetic unit 1300 of the present embodiment also includes arithmetic units arranged in a 3 ⁇ 3 matrix format.
- Each arithmetic unit is arranged in the arithmetic unit 1300 together with the first weight register and the second weight register.
- the functions of the arithmetic unit, the first weight register, and the second weight register are the same as those of the first embodiment.
- the arithmetic unit 1300 is configured to be able to transfer data between arithmetic units other than the arithmetic unit 1305.
- the matrix of the weights of the weight matrix W is placed at a position opposite to 180 degrees (hereinafter, referred to as 180-degree rotation matrix.)
- 180-degree rotation matrix In the example shown in FIG. 6, the weight w 2 is (1,2) component of the weight matrix W becomes (3,2) component 180 degree rotation matrix.
- “3” of (3 + 1 ⁇ 1) is the number of rows of the weight matrix W.
- the second “1” of (3 + 1 ⁇ 1) -1 corresponds to “1” of the (1,2) component of the weight matrix W.
- “3” of ⁇ 3 + 1 ⁇ 2 ⁇ is the number of columns of the weight matrix W. Further, “2” of (3 + 1 ⁇ 2) corresponds to “2” of the (1,2) component of the weight matrix W. The other components of the weight matrix W are also rearranged according to the same calculation formula.
- the computing unit 1302 first write the weight w 2 to the second weight register 1323 of the arithmetic unit 1303. Then, the computing unit 1303 writes the written weights w 2 to the second weight register 1326 of the arithmetic unit 1306.
- the computing unit 1306 writes the written weights w 2 to the second weight register 1329 of the arithmetic unit 1309. Then, the computing unit 1309 writes the written weights w 2 to the second weight register 1328 of the arithmetic unit 1308. Similarly, calculator 1308 also writes the weights w 8 in the second weight register 1322 of the arithmetic unit 1302 via another computing unit.
- each computing unit shown in FIG. 6 inputs the weight to the destination computing unit via another computing unit.
- the weights w 1 and the weight w 9 is replaced.
- the weights w 3 and the weight w 7 are exchanged.
- the weights w 4 and the weight w 6 are exchanged.
- the weights may be exchanged via routes other than the route shown in FIG. Further, as in the configuration example shown in FIG. 3, two wirings (corresponding to the arrows shown in FIG. 6) may exist between the computing units.
- each of the arithmetic units except the arithmetic unit 1305 exchanges the weight written in the second weight register with the weight stored in the first weight register.
- each arithmetic unit can freely set the transfer destination of the weight, that is, if each arithmetic unit has a routing capability, weight exchange between the arithmetic units is executed more flexibly. .
- arithmetic units whose weights are exchanged may be connected by wiring.
- arithmetic units whose weights are exchanged may be connected by two wires.
- each computing unit included in the computing unit 1300 to which the matrix of M rows and N columns (M and N are each an integer of 1 or more) of the present embodiment is generalized and described as follows.
- m is an integer of 1 or more and M or less
- n is an integer of 1 or more and N or less
- the m-th arithmetic unit from the top and the n-th arithmetic unit from the left Reads an (m, n) component of the matrix when a matrix of M rows and N columns is input to the arithmetic unit 1300.
- the reason for setting “2 ⁇ m ⁇ 1 ⁇ M and 2 ⁇ n ⁇ 1 ⁇ N” is that an arithmetic unit corresponding to a component located at the center of a square matrix having an odd number of rows and columns (for example, This is because the computing unit 1305) is excluded.
- the arithmetic unit 1300 can generate a 180 ° rotation matrix based on the weight matrix W with low power consumption.
- FIG. 7 is a flowchart illustrating the operation of the 180-degree rotation matrix generation processing by the calculation unit 1300 according to the second embodiment.
- each arithmetic unit reads the corresponding weight of the weight matrix W (step S201).
- Each arithmetic unit stores the read weight in the first weight register.
- each arithmetic unit except the arithmetic unit 1305 exchanges the weight with the corresponding arithmetic unit (step S202). That is, each arithmetic unit writes the stored weight into the second weight register of the corresponding arithmetic unit. The weight is written from the corresponding arithmetic unit to the second weight register of each arithmetic unit.
- each arithmetic unit except the arithmetic unit 1305 exchanges the weight written in the second weight register with the weight stored in the first weight register (step S203).
- each arithmetic unit writes the weight written in the second weight register into the first weight register.
- Each arithmetic unit writes the weight stored in the first weight register into the second weight register.
- operation unit 1300 ends the 180 ° rotation matrix generation processing.
- the learning device 1000 includes an arithmetic unit 1300 including a plurality of arithmetic units directly connected by wiring.
- the arithmetic units connected by wiring can exchange the read weights. That is, arithmetic unit 1300 can easily generate a 180-degree rotation matrix from input weight matrix W.
- the learning device 1000 of the present embodiment can generate a 180 ° rotation matrix in comparison with a learning device that repeatedly executes the loading of the weight matrix W and the rearrangement of each component. Power consumption can be reduced.
- FIG. 8 is an explanatory diagram showing a hardware configuration example of the learning device 1000 according to the present invention.
- the learning device 1000 shown in FIG. 8 includes a processor 1001, a main storage device 1002, an auxiliary storage device 1003, an interface 1004, an output device 1005, and an input device 1006. Further, the processor 1001 may include various arithmetic and processing devices such as a CPU 1008 and a GPU 1007.
- the operation of the learning device 1000 may be stored in the auxiliary storage device 1003 in the form of a program.
- the CPU 1008 reads the program from the auxiliary storage device 1003, expands the program in the main storage device 1002, and executes a predetermined process in the learning device 1000 according to the expanded program.
- the CPU 1008 is an example of an information processing device that operates according to a program.
- the learning device 1000 may include, for example, an MPU (Micro Processing Unit), an MCU (Memory Control Unit), or a GPU (Graphics Processing Unit) in addition to the CPU (Central Processing Unit).
- FIG. 8 illustrates an example in which the learning device 1000 further includes a GPU 1007 in addition to the CPU 1008.
- the auxiliary storage device 1003 is an example of a non-transitory tangible medium.
- Other examples of non-transitory tangible media include magnetic disks, magneto-optical disks, CD-ROMs (Compact Disk Read Only Memory), DVD-ROMs (Digital Versatile Disk Read Only Memory) connected via an interface 1004, A semiconductor memory and the like are included.
- the distributed learning device 1000 executes the distributed program.
- the processing may be developed in the main storage device 1002 to execute a predetermined process.
- the program may be for realizing a part of a predetermined process in the learning device 1000. Further, the program may be a difference program for realizing a predetermined process in learning device 1000, which is used in combination with another program already stored in auxiliary storage device 1003.
- the interface 1004 transmits and receives information to and from another device.
- the output device 1005 presents information to the user.
- the input device 1006 receives input of information from a user.
- some elements shown in FIG. 8 can be omitted depending on the processing content in the learning device 1000. For example, if the learning device 1000 does not present information to the user, the output device 1005 can be omitted. Also, for example, if the learning device 1000 does not accept information input from the user, the input device 1006 can be omitted.
- circuitry general-purpose or dedicated circuits (Circuitry), processors, and the like, and combinations thereof. These may be constituted by a single chip, or may be constituted by a plurality of chips connected via a bus. In addition, some or all of the above-described components may be realized by a combination of the above-described circuit and the like and a program.
- the plurality of information processing devices or circuits may be centrally arranged or distributed.
- the information processing device, the circuit, and the like may be realized as a form in which each is connected via a communication network, such as a client and server system or a cloud computing system.
- FIG. 9 is a block diagram showing an outline of a learning device according to the present invention.
- a learning device 100 # according to the present invention is a learning device including an operation unit 110 # (for example, an operation unit 1300) to which a matrix of M rows and N columns (M and N are each an integer of 1 or more) is input. Includes a plurality of arithmetic units (for example, arithmetic units 1301 to 1309).
- the plurality of arithmetic units read each component of the matrix, and calculate the read component by a corresponding arithmetic operation. Input to each container.
- the learning device can rearrange the components of the matrix with low power consumption.
- An arithmetic unit that reads the components may correspond to the arithmetic unit.
- the learning device can generate a transposed matrix.
- the m-th arithmetic unit from the top and the n-th (m ⁇ n) arithmetic unit from the left among the plurality of arithmetic units arranged in a matrix format are the n-th arithmetic unit from the top and the m-th arithmetic unit from the left.
- the (m, n) component of the matrix may be read when the matrix is input to the operation unit 110 #, corresponding to the th operation unit.
- the learning device can generate a transposed matrix using the arrangement of a plurality of arithmetic units.
- the read arithmetic unit may correspond to the arithmetic unit that has read the (M + 1-m, N + 1-n) component of the matrix.
- the learning device can generate a 180 ° rotation matrix.
- the (m, n) component of the matrix is read. Good.
- the learning device can generate a 180 ° rotation matrix using the arrangement of a plurality of arithmetic units.
- Each arithmetic unit may be connected to the corresponding arithmetic unit by wiring.
- the learning device can further reduce the power consumption for rearranging the components of the matrix.
- Each arithmetic unit may be connected to the corresponding arithmetic unit by two wires.
- the learning device can exchange the components of the matrix more quickly.
- Each computing unit may input a component read into a corresponding computing unit via another computing unit.
- the learning device is applied to applications other than the generation of a transposed matrix or a 180 ° rotation matrix.
- Each arithmetic unit may be connected to another arithmetic unit by two wires.
- the learning device can exchange the components of the matrix more quickly.
- the matrix component may be a parameter of each unit of the discrimination model in which a plurality of layers each composed of one or more units are combined in a layered manner.
- the learning device can handle the weight matrix.
- the discrimination model may be a neural network.
- the learning device can execute deep learning.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
学習装置100 は、M行N列(M、Nはそれぞれ1以上の整数)の行列が入力される演算部110 を備える学習装置であって、演算部110 は、複数の演算器を含み、複数の演算器は、演算部110 に行列が入力されると行列の各成分をそれぞれ読み込み、読み込まれた成分を対応する演算器にそれぞれ入力する。
Description
本発明は、学習装置に関する。
機械学習の普及が進み、時々刻々と変化する状況に対応するための更なる工夫が求められる。時々刻々と変化する状況に対応するためには、使用される環境で取得される多様な生データを学習用データとして学習に取り入れることが求められる。学習用データは、判別モデルの学習に用いられるデータである。
学習用データが用いられた学習(機械学習)では、例えば、学習用データが示す入力と出力の関係等に基づいて、所定の学習器で使用される演算式や判別式のパラメタが調整される。学習器は、例えば、データが入力されると、1つまたは複数のラベルに関する判別を行う判別モデルである。
機械学習における演算資源と演算精度の関係として、例えば、非特許文献1には、ニューラルネットワークの深層学習を効率的に、特に低い消費電力で実行するための学習用演算回路および学習方法の例が記載されている。
また、非特許文献2には、CNN(Convolutional Neural Network)における深層学習において、複数ある畳込み層を、重みが固定される層と重みが更新される層(拡張機能層)に分けて学習範囲を制限することによって学習時間の短縮を図る学習方法の例が記載されている。
また、機械学習における学習演算用の回路構成の例として、非特許文献3には、FPGA(Field-Programmable Gate Array )をベースとしたアクセラレータ設計の最適化例が記載されている。
以下、学習方法の概略を説明する。図10は、入力層と出力層との間に1つ以上の中間層を含むニューラルネットワークにおける一般的な学習方法および学習のための回路構成の例を示す説明図である。
図10に示す例では、汎用用途の学習アルゴリズムに対応するために、大規模学習回路70が、所定の判別モデルであるニューラルネットワーク全体を学習する。
図10に示す大規模学習回路70に付された吹き出しには、ニューラルネットワークの学習過程における処理の方向および処理の範囲が模式的に記載されている。吹き出し内において、ニューラルネットワークにおけるニューロンに相当するユニット71が楕円で表されている。
また、線分72(図10に示すユニット71間を結ぶ線)は、ユニット71間結合を表す。また、矢印73(図10に示す右向きの太線矢印)は、推論処理および推論処理の範囲を表す。また、矢印74(図10に示す左向きの太線矢印)は、パラメタ更新処理およびパラメタ更新処理の範囲を表す。なお、パラメタ更新処理は、学習処理の例である。
なお、図10は、各ユニット71への入力が前段の層のユニット71の出力になるフィードフォワード型のニューラルネットワークの例を示す。例えば、時系列情報が保持されている場合、リカレント型のニューラルネットワークのように、各ユニット71への入力に、前の時刻における前段の層のユニット71の出力が含まれてもよい。
なお、各ユニット71への入力に前の時刻における前段の層のユニット71の出力が含まれる場合も、推論処理の方向は、入力層から出力層へと向かう方向(順方向)であるとみなされる。また、各ユニット71への入力は、上記の例に限定されない。
入力層から所定の順番で行われる推論処理は、「順伝搬」とも呼ばれる。一方、パラメタ更新処理の方向は、特に限定されない。例えば、図10に示すパラメタ更新処理のように、パラメタ更新処理の方向は、出力層から入力層へと向かう方向(逆方向)でもよい。
なお、図10に示すパラメタ更新処理は、誤差逆伝搬法で実行される処理の例である。しかし、パラメタ更新処理は、誤差逆伝搬法で実行される処理に限定されない。例えば、パラメタ更新処理は、STDP(Spike Timing Dependent Plasticity )で実行されてもよい。
ニューラルネットワークに限らず、深層学習におけるモデルの学習方法の例として、次のような学習方法が挙げられる。まず、入力層に学習用データを入力した後、出力層までの各層で順方向に各ユニット71の出力を計算する推論処理を行う(順伝搬:図10に示す矢印73参照)。
次いで、出力層からの出力(最終出力)と学習用データが示す入力と出力の関係等とから算出される誤差に基づいて、層内の各ユニット71の出力を計算するために用いられるパラメタを更新するパラメタ更新処理を行う(逆伝搬:図10に示す矢印74参照)。図10に示すように、パラメタ更新処理は、出力層から第1層までの各層を逆方向に辿って行われる。また、パラメタ更新処理は、算出される誤差が最小になるように行われる。
図10に示すように、モデル全体が学習対象である場合、パラメタ更新処理で、入力層より後段の全ての層(第1層~第n層)における層内の各ユニット71の出力を計算するために用いられるパラメタが更新される。更新されるパラメタは、例えば、層内の各ユニット71と他の層のユニット71を結合するユニット71間結合の重みである。
上記のようなパラメタ更新処理が、例えば学習用データが変更されながら複数回繰り返し実行されることによって、高い認識率を有する学習済みモデルが生成される。図10は、学習を行う演算回路の実現例として、上記の推論処理とパラメタ更新処理とを高い演算精度で行う大規模学習回路70を示す。
図11は、1つのユニット71に着目したときのユニット71の入出力および他ユニット71との結合の例を示す説明図である。図11(a)は、1つのユニット71の入出力の例を示す。また、図11(b)は、2層に並べられたユニット71間の結合の例を示す。
図11(a)に示すように、1つのユニット71に対して4つの入力(x1~x4)と1つの出力(z)が与えられた場合、ユニット71の動作は、例えば式(1A)のように表される。
z=f(u) ・・・式(1A)
ただし、u=a+w1x1+w2x2+w3x3+w4x4 ・・・式(1B)
ただし、u=a+w1x1+w2x2+w3x3+w4x4 ・・・式(1B)
なお、式(1A)におけるf()は、活性化関数を表す。また、式(1B)におけるaは、切片を表す。また、式(1B)におけるw1~w4は、各入力(x1~x4)に対応した重み等のパラメタを表す。
一方、図11(b)に示すように、2層に並べられた層間で各ユニット71が結合されている場合、後段の層に着目すると、層内の各ユニット71への入力(それぞれx1~x4)に対する各ユニット71の出力(z1~z4)は、例えば、次のように表される。
zi=f(ui) ・・・式(2A)
ただし、ui=a+wi,1x1+wi,2x2+wi,3x3+wi,4x4 ・・・式(2B)
ただし、ui=a+wi,1x1+wi,2x2+wi,3x3+wi,4x4 ・・・式(2B)
なお、式(2A)におけるiは、同一層内のユニット71の識別子(本例ではi=1~3)である。また、式(2B)における切片aを、値1の定数項の係数(すなわち、パラメタの1つ)とみなすことも可能である。
以下では、式(2B)を単純化して、
ui=Σ(wi,k*xk) ・・・式(2C)
と記す場合がある。なお、式(2C)において、切片aは省略されている。また、式(2C)におけるkは、層における各ユニット71への入力、より具体的には入力を行う他のユニット71の識別子を表す。
ui=Σ(wi,k*xk) ・・・式(2C)
と記す場合がある。なお、式(2C)において、切片aは省略されている。また、式(2C)におけるkは、層における各ユニット71への入力、より具体的には入力を行う他のユニット71の識別子を表す。
また、層における各ユニット71への入力が前段の層の各ユニット71の出力のみである場合、上記の簡略式を、
ui (L)=Σ(wi,k (L)*xk (L-1)) ・・・式(2D)
と記すことも可能である。
ui (L)=Σ(wi,k (L)*xk (L-1)) ・・・式(2D)
と記すことも可能である。
なお、式(2D)におけるLは、層の識別子を表す。また、式(2D)におけるwi,kは、第L層における各ユニットiのパラメタを表す。より具体的には、wi,kは、各ユニットiと他のユニットkとの結合(ユニット71間結合)の重みに相当する。
以下、ユニット71を特に区別せず、ユニット71の出力値を決める関数(活性化関数)を簡略化して、z=Σ(w*x)と記す場合がある。
上記の重みの集合は、ベクトル形式で以下のように記載される。
wi=[wi,1,wi,2,・・・,wi,k]T ・・・式(3)
式(3)を、重みベクトルと呼ぶ。また、ある層の入力の集合である入力ベクトルx=[x1,x2,・・・,xk]T、重みベクトルを横に連結した重み行列をWとすると、出力ベクトルzはf(WTx)で表される。なお、出力ベクトルzと活性化関数との間に、以下の関係が成り立つ。
z=f(u)=[f(u1),f(u2),・・・,f(un)] ・・・式(4)
上記の例において、あるユニット71が入力xから出力zを求める計算が、ユニット71における推論処理に相当する。推論処理においてパラメタ(例えば、重みw)は固定される。推論処理は、例えば、運用中の監視システム等で、画像中の物体が特定の物体であるか否かを判定するために実行される処理である。一方、ユニット71のパラメタを求める計算が、ユニット71におけるパラメタ更新処理に相当する。
図12に、推論処理を行う推論装置の例を示す。図12は、一般的な推論装置の構成例を示すブロック図である。図12に示す推論装置80は、重みメモリ81と、重みロード部82と、演算部83とを備える。
重みメモリ81は、重み行列Wを記憶する機能を有する。重みロード部82は、重みメモリ81に記憶されている重み行列Wを重みメモリ81からロードする機能を有する。
重みロード部82は、ロードされた重み行列Wを演算部83に入力する。演算部83は、入力された重み行列Wを用いて、上記の推論処理を行う機能を有する。
次に、図13に、パラメタ更新処理を行う学習装置の例を示す。図13は、一般的な学習装置の構成例を示すブロック図である。図13に示す学習装置90は、重みメモリ91と、重みロード部92と、演算部93と、重みストア部94とを備える。
重みメモリ91は、重み行列Wを記憶する機能を有する。重みロード部92は、重みメモリ91に記憶されている重み行列Wを重みメモリ91からロードする機能を有する。
重みロード部92は、ロードされた重み行列Wを演算部93に入力する。演算部93は、入力された重み行列Wを用いて、上記のパラメタ更新処理を行う機能を有する。
演算部93は、パラメタ更新処理で更新された重み行列Wを、重みストア部94に入力する。重みストア部94は、演算部93により更新された重み行列Wを重みメモリ91に書き込む機能を有する。
具体的には、重みストア部94は、重みメモリ91に記憶されている重み行列Wを、入力された重み行列Wに更新する。なお、重み行列Wの書き込みにあたり、重みストア部94は、重み行列Wを一時的に保存する機能を有してもよい。
また、推論処理および学習処理を実行する装置の他の例として、特許文献1には、ハードウェアを増やすことなくニューラルネットワークの推論および学習の計算を高速に行うニューロプロセッサが記載されている。
Y.H.Chen, et.al., "Eyeriss: an Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks", in IEEE Jornal of Slid-State Circuits, vol.52, no.1, Jan. 2017, pp.127-138.
Wei. Liu, et.al., "SSD: Single shot MultiBox Detector", arXiv:1512.02325v5, Dec. 2016.
Chen Zhang, et.al., "Optimizing FPGA-based Accelerator Design for Deep convolutional Neural Networks", In ACM FPGA 2015, pp.160-170.
上記の学習処理において、重み行列Wの各成分は、並べ替えられて使用される。例えば、重み行列Wの転置行列WT等の、各成分の配置が入れ替えられた行列が使用される。
図13に示す重みロード部92は、転置行列WTを生成するために、例えば、重みメモリ91に記憶されている重み行列Wの各成分を行ごとに読み出し、読み出された各成分を並べ替える作業を繰り返し実行する。
しかし、重みメモリ91からの重み行列Wのロードおよび各成分の並べ替えを繰り返し実行する方法では、消費される電力が高くなる。また、各成分の並べ替えに係る時間も長くなる。
また、重みメモリ91側で重み行列Wの各成分が並べ替えられても、重みロード部92が演算部93に行列を転送する際に電力が消費される。特許文献1、および非特許文献1~3には、消費電力の低い行列の各成分の並べ替え方法が記載されていない。
[発明の目的]
そこで、本発明は、上述した課題を解決する、低消費電力で行列の各成分を並べ替えることができる学習装置を提供することを目的とする。
そこで、本発明は、上述した課題を解決する、低消費電力で行列の各成分を並べ替えることができる学習装置を提供することを目的とする。
本発明による学習装置は、M行N列(M、Nはそれぞれ1以上の整数)の行列が入力される演算部を備える学習装置であって、演算部は、複数の演算器を含み、複数の演算器は、演算部に行列が入力されると行列の各成分をそれぞれ読み込み、読み込まれた成分を対応する演算器にそれぞれ入力することを特徴とする。
本発明によれば、低消費電力で行列の各成分を並べ替えることができる。
実施形態1.
[構成の説明]
以下、本発明の実施形態を、図面を参照して説明する。図1は、本発明による学習装置の第1の実施形態の構成例を示すブロック図である。
[構成の説明]
以下、本発明の実施形態を、図面を参照して説明する。図1は、本発明による学習装置の第1の実施形態の構成例を示すブロック図である。
図1に示すように、学習装置1000は、重みメモリ1100と、重みロード部1200と、演算部1300と、重みストア部1400とを備える。
なお、各ブロック図に記載されている単方向の矢印は、データが流れる方向を示す。しかし、各矢印が記載されている箇所において双方向にデータが流れる可能性は排除されていない。
低消費電力で重み行列Wの各成分を並べ替えるために、演算部1300が、成分の内部転送が可能な配線を有する演算器群を含むことが解決手段として考えられる。
重みロード部1200が重み行列Wの各成分を行ごとに読み出し各成分を並べ替える作業に比べて、成分を読み込んだ各演算器が成分を交換することによって各成分を並べ替える作業の方が、消費される電力が低い。以下、低消費電力で重み行列Wの各成分を並べ替える学習装置1000の各構成要素の機能を説明する。
重みメモリ1100は、推論処理および学習処理に使用される重み行列W(パラメタ群)を記憶する機能を有する。なお、各ユニット71の重みが、本実施形態における各ユニット71のパラメタである。また、判別モデルは、例えばニューラルネットワークである。
重みロード部1200は、重みメモリ1100から重み行列Wをロードする機能を有する。推論処理と学習処理のいずれが行われる時であっても、重みロード部1200は、重みメモリ1100から重み行列Wをそのままロードする。重みロード部1200は、ロードされた重み行列Wを演算部1300に入力する。
演算部1300は、重みメモリ1100からロードされた重み行列Wを用いて上記の推論処理、または上記の学習処理を行う機能を有する。
具体的には、演算部1300は、1つ以上のユニット71でそれぞれ構成された複数の層が層状に結合された判別モデルの各ユニット71の判別用データに対する出力を所定の順番で計算する推論処理を実行する。また、演算部1300は、各ユニット71の学習用データに対する出力に基づいて各ユニット71の重みの少なくとも一部を更新する学習処理を実行する。
演算部1300は、学習処理で更新された重み行列Wを、重みストア部1400に入力する。重みストア部1400は、演算部1300により更新された重み行列Wを重みメモリ1100に書き込む機能を有する。
具体的には、重みストア部1400は、重みメモリ1100に記憶されている重み行列Wを、入力された重み行列Wに更新する。なお、重み行列Wの書き込みにあたり、重みストア部1400は、重み行列Wを一時的に保存する機能を有してもよい。
すなわち、重みストア部1400は、学習処理における各ユニット71の更新対象の重み(重み行列W)を重みメモリ1100に格納する。重みストア部1400が重み行列Wを重みメモリ1100に格納することによって、次の推論処理および学習処理では更新された重み行列Wが使用される。
図2は、第1の実施形態の演算部1300の構成例を示すブロック図である。図2に示すように、演算部1300は、演算器1301~1309と、第1重みレジスタ1311~1319と、第2重みレジスタ1321~1329とを含む。
本実施形態の演算部1300は、9つの演算器を含む。なお、演算部1300が含む演算器の数は、9つに限られない。演算部1300は、行列形式で配置されている複数の演算器を含んでいればよい。本実施形態の演算部1300は、3行3列の行列形式で配置されている演算器を含む。
図2に示すように、演算器1301は、第1重みレジスタ1311と、第2重みレジスタ1321と共に演算部1300に配置されている。他の演算器も同様に、第1重みレジスタと、第2重みレジスタと共に演算部1300に配置されている。
第1重みレジスタには、演算部1300に重み行列Wが入力された時、各演算器が読み込んだ重みが格納される。各演算器は、自身の配置に対応する重み行列Wの成分を読み込む。
具体的には、演算部1300内で上からm(mは1以上3以下の整数)番目、左からn(nは1以上3以下の整数)番目に配置されている演算器は、演算部1300に重み行列Wが入力されると重み行列Wの(m,n)成分を読み込む。
図2に示す例であれば、上から1番目、左から1番目に配置されている演算器1301は、重み行列Wの(1,1) 成分である重みw1を読み込む。第1重みレジスタ1311には、演算器1301が読み込んだ重みw1が格納される。各演算器は、第1重みレジスタに格納されている重みを用いて推論処理および学習処理を実行する。
また、図2に示すように、演算部1300は、演算器1302と演算器1304との間で、演算器1303と演算器1307との間で、および演算器1306と演算器1308との間でそれぞれデータが転送可能に構成されている。具体的には、図2に示すように、演算器同士が配線で接続されている。
学習処理では、重み行列Wの転置行列WTが使用される。図2に示す例であれば、重み行列Wの(1,2) 成分である重みw2は、転置行列WTでは(2,1) 成分になる。また、重み行列Wの(2,1) 成分である重みw4は、転置行列WTでは(1,2) 成分になる。
よって、学習処理が実行される場合、演算器1302と演算器1304との間で重みが交換される。具体的には、演算器1302は、第1重みレジスタ1312に格納された重みw2を演算器1304の第2重みレジスタ1324に書き込む。
また、演算器1304は、第1重みレジスタ1314に格納された重みw4を演算器1302の第2重みレジスタ1322に書き込む。同様に、演算器1303と演算器1307との間、および演算器1306と演算器1308との間でもそれぞれ重みが交換される。
なお、図2に示す構成例では2つの演算器の間に1本しか配線が存在しないため、重みの交換は、例えば時分割多重化方式に従って行われる。
時分割多重化方式に従って重みが交換される場合、演算器1302が重みw2を第2重みレジスタ1324に書き込んだ後、演算器1304が重みw4を第2重みレジスタ1322に書き込む。同様に、演算器1303と演算器1307、および演算器1306と演算器1308も、時分割多重化方式に従って重みを交換する。
重みが交換された後、演算器1301、演算器1305、および演算器1309を除く各演算器は、第2重みレジスタに書き込まれた重みと第1重みレジスタに格納されている重みとを入れ替える。
例えば、演算器1302は、第2重みレジスタ1322に書き込まれた重みw4を第1重みレジスタ1312に書き込む。また、演算器1302は、第1重みレジスタ1312に格納されている重みw2を第2重みレジスタ1322に書き込む。
以上の処理を実行することによって、演算部1300は、重み行列Wの転置行列WTを仮想的に生成する。すなわち、各第1重みレジスタには、図2に示す転置行列WTの配列通りに各重みが格納される。よって、演算部1300は、転置行列WTを用いて学習処理を実行できる。
図3は、第1の実施形態の演算部1300の他の構成例を示すブロック図である。図3に示す構成例のように、演算器1302と演算器1304との間、演算器1303と演算器1307との間、および演算器1306と演算器1308との間にはそれぞれ、2本の配線が存在してもよい。
図3に示す2本の配線で接続されている2つの演算器は、重みの交換をそれぞれ同時に実行できる。例えば、演算器1302が重みw2を第2重みレジスタ1324に書き込む作業と、演算器1304が重みw4を第2重みレジスタ1322に書き込む作業は、同時に実行可能である。
図2~3に示す構成例では重みを交換する演算器同士が直接結ばれているため、各重みは、1回だけ転送される。すなわち、各重みの並べ替えで消費される電力が最低になる。
図4は、第1の実施形態の演算部1300の他の構成例を示すブロック図である。図2~3に示す構成例と異なり、図4に示す構成例では、重みを交換する演算器同士が直接結ばれていない。
図4に示す各演算器は、以下のように各重みを交換する。例えば、演算器1302は、最初に重みw2を演算器1301の第2重みレジスタ1321に書き込む。次いで、演算器1301は、書き込まれた重みw2を演算器1304の第2重みレジスタ1324に書き込む。
重みw2が第2重みレジスタ1324に書き込まれた後、演算器1304は、重みw4を演算器1301の第2重みレジスタ1321に書き込む。次いで、演算器1301は、書き込まれた重みw4を演算器1302の第2重みレジスタ1322に書き込む。
上記のように、図4に示す各演算器は、他の演算器を介して宛先の演算器に重みを入力する。図4に示すように、演算器1302および演算器1304と実線の矢印で結ばれた演算器1301を介して、重みw2と重みw4が交換される。
同様に、演算器1303および演算器1307と破線の矢印で結ばれた演算器1302、演算器1304、演算器1305を介して、重みw3と重みw7が交換される。また、演算器1306および演算器1308と太線の矢印で結ばれた演算器1305を介して、重みw6と重みw8が交換される。
なお、各重みは、図4に示す経路以外の経路を介して交換されてもよい。また、図3に示す構成例のように、各演算器の間に配線(図4に示す矢印に相当)が2本存在していてもよい。
重みが交換された後、演算器1301、演算器1305、および演算器1309を除く各演算器は、第2重みレジスタに書き込まれた重みと第1重みレジスタに格納されている重みとを入れ替える。
図4に示すように、各演算器が重みの転送先を自在に設定できれば、すなわち各演算器がルーティング能力を有していれば、演算器間での重みのやり取りがより柔軟に実行される。
本実施形態のM行N列(M、Nはそれぞれ1以上の整数)の行列が入力される演算部1300が含む各演算器の動作は、以下のように一般化されて記載される。mを1以上M以下の整数、nを1以上N以下の整数とするとき、本実施形態の演算部1300が含む複数の演算器のうちの上からm番目、左からn番目の各演算器は、演算部1300にM行N列の行列が入力されると行列の(m,n)成分をそれぞれ読み込む。
本実施形態では、上からm番目、左からn番目(m≠n)の演算器と、上からn番目、左からm番目の演算器とが対応する。すなわち、行列の(m,n)成分(m≠n)を読み込んだ演算器と、行列の(n,m)成分を読み込んだ演算器とが対応する。各演算器は、読み込まれた成分を対応する演算器にそれぞれ入力する。
なお、「m≠n」とする理由は、正方行列の対角成分に対応する演算器(例えば、演算器1301、演算器1305、および演算器1309)を除外するためである。以上の動作により、演算部1300は、低消費電力で重み行列Wを基に転置行列WTを生成できる。
[動作の説明]
以下、本実施形態の演算部1300が転置行列WTを生成する動作を図5を参照して説明する。図5は、第1の実施形態の演算部1300による転置行列生成処理の動作を示すフローチャートである。
以下、本実施形態の演算部1300が転置行列WTを生成する動作を図5を参照して説明する。図5は、第1の実施形態の演算部1300による転置行列生成処理の動作を示すフローチャートである。
最初に、演算部1300に重み行列Wが入力されると、各演算器は、重み行列Wの該当する重みをそれぞれ読み込む(ステップS101)。各演算器は、読み込まれた重みを第1重みレジスタにそれぞれ格納する。
次いで、演算器1301、演算器1305、および演算器1309を除く各演算器は、対応する演算器と重みを交換する(ステップS102)。すなわち、各演算器は、格納された重みを対応する演算器の第2重みレジスタに書き込む。また、各演算器の第2重みレジスタには、対応する演算器から重みが書き込まれる。
次いで、演算器1301、演算器1305、および演算器1309を除く各演算器は、第2重みレジスタに書き込まれた重みと第1重みレジスタに格納されている重みとを入れ替える(ステップS103)。
すなわち、各演算器は、第2重みレジスタに書き込まれた重みを第1重みレジスタに書き込む。また、各演算器は、第1重みレジスタに格納されている重みを第2重みレジスタに書き込む。各重みを入れ替えた後、演算部1300は、転置行列生成処理を終了する。
[効果の説明]
本実施形態の学習装置1000は、直接配線で結ばれた複数の演算器を含む演算部1300を備える。配線で結ばれた演算器同士は、読み込まれた重みをやり取りできる。すなわち、演算部1300は、入力された重み行列Wから転置行列WTを容易に生成できる。
本実施形態の学習装置1000は、直接配線で結ばれた複数の演算器を含む演算部1300を備える。配線で結ばれた演算器同士は、読み込まれた重みをやり取りできる。すなわち、演算部1300は、入力された重み行列Wから転置行列WTを容易に生成できる。
演算部1300が転置行列WTを生成するため、重み行列Wのロードおよび各成分の並べ替えを繰り返し実行する学習装置に比べて、本実施形態の学習装置1000は、転置行列WTの生成で消費される電力を削減できる。
実施形態2.
[構成の説明]
次に、本発明による演算部1300の第2の実施形態を、図面を参照して説明する。図6は、第2の実施形態の演算部1300の構成例を示すブロック図である。なお、本実施形態の学習装置1000の構成は、図1に示す学習装置1000の構成と同様である。
[構成の説明]
次に、本発明による演算部1300の第2の実施形態を、図面を参照して説明する。図6は、第2の実施形態の演算部1300の構成例を示すブロック図である。なお、本実施形態の学習装置1000の構成は、図1に示す学習装置1000の構成と同様である。
図6に示すように、本実施形態の演算部1300も第1の実施形態と同様に、演算器1301~1309と、第1重みレジスタ1311~1319と、第2重みレジスタ1321~1329とを含む。すなわち、本実施形態の演算部1300も、3行3列の行列形式で配置されている演算器を含む。
各演算器は、第1重みレジスタと、第2重みレジスタと共に演算部1300に配置されている。演算器、第1重みレジスタ、第2重みレジスタが有する各機能は、第1の実施形態における各機能とそれぞれ同様である。
図6に示すように、演算部1300は、演算器1305以外の各演算器の間でデータが転送可能に構成されている。
学習処理では、重み行列Wの転置行列WT以外に、重み行列Wの各重みが180 度反対の位置に配置された行列(以下、180 度回転行列と呼ぶ。)も使用される。図6に示す例であれば、重み行列Wの(1,2) 成分である重みw2は、180 度回転行列では(3,2) 成分になる。
すなわち、重み行列Wの(1,2) 成分は、180 度回転行列では(3,2) 成分=((3+1-1),(3+1-2))成分として扱われる。(3+1-1) の「3」は、重み行列Wの行数である。また、(3+1-1) の2番目の「1」は、重み行列Wの(1,2) 成分の「1」に対応している。
また、(3+1-2) の「3」は、重み行列Wの列数である。また、(3+1-2) の「2」は、重み行列Wの(1,2) 成分の「2」に対応している。他の重み行列Wの成分も、同様の計算式に従って並べ替えられる。
よって、学習処理が実行される場合、演算器1302と演算器1308との間で、重みw2と重みw8が交換される。具体的には、演算器1302は、最初に重みw2を演算器1303の第2重みレジスタ1323に書き込む。次いで、演算器1303は、書き込まれた重みw2を演算器1306の第2重みレジスタ1326に書き込む。
次いで、演算器1306は、書き込まれた重みw2を演算器1309の第2重みレジスタ1329に書き込む。次いで、演算器1309は、書き込まれた重みw2を演算器1308の第2重みレジスタ1328に書き込む。同様に、演算器1308も、他の演算器を介して重みw8を演算器1302の第2重みレジスタ1322に書き込む。
上記のように、図6に示す各演算器は、他の演算器を介して宛先の演算器に重みを入力する。同様に、演算器1301と演算器1309との間で、重みw1と重みw9が交換される。また、演算器1303と演算器1307との間で、重みw3と重みw7が交換される。また、演算器1304と演算器1306との間で、重みw4と重みw6が交換される。
なお、各重みは、図6に示す経路以外の経路を介して交換されてもよい。また、図3に示す構成例のように、各演算器の間に配線(図6に示す矢印に相当)が2本存在していてもよい。
重みが交換された後、演算器1305を除く各演算器は、第2重みレジスタに書き込まれた重みと第1重みレジスタに格納されている重みとを入れ替える。
図6に示すように、各演算器が重みの転送先を自在に設定できれば、すなわち各演算器がルーティング能力を有していれば、演算器間での重みのやり取りがより柔軟に実行される。
また、図2に示す構成例のように、重みが交換される演算器同士が配線で接続されていてもよい。また、図3に示す構成例のように、重みが交換される演算器同士が2本の配線で接続されていてもよい。
本実施形態のM行N列(M、Nはそれぞれ1以上の整数)の行列が入力される演算部1300が含む各演算器の動作は、以下のように一般化されて記載される。mを1以上M以下の整数、nを1以上N以下の整数とするとき、本実施形態の演算部1300が含む複数の演算器のうちの上からm番目、左からn番目の各演算器は、演算部1300にM行N列の行列が入力されると行列の(m,n)成分をそれぞれ読み込む。
本実施形態では、上からm番目、左からn番目(2×m-1≠M、かつ2×n-1≠N)の演算器と、上から(M+1-m)番目、左から(N+1-n)番目の演算器とが対応する。すなわち、行列の(m,n)成分(2×m-1≠M、かつ2×n-1≠N)を読み込んだ演算器と、行列の(M+1-m,N+1-n)成分を読み込んだ演算器とが対応する。各演算器は、読み込まれた成分を対応する演算器にそれぞれ入力する。
なお、「2×m-1≠M、かつ2×n-1≠N」とする理由は、行数および列数が奇数である正方行列の中心に位置する成分に対応する演算器(例えば、演算器1305)を除外するためである。以上の動作により、演算部1300は、低消費電力で重み行列Wを基に180 度回転行列を生成できる。
[動作の説明]
以下、本実施形態の演算部1300が180 度回転行列を生成する動作を図7を参照して説明する。図7は、第2の実施形態の演算部1300による180 度回転行列生成処理の動作を示すフローチャートである。
以下、本実施形態の演算部1300が180 度回転行列を生成する動作を図7を参照して説明する。図7は、第2の実施形態の演算部1300による180 度回転行列生成処理の動作を示すフローチャートである。
最初に、演算部1300に重み行列Wが入力されると、各演算器は、重み行列Wの該当する重みをそれぞれ読み込む(ステップS201)。各演算器は、読み込まれた重みを第1重みレジスタにそれぞれ格納する。
次いで、演算器1305を除く各演算器は、対応する演算器と重みを交換する(ステップS202)。すなわち、各演算器は、格納された重みを対応する演算器の第2重みレジスタに書き込む。また、各演算器の第2重みレジスタには、対応する演算器から重みが書き込まれる。
次いで、演算器1305を除く各演算器は、第2重みレジスタに書き込まれた重みと第1重みレジスタに格納されている重みとを入れ替える(ステップS203)。
すなわち、各演算器は、第2重みレジスタに書き込まれた重みを第1重みレジスタに書き込む。また、各演算器は、第1重みレジスタに格納されている重みを第2重みレジスタに書き込む。各重みを入れ替えた後、演算部1300は、180 度回転行列生成処理を終了する。
[効果の説明]
本実施形態の学習装置1000は、直接配線で結ばれた複数の演算器を含む演算部1300を備える。配線で結ばれた演算器同士は、読み込まれた重みをやり取りできる。すなわち、演算部1300は、入力された重み行列Wから180 度回転行列を容易に生成できる。
本実施形態の学習装置1000は、直接配線で結ばれた複数の演算器を含む演算部1300を備える。配線で結ばれた演算器同士は、読み込まれた重みをやり取りできる。すなわち、演算部1300は、入力された重み行列Wから180 度回転行列を容易に生成できる。
演算部1300が180 度回転行列を生成するため、重み行列Wのロードおよび各成分の並べ替えを繰り返し実行する学習装置に比べて、本実施形態の学習装置1000は、180 度回転行列の生成で消費される電力を削減できる。
以下、各実施形態の学習装置1000のハードウェア構成の具体例を説明する。図8は、本発明による学習装置1000のハードウェア構成例を示す説明図である。
図8に示す学習装置1000は、プロセッサ1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、出力デバイス1005と、入力デバイス1006とを備える。また、プロセッサ1001は、CPU1008や、GPU1007等の各種演算・処理装置を含んでいてもよい。
図8に示すように実装される場合、学習装置1000の動作は、プログラムの形式で補助記憶装置1003に記憶されていてもよい。プログラムが補助記憶装置1003に記憶される場合、CPU1008は、プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、展開されたプログラムに従って学習装置1000における所定の処理を実行する。
なお、CPU1008は、プログラムに従って動作する情報処理装置の一例である。学習装置1000は、CPU(Central Processing Unit )以外にも、例えば、MPU(Micro Processing Unit )やMCU(Memory Control Unit )やGPU(Graphics Processing Unit)を備えていてもよい。図8には、学習装置1000がCPU1008に加えて、GPU1007をさらに備える例が記載されている。
補助記憶装置1003は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。
また、補助記憶装置1003に記憶される対象のプログラムが補助記憶装置1003に記憶される代わりに通信回線によって学習装置1000に配信される場合、配信を受けた学習装置1000は、配信されたプログラムを主記憶装置1002に展開し、所定の処理を実行してもよい。
また、プログラムは、学習装置1000における所定の処理の一部を実現するためのものでもよい。さらに、プログラムは、補助記憶装置1003に既に記憶されている他のプログラムと組み合わせられて使用される、学習装置1000における所定の処理を実現するための差分プログラムでもよい。
インタフェース1004は、他の装置との間で情報の送受信を行う。また、出力デバイス1005は、ユーザに情報を提示する。また、入力デバイス1006は、ユーザからの情報の入力を受け付ける。
また、学習装置1000における処理内容によっては、図8に示す一部の要素は省略可能である。例えば、学習装置1000がユーザに情報を提示しないのであれば、出力デバイス1005は省略可能である。また、例えば、学習装置1000がユーザから情報入力を受け付けないのであれば、入力デバイス1006は省略可能である。
また、上記の各構成要素の一部または全部は、汎用または専用の回路(Circuitry )、プロセッサ等やこれらの組み合わせによって実現される。これらは単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。また、上記の各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
上記の各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の概要を説明する。図9は、本発明による学習装置の概要を示すブロック図である。本発明による学習装置100 は、M行N列(M、Nはそれぞれ1以上の整数)の行列が入力される演算部110 (例えば、演算部1300)を備える学習装置であって、演算部110 は、複数の演算器(例えば、演算器1301~1309)を含み、複数の演算器は、演算部110 に行列が入力されると行列の各成分をそれぞれ読み込み、読み込まれた成分を対応する演算器にそれぞれ入力する。
そのような構成により、学習装置は、低消費電力で行列の各成分を並べ替えることができる。
また、mを1以上M以下の整数、nを1以上N以下の整数とするとき、行列の(m,n)成分(m≠n)を読み込んだ演算器と、行列の(n,m)成分を読み込んだ演算器とが対応してもよい。
そのような構成により、学習装置は、転置行列を生成できる。
また、行列形式で配置されている複数の演算器のうちの上からm番目、左からn番目(m≠n)の演算器は、複数の演算器のうちの上からn番目、左からm番目の演算器と対応し、演算部110 に行列が入力されると行列の(m,n)成分を読み込んでもよい。
そのような構成により、学習装置は、複数の演算器の配置を利用して転置行列を生成できる。
また、mを1以上M以下の整数、nを1以上N以下の整数とするとき、行列の(m,n)成分(2×m-1≠M、かつ2×n-1≠N)を読み込んだ演算器と、行列の(M+1-m,N+1-n)成分を読み込んだ演算器とが対応してもよい。
そのような構成により、学習装置は、180 度回転行列を生成できる。
また、行列形式で配置されている複数の演算器のうちの上からm番目、左からn番目(2×m-1≠M、かつ2×n-1≠N)の演算器は、複数の演算器のうちの上から(M+1-m)番目、左から(N+1-n)番目の演算器と対応し、演算部110 に行列が入力されると行列の(m,n)成分を読み込んでもよい。
そのような構成により、学習装置は、複数の演算器の配置を利用して180 度回転行列を生成できる。
また、各演算器は、対応する演算器と配線でそれぞれ接続されていてもよい。
そのような構成により、学習装置は、行列の各成分の並べ替えに係る消費電力をより削減できる。
また、各演算器は、対応する演算器と2本の配線でそれぞれ接続されていてもよい。
そのような構成により、学習装置は、行列の各成分をより迅速に交換できる。
また、各演算器は、他の演算器を介して対応する演算器に読み込まれた成分をそれぞれ入力してもよい。
そのような構成により、学習装置は、転置行列または180 度回転行列の生成の用途以外にも適用される。
また、各演算器は、他の演算器と2本の配線でそれぞれ接続されていてもよい。
そのような構成により、学習装置は、行列の各成分をより迅速に交換できる。
また、行列の成分は、1つ以上のユニットでそれぞれ構成された複数の層が層状に結合された判別モデルの各ユニットのパラメタでもよい。
そのような構成により、学習装置は、重み行列を取り扱うことができる。
また、判別モデルは、ニューラルネットワークでもよい。
そのような構成により、学習装置は、深層学習を実行できる。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
70 大規模学習回路
71 ユニット
80 推論装置
81、91、1100 重みメモリ
82、92、1200 重みロード部
83、93、110 、1300 演算部
90、100 、1000 学習装置
94、1400 重みストア部
1001 プロセッサ
1002 主記憶装置
1003 補助記憶装置
1004 インタフェース
1005 出力デバイス
1006 入力デバイス
1007 GPU
1008 CPU
1301~1309 演算器
1311~1319 第1重みレジスタ
1321~1329 第2重みレジスタ
71 ユニット
80 推論装置
81、91、1100 重みメモリ
82、92、1200 重みロード部
83、93、110 、1300 演算部
90、100 、1000 学習装置
94、1400 重みストア部
1001 プロセッサ
1002 主記憶装置
1003 補助記憶装置
1004 インタフェース
1005 出力デバイス
1006 入力デバイス
1007 GPU
1008 CPU
1301~1309 演算器
1311~1319 第1重みレジスタ
1321~1329 第2重みレジスタ
Claims (10)
- M行N列(M、Nはそれぞれ1以上の整数)の行列が入力される演算部を備える学習装置であって、
前記演算部は、
複数の演算器を含み、
前記複数の演算器は、
前記演算部に前記行列が入力されると前記行列の各成分をそれぞれ読み込み、
読み込まれた成分を対応する演算器にそれぞれ入力する
ことを特徴とする学習装置。 - mを1以上M以下の整数、nを1以上N以下の整数とするとき、行列の(m,n)成分(m≠n)を読み込んだ演算器と、前記行列の(n,m)成分を読み込んだ演算器とが対応する
請求項1記載の学習装置。 - 行列形式で配置されている複数の演算器のうちの上からm番目、左からn番目(m≠n)の演算器は、
前記複数の演算器のうちの上からn番目、左からm番目の演算器と対応し、
演算部に行列が入力されると前記行列の(m,n)成分を読み込む
請求項2記載の学習装置。 - mを1以上M以下の整数、nを1以上N以下の整数とするとき、行列の(m,n)成分(2×m-1≠M、かつ2×n-1≠N)を読み込んだ演算器と、前記行列の(M+1-m,N+1-n)成分を読み込んだ演算器とが対応する
請求項1記載の学習装置。 - 行列形式で配置されている複数の演算器のうちの上からm番目、左からn番目(2×m-1≠M、かつ2×n-1≠N)の演算器は、
前記複数の演算器のうちの上から(M+1-m)番目、左から(N+1-n)番目の演算器と対応し、
演算部に行列が入力されると前記行列の(m,n)成分を読み込む
請求項4記載の学習装置。 - 各演算器は、対応する演算器と配線でそれぞれ接続されている
請求項1から請求項5のうちのいずれか1項に記載の学習装置。 - 各演算器は、対応する演算器と2本の配線でそれぞれ接続されている
請求項6記載の学習装置。 - 各演算器は、他の演算器を介して対応する演算器に読み込まれた成分をそれぞれ入力する
請求項1から請求項5のうちのいずれか1項に記載の学習装置。 - 各演算器は、他の演算器と2本の配線でそれぞれ接続されている
請求項8記載の学習装置。 - 行列の成分は、1つ以上のユニットでそれぞれ構成された複数の層が層状に結合された判別モデルの各ユニットのパラメタである
請求項1から請求項9のうちのいずれか1項に記載の学習装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/032762 WO2020049637A1 (ja) | 2018-09-04 | 2018-09-04 | 学習装置 |
JP2020540902A JPWO2020049637A1 (ja) | 2018-09-04 | 2018-09-04 | 学習装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/032762 WO2020049637A1 (ja) | 2018-09-04 | 2018-09-04 | 学習装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020049637A1 true WO2020049637A1 (ja) | 2020-03-12 |
Family
ID=69723018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/032762 WO2020049637A1 (ja) | 2018-09-04 | 2018-09-04 | 学習装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2020049637A1 (ja) |
WO (1) | WO2020049637A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06259582A (ja) * | 1992-06-17 | 1994-09-16 | Philips Electron Nv | データ処理装置 |
CN105891215A (zh) * | 2016-03-31 | 2016-08-24 | 浙江工业大学 | 基于卷积神经网络的焊接视觉检测方法及装置 |
-
2018
- 2018-09-04 WO PCT/JP2018/032762 patent/WO2020049637A1/ja active Application Filing
- 2018-09-04 JP JP2020540902A patent/JPWO2020049637A1/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06259582A (ja) * | 1992-06-17 | 1994-09-16 | Philips Electron Nv | データ処理装置 |
CN105891215A (zh) * | 2016-03-31 | 2016-08-24 | 浙江工业大学 | 基于卷积神经网络的焊接视觉检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2020049637A1 (ja) | 2021-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tsukamoto et al. | An accelerator architecture for combinatorial optimization problems | |
US10860917B2 (en) | Apparatus and method for performing a forward operation of artificial neural networks | |
KR102175044B1 (ko) | 인공 신경망 역방향 트레이닝 실행용 장치와 방법 | |
WO2017185387A1 (zh) | 一种用于执行全连接层神经网络正向运算的装置和方法 | |
US20230351231A1 (en) | Systems and Methods Involving Hybrid Quantum Machines, Aspects of Quantum Information Technology and/or Other Features | |
Meng et al. | Accelerating proximal policy optimization on cpu-fpga heterogeneous platforms | |
US20190138922A1 (en) | Apparatus and methods for forward propagation in neural networks supporting discrete data | |
Sutradhar et al. | Look-up-table based processing-in-memory architecture with programmable precision-scaling for deep learning applications | |
Joardar et al. | High-throughput training of deep CNNs on ReRAM-based heterogeneous architectures via optimized normalization layers | |
Mandal et al. | COIN: Communication-aware in-memory acceleration for graph convolutional networks | |
US10476492B2 (en) | Structures and operations of integrated circuits having network of configurable switches | |
US20210064994A1 (en) | Machine learning device and machine learning method | |
JP2021170330A (ja) | システムのローカルフィールド行列の更新 | |
JPWO2020054062A1 (ja) | 最適化装置および最適化装置の制御方法 | |
WO2020049637A1 (ja) | 学習装置 | |
Shrivastava et al. | A data and model-parallel, distributed and scalable framework for training of deep networks in apache spark | |
KR20230068992A (ko) | 가속을 통한 신경망 훈련 | |
JP7387026B2 (ja) | 並列処理システムにおけるモデルパラメータの更新 | |
JP7283576B2 (ja) | 分散処理用計算機および分散深層学習システム | |
WO2020044407A1 (ja) | 学習装置、学習方法および学習プログラム | |
US11995554B2 (en) | Apparatus and methods for backward propagation in neural networks supporting discrete data | |
CN112906877A (zh) | 用于执行神经网络模型的存储器架构中的数据布局有意识处理 | |
WO2020008642A1 (ja) | 学習装置、学習回路、学習方法および学習プログラム | |
CN116644813B (zh) | 一种利用量子电路确定最优组合方案的方法及装置 | |
WO2024157312A1 (ja) | モデル学習システム、方法、装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18932953 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020540902 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18932953 Country of ref document: EP Kind code of ref document: A1 |