WO2023027128A1 - 情報処理装置、及び記録媒体 - Google Patents

情報処理装置、及び記録媒体 Download PDF

Info

Publication number
WO2023027128A1
WO2023027128A1 PCT/JP2022/031945 JP2022031945W WO2023027128A1 WO 2023027128 A1 WO2023027128 A1 WO 2023027128A1 JP 2022031945 W JP2022031945 W JP 2022031945W WO 2023027128 A1 WO2023027128 A1 WO 2023027128A1
Authority
WO
WIPO (PCT)
Prior art keywords
neural network
information
input
type
output
Prior art date
Application number
PCT/JP2022/031945
Other languages
English (en)
French (fr)
Inventor
敦丈 小菅
忠広 黒田
Original Assignee
国立大学法人 東京大学
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 国立大学法人 東京大学 filed Critical 国立大学法人 東京大学
Publication of WO2023027128A1 publication Critical patent/WO2023027128A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Definitions

  • the present invention relates to an information processing device and a recording medium.
  • This circuit is a circuit imitating a neuron, and in a neural network circuit using this circuit, a plurality of such circuits are prepared and connected to each other to perform machine learning.
  • the present invention has been made in view of the above circumstances, and one of its objects is to provide an information processing apparatus and a recording medium that can improve the efficiency of designing neural network circuits.
  • One aspect of the present invention that solves the problems of the conventional example is an information processing apparatus that accepts input of machine learning parameters of a first type of neural network in a state in which machine learning has been performed on an output with respect to a predetermined input. and conversion processing means for converting the received machine learning parameters of the first type neural network into machine learning parameters of a second type neural network different in type from the first type neural network. , generating means for generating manufacturing information for manufacturing said second type neural network based on said transformed machine learning parameters; and a scale for said second type neural network manufactured according to said manufacturing information.
  • it includes estimation means for generating estimation information regarding at least one of performance, and means for outputting the manufacturing information and the estimation information.
  • a machine learning parameter of a new neural network is obtained by converting another type of neural network that has already undergone machine learning, and estimation information such as its scale and performance is generated and output. It can contribute to improving the efficiency of neural network circuit design.
  • FIG. 1 is a block diagram showing a configuration example of an information processing device according to an embodiment of the present invention
  • FIG. 1 is an explanatory diagram showing an example of a first type of neural network to be processed by an information processing apparatus according to an embodiment of the present invention
  • FIG. 4 is an explanatory diagram showing an example of a second type of neural network generated by the information processing apparatus according to the embodiment of the present invention
  • FIG. 9 is an explanatory diagram showing another example of the second type neural network generated by the information processing apparatus according to the embodiment of the present invention
  • 1 is a functional block diagram showing an example of an information processing device according to an embodiment of the present invention
  • FIG. It is a flowchart figure showing the operation example of the information processing apparatus which concerns on embodiment of this invention.
  • FIG. 4 is an explanatory diagram showing an example of contents of a performance database used by the information processing apparatus according to the embodiment of the present invention
  • FIG. 4 is an explanatory diagram showing an example of a first type neural network to be processed in an operation example of the information processing apparatus according to the embodiment of the present invention
  • FIG. 5 is an explanatory diagram showing an example of a neuron cell circuit of a second type neural network generated in an operation example of the information processing apparatus according to the embodiment of the present invention
  • An information processing apparatus 1 includes a control unit 11, a storage unit 12, an operation unit 13, a display unit 14, and an input/output unit 15, as illustrated in FIG. Configured.
  • the control unit 11 is a program control device such as a CPU, and operates according to a program stored in the storage unit 12.
  • the control unit 11 accepts input of machine learning parameters of a first type neural network that has undergone machine learning of output information with respect to predetermined input information.
  • the first type of neural network is, for example, a deep learning neural network, which is a neural network having an input layer 20a, at least one intermediate layer 20b, c . . . shall be composed of
  • each output node 22 (when there is no need to distinguish between the output nodes 22-1, 22-2, . It includes a sum calculation section 221 and a nonlinear function calculation section 222 .
  • the input values xj (j 1, 2, . . . , n) from the respective input nodes 21-1, 21-2, . Add the bias b to the calculation result.
  • the nonlinear function calculation unit 222 obtains the output value of the nonlinear function when the calculation result of the sum-of-products calculation unit 221 is input as the input of a predetermined nonlinear function (for example, a sigmoid function). Output the output value. This output is either input to the input node 21 of the neural network of the next layer or (in the case of the output of the last layer without the next layer) output externally.
  • a predetermined nonlinear function for example, a sigmoid function
  • control unit 11 converts the machine learning parameters (weight wij, bias b, etc. of each neural network) of the received first type neural network to a second type neural network different in type from the first type neural network. to machine learning parameters of the neural network.
  • machine learning parameters weight wij, bias b, etc.
  • the control unit 11 generates manufacturing information for manufacturing the second type of neural network based on the converted machine learning parameters.
  • An example of this manufacturing information is described in a hardware description language such as VHDL (Verilog Hardware Description Language).
  • VHDL Very High Definition Language
  • the manufacturing information would describe what the hardware of the second type neural network looks like. Since the manufacturing information of this example, the expression of the hardware based on it, and the method of manufacturing the hardware based on the manufacturing information are widely known, the description is omitted here.
  • control unit 11 generates estimate information regarding at least one of scale and performance regarding the second type of neural network manufactured according to the manufacturing information, and outputs the manufacturing information and the estimate information. Details of the operation of the control unit 11 will be described later.
  • the storage unit 12 is a memory device, a disk device, or the like, and holds programs executed by the control unit 11 .
  • the storage section 12 also operates as a work memory for the control section 11 .
  • This program may be provided by being stored in a computer-readable and non-temporary recording medium and installed in this storage section 12 .
  • the operation unit 13 includes a mouse, a keyboard, etc., accepts user's operations, and outputs information representing the contents of the operations to the control unit 11 .
  • the input unit 13 also receives data from an external storage device and outputs the data to the control unit 11 .
  • the display unit 14 includes, for example, a display, etc., and outputs information according to instructions input from the control unit 11 .
  • the input/output unit 15 is an interface such as a USB (Universal Serial Bus), receives information from the outside, such as machine learning parameters of the first type of neural network, and outputs the information to the control unit 11 .
  • the input/output unit 15 also outputs information to an external device according to instructions input from the control unit 11 .
  • an example of the second type neural network includes an input circuit section 30, at least one machine learning circuit 40, and an output circuit section 50, as illustrated in FIG. including.
  • the machine learning circuit 40 further includes at least one neuron cell circuit (NC) 41.
  • the neuron cell circuit 41 includes at least an input section 410, an adder section 412 for accumulating input data, and a nonlinear function It further includes an inverter 411 for inverting the sign of input data and outputting it in a predetermined case described later.
  • the input unit 410 has at least one input port 4101 and receives input data via each input port 4101, as illustrated in FIG. 3(b).
  • the input unit 410 outputs the data input from each of the input ports 4101 to the adder unit 412 as it is, or outputs the data to the adder unit 412 via the inverter 411 .
  • the adder unit 412 accumulates the data from each input port 4101 of the input unit 410 as it is or after the sign is inverted through the inverter 411 .
  • the nonlinear function calculation unit 413 receives the accumulated value of the data accumulated and output by the adder unit 412, and outputs the calculation result of a predetermined nonlinear function with respect to the input. In addition, the nonlinear function calculation unit 413 in this example outputs the calculation result of the predetermined nonlinear function for the value obtained by multiplying the accumulated value output from the adder unit 412 by a predetermined weight value.
  • the non-linear function calculator 413 may be formed by a predetermined calculator, or may be formed as follows using a non-volatile memory device such as a ROM.
  • the machine learning parameter is the method of accumulating data output from each input port 4101 of the input unit 410 (which input port 4101 output is inverted and accumulated , etc.), or a nonlinear function calculated by the nonlinear function calculation unit 413 (in the case of the above example, a value corresponding to each address of the memory element).
  • the neuron cell circuit 41 in the second type neural network is not limited to the one described above.
  • an input unit 410 a pair of adder units 412'a and 412'b, a multiplication/addition unit 414 for multiplying weights, and a nonlinear function operation unit 413'.
  • an inverter 411 for inverting the sign of the data received by the input unit 410 may be further included.
  • symbol is attached
  • the input section 410 directly outputs the data input from each of the input ports 4101 to the adder section 412'a, or outputs the data to the adder section 412'b via the inverter 411.
  • the adder unit 412'a accumulates the data directly output from the input unit 410 and outputs an accumulated value of data to be multiplied by a positive weight (referred to as P data for convenience).
  • the adder unit 412'b accumulates the sign-inverted data output from the input unit 410 via the inverter 411, and the accumulated value of the data to be multiplied by the negative weight (for convenience, N data) is output.
  • the multiplication and addition section 414 multiplies the P data output from the adder section 412'a by a predetermined weight value Wp (here, Wp is a positive real number).
  • the multiply-add unit 414 adds a predetermined weight value Wn (where Wn is a positive real number and may be equal to Wp or different from Wp) to the N data output from the adder unit 412'b. good). Then, the multiply-add unit 414 adds the value obtained by multiplying the P data by the weight value Wp and the value obtained by multiplying the N data by the weight value Wn, and outputs the result.
  • the nonlinear function computing unit 413' receives the value output from the multiplication/addition unit 414, and outputs the computation result of a predetermined nonlinear function with respect to the input.
  • This non-linear function computing section 413' may also be formed by a predetermined computing unit, but may be formed as follows using a non-volatile memory element such as a ROM.
  • the non-linear function calculator 413' is a non-volatile memory device, and stores the output value f The value of (a ⁇ q) is stored.
  • the calculation of ⁇ q is not limited to this, and when an input value of Vmin to Vmax in the above range is input, if the value of the nonlinear function f corresponding to the input value is output, ⁇ q can be calculated by another calculation method. You can set it.
  • control unit 11 includes a receiving unit 51, a conversion processing unit 52, a generating unit 53, an estimate A configuration including the unit 54 and the output unit 55 is functionally realized.
  • the receiving unit 51 receives input of machine learning parameters of the first type of neural network to be processed. For the sake of explanation, specifically here, it is assumed that learning parameters of a deep learning neural network in a state where machine learning has been performed on outputs with respect to predetermined inputs are received.
  • the conversion processing unit 52 converts the machine learning parameters of the first type neural network received by the receiving unit 51 into the machine learning parameters of the second type neural network.
  • the conversion processing unit 52 converts the machine learning parameters of the neural network of the first type accepted by the acceptance unit 51 into the second type using learning data separately input. obtain the machine learning parameters of the neural network of .
  • This learning data may be a set of input data and corresponding output data (teacher data) to be output by the second type of neural network.
  • the conversion processing unit 52 refers to the learning parameters of the deep learning neural network received by the receiving unit 51, and converts each neuron cell into Manufacturing information for configuring the circuit 41 is generated.
  • the conversion processing unit 52 sequentially selects each layer of the first type neural network received by the receiving unit 51 in order from the input layer 20a as a layer to be processed. Select (S11: Selection of layer to be processed).
  • - Obtain the value of the weight associated with n (S13).
  • the conversion processing unit 52 corresponds to the input nodes 21 related to the weight values exceeding the threshold value, except for the input nodes 21 whose absolute value of the weight value referred to is below the predetermined threshold value.
  • An input port 4101 is virtually generated (S14: pruning process).
  • the threshold here may be set by the user, for example. Further, the threshold for this weight value may be determined by excluding a predetermined percentage of lower input nodes 21 from the weight value distribution of each input node 21 that is referred to.
  • the minimum weight value among the weight values related to the input nodes 21 not to be excluded may be used as the threshold value.
  • the threshold value may be set differently for each processing target layer according to the position of the processing target layer in the first type neural network (positional relationship with a predetermined layer such as an input layer or an output layer).
  • the threshold value of this pruning process may be set to be the minimum in the layer immediately before the layer immediately before the output layer, for example. In this way, for example, when converting a deep learning neural network in which a fully connected layer is arranged immediately before the output layer to obtain a second type of neural network, a layer close to the fully connected layer (the A greater number of input ports 4101 are reduced in a neuron cell circuit 41 corresponding to a fully connected layer (excluding a fully connected layer).
  • the conversion processing unit 52 may be determined as follows. That is, when the conversion processing unit 52 sets the neuron cell circuit 41 corresponding to the output node of the i-th layer (where i is an integer satisfying 1 ⁇ i ⁇ N) of the first type neural network layer, When the value i representing the layer depth is at least in the range of a predetermined integer value J (where 1 ⁇ J ⁇ N) or less, the larger the value i, the more the number of input ports to be set by the pruning process. Control may be performed to reduce the number (for example, to increase the threshold value).
  • the conversion processing unit 52 sets the virtual adder unit 412, and when the weight value of the input node 21 corresponding to the input port 4101 virtually generated in step S14 is positive, outputs the input port 4101. It is connected to the adder unit 412 as it is. Further, when the weight value of the input node 21 corresponding to the input port 4101 virtually generated in step S14 is negative, the conversion processing unit 52 sets the inverter 411 to convert the output of the input port 4101 into It is connected to the adder section 412 via the inverter 411 (S15: setting of accumulation method).
  • the conversion processing unit 52 performs the following processing instead of the above-described processing in step S15. becomes.
  • the conversion processing unit 52 that configures the neuron cell circuit 41 in the example of FIG. Then, when the weight value of the input node 21 corresponding to the input port 4101 virtually generated in step S14 is positive, the output of the input port 4101 is directly connected to the adder section 412'a. Further, when the weight value of the input node 21 corresponding to the input port 4101 virtually generated in step S14 is negative, the conversion processing unit 52 sets the inverter 411 to convert the output of the input port 4101 into It is connected to an adder section 412'b through an inverter 411.
  • the adder section 412'a accumulates the data directly output from the input section 410 and outputs P data, which is the accumulated value of the data to be multiplied by the positive weight.
  • the adder unit 412'b accumulates the sign-inverted data output from the input unit 410 via the inverter 411, and obtains N data, which is the accumulated value of the data to be multiplied by the negative weight. is output.
  • the multiply-add unit 414 multiplies the P data output from the adder unit 412'a by a predetermined weight value Wp (where Wp is a positive real number), and also multiplies the N data output from the adder unit 412'b. Data is multiplied by a predetermined weight value Wn (where Wn is a positive real number and may be equal to Wp or may be different from Wp), and these P data are multiplied by the weight value Wp. and a value obtained by multiplying the N data by the weight value Wn are added and output.
  • the conversion processing unit 52 that constitutes the neuron cell circuit 41 in the example of FIG. 4 thus executes the setting of the accumulation method in step S15.
  • the conversion processing unit 52 sets a virtual nonlinear function computing unit 413, and uses the output of the adder unit 412 set in step S15 or the output of the multiplication/addition unit 414 as an input to the nonlinear function computing unit 413 to convert the nonlinear
  • the output of the function calculator 413 is used as the output of the neuron cell circuit 41 selected in step S12 (S16).
  • the conversion processing unit 52 repeatedly executes the processing of steps S13 to S16 for each neuron cell circuit 41 related to the processing target layer virtually generated in step S12 (that is, for each output node 22 of the processing target layer). .
  • the weight values of the neuron cell circuits 41 of the second type neural network corresponding to the input layer 20a of the first type neural network to the processing target layer selected in step S11 are set.
  • nonlinear function fk(x) (a function obtained by linearly combining the above mutually different nonlinear functions fk(x)):
  • machine learning of the nonlinear function is performed by setting the coefficient ak of the function obtained by multiplying this linear sum by a predetermined positive real number A by machine learning.
  • the nonlinear function fk(x) here is, for example, a step function, a sigmoid function, a hyperbolic tangent, a soft sine, a soft plus, ReLU, Swish, or the like.
  • the transform processing unit 52 calculates not only the coefficient ak but also parameters that define individual nonlinear functions fk(x), such as the ReLU function: If so, the value of ⁇ and the like may be set by machine learning together with the coefficient ak.
  • the conversion processing unit 52 in this example performs machine learning of nonlinear functions as follows. That is, the conversion processing unit 52 sequentially selects input data included in the input learning data and inputs the selected data to the second type neural network. Then, the conversion processing unit 52 obtains the output data of the second type of neural network at that time. The conversion processing unit 52 compares the output data included in the learning data corresponding to the input data with the output data obtained here, and uses the same method as the back propagation method to correspond to the layer to be processed. The coefficient ak related to the nonlinear function calculated by the nonlinear function calculator 413 of each neuron cell circuit 41 and the parameter for each nonlinear function fk(x) are corrected.
  • the conversion processing unit 52 executes this process for each input data included in the learning data, and converts the nonlinear function A ⁇ fk(x) ( case), or fk(x) (in the case of FIG. 4) (where A is a predetermined positive real number).
  • the conversion processing unit 52 may output information representing the machine learning parameters of the second type of neural network generated by the processing up to this point. For example, the conversion processing unit 52 identifies at least one neuron cell circuit 41 corresponding to each layer of the first type neural network received by the receiving unit 51 in association with information identifying the layer. Information is generated by sequentially recording information.
  • the information for specifying the layer the input layer 20a is "1", and the number for each layer is incremented by "1" each time it approaches the output layer 20z. identifying information) is called a layer number.
  • Information specifying each neuron cell circuit 41 includes information specifying at least one input port 4101 excluding the input port 4101 reduced by the pruning process (step S14), and information corresponding to the output of each input port 4101.
  • Information representing the presence or absence of the inversion unit 411, the adder unit 412′ and the multiply-add unit 414, or the adder unit 412, and the information representing the nonlinear function operation unit 413 set in step S17 are recorded in association with each other.
  • the value output from the adder unit 412 is input as the information of the nonlinear function calculation unit, and the nonlinear function determined in step S17 is calculated to obtain an output value of a predetermined number of output bits (calculation result of the nonlinear function). ) is included to specify the computing unit that outputs .
  • the conversion processing unit 52 here, for example, according to a user's instruction or the like, converts at least some of the neuron cell circuits 41 corresponding to each node of each layer of the first type neural network to the following: may be performed.
  • the conversion processing unit 52 corrects the number of bits for expressing the output value of the nonlinear function (hereinafter referred to as function output value) calculated by the nonlinear function calculation unit 413 of at least some of the neuron cell circuits 41. (S18), the machine learning parameters of the second type of neural network may be output. That is, in one example of the present embodiment, the conversion processing unit 52 sets the number of bits for expressing the function output value for at least some of the neuron cell circuits 41 to be equal to or greater than the minimum number of bits determined by a predetermined method. bits.
  • the minimum number of bits is how many layers (corresponding layers) of the first type neural network to which the output nodes corresponding to the neuron cell circuit 41 whose number of bits are reduced belong are located in the output layer 20z. They may be different depending on how close they are.
  • the conversion processing unit 52 sets the minimum number of bits of the function output value of the neuron cell circuit 41 related to the input layer 20a of the first type neural network to 1 bit, and hereinafter, for the intermediate layers 20b, c, .
  • the minimum number of bits of the function output value of the neuron cell circuit 41 associated with each layer is increased as it approaches the output layer 20z, such as bits, 4 bits, 4 bits, and so on.
  • the conversion processing unit 52 makes the minimum number of bits of the function output value of the neuron cell circuit 41 for the output layer 20z equal to the number of bits before reduction (that is, does not reduce). It is also preferable to keep
  • step S18 the setting of the number of bits of the output value of the nonlinear function operation unit to be reduced, which is included in the machine learning parameters of the second type neural network, is changed.
  • the conversion processing unit 52 sequentially selects each layer of the first type neural network as a processing target layer, starting with the input layer 20a (S21).
  • the conversion processing unit 52 determines that the number of bits of the function output value of the neuron cell circuit 41 of the second type neural network corresponding to the node belonging to the processing target layer is the minimum number of bits determined for the neuron cell circuit 41. It is checked whether it is greater (S22), and if it is greater (S22: Yes), the number of bits is reduced by "1" (S23).
  • the conversion processing unit 52 sequentially inputs the input data included in the input learning data to the second type of neural network to be processed to obtain respective output data (S24).
  • the conversion processing unit 52 compares each of the teacher data corresponding to the inputted input data with the corresponding output data of the second type of neural network, and finds an error represented by the sum of the absolute values of the respective differences. is below a predetermined threshold value (S25).
  • S25 a predetermined threshold value
  • the conversion processing unit 52 returns to step S22 and continues processing.
  • step S25 when the error does not fall below the predetermined threshold value (S25: No), the conversion processing unit 52 converts the second type of neural network corresponding to the node belonging to the processing target layer.
  • the number of bits of the function output value is increased by "1" (S26), returning to step S21, and if there is a next layer, the next layer is selected as the layer to be processed and processed. continue.
  • the conversion processing unit 52 terminates the processing related to correction of the number of bits.
  • step S22 If the number of bits of the function output value is not greater than the minimum number of bits defined for the neuron cell circuit 41 in step S22 (S22: No), the conversion processing unit 52 returns to step S21 to proceed to the next layer. If there is, the next layer is selected as the layer to be processed and the process is continued. If there is no next layer, the process related to bit number correction is terminated.
  • the conversion processing unit 52 performs processing corresponding to the next layer after the processing of step S16, but the present embodiment is not limited to this, and the conversion processing unit 52 performs steps S13 to S13.
  • the processing of S17 may be repeated multiple times (the processing indicated by the dashed lines in FIG. 6). That is, the pruning process, the setting of the accumulation method in the neuron cell circuit 41 corresponding to each node of the layer to be processed, and the setting and learning of the nonlinear function may be repeatedly executed a predetermined number of times.
  • the threshold used in the pruning process is changed for each iteration. For example, the threshold used in the pruning process is increased by a predetermined percentage (eg, 10%) each time the process is repeated.
  • the generating unit 53 generates manufacturing information for manufacturing the second type of neural network based on the machine learning parameters of the second type of neural network obtained by conversion by the conversion processing unit 52 .
  • the generation unit 53 generates the machine learning parameters of the second type neural network obtained by conversion by the conversion processing unit 52 as the first type neural network to be converted.
  • the information specifying the neuron cell circuit 41 recorded in association with the layer number of each layer is referred to.
  • the generation unit 53 corresponds to each input port 4101 according to the information of the input port 4101 that associates the information that specifies the input port 4101 and the weight value related to the input port 4101, which is associated with the referred information.
  • a hardware element that multiplies the data input to each input port 4101 by the corresponding weight value and a hardware element that corresponds to the adder unit 412 that accumulates the multiplied value information for hardware design (which can be described in a predetermined hardware description language) describing
  • the generating unit 53 receives the output of the adder unit 412 as an input, and generates an output value of the nonlinear function corresponding to the input value. Information for hardware design for implementing the nonlinear function operation unit 413 to be output is generated.
  • the generation unit 53 generates information for hardware design of the neuron cell circuit 41 recorded in association with each layer number in this way, and connects these in order of the layer number, for example, to form the second layer number.
  • the type of neural network is output as information (manufacturing information) for actually manufacturing using an FPGA or the like.
  • the estimation unit 54 refers to the manufacturing information generated by the generation unit 53, and generates estimation information regarding at least one of the scale and performance of the second type of neural network manufactured according to the manufacturing information.
  • the estimation unit 54 refers to the manufacturing information generated by the generation unit 53, and for each layer number, the number of neuron cell circuits 41 recorded in association with the layer number (total number of neurons), The average number of input ports 4101 (average number of synapses) in each neuron cell circuit 41 is extracted.
  • the estimation unit 54 Based on the information extracted here, the estimation unit 54 generates information such as the total number of neuron cell circuits 41 (total number of NCs), power consumption, and time required for one inference (latency). do.
  • the estimation unit 54 stores information on the total number of neurons and the average number of synapses for each layer number extracted from the manufacturing information of hardware actually manufactured in the past, Information such as the total number of neuron cell circuits 41 corresponding to the layer number (total number of NCs), power consumption, and the time required for one inference (latency), which is actually measured for the wear, is mutually exchanged. Reference is made to the performance database (FIG. 8) that holds a plurality of associated records.
  • the estimating unit 54 refers to information on the total number of neurons and the average number of synapses for each layer number and the manufacturing information generated by the generating unit 53, which are included in each record stored in the performance database, and extracts the estimate.
  • the total number of neurons and the average number of synapses for each layer number in the manufacturing information of the target hardware are compared with each other, and the most similar records are found.
  • the estimation unit 54 generates estimation information by accumulating information on the total number of NCs, power consumption, and latency included in the records found for each layer number.
  • the similarity between the information on the total number of neurons and the average number of synapses for each layer number is, for example, the total number of neurons for each layer number to be compared is NNa, the average number of synapses for each layer number is ASa, and the other layer number is
  • the output unit 55 outputs at least one of the manufacturing information generated by the generation unit 53 and the estimation information generated by the estimation unit 54.
  • the first type of neural network to be converted is shown in FIG. 9(a) below.
  • This first type of neural network includes a convolutional layer, which is the input layer 20a that accepts input of image data, a pooling layer, which are intermediate layers 20b, c, d, another convolutional layer, and another pooling layer. , a fully connected layer that is an intermediate layer 20e preceding the output layer 20z, and the output layer 20z. It is also assumed that this first type of neural network is in a state in which machine learning has been carried out in advance so as to perform predetermined estimation based on teacher data.
  • the information processing device 1 accepts this first type neural network model (information specifying each layer) and its machine learning parameters.
  • the machine learning parameters of this first type of neural network include input nodes 21-1, 21-2, . . . , 22-2, . . .
  • FIG. 9B shows a case where there are only five input nodes for the sake of simplicity of explanation, but in reality the number of input nodes may be even greater.
  • FIG. 9B illustrates weight information extracted from one output node 22 .
  • the information processing device 1 converts the received machine learning parameters of the first type neural network into machine learning parameters of the second type neural network.
  • the following examples also assume that the second type of neural network is the one illustrated in FIG.
  • the information processing apparatus 1 has input ports X1, X2, . . . , X5 corresponding to input nodes 21-1, 21-2, . is set virtually.
  • the information processing apparatus 1 obtains the weight values associated with the input nodes 21-1, 21-2, . , the input node 21 whose absolute value is below a predetermined threshold value (for example, 0.01 here) is removed (pruning processing).
  • a predetermined threshold value for example, 0.01 here
  • the input port X5 corresponding to the input node 21-5 corresponding to the weight W5 is excluded.
  • the information processing apparatus 1 refers to the weights from the corresponding input nodes 21-1, 21-2, 21-3, and 21-4 to the output node 22 for the remaining input ports X1, X2, X3, and X4, and Sets whether to invert the input data based on the sign. That is, when the sign of the weight of the corresponding input node 21 is negative, the information processing apparatus 1 sets the inverter 411 to invert the data of the input port Xi corresponding to this input node. In this example, the inverter 411 is set to invert the data input to the input ports X2 and X3 (FIG. 10).
  • the information processing device 1 also sets the nonlinear function to be calculated by the nonlinear function calculation unit 413 of each neuron cell circuit 41 by machine learning.
  • This nonlinear function operation unit 413 outputs the output of the adder unit 412 in the corresponding neuron cell circuit 41, that is, the data input to the input ports X1 and X4 in the example of FIG. , and the result of accumulating the data whose sign is inverted by the corresponding inverter 411 is input.
  • the nonlinear function fk(x) here is, for example, a step function, a sigmoid function, a hyperbolic tangent, a soft sine, a soft plus, ReLU, Swish, or the like.
  • the parameters defining the individual nonlinear functions fk(x) may also be subject to machine learning together with the coefficients ak.
  • the information processing apparatus 1 sets, for each neuron cell circuit 41, the nonlinear function fk (x ) may be set to a value greater than the coefficient ak associated with another nonlinear function fk(x).
  • the coefficient ak related to the same nonlinear function fk(x) as the nonlinear function calculated by the output node 22 of the corresponding first type neural network is set to a value smaller than "1" but sufficiently close to "1".
  • the coefficient ak related to the other nonlinear function fk (x) is set to a value obtained by dividing ⁇ by the number n of the other nonlinear functions fk (in this example, the sum of the coefficients ak is "1").
  • the information processing apparatus 1 uses separately prepared learning data (data that associates an input value with the corresponding output data (teacher data) of a neural network that should be the correct answer), and is included in this learning data. Input data is sequentially input to a virtually set second type neural network.
  • the information processing apparatus 1 compares the output value output by the provisionally set second type neural network with the teacher data included in the learning data corresponding to the inputted input data for each input of the input data. do. Based on this comparison, the information processing apparatus 1 corrects the coefficient ak and the like of the nonlinear function calculated by the nonlinear function calculation unit of each neuron cell circuit 41 by the method of back propagation.
  • the information processing apparatus 1 executes the processing of fixing the nonlinear function and setting the weight value corresponding to the input port 4101 and the processing of fixing the weight value and setting the nonlinear function, thereby performing the second type obtain the machine learning parameters of the neural network of .
  • the information processing device 1 generates manufacturing information for manufacturing each neuron cell circuit 41 set in this way as hardware.
  • the information processing apparatus 1 also refers to a performance database based on manufacturing information of hardware actually manufactured in the past, illustrated in FIG. Comparing the information on the number of neurons and the average number of synapses with the information on the total number of neurons and the average number of synapses for each layer number of the manufacturing information of the hardware to be estimated, extracted with reference to the generated manufacturing information, Find the records to which they are most similar.
  • the information processing device 1 accumulates information on the total number of NCs, power consumption, and latency included in the records found for each layer number, generates estimate information, and presents it to the user.
  • the user of the information processing apparatus 1 refers to the presented estimate information and, for example, for the purpose of reducing power consumption and latency, further calculates the function output value, which is the output value of the nonlinear function operation section of each neuron cell circuit 41.
  • the information processing device 1 may be instructed to reduce the number of bits for expressing
  • the information processing apparatus 1 that has received this instruction expresses the function output value, which is the output value of the nonlinear function operation section of at least a part of the neuron cell circuits 41 included in the second type neural network obtained by the conversion. correct the number of bits in Specifically, the information processing apparatus 1 selects the input layer 20a according to the layer of the first type neural network to which the output node corresponding to the neuron cell circuit 41 whose number of bits is to be reduced belongs. Let the minimum number of bits of the function output value be 1 bit. Hereinafter, the information processing apparatus 1 sets the minimum number of bits of the function output value of the neuron cell circuit 41 corresponding to the intermediate layers 20b, c, . . . to 1 bit, 4 bits, 4 bits, . value.
  • the information processing apparatus 1 uses the learning data, the difference between the output value when the input data included in the learning data is input, and the corresponding teacher data is less than a predetermined difference, and the minimum bit
  • the number of bits of the function output value which is the output value of the nonlinear function operation section of each neuron cell circuit 41, is corrected so that the number of bits is the minimum number of bits greater than or equal to the number.
  • the information processing device 1 generates manufacturing information for manufacturing each neuron cell circuit 41 after the correction as hardware, and refers to the performance database to refer to the total number of NCs and consumption for each layer number after the correction. By accumulating power consumption and latency information, estimate information is generated and presented to the user.
  • the information processing apparatus 1 obtains the weight values associated with the input nodes 21-1, 21-2, . , the input node 21 whose absolute value is below a predetermined threshold value is removed.
  • the threshold is set to be larger than the threshold used in the previous pruning process. As an example, if the threshold in the previous pruning process is 0.01, the threshold in the current pruning process is set to 0.15, for example.
  • the information processing apparatus 1 refers to the weights from the corresponding input nodes 21-1, 21-2, and 21-3 to the output node 22, and determines the data input from each of them.
  • the weight values to be multiplied are set as Wp, Wm, and Wm.
  • the information processing device 1 sets a nonlinear function to be calculated by the nonlinear function calculation section of each neuron cell circuit 41 by machine learning.
  • the initial value of each nonlinear function uses the learning result of the previous nonlinear function as it is.
  • This processing can reduce the number of input ports 4101, that is, the average number of synapses.
  • the neuron cell circuit 41 from which all the input ports 4101 have been deleted by the pruning process the neuron cell circuit 41 itself is deleted and replaced with a ground terminal or the like. In this case, the total number of neurons is also reduced.
  • the information processing apparatus 1 converts the deep learning neural network illustrated in FIG. Reduce the number of input ports 4101 by 30%. Also, by setting a threshold in each pruning process so that the reduction amount increases as the layer is closer to the fully connected layer, for example, Up to 25% of the number of input ports 4101 of the neuron cell circuit 41 corresponding to the intermediate layer 20b (pooling layer) Up to 10% of the number of input ports 4101 of the neuron cell circuit 41 corresponding to the intermediate layer 20c (convolution layer) The number of input ports 4101 of the neuron cell circuit 41 corresponding to 20d (pooling layer) is reduced by 10%.
  • the information processing device 1 then reduces the number of input ports 4101 of the neuron cell circuit 41 corresponding to the fully connected layer, which is the intermediate layer 20e preceding the output layer 20z, to 40%. And this reduces the circuit scale.
  • the user adjusts the pruning threshold, the number of iterations, the number of output bits of the non-linear function of each neuron cell circuit 41, etc., and obtains the respective estimated information to achieve the desired result. It is possible to iterate the design until the conditions are satisfied.
  • the information processing apparatus 1 uses predetermined learning data to calculate the accuracy rate (estimation accuracy rate) of the output value for each of the machine learning parameters of the second type of neural network obtained by repeating the pruning process and the like. ) and include it in the quotation information.
  • control unit 12 storage unit 13 operation unit 14 display unit 15 input/output unit 21 input node 22 output node 30 input circuit unit 40 machine learning circuit 41 neuron cell circuit 50 Output circuit unit 51 Receiving unit 52 Transform processing unit 53 Generation unit 54 Estimation unit 55 Output unit 221 Product-sum operation unit 222 Nonlinear function operation unit 410 Input unit 411 Inverter 412, 412' Adder unit, 413 non-linear function calculator, 414 multiplier-adder, 4101 input port.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Feedback Control In General (AREA)

Abstract

所定の入力に対する出力を機械学習した状態にある第1の種類のニューラルネットワークの機械学習パラメータの入力を受け入れ、当該機械学習パラメータを、種類の異なる第2の種類のニューラルネットワークの機械学習パラメータに変換する。そして変換された機械学習パラメータに基づいて、第2の種類のニューラルネットワークを製造するための製造情報を生成し、当該製造情報に従って製造される第2の種類のニューラルネットワークに関する規模または性能の少なくとも一方に関する見積情報を生成する情報処理装置である。

Description

情報処理装置、及び記録媒体
 本発明は、情報処理装置、及び記録媒体に関する。
 近年研究されているニューラルネットワーク回路のうちには、複数の入力信号のそれぞれに対応する重みを乗じ、当該重みを乗じた結果を累算し、活性化関数により非線形変換して出力するという動作を行う回路を利用するものがある。この回路は、ニューロンを模した回路であり、この回路を用いたニューラルネットワーク回路では、当該回路を複数用意して互いに接続し、機械学習を行わせる。
 この例では、上記重みやニューロンを模した回路間の接続性を機械学習することとなるが、その重みの記憶や読み出し、入力信号に対する積和演算などのコストが大きいことから、効率的な機械学習を行う方法が種々研究されている(Song Han, et al., Learning both Weights and Connections for Efficient Neural Networks, Advances in Neural Information Processing Systems, Vol.28, 2015 (arXiv:1506.02626))。
 このように従来、ニューラルネットワーク回路を製造するにあたっては、その機械学習の効率化や、回路の設計の最適化など、考慮するべき事項が多く、設計、機械学習処理などの試行を繰り返してその性能を向上させようとしているのが現状であり、設計効率の向上が課題となっていた。
 本発明は上記実情に鑑みて為されたもので、ニューラルネットワーク回路の設計の効率を向上できる情報処理装置及び記録媒体を提供することを、その目的の一つとする。
 上記従来例の問題点を解決する本発明の一態様は情報処理装置であって、所定の入力に対する出力を機械学習した状態にある第1の種類のニューラルネットワークの機械学習パラメータの入力を受け入れる受入手段と、前記受け入れた第1の種類のニューラルネットワークの機械学習パラメータを、前記第1の種類のニューラルネットワークとは種類の異なる第2の種類のニューラルネットワークの機械学習パラメータに変換する変換処理手段と、前記変換された機械学習パラメータに基づいて、前記第2の種類のニューラルネットワークを製造するための製造情報を生成する生成手段と、前記製造情報に従って製造される第2の種類のニューラルネットワークに関する規模または性能の少なくとも一方に関する見積情報を生成する見積手段と、前記製造情報と見積情報とを出力する手段と、を含むものである。
 本発明によると、既に機械学習した状態にある他の種類のニューラルネットワークを変換して新たなニューラルネットワークの機械学習パラメータを得るとともに、その規模や性能などの見積情報を生成して出力するので、ニューラルネットワーク回路の設計の効率の向上に寄与できる。
本発明の実施の形態に係る情報処理装置の構成例を表すブロック図である。 本発明の実施の形態に係る情報処理装置が処理の対象とする第1の種類のニューラルネットワークの例を表す説明図である。 本発明の実施の形態に係る情報処理装置が生成する第2の種類のニューラルネットワークの例を表す説明図である。 本発明の実施の形態に係る情報処理装置が生成する第2の種類のニューラルネットワークのもう一つの例を表す説明図である。 本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。 本発明の実施の形態に係る情報処理装置の動作例を表すフローチャート図である。 本発明の実施の形態に係る情報処理装置の動作例を表すもう一つのフローチャート図である。 本発明の実施の形態に係る情報処理装置が利用する実績データベースの内容例を表す説明図である。 本発明の実施の形態に係る情報処理装置の動作例において処理の対象とする第1の種類のニューラルネットワークの例を表す説明図である。 本発明の実施の形態に係る情報処理装置が動作例において生成される第2の種類のニューラルネットワークのニューロンセル回路の例を表す説明図である。
 本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置1は、図1に例示するように、制御部11と、記憶部12と、操作部13と、表示部14と、入出力部15とを含んで構成される。
 制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。本実施の形態の例では、この制御部11は、所定の入力情報に対する出力情報を機械学習した状態にある第1の種類のニューラルネットワークの機械学習パラメータの入力を受け入れる。ここで第1の種類のニューラルネットワークは例えば深層学習ニューラルネットワークであり、図2に例示するように入力層20aと、少なくとも1層の中間層20b,c…と、出力層20zとを有するニューラルネットワークを含んで構成されるものとする。
 また、ここで各層のニューラルネットワークは、図2に例示したように入力ノード21-1,21-2…,21-nと、出力ノード22-1,22-2…,22-mとを含み、各出力ノード22(出力ノード22-1,22-2…のそれぞれを区別する必要のないときは、サフィックスの-1,-2…を略して出力ノード22と表すものとする)は、積和演算部221と、非線形関数演算部222とを含んで構成される。ここでi番目(i=1,2,…,m)の出力ノード22-iの積和演算部221は、機械学習により設定される重みwij(j=1,2,…,n)と、バイアスbとを用いて、入力ノード21-1,21-2…のそれぞれからの入力値xj(j=1,2,…,n)に、対応する重みwijを乗じて累算し、その累算結果にバイアスbを加算する。
 非線形関数演算部222は、予め定められた非線形関数(例えばシグモイド関数など)の入力として、積和演算部221での演算結果を入力したときの非線形関数の出力値を得て、当該得られた出力値を出力する。この出力は、次の層のニューラルネットワークの入力ノード21に入力されるか、または(次の層がない最終層の出力の場合は)外部に出力される。
 また制御部11は、上記受け入れた第1の種類のニューラルネットワークの機械学習パラメータ(各ニューラルネットワークの重みwijやバイアスb等)を、第1の種類のニューラルネットワークとは種類の異なる第2の種類のニューラルネットワークの機械学習パラメータに変換する。ここで第2の種類のニューラルネットワークの具体的な構成の例は、後に述べる。
 制御部11は、当該変換して得た機械学習パラメータに基づいて、第2の種類のニューラルネットワークを製造するための製造情報を生成する。この製造情報の一例は、VHDL(Verilog Hardware Description Language)等のハードウェア記述言語で記述される。この例では、製造情報は、第2の種類のニューラルネットワークのハードウェアがどのようなものであるかを表すものとなる。この例の製造情報及びそれによるハードウェアの表現、並びに当該製造情報に基づくハードウェアの製造の方法については広く知られているので、ここでの説明は省略する。
 また制御部11は、製造情報に従って製造される第2の種類のニューラルネットワークに関する規模または性能の少なくとも一方に関する見積情報を生成し、これら製造情報と見積情報とを出力する。この制御部11の詳しい動作の内容については後に説明する。
 記憶部12は、メモリデバイスや、ディスクデバイス等であり、制御部11によって実行されるプログラムを保持する。またこの記憶部12は制御部11のワークメモリとしても動作する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶部12にインストールされたものであってよい。
 操作部13は、マウスやキーボード等を含み、ユーザの操作を受け入れて、当該操作の内容を表す情報を、制御部11に出力する。またこの入力部13は、外部記憶装置からデータを受け入れて制御部11に出力する。
 表示部14は、例えばディスプレイ等を含み、制御部11から入力される指示に従って情報を出力する。
 入出力部15は、USB(Universal Serial Bus)等のインタフェースであり、外部から情報、例えば第1の種類のニューラルネットワークの機械学習パラメータ等を受け入れて制御部11に出力する。またこの入出力部15は、制御部11から入力される指示に従って、外部の装置に対して情報を出力する。
 ここで、第2の種類のニューラルネットワークの例について説明する。本実施の形態において、この第2の種類のニューラルネットワークの一例は、例えば、図3(a)に例示するように、入力回路部30と、少なくとも一つの機械学習回路40と、出力回路部50とを含む。ここで機械学習回路40は、さらに少なくとも一つのニューロンセル回路(NC)41を含み、ニューロンセル回路41は、少なくとも入力部410と、入力されたデータを累算する加算器部412と、非線形関数演算部413とを含み、後に説明する所定の場合に、入力されたデータの符号を反転して出力する反転器411をさらに含む。
 具体的に入力部410は、図3(b)に例示するように、少なくとも一つの入力ポート4101を有し、各入力ポート4101を介して入力データを受け入れる。入力部410は、入力ポート4101のそれぞれから入力されるデータをそのまま加算器部412に出力するか、または反転器411を介して加算器部412に出力する。そして加算器部412は、入力部410の各入力ポート4101がそのまま、あるいは反転器411を介して符号が反転されたデータを累算する。
 非線形関数演算部413は、加算器部412が累算して出力したデータの累算値を入力とし、当該入力に対する所定の非線形関数の演算結果を出力する。またこの例の非線形関数演算部413は、加算器部412の出力した累算値に所定の重み値を乗じた値に対する所定の非線形関数の演算結果を出力する。この非線形関数演算部413は、所定の演算器によって形成されてもよいが、不揮発性の、ROMなどのメモリ素子を用いて、次のように形成されてもよい。
 すなわち、この非線形関数演算部413の一例は、不揮発性のメモリ素子であって、そのメモリアドレスaに、入力値q(=a・Δq)に対応する所定の非線形関数fの出力値である、f(a・Δq)の値に所定の重み情報A(Aは所定の正の実数値)を乗じた、A・f(a・Δq)の値が格納されているものである。
 ここでΔqは、例えば加算器部412が出力し得る最大の値Vmaxと、最小の値Vminと、関数fの定義域xmin,xmax(ただしxmin<xmax)を用いて、
Δq=(xmax-xmin)/(Vmax-Vmin)
として求めたものである。もっともΔqの演算はこれに限られず、上記範囲であるVminからVmaxの入力値を入力したときに、当該入力値に対応する非線形関数fの値が出力されれば、他の演算方法でΔqを定めても構わない。あるいは、Δq=1となるように、関数fの定義域xmin,xmaxを設定してもよい。
 この例の第2の種類のニューラルネットワークにおいては、機械学習パラメータは、入力部410の各入力ポート4101が出力するデータの累算方法(どの入力ポート4101の出力の符号を反転して累算するか、など)や、非線形関数演算部413が演算する非線形関数(上述の例の場合、メモリ素子の各アドレスに格納する値に相当するもの)になる。
 また、第2の種類のニューラルネットワークにおけるニューロンセル回路41は、上述のものに限られない。例えば図4に例示するように、入力部410と、一対の加算器部412′a,bと、重みを乗算する乗加算部414と、非線形関数演算部413′とを含み、後に説明する所定の場合に、入力部410が受け入れたデータの符号を反転する反転器411をさらに含むものとしてもよい。なお、図3と同様の構成となるものについては同じ符号を付している。
 この図4の例でも、入力部410は、入力ポート4101のそれぞれから入力されるデータをそのまま加算器部412′aに出力するか、または反転器411を介して加算器部412′bに出力する。加算器部412′aは、入力部410がそのまま出力したデータを累算して正の重みを乗算するべきデータの累算値(便宜的にPデータと呼ぶ)を出力する。また加算器部412′bは、入力部410が反転器411を介して出力した、符号の反転されたデータを累算して、負の重みを乗算するべきデータの累算値(便宜的にNデータと呼ぶ)を出力する。
 乗加算部414は、加算器部412′aが出力したPデータに所定の重み値Wp(ここでWpは正の実数値とする)を乗じる。また乗加算部414は、加算器部412′bが出力したNデータに所定の重み値Wn(ここでWnは正の実数値であり、Wpと等しい値でもよいし、Wpとは異なる値でもよい)を乗じる。そして乗加算部414は、Pデータに重み値Wpを乗じた値と、Nデータに重み値Wnを乗じた値とを加算して出力する。
 非線形関数演算部413′は乗加算部414の出力した値を入力とし、当該入力に対する所定の非線形関数の演算結果を出力する。この非線形関数演算部413′も、所定の演算器によって形成されてもよいが、不揮発性の、ROMなどのメモリ素子を用いて、次のように形成されてもよい。
 この例では非線形関数演算部413′は、不揮発性のメモリ素子であって、そのメモリアドレスaに、入力値q(=a・Δq)に対応する所定の非線形関数fの出力値である、f(a・Δq)の値が格納されているものである。
 ここでΔqは、例えば乗加算部414が出力し得る最大の値Vmaxと、最小の値Vminと、関数fの定義域xmin,xmax(ただしxmin<xmax)を用いて、
Δq=(xmax-xmin)/(Vmax-Vmin)
として求めたものである。もっともΔqの演算はこれに限られず、上記範囲であるVminからVmaxの入力値を入力したときに、当該入力値に対応する非線形関数fの値が出力されれば、他の演算方法でΔqを定めても構わない。あるいは、Δq=1となるように、関数fの定義域xmin,xmaxを設定してもよい。
 次に、本実施の形態の一例に係る制御部11の動作について説明する。本実施の形態のある例では、この制御部11は、記憶部12に格納されたプログラムに従い、図5に例示するように、受入部51と、変換処理部52と、生成部53と、見積部54と、出力部55とを含む構成を、機能的に実現する。
 受入部51は、処理の対象となる第1の種類のニューラルネットワークの機械学習パラメータの入力を受け入れる。説明のため、具体的にここでは、所定の入力に対する出力を機械学習した状態にある深層学習ニューラルネットワークの学習パラメータの入力を受けるものとする。
 変換処理部52は、受入部51が受け入れた第1の種類のニューラルネットワークの機械学習パラメータを、第2の種類のニューラルネットワークの機械学習パラメータに変換する。本実施の形態の一例では、この変換処理部52は、受入部51が受け入れた第1の種類のニューラルネットワークの機械学習パラメータとともに、別途入力される学習用のデータを用いて、第2の種類のニューラルネットワークの機械学習パラメータを得る。
 この学習用のデータは、入力データと、それに対応して第2の種類のニューラルネットワークが出力するべき出力データ(教師データ)とを組としたものでよい。
 またここで第2の種類のニューラルネットワークが図3に例示したものであるとすると、この変換処理部52は、受入部51が受け入れた深層学習ニューラルネットワークの学習パラメータを参照しつつ、各ニューロンセル回路41を構成するための製造情報を生成する。
 具体的に、変換処理部52は、図6に例示するように、受入部51が受け入れた第1の種類のニューラルネットワークについて、その各層を、入力層20aから近い順に、順次、処理対象層として選択する(S11:処理対象層の選択)。変換処理部52は、当該選択した処理対象層の出力ノード22-j(j=1,2…,m)に対応する少なくとも一つのニューロンセル回路41を、仮想的に生成して初期化する(S12)。変換処理部52は、仮想的に生成したニューロンセル回路41を順次選択し、選択したニューロンセル回路41に対応する出力ノード22-jに接続される入力ノード21-1,21-2…,21-nに係る重みの値を得る(S13)。
 変換処理部52は、第1の種類のニューラルネットワークにおける各出力ノード22-jに接続される入力ノード21-1,21-2…,21-nに係る重みの値を参照してプルーニングの処理を行う。例えば変換処理部52は、参照した重みの値の絶対値が、予め定めたしきい値を下回っている入力ノード21を除き、当該しきい値を上回る重みの値に係る入力ノード21に対応する入力ポート4101を、仮想的に生成する(S14:プルーニング処理)。既に説明したように、ここでのしきい値は例えば利用者により設定されてよい。またこの重み値に係るしきい値は、参照した各入力ノード21の重みの値の分布のうち、下位の所定割合の数の入力ノード21を除くこととして定めてもよい。例えば下位の20%(この割合も利用者により設定されてよい)の数の入力ノード21を除く場合、除かない入力ノード21に係る重み値のうち最小の重み値をしきい値としてもよい。さらにしきい値は、処理対象層ごとに、第1の種類のニューラルネットワークにおける処理対象層の位置(入力層または出力層など所定の層との位置関係)に応じて異なって設定されてもよい。
 また一例として、このプルーニング処理のしきい値等は、例えば出力層の直前の層の一つ前の層において最小となるようにそれぞれ設定されてもよい。このようにすると、例えば出力層の一つ前に全結合層が配されるような深層学習ニューラルネットワークを変換して第2の種類のニューラルネットワークを得る場合、当該全結合層に近い層(当該全結合層を除く)に対応するニューロンセル回路41ほど、多くの入力ポート4101が削減されることとなる。
 また一般に、第1の種類のニューラルネットワークが、第1層を入力層とし、第N層を出力層(Nは3以上の整数)とする深層学習ニューラルネットワークであるとき、変換処理部52は、上記プルーニング処理のしきい値等を次のように定めてもよい。すなわち、変換処理部52は、当該第1の種類のニューラルネットワーク層の第i層(iは1≦i≦Nなる整数とする)の出力ノードに対応するニューロンセル回路41を設定する際に、層の深さを表す値iが、少なくとも予め定めた整数値J(ただし1<J≦Nとする)以下の範囲にあるときに、当該値iが大きいほど、プルーニング処理により設定する入力ポートの数が小さくなるよう(例えばしきい値がより大きくなるよう)制御することとしてもよい。
 変換処理部52は、仮想的な加算器部412を設定し、ステップS14で仮想的に生成した入力ポート4101に対応する入力ノード21の重みの値が正であるときには当該入力ポート4101の出力をそのまま当該加算器部412に接続する。また、変換処理部52は、ステップS14で仮想的に生成した入力ポート4101に対応する入力ノード21の重みの値が負であるときには、反転器411を設定し、当該入力ポート4101の出力を、反転器411を介して加算器部412に接続する(S15:累算方法の設定)。
 なお、変換処理部52は、第2の種類のニューラルネットワークにおけるニューロンセル回路41を、図4に例示したものとする場合、このステップS15では、上述の処理に代えて、次の処理を行うこととなる。
 図4の例のニューロンセル回路41を構成する変換処理部52は、仮想的な一対の加算器部412′a,bと、乗加算部414と、を設定する。そして、ステップS14で仮想的に生成した入力ポート4101に対応する入力ノード21の重みの値が正であるときには当該入力ポート4101の出力をそのまま当該加算器部412′aに接続する。また、変換処理部52は、ステップS14で仮想的に生成した入力ポート4101に対応する入力ノード21の重みの値が負であるときには、反転器411を設定し、当該入力ポート4101の出力を、反転器411を介して加算器部412′bに接続する。
 ここで加算器部412′aは、入力部410がそのまま出力したデータを累算して、正の重みを乗算するべきデータの累算値であるPデータを出力するものである。また加算器部412′bは、入力部410が反転器411を介して出力した、符号の反転されたデータを累算して、負の重みを乗算するべきデータの累算値であるNデータを出力するものである。
 乗加算部414は、加算器部412′aが出力したPデータに所定の重み値Wp(ここでWpは正の実数値とする)を乗じ、また、加算器部412′bが出力したNデータに所定の重み値Wn(ここでWnは正の実数値であり、Wpと等しい値でもよいし、Wpとは異なる値でもよい)を乗じて、これらPデータに重み値Wpを乗じた値と、Nデータに重み値Wnを乗じた値とを加算して出力するよう設定される。図4の例のニューロンセル回路41を構成する変換処理部52は、このようにして、ステップS15の累算方法の設定を実行する。
 変換処理部52は、仮想的な非線形関数演算部413を設定し、ステップS15で設定した加算器部412の出力、または、乗加算部414の出力を、非線形関数演算部413の入力とし、非線形関数演算部413の出力を、ステップS12で選択したニューロンセル回路41の出力とする(S16)。ここで設定する非線形関数演算部413は、不揮発性のメモリ素子であって、そのメモリアドレスaに、入力値q(=a・Δq)に対応する所定の非線形関数fの出力値である、f(a・Δq)に所定の正の実数値Aを乗じた値が格納されているものとする(Δqについては既に説明したものであるので繰り返しての説明を省略する)。なお、非線形関数fの具体的な内容については後に述べる。
 変換処理部52は、ステップS13からS16の処理を、ステップS12で仮想的に生成した処理対象層に係る各ニューロンセル回路41について(つまり、処理対象層の出力ノード22の各々について)繰り返し実行する。これにより第1の種類のニューラルネットワークの入力層20aからステップS11で選択した処理対象層までに対応する第2の種類のニューラルネットワークのニューロンセル回路41群の重み値が設定される。
 そして変換処理部52は、対応出力層が出力層20zでなければ(次の層があれば)、ステップS12に戻って次の層を対応出力層として選択し、処理S13からS16の処理を繰り返す。また変換処理部52は、対応出力層が出力層20zであれば、変換処理部52は、ここまでに設定した各ニューロンセル回路41の非線形関数演算部413が演算する非線形関数を機械学習により設定する(S17)。具体的にここでは、複数の互いに異なる非線形関数fk(x)(k=1,2…)の線形和(上記互いに異なる非線形関数fk(x)を線形結合した関数):
Figure JPOXMLDOC01-appb-M000001
あるいはこの線形和に所定の正の実数Aを乗じた関数について、その係数akを機械学習により設定することで、この非線形関数の機械学習を行うものとする。なお、ここでの非線形関数fk(x)は、例えばステップ関数、シグモイド関数、ハイパボリック・タンジェント、ソフトサイン、ソフトプラス、ReLU、Swishなどである。また変換処理部52はこのとき、係数akだけでなく、個々の非線形関数fk(x)を規定するパラメータ、例えばReLU関数:
Figure JPOXMLDOC01-appb-M000002
であれば、αの値なども、係数akとともに機械学習により設定することとしてよい。
 この例の変換処理部52は、次のようにして非線形関数の機械学習を行う。すなわち、変換処理部52は、入力された学習用のデータに含まれる入力データを逐次選択して、第2の種類のニューラルネットワークに入力する。そして変換処理部52は、そのときの第2の種類のニューラルネットワークの出力データを得る。変換処理部52は、入力したデータに対応して学習用データに含まれる出力データと、ここで得た出力データとを比較し、バックプロパゲーションの方法と同様の方法で、処理対象層に対応する各ニューロンセル回路41の非線形関数演算部413が演算する非線形関数に係る上記係数akや、個々の非線形関数fk(x)ごとのパラメータを補正する。変換処理部52は、この処理を学習データに含まれる各入力データについて実行して、各ニューロンセル回路41の非線形関数演算部413が演算する非線形関数A・fk(x)(図3の例の場合)、またはfk(x)(図4の例の場合)を設定する(なおAは所定の正の実数値)。
 この非線形関数の設定の後、変換処理部52は、ここまでの処理で生成した第2の種類のニューラルネットワークの機械学習パラメータを表す情報を出力することとしてもよい。例えば変換処理部52は、受入部51が受け入れた第1の種類のニューラルネットワークの各層ごとに、当該層を特定する情報に関連付けて、当該層に対応する少なくとも一つのニューロンセル回路41を特定する情報を順次記録した情報を生成する。ここで層を特定する情報は、入力層20aを「1」として、以下、出力層20zに近づくごとに「1」ずつ増分する、層ごとの番号を用いるものとし、以下ではこの番号(層を特定する情報)をレイヤー番号と呼ぶ。
 また各ニューロンセル回路41を特定する情報には、プルーニング処理(ステップS14)によって減じられた入力ポート4101を除く、少なくとも一つの入力ポート4101を特定する情報と、各入力ポート4101の出力に対応する反転部411の有無や、加算器部412′及び乗加算部414、若しくは加算器部412を表す情報と、ステップS17で設定された非線形関数演算部413を表す情報とが関連付けて記録される。またここで非線形関数演算部の情報には、上記加算器部412が出力する値を入力とし、ステップS17で決定された非線形関数を演算して所定出力ビット数の出力値(非線形関数の演算結果)を出力する演算部を特定する情報が含まれる。
 また変換処理部52は、ここで例えば利用者の指示などにより、第1の種類のニューラルネットワークの各層の各ノードに対応するニューロンセル回路41のうち、少なくとも一部のニューロンセル回路41について、次の補正処理を行ってもよい。
 すなわち変換処理部52は、上記少なくとも一部のニューロンセル回路41の非線形関数演算部413が演算する非線形関数の出力値(以下、関数出力値と呼ぶ)を表現するためのビット数を補正して(S18)、第2の種類のニューラルネットワークの機械学習パラメータを出力することとしてもよい。すなわち本実施の形態のある例では、変換処理部52は、上記少なくとも一部のニューロンセル回路41についての関数出力値を表現するためのビット数を、予め定めた方法で定めた最小ビット数以上のビット数まで削減する。
 ここで最小ビット数は、ビット数の削減の対象となったニューロンセル回路41に対応する出力ノードが属する第1の種類のニューラルネットワークの層(対応する層)が、その出力層20zにどれだけ近いかによって異なっていてもよい。一例として変換処理部52は、第1の種類のニューラルネットワークの入力層20aに係るニューロンセル回路41の関数出力値の最小ビット数を1ビットとし、以下、中間層20b,c…については、1ビット、4ビット、4ビット…と出力層20zに近づくほど各層に係るニューロンセル回路41の関数出力値の最小ビット数を大きくする。そして出力層20zについては、変換処理部52は、当該出力層20zに係るニューロンセル回路41の関数出力値の最小ビット数が削減前のビット数と等しくなるように(つまり削減しないように)しておくことも好ましい。
 これは後段(出力層20zに近い層)ほど、前段の特徴を受けて、特徴を集約した状態にあり、表現可能性を大きくしておく必要があることを鑑みたものである。なお、このような関数出力値のビット数の設定は一例であり、他の方法で関数出力値のビット数を定めてもよい。
 このステップS18の処理により、第2の種類のニューラルネットワークの機械学習パラメータに含まれる、削減の対象となった非線形関数演算部の出力値のビット数の設定が変更される。
 具体的に変換処理部52は、図7に例示するように、入力層20aから順に、第1の種類のニューラルネットワークの各層を順次、処理対象層として選択する(S21)。変換処理部52は、当該処理対象層に属するノードに対応する第2の種類のニューラルネットワークのニューロンセル回路41について、その関数出力値のビット数が、当該ニューロンセル回路41について定めた最小ビット数より大きいか否かを調べ(S22)、大きいとき(S22:Yes)には、当該ビット数を「1」だけ削減する(S23)。
 そして変換処理部52は、入力された学習用のデータに含まれる入力データを、処理の対象としている第2の種類のニューラルネットワークに逐次的に入力してそれぞれの出力データを得る(S24)。変換処理部52は、入力した入力データに対応する教師データのそれぞれと、対応する第2の種類のニューラルネットワークの出力データとを比較し、それぞれの差の絶対値の和などで表される誤差が、予め定めたしきい値を下回るか否かを判断する(S25)。ここで当該誤差が予め定めたしきい値を下回るとき(S25:Yes)には、変換処理部52は、ステップS22に戻って処理を続ける。
 一方、ステップS25で、当該誤差が予め定めたしきい値を下回らないとき(S25:No)には、変換処理部52は、処理対象層に属するノードに対応する第2の種類のニューラルネットワークのニューロンセル回路41について、その関数出力値のビット数を「1」だけ増大させ(S26)、ステップS21に戻って、次の層があれば、次の層を処理対象層として選択して処理を続ける。一方、次の層がなければ、変換処理部52は、このビット数の補正に係る処理を終了する。
 また変換処理部52は、ステップS22において、関数出力値のビット数が、当該ニューロンセル回路41について定めた最小ビット数より大きくないとき(S22:No)には、ステップS21に戻り、次の層があれば、次の層を処理対象層として選択して処理を続け、次の層がなければ、ビット数の補正に係る処理を終了する。
 さらにここでは変換処理部52は、ステップS16の処理の後、次の層に対応する処理を行うこととしたが、本実施の形態はこれに限られず、変換処理部52は、ステップS13からステップS17の処理を、複数回繰り返してもよい(図6の破線で示した処理)。すなわち、プルーニング処理と、処理対象層の各ノードに対応するニューロンセル回路41における累算方法の設定と、非線形関数の設定及び学習とを所定の回数だけ繰り返し実行してもよい。この場合、繰り返し実行ごとにプルーニング処理において利用するしきい値を変更する。例えば繰り返し実行ごとにプルーニング処理において利用するしきい値を所定の割合(例えば10%)だけ大きくする。これにより繰り返し実行ごとにプルーニング処理により削除される入力ポート4101の数を増大させる。また繰り返し実行を行う際は、非線形関数の学習時の各ニューロンセル回路41における非線形関数の初期値は、前回の非線形関数の学習結果をそのまま利用する。
 生成部53は、変換処理部52により変換されて得られた、第2の種類のニューラルネットワークの機械学習パラメータに基づいて、第2の種類のニューラルネットワークを製造するための製造情報を生成する。
 具体的な例として、この生成部53は、変換処理部52により変換されて得られた、第2の種類のニューラルネットワークの機械学習パラメータとして、変換の対象となった第1の種類のニューラルネットワークの各層のレイヤー番号に関連付けられて記録されているニューロンセル回路41を特定する情報を参照する。そして生成部53は、参照した情報に関連付けられている、入力ポート4101を特定する情報と、当該入力ポート4101に係る重み値とを関連付けた入力ポート4101の情報に従い、各入力ポート4101に対応するハードウェア要素と、それぞれの入力ポート4101に入力されたデータに、対応する重み値を乗じるハードウェア要素と、当該重み値を乗じた値を累算する加算器部412に対応するハードウェア要素とを記述するハードウェア設計用の情報(所定のハードウェア記述言語で記述できる)を生成する。
 また生成部53は、参照した情報に関連付けられている非線形関数演算部413の情報に基づいて、上記加算器部412の出力を入力として、当該入力された値に対応する非線形関数の出力値を出力する非線形関数演算部413を実装するためのハードウェア設計用の情報を生成する。
 生成部53は、このようにして各レイヤー番号に関連付けて記録されているニューロンセル回路41のハードウェア設計用の情報を生成し、これらを例えばレイヤー番号の順で順次接続して、第2の種類のニューラルネットワークを、実際にFPGA等を用いて製造するための情報(製造情報)として出力する。
 見積部54は、生成部53が生成した製造情報を参照して、当該製造情報に従って製造される第2の種類のニューラルネットワークに関する規模または性能の少なくとも一方に関する見積情報を生成する、
 具体的にこの見積部54は、生成部53が生成した製造情報を参照して、レイヤー番号ごとに、当該レイヤー番号に関連付けて記録されているニューロンセル回路41の数(総ニューロン数)と、当該ニューロンセル回路41のそれぞれにおける入力ポート4101の数の平均(平均シナプス数)とを抽出する。
 そして見積部54は、ここで抽出した情報に基づいて、ニューロンセル回路41の数の総和(総NC数)と、消費電力量と、1回の推論に要する時間(レイテンシ)などの情報を生成する。
 本実施の形態の一例では、この見積部54は、過去に実際に製造されたハードウェアの製造情報から抽出されるレイヤー番号ごとの総ニューロン数及び平均シナプス数の情報と、実際に製造したハードウェアについて実際に測定された、当該レイヤー番号に対応するニューロンセル回路41の数の総和(総NC数)と、消費電力量と、1回の推論に要する時間(レイテンシ)などの情報とを互いに関連付けたレコードを複数保持する実績データベース(図8)を参照する。
 そして見積部54は、この実績データベースに格納した各レコードに含まれる、レイヤー番号ごとの総ニューロン数及び平均シナプス数の情報と、生成部53が生成した製造情報を参照して抽出した、見積の対象となるハードウェアの製造情報のレイヤー番号ごとの総ニューロン数及び平均シナプス数の情報とを比較し、それらが最も類似しているレコードを見出す。
 見積部54は、ここでレイヤー番号ごとに見出したレコードに含まれる総NC数、消費電力量及びレイテンシの情報をそれぞれ累算して、見積情報を生成する。
 なお、レイヤー番号ごとの総ニューロン数及び平均シナプス数の情報間の類似は、例えば比較の対象となる一方のレイヤー番号ごとの総ニューロン数をNNa、平均シナプス数をASaとし、もう一方のレイヤー番号ごとの総ニューロン数をNNb、平均シナプス数をASbとするとき、類似度Sを、
S=α|NNa-NNb|+β|ASa-ASb|
(ただしα,βは予め定めた正の定数とし、|X|はXの絶対値を意味するものとする)とし、この類似度が小さいほど類似しているものとして評価すればよい。
 出力部55は、生成部53が生成した製造情報と、見積部54が生成した見積情報との少なくとも一方を出力する。
[動作]
 次に、本実施の形態の情報処理装置1の動作例について説明する。以下では、一例として、変換の対象とする第1の種類のニューラルネットワークを図9(a)に例示する。この第1の種類のニューラルネットワークは、画像データの入力を受け入れる入力層20aである畳み込みレイヤと、中間層20b,c,dであるプーリングレイヤと、もう一つの畳み込みレイヤと、もう一つのプーリングレイヤと、出力層20zの前段の中間層20eである全結合層と、出力層20zとを含むものとする。そしてこの第1の種類のニューラルネットワークが予め教師データによって所定の推定を行うよう機械学習した状態にあるものとする。
 情報処理装置1は、この第1の種類のニューラルネットワークのモデル(各層を特定する情報)と、その機械学習パラメータを受け入れる。この第1の種類のニューラルネットワークの機械学習パラメータには、図9(b)に例示するように、その各層に含まれる入力ノード21-1,21-2…のそれぞれと、出力ノード22-1,22-2,…のそれぞれとの間の重みの情報が含まれる。なお、図9(b)では説明を簡便にするため、入力ノードが5つだけである場合を示しているが、実際には、入力ノードの数はさらに多数であってよい。また図9(b)では一つの出力ノード22に係る重みの情報を抜き出して例示している。
 図9(b)では、入力ノード21-1,21-2,21-3,21-4,21-5のそれぞれから出力ノード22への重みがそれぞれW1=0.08、W2=-0.24、W3=-0.18、W4=0.14、W5=0.001となっているものとする。
 情報処理装置1は、当該受け入れた第1の種類のニューラルネットワークの機械学習パラメータを、第2の種類のニューラルネットワークの機械学習パラメータに変換する。以下の例でも、第2の種類のニューラルネットワークは図3に例示したものであるとする。
 情報処理装置1は、変換の対象として受け入れた第1の種類のニューラルネットワークについて、その各層を順次、処理対象層として選択し、選択した処理対象層の出力ノード22-j(j=1,2…,m)に対応する少なくとも一つのニューロンセル回路41を、仮想的に生成して初期化する。
 具体的な例として情報処理装置1は、図9(b)に対応するニューロンセル回路41として、入力ノード21-1,21-2…,21-5に対応する入力ポートX1,X2…,X5を仮想的に設定する。
 そして情報処理装置1はそれぞれのニューロンセル回路41について、対応する出力ノード22に接続される入力ノード21-1,21-2…,21-5に係る重みの値を得て、当該得た重みの値のうち、その絶対値が予め定めたしきい値(例えばここでは0.01)を下回る重みの値となっている入力ノード21を取り除く(プルーニング処理)。ここでの例では、重みW5に対応する入力ノード21-5に対応する入力ポートX5が除かれる。
 情報処理装置1は、残る入力ポートX1,X2,X3,X4について、対応する入力ノード21-1,21-2,21-3,21-4から出力ノード22への重みを参照し、それぞれの符号に基づいて、入力されるデータを反転するか否かを設定する。すなわち情報処理装置1は、対応する入力ノード21の重みの符号が負である場合は、当入力ノードに対応する入力ポートXiのデータを反転するよう反転器411を設定する。ここでの例では入力ポートX2,X3に入力されたデータを反転するよう反転器411を設定する(図10)。
 また情報処理装置1は、各ニューロンセル回路41の非線形関数演算部413で演算する非線形関数を機械学習により設定する。この非線形関数演算部413は、対応するニューロンセル回路41内の加算器部412の出力、すなわち図10の例では、入力ポートX1,X4に入力されたデータ及び、入力ポートX2,X3に入力され、対応する反転器411で符号を反転したデータを累算した結果を入力とする。
 本実施の形態の一例では、この非線形関数の機械学習のために、複数の互いに異なる非線形関数fk(x)(k=1,2…)を線形結合した関数:
Figure JPOXMLDOC01-appb-M000003
について、少なくともその係数akを機械学習により設定することとする。なお、ここでの非線形関数fk(x)は、例えばステップ関数、シグモイド関数、ハイパボリック・タンジェント、ソフトサイン、ソフトプラス、ReLU、Swishなどである。なお、既に述べたように、個々の非線形関数fk(x)を規定するパラメータも、上記係数akとともに機械学習の対象としてよい。また実際にこの例の非線形関数演算部413に演算させる非線形関数は、上記複数の互いに異なる非線形関数fk(x)(k=1,2…)を線形結合した関数f(x)に所定の正の実数値Aを乗じた値となる。
 また情報処理装置1は、機械学習前の状態(初期状態)として、各ニューロンセル回路41について、対応する第1の種類のニューラルネットワークの出力ノード22が演算する非線形関数と同じ非線形関数fk(x)に係る係数akを、他の非線形関数fk(x)に係る係数akよりも大きい値に設定することとしてもよい。具体的には、対応する第1の種類のニューラルネットワークの出力ノード22が演算する非線形関数と同じ非線形関数fk(x)に係る係数akを「1」よりも小さいが「1」に十分近い値ηとし、他の非線形関数fk(x)に係る係数akは他の非線形関数fkの個数nでηを除した値に設定する(この例では、係数akの総和は「1」となる)こととしてもよい。
 情報処理装置1は、別途用意された学習用のデータ(入力値とそれに対応する正解となるべきニューラルネットワークの出力データ(教師データ)とを関連付けたデータ)を用い、この学習用データに含まれる入力データを、仮想的に設定した第2の種類のニューラルネットワークに逐次入力する。
 そして情報処理装置1は、入力データの入力ごとに、仮に設定した第2の種類のニューラルネットワークが出力する出力値と、入力した入力データに対応して学習用データに含まれる教師データとを比較する。情報処理装置1は、この比較に基づいて、バックプロパゲーションの方法により、各ニューロンセル回路41の非線形関数演算部で演算する非線形関数の、上記係数ak等を補正する。
 このように情報処理装置1は、非線形関数を固定して入力ポート4101に対応する重み値を設定する処理と、重み値を固定して非線形関数を設定する処理とを実行して第2の種類のニューラルネットワークの機械学習パラメータを得る。
 情報処理装置1は、こうして設定した各ニューロンセル回路41をハードウェアとして製造するための製造情報を生成する。
 また情報処理装置1は、図8に例示した、過去に実際に製造されたハードウェアの製造情報に基づく実績データベースを参照し、この実績データベースに格納した各レコードに含まれる、レイヤー番号ごとの総ニューロン数及び平均シナプス数の情報と、生成した製造情報を参照して抽出した、見積の対象となるハードウェアの製造情報のレイヤー番号ごとの総ニューロン数及び平均シナプス数の情報とを比較し、それらが最も類似しているレコードを見出す。
 そして情報処理装置1は、ここでレイヤー番号ごとに見出したレコードに含まれる総NC数、消費電力量及びレイテンシの情報をそれぞれ累算して、見積情報を生成して利用者に提示する。
 この情報処理装置1の利用者は、提示された見積情報を参照し、例えばその消費電力やレイテンシの低減を目的として、さらに各ニューロンセル回路41の非線形関数演算部の出力値である関数出力値を表現するためのビット数を低減するよう情報処理装置1に指示してもよい。
 この指示を受けた情報処理装置1は、変換により得た第2の種類のニューラルネットワークに含まれる少なくとも一部のニューロンセル回路41の非線形関数演算部の出力値である関数出力値を表現するためのビット数を補正する。具体的に、情報処理装置1は、ビット数の削減の対象となったニューロンセル回路41に対応する出力ノードが属する第1の種類のニューラルネットワークの層に応じて、それが入力層20aであれば関数出力値の最小ビット数を1ビットとする。以下、情報処理装置1は、中間層20b,c…に対応するニューロンセル回路41の関数出力値の最小ビット数を、1ビット、4ビット、4ビット…というように出力層20zに近づくほど大きい値とする。
 そして情報処理装置1は、学習用データを用いて、当該学習用データに含まれる入力データを入力したときの出力値と、対応する教師データとの相違が所定の相違を下回り、かつ上記最小ビット数以上で、最も小さいビット数となるよう、各ニューロンセル回路41の非線形関数演算部の出力値である関数出力値のビット数を補正する。
 そして情報処理装置1は、当該補正後の各ニューロンセル回路41をハードウェアとして製造するための製造情報を生成するとともに、実績データベースを参照して、補正後のレイヤー番号ごとの総NC数、消費電力量及びレイテンシの情報を累算して、見積情報を生成し、利用者に提示する。
[プルーニングと非線形関数学習との繰り返し]
 さらに情報処理装置1は、利用者の指示等により、再度、プルーニング処理から処理を繰り返してもよい。すなわち情報処理装置1は、再度、変換の対象となった第1の種類のニューラルネットワークについて、その各層を順次、処理対象層として選択し、選択した処理対象層の出力ノード22-j(j=1,2…,m)に対応するニューロンセル回路41ごとに、次の処理を行う。
 すなわち情報処理装置1はそれぞれのニューロンセル回路41について、対応する出力ノード22に接続される入力ノード21-1,21-2…,21-5に係る重みの値を得て、当該得た重みの値のうち、その絶対値が予め定めたしきい値を下回る重みの値となっている入力ノード21を取り除く。ここでしきい値は、前回のプルーニング処理の際に用いたしきい値より大きくなるように設定する。一例として前回のプルーニング処理におけるしきい値が0.01である場合、例えば今回のプルーニング処理でのしきい値を0.15などとする。
 この場合、既に述べたように入力ノード21-1,21-2,21-3,21-4,21-5のそれぞれから出力ノード22への重みがそれぞれW1=0.08、W2=-0.24、W3=-0.18、W4=0.14、W5=0.001となっている例では、重みW5に対応する入力ノード21-5に対応する入力ポートX5と、重みW4に対応する入力ノード21-4に対応する入力ポートX4と、が除かれる。
 そして情報処理装置1は、残る入力ポートX1,X2,X3について、対応する入力ノード21-1,21-2,21-3から出力ノード22への重みを参照し、それぞれから入力されるデータに乗じる重みの値を、Wp,Wm,Wmと設定する。
 次に情報処理装置1は、各ニューロンセル回路41の非線形関数演算部で演算する非線形関数を機械学習により設定する。このとき、各非線形関数の初期値は、前回の非線形関数の学習結果をそのまま利用する。
 この処理により、入力ポート4101の数、つまり平均シナプス数を低減できる。また、プルーニング処理により、すべての入力ポート4101が削除されることとなったニューロンセル回路41については、ニューロンセル回路41そのものを削除して、グランド端子等に置き換える。この場合、総ニューロン数も低減されることとなる。
 一つの例として、情報処理装置1は、図9(a)に例示した深層学習ニューラルネットワークを変換する動作において、画像データの入力を受け入れる入力層20aである畳み込みレイヤに対応するニューロンセル回路41の入力ポート4101の数を30%まで削減する。また全結合層に近いほど削減量を増大させるようそれぞれのプルーニング処理におけるしきい値を設定して、例えば、
中間層20b(プーリングレイヤ)に対応するニューロンセル回路41の入力ポート4101の数を25%まで
中間層20c(畳み込みレイヤ)に対応するニューロンセル回路41の入力ポート4101の数を10%まで
中間層20d(プーリングレイヤ)に対応するニューロンセル回路41の入力ポート4101の数を10%まで
それぞれ削減する。
 そして、情報処理装置1は、出力層20zの前段の中間層20eである全結合層に対応するニューロンセル回路41の入力ポート4101の数については、40%まで低減する。そしてこれにより回路規模を低減する。
 本実施の形態の例によると、利用者は、プルーニング処理のしきい値や繰り返し回数、各ニューロンセル回路41の非線形関数の出力ビット数等を調整しつつそれぞれの見積情報を得て、所望の条件が満足されるよう設計を繰り返すことが可能となる。なお、情報処理装置1は、プルーニング処理等を繰り返しつつ得られた第2の種類のニューラルネットワークの機械学習パラメータのそれぞれについて、所定の学習データを利用して出力値の正解率(推定の正確率)を求めて、見積情報に含めて提示してもよい。
 1 情報処理装置、11 制御部、12 記憶部、13 操作部、14 表示部、15 入出力部、21 入力ノード、22 出力ノード、30 入力回路部、40 機械学習回路、41 ニューロンセル回路、50 出力回路部、51 受入部、52 変換処理部、53 生成部、54 見積部、55 出力部、221 積和演算部、222 非線形関数演算部、410 入力部、411 反転器、412,412′ 加算器部、413 非線形関数演算部、414 乗加算器、4101 入力ポート。

 

Claims (10)

  1.  所定の入力に対する出力を機械学習した状態にある第1の種類のニューラルネットワークの機械学習パラメータの入力を受け入れる受入手段と、
     前記受け入れた第1の種類のニューラルネットワークの機械学習パラメータを、前記第1の種類のニューラルネットワークとは種類の異なる第2の種類のニューラルネットワークの機械学習パラメータに変換する変換処理手段と、
     前記変換された機械学習パラメータに基づいて、前記第2の種類のニューラルネットワークを製造するための製造情報を生成する生成手段と、
     前記製造情報に従って製造される第2の種類のニューラルネットワークに関する規模または性能の少なくとも一方に関する見積情報を生成する見積手段と、
     前記製造情報と見積情報とを出力する手段と、
    を含む情報処理装置。
  2.  請求項1に記載の情報処理装置であって、
     前記第1の種類のニューラルネットワークは、深層学習ニューラルネットワークであり、
     前記変換処理手段は、前記第1の種類のニューラルネットワークの各層の出力ノードごとにニューロンセル回路を仮想的に設定する変換処理手段であり、
     当該設定するニューロンセル回路の少なくとも一つは、入力ポートと反転器と加算器と非線形演算部とを備え、当該反転器は入力されたデータの符号を反転した状態とする反転器であり、
     当該変換処理手段が、前記ニューロンセル回路のそれぞれを設定する際に、対応する前記第1の種類のニューラルネットワークの前記出力ノードに接続される入力ノードに係る重みの情報に基づいて、当該入力ノードに対応する入力ポートを配し、当該配した入力ポートのそれぞれについて、当該入力ポートに入力されたデータをそのまま出力するか、前記反転器を設定して、あるいは反転して出力するかを設定し、
     前記加算器を、当該そのまま出力されたデータまたは前記反転器を介して出力されたデータを累算するよう設定し、
     前記非線形演算部を、前記加算器が出力する累算値を得て、当該得た累算値に応じた所定の非線形関数の関数値を出力するよう設定する情報処理装置。
  3.  請求項2に記載の情報処理装置であって、
     前記変換処理手段は、前記ニューロンセル回路のそれぞれを設定する際に、前記第1の種類のニューラルネットワークにおいて対応する前記出力ノードに接続される入力ノードのうち、当該入力ノードに係る重みの情報が所定のしきい値を上回る入力ノードに対応する入力ポートのみ設定する、プルーニング処理を実行する情報処理装置。
  4.  請求項3に記載の情報処理装置であって、
     前記第1の種類のニューラルネットワークは、第1層を入力層とし、第N層(Nは3以上の整数)を出力層とする深層学習ニューラルネットワークであり、
     前記変換処理手段は、前記第1の種類のニューラルネットワーク層の第i層(iは1≦i≦Nなる整数とする)の出力ノードに対応するニューロンセル回路を設定する際に、前記層の深さを表す値iが、少なくとも予め定めた整数値J(ただし1<J≦Nとする)以下の範囲にあるときに、当該値iが大きいほど、前記プルーニング処理により設定する入力ポートの数が小さくなるよう制御する情報処理装置。
  5.  請求項2から4のいずれか一項に記載の情報処理装置であって、
     前記変換処理手段は、前記ニューロンセル回路のそれぞれを設定する際に、各ニューロンセル回路のそれぞれについて設定した入力ポートに対応する重み値の設定の後に、所定の教師情報を用いた機械学習処理により、各ニューロンセル回路のそれぞれについて設定した前記非線形演算部の演算する非線形関数を設定する情報処理装置。
  6.  請求項5に記載の情報処理装置であって、
     前記変換処理手段は、前記非線形演算部の演算する非線形関数を機械学習する際には、当該非線形関数を、所定の複数の種類の非線形関数の線形和とし、各種類の非線形関数に乗じる係数値を機械学習により設定することで、当該非線形演算部の演算する非線形関数を設定する情報処理装置。
  7.  請求項2から6のいずれか一項に記載の情報処理装置であって、
     前記変換処理手段は、前記ニューロンセル回路のそれぞれを設定する際に、設定するニューロンセル回路に対応する出力ノードを含む前記第1の種類のニューラルネットワークの層の位置に応じて、当該設定するニューロンセル回路の非線形演算部の出力ビット数を設定する情報処理装置。
  8.  請求項2から7のいずれか一項に記載の情報処理装置であって、
     前記生成手段が生成する前記製造情報は、前記変換処理手段が設定した前記ニューロンセル回路のそれぞれをハードウェアとして製造するための製造情報であり、所定のハードウェア記述言語で表現された情報である情報処理装置。
  9.  請求項2から8のいずれか一項に記載の情報処理装置であって、
     過去に製造された第2の種類のニューラルネットワークの規模または性能の少なくとも一方に関する情報を、当該第2の種類のニューラルネットワークに含まれるニューロンセル回路の数と、当該ニューロンセル回路に含まれる入力ポートの数とに関連付けて保持する実績データベースにアクセスする手段をさらに有し、
     前記見積手段は、前記変換処理手段が設定した前記ニューロンセル回路の数と、当該ニューロンセル回路に含まれる入力ポートの数とを用いて前記実績データベースに保持された過去に製造された第2の種類のニューラルネットワークのうち、類似すると判断される第2の種類のニューラルネットワークの規模または性能の少なくとも一方に関する情報を取得し、当該取得した情報を見積情報として出力する情報処理装置。
  10.  コンピュータを、
     所定の入力に対する出力を機械学習した状態にある第1の種類のニューラルネットワークの機械学習パラメータの入力を受け入れる受入手段と、
     前記受け入れた第1の種類のニューラルネットワークの機械学習パラメータを、前記第1の種類のニューラルネットワークとは種類の異なる第2の種類のニューラルネットワークの機械学習パラメータに変換する変換処理手段と、
     前記変換された機械学習パラメータに基づいて、前記第2の種類のニューラルネットワークを製造するための製造情報を生成する生成手段と、
     前記製造情報に従って製造される第2の種類のニューラルネットワークに関する規模または性能の少なくとも一方に関する見積情報を生成する見積手段と、
     前記製造情報と見積情報とを出力する手段と、
    として機能させるプログラムを格納したコンピュータ可読かつ非一時的な記録媒体。

     
PCT/JP2022/031945 2021-08-26 2022-08-24 情報処理装置、及び記録媒体 WO2023027128A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021138412A JP2023032348A (ja) 2021-08-26 2021-08-26 情報処理装置、及びプログラム
JP2021-138412 2021-08-26

Publications (1)

Publication Number Publication Date
WO2023027128A1 true WO2023027128A1 (ja) 2023-03-02

Family

ID=85322882

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/031945 WO2023027128A1 (ja) 2021-08-26 2022-08-24 情報処理装置、及び記録媒体

Country Status (2)

Country Link
JP (1) JP2023032348A (ja)
WO (1) WO2023027128A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018171717A1 (zh) * 2017-03-23 2018-09-27 中国科学院计算技术研究所 面向神经网络处理器的自动化设计方法和系统
WO2019186618A1 (ja) * 2018-03-26 2019-10-03 三菱電機株式会社 高位合成装置、高位合成方法および高位合成プログラム
US20210097388A1 (en) * 2017-12-20 2021-04-01 Siemens Aktiengesellschaft Method for Realizing a Neural Network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018171717A1 (zh) * 2017-03-23 2018-09-27 中国科学院计算技术研究所 面向神经网络处理器的自动化设计方法和系统
US20210097388A1 (en) * 2017-12-20 2021-04-01 Siemens Aktiengesellschaft Method for Realizing a Neural Network
WO2019186618A1 (ja) * 2018-03-26 2019-10-03 三菱電機株式会社 高位合成装置、高位合成方法および高位合成プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HINAKO INAISHI, RYOTA YAMAMOTO , SHINJI ITO, SHINYA HONDA, MASATO EDAHIRO: "Low-cost and high-speed co-verification environment for C-based system-level design,", IPSJ SIG TECHNICAL REPORT, vol. 46, 18 March 2021 (2021-03-18), pages 1 - 8, XP093040006 *

Also Published As

Publication number Publication date
JP2023032348A (ja) 2023-03-09

Similar Documents

Publication Publication Date Title
Sung et al. Resiliency of deep neural networks under quantization
Wang et al. A compact constraint incremental method for random weight networks and its application
Mansor et al. Accelerating activation function for 3-satisfiability logic programming
CN111063398A (zh) 一种基于图贝叶斯优化的分子发现方法
CN113821983B (zh) 基于代理模型的工程设计优化方法、装置及电子设备
WO2019006976A1 (zh) 神经网络权重离散化方法、系统、设备和可读存储介质
TWI737228B (zh) 基於記憶體內運算電路架構之量化方法及其系統
Jiang et al. Sparse and robust estimation with ridge minimax concave penalty
CN113935489A (zh) 基于量子神经网络的变分量子模型tfq-vqa及其两级优化方法
Chen et al. An efficient sharing grouped convolution via bayesian learning
CN114169251A (zh) 一种超短期风电功率预测方法
CN113051130A (zh) 结合注意力机制的lstm网络的移动云负载预测方法及系统
CN114970345A (zh) 短期负荷预测模型构建方法、装置、设备及可读存储介质
CN113011669B (zh) 一种生猪月度存栏量预测方法
WO2023027128A1 (ja) 情報処理装置、及び記録媒体
Fry Observer-participant models of neural processing
CN111832623A (zh) 一种基于相空间重构的回声状态网络时间序列预测算法
CN111524348A (zh) 一种长短期交通流预测模型及方法
CN116502774A (zh) 一种基于时间序列分解和勒让德投影的时间序列预测方法
CN114372539B (zh) 基于机器学习框架的分类方法及相关设备
Xu et al. Application of GMDH to short-term load forecasting
Cooke et al. Guaranteed Quantization Error Computation for Neural Network Model Compression
CN112633500A (zh) 一种基于分解思想的卷积神经网络代理模型的多目标优化进化计算方法
Shen et al. Learning to prune in training via dynamic channel propagation
CN116134415A (zh) 用于更新交叉阵列的脉冲生成

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE