WO2022230926A1 - 機械学習回路及び情報処理装置 - Google Patents

機械学習回路及び情報処理装置 Download PDF

Info

Publication number
WO2022230926A1
WO2022230926A1 PCT/JP2022/019044 JP2022019044W WO2022230926A1 WO 2022230926 A1 WO2022230926 A1 WO 2022230926A1 JP 2022019044 W JP2022019044 W JP 2022019044W WO 2022230926 A1 WO2022230926 A1 WO 2022230926A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
neuron cell
input
machine learning
output
Prior art date
Application number
PCT/JP2022/019044
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 国立大学法人 東京大学
Priority to JP2023517590A priority Critical patent/JPWO2022230926A1/ja
Publication of WO2022230926A1 publication Critical patent/WO2022230926A1/ja

Links

Images

Classifications

    • 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 machine learning circuits and information processing devices.
  • Non-Patent Document 1 Non-Patent Document 1
  • the present invention has been made in view of the above circumstances, and one of its purposes is to provide a machine learning circuit and an information processing device capable of improving energy efficiency.
  • One aspect of the present invention for solving the problems of the conventional example is a machine learning circuit including a plurality of neuron cell circuits, wherein the neuron cell circuit has an input section for receiving a plurality of input signals; an adder unit for adding the input signals received by the adder unit; holding the output result of the nonlinear function according to each input value; and a storage unit for outputting the output result of the function.
  • a machine learning circuit can be realized by addition and one-time memory readout instead of many memory readouts, sum-of-products operations, etc., and energy efficiency can be improved.
  • 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 a schematic wiring diagram showing a schematic configuration of a neuron cell integrated circuit according to an embodiment of the present invention
  • FIG. 1 is a block diagram showing a configuration example of a neuron cell circuit according to an embodiment of the present invention
  • FIG. 4 is a block diagram showing a configuration example of a neuron cell circuit according to another example of an embodiment of the present invention
  • FIG. 4 is a block diagram showing a configuration example of a neuron cell circuit according to another example of the embodiment of the invention
  • FIG. 10 is a block diagram showing a configuration example of a neuron cell circuit according to still another example of an embodiment of the present invention
  • FIG. 10 is a block diagram showing a configuration example of a neuron cell circuit according to still another example of an embodiment of the present invention
  • FIG. 4 is a schematic wiring diagram showing a schematic configuration of a neuron cell integrated circuit according to another example of the embodiment of the invention
  • FIG. 5 is a schematic wiring diagram showing a schematic configuration of a shift register circuit section according to another example of the embodiment of the invention
  • FIG. 9 is an explanatory diagram showing an example of image data processing by an information processing apparatus according to another example of an embodiment of the present invention
  • FIG. 4 is a schematic wiring diagram showing a schematic configuration of a neuron cell integrated circuit according to still another example of the embodiment of the invention
  • 1 is a schematic wiring diagram showing a configuration example of a connection circuit according to an embodiment of the present invention
  • FIG. 1 is a schematic wiring diagram showing an example of a switch using a memory element used in an embodiment of the invention
  • FIG. FIG. 2 is an explanatory diagram showing a mode of integration of neuron cell circuits according to an example
  • An information processing apparatus 1 includes an input circuit section 10, at least one machine learning circuit 20, and an output circuit section 30, as illustrated in FIG.
  • the input circuit unit 10 outputs externally input data to the machine learning circuit 20 .
  • the data input here is a plurality of (for example, K pieces, where K is an integer satisfying K>1) N-bit data (N is a natural number equal to or greater than 1).
  • the machine learning circuit 20 is configured with at least one neuron cell integrated circuit 200.
  • the neuron cell integrated circuit 200 includes an input side circuit 210, a plurality of neuron cell circuits 220 (abbreviated as NC in the drawing), a connecting circuit 230, and an output side circuit 240. including.
  • the input side circuit 210 includes K pieces of N-bit data output by the input circuit section 10 or other neuron cell integrated circuits 200 (neuron cell integrated circuits 200 other than the neuron cell integrated circuit 200 including the input side circuit 210 itself). (K ⁇ N bits of data in total).
  • the input side circuit 210 outputs the received data to at least some of the plurality of neuron cell circuits 220 existing within the same neuron cell integrated circuit 200 . At this time, the input-side circuit 210 does not need to output the K pieces of data to each of the neuron cell circuits 220 which are the data output destinations, and selects each output destination from among the K pieces of data. Data may be output to corresponding neuron cell circuits 220 .
  • the input side circuitry 210 may operate as follows. That is, in one example of this embodiment, the input-side circuit 210 receives the first to fourth N-bit data (4 ⁇ N-bit data in total) through the four neuron cell circuits 220a, b, c, and 220b. d to the first neuron cell circuit 220a. Further, the input side circuit 210 outputs the fifth to eighth N-bit data to the second neuron cell circuit 220b, and so on. may be divided into N-bit data and output to the corresponding neuron cell circuits 220 .
  • the neuron cell circuit 220 that receives data directly from the input side circuit 210 is referred to as an input side circuit, and outputs data directly to an output side circuit 240 (that is, a neuron cell integrated circuit) to be described later.
  • a neuron cell circuit 220 for outputting data to be output to the outside of 200 is called an output terminal circuit.
  • the neuron cell circuits 220 excluding the output terminal circuits are hereinafter referred to as intermediate circuits. .
  • the neuron cell circuit 220 includes an input section 2201 that receives a plurality of data, an adder section 2202 that accumulates the data received by the input section 2201, and a storage section 2203, as illustrated in FIG.
  • the input unit 2201 has K input ports and receives input data through each input port. Input data need not be input to all of the K input ports, and input data may not be input to some of the input ports. In this case, an input port having no input data is connected to GND (ground level potential wiring), for example, so that the data input from this input port represents "0". .
  • GND ground level potential wiring
  • the adder section 2202 accumulates the input data input to the K input ports of the input section 2201 .
  • this adder section 2202 may perform accumulation by combining a plurality of 2-input adders, or may use a K-input adder.
  • the storage unit 2203 is configured including a memory element.
  • the memory element may be, for example, a non-volatile memory element such as a ROM, or may be a non-volatile or rewritable ReRAM. Additionally, volatile SRAM may be used.
  • a predetermined function value is stored in this storage unit 2303 .
  • a value of f(a ⁇ q) which is a value calculated using a predetermined function f, is stored (as an N-bit value) at memory address a of storage unit 2303 .
  • ⁇ q is not limited to this, and ⁇ q may be determined by other calculation methods as long as the value of the function f is output when the input values of Vmin to Vmax within the above range are input.
  • the storage unit 2203 uses the accumulation result output by the adder unit 2202 as address information, and outputs data representing the value stored in the memory address corresponding to the address information.
  • the function for calculating the value stored in the storage unit 2203 is a nonlinear function, such as a sigmoid function: , ReLU function, Step function: , a Swish function: , absolute value function, Gaussian function, tanh, sine function, cosine function, etc.
  • the storage unit 2203 of the neuron cell circuit 220 in one neuron cell integrated circuit 200 may store values calculated by different nonlinear functions. Further, values calculated by nonlinear functions having different parameters may be stored even if the nonlinear functions are of the same type.
  • the N-bit value data output from the storage unit 2203 is output to the outside of the neuron cell circuit 220 containing the storage unit 2203 .
  • connection circuit 230 inputs the output of the neuron cell circuit 220 as an intermediate circuit to another neuron cell circuit 220 .
  • This connection circuit 230 is provided, for example, between the output of the neuron cell circuit 220, which is the intermediate circuit, and the input of the other neuron cell circuit 220.
  • a switch that can be turned on and off by an instruction may be provided.
  • connection circuit 230 may be wired so that the output of one neuron cell circuit 220, which is an intermediate circuit, is input to a plurality of other neuron cell circuits 220.
  • connection circuit 230 having such a switch has a first wiring that arranges the outputs of the neuron cell circuit 220, which is an intermediate circuit, and a second wiring that is connected to the input terminal of the neuron cell circuit 220 on the side that can receive the input.
  • a first wiring that arranges the outputs of the neuron cell circuit 220, which is an intermediate circuit
  • a second wiring that is connected to the input terminal of the neuron cell circuit 220 on the side that can receive the input.
  • Output-side circuit 240 receives data output from neuron cell circuit 220, which is an output-end circuit, and transmits the received data to neuron cell integrated circuits 200 other than neuron cell integrated circuit 200 including output-side circuit 240 itself, Or output to the output circuit section 30 .
  • neuron cell circuits 220 included in one neuron cell integrated circuit 200 are arranged in a matrix of n rows and m columns, and n Neuron cell circuits 220 may each be configured to accept at least one N-bit data from input side circuit 210 .
  • At least one of the neuron cell circuits 220 in the second column receives the output from at least one of the neuron cell circuits 220 in the first column via the connecting circuit 230 as input data.
  • At least one of the neuron cell circuits 220 (corresponding to the i-th neuron cell circuit group) in the i-th column (where i+1 ⁇ m, i.e., an intermediate circuit) is connected via the connection circuit 230.
  • the output (of the i-th neuron cell circuit 220) is used as input data Output.
  • the m-th column neuron cell circuit 220 (corresponding to the output terminal circuit) outputs its output to the output side circuit 240 . In this case, n pieces of N-bit data are output to the output side circuit 240 .
  • the output circuit section 30 outputs to the outside the data output by the output side circuits 240 of at least one (here, n) neuron cell integrated circuits 200, which are output terminal circuits.
  • a crossbar switch or the like capable of switching wiring between the neuron cell circuits 220 is used as the connection circuit 230 of the information processing apparatus 1 .
  • the information processing apparatus 1 may be configured as a programmable software simulator using a CPU, GPU, FPGA, etc., and the following machine learning processing may be executed on this simulator.
  • the information processing device 1 of this example accepts a plurality of pairs of input data and corresponding data to be output as teacher data. Then, input data included in each set is sequentially input to the input circuit unit 10 for each set, and data output by the machine learning circuit 20 based on the input data is obtained through the output circuit unit 30, This obtained data is compared with the output data corresponding to the inputted input data.
  • the information processing apparatus 1 controls the switch of the connection circuit 230 in each neuron cell integrated circuit 200 included in the machine learning circuit 20 to perform machine learning when the previous input data is input.
  • the output of circuit 20 is set to be close to the output data corresponding to the input data.
  • This operation can be performed by a well-known method of reinforcement learning, such as A. Gaier, D. Ha, "Weight Agnostic Neural Networks", arXiv:1906.04358v2.
  • the information processing device 1 repeats this process for each set included in the teacher data to perform machine learning.
  • the information processing apparatus 1 reproduces the switch setting.
  • the first wiring and the second wiring may be connected.
  • the three-dimensional crossing can be realized by laminating each wiring layer with an insulator layer interposed therebetween, and the vias may be formed so as to penetrate this insulator layer.
  • the storage unit 2203 (mask ROM) in the neuron cell circuit 220 is configured using vias, and the connecting circuit 230 and the vias of the storage unit 2203 may be formed using the same mask. By doing so, the mask manufacturing cost can be reduced.
  • the information processing device 1 that performs the inference operation thus sets the switch of the connection circuit 230 in each neuron cell integrated circuit 200 included in the machine learning circuit 20 according to the settings optimized by the machine learning process. Therefore, the following processing is performed using the machine learning circuit 20 in a machine learning state.
  • the information processing apparatus 1 when the information processing apparatus 1 receives input data, it inputs the input data to the input circuit section 10 and obtains data output by the machine learning circuit 20 based on the input data via the output circuit section 30 .
  • the data output from the machine learning circuit 20 is the result of the above optimization, and the output data inferred based on the input data is obtained.
  • the non-linear functions that are the basis of the values held in the storage unit 2203 by the neuron cell circuits 220 in one neuron cell integrated circuit 200 may differ from each other.
  • a first type neuron cell circuit 220a having a first type storage unit 2203 for holding the output result of the first nonlinear function according to the input value, and the first nonlinear function corresponding to the input value.
  • a second type neuron cell circuit 220b having a second type storage unit 2203 that holds the output result of a second nonlinear function different from the neuron cell circuit 220b that holds values of multiple types of nonlinear functions such as 220 may be provided within one neuron cell integrated circuit 200 .
  • the neuron cell integrated circuit 200 when the neuron cell integrated circuit 200 includes neuron cell circuits 220 arranged in a matrix of n rows by m columns as illustrated in FIG. may include the first type neuron cell circuit 220a and the second type neuron cell circuit 220b.
  • the connection circuit 230 by setting the connection circuit 230, it is possible to switch the nonlinear function used in the inference process.
  • the nonlinearity of the neuron cell circuit 220 of the j-th column (j>i) (that is, the neuron cell circuit closer to the output side) is assumed to be higher on average than the neuron cell circuit 220 of the i-th column. It is also suitable to leave If the nonlinearity is a sigmoid function or a Swish function, the closer the value of the parameter a to 0, the lower the nonlinearity.
  • the neuron cell integrated circuit 200 stores a value based on the sigmoid function (or Swish function) in the storage unit 2203, but the values of the parameter a are different from each other (thus the nonlinear functions are different from each other).
  • the neuron cell circuits 220 arranged in n rows and m columns are included, the sum of the values of the parameter a of the sigmoid function (or Swish function) held by the i-th neuron cell circuit 220 holds j where j>i
  • a setting may be made so that the sum of the values of the parameter a of the sigmoid function (or Swish function) held by the neuron cell circuits 220 in the row is small.
  • each neuron cell circuit 220 included in the neuron cell integrated circuit 200 holds the value of the nonlinear function as a negative value.
  • the function for calculating the value stored in the storage unit 2203 is the sigmoid function, and if it is a Swish function, . . , and set a function obtained by multiplying the corresponding nonlinear function by ⁇ 1.
  • the input circuit unit 10 inverts each bit of data input from the outside and outputs the result to the machine learning circuit 20 .
  • the output circuit unit 30 inverts each bit of the data output from the machine learning circuit 20 and outputs the result.
  • connection circuits when the neuron cell integrated circuit 200 includes the neuron cell circuits 220 arranged in a matrix of n rows and m columns as illustrated in FIG.
  • the j-th (j>i) neuron cell circuit that is, closer to the output side) than the number of switches (wirings connected to each other) that are turned on in the connection circuit 230i connected to the i+1-th neuron cell circuit 220
  • the connection circuit 230j that connects the output of the neuron cell circuit 220 to the neuron cell circuit 220 of the j+1th column may be set so that the number of switches (wires connected to each other) that are turned on increases.
  • the number Ni of input signals received by the input units of the neuron cell circuits included in the i-th neuron cell circuit 220 is equal to the j-th column (j is a natural number equal to or greater than 1 where j>i) is smaller than the number of input signals Nj accepted by the input section of the neuron cell circuit 220 included in the group of neuron cell circuits 220 (corresponding to the j-th neuron cell circuit group).
  • the number of input signals accepted by the inputs of each neuron cell circuit may be set such that there are i and j.
  • the number of switches that can be turned on may be limited for the connection circuit 230 that connects the output of the intermediate circuit closer to the input side to the input of the next column.
  • a neuron cell integrated circuit 200 having neuron cell circuits 220 arranged in a matrix of n rows and 10 columns
  • the neuron cell circuits 220 included in the first eight columns and the output of the neuron cell circuits 220 in the next stage are input. is limited to 2 ⁇ n.
  • the number of switches connecting the neuron cell circuit 220 in the ninth column and its output to the input of the neuron cell circuit 220 in the next stage may not be limited. This configuration mimics the configuration of neurons in animals such as humans, in which neurons in later stages receive more signals and process higher-order features.
  • each neuron cell circuit 220 accumulates k pieces of input data, and stores the value of the nonlinear function stored at the address corresponding to this accumulated value in the storage unit 2203. I was planning to output.
  • the neuron cell circuit 220 of this embodiment may have the following configuration.
  • the neuron cell circuit 221 includes an input section 2201 that receives a plurality of data, and an adder section that accumulates the data received by the input section 2201. 2202' and a storage unit 2203'.
  • Components having the same configuration as the neuron cell circuit 220 are denoted by the same reference numerals, and descriptions thereof are omitted.
  • the adder unit 2202′ includes a first adder unit 2202a′ for accumulating L pieces (L ⁇ K) of K pieces of input data, and the remaining (KL) pieces of input data. and a second adder unit 2202b' for accumulating .
  • the adder section 2202' then outputs the accumulation result XA by the first adder section 2202a' and the accumulation result XB by the second adder section 2202b'.
  • the neuron cell integrated circuit 200 of the present embodiment can be obtained from a known deep learning neural network (DNN) that has already undergone machine learning.
  • switch settings (initial settings) of the coupling circuit 230 may be determined.
  • X1 and X3 are input to the input terminal (InA) capable of being multiplied by the weight of Wp, and (the weight to be multiplied is X2 and X4 which were negative) are connected so as to be input to the input terminal (InB) capable of being multiplied by the weight of Wm. That is, for example, if the previous stage is another neuron cell circuit 220, the switch setting of the connection circuit 230 is set accordingly.
  • the weight coefficient is assumed to be "0" and the output X5 of the preceding stage is not connected to anywhere. good too.
  • the neuron cell integrated circuit 200 should not receive the input of the data X5 from the outside (the wiring of the data X5 should not be connected to the neuron cell integrated circuit 200). back.
  • a neuron cell circuit 220 is selected according to the non-linear function it uses, and input from the previous stage is input to which input terminal of the selected neuron cell circuit 220 (or not input). ) are set based on weights that are machine learning results. Also, the positive and negative weights are set by weight statistics, which are machine learning results of the DNN.
  • an initial connection relationship between the neuron cell circuits 220 of the information processing device 1 of the present embodiment is set based on the existing DNN in a machine-learned state. Subsequently, the information processing apparatus 1 performs the already-described machine learning process to optimize the connectivity relationship. At this time, the weight values Wp and Wn may also be similarly optimized.
  • the initial value is determined based on the DNN that has already been machine-learned, so it is expected that the machine-learning process will be more efficient.
  • the neuron cell circuit 222 includes an input section 2201 that receives a plurality of data and an addition circuit that accumulates the data received by the input section 2201. 2202′, an arithmetic unit 2204, an addition unit 2205, a storage unit 2203′′, and an output unit 2206.
  • Components having the same configuration as the neuron cell circuits 220 and 221 are denoted by the same reference numerals. description is omitted.
  • the adder section 2202' outputs the accumulation result XA by the first adder section 2202a' and the accumulation result XB by the second adder section 2202b'.
  • the accumulation result XA and the accumulation result XB are signed binary numbers having the same number of bits (z bits for each).
  • Two operation units 2204 are provided corresponding to each of the accumulation result XA and the accumulation result XB, and each operation unit 2204 corresponds to, for example, the z-bit address value XA or XB.
  • It is a storage unit (memory such as ROM) that stores a value obtained by applying a predetermined nonlinear function to an address value at a memory address.
  • the value of the result of the nonlinear function is assumed to be a z-bit value, which is the bit width of the output data.
  • the calculation unit 2204 outputs the values of the nonlinear functions stored in the memory addresses respectively corresponding to the input accumulation results XA and XB.
  • this arithmetic unit 2204 may be realized by a shift arithmetic unit instead of a memory.
  • the calculation units 2204 corresponding to the accumulated results XA and XB perform arithmetic shift calculations in mutually different directions on the corresponding accumulated results XA and XB and output them. good too.
  • the bit width of the result of the arithmetic shift operation is set to a value of z bits, which is the bit width of the output data, and bits overflowing from the arithmetic shift operation are discarded.
  • the addition section 2205 adds the data output from the calculation section 2204 corresponding to the accumulation result XA and the accumulation result XB to obtain the addition result X of z bits.
  • the storage unit 2203′′ stores, for each z-bit memory address corresponding to the z-bit addition result X, a value obtained by applying a predetermined nonlinear function to the address value represented by the memory address.
  • the value of the result of the nonlinear function is a value of z bits, which is the bit width of the output data.
  • the storage unit 2203′′ outputs the value of the nonlinear function stored at the memory address corresponding to the input addition result X. .
  • the output unit 2206 externally outputs the value output by the storage unit 2203′′.
  • the output unit 2206 further applies a correction function to the output of the storage unit 2203′′ to add nonlinearity.
  • the result may be obtained by calculation, and the value after applying the correction function may be output.
  • neuron cell circuit 223 includes an input section 2201 that accepts multiple data, an adder section 2202'', a storage section 2203'', and an output section 2206, as illustrated in FIG. .
  • Components having the same configuration as the neuron cell circuits 220 and 221 are denoted by the same reference numerals, and description thereof is omitted.
  • the adder section 2202'' comprises a first adder section 2202a'', a second adder section 2202b'', an inverting section 2202N, and an adder section 2205.
  • the adder section 2202a'' includes: Among K pieces of input data, L pieces (L ⁇ K) of input data are accumulated.
  • the adder unit 2202b′′ accumulates the remaining (KL) pieces of input data.
  • the inverter unit 2202N inverts the positive/negative value output from the adder unit 2202b′′.
  • the storage unit 2203′′ stores a value obtained by applying a predetermined non-linear function to the address value represented by the memory address of each z-bit memory address corresponding to the z-bit addition result X.
  • the z-bit addition result X is represented by a signed binary number, the most significant bit is the sign bit, and the remaining z-1 bits represent the value.
  • the value of the result of the nonlinear function is assumed to be a z-bit value, which is the bit width of the output data.
  • the storage unit 2203′′ outputs the value of the nonlinear function stored in the memory address corresponding to the input addition result X.
  • the output unit 2206 externally outputs the value output by the storage unit 2203′′.
  • the output unit 2206 further applies a correction function to the output of the storage unit 2203′′ to add nonlinearity.
  • the result may be obtained by calculation, and the value after applying the correction function may be output.
  • the storage unit 2203′′ may be replaced with a predetermined arithmetic circuit. This is an example.
  • This Relu arithmetic circuit unit 2207 refers to the sign bit of the input value X (addition result X output by the adder unit 2202′′), and when the sign bit is “1” (negative), the input value Regardless, a z-bit long value representing "0" is output, and when the sign bit is "0" (positive), the input value X is output as is.
  • the hardware can be configured simply.
  • the Relu arithmetic circuit has been described as an example of the arithmetic circuit here, the present embodiment is limited to this. Any circuit that expresses a function (particularly a non-linear function) that can be implemented with simple hardware, such as a circuit that outputs the result of a HardSwish function, may be used.
  • the number of bits of the variable used for the addition operation in the adder section 2202 is set to M (M is an integer satisfying M>N), and the adder section 2202 performs M-bit accumulation. It is also possible to output the result.
  • the storage unit 2203 may store the value of the nonlinear function corresponding to the address value (this value is assumed to be N bits) in the M-bit address space.
  • the number of bits of a variable used for addition in adder section 2202 is set to M (M is an integer satisfying M>N).
  • M is an integer satisfying M>N.
  • the storage unit 2203 stores the value (N bits) of the nonlinear function corresponding to the address value in the N-bit address space.
  • the neuron cell circuit 220 configured in this way will produce the same output as that which has undergone average pooling.
  • the neuron cell circuit 220 included in the neuron cell integrated circuit 200 has a writable storage unit 2203 so that the values stored in the storage unit 2203 can be rewritten. It may be composed of elements and may have a configuration for accepting writing of values from the outside.
  • the nonlinear function used in the neuron cell circuit 220 can also be subject to machine learning.
  • a neuron cell circuit 220 (referred to as a rewritable neuron cell circuit) is, of the neuron cell circuits 220 arranged in n rows and m columns, the m-th column closest to the output side, or the m ⁇ It may be arranged only up to the q-th column (q ⁇ m).
  • the rewritable neuron cell circuits are arranged only in the first column close to the input side or only in the first to q columns (q ⁇ m).
  • non-rewritable neuron cell circuits 220 and rewritable neuron cell circuits 220 are mixed in one neuron cell integrated circuit 200, the number of rewritable neuron cell circuits 220 increases in the latter stage closer to the output. It is preferable to arrange the
  • each neuron cell circuit 220 may accept data input via a shift register circuit.
  • the machine learning circuit 20 is configured with at least one neuron cell integrated circuit 200, as illustrated in FIG.
  • the neuron cell integrated circuit 200 in this example includes an input side circuit 210, a plurality of neuron cell circuits 220 (abbreviated as NC in the figure), a shift register circuit section 250 provided for each neuron cell circuit 220, It includes a clock circuit 260 , a connection circuit 230 and an output side circuit 240 .
  • the shift register circuit section 250 accepts input of data at predetermined timings, and holds data input over a predetermined number of times (eg, q times) in the past. Further, the shift register circuit section 250 outputs at least part of the held data for q times to the neuron cell circuit 220 or the like connected in the subsequent stage at the predetermined timing.
  • the shift register circuit section 250 includes an input terminal 2501, q (q is a natural number equal to or greater than 1) shift registers (abbreviated as SR in the drawing) 2502, and an output terminal 2501. terminal 2503.
  • the shift register 2502 has an input terminal IN for receiving P-bit data (P is a natural number of 1 or more) from the input side circuit 210 or the connection circuit 230, an output terminal OUT for outputting the P-bit data, and a clock signal. and an input terminal CLK of When q>1, the plurality of shift registers 2502a, b, . . . are connected in series in multiple stages. Further, when the plurality of shift registers 2502a, 2502b, .
  • the input terminal 2501 of the shift register circuit section 250 receives P-bit data input from the input side circuit 210 or the connection circuit 230, and outputs it to the input terminal IN of the shift register 2502 (if there are more than one, the shift register 2502a of the first stage). do.
  • the shift register 2502 temporarily holds the P-bit data input to the input terminal IN when receiving the input of the clock signal. When the shift register 2502 receives the input of the clock signal, it outputs the previously held data from the output terminal OUT. Since there is no data to be held immediately after power-on, the shift register 2502 initializes each bit of the data to be held to a predetermined value such as "0".
  • the output terminal OUT of this shift register 2502 is connected to the input terminal IN of the shift register 2502 in the latter stage when there is a shift register 2502 in the latter stage, and is connected to the input terminal IN of the shift register 2502 in the latter stage when there is no shift register 2502 in the latter stage (it is the last shift register). case), its output terminal OUT is connected to the output terminal 2503 of the shift register circuit section 250 .
  • the shift register circuit unit 250 temporarily holds the P-bit data input q times in the past, and outputs the data held q times before.
  • the shift registers 2502 connected in multiple stages, at least some of the shift registers 2502 that are not in the last stage (that is, in the first and intermediate stages) have their output terminals OUT connected to the shift registers 2502 in the latter stage. may be connected not only to the input terminal IN of the shift register circuit section 250 but also to the output terminal 2503 of the shift register circuit section 250 .
  • the data held q times before, the data held q ⁇ 1 times before, and the data held last time are output.
  • the input terminal 2501 of the shift register circuit section 250 may be connected to the input terminal IN of the first-stage shift register 2502a and may also be connected directly to the output terminal 2503 of the shift register circuit section 250. . 9, the input terminal 2501 of the shift register circuit section 250 is connected only to the input terminal IN of the first-stage shift register 2502a, and the output terminals OUT of the first-stage and intermediate-stage shift registers 2502a and 2502b are connected. It is assumed that they are connected to the input terminals IN of the shift registers 2502 b and 2502 c in the latter stage and also connected to the output terminal 2503 of the shift register circuit section 250 .
  • the output terminal OUT of the last-stage shift register 2502 c is connected to the output terminal 2503 of the shift register circuit section 250 . That is, in this example, the output terminal 2503 of the shift register circuit section 250 outputs (P ⁇ 3)-bit data.
  • the data output from this output terminal 2503 is output to the neuron cell circuit 220 corresponding to this shift register circuit section 250 . It is assumed that the bit width of data that can be input to the input port of the corresponding neuron cell circuit 220 is equal to or greater than the bit width that the corresponding shift register circuit section 250 outputs. Specifically, if each neuron cell circuit 220 has K N-bit input ports (K ⁇ N-bit input ports in total), then in the above example, K ⁇ N ⁇ P x3 is sufficient.
  • the clock circuit 260 outputs a clock signal (pulse signal) that alternately repeats the “H” state and the “L” state at predetermined clock timings to the clock signal input terminal CLK of each shift register 2502 . do.
  • a crossbar switch or the like that can switch wiring is used as the connection circuit 230 at the time of machine learning.
  • the information processing apparatus 1 accepts a plurality of sets of input data and corresponding data to be output as teacher data. Then, the information processing device 1 sequentially executes the following machine learning processing for each pair.
  • the information processing apparatus 1 sequentially inputs the divided input data di to the input circuit section 10 at predetermined clock timings.
  • the input circuit section 10 outputs the divided input data di to the neuron cell integrated circuit 200 each time the divided input data di is input.
  • the input side circuit 210 of the neuron cell integrated circuit 200 further divides the input divided input data di into data of each P bits, and outputs each of the P bits of data to the corresponding shift register circuit section 250. .
  • the neuron cell integrated circuit 200 has three sets of pairs of shift register circuit units 250 and corresponding neuron cell circuits 220 in two stages, and a connecting circuit 230 is arranged between each stage. and Of course, this is only an example, and more sets of shift register circuit portions 250 and corresponding neuron cell circuits 220 and more coupling circuits 230 may be included. Further, in the following example, the shift register circuit unit 250 is provided with q shift registers 2502 (where q is a natural number equal to or greater than 1).
  • the three shift register circuit units 250a in the first stage receive P-bit data input from the input circuit unit 10 respectively.
  • Each shift register circuit unit 250a holds the P-bit data input q times in the past, and q-1 P-bit data (( q ⁇ 1) ⁇ P-bit data) is output to the neuron cell circuit 220a corresponding to this shift register circuit section 250a at each clock timing.
  • this neuron cell circuit 220a accumulates input (q ⁇ 1) ⁇ P-bit data and stores it in its storage element 2203. , outputs data representing the value of the function corresponding to the result of the accumulation.
  • This output data is output to the subsequent shift register circuit section 250b via the connection circuit 230.
  • the subsequent stage shift register circuit section 250b also holds the P-bit data input q times in the past, and also holds q ⁇ 1 P-bit data input from the previous q times to the previous time. ((q ⁇ 1) ⁇ P-bit data) is output to the neuron cell circuit 220b corresponding to this shift register circuit section 250b at each clock timing. Then, the neuron cell circuit 220b that receives the input of the data accumulates the input (q ⁇ 1) ⁇ P-bit data, and the function corresponding to the accumulation result stored in the storage element 2203 is Outputs data representing the value of .
  • the information processing device 1 obtains the data output by the last-stage neuron cell circuit 220b via the output circuit section 30, and compares the obtained data with the output data corresponding to the inputted input data.
  • the information processing apparatus 1 controls the switch of the connection circuit 230 in the neuron cell integrated circuit 200 so that the output of the machine learning circuit 20 when the previous input data is input is the input Set by the well-known reinforcement learning methods already mentioned, e.g. A. Gaier, D. Ha, "Weight Agnostic Neural Networks", arXiv:1906.04358v2, to be close to the output data corresponding to the data can do.
  • the information processing device 1 repeats the above processing for each set included in the teacher data to execute machine learning.
  • Such an information processing device 1 can be suitably used, for example, when performing machine learning on image data. That is, when performing machine learning on image data, the information processing apparatus 1 uses the image data as input data as illustrated in FIG.
  • the input data is divided into line blocks including the input data, and the line blocks for every r rows are sequentially input to the input circuit unit 10 at predetermined clock timings.
  • the input circuit section 10 inputs line blocks from the 1st to r-th lines at the first clock timing as divided input data, and inputs line blocks from the (r+1)-th to 2r-th lines at the next clock timing. . . , and outputs the data of the received line block to the neuron cell integrated circuit 200.
  • the input side circuit 210 of the neuron cell integrated circuit 200 converts the input line block into r.times.s pixels (the above P bits) including s columns (s is a natural number of 1 or more) or more pixel columns. ), and output to the neuron cell circuit 220 via the corresponding shift register circuit section 250 for each block.
  • machine learning is performed on image data for each of q (the number of stages of the shift register 2502) line blocks adjacent to each other in the vertical direction of the image.
  • a neuron cell circuit 220 is provided for each channel (for example, color component data such as red (R), green (G), blue (B), and alpha channel (transparency, etc.)) to process each in parallel.
  • the information processing apparatus 1 fixes the switch of the connection circuit 230 in each neuron cell integrated circuit 200 included in the machine learning circuit 20 in an optimized (machine learning) state by the above-described machine learning processing, and then performs inference. process. Since the method of fixing the switch here can employ the method already explained, the repeated explanation will be omitted.
  • the information processing device 1 that performs the inference operation is in a state in which the switch of the connection circuit 230 in each neuron cell integrated circuit 200 included in the machine learning circuit 20 is set according to the settings optimized by the machine learning process. Inference is processed as follows. In the following, it is assumed that the machine learning circuit 20 has the same configuration as the machine learning circuit 20 used in the machine learning process described above.
  • the input circuit section 10 outputs the divided input data di to the neuron cell integrated circuit 200 each time the divided input data di is input.
  • the input side circuit 210 of the neuron cell integrated circuit 200 further divides the input divided input data di into data of each P bits, and outputs each of the P bits of data to the corresponding shift register circuit section 250. .
  • the three shift register circuit units 250a in the first stage receive the input of P-bit data from the input circuit unit 10 respectively.
  • Each shift register circuit unit 250a holds the P-bit data input q times in the past, and q-1 P-bit data (( q ⁇ 1) ⁇ P-bit data) is output to the neuron cell circuit 220a corresponding to this shift register circuit section 250a at each clock timing.
  • this neuron cell circuit 220a Since the neuron cell circuit 220 is exemplified in FIG. 3, this neuron cell circuit 220a accumulates input (q ⁇ 1) ⁇ P-bit data and stores it in its memory element 2203. It also outputs data representing the value of the function corresponding to the accumulation result.
  • This output data is output to the subsequent shift register circuit section 250b via the connection circuit 230.
  • the subsequent stage shift register circuit section 250b also holds the P-bit data input q times in the past, and also holds q ⁇ 1 P-bit data input from the previous q times to the previous time. ((q ⁇ 1) ⁇ P-bit data) is output to the neuron cell circuit 220b corresponding to this shift register circuit section 250b at each clock timing. Then, the neuron cell circuit 220b that receives the input of the data accumulates the input (q ⁇ 1) ⁇ P-bit data, and the function corresponding to the accumulation result stored in the storage element 2203 is Outputs data representing the value of .
  • the information processing device 1 obtains data output from the last-stage neuron cell circuit 220b via the output circuit section 30. This data is the result of the optimization described above, and is output data inferred based on the input data.
  • the shift register circuit unit 250 is arranged in the preceding stage of the corresponding neuron cell circuit 220, but as illustrated in FIG. 11 corresponding to FIG. 8, the shift register circuit unit 250 It may be arranged after the corresponding neuron cell circuit 220 .
  • the connection circuit 230 is connected to the k ⁇ P-bit data (where k is 1 or more) output by the shift register circuit section 250.
  • time-series data such as voice and vibration
  • data expressing spatially spread information such as images are temporally and spatially adjacent to each other or Machine learning and inference processing using data related to a plurality of adjacent points becomes possible, and there is no need to provide a neuron cell circuit 220 corresponding to each of a plurality of points that are temporally and spatially adjacent or close to each other. Therefore, an increase in circuit scale can be suppressed.
  • the neuron cell circuit 220 has been used.
  • 223 may be used.
  • connection circuit 230 has been described as an example in which a crossbar switch or the like is used at the time of machine learning, and corresponding wiring is connected with vias or the like after the completion of machine learning, but the present embodiment is limited to these examples. do not have.
  • the connection circuit 230 includes a first wiring 2301 that arranges the outputs (wiring rows corresponding to each bit) of the neuron cell circuit 220 in the previous stage, crosses the second wiring 2302 (wiring row corresponding to each bit of the input data) connected to the input terminal of the neuron cell circuit 220 of the subsequent stage, which is the side that can receive the input of the data output by the neuron cell circuit 220 of and switch circuits 2303 using storage elements may be arranged at all intersections of the first wirings 2301 corresponding to the respective bits and the second wirings 2302 corresponding to the respective bits. .
  • This switch circuit 2303 is in either a state in which the wiring A corresponding to a certain bit of the corresponding first wiring 2301 and the wiring B corresponding to a certain bit in the second wiring 2302 are conducted or not conducted. state. This state is switched by an instruction from the outside.
  • the switch circuit 2303 may include a non-volatile memory (NVM) cell 2303C such as ReRAM and an FET 2303Q as a switch.
  • NVM non-volatile memory
  • wirings A and B are connected to the source terminal (S) and drain terminal (D) of the FET 2303Q, respectively, and the bit line of the nonvolatile memory cell (2303C) is connected to the gate terminal (G). .
  • This non-volatile memory cell 2303C is switched by a signal input from the outside to perform a set operation or a reset operation, and changes the H and L states of the signal output via the bit line. Since the operation and switching method of such a nonvolatile memory cell 2303C are widely known, description thereof will be omitted here.
  • the FET 2303Q electrically connects the wirings A and B by conducting between the source terminal and the gate terminal when the signal output via the bit line of the nonvolatile memory cell 2303C is H, for example.
  • the FET 2303Q cuts off conduction between the source terminal and the gate terminal when the signal output via the bit line of the nonvolatile memory cell 2303C is L, for example, to electrically connect the wirings A and B.
  • the switch circuit 2303 may be configured using a volatile memory cell 2303S such as SRAM, as illustrated in FIG. 13(b).
  • a volatile memory cell 2303S such as SRAM
  • the operation of the switch circuit 2303 using this volatile memory cell 2303S is basically the same as that illustrated in FIG. Points are different.
  • the information processing apparatus 1 can be used for various purposes.
  • connection circuit 230 when the connection circuit 230 is configured using memory elements, the memory unit 2203 of the neuron cell circuit 220 is also configured using the same type of memory elements. You can do it.
  • the neuron cell circuit 220 has been used.
  • 223 may be used.
  • the neuron cell integrated circuit 200 may be implemented as a chip by forming a chip die D on which the neuron cell circuit 220 of this embodiment is arranged. Furthermore, as shown in FIG. 14, the chip dies D are stacked on the package substrate S with the input side I and the output side O alternately arranged to seal a plurality of neuron cell integrated circuits 200 in one package. good too.
  • the package may further include other chip parts, such as a CPU module, GPU, and conventional AI (such as deep learning) chips.
  • the corresponding part may constitute machine learning means for receiving and processing the output of the neuron cell circuit 220 of the present embodiment.
  • the machine learning means configured by the CPU module or the like may further perform machine learning.
  • 1 information processing device 10 input circuit unit 20 machine learning circuit 30 output circuit unit 200 neuron cell integrated circuit 210 input side circuit 220, 221, 222, 223 neuron cell circuit 230 connection circuit 240 output side circuit , 250 shift register circuit portion, 2201 input portion, 2202, 2202′ adder portion, 2203, 2203′, 2203′′ storage portion, 2204 operation portion, 2205 addition portion, 2206 output portion.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Logic Circuits (AREA)

Abstract

複数のニューロンセル回路を含む機械学習回路20であって、このニューロンセル回路が、複数の入力信号を受け入れる入力部2201と、入力部2201が受け入れた入力信号を加算する加算器部2202と、各入力値に応じた非線形関数の出力結果を保持し、加算器部2202が出力する出力信号を入力値として、当該入力値に応じた非線形関数の出力結果を出力する記憶部2203と、を含む。 (選択図)図3

Description

機械学習回路及び情報処理装置
 本発明は、機械学習回路及び情報処理装置に関する。
 近年一般的なニューラルネットワーク回路では、ニューロンを模した回路を複数利用しており、この回路はそれぞれ、複数の入力信号のそれぞれに対応する重みを乗じ、当該重みを乗じた結果を累算し、活性化関数により非線形変換して出力するという動作を行っている。
 このとき、重みやニューロンを模した回路間の接続性の機械学習は、重みの記憶や読み出し、入力信号に対する積和演算などのコストが大きいことから、効率的な機械学習を行う方法が種々研究されている(非特許文献1)。
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に例示するように、入力回路部10と、少なくとも一つの機械学習回路20と、出力回路部30とを含んで構成される。
 入力回路部10は、外部から入力されたデータを機械学習回路20に出力する。ここで入力されるデータは、複数(例えばK個、KはK>1なる整数)のNビット(Nは1以上の自然数)のデータであるものとする。
 機械学習回路20は、少なくとも一つのニューロンセル集積回路200を具備して構成される。ここでニューロンセル集積回路200は、図2に例示するように、入力側回路210と、複数のニューロンセル回路220(図中ではNCと略記する)と、連結回路230と、出力側回路240とを含む。
 入力側回路210は、入力回路部10または他のニューロンセル集積回路200(入力側回路210自身が含まれるニューロンセル集積回路200以外のニューロンセル集積回路200)が出力するK個のNビットのデータ(全体でK×Nビットのデータ)を受け入れる。
 入力側回路210は、受け入れたデータを、同じニューロンセル集積回路200内に存在する複数のニューロンセル回路220の少なくとも一部に対して出力する。なお、このとき、入力側回路210は、データの出力先としたニューロンセル回路220のそれぞれに、上記K個のデータを出力する必要はなく、K個のデータのうちから出力先ごとに選択したデータを、対応するニューロンセル回路220に出力するようにしてもよい。
 一例として、入力側回路210がデータの出力先とするニューロンセル回路220が、4つあり、それぞれを第1のニューロンセル回路220a,第2のニューロンセル回路220b…と称することとし、またK=16である場合、入力側回路210は次のように動作してもよい。すなわち本実施の形態のある例では入力側回路210は、第1から第4番目のNビットのデータ(全体で4×Nビットのデータ)を、上記4つのニューロンセル回路220a,b,c,dのうち、第1のニューロンセル回路220aに出力する。また、入力側回路210は、第5から第8番目のNビットのデータを、第2のニューロンセル回路220bに出力する…といったように、入力側回路210は、受け入れたデータを、それぞれ4個のNビットのデータに分割して、それぞれ対応するニューロンセル回路220に出力することとしてもよい。
 以下の説明では、このように入力側回路210から直接データの入力を受けるニューロンセル回路220を入力端回路と呼び、後に説明する出力側回路240に、データを直接出力する(つまりニューロンセル集積回路200外部に出力されるデータを出力する)ニューロンセル回路220を出力端回路と呼ぶ。さらにニューロンセル集積回路200が備えるニューロンセル回路220のうち、出力端回路を除くニューロンセル回路220(つまり、その出力が他のニューロンセル回路220に出力され得るもの)を、以下では中間回路と呼ぶ。
 ニューロンセル回路220は、図3に例示するように、複数のデータを受け入れる入力部2201と、入力部2201が受け入れたデータを累算する加算器部2202と、記憶部2203とを含む。
 具体的に入力部2201は、K個の入力ポートを有し、各入力ポートを介して入力データを受け入れる。なお、K個の入力ポートのすべてに入力データが入力される必要はなく、一部の入力ポートには入力データが入力されない状態となっていてもよい。この場合、当該入力データのない入力ポートは、例えばGND(グランドレベルの電位の配線)に接続するなどして、この入力ポートから入力されるデータが「0」を表すものとなるようにしておく。
 加算器部2202は、入力部2201のK個の入力ポートに入力された入力データを累算する。この加算器部2202は、例えば、図3に例示したように、2入力の加算器を複数組み合わせて累算を実行してもよいし、K入力の加算器を利用してもよい。
 また記憶部2203は、メモリ素子を含んで構成される。ここでメモリ素子は、例えば不揮発性の、ROMなどのメモリ素子であってもよいし、不揮発性のものであっても、書き換え可能なReRAMであってもよい。さらに、揮発性のSRAMが用いられてもよい。
 この記憶部2303には、所定の関数値を格納しておく。具体的に記憶部2303のメモリアドレスaには、所定の関数fを用いて演算される値である、f(a・Δq)の値を(Nビットの値として)格納しておく。ここでΔqは、例えば加算器部2202が出力し得る最大の値Vmaxと、最小の値Vmin、及び関数fの定義域xmin,xmax(ただしxmin<xmax)を用いて、
Δq=(xmax-xmin)/(Vmax-Vmin)
として求めたものである。もっともΔqの演算はこれに限られず、上記範囲であるVminからVmaxの入力値を入力したときに、関数fの値が出力されれば、他の演算方法でΔqを定めても構わない。あるいは、Δq=1となるように、関数fの定義域xmin,xmaxを設定してもよい。このように記憶部2203には、各入力値に応じた所定の関数の出力結果が保持された状態となっている。
 記憶部2203は、加算器部2202が出力する累算の結果をアドレス情報として、当該アドレス情報に対応するメモリアドレスに格納されている値を表すデータを出力する。
 本実施の形態の例では、この記憶部2203に格納されている値を演算するための関数は、非線形関数であり、例えばシグモイド関数:
Figure JPOXMLDOC01-appb-M000001
、ReLU関数、Step関数:
Figure JPOXMLDOC01-appb-M000002
、Swish関数:
Figure JPOXMLDOC01-appb-M000003
、絶対値関数、ガウス関数、tanh、正弦関数、余弦関数などから選択された関数とする。また一つのニューロンセル集積回路200内に存在するニューロンセル回路220の記憶部2203が、互いに異なる非線形関数によって演算される値を格納していてもよい。また、同じ種類の非線形関数であってもパラメータが互いに異なる非線形関数によって演算される値を格納していてもよい。
 具体的に同じシグモイド関数
Figure JPOXMLDOC01-appb-M000004
であっても、あるニューロンセル回路220の記憶部2203には、a=3であるときのシグモイド関数の値が格納され、同じニューロンセル集積回路200内の別のニューロンセル回路220の記憶部2203には、a=0.3であるときのシグモイド関数の値が格納されていてもよい。
 この記憶部2203の出力するNビットの値のデータは、当該記憶部2203を内蔵するニューロンセル回路220の外部に出力される。
 連結回路230は、中間回路であるニューロンセル回路220の出力を、他のニューロンセル回路220に入力する。この連結回路230は、例えば機械学習の結果を表す既定の配線、あるいは、上記中間回路であるニューロンセル回路220の出力と、他のニューロンセル回路220の入力との間に設けられ、外部からの指示によりオン・オフ可能なスイッチを備えてもよい。
 ここで連結回路230は、中間回路である一つのニューロンセル回路220の出力を、他の複数のニューロンセル回路220に入力するよう配線されていてもよい。
 このようなスイッチを備えた連結回路230は、中間回路であるニューロンセル回路220の出力を配列した第1の配線と、入力を受け入れ得る側のニューロンセル回路220の入力端子に接続された第2の配線とを交差させ、交差した位置にそれぞれスイッチを配した公知のクロスバスイッチによって実現できる。なお、図2では図示の都合上、スイッチを省略している。
 出力側回路240は、出力端回路であるニューロンセル回路220が出力するデータを受け入れて、当該受け入れたデータを、出力側回路240自身が含まれるニューロンセル集積回路200以外のニューロンセル集積回路200、または出力回路部30に出力する。
 本実施の形態の一例では、図2に示したように、1つのニューロンセル集積回路200に含まれるニューロンセル回路220はn行m列のマトリクス状に配され、第1列目のn個のニューロンセル回路220が、それぞれ入力側回路210から少なくとも一つのNビットのデータを受け入れるよう構成されていてもよい。
 この例では、第2列目のニューロンセル回路220の少なくとも一つは、連結回路230を介して、第1列目のニューロンセル回路220の少なくとも一つから、その出力を、入力データとして受け入れる。
 以下、第i列目の(ただしi+1<mとする。すなわち中間回路である)ニューロンセル回路220(第i番目のニューロンセル回路群に相当する)の少なくとも一つは、連結回路230を介して、第i+1列目のニューロンセル回路220(第i番目のニューロンセル回路群に相当する)の少なくとも一つに対して、その(第i列目のニューロンセル回路220の)出力を、入力データとして出力する。また、第m列目ニューロンセル回路220(出力端回路に相当する)は、その出力を、出力側回路240に出力する。この場合、出力側回路240には、n個の、Nビットのデータが出力される。
 そして出力回路部30は、出力端回路である少なくとも一つの(ここではn個の)ニューロンセル集積回路200の出力側回路240が出力するデータを外部に出力する。
[機械学習時の動作]
 本実施の形態では、機械学習時には、例えば情報処理装置1の連結回路230としてクロスバスイッチなど、ニューロンセル回路220間の配線の切り替えが可能なものを用いる。あるいは、情報処理装置1をCPU,GPU、FPGAなどを用い、プログラム可能なソフトウエア的なシミュレータとして構成し、このシミュレータ上で以下の機械学習の処理を実行してもよい。
 この例の情報処理装置1は、入力データと、それに対応して出力するべきデータとの組を複数、教師データとして受け入れる。そして各組について順次、当該組に含まれる入力データを、入力回路部10に入力し、当該入力した入力データに基づき機械学習回路20が出力するデータを、出力回路部30を介して得て、この得られたデータと、入力した入力データに対応する出力データとを比較する。
 情報処理装置1は、この比較の結果に基づいて、機械学習回路20に含まれる各ニューロンセル集積回路200内の連結回路230のスイッチを制御して、先の入力データを入力したときの機械学習回路20の出力が、当該入力データに対応する出力データに近接することとなるよう設定する。この動作は、広く知られている強化学習の方法、例えばA. Gaier, D. Ha,"Weight Agnostic Neural Networks", arXiv:1906.04358v2により行うことができる。
 情報処理装置1は、この処理を、教師データに含まれる各組について繰り返して行い、機械学習を実行する。
[推論時の動作]
 情報処理装置1は、上記のような機械学習処理により、機械学習回路20に含まれる各ニューロンセル集積回路200内の連結回路230のスイッチの設定が最適化されると、当該スイッチの設定を再現するよう配線を固定してもよい。このような配線固定は、例えば連結回路230によって連結され得るニューロンセル回路220のうち、連結回路230が出力データを受け入れるニューロンセル回路220の出力を配列した第1の配線を配列した層と、入力を受け入れ得る側のニューロンセル回路220の入力端子に接続された第2の配線を配列した層とを立体的に交差させ、連結するべき配線の交差した位置にビアを配して、対応する第1の配線と第2の配線とを連結することとすればよい。なお、立体的な交差は絶縁体層を介して各配線層を積層配置することで実現でき、ビアはこの絶縁体層を貫通して形成すればよい。
 なお、後に説明するように、本実施の形態のニューロンセル集積回路200をチップ化する場合、ニューロンセル回路220内の記憶部2203(マスクROM)を、ビアを用いて構成し、この連結回路230を構成するビアと、当該記憶部2203のビアとを同一のマスクで作成することとしてもよい。このようにすると、マスク製造コストを低減できる。
 推論の動作を行う情報処理装置1は、このように、機械学習処理により最適化された設定通りに、機械学習回路20に含まれる各ニューロンセル集積回路200内の連結回路230のスイッチを設定することで、機械学習した状態となっている機械学習回路20を用いて、次の処理を行う。
 すなわち情報処理装置1は、入力データを受け入れると、入力回路部10に入力し、当該入力した入力データに基づき機械学習回路20が出力するデータを、出力回路部30を介して得る。この機械学習回路20の出力するデータは、上記最適化を行った結果となっており、入力データに基づいて推論された出力データが得られていることとなる。
[複数種類の非線形関数]
 既に述べたように、一つのニューロンセル集積回路200内のニューロンセル回路220がその記憶部2203に保持する値のもととなった非線形関数が、互いに異なっていてもよい。
 すなわち、入力値に応じた第1の非線形関数の出力結果を保持する第1種の記憶部2203を備えた第1種ニューロンセル回路220aと、入力値に応じた、上記の第1の非線形関数とは異なる第2の非線形関数の出力結果を保持する第2種の記憶部2203を備えた第2種ニューロンセル回路220bと…というように、複数種類の非線形関数の値を保持したニューロンセル回路220が一つのニューロンセル集積回路200内に備えられていてもよい。
 さらに本実施の形態において、ニューロンセル集積回路200が図2に例示したように、n行m列のマトリクス状に配したニューロンセル回路220を備える場合、少なくとも一つの列に含まれるニューロンセル回路220の群に、上記第1種ニューロンセル回路220aと、第2種ニューロンセル回路220bとを含んでもよい。この例では、連結回路230の設定により、推論の処理において利用する非線形関数を切り替えることが可能となる。
 また、この例では、i列目のニューロンセル回路220よりもj列目(j>i)のニューロンセル回路(すなわちより出力側に近いニューロンセル回路)220の非線形性を平均的に高いものとしておくことも好適である。非線形性はシグモイド関数やSwish関数であれば、パラメータaの値を0に近くするほど非線形性が低くなる。
 そこで例えばニューロンセル集積回路200が、いずれも記憶部2203にシグモイド関数(またはSwish関数)に基づく値を格納しているが、そのパラメータaの値が互いに異なる(従って非線形関数が互いに異なる)複数のn行m列に配列されたニューロンセル回路220を含む場合、i列目のニューロンセル回路220が保持するシグモイド関数(またはSwish関数)の上記パラメータaの値の総和よりも、j>iなるj列目のニューロンセル回路220が保持するシグモイド関数(またはSwish関数)の上記パラメータaの値の総和が小さくなるよう設定することとしてもよい。
[負論理とする例]
 また、一般に論理回路では、負論理とすることで回路を簡易化できることから、ニューロンセル集積回路200を負論理で構成してもよい。この場合、ニューロンセル集積回路200に含まれる各ニューロンセル回路220の記憶部2203は、保持する非線形関数の値を負の値とする。
 すなわち、記憶部2203に格納されている値を演算するための関数を、シグモイド関数とする場合は、
Figure JPOXMLDOC01-appb-M000005
とし、Swish関数とする場合は、
Figure JPOXMLDOC01-appb-M000006
…というように、対応する非線形関数に-1を乗じた関数を設定する。
 またこの例では、入力回路部10は、外部から入力されたデータについて、その各ビットを反転して機械学習回路20に出力する。そして出力回路部30は機械学習回路20が出力するデータについて、その各ビットを反転して出力する。
[連結回路における制限]
 さらに本実施の形態において、ニューロンセル集積回路200が図2に例示したように、n行m列のマトリクス状に配したニューロンセル回路220を備える場合、i列目のニューロンセル回路220の出力をi+1列目のニューロンセル回路220に接続する連結回路230iにおいてオンとなるスイッチ(互いに連結される配線)の数よりも、j列目(j>i)のニューロンセル回路(すなわちより出力側に近いニューロンセル回路)220の出力をj+1列目のニューロンセル回路220に接続する連結回路230jにおいてオンとなるスイッチ(互いに連結される配線)の数が多くなるよう設定してもよい。
 つまり、第i列目のニューロンセル回路220(第i番目のニューロンセル回路群に相当する)に含まれるニューロンセル回路の入力部が受け入れる入力信号の数Niが、第j列目(jは、j>iなる1以上の自然数)のニューロンセル回路220(第j番目のニューロンセル回路群に相当する)群に含まれるニューロンセル回路220の入力部が受け入れる入力信号の数Njより小さい値となるi,jが存在するよう、各ニューロンセル回路の入力部が受け入れる入力信号の数が設定されてもよい。
 言い換えれば、より入力側に近い中間回路の出力を、次列の入力に連結する連結回路230についてはオンとすることのできるスイッチの数を制限してもよい。
 例えば、n行10列のマトリクス状に配したニューロンセル回路220を備えるニューロンセル集積回路200では、最初の8列に含まれるニューロンセル回路220と、その出力から次段のニューロンセル回路220の入力とを接続するスイッチの数を、2×n個に限定する。そして9列目のニューロンセル回路220と、その出力から次段のニューロンセル回路220の入力とを接続するスイッチの数については限定しないようにしてもよい。この構成は、後段のニューロンほど、より多くの信号を受け取って高次の特徴を処理するという人間等の動物のニューロンの構成を模倣したものである。
[記憶部への入力を2系統とする例]
 また、本実施の形態では、各ニューロンセル回路220は、入力されたk個のデータを累算して、記憶部2203の、この累算値に対応するアドレスに格納された非線形関数の値を出力することとしていた。しかしながら本実施の形態のニューロンセル回路220は、次の構成としてもよい。
 すなわち、本発明の実施の形態の一例に係るニューロンセル回路221は、図4に例示するように、複数のデータを受け入れる入力部2201と、入力部2201が受け入れたデータを累算する加算器部2202′と、記憶部2203′とを含む。なお、ニューロンセル回路220と同様の構成となるものについては同じ符号を付して説明を省略する。
 加算器部2202′は、K個の入力データのうち、L個(L<K)の入力データを累算する第1の加算器部2202a′と、残りの(K-L)個の入力データを累算する第2の加算器部2202b′とを備える。
 そしてこの加算器部2202′は、第1の加算器部2202a′による累算結果XAと、第2の加算器部2202b′による累算結果XBとを出力する。
 記憶部2203′は、累算結果XAと累算結果XBとに互いに異なる重みを乗じたときの非線形関数の値を出力するよう、対応するアドレスに当該非線形関数の値を保持する。すなわち、非線形関数としてSwish関数を用いる場合、ここで累算結果XAに乗じる重みをWp、累算結果XBに乗じる重みをWmとして、記憶部2203′のアドレスX(例えばXA,XBのビット数がそれぞれ8であれば、上位8ビットにXA,下位8ビットにXBを配して得られた値X)に、
Figure JPOXMLDOC01-appb-M000007
なる値を書き込んでおく。なお、この例でも負論理とする場合は、この関数に-1を乗じた関数の値を格納しておくこととすればよい。またここで、Wp=1,Wm=-1としておいてもよい。
[一般的なディープラーニングネットワークからの変換]
 またこのように、Wp,Wmといった正負の重みを乗じることを可能とした場合、既知の、既に機械学習した状態にあるディープラーニングニューラルネットワーク(DNN)から、本実施の形態のニューロンセル集積回路200の連結回路230のスイッチの設定(初期設定)を決定してもよい。
 すなわち、機械学習した状態にあるDNNのある層のニューロン間の重みが、各入力データX1,X2,X3,X4,X5についてそれぞれW1=0.08,W2=-0.24,W3=-0.18,W4=0.14,W5=0.001であるとし、これらの積和W1・X1+W2・X2+W3・X3+W4・X4+W5・X5に対して非線形関数として、
Figure JPOXMLDOC01-appb-M000008
(a=1,b=1のSwish関数)であるとするときには、Swish関数に基づく値を記憶部2203に格納しているニューロンセル回路220の入力端子に、前段の回路(入力側回路210または他のニューロンセル回路220)から入力されるデータを入力する。特に、前段の回路から入力されるデータのうち、(乗じられる重みが正であった)X1,X3についてはWpの重みを乗じることのできる入力端子(InA)に入力し、(乗じられる重みが負であった)X2,X4についてはWmの重みを乗じることのできる入力端子(InB)に入力することとなるよう接続する。つまり、例えば前段が他のニューロンセル回路220であれば連結回路230のスイッチ設定をそのように設定する。
 なお、DNNにおいて重みの係数が予め定めたしきい値(ここでは0.01とする)未満であるX5については、重み係数が「0」であるものとして、前段の出力X5をどこにも接続しないこととしてもよい。入力側回路210直後のニューロンセル回路220に対する接続であれば、ニューロンセル集積回路200が、データX5の入力を外部から受け入れない(データX5の配線をニューロンセル集積回路200に接続しない)ようにしておく。
 またこの例では、Wp,Wmを次のように定めてもよい。すなわちWpの重みについては、しきい値未満であるW5を除き、正の値となっているW1,W4を用いてその統計量(例えば算術平均等)により、Wp=(W1+W4)/2と定めてもよい。同様に負の重みWnについては、負の値となっているW2,W3を用いて、同様の統計量(ここでは算術平均とする)により、Wn=(W2+W3)/2と定めてもよい。
 以下、DNNの他のニューロンについても、それが利用する非線形関数によりニューロンセル回路220を選択し、前段からの入力を、選択したニューロンセル回路220のどの入力端子に入力するか(あるいは入力しないか)を、機械学習結果である重みに基づいて設定する。また、その正負の重みをDNNの機械学習結果である重みの統計量により設定する。
 これにより、既存の機械学習した状態にあるDNNに基づいて、本実施の形態の情報処理装置1のニューロンセル回路220間の初期的な連結関係が設定される。以下情報処理装置1は、既に説明した機械学習の処理を行って、連結関係を最適化する。またこのとき、重みの値Wp,Wnも同様に最適化を行ってもよい。
 この例では、既に機械学習した状態にあるDNNをベースに初期値が決定されるため、機械学習処理の効率化が期待できる。
[記憶部への入力を2系統とする他の例]
 また本発明の実施の形態のもう一つの例に係るニューロンセル回路222は、図5に例示するように、複数のデータを受け入れる入力部2201と、入力部2201が受け入れたデータを累算する加算器部2202′と、演算部2204と、加算部2205と、記憶部2203″と、出力部2206とを含む。なお、ニューロンセル回路220,221と同様の構成となるものについては同じ符号を付して説明を省略する。
 この例においても加算器部2202′は、第1の加算器部2202a′による累算結果XAと、第2の加算器部2202b′による累算結果XBとを出力するものとする。ただしここでは、累算結果XAと累算結果XBとは同じビット数(それぞれzビットとする)の符号付き二進数であるとする。
 演算部2204は、累算結果XAと累算結果XBとのそれぞれに対応して2つ設けられ、演算部2204のそれぞれは、例えばzビットのアドレスの値XAまたはXBに対応して、対応するメモリアドレスに、アドレス値に所定の非線形関数を施した結果の値を格納した記憶部(ROMなどのメモリ)である。ここで非線形関数の結果の値は、出力データのビット幅であるzビットの値としておく。
 すなわちこの例では演算部2204は、入力された累算結果XA,XBにそれぞれ対応するメモリアドレスに格納された非線形関数の値を出力する。もっとも、この演算部2204は、メモリではなく、シフト演算器により実現されてもよい。この場合、累算結果XAと累算結果XBとのそれぞれに対応する演算部2204は、対応する累算結果XA,XBに対してそれぞれ互いに異なる方向への算術シフト演算を行って出力することとしてもよい。例えば累算結果XAの入力を受けた演算部2204は、当該累算結果XAをnビット(例えばn=1でよい)だけ右シフトして出力する。また、累算結果XBの入力を受けた演算部2204は、当該累算結果XBをnビット(例えばn=1でよい)だけ左シフトして出力する。この例においても、算術シフト演算の結果のビット幅は、出力データのビット幅であるzビットの値としておき、算術シフト演算であふれたビットは廃棄する。
 加算部2205は、累算結果XAと累算結果XBとのそれぞれに対応する演算部2204の出力するデータを加算して、zビットの加算結果Xを得る。
 記憶部2203″は、zビットの加算結果Xに対応するzビットのメモリアドレスごとに、当該メモリアドレスの表すアドレス値に所定の非線形関数を施した結果の値を格納したものである。ここで非線形関数の結果の値は、出力データのビット幅であるzビットの値としておく。記憶部2203″は、入力された加算結果Xに対応するメモリアドレスに格納された非線形関数の値を出力する。
 出力部2206は、記憶部2203″が出力する値を、外部に出力する。なおこの出力部2206は、記憶部2203″の出力に対して、非線形性を加味するための補正関数をさらに施した結果を演算により求め、当該補正関数を施した後の値を出力することとしてもよい。
 この例のニューロンセル回路は、非線形性の低い非線形関数h(x)を用いる場合、つまり、入力値x1+x2が0に近い範囲で、
h(x1+x2)=h(x1)+h(x2)
といった近似が成り立つ場合に好適である。
 さらにもう一つの例に係るニューロンセル回路223は、図6に例示するように、複数のデータを受け入れる入力部2201と、加算器部2202″と、記憶部2203″と、出力部2206とを含む。なお、ニューロンセル回路220,221と同様の構成となるものについては同じ符号を付して説明を省略する。
 この例において、加算器部2202″は、第1の加算器部2202a″と、第2の加算器部2202b″と、反転部2202Nと、加算部2205とを備える。加算器部2202a″は、K個の入力データのうち、L個(L<K)の入力データを累算する。また加算器部2202b″は、残りの(K-L)個の入力データを累算する。反転部2202Nは、加算器部2202b″の出力する値の正負を反転する。
 そしてこの加算器部2202″の加算部2205は、第1の加算器部2202a″が出力する累算結果XAと、第2の加算器部2202b″が出力し、正負を反転した結果-XBとを加算した加算結果X(X=XA-XB)を出力する。すなわち、この加算器部2202″を用いる本実施の形態の例は、累算結果XAに乗じる重みWpを「1」、累算結果XBに乗じる重みWmを「-1」としたものに相当している。また、ここでは、累算結果XA,XB及び加算結果Xは、いずれもビット数が同じ(それぞれzビットとする)符号付き二進数であるとする。
 記憶部2203″は、既に述べたように、zビットの加算結果Xに対応するzビットのメモリアドレスごとに、当該メモリアドレスの表すアドレス値に所定の非線形関数を施した結果の値を格納したものである。ここでzビットの加算結果Xは、符号つき2進数で表されているため、その最上位ビットは符号ビットであり、残りのz-1ビットで値を表すものであるが、メモリアドレスとする場合は、zビットの値として扱う。つまり一例としてz=4ビットのとき、加算結果Xが「-1」に対応するメモリアドレスは(2の補数表現を採用することとして)、2進数で「1111」となる。
 またここで非線形関数の結果の値は、出力データのビット幅であるzビットの値としておく。記憶部2203″は、入力された加算結果Xに対応するメモリアドレスに格納された非線形関数の値を出力する。
 出力部2206は、記憶部2203″が出力する値を、外部に出力する。なおこの出力部2206は、記憶部2203″の出力に対して、非線形性を加味するための補正関数をさらに施した結果を演算により求め、当該補正関数を施した後の値を出力することとしてもよい。
 さらにこの例において、記憶部2203″を、所定の演算回路に置き換えてもよい。図7は、図6に例示したニューロンセル回路223において、記憶部2203″に代えてRelu演算回路部2207を配した例を示したものである。
 このRelu演算回路部2207は、入力された値X(加算器部2202″が出力する加算結果X)の符号ビットを参照し、符号ビットが「1」(負)であるときには、入力される値に関わらず、「0」を表すzビット長の値を出力し、符号ビットが「0」(正)であるときには、入力された値Xをそのまま出力する。
 この例によると、記憶部2203″を実装する必要がなくなるため、ハードウェアを簡略に構成できる。なお、ここでは演算回路としてRelu演算回路を例として説明したが、本実施の形態はこれに限られず、HardSwish関数の演算結果を出力する回路など、簡易なハードウェアで実現可能な関数(特に非線形関数)を表す回路であれば、どのような回路であっても構わない。
[オーバーフロー防止]
 また、本実施の形態では、各ニューロンセル回路220内において、加算器部2202の演算結果が(いわばその重みが「1」であり、データの累算が行われるために)オーバーフローして(最大値を超えて)しまいやすい。
 そこで、データのビット数Nに対し、加算器部2202内での加算演算に用いる変数のビット数をM(Mは、M>Nである整数)とし、加算器部2202がMビットの累算結果を出力することとしてもよい。
 この場合、記憶部2203では、Mビットのアドレス空間内に、アドレス値に応じた非線形関数の値(この値はNビットとする)を格納しておくこととしてもよい。
 また同様にデータのビット数Nに対し、加算器部2202内での加算演算に用いる変数のビット数をM(Mは、M>Nである整数)とし、加算器部2202がMビットの累算結果を出力させる場合に、当該累算結果においてN+1ビット目からMビット目までの各ビットに「1」があるか(Nビットの累算がオーバーフローしたか)否かを調べて、「1」がある場合(オーバーフローした場合)には、Nビットの最大値を記憶部2203に出力し、「1」がない(オーバーフローしていない)場合には、累算結果をそのまま出力することとしてもよい。
 この場合は、既に説明したのと同じく、記憶部2203では、Nビットのアドレス空間内に、アドレス値に応じた非線形関数の値(Nビット)を格納しておく。これらの方法によれば、オーバーフローに対応できる。
[プーリングレイヤ用のニューロンセル回路]
 なお、画像処理等で効果があると認められている畳み込みネットワーク(CNN)では、プーリング処理と呼ばれる処理が広く利用されている。本実施の形態において、プーリング処理を行うためには、例えば、記憶部2203に格納する値を、それぞれ対応するアドレス値xに関わらず、定数αを入力されるデータの数kで除した値α/kとしておけばよい。
 このようにしたニューロンセル回路220は、平均化プーリングを行ったものと同じ出力を行うこととなる。
[プログラマブルROM]
 なお、既に説明したように、ニューロンセル集積回路200に含まれるニューロンセル回路220のうちには、その記憶部2203に格納している値を書き換え可能なように、記憶部2203が書き込み可能な記憶素子により構成され、外部からの値の書き込みを受け入れる構成を備えていてもよい。
 この場合、機械学習の過程において、当該ニューロンセル回路220で利用する非線形関数も併せて機械学習の対象とすることが可能となる。なお、このようなニューロンセル回路220(書き換え可能ニューロンセル回路と呼ぶ)は、n行m列に配されたニューロンセル回路220のうち、出力側に近いm列目または、m列目からm-q列目まで(q<m)に限って配されてもよい。あるいは、書き換え可能ニューロンセル回路は、n行m列に配されたニューロンセル回路220のうち、入力側に近い1列目、または1列目からq列目(q<m)に限って配されてもよい。
 なお、一つのニューロンセル集積回路200に、書き換え可能でないニューロンセル回路220と、書き換え可能なニューロンセル回路220とを混在させる場合は、出力に近い後段ほど、書き換え可能なニューロンセル回路220が多くなるよう配置することとするのが好適である。
[シフトレジスタによる情報保持]
 また、本実施の形態のある例では、各ニューロンセル回路220が、シフトレジスタ回路を介してデータの入力を受け入れることとしてもよい。
 この例に係る機械学習回路20は、図8に例示するように、少なくとも一つのニューロンセル集積回路200を具備して構成される。この例でのニューロンセル集積回路200は、入力側回路210と、複数のニューロンセル回路220(図中ではNCと略記する)と、ニューロンセル回路220ごとに設けられたシフトレジスタ回路部250と、クロック回路260と、連結回路230と、出力側回路240とを含む。
 またここでシフトレジスタ回路部250は、所定のタイミングごとにデータの入力を受け入れ、過去の所定回数(例えばq回)に亘って入力されたデータを保持するものである。またこのシフトレジスタ回路部250は、当該保持しているq回分のデータの少なくとも一部を、上記所定のタイミングで、後段に接続されているニューロンセル回路220等に出力する。
 具体的にこのシフトレジスタ回路部250は、図9に例示するように、入力端子2501と、q個(qは1以上の自然数)のシフトレジスタ(図中ではSRと略記する)2502と、出力端子2503とを含む。
 さらにシフトレジスタ2502は、入力側回路210または連結回路230からPビットのデータ(Pは1以上の自然数)の入力を受け入れる入力端子INと、Pビットのデータを出力する出力端子OUTと、クロック信号の入力端子CLKとを備える。なお、q>1であるときには、当該複数のシフトレジスタ2502a,b…は、直列に、多段に接続される。また複数のシフトレジスタ2502a,b…を区別しないときには、以下、単にシフトレジスタ2502と表記する。
 シフトレジスタ回路部250の入力端子2501は、入力側回路210または連結回路230からPビットのデータの入力を受け入れて、シフトレジスタ2502(複数ある場合は初段のシフトレジスタ2502a)の入力端子INに出力する。
 シフトレジスタ2502は、クロック信号の入力を受け入れたときに、入力端子INに入力されているPビットのデータを一時的に保持する。またこのシフトレジスタ2502は、クロック信号の入力を受け入れると、前回保持したデータを出力端子OUTから出力する。なお電源投入直後は、保持するデータが存在しないので、シフトレジスタ2502は、保持するデータの各ビットを「0」などの所定の値に初期化しておくものとする。
 またこのシフトレジスタ2502の出力端子OUTは、後段のシフトレジスタ2502があるときには、当該後段のシフトレジスタ2502の入力端子INに接続され、後段のシフトレジスタ2502がない場合(最後段のシフトレジスタである場合)には、その出力端子OUTは、シフトレジスタ回路部250の出力端子2503に接続される。
 この構成を備えることにより、シフトレジスタ回路部250は、過去q回に亘って入力されたPビットのデータを一時的に保持し、q回前に保持したデータを出力することとなる。
 なお、多段に接続されたシフトレジスタ2502のうち、最後段のものでない(つまり初段及び中間段の)シフトレジスタ2502の少なくとも一部のシフトレジスタ2502は、その出力端子OUTが、後段のシフトレジスタ2502の入力端子INだけでなく、シフトレジスタ回路部250の出力端子2503にも接続されていてもよい。この例では、q回前に保持したデータと、q-1回前に保持したデータと…前回保持したデータとが出力されることとなる。
 また本実施の形態の一例では、シフトレジスタ回路部250の入力端子2501は初段のシフトレジスタ2502aの入力端子INに接続されるとともに、シフトレジスタ回路部250の出力端子2503にそのまま接続されてもよい。以下では、図9に例示したように、シフトレジスタ回路部250の入力端子2501が初段のシフトレジスタ2502aの入力端子INのみに接続され、初段及び中間段のシフトレジスタ2502a,bの出力端子OUTが後段のシフトレジスタ2502b,cの入力端子INに接続されるとともに、シフトレジスタ回路部250の出力端子2503にも接続されているものとする。
 さらに既に述べたように、最後段のシフトレジスタ2502cの出力端子OUTは、シフトレジスタ回路部250の出力端子2503に接続される。つまりこの例では、シフトレジスタ回路部250の出力端子2503は(P×3)ビットのデータを出力することとなる。
 この出力端子2503が出力するデータは、このシフトレジスタ回路部250に対応しているニューロンセル回路220に出力される。なお、対応するニューロンセル回路220の入力ポートに入力可能なデータのビット幅は、対応するシフトレジスタ回路部250が出力するビット幅以上であるものとする。具体的にニューロンセル回路220が、それぞれK個のNビット入力ポート(全体でK×Nビットの入力ポート)を有しているものとする場合、上述の例であれば、K×N≧P×3であればよい。
 クロック回路260は、所定のクロックタイミングごとに「H」の状態と「L」の状態とを交互に繰り返すクロック信号(パルス信号)を、各シフトレジスタ2502のクロック信号の入力端子CLKに対して出力する。
 本実施の形態のこの例に係る情報処理装置1を用いる場合、機械学習時には、例えば連結回路230としてクロスバスイッチなど、配線の切り替えが可能なものを用いる。そして情報処理装置1は、入力データと、それに対応して出力するべきデータとの組を複数、教師データとして受け入れる。そして情報処理装置1は、各組について順次、次の機械学習の処理を実行する。
 すなわち情報処理装置1は、機械学習の対象となった組に含まれる入力データDを、所定の単位に分割して、分割入力データdi(i=1,2,…)を得ておく。情報処理装置1は、分割入力データdiを、所定のクロックタイミングごとに、入力回路部10に順次入力する。
 入力回路部10は、分割入力データdiが入力されるごとに、当該分割入力データdiを、ニューロンセル集積回路200に出力する。ニューロンセル集積回路200の入力側回路210は、入力された分割入力データdiを、Pビットごとのデータにさらに分割し、当該Pビットのデータのそれぞれを、対応するシフトレジスタ回路部250に出力する。
 以下の説明では、ニューロンセル集積回路200は、シフトレジスタ回路部250と、対応するニューロンセル回路220との組が3組×2段あり、各段の間に連結回路230を配してなるものとする。もちろんこれは一例であり、より多数のシフトレジスタ回路部250と、対応するニューロンセル回路220との組、及びより多数の連結回路230が含まれてもよい。また以下の例では、シフトレジスタ回路部250がq個(qは1以上の自然数とする)のシフトレジスタ2502を備えるものとする。
 この例では、初段にある3つのシフトレジスタ回路部250aが、入力回路部10からそれぞれPビットのデータの入力を受け入れる。そして各シフトレジスタ回路部250aは、過去q回に亘って入力されたPビットのデータを保持し、また、過去q回前から前回までに入力されたq-1個のPビットのデータ((q-1)×Pビットのデータ)を、クロックタイミングごとに、このシフトレジスタ回路部250aに対応するニューロンセル回路220aに出力する。
 ここでニューロンセル回路220が図3に例示したものであれば、このニューロンセル回路220aは、入力された(q-1)×Pビットのデータを累算し、その記憶素子2203に格納された、上記累算結果に対応する関数の値を表すデータを出力する。
 この出力されたデータは、連結回路230を介して後段のシフトレジスタ回路部250bに出力される。そしてこの後段のシフトレジスタ回路部250bも、過去q回に亘って入力されたPビットのデータを保持し、また、過去q回前から前回までに入力されたq-1個のPビットのデータ((q-1)×Pビットのデータ)を、クロックタイミングごとに、このシフトレジスタ回路部250bに対応するニューロンセル回路220bに出力する。そして、当該データの入力を受けたニューロンセル回路220bは、入力された(q-1)×Pビットのデータを累算し、その記憶素子2203に格納された、上記累算結果に対応する関数の値を表すデータを出力する。
 情報処理装置1は、出力回路部30を介して最後段のニューロンセル回路220bが出力するデータを得て、この得られたデータと、入力した入力データに対応する出力データとを比較する。
 情報処理装置1は、この比較の結果に基づいて、ニューロンセル集積回路200内の連結回路230のスイッチを制御して、先の入力データを入力したときの機械学習回路20の出力が、当該入力データに対応する出力データに近接することとなるよう、既に述べた、広く知られている強化学習の方法、例えばA. Gaier, D. Ha,"Weight Agnostic Neural Networks", arXiv:1906.04358v2により設定することができる。
 情報処理装置1は、以上の処理を、教師データに含まれる各組について繰り返して行い、機械学習を実行する。
 このような情報処理装置1は、例えば画像データに関する機械学習を実行する際に好適に利用できる。すなわち、画像データに関する機械学習を実行する際には、情報処理装置1は、図10に例示するように、画像データを入力データとし、当該入力データを、r行(rは1以上の自然数)含むラインブロックに分割して分割入力データとし、当該r行ごとのラインブロックを、順次、所定のクロックタイミングごとに入力回路部10に入力する。
 この例では、入力回路部10が、分割入力データとして、最初のクロックタイミングでは1行目からr行目までのラインブロックの入力を、次のクロックタイミングではr+1行目から2r行目までのラインブロックの入力を…というように受け入れて、当該受け入れられたラインブロックのデータをニューロンセル集積回路200に出力する。するとニューロンセル集積回路200の入力側回路210が、入力されたラインブロックをさらにs列(sは1以上の自然数)以上の画素列を含むr×s画素(上記のPビットとなるようにする)のブロックB1,B2…に分割し、ブロックごとに、対応するシフトレジスタ回路部250を介してニューロンセル回路220に出力する。
 この例によると、画像の縦方向に互いに隣接するq(シフトレジスタ2502の段数)個分のラインブロックごとに、画像データに関する機械学習が行われることとなる。また、ニューロンセル回路220を、チャネル(例えば赤(R),緑(G),青(B)及びアルファチャネル(透明度など)などの色成分のデータ)ごとに設けて、それぞれ並列的に処理してもよい。
 次にシフトレジスタを用いた機械学習回路20を備える情報処理装置1の推論時の動作例について説明する。
 情報処理装置1は、上述の機械学習処理により、機械学習回路20に含まれる各ニューロンセル集積回路200内の連結回路230のスイッチを設定を最適化(機械学習)した状態で固定した後、推論の処理を実行する。ここでのスイッチの固定の方法は既に説明した方法を採用できるので、繰り返しての説明を省略する。
 推論の動作を行う情報処理装置1は、機械学習処理により最適化された設定通りに、機械学習回路20に含まれる各ニューロンセル集積回路200内の連結回路230のスイッチが設定された状態で、次のように推論の処理を行う。以下では、上述の機械学習の処理で用いた機械学習回路20と同様の構成を備えているものとする。
 情報処理装置1は、推論の処理の対象となる入力データを受け入れると、当該入力データを、所定の単位に分割して、分割入力データdi(i=1,2,…)を得る。そして情報処理装置1は、分割入力データdiを、所定のクロックタイミングごとに、入力回路部10に順次入力する。
 入力回路部10は、分割入力データdiが入力されるごとに、当該分割入力データdiを、ニューロンセル集積回路200に出力する。ニューロンセル集積回路200の入力側回路210は、入力された分割入力データdiを、Pビットごとのデータにさらに分割し、当該Pビットのデータのそれぞれを、対応するシフトレジスタ回路部250に出力する。
 すると初段にある3つのシフトレジスタ回路部250aが、入力回路部10からそれぞれPビットのデータの入力を受け入れる。そして各シフトレジスタ回路部250aは、過去q回に亘って入力されたPビットのデータを保持し、また、過去q回前から前回までに入力されたq-1個のPビットのデータ((q-1)×Pビットのデータ)を、クロックタイミングごとに、このシフトレジスタ回路部250aに対応するニューロンセル回路220aに出力する。
 ここでニューロンセル回路220は、図3に例示したものとしているので、このニューロンセル回路220aは、入力された(q-1)×Pビットのデータを累算し、その記憶素子2203に格納された、上記累算結果に対応する関数の値を表すデータを出力する。
 この出力されたデータは、連結回路230を介して後段のシフトレジスタ回路部250bに出力される。そしてこの後段のシフトレジスタ回路部250bも、過去q回に亘って入力されたPビットのデータを保持し、また、過去q回前から前回までに入力されたq-1個のPビットのデータ((q-1)×Pビットのデータ)を、クロックタイミングごとに、このシフトレジスタ回路部250bに対応するニューロンセル回路220bに出力する。そして、当該データの入力を受けたニューロンセル回路220bは、入力された(q-1)×Pビットのデータを累算し、その記憶素子2203に格納された、上記累算結果に対応する関数の値を表すデータを出力する。
 情報処理装置1は、出力回路部30を介して最後段のニューロンセル回路220bが出力するデータを得る。このデータは、上記最適化を行った結果となっており、入力データに基づいて推論された出力データとなっている。
 なお、ここまでの説明ではシフトレジスタ回路部250は、対応するニューロンセル回路220の前段に配していたが、図8に対応する図11に例示されるように、シフトレジスタ回路部250は、対応するニューロンセル回路220の後段に配されてもよい。なお、このように、シフトレジスタ回路部250がニューロンセル回路220の後段に配される場合、連結回路230は、シフトレジスタ回路部250が出力するk×Pビットのデータ(ここでkは1以上q以下の整数であり例えばk=q-1)と、次段のシフトレジスタ回路部250へ入力するビット数分の配線とを互いに連結するものとなる。
 本実施の形態のこれらの例によると、音声や振動のように時系列的なデータや、画像等のように空間的な広がりのある情報を表現したデータについて、時間・空間的に互いに隣接あるいは近接した複数の点に関わるデータを利用した機械学習や推論の処理が可能となり、また、時間・空間的に互いに隣接あるいは近接した複数の点のそれぞれに対応したニューロンセル回路220を設ける必要がないので、回路規模の増大を抑制できる。
 また、ここまでの説明ではニューロンセル回路220を用いて説明したが、これに代えて、記憶部への入力を2系統としてニューロンセル回路221や、図4,図5に例示したニューロンセル回路222,223が用いられてもよい。
[記憶素子を用いた連結回路]
 また、連結回路230は、機械学習時にはクロスバスイッチなどを用い、機械学習の完了後は、ビアなどで対応する配線を連結する例として説明してきたが、本実施の形態はこれらの例に限られない。
 本実施の形態のある例では、図12に例示するように、連結回路230は、前段のニューロンセル回路220の出力(各ビットに対応した配線列)を配列した第1の配線2301と、前段のニューロンセル回路220が出力したデータの入力を受け入れ得る側である後段のニューロンセル回路220の入力端子に接続された第2の配線2302(入力データの各ビットに対応した配線列)とを交差させ、第1の配線2301の各ビットに対応した配線と、第2の配線2302の各ビットに対応した配線とのすべての交差位置に、記憶素子を用いたスイッチ回路2303を配してもよい。
 このスイッチ回路2303は、対応する第1の配線2301のあるビットに対応する配線Aと、第2の配線2302のあるビットに対応する配線Bとを導通させる状態と、導通させない状態とのいずれかの状態となる。この状態は、外部からの指示により切り替えられる。
 具体的に、このスイッチ回路2303は、図13(a)に例示するように、ReRAM等の不揮発性メモリ(NVM)セル2303Cと、スイッチとなるFET2303Qとを含んで構成されてもよい。この例では、FET2303Qのソース端子(S)とドレイン端子(D)とに配線A,Bがそれぞれ接続され、そのゲート端子(G)には不揮発性メモリセル(2303C)のビット線が接続される。
 この不揮発性メモリセル2303Cは、外部から入力される信号によりスイッチングしてセット動作またはリセット動作を行い、ビット線を介して出力される信号のH,Lの状態を変化させる。なお、このような不揮発性メモリセル2303Cの動作やスイッチングの方法は広く知られているため、ここでの説明は省略する。
 FET2303Qは、不揮発性メモリセル2303Cのビット線を介して出力される信号が例えばHであるときにソース端子とゲート端子との間を導通させて配線A,B間を電気的に連結する。また、FET2303Qは、不揮発性メモリセル2303Cのビット線を介して出力される信号が例えばLであるときにソース端子とゲート端子との間の導通を遮断して、配線A,B間を電気的に切り離す。
 この構成によると、外部からの信号によって連結回路230による、ニューロンセル回路220間のデータの受け渡しの状態を変更可能となる。なお、推論処理を行うためにデータの受け渡しの状態を固定する場合であっても、回路を変更する必要はなく、そのままスイッチ回路2303を含んだ連結回路230を用いて推論の処理などを行ってよい。
 なお、不揮発性メモリセル2303Cとしては、比較的回路規模の小さいものを用いることとすれば、回路規模の増大も抑制できる。
 さらに、本実施の形態の別の例では、上記のスイッチ回路2303は、図13(b)に例示するように、SRAM等の揮発性のメモリセル2303Sを用いて構成されてもよい。この揮発性のメモリセル2303Sを用いたスイッチ回路2303の動作は、基本的には、図13(a)に例示したものと同様であり、記憶素子として揮発性のメモリセル2303Sを採用している点が異なる。
 この例によると、連結回路230の設定を動的に切り替えることが容易となり、情報処理装置1を多種の用途に使用することが可能となる。
 また、図13(a),(b)などに例示したように、連結回路230を記憶素子を用いて構成する場合、ニューロンセル回路220の記憶部2203も同種類の記憶素子を用いて構成することとしてもよい。
 また、ここまでの説明ではニューロンセル回路220を用いて説明したが、これに代えて、記憶部への入力を2系統としてニューロンセル回路221や、図4,図5に例示したニューロンセル回路222,223が用いられてもよい。
[チップ化]
 また本実施の形態のニューロンセル回路220を配したチップダイDを形成して、ニューロンセル集積回路200を、チップとして実現してもよい。さらに、上記チップダイDを、図14に例示するように、入力側Iと出力側Oとを交互にしてパッケージ基板S上に積層配置して複数のニューロンセル集積回路200を1つのパッケージに封じてもよい。なお、このパッケージには、CPUモジュールやGPU、従来型のAI(ディープラーニングなどの)チップなど、他のチップ部分がさらに含まれてもよい。このようにCPUモジュールなどを組み合わせて備える場合、当該部分を本実施の形態のニューロンセル回路220の出力を受け入れて処理する機械学習手段を構成してもよい。この例では、当該CPUモジュール等で構成される機械学習手段について、さらに機械学習を行ってもよい。
 1 情報処理装置、10 入力回路部、20 機械学習回路、30 出力回路部、200 ニューロンセル集積回路、210 入力側回路、220,221,222,223 ニューロンセル回路、230 連結回路、240 出力側回路、250 シフトレジスタ回路部、2201 入力部、2202,2202′ 加算器部、2203,2203′,2203″ 記憶部、2204 演算部、2205 加算部、2206 出力部。

 

Claims (11)

  1.  複数のニューロンセル回路を含む機械学習回路であって、
     前記ニューロンセル回路は、
     複数の入力信号を受け入れる入力部と、
     前記入力部が受け入れた入力信号を加算する加算器部と、
     各入力値に応じた非線形関数の出力結果を保持し、前記加算器部が出力する出力信号を入力値として、当該入力値に応じた非線形関数の出力結果を出力する記憶部と、
     を含むニューロンセル回路である機械学習回路。
  2.  請求項1に記載の機械学習回路であって、
     前記複数のニューロンセル回路の一部を出力端回路とし、出力端回路以外の前記複数のニューロンセル回路を中間回路として、前記中間回路に含まれるニューロンセル回路ごとに、当該ニューロンセル回路の出力信号を、他のニューロンセル回路の各々の入力部に接続するか否かを切り替えるスイッチ回路をさらに有し、
     機械学習時においては、前記スイッチ回路を介したニューロンセル回路間の連結関係を更新する機械学習回路。
  3.  請求項1に記載の機械学習回路であって、
     前記複数のニューロンセル回路の一部を出力端回路とし、出力端回路以外の前記複数のニューロンセル回路を中間回路として、前記中間回路に含まれるニューロンセル回路ごとに、当該ニューロンセル回路の出力信号を、他のニューロンセル回路の少なくとも一部の入力部に接続する連結回路を有する機械学習回路。
  4.  請求項1または2に記載の機械学習回路であって、
     前記複数のニューロンセル回路は、それぞれが複数のニューロンセル回路を含む複数のニューロンセル回路群に区分され、
     第i番目(iは1以上の自然数とする)のニューロンセル回路群に含まれるニューロンセル回路ごとに、当該ニューロンセル回路の出力信号を、第i+1番目のニューロンセル回路群に含まれるニューロンセル回路の各々の入力部に接続するか否かを切り替えるスイッチ回路をさらに有し、
     機械学習時においては、前記スイッチ回路を介したニューロンセル回路間の連結関係を更新する機械学習回路。
  5.  請求項1または3に記載の機械学習回路であって、
     前記複数のニューロンセル回路は、それぞれが複数のニューロンセル回路を含む複数のニューロンセル回路群に区分され、
     第i番目(iは1以上の自然数とする)のニューロンセル回路群に含まれるニューロンセル回路ごとに、当該ニューロンセル回路の出力信号を、第i+1番目のニューロンセル回路群に含まれるニューロンセル回路の少なくとも一部の入力部に接続する連結回路をさらに有する機械学習回路。
  6.  請求項4に記載の機械学習回路であって、
     第i番目(iは1以上の自然数とする)のニューロンセル回路群に含まれるニューロンセル回路の入力部が受け入れる入力信号の数Niが、第j番目(jは、j>iなる1以上の自然数)のニューロンセル回路群に含まれるニューロンセル回路の入力部が受け入れる入力信号の数Njより小さい値となるi,jが存在するよう、各ニューロンセル回路の入力部が受け入れる入力信号の数が設定されてなる機械学習回路。
  7.  請求項1に記載の機械学習回路であって、
     前記複数のニューロンセル回路の一部のニューロンセル回路は、
     その記憶部が、入力値に応じた第1の非線形関数の出力結果を保持し、前記加算器部が出力する出力信号を入力値として、当該入力値に応じた前記第1の非線形関数の出力結果を出力する第1種の記憶部である第1種ニューロンセル回路であり、
     前記複数のニューロンセル回路のうち前記第1種ニューロンセル回路とは異なるニューロンセル回路の少なくとも一つは、その記憶部が、入力値に応じた、前記第1の非線形関数とは異なる第2の非線形関数の出力結果を保持し、前記加算器部が出力する出力信号を入力値として、当該入力値に応じた前記第2の非線形関数の出力結果を出力する第2種の記憶部である第2種ニューロンセル回路である機械学習回路。
  8.  請求項4に記載の機械学習回路であって、
     第i番目(iは1以上の自然数とする)のニューロンセル回路群に含まれるニューロンセル回路の少なくとも一部のニューロンセル回路の前記記憶部は、入力値に応じた第1の非線形関数の出力結果を保持し、前記加算器部が出力する出力信号を入力値として、当該入力値に応じた前記第1の非線形関数の出力結果を出力する第1種の記憶部である第1種ニューロンセル回路であり、
     第i番目(iは1以上の自然数とする)のニューロンセル回路群に含まれるニューロンセル回路のうち前記第1種ニューロンセル回路とは異なるニューロンセル回路の少なくとも一つは、その記憶部が、入力値に応じた、前記第1の非線形関数とは異なる第2の非線形関数の出力結果を保持し、前記加算器部が出力する出力信号を入力値として、当該入力値に応じた前記第2の非線形関数の出力結果を出力する第2種の記憶部である第2種ニューロンセル回路である機械学習回路。
  9.  請求項1に記載の機械学習回路であって、
     前記複数のニューロンセル回路を配したダイを備え、チップ化されてなる機械学習回路。
  10.  請求項1に記載の機械学習回路であって、
     ニューロンセル回路に対応して設けられるシフトレジスタ回路部であって、
     所定のタイミングごとにデータの入力を受け入れ、過去の所定の回数に亘って入力されたデータを保持し、当該保持したデータの少なくとも一部を前記所定のタイミングで、後段のニューロンセル回路に出力するシフトレジスタ回路部を備える機械学習回路。
  11.  複数のニューロンセル回路を含む機械学習回路を具備した情報処理装置であって、
     前記ニューロンセル回路が
     複数の入力信号を受け入れる入力部と、
     前記入力部が受け入れた入力信号を加算する加算器部と、
     各入力値に応じた非線形関数の出力結果を保持し、前記加算器部が出力する出力信号を入力値として、当該入力値に応じた非線形関数の出力結果を出力する記憶部と、
     を含むニューロンセル回路である、情報処理装置。

     
PCT/JP2022/019044 2021-04-28 2022-04-27 機械学習回路及び情報処理装置 WO2022230926A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023517590A JPWO2022230926A1 (ja) 2021-04-28 2022-04-27

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021076487 2021-04-28
JP2021-076487 2021-04-28

Publications (1)

Publication Number Publication Date
WO2022230926A1 true WO2022230926A1 (ja) 2022-11-03

Family

ID=83848516

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/019044 WO2022230926A1 (ja) 2021-04-28 2022-04-27 機械学習回路及び情報処理装置

Country Status (2)

Country Link
JP (1) JPWO2022230926A1 (ja)
WO (1) WO2022230926A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006154992A (ja) * 2004-11-26 2006-06-15 Akita Prefecture ニューロプロセッサ
US20170270403A1 (en) * 2016-03-21 2017-09-21 HangZhou HaiCun Information Technology Co., Ltd. Integrated Neuro-Processor Comprising Three-Dimensional Memory Array
WO2019155910A1 (ja) * 2018-02-06 2019-08-15 国立大学法人北海道大学 ニューラル電子回路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006154992A (ja) * 2004-11-26 2006-06-15 Akita Prefecture ニューロプロセッサ
US20170270403A1 (en) * 2016-03-21 2017-09-21 HangZhou HaiCun Information Technology Co., Ltd. Integrated Neuro-Processor Comprising Three-Dimensional Memory Array
WO2019155910A1 (ja) * 2018-02-06 2019-08-15 国立大学法人北海道大学 ニューラル電子回路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KOSUGE ATSUTAKE; HAMADA MOTOTSUGU; KURODA TADAHIRO: "A 16 nJ/Classification FPGA-Based Wired-Logic DNN Accelerator Using Fixed-Weight Non-Linear Neural Net", IEEE JOURNAL ON EMERGING AND SELECTED TOPICS IN CIRCUITS AND SYSTEMS, vol. 11, no. 4, 20 September 2021 (2021-09-20), Piscataway, NJ, USA , pages 751 - 761, XP011893414, ISSN: 2156-3357, DOI: 10.1109/JETCAS.2021.3114179 *

Also Published As

Publication number Publication date
JPWO2022230926A1 (ja) 2022-11-03

Similar Documents

Publication Publication Date Title
US11055608B2 (en) Convolutional neural network
US4639857A (en) Digital data processor incorporating an orthogonally connected logic cell array
JP2662000B2 (ja) 神経回路網およびその回路網に用いる回路
US5444822A (en) Semiconductor integrated circuit device carrying out parallel operational processing with electronically implemented neural network
EP0378115B1 (en) Neural computer
CN111052153B (zh) 使用半导体存储元件的神经网络运算电路及动作方法
US11662979B2 (en) Adder circuitry for very large integers
US20070233761A1 (en) Crossbar arithmetic processor
Thoma et al. POEtic: an electronic tissue for bio-inspired cellular applications
WO2021044821A1 (ja) 演算装置及び積和演算システム
JP5360194B2 (ja) 再構成可能な論理回路
CN114613404A (zh) 内存计算
JPWO2017200088A1 (ja) ニューラルネットワーク回路及びニューラルネットワーク集積回路
US20190288688A1 (en) Logic circuits with augmented arithmetic densities
US20170168775A1 (en) Methods and Apparatuses for Performing Multiplication
US11163530B2 (en) Programmable-logic-directed multiplier mapping
WO2022230926A1 (ja) 機械学習回路及び情報処理装置
KR100445264B1 (ko) 재구성능력 및 확장능력을 가진 신경회로망 하드웨어
US20240220769A1 (en) Machine learning processing circuit and information processing apparatus
US9965251B2 (en) Crossbar arithmetic and summation processor
TWI771014B (zh) 記憶體電路及其操作方法
Chakraborty et al. A compact 8-bit adder design using in-memory memristive computing: Towards solving the Feynman grand prize challenge
JP7436724B2 (ja) 計算装置
CN110866597B (zh) 数据处理电路和数据处理方法
CN113703837A (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: 22795839

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023517590

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 18288889

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22795839

Country of ref document: EP

Kind code of ref document: A1