WO2020017444A1 - 演算装置、積和演算装置、積和演算システム、及び積和演算方法 - Google Patents

演算装置、積和演算装置、積和演算システム、及び積和演算方法 Download PDF

Info

Publication number
WO2020017444A1
WO2020017444A1 PCT/JP2019/027650 JP2019027650W WO2020017444A1 WO 2020017444 A1 WO2020017444 A1 WO 2020017444A1 JP 2019027650 W JP2019027650 W JP 2019027650W WO 2020017444 A1 WO2020017444 A1 WO 2020017444A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
input
sum
load
product
Prior art date
Application number
PCT/JP2019/027650
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 JP2020531285A priority Critical patent/JP7447790B2/ja
Priority to US17/258,965 priority patent/US20210318853A1/en
Publication of WO2020017444A1 publication Critical patent/WO2020017444A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/48Analogue computers for specific processes, systems or devices, e.g. simulators
    • G06G7/60Analogue computers for specific processes, systems or devices, e.g. simulators for living beings, e.g. their nervous systems ; for problems in the medical field
    • 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 technology relates to an arithmetic device, a product-sum operation device, a product-sum operation system, and a product-sum operation method applicable to a product-sum operation using an analog method.
  • Patent Literature 1 describes an analog circuit that performs a product-sum operation by an analog method.
  • a load corresponding to each of a plurality of electric signals is set.
  • electric charges corresponding to the corresponding electric signal and load are output, and the output electric charges are appropriately stored in the capacitor.
  • a calculation target value representing the product-sum result is calculated based on the voltage of the capacitor in which the charge is stored.
  • the power consumption required for the product-sum operation can be reduced as compared with the digital processing (see paragraph [0003] [0049]-[0053] [0062] in the specification of Patent Document 1). 4 etc.).
  • an object of the present technology is to provide an arithmetic device, a product-sum operation device, a product-sum operation system, and an arithmetic device capable of accurately detecting an operation result in an analog circuit that performs a product-sum operation. It is an object of the present invention to provide a product-sum operation method.
  • an arithmetic device includes a plurality of input lines and a product-sum arithmetic device.
  • a pulse signal corresponding to an input value is input to the plurality of input lines.
  • the multiply-accumulation device based on the pulse signal input to each of the plurality of input lines, a plurality of multiplying units that generate a charge corresponding to a multiplied value obtained by multiplying the input value by a load value,
  • An output unit that accumulates electric charges corresponding to the multiplied values generated by each of the plurality of multiplying units and outputs a product-sum signal representing the sum of the multiplied values. At least one of the input value and the load value is restricted.
  • a pulse signal corresponding to an input value is input from a plurality of input lines, and a charge corresponding to a product of the input value and the load value is generated based on the pulse signal.
  • a product-sum signal representing the sum of the multiplied values by accumulating the generated charges is output.
  • at least one of the input value and the load value is restricted.
  • At least one of the input value and the load value may be limited to be included in a predetermined value range.
  • the values of the input value and the load value are limited to a predetermined value range, and for example, the sum of the multiplied values can be reduced. As a result, it is possible to accurately detect the calculation result.
  • the predetermined range may include a plurality of limit values.
  • at least one of the input value and the load value may be set to one of the plurality of limit values.
  • the plurality of limit values may include zero.
  • the sum of the multiplied values is significantly suppressed, and for example, the sum of the multiplied values can be accurately expressed. As a result, it is possible to sufficiently improve the detection accuracy of the calculation result.
  • the plurality of limit values may include a positive limit value and a negative limit value whose absolute values are equal to each other. Thereby, for example, even when a positive or negative load value or signal value is used, each value can be limited.
  • the load value may be limited by a first process of setting the load value based on a first value that is an absolute value of the value serving as the load value.
  • a first value that is an absolute value of the value serving as the load value.
  • the first process may be a process of setting the load value to 0 when the first value is equal to or less than a first threshold.
  • the first process is a process of setting the load values to 0 at a first rate in order from the smaller value of the first value with respect to the load values set in each of the plurality of multipliers. You may. Thus, when the value serving as the load value is sufficiently small, it is possible to set the multiplication value of the load value to 0. As a result, it is possible to sufficiently improve the detection accuracy of the calculation result.
  • the input value may be limited by a second process of setting the input value based on a second value that is an absolute value of the input value. Thereby, for example, it is possible to appropriately limit the input value according to the magnitude of the absolute value of the value to be the input value. As a result, the sum of the multiplied values can be appropriately reduced.
  • the second process may be a process of setting the input value to 0 when the second value is equal to or less than a second threshold.
  • the second processing includes, for the input value represented by the pulse signal input to each of the plurality of multiplying units, changing the input value at a second rate in ascending order of the second value.
  • the processing may be set to 0.
  • the multiplication value with the input value can be set to 0. As a result, it is possible to sufficiently improve the detection accuracy of the calculation result.
  • the arithmetic device further includes a limiting unit that executes the second limiting process based on the product-sum signal, with the absolute value of the sum of the multiplied values represented by the product-sum signal as the second value. You may have. This makes it possible to generate a product-sum signal with a limited value. By using this product-sum signal, it is possible to suppress a multiplied value or the like in a product-sum operation device at a subsequent stage.
  • the pulse signal may be input to each of the plurality of input lines within a predetermined input period.
  • the output unit may output a product-sum signal representing a sum of the multiplied values within a predetermined output period. Thereby, it is possible to appropriately execute the product-sum operation within the set period.
  • the input value may be a value represented by a first input value and a second input value.
  • the plurality of input lines are supplied with a first input line to which a first pulse signal representing the first input value is inputted, and a second pulse signal representing the second input value. And a plurality of pairs of the input lines paired with a second input line.
  • the pulse signal may be a signal representing the input value using at least one of a pulse timing and a pulse width. This makes it possible to easily execute a multiplication process of the input value and the load value based on the pulse signal.
  • a product-sum operation device includes a plurality of multiplication units and an output unit.
  • the plurality of multipliers generate a charge corresponding to a multiplied value obtained by multiplying the input value by a load value, based on the pulse signal input to each of the plurality of input lines.
  • the output unit outputs a product-sum signal representing the sum of the multiplied values by accumulating charges corresponding to the multiplied values generated by each of the plurality of multiplying units. At least one of the input value and the load value is restricted.
  • a product-sum operation system includes a plurality of input lines, a plurality of product-sum operation devices, and a network circuit.
  • a pulse signal corresponding to an input value is input to the plurality of input lines.
  • a plurality of multiplying units configured to generate a charge corresponding to a multiplied value obtained by multiplying the input value by a load value, based on the pulse signal input to each of the plurality of input lines;
  • An output unit that outputs a product-sum signal representing the sum of the multiplied values by accumulating charges corresponding to the multiplied values generated by each of the plurality of multiplying units.
  • the network circuit is configured by connecting the plurality of product-sum operation devices. At least one of the input value and the load value is restricted.
  • a product-sum operation method includes inputting a pulse signal according to an input value to a plurality of input lines. Based on the pulse signal input to each of the plurality of input lines, a charge corresponding to a multiplied value obtained by multiplying the input value by a load value is generated. By accumulating the charge corresponding to the multiplied value, a product-sum signal representing the sum of the multiplied values is output. At least one of the input value and the load value is restricted.
  • a product-sum operation system includes a plurality of input lines, a plurality of product-sum operation devices, and a restriction processing unit.
  • a pulse signal corresponding to an input value is input to the plurality of input lines.
  • a plurality of multiplying units configured to generate a charge corresponding to a multiplied value obtained by multiplying the input value by a load value, based on the pulse signal input to each of the plurality of input lines;
  • An output unit that outputs a product-sum signal representing the sum of the multiplied values by accumulating charges corresponding to the multiplied values generated by each of the plurality of multiplying units.
  • the restriction processing unit restricts at least one of the input value and the load value before each of the plurality of multiplication units generates a charge corresponding to the multiplication value.
  • a product-sum operation system includes a plurality of input lines, a plurality of product-sum operation devices, a network circuit, and a restriction processing unit.
  • a pulse signal corresponding to an input value is input to the plurality of input lines.
  • a plurality of multiplying units configured to generate a charge corresponding to a multiplied value obtained by multiplying the input value by a load value, based on the pulse signal input to each of the plurality of input lines;
  • An output unit that outputs a product-sum signal representing the sum of the multiplied values by accumulating charges corresponding to the multiplied values generated by each of the plurality of multiplying units.
  • the network circuit is configured by connecting the plurality of product-sum operation devices.
  • the restriction processing unit restricts at least one of the input value and the load value before each of the plurality of multiplication units generates a charge corresponding to the multiplication value. At least one of the input value and the load value is restricted by the restriction processing unit via the network circuit.
  • FIG. 1 is a schematic diagram illustrating a configuration example of an arithmetic device according to a first embodiment of the present technology.
  • FIG. 3 is a schematic diagram illustrating an example of an electric signal input to an analog circuit. It is a schematic diagram which shows the specific structural example of an arithmetic unit. It is a schematic diagram which shows the example of a structure of a neuron circuit. It is a schematic diagram for explaining the operation of the accumulator and the analog circuit.
  • FIG. 3 is a schematic diagram for explaining the operation of a product-sum device connected in two stages and an analog circuit connected in two stages.
  • FIG. 2 is a schematic diagram illustrating an example of an arithmetic device using an analog circuit.
  • FIG. 8 is a schematic diagram for explaining an example of the operation of the arithmetic device shown in FIG. 7.
  • 6 is a graph illustrating a change in a difference value of a timing output from an analog circuit. It is a graph which shows the change of each output of a sum-of-products and an analog circuit.
  • 9 is a flowchart illustrating an example of a load value limiting process.
  • FIG. 9 is a schematic diagram for explaining an example of an operation of an analog circuit in which a sparsed load value is set.
  • 6 is a graph illustrating a change in a difference value of a timing output from an analog circuit.
  • 9 is a graph showing a change rate of a standard deviation ⁇ of a difference value.
  • FIG. 4 is a schematic diagram for explaining a product-sum result represented by an electric signal. It is a schematic diagram which shows the example of a structure of the arithmetic unit which concerns on 2nd Embodiment.
  • FIG. 1 is a schematic diagram illustrating a configuration example of an arithmetic device according to the first embodiment of the present technology.
  • the arithmetic device 100 is an analog arithmetic device that performs a predetermined arithmetic process including a product-sum operation. By using the arithmetic device 100, it is possible to execute arithmetic processing according to a mathematical model such as a neural network.
  • the arithmetic device 100 has a plurality of signal lines 1, a plurality of input units 2, and a plurality of analog circuits 3.
  • Each signal line 1 is a line for transmitting an electric signal of a predetermined system, and receives an electric signal corresponding to a signal value.
  • the electric signal for example, an analog signal representing a signal value using an analog amount such as a pulse timing and a width is used.
  • FIG. 1 schematically illustrates the direction in which an electric signal is transmitted using arrows.
  • the electric signal corresponds to a pulse signal.
  • the analog circuit 3 corresponds to a product-sum operation device.
  • a plurality of signal lines 1 are connected to one analog circuit 3.
  • the signal line 1 that transmits an electric signal to the analog circuit 3 is an input signal line to which an electric signal is input for the analog circuit 3 to which the signal line 1 is connected.
  • the signal line 1 for transmitting the electric signal output from the analog circuit 3 is an output signal line for outputting the electric signal to the analog circuit 3 that outputs the electric signal.
  • the input signal line corresponds to the input line.
  • the plurality of input units 2 generate a plurality of electric signals corresponding to the input data 4.
  • the input data 4 is data to be processed using a neural network or the like implemented by the arithmetic device 100, for example. Therefore, it can be said that each signal value of the plurality of electric signals corresponding to the input data 4 is an input value to the arithmetic device 100.
  • the input data 4 for example, arbitrary data such as image data, audio data, and statistical data to be processed by the arithmetic device 100 is used.
  • image data for example, arbitrary data such as image data, audio data, and statistical data to be processed by the arithmetic device 100 is used.
  • image data is used as the input data 4
  • an electric signal having a signal value corresponding to a pixel value (RGB value, luminance value, or the like) of each pixel of the image data is generated.
  • an electric signal corresponding to the input data 4 may be appropriately generated according to the type of the input data 4 and the content of the processing by the arithmetic device 100.
  • the analog circuit 3 is an analog product-sum operation circuit that performs a product-sum operation based on an input electric signal.
  • the product-sum operation is an operation of adding a plurality of multiplied values obtained by multiplying each of a plurality of input values (signal values) by a load value. Therefore, the product-sum operation can be said to be a process of calculating the sum of the multiplied values (hereinafter referred to as the product-sum result).
  • the total number of electric signals input to one analog circuit 3 is N.
  • the number N of electric signals input to each analog circuit 3 is appropriately set for each circuit according to, for example, a model or accuracy of arithmetic processing.
  • a multiplication value of the load value w i corresponding to the signal value x i w i ⁇ x i is calculated.
  • the calculation of the multiplication value is executed for each electric signal (input signal line), and N multiplication values are calculated.
  • the value obtained by adding the N multiplied values is calculated as the product-sum result (sum of the N multiplied values). Therefore, the product-sum result calculated by one analog circuit 3 is represented by the following equation.
  • limit value that can take the pre-load force value w i is used.
  • the load value w i is, for example, calculated in advance and set in the analog circuit 3 (a synapse circuit 8 described later).
  • a load value w i with a limited value is calculated using a computer or the like so that a neural network or the like implemented in the arithmetic device 100 appropriately executes processing.
  • the arithmetic unit 100 the value of the load value w i is limited.
  • the value of the load value w i is limited so as to be included in a predetermined value range.
  • Signal values x i for example and the value represented by the electrical signal output from each of the input unit 2, a is a product-sum result output from the analog circuit 3. Accordingly, the input unit 2 and the analog circuit 3 can be said to function as a signal source for outputting a signal value x i.
  • the method of transmitting the signal value x i is not limited. For example (Equation 1) it may be is used any of the electrical signal transmitted through the signal values x i such operation is possible in the expression.
  • one analog circuit 3 outputs a pair of electric signals. With this pair of electric signals, it is possible to represent a product-sum result (signal value x i ) in the analog circuit 3 and the like. Incidentally, by using a single electrical signal, be configured such that one signal value x i is transmitted, this technology is applicable.
  • Electrical signal pair for example, a positive electrical signal representative of the positive signal values x i +, a negative signal values x i - and a negative electrical signal representative of.
  • the positive signal values x i + and negative signal values x i - are both 0 or a real number
  • one signal value x i is positive or negative signal value x i + and x i - also said to be a value represented by.
  • x i + is a positive signal value corresponds to a first input value
  • a negative signal values x i - corresponds to the second input value.
  • the analog circuit 3 outputs, as a positive electric signal, an electric signal representing a positive product-sum result (positive signal value x i + ) which is a sum of positive multiplied values, and outputs a negative electric signal as a negative electric signal. And outputs an electrical signal representing a negative product-sum result (negative signal value x i ⁇ ) which is the sum of the multiplied values of.
  • a plurality of positive signal lines 1a transmitting a positive electric signal and a plurality of negative signal lines 1b transmitting a negative electric signal are connected to the output side of one analog circuit 3, respectively.
  • the same positive electric signal is input to the plurality of positive signal lines 1a.
  • the same negative electric signal is input to the plurality of negative signal lines 1b.
  • a positive signal line 1a (positive input signal line 6a) is connected to a connection point of the analog circuit 3 indicated by a white circle.
  • the negative signal line 1b (negative input signal line 6b) is connected to the connection point of the analog circuit 3 indicated by the black circle.
  • each input unit 2 outputs an electric signal representing a signal value corresponding to the input data 4 as a positive electric signal, and outputs an electric signal having a signal value of zero as a negative electric signal.
  • the input unit 2 can be configured as described above.
  • the positive input signal line 6a positive electrical signal representative of the positive signal values x i + is input
  • a negative signal values x i - negative electrical signal representative of the is input
  • a pair of a plurality of input signal lines 6 paired with a negative input signal line 6a is used.
  • the arithmetic device 100 has a hierarchical structure in which a plurality of analog circuits 3 are provided in each of a plurality of layers.
  • a multilayer perceptron type neural network or the like is constructed.
  • a product-sum operation system can be constructed.
  • the number of analog circuits 3 provided in each layer, the number of layers, and the like are appropriately designed, for example, so that desired processing can be performed.
  • the number of analog circuits 3 provided in the j-th layer may be referred to as N j .
  • N analog signals generated by the N input units 2 are input to each analog circuit 3 provided in the first layer (lowest layer).
  • the respective analog circuit 3 of the first stage, the product-sum result for the signal values x i of the input data is calculated, and output to the analog circuit 3 provided in the next layer (second stage).
  • Each of the analog circuits 3 provided in the second layer receives N 1 electrical signals representing the product-sum results calculated in the first stage. Accordingly, when viewed from each analog circuit 3 in the second stage, each product-sum result calculated in the first stage becomes a signal value x i (positive and negative signal values x i + and x i ⁇ ) of the electric signal.
  • the product-sum result is calculated to signal values x i output from the first stage, is outputted further to the analog circuit 3 of the upper layer.
  • the product-sum result of the upper-layer analog circuit 3 is calculated based on the product-sum result calculated by the lower-layer analog circuit 3.
  • Such processing is performed a plurality of times, and the processing result is output from the analog circuit 3 included in the uppermost layer (the third layer in FIG. 1).
  • processing such as image recognition such as determining that the subject is a cat from image data (input data 4) obtained by photographing a cat.
  • the method of connecting the analog circuits 3 is not limited.
  • a plurality of analog circuits 3 may be appropriately connected so that desired processing can be performed.
  • the present technology is applicable even when the analog circuits 3 are connected so as to form another structure different from the hierarchical structure.
  • the configuration in which the product-sum result calculated in the lower layer is directly input to the upper layer has been described.
  • the present invention is not limited to this.
  • a conversion process or the like on the product-sum result may be executed.
  • a process of performing a non-linear conversion on the product-sum result of each analog circuit 3 using an activation function and inputting the conversion result to an upper layer is executed.
  • a function circuit 5 or the like that performs non-linear conversion on an electric signal by an activation function is used.
  • the function circuit 5 is provided between, for example, a lower layer and an upper layer, and is a circuit that appropriately converts a signal value of an input electric signal and outputs an electric signal according to a conversion result.
  • the function circuit 5 is provided, for example, for each signal line 1.
  • the number, arrangement, and the like of the function circuits 5 are appropriately set according to, for example, a mathematical model implemented in the arithmetic device 100.
  • the function circuit 5 is disposed on an input signal line for inputting an electric signal to the analog circuit 3 included in the third layer.
  • the function circuits 5 may be arranged on all the input signal lines, or the function circuits 5 may be selectively arranged on some of the input signal lines.
  • ReLU function for example, when the signal value x i is 0 or more, and outputs the signal value x i, and outputs 0 otherwise.
  • the processing accuracy of the arithmetic device 100 can be significantly improved.
  • FIG. 2 is a schematic diagram showing an example of an electric signal input to the analog circuit 3.
  • FIG. 2 schematically illustrates a graph representing waveforms of a pair of electric signals.
  • the horizontal axis of the graph is the time axis, and the vertical axis is the voltage of the electric signal.
  • the time axis of each graph is common.
  • FIG. 2 shows an example of a waveform of an electric signal of a spike timing method (hereinafter, referred to as a TACT method).
  • the TACT scheme the signals representing the signal values x i using the pulse timing of the electric signal is used. For example, based on the predetermined timing, as the timing at which pulses are input is early, the signal value x i which is represented by the pulse is increased.
  • an electric signal (pulse) is input to each of the plurality of input signal lines 6 within a predetermined input period T.
  • the signal value x i is represented by the pulse input timing in the input period T. Therefore, it will represent the largest signal value x i for example the start pulse input at the same time of the input period T.
  • FIG. 2 shows a rectangular pulse having a predetermined pulse width as an electric signal.
  • the present invention is not limited to this.
  • a continuous pulse that rises at a certain timing and maintains the ON level until a product-sum result is obtained may be used as the electric signal.
  • the analog circuit 3 according to the present embodiment can also be called a TACT-type analog circuit 3.
  • a time-axis analog product-sum operation using the TACT analog circuit 3 can be executed.
  • FIG. 3 is a schematic diagram showing a specific configuration example of the arithmetic device 100.
  • FIG. 3 schematically illustrates a plurality of analog circuits 3 provided in one layer.
  • the analog circuit 3 has a pair of output lines 7, a plurality of synapse circuits 8, and a neuron circuit 9.
  • the arithmetic unit 100 is a circuit having a crossbar configuration in which an input signal line 6 and each output line 7 are arranged orthogonally.
  • a positive input signal line 6a and a negative input signal line 6b are connected to each synapse circuit 8.
  • the pair of output lines 7 are arranged apart from each other along the extending direction.
  • the pair of output lines 7 has a positive output line 7a and a negative output line 7b.
  • Each output line 7 a and 7 b is connected to a neuron circuit 9 via a plurality of synapse circuits 8.
  • Synapse circuit 8 calculates multiplication value of the signal value x i and the load value w i represented by electric signals (w i ⁇ x i).
  • a load value w i is set in the synapse circuit 8 in advance.
  • a multiplication value (w i ⁇ x i + and w i ⁇ x i) Is generated.
  • a positive load value w i + when a positive load value w i + is set, the charge corresponding to w i + ⁇ x i + is output to the positive output line 7a, and the charge corresponding to w i + ⁇ x i ⁇ is negative. Is output to the output line 7a.
  • a negative load value w i - If is set, w i - ⁇ x i + corresponding to the charge is output to the negative output line 7b, w i - ⁇ x i - corresponding to charges Output to the positive output line 7b.
  • the analog circuit 3 a plurality of synapse circuit 8, based on the electric signal input to each of the plurality of input signal lines 6, corresponding to a multiplication value obtained by multiplying the weight value w i to the signal value x i An electric charge is generated.
  • the generated charges depending on the sign of the load value w i, is output to the positive and negative output lines 7a and 7b.
  • the synapse circuit 8 corresponds to a multiplication unit.
  • the synapse circuit 8 is configured using, for example, a resistance element that generates a current from a voltage represented by an electric signal, a switch element that switches the generated current to each output line, and outputs the output current.
  • a resistance element that generates a current from a voltage represented by an electric signal
  • a switch element that switches the generated current to each output line
  • outputs the output current For example, a circuit using a MOS (Metal Oxide Semiconductor) transistor or the like as a resistance element, a circuit using a flip-flop circuit or the like as a switch element, or the like may be configured.
  • MOS Metal Oxide Semiconductor
  • the specific configuration of the synapse circuit 8 is not limited.
  • FIG. 4 is a schematic diagram showing a configuration example of the neuron circuit 9.
  • the neuron circuit 9 has a storage unit 11 and an output unit 12.
  • FIG. 4 shows a two-input two-output neuron circuit 9 connected to a pair of output lines 7 and a pair of output signal lines 10.
  • the storage unit 11 stores the electric charges output to the pair of output lines 7 by the plurality of synapse circuits 8.
  • the storage unit 11 has two capacitors 13a and 13b. Capacitor 13a is connected between positive output line 7a and GND. The capacitor 13b is connected between the negative output line 7b and GND.
  • the storage unit 11 is appropriately provided with a switch or the like for discharging the charge stored in each capacitor 13.
  • the output unit 12 based on the charge stored in the storage unit 11, and outputs a sum of products signals representing the sum of the multiplied values (w i ⁇ x i).
  • two signals are generated as the product-sum signal: a positive product-sum signal representing the positive and negative product-sum results and a negative product-sum signal.
  • the neuron circuit 9 (the storage unit 11 and the output unit 12) stores the electric charge corresponding to the multiplication value generated by each of the plurality of synapse circuits 8, so that the product-sum signal representing the sum of the multiplication values is obtained. Is output.
  • the output unit outputs a product-sum signal (positive / negative product-sum signal) representing the sum of the multiplied values within a predetermined output period.
  • the predetermined output period is, for example, a period having the same length as the input period T.
  • the output period is a period that follows the input period, and starts, for example, at the same time as the end of the input period, and ends when the period T elapses.
  • the output period may be described as an output period T as a period having the same length as the input period T.
  • an electric signal of the TACT system is used.
  • a TACT-type electric signal is input to the synapse circuit 8
  • charges are continuously generated at a constant rate from the pulse input timing and output to the output line 7.
  • charges are stored in the capacitor 13 at a constant rate.
  • detecting the timing when the potential of the capacitor 13 exceeds a predetermined threshold value it is possible to detect the total amount of charges output to the output line 7.
  • the total product-sum result calculated by one analog circuit 3 can be calculated by using the following equation, for example, as shown in Patent Document 1.
  • ⁇ + and ⁇ - are thresholds for detecting the potentials of the capacitors 13a and 13b.
  • is the sum of the load values w i set for each synapse circuit 8.
  • ⁇ + and ⁇ ⁇ are the sum of the positive load values w i + and the sum of the negative load values
  • , respectively, where ⁇ ⁇ + ⁇ ⁇ .
  • Tin is an input period T (output period T).
  • t ⁇ + and t ⁇ ⁇ are timings when the potentials of the capacitors 13a and 13b exceed the respective thresholds.
  • the output unit 12 generates, as a positive product-sum signal, an electric signal of the TACT system in which a pulse is started at a timing of t ⁇ + .
  • t [nu - electric signal TACT scheme pulse is started at the timing of is generated.
  • ⁇ + which is the sum of the positive load values w i + and ⁇ ⁇ which is the sum of the negative load values
  • are different from each other.
  • a pair of positive and negative input signal lines 6a and 6b are provided to multiply the positive signal value x i + and the negative signal value x i - by a common load value w i .
  • equation (2) which is the product-sum result calculated by the analog circuit 203, is modified as follows.
  • the timing t [nu potential of the capacitor 13b exceeds the threshold value - from the difference potential of the capacitor 13b is obtained by subtracting the timing t [nu + the threshold is exceeded It can be calculated.
  • Such operations for example, a positive product sum signal representing the timing t [nu +, timing t [nu - on the basis of the negative product sum signal representative of, can be easily performed by using a logic circuit or the like is there.
  • a positive signal value x i + and a negative signal value x i ⁇ that is, a positive product-sum signal and a negative product-sum signal, are sent from the lower-layer analog circuit 3 to the upper-layer analog circuit 3.
  • the positive and negative sum-of-product signals are transmitted between the layers without calculating the sum-of-products result of the entirety represented by Expression (3). Thereby, for example, it is not necessary to calculate the total product-sum result for each analog circuit 3, and the circuit configuration can be simplified.
  • FIG. 5 is a schematic diagram for explaining the operation of the accumulator and the analog circuit 3.
  • the upper part of FIG. 5 is a functional block diagram of the accumulator 15, and the lower part of FIG. 5 is a functional block diagram of the analog circuit 3.
  • the product-sum unit 15 is configured to be able to execute the same processing as that of the analog circuit 3. Also referred to as an input value x i of the signal values x i.
  • Product-sum unit 15 performs a product-sum operation based on the transmitted input values x i, for example, as a numerical value.
  • the accumulator 15 is realized by, for example, a dedicated digital circuit, a general-purpose digital processor, or the like.
  • the product-sum unit 15 can also be regarded as a functional block that performs a product-sum operation configured by a program.
  • Figure 5 is, i-th input value x i that is input to the product-sum unit 15 is shown schematically with arrows.
  • the number of input values x i input to the product-sum unit 15 is set to N.
  • the sum-product unit 15, the load value w i to be multiplied with the respective input value x i is set.
  • the load value w i to be -1 ⁇ w i ⁇ + 1 is set.
  • a predetermined bias term b is set in the product-sum unit 15.
  • the bias term b is, for example, a parameter for biasing the output of each product-sum device 15, and is appropriately set according to, for example, processing to be implemented.
  • the product-sum unit 15 one output value y on the basis of the N input values x i are calculated.
  • N pairs of input signal lines 6 are connected to the analog circuit 3 with the positive and negative input signal lines 6a and 6b as a pair.
  • electrical signals e.g., positive and negative product sum signal
  • the i-th input value x i is represented.
  • the positive and negative input signal lines 6a and 6b the timing t + and timing t - electric signal TACT scheme representing a is input.
  • FIG 5, i-th input value x i timing corresponding to t i + and t i - is shown schematically with arrows.
  • t i + and t i by the relation - may be converted to x i.
  • the analog circuit 3, such (t i +, t i - ) set is the N input. This corresponds to the N input values x i is inputted.
  • the analog circuit 3 N pieces of (+ t i, t i - ) N pieces of load value w i to be multiplied is set.
  • a bias term b is set.
  • Load value is set to the analog circuit 3 w i and the bias term b, is similar to the load value w i and the bias term that is set to the product sum 15.
  • analog circuit 3 the (t i +, t i - ) and the charge corresponding to the multiplication value of the load value w i is accumulated as appropriate, the positive product sum signal (timing t [nu + electrical signal) and the negative product sum signal (timing t [nu - electrical signal) is outputted.
  • the analog circuit 3 the input of the N pairs (t i +, t i - ) of a pair of output (t ⁇ +, t ⁇ - ) is calculated.
  • the output (t ⁇ + , t ⁇ ⁇ ) of the analog circuit 3 is used as it is as the input to the analog circuit 3 at the subsequent stage without calculating, for example, the total sum of products or the like.
  • the difference value is information represented by the output of the analog circuit 3 (t ⁇ - -t ⁇ + ) each time it passes through the analog circuit 3, is a factor 1 / beta 0 You.
  • the difference value (t ⁇ - -t ⁇ +) is also said to be small.
  • FIG. 6 is a schematic diagram for explaining the operation of the multiply-accumulator 15 connected in two stages and the analog circuit 3 connected in two stages.
  • parameters relating to the first and second stages are represented using superscripts (1) and (2).
  • FIG. 6A schematically illustrates the sum-of-products 15a and 15b connected in series.
  • the output value y (1) output from the first-stage product-sumer 15a is used as it is as an input to the second-stage product-sumer 15b.
  • the output value y (1) representing the overall product-sum result is directly input to the next stage, the value representing the computation result up to that time does not decrease by passing through the product-sum unit 15. .
  • FIG. 6B schematically illustrates analog circuits 3a and 3b connected in series.
  • a value (t ⁇ (1) ⁇ t ⁇ (1) + ) related to the product-sum result represented by the output (t ⁇ (1) + , t ⁇ (1) ⁇ ) of the first-stage analog circuit 3a / T in is comprised of the original product-sum result (y (1)) the 1 / ⁇ 0 (1) multiplied by value. That is, the value representing the calculation result becomes small at the time when the signal passes through the first-stage analog circuit 3a.
  • the output (t ⁇ (1) + , t ⁇ (1) ⁇ ) of the first stage is directly input to the second-stage analog circuit 3b. That is, it can be said that a value obtained by multiplying the original product-sum result by 1 / ⁇ 0 (1) is input to the second-stage analog circuit 3b. Based on the value multiplied by 1 / ⁇ 0 (1) , a time axis analog calculation is performed.
  • the value (t ⁇ (2) ⁇ ⁇ t ⁇ (2) + ) relating to the product-sum result represented by the output (t ⁇ (2) + , t ⁇ (2) ⁇ ) of the second-stage analog circuit 3b ) / T in is a value obtained by multiplying the original product-sum result (y (2) ) by 1 / ( ⁇ 0 (1) ⁇ ⁇ 0 (2) ).
  • b / ⁇ 0 (1) is used as the bias value.
  • the value representing the calculation result up to that time becomes smaller. That is, each time passing through one of the analog circuit 3, depending on the total beta 0 of the set load value to the analog circuit 3, the difference value (t ⁇ - -t ⁇ +) is a factor 1 / beta 0, The value for the sum of products result decreases. For this reason, in the calculation performed through the plurality of analog circuits 3, for example, the final calculation result may be reduced.
  • FIG. 7 is a schematic diagram illustrating an example of the arithmetic device 100 using the analog circuit 3.
  • the arithmetic device 100 has a three-layer structure including an input layer 30, an intermediate layer 31, and an output layer 32. In the example shown in FIG. 7, 28 ⁇ 28 pixel image data is used as input data.
  • the arithmetic device 100 is equipped with a function of recognizing, for example, ten numbers from 0 to 9.
  • the input layer 30 includes a convolution layer 33 (Conv1), a ReLU function unit 34a, and a pooling unit 35.
  • the convolution layer 33 is a layer that executes a convolution process on image data in units of a target range (5 ⁇ 5). For example, a product-sum operation is performed on 28 ⁇ 28 image data by shifting a 5 ⁇ 5 target range by one pixel.
  • the operation in the 5 ⁇ 5 target range is referred to as a unit operation.
  • 30 types of unit calculations are executed for one target range. For example, when the 5 ⁇ 5 target range is shifted by one pixel with respect to the 28 ⁇ 28 image data, the number of times the target range is shifted is 24 ⁇ 24. Therefore, 24 ⁇ 24 ⁇ 30 unit operations are performed on one image data. In other words, since 30 types of unit operations are performed for 24 ⁇ 24 positions, the total number of unit operations is 24 ⁇ 24 ⁇ 30.
  • the convolution layer 33 In the convolution layer 33, one unit operation is executed by one analog circuit 3. Therefore, 25 pairs of input signal lines 6 are connected to one analog circuit 3. That is, the convolution layer 33 is provided with 24 ⁇ 24 ⁇ 30 analog circuits 3 for executing a product-sum operation on 5 ⁇ 5 data.
  • ⁇ Data for one pixel is input to the analog circuit 3 via the positive and negative input signal lines 6a and 6b, for example. Therefore, 25 pairs of input signal lines 6 are connected to the analog circuit 3.
  • the analog circuit 3 outputs a product-sum result via the pair of output signal lines 10a and 10b (see FIG. 3 and the like).
  • the ReLU function unit 34a is a circuit that applies a ReLU function to the outputs of the 24 ⁇ 24 ⁇ 30 analog circuits 3. For example, when the product-sum result of the analog circuit 3 is positive, the product-sum result is output as it is, and when it is negative, 0 is output.
  • the intermediate layer 31 has a first FC layer 36 (FC1: Full ⁇ Connection ⁇ 1) and a ReLU function unit 34b.
  • FC1 Full ⁇ Connection ⁇ 1
  • ReLU function unit 34b applies a ReLU function to the 100 product-sum results output from the first FC layer 36.
  • the output layer 32 includes a second FC layer 37 (FC2) and a SoftMax unit 38.
  • FC2 FC2
  • SoftMax unit 38 converts the ten product-sum results output from the second FC layer 37 into output values (probability values or the like) using a predetermined conversion function (SoftMax function or the like).
  • the ten results output from the SoftMax unit 38 are output results of the arithmetic device 100 (for example, recognition results of ten numbers).
  • FIG. 8 is a schematic diagram for explaining an example of the operation of the arithmetic device shown in FIG. FIG. 8 illustrates the analog circuits 3a, 3b, and 3c included in the input layer 30 (convolution layer 33), the intermediate layer 31 (first FC layer 36), and the output layer 32 (second FC layer 37). Have been.
  • the analog circuits 3a to 3c are circuits having 25 inputs, 4320 inputs, and 100 inputs, respectively. Note that one input corresponds to connection of a pair of input signal lines 6a and 6b.
  • a binary connect for binarizing and setting the load value w i is used.
  • Binary connect is a technique used in image recognition using, for example, a neural network.
  • By binarizing the load value w i it is possible to simplify the structure of the synapse circuit 8 load value w i is set.
  • (t v (1) + , t v (1)- ) is output by the analog circuit 3a.
  • the difference value (t ⁇ (1) ⁇ t ⁇ (1) + ) / T in of this output is a value obtained by multiplying the original product-sum result (y (1) ) by 1/26.
  • the output of the analog circuit 3a is directly input to the analog circuit 3b of the intermediate layer 31 via the ReLU function section 34a and the pooling section 35.
  • (t ⁇ (2) + , t ⁇ (2)- ) is output by the analog circuit 3b based on the calculation result multiplied by 1/26 .
  • the difference value (t ⁇ (2) ⁇ t ⁇ (2) + ) / T in of the output is a value obtained by multiplying the original product-sum result (y (2) ) by 1 / (26 ⁇ 4321).
  • the output of the analog circuit 3b is directly input to the analog circuit 3d of the output layer 32 via the ReLU function unit 34b.
  • (t ⁇ (3) + , t ⁇ (3) ⁇ ) is output by the analog circuit 3d based on the calculation result multiplied by 1 / (26 ⁇ 4321).
  • the difference value (t ⁇ (3) ⁇ t ⁇ (3) + ) / T in of this output is obtained by multiplying the original product-sum result (y (3) ) by 1 / (26 ⁇ 4321 ⁇ 101).
  • the output of the analog circuit 3c is input to the SoftMax unit 38, and the calculation result of the calculation device 100 is output.
  • FIG. 9 is a graph showing a change in the difference value of the timing output from the analog circuit 3.
  • the graph shown in FIG. 9 shows the distribution width of the difference value (t ⁇ (n) ⁇ t ⁇ (n) + ) output from the analog circuit 3 included in each layer.
  • the width of the distribution is represented by a value of ⁇ 3 ⁇ in the distribution of the difference value (t ⁇ (n) ⁇ t ⁇ (n) + ), and the unit is seconds.
  • is the standard deviation of the distribution.
  • Incidentally input period T in FIG. 9 is set to 1 ⁇ seconds.
  • the arithmetic unit 100 for example, by detecting a difference value (t ⁇ (n) ⁇ t ⁇ (n) + ) output from each analog circuit 3, it is possible to compare the magnitude of the product sum result. is there. Therefore, it can be said that the narrower the width of the distribution of difference values, the more difficult it is to compare, for example, individual product-sum results.
  • the distribution width of the difference value (t ⁇ (1) ⁇ t ⁇ (1) + ) output from the convolution layer 33 is about 0.5 ⁇ sec.
  • the width of the distribution of the difference value (t ⁇ (2) ⁇ t ⁇ (2) + ) output from the first FC layer 36 is reduced to about 10 nsec.
  • the width of the distribution of the difference value (t ⁇ (3) ⁇ t ⁇ (3) + ) output from the second FC layer 37 decreases to about 0.5 nsec.
  • the parameter (difference value) representing the operation result may decrease every time the signal passes through each layer.
  • FIG. 10 is a graph showing a change in each output of the sum of products 15 and the analog circuit 3.
  • the distribution width ( ⁇ 3 ⁇ ) of the output (difference value) of each unit in the arithmetic unit 100 configured by the analog circuit 3 is indicated by black data points.
  • the graph of the data points in black is a detailed graph of the graph shown in FIG. Note that the leftmost data point indicates the distribution width of the input to the arithmetic unit 100.
  • the distribution width ( ⁇ 3 ⁇ ) of the output value y of each unit when the arithmetic unit 100 shown in FIG. 7 is configured using the product-sum unit 15 is indicated by white data points.
  • the output value y is a dimensionless quantity.
  • the leftmost data point indicates the distribution width of the input value.
  • the distribution width of the output value y ( output value y (3) of FC2) of the product-sum device 15 at the last stage is larger than the distribution width of the first input value.
  • the distribution width of the output value y may be large. Note that the final output value y may decrease depending on the configuration of the accumulator 15.
  • the value of the load values w i set in each analog circuits 3 is limited to be included in a predetermined range.
  • the predetermined range of values for example, in the range of a preset possible values of the load values w i. That is, the respective analog circuits 3, it can be said that the limited load value w i of pre-value is set.
  • Using a load value w i to the value range is limited, by performing a time axis analog sum-of-products operation, product-sum operation method according to this embodiment is executed.
  • the predetermined value range is configured to include a plurality of limit values. That is, the possible values of load value w i is limited by the discrete limit. Therefore, the load value w i will be set to one of a plurality of limit values. By discretely limiting the load value w i in this manner, for example, the above-described ⁇ 0 or the like can be reduced.
  • FIG 11 is a flowchart showing an example of a restriction processing load value w i.
  • the load value w i is calculated in advance using an arithmetic device such as a computer. At this time, the value of the load value w i to be included in the predetermined range is limited.
  • Quantization front load v i is calculated first using a computer or the like (step 101).
  • a computer model such as a neural network implemented in the arithmetic device 100 is constructed.
  • a node corresponding to the analog circuit 3 included in the arithmetic device 100 is provided.
  • the load corresponding to the load value w i of the synapse circuit 8 is set.
  • a load (the strength of synaptic connection) according to the target processing is calculated. That is, the same number of loads as the load values w i used in the arithmetic unit 100 are calculated.
  • the computer model is configured such that each load is calculated as a value using a floating-point expression.
  • the floating-point load represented by the expression i.e. a load not been quantized by positive value
  • v i is used as a quantization front load
  • the pre-quantization load v i is represented by an arbitrary real number including, for example, positive and negative. Further, for example, quantization front load v i may be calculated within a predetermined range such - ⁇ ⁇ v i ⁇ + ⁇ . Alternatively, the pre-quantization weight v may be calculated in a standardized range such as ⁇ 1 ⁇ v i ⁇ + 1. In addition, a method of calculating a quantization preload v i is not limited. In the present embodiment, the pre-quantization load v i corresponds to a value serving as a load value.
  • a load limiting process for setting a load value w i based on the absolute value of the pre-quantization load v i is executed (step 102).
  • the absolute value of the quantized preload v i corresponds to the first value is the absolute value of the load value.
  • the load limiting process corresponds to a first process.
  • Load limiting processing is executed one of the N set in the analog circuit 3 before quantization load v i (load value w i) as a target. That is, the load value w i is set to each of the plurality of synapse circuit 8 included in the analog circuit 3, a load value w i in a first rate in order from the absolute value of the quantized preload v i is smaller The process of setting to 0 is executed. Note that the first ratio is appropriately set according to the processing accuracy and the like required of the arithmetic device 100.
  • the absolute value of the N quantized preload v i is calculated relative to the number of quantization preload v i corresponding to the first rate, zero the smaller absolute value in the order Is assigned. For example, if the first rate is set to 1/2, N / 2 pieces of quantization preload v i from the smallest absolute value is 0. In this case, a large N / 2 pieces of quantization preload v i of the absolute value, the value of the calculation is maintained. Further, for example, if the first rate is set to 3/4, N ⁇ 3/4 pieces of quantization preload v i from the smallest absolute value is 0. In this case, a large N / 4 four quantization preload v i of the absolute value, the value of the calculation is maintained.
  • a binarization process is performed on the pre-quantization load v i to calculate a weight value w i (step 103).
  • Binarization process for example before the quantization based on the value of the load v i, is a process of calculating the two values.
  • a positive limit value and a negative limit value whose absolute values are equal to each other are calculated by the binarization process.
  • the positive and negative of the limit value is set as the load value w i.
  • ⁇ 1 is set as the corresponding weight value w i .
  • +1 is set as the corresponding load value w i.
  • Each calculated load value w i is recorded as load value data.
  • the load value w i is set to the analog circuit 3 (each synapse circuit 8) (step 104). For example, by using a wiring or the like for setting the load value w i provided in the analog circuit 3, a load value w i stored in the load value data is set to each synapse circuit 8. Further, for example, an analog circuit 3 or the like designed based on the calculated load value w i may be used. In addition, the method for setting the load value w i in the analog circuit 3 is not limited.
  • three values of ⁇ 1, 0, and +1 are set as the load values w i .
  • the first rate is set to 50% (1/2)
  • it is at least half of the load value w i is set to 0.
  • the load value w i having a small effect is spread, and the load value w i can be made sparse (sparse).
  • the time-axis analog product-sum operation is executed using the load value w i thus sparsed.
  • FIG. 12 is a schematic diagram for explaining an example of the operation of the analog circuit 3 in which the sparsed load value w i is set.
  • FIG. 12 shows the analog circuit 3b included in the first FC layer 36 (intermediate layer 31) shown in FIG.
  • the load value w i is set in front of the analog circuit 3a shall not sparsified.
  • a load value w i that is sparse into analog circuits 3a and 3c or the like contained in the other layers are also set, the contents to be described below are applicable.
  • the analog circuit 3b included in the first FC layer 36 is a circuit with 4320 inputs. That is, 4320 load values w i are set in the analog circuit 3.
  • 4320 pieces of load value w i is calculated.
  • the value of ⁇ 0 (2) decreases.
  • the value representing the product-sum result output from the analog circuit 3b that is, the difference value (t ⁇ (1) ⁇ t ⁇ (1) + ) / T in of the output is increased as compared with the case where the sparsification is not performed. It is possible to do.
  • the sparsification of the load increases the individual output difference values, thereby expanding the distribution of the difference values. This alleviates the problem described with reference to FIG. 9 that it is difficult to compare the product-sum results.
  • FIG. 13 is a graph showing a change in the difference value of the timing output from the analog circuit 3. 13, the change in the difference value of each layer when sparsified load value w i is set is shown in an analog circuit 3b.
  • the non-sparse weight values w i ( ⁇ 1) are set in the analog circuits 3a and 3c which are the preceding and subsequent stages of the analog circuit 3b.
  • White data points are graphs when the first ratio is set to 50%, and gray data points are graphs when the first ratio is set to 75%. Further, FIG. 13 shows the graph described with reference to FIG. 9, that is, the graph in the case where the weight values that are not sparsed by all the analog circuits 3a to 3c are used, are indicated by black data points.
  • the distribution width ⁇ 3 ⁇ of the difference value of the convolutional layer 33 (Conv1) arranged in the first stage has substantially the same value in the three graphs.
  • the distribution width of the difference value of the first FC layer 36 (FC1) arranged in the second stage increases as the first ratio increases. That is, the load value w i 0 is as is often set, the value of the second stage is increased.
  • the distribution width of the difference value of the second FC layer 37 (FC2) arranged in the third row also increases as the first ratio increases, similarly to the result of the second row.
  • FIG. 14 is a graph showing the rate of change of the standard deviation ⁇ of the difference value.
  • FIG. 15 is a table showing the product-sum results and the rate of change of the standard deviation ⁇ of the difference value.
  • FIG. 14 shows, using a bar graph, the rate of change of the standard deviation ⁇ of the difference value when four types of sparsification (load limiting processing) are performed.
  • the rate of change of the standard deviation ⁇ is the rate of change of the difference value with reference to the standard deviation ⁇ 0 when sparsification is not performed. For example, when the rate of change is 1, it is the same as the standard deviation ⁇ 0 , and there is no change.
  • load value w i of 50% pattern was 0 randomly A
  • the rate of change of the pattern B was 0 random 75% of the load value w i is shown.
  • the rate of change of the absolute value of the pattern C and 50% to 0 from the smallest was shown.
  • the pattern D which 75% was from 0 to smaller absolute value of the quantized front load v i.
  • FIG. 15 shows the change rates of the product-sum result y, the difference value, and the standard deviation of the normalized difference value in the patterns C and D.
  • the product-sum result y is the original product-sum result y calculated based on, for example, Equation (4). For example, by sparse the load value w i, if the value of the multiplication value of the input value x i and the load value w i (w i ⁇ x i ) is 0 increases. Thus the product-sum result y representing the sum of the multiplication value decreases with sparsified load value w i.
  • the rate of change of the standard deviation of the product-sum result y is normalized.
  • the standard deviation change rate of the normalized difference value was 2.06 ( ⁇ 2) for pattern C, and 3.95 ( ⁇ 4) for pattern D.
  • the rate of change after normalization matches the ratio (first ratio) of the sparsed load value w i .
  • a load limitation processing described above converts the load value w i to 0 at a predetermined rate from the side having a small absolute value of the quantized preload v i (first rate)
  • the method was used.
  • This method can be said to be a method in which, of the N load values w i , those having relatively small values before binarization are set to 0.
  • the load value w i can be limited by directly evaluating the absolute value of the value before binarization.
  • the load limiting process when the absolute value of the quantized preload v i is equal to or less than the first threshold value d, the processing of the load value w i to 0 is executed.
  • the magnitude of the quantization front load v i it is possible to directly evaluate the magnitude of the quantization front load v i.
  • N is the number of quantization preload v i
  • sigma represents the sum of the absolute values of the N quantized front load v i.
  • the first threshold value d may be calculated at another ratio such as 80% or 40% of ave.
  • a load setting process performs threshold determination on the basis of the first threshold d, 0 as a load value w i corresponding to the first quantization preload absolute value even more the threshold d is small v i is calculated.
  • ⁇ 1 is calculated in accordance with the sign of the quantization front load v i. That is, the load value w i will be calculated using the following equation.
  • the calculated load value w i is recorded as the load value data 39 and set in the analog circuit 3 (each synaptic circuit).
  • FIG. 16 is a graph showing the distribution of the load values w i sparsed using the first threshold value d.
  • the horizontal axis of the graph is the load value w i
  • the vertical axis is the frequency (Frequency) obtained by dividing the set number of load values w i by the total number of loads. 16 when 70% of the average value ave of the absolute value and the first threshold value d, the distribution of the load value w i is set to the analog circuit 3 included in a hierarchy is shown.
  • the load value w i of about 70% is set to 0.
  • the remaining 30% of the load value w i is set to ⁇ 1.
  • a product-sum result for substantially 30 inputs is output from, for example, the analog circuit 3 having 100 inputs.
  • FIG. 17 is a schematic diagram for explaining a product-sum result represented by an electric signal.
  • the TACT-type electric signal (pulse signal) is a signal representing a numerical value within the set input period T.
  • the input period T is schematically illustrated using arrows.
  • the time resolution that can be expressed by the pulse timing (or pulse width) in the input period T is K bits.
  • the unit output (value output 1) time can be used to represent the length is about 4 times. That is, the output ratio due to sparsification is increased about four times. This makes it possible to detect the product-sum result with sufficiently high accuracy. As a result, it becomes possible to appropriately execute various processes using the time-axis analog product-sum operation.
  • the input value x electric signal corresponding to the i is inputted from a plurality of input signal lines 6, the multiplied value of the input value x i and the load value w i based on an electrical signal Is generated.
  • a product-sum signal representing the sum of the multiplied values by accumulating the generated charges is output.
  • the value of the load value w i is limited.
  • the load values w i for example, it is possible to adjust the sum of the multiplication values. As a result, it is possible to accurately detect the operation result in the analog circuit that performs the product-sum operation.
  • the possible values of the signal values (input values) of the electric signals input to each signal line 1 are limited.
  • the value of the signal value is restricted so as to be included in the predetermined value range.
  • FIG. 18 is a schematic diagram illustrating a configuration example of an arithmetic device 200 according to the second embodiment.
  • the arithmetic device 200 has a plurality of analog circuits 203 and a plurality of signal limiting circuits 204.
  • Each analog circuit 203 has the same configuration as, for example, the analog circuit 3 described with reference to FIG. Note that the analog circuit 203 illustrated in FIG. 18 is, for example, the analog circuit 203 included in the intermediate layer.
  • the signal limiting circuit 204 is a circuit that limits the range of signal values.
  • the signal limiting circuit 204 is provided, for example, on a signal line (positive / negative input signal lines 6a and 6b / positive / negative output signal lines 10a and 10b) connecting the preceding and subsequent analog circuits 203.
  • the value of the signal value transmitted through the signal line 1 is limited by the signal limiting circuit 204.
  • a plurality of signal limiting circuits 204 connected to the output side of the intermediate layer are shown.
  • the signal limiting circuit 204 may be provided on the input side of the intermediate layer (output side of the pre-neuron) without being limited to this.
  • the signal limiting circuit 204 includes a product-sum signal (a positive product-sum signal and a negative product-sum signal) representing the product-sum result s j calculated by the analog circuit 203 (the output unit of the neuron circuit 209). Signal) is input.
  • the subscript j is an index indicating the analog circuit 203 included in the intermediate layer.
  • the signal output from the signal limiting circuit 204 is input to the analog circuit 203 at the subsequent stage. Accordingly, the signal output from the signal limiting circuit 204 is an input signal, and the value represented by the input signal is the input value when viewed from the analog circuit 203 at the subsequent stage. That is, the signal limiting circuit 204 is a circuit that limits an input value input to the subsequent analog circuit 203.
  • a signal output from the signal limiting circuit 204 describes the value represented by the subsequent input signal and subsequent input values x j. Therefore, it can be said that the product-sum result s j input to the signal limiting circuit 204 is a value that becomes the subsequent input value x j .
  • the subsequent-stage input value x j is an example of an input value.
  • the signal limiting circuit 204 corresponds to a limiting unit.
  • the signal limiting circuit 204 executes a signal limiting process for setting a subsequent-stage input value x j based on the absolute value of the product-sum result s j .
  • the product-sum result s j is represented using a pair of positive and negative product-sum signals.
  • the absolute value of the product-sum result s j is referred to from the positive and negative product-sum signals, and the value of the subsequent input value x j is set based on the absolute value.
  • the signal limiting circuit 204 performs a signal limiting process based on the product-sum signal output from the output unit of the neuron circuit 209.
  • the absolute value of the product-sum result s j corresponds to the second value
  • the signal limiting process corresponds to the second process.
  • the number of products determined by the second ratio is determined in order from the smaller absolute value of the sum-of-products results s j .
  • a process of setting the subsequent-stage input value xj to 0 is executed. That is, among the M subsequent input values x j , those having a small absolute value of the original value (product-sum result s j ) are set to 0 at the second ratio (for example, 70%, 50%, etc.). You. This makes it possible to realize a sparse of small subsequent input value x j of value.
  • the M subsequent-stage input signals (later-stage input values x j ) are respectively input to a plurality of synapse circuits 208 provided in the subsequent-stage analog circuit 203. Therefore, the above-described signal limiting process is performed on the second-stage input value x j represented by the second-stage input signal input to each of the plurality of synapse circuits 208 in the order of the absolute value of the product-sum result s j in ascending order. It can be said that this is a process of setting the post-stage input value xj to 0 at the ratio of.
  • the signal limiting circuit 204 for example, as the absolute value of the sum-of-products result s j, the difference value of the timing represented by the positive and negative product sum signal
  • the timings of the pulse signals generated by the respective signal limiting circuits 204 are compared, and the number of pulse signals according to the second ratio is set to 0 in ascending order of the difference value.
  • the target pulse signal wiring is switched off.
  • a signal representing 0 is output instead. This makes it possible to set the post-stage input value xj to 0 at the second rate.
  • the signal limiting circuit 204 is appropriately configured using, for example, a logic circuit that calculates the above-described difference value, a counter circuit that compares and counts the timing, and a switch circuit that switches ON / OFF of the wiring.
  • the specific configuration of the signal limiting circuit 204 is not limited.
  • a process of setting the subsequent-stage input value x j to 0 when the absolute value of the product-sum result s j is equal to or smaller than the second threshold d may be executed.
  • Use pulse signal representing the (absolute value of the sum-of-products result s j) is generated, for the pulse timing of the second threshold d
  • the wiring of the pulse signal is switched to OFF. For example, such processing is performed.
  • the signal limiting circuit 204 by appropriately configuring the signal limiting circuit 204, it is possible to implement a desired signal limiting process. Thus, from the middle layer, it is possible to properly sparse the subsequent input value x j input to the subsequent upper layer.
  • the product-sum result s j is used as it is. That is, the positive / negative product-sum signal is output as it is as a subsequent-stage input signal.
  • the subsequent-stage input value x j may be binarized to ⁇ 1 according to the sign of the product-sum result s j .
  • the number of inputs is substantially reduced. That is, among the multiplication values of the input value and the load value, the number of the input values of 0 increases, so that the number of the multiplication values of 0 increases (see (Equation 1) and the like). This makes it possible to reduce the product-sum result calculated by each analog circuit 203 in the upper layer.
  • the arithmetic device 100 in which the load value with the limited value range is set and the arithmetic device 200 in which the input value with the limited value range is used have been described.
  • the present invention is not limited to this, and an arithmetic unit may be configured in which a load value with a limited value range is set and an input value with a limited value range is used. That is, both the load value and the input value may be sparsified.
  • the range of the load value and the input value is limited using a plurality of limit values ( ⁇ 1, 0, etc.).
  • the present invention is not limited to this.
  • the range of the load value and the input value may be appropriately set so that the product-sum result calculated by the analog circuit becomes small.
  • ⁇ 5Five values such as -1, -0.5, 0, +0.5, and +1 may be used as the plurality of limit values.
  • a determination process or the like for setting the input value and the load value to the respective limit values based on the magnitudes of the values that are the basis of the input value and the load value may be executed.
  • the processing accuracy can be improved by the arithmetic device.
  • discrete values that are not standardized, such as ⁇ 3, ⁇ 2, ⁇ 1, and 0, may be used as the limit values.
  • the method of setting the limit value is not limited.
  • the values of the load value and the input value may be limited so as to fall within a predetermined range. For example, based on the absolute value of the load value and the value based on the input value (the load before quantization and the product sum result), the value whose original value is small is set in the range of -0.1 to +0.1. Processing such as restriction to fit may be executed. As described above, even when the load value and the input value are limited to a continuous value range, it is possible to reduce the product-sum result and the like, and it is possible to improve the detection accuracy. For example, such processing may be performed.
  • the time axis analog product-sum operation using the TACT-type electric signal has been described.
  • the method of the electric signal is not limited.
  • an electric signal of an arbitrary method that can execute a time-axis analog product-sum operation may be used.
  • an electric signal of a pulse width modulation (PWM) method may be used as the electric signal.
  • the electrical signal of the PWM system is a signal representing an input value using a pulse width.
  • the pulse width of the electric signal is typically set so as to fall within a predetermined input period. Therefore, the accuracy of the input value represented by the electric signal decreases as the input value increases. For example, even when a PWM-type electric signal is used, it is possible to reduce the product-sum result and the like by sparsifying the load value and the input value. As a result, it is possible to accurately detect the calculation result.
  • a circuit that sparses the load value (hereinafter, referred to as a load limiting circuit) may be provided.
  • the load limiting circuit limits the value of the load value set in each synapse circuit (multiplication unit) of the analog circuit (product-sum operation device).
  • the sparsification by the load limiting circuit is typically performed on a plurality of synapse circuits included in one analog circuit.
  • the load limiting circuit for example, a plurality of quantization preload v i which are calculated corresponding to each synapse circuit, the process of limiting such that the load value w i included in a predetermined range is performed.
  • the load limiting circuit calculates the absolute value of the input weight v i before quantization, selects a predetermined number of loads in ascending order of absolute value, and calculates the weight value of the selected load after quantization. Substitute zero for w i and output.
  • the weight limiting circuit calculates the absolute value of the input pre-quantization load v i , and substitutes zero for the post-quantization weight value w i for a load whose absolute value is smaller than the threshold d. Output.
  • the load value w i output from the load limiting circuit is set in each synapse circuit.
  • the specific configuration of the load limiting circuit is not limited, and can be realized, for example, by appropriately combining a comparator, a logic element, a storage element, and the like. Further, the load limiting circuit may be provided for each analog circuit, or may be configured as a circuit common to a plurality of analog circuits. In any case, as the load limiting circuit, a circuit that can sparsely input the load (the pre-quantization load v i ) and set it in each synapse circuit is used.
  • the circuit for making the input value sparse (the signal limiting circuit 204) has been described.
  • a circuit a signal limiting circuit and a load limiting circuit
  • the signal restriction circuit and the load restriction circuit function as a restriction processing unit according to the present technology.
  • a network circuit is configured by connecting a plurality of analog circuits (product-sum operation devices), thereby realizing a product-sum operation system.
  • the signal limiting circuit and the load limiting circuit described above are circuits provided on the network circuit. Therefore, the input value and the weight value subjected to the sparsification processing are input to each analog circuit via the network circuit. For example, an input value input to an analog circuit on an upper layer is made sparse by a signal limiting circuit arranged on a lower layer side. Alternatively, the weight value of the analog circuit is made sparse by a weight limiting circuit appropriately connected to the network circuit.
  • At least one of the input value and the load value is limited by the signal limiting circuit or the load limiting circuit (limit processing unit) via the network circuit. Accordingly, even when an input value that is not sparsed is input by using, for example, a signal limiting circuit, the sparsed input value is used in an actual operation.
  • the load limiting circuit even when a load that has not been sparsified in advance is input, it is possible to appropriately set a sparsified load value. As a result, it is possible to realize a highly versatile computing device with high detection accuracy of the computation result.
  • “same”, “equal”, “orthogonal” and the like are concepts including “substantially the same”, “substantially equal”, “substantially orthogonal” and the like.
  • a state included in a predetermined range for example, a range of ⁇ 10%
  • a predetermined range for example, a range of ⁇ 10%
  • the present technology can also adopt the following configurations.
  • An arithmetic unit in which at least one of the input value and the load value is limited.
  • the arithmetic unit according to (1) The arithmetic unit, wherein at least one of the input value and the load value is limited to be included in a predetermined value range.
  • the arithmetic unit according to (2), The predetermined range includes a plurality of limit values, At least one of the input value and the load value is set to one of the plurality of limit values.
  • the arithmetic unit according to (3) or (4), The arithmetic device, wherein the plurality of limit values include a positive limit value and a negative limit value whose absolute values are equal to each other.
  • the arithmetic unit according to (6), The first process is a process of setting the load value to 0 when the first value is equal to or less than a first threshold.
  • the arithmetic unit according to (6), The first process is a process of setting the load value to 0 at a first rate in order from the smaller value of the first value with respect to the load value set in each of the plurality of multipliers. Arithmetic unit.
  • the arithmetic unit according to (9), The second processing is a processing of setting the input value to 0 when the second value is equal to or less than a second threshold.
  • the arithmetic unit according to (9), The second processing includes, for the input value represented by the pulse signal input to each of the plurality of multiplying units, changing the input value at a second rate in ascending order of the second value.
  • An arithmetic device comprising: a limiting unit that executes the second limiting process based on the product-sum signal, with the absolute value of the sum of the multiplied values represented by the product-sum signal as the second value.
  • the pulse signal is input to each of the plurality of input lines within a predetermined input period, The arithmetic unit, wherein the output unit outputs a product-sum signal representing a sum of the multiplied values within a predetermined output period.
  • the arithmetic unit according to any one of (1) to (13), The input value is a value represented by a first input value and a second input value,
  • the plurality of input lines include a first input line to which a first pulse signal representing the first input value is input, and a second input line to which a second pulse signal representing the second input value is input.
  • An arithmetic unit including a plurality of pairs of the input lines, which are paired with the input lines.
  • the pulse signal is a signal representing the input value using at least one of a pulse timing and a pulse width.
  • Arithmetic device (16) The input value is determined based on the pulse signal input to each of a plurality of input lines.
  • An output unit that outputs a product-sum signal representing a sum of the multiplied values by accumulating charges corresponding to the multiplied values generated by each of the plurality of multiplying units.
  • a sum-of-products arithmetic device wherein at least one of the input value and the load value is limited.
  • a plurality of input lines to which a pulse signal corresponding to the input value is input; Based on the pulse signal input to each of the plurality of input lines, a plurality of multiplying units that generate a charge corresponding to a multiplied value obtained by multiplying the input value by a load value, A plurality of sum-of-products arithmetic units having an output unit that outputs a sum-of-products signal representing the sum of the multiplied values by accumulating charges corresponding to the multiplied values generated by each of the plurality of multiplying units; A network circuit configured by connecting the plurality of sum-of-products arithmetic devices, A product-sum operation system, wherein at least one of the input value and the load value is limited.
  • a pulse signal corresponding to an input value is input to a plurality of input lines, Based on the pulse signal input to each of the plurality of input lines, to generate a charge corresponding to a multiplied value obtained by multiplying the input value by a load value, By accumulating a charge corresponding to the multiplied value, a product-sum signal representing the sum of the multiplied values is output, A product-sum operation method for limiting at least one of the input value and the load value.
  • a plurality of input lines to which a pulse signal corresponding to the input value is input; Based on the pulse signal input to each of the plurality of input lines, a plurality of multiplying units that generate a charge corresponding to a multiplied value obtained by multiplying the input value by a load value, A plurality of sum-of-products arithmetic units having an output unit that outputs a sum-of-products signal representing the sum of the multiplied values by accumulating charges corresponding to the multiplied values generated by each of the plurality of multiplying units; A network circuit configured by connecting the plurality of product-sum operation devices, Before each of the plurality of multiplying units generates a charge corresponding to the multiplied value, a limiting processing unit that limits at least one of the input value and the load value, A product-sum operation system, wherein at least one of the input value and the load value is restricted by the restriction processing unit via the network circuit.

Landscapes

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

Abstract

本技術の一形態に係る演算装置は、複数の入力線と、積和演算装置とを具備する。前記複数の入力線は、入力値に応じたパルス信号が入力される。前記積和演算装置は、前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部とを有する。前記入力値及び前記荷重値の少なくとも一方の値が制限されている。

Description

演算装置、積和演算装置、積和演算システム、及び積和演算方法
 本技術はアナログ方式を用いた積和演算に適用可能な演算装置、積和演算装置、積和演算システム、及び積和演算方法に関する。
 例えば特許文献1には、積和演算の処理をアナログ方式によって行うアナログ回路について記載されている。このアナログ回路では、複数の電気信号のそれぞれに対応した荷重が設定される。また、対応する電気信号と荷重とに応じた電荷がそれぞれ出力され、出力された電荷がキャパシタに適宜蓄えられる。そして、電荷が蓄えられたキャパシタの電圧に基づいて積和結果を表す算出対象値が算出される。これにより、例えばデジタル方式による処理と比べて積和演算に要する消費電力を抑制することが可能となっている(特許文献1の明細書段落[0003][0049]-[0053][0062]図4等)。
国際公開第2018/034163号
 このようなアナログ方式の回路を用いることで、ニューラルネットワーク等の低消費電力化につながると期待されており、演算結果を精度よく検出することが可能な技術が求められている。
 以上のような事情に鑑み、本技術の目的は、積和演算を行うアナログ方式の回路において、演算結果を精度よく検出することが可能な演算装置、積和演算装置、積和演算システム、及び積和演算方法を提供することにある。
 上記目的を達成するため、本技術の一形態に係る演算装置は、複数の入力線と、積和演算装置とを具備する。
 前記複数の入力線は、入力値に応じたパルス信号が入力される。
 前記積和演算装置は、前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部とを有する。
 前記入力値及び前記荷重値の少なくとも一方の値が制限されている。
 この演算装置では、入力値に応じたパルス信号が複数の入力線から入力され、パルス信号に基づいて入力値と荷重値との乗算値に対応する電荷が生成される。生成された電荷を蓄積して乗算値の和を表す積和信号が出力される。この時、入力値及び荷重値の少なくとも一方の値が制限される。各値を制限することで、例えば乗算値の和を調整することが可能となる。この結果、積和演算を行うアナログ方式の回路において、演算結果を精度よく検出することが可能となる。
 前記入力値及び前記荷重値の少なくとも一方の値は、所定の値域に含まれるように制限されていてもよい。
 これにより、入力値や荷重値の値が所定の値域に制限され、例えば乗算値の和を小さくすることが可能となる。この結果、演算結果を精度よく検出することが可能となる。
 前記所定の値域は、複数の制限値を含んでもよい。この場合、前記入力値及び前記荷重値の少なくとも一方は、前記複数の制限値のいずれかに設定されてもよい。
 これにより、入力値や荷重値が離散的な値に制限され、例えば乗算値の和を小さくすることが可能となる。この結果、演算結果を精度よく検出することが可能となる。
 前記複数の制限値は、0を含んでもよい。
 これにより、乗算値の和が大幅に抑制され、例えば乗算値の和を精度よく表現することが可能となる。この結果、演算結果の検出精度を十分向上することが可能となる。
 前記複数の制限値は、互いに絶対値が等しい正の制限値及び負の制限値を含んでもよい。
 これにより、例えば正負の荷重値や信号値が用いられる場合であっても、各値を制限することが可能となる。
 前記荷重値は、前記荷重値となる値の絶対値である第1の値に基づいて前記荷重値を設定する第1の処理により制限されてもよい。
 これにより、例えば荷重値となる値の絶対値の大きさに応じて荷重値を適正に制限することが可能となる。この結果、乗算値の和等を適正に縮小することが可能となる。
 前記第1の処理は、前記第1の値が第1の閾値以下であるときに前記荷重値を0に設定する処理であってもよい。
 これにより、荷重値となる値が十分に小さい場合には、その荷重値との乗算値を0とすることが可能となる。この結果、演算結果の検出精度を十分向上することが可能となる。
 前記第1の処理は、前記複数の乗算部の各々に設定される前記荷重値について、前記第1の値が小さい方から順番に第1の割合で前記荷重値を0に設定する処理であってもよい。
 これにより、荷重値となる値が十分に小さい場合には、その荷重値との乗算値を0とすることが可能となる。この結果、演算結果の検出精度を十分向上することが可能となる。
 前記入力値は、前記入力値となる値の絶対値である第2の値に基づいて前記入力値を設定する第2の処理により制限されてもよい。
 これにより、例えば入力値となる値の絶対値の大きさに応じて入力値を適正に制限することが可能となる。この結果、乗算値の和等を適正に縮小することが可能となる。
 前記第2の処理は、前記第2の値が第2の閾値以下であるときに前記入力値を0に設定する処理であってもよい。
 これにより、入力値となる値が十分に小さい場合には、その入力値との乗算値を0とすることが可能となる。この結果、演算結果の検出精度を十分向上することが可能となる。
 前記第2の処理は、前記複数の乗算部の各々に入力される前記パルス信号により表される前記入力値について、前記第2の値が小さい方から順番に第2の割合で前記入力値を0に設定する処理であってもよい。
 これにより、入力値となる値が十分に小さい場合には、その入力値との乗算値を0とすることが可能となる。この結果、演算結果の検出精度を十分向上することが可能となる。
 前記演算装置は、さらに、前記積和信号により表される前記乗算値の和の絶対値を前記第2の値として、前記積和信号に基づいて前記第2の制限処理を実行する制限部を具備してもよい。
 これにより、値が制限された積和信号を生成することが可能となる。この積和信号を用いることで、後段の積和演算装置での乗算値等を抑制することが可能となる。
 前記複数の入力線の各々には、所定の入力期間内に、前記パルス信号が入力されてもよい。この場合、前記出力部は、所定の出力期間内に、前記乗算値の和を表す積和信号を出力してもよい。
 これにより、設定された期間内で、積和演算を適正に実行することが可能となる。
 前記入力値は、第1の入力値及び第2の入力値により表される値であってもよい。この場合、前記複数の入力線は、前記第1の入力値を表す第1のパルス信号が入力される第1の入力線と、前記第2の入力値を表す第2のパルス信号が入力される第2の入力線とを対とする、複数の前記入力線の対を含んでもよい。
 これにより、例えば正負の荷重値を用いた積和演算を容易に実行することが可能となる。
 前記パルス信号は、パルスのタイミング及びパルス幅の少なくとも一方を用いて前記入力値を表す信号であってもよい。
 これにより、パルス信号に基づく入力値と荷重値との乗算処理等を容易に実行することが可能となる。
 本技術の一形態に係る積和演算装置は、複数の乗算部と、出力部とを具備する。
 前記複数の乗算部は、複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する。
 前記出力部は、前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する。
 前記入力値及び前記荷重値の少なくとも一方の値が制限されている。
 本技術の一形態に係る積和演算システムは、複数の入力線と、複数の積和演算装置と、ネットワーク回路とを具備する。
 前記複数の入力線は、入力値に応じたパルス信号が入力される。
 前記複数の積和演算装置は、前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部とを有する。
 前記ネットワーク回路は、前記複数の積和演算装置を接続して構成される。
 前記入力値及び前記荷重値の少なくとも一方の値が制限されている。
 本技術の一形態に係る積和演算方法は、複数の入力線に、入力値に応じたパルス信号を入力することを含む。
 前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷が生成される。
 前記乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号が出力される。
 前記入力値及び前記荷重値の少なくとも一方の値が制限される。
 本技術の一形態に係る積和演算システムは、複数の入力線と、複数の積和演算装置と、制限処理部とを具備する。
 前記複数の入力線は、入力値に応じたパルス信号が入力される。
 前記複数の積和演算装置は、前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部とを有する。
 前記制限処理部は、前記複数の乗算部の各々が前記乗算値に対応する電荷を生成する前に、前記入力値及び前記荷重値の少なくとも一方の値を制限する。
 本技術の一形態に係る積和演算システムは、複数の入力線と、複数の積和演算装置と、ネットワーク回路と、制限処理部とを具備する。
 前記複数の入力線は、入力値に応じたパルス信号が入力される。
 前記複数の積和演算装置は、前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部とを有する。
 前記ネットワーク回路は、前記複数の積和演算装置を接続して構成される。
 前記制限処理部は、前記複数の乗算部の各々が前記乗算値に対応する電荷を生成する前に、前記入力値及び前記荷重値の少なくとも一方の値を制限する。
 前記入力値及び前記荷重値の少なくとも一方の値が前記ネットワーク回路を介して前記制限処理部により制限される。
 以上のように、本技術によれば、積和演算を行うアナログ方式の回路において、演算結果を精度よく検出することが可能となる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の第1の実施形態に係る演算装置の構成例を示す模式図である。 アナログ回路に入力される電気信号の一例を示す模式図である。 演算装置の具体的な構成例を示す模式図である。 ニューロン回路の構成例を示す模式図である。 積和器及びアナログ回路の動作を説明するための模式図である。 2段に接続された積和器及び2段に接続されたアナログ回路の動作を説明するための模式図である。 アナログ回路を用いた演算装置の一例を示す模式図である。 図7に示す演算装置の動作の一例を説明するための模式図である。 アナログ回路から出力されるタイミングの差分値の変化を示すグラフである。 積和器及びアナログ回路の各出力の変化を示すグラフである。 荷重値の制限処理の一例を示すフローチャートである。 スパース化された荷重値が設定されたアナログ回路の動作の一例を説明するための模式図である。 アナログ回路から出力されるタイミングの差分値の変化を示すグラフである。 差分値の標準偏差σの変化率を示すグラフである。 積和結果及び差分値の標準偏差σの変化率を示す表である。 第1の閾値を用いてスパース化された荷重値の分布を示すグラフである。 電気信号により表される積和結果について説明するための模式図である。 第2の実施形態に係る演算装置の構成例を示す模式図である。
 以下、本技術に係る実施形態を、図面を参照しながら説明する。
 <第1の実施形態>
 [演算装置の構成]
 図1は、本技術の第1の実施形態に係る演算装置の構成例を示す模式図である。演算装置100は、積和演算を含む所定の演算処理を実行するアナログ方式の演算装置である。演算装置100を用いることで、例えばニューラルネットワーク等の数学モデルに従った演算処理を実行することが可能である。
 演算装置100は、複数の信号線1と、複数の入力部2と、複数のアナログ回路3とを有する。各信号線1は、所定の方式の電気信号を伝送する線であり、信号値に応じた電気信号が入力される。電気信号としては、例えばパルスのタイミングや幅等のアナログ量を用いて信号値を表すアナログ信号が用いられる。図1には電気信号が伝送される方向が、矢印を用いて模式的に図示されている。本実施形態では、電気信号はパルス信号に相当する。本実施形態では、アナログ回路3は、積和演算装置に相当する。
 例えば、1つのアナログ回路3には、複数の信号線1が接続される。アナログ回路3に電気信号を伝送する信号線1は、その信号線1が接続されたアナログ回路3にとって、電気信号が入力される入力信号線となる。また、アナログ回路3から出力される電気信号を伝送する信号線1は、電気信号を出力するアナログ回路3にとって、電気信号が出力される出力信号線となる。本実施形態では、入力信号線は、入力線に相当する。
 複数の入力部2は、入力データ4に応じた複数の電気信号をそれぞれ生成する。入力データ4は、例えば演算装置100によって実装されるニューラルネットワーク等を用いた処理の対象となるデータである。従って入力データ4に応じた複数の電気信号の各信号値は、演算装置100に対する入力値であるとも言える。
 入力データ4としては、例えば演算装置100の処理対象となる画像データ、音声データ、統計データ等の任意のデータが用いられる。例えば、入力データ4として画像データが用いられる場合等には、画像データの各画素の画素値(RGB値や輝度値等)に応じた信号値となる電気信号が生成される。この他、入力データ4の種類や演算装置100による処理の内容に応じて、入力データ4に応じた電気信号が適宜生成されてよい。
 アナログ回路3は、入力される電気信号に基づいて、積和演算を行うアナログ方式の積和演算回路である。積和演算は、複数の入力値(信号値)の各々に荷重値を乗算して得られる複数の乗算値を足し合わせる演算である。従って積和演算は、各乗算値の和(以下積和結果と記載する)を算出する処理であるとも言える。
 以下では、1つのアナログ回路3に入力される電気信号の総数をNとする。なお、各アナログ回路3に入力される電気信号の個数Nは、例えば演算処理のモデルや精度等に応じて回路ごとに適宜設定される。
 アナログ回路3では、例えばi番目の入力信号線から入力される電気信号により表される信号値(入力値)xiと、信号値xiに対応する荷重値wiとの乗算値であるwi・xiが算出される。ここでiはN以下の自然数(i=1、2、・・・、N)である。乗算値の演算は、各電気信号(入力信号線)ごとに実行され、N個の乗算値が算出される。このN個の乗算値をそれぞれ足し合わせた値が積和結果(N個の乗算値の和)として算出される。従って、1つのアナログ回路3で算出される積和結果は、以下の式で表される。
Figure JPOXMLDOC01-appb-M000001
 本実施形態では、取り得る値が予め制限された荷重値wiが用いられる。荷重値wiは、例えば予め算出されてアナログ回路3(後述するシナプス回路8)に設定される。例えば演算装置100に実装されるニューラルネットワーク等が適正に処理を実行するように、コンピュータ等を用いて値が制限された荷重値wiが算出される。このように、演算装置100では、荷重値wiの値が制限されている。後述するように、本実施形態では、荷重値wiの値は、所定の値域に含まれるように制限されている。
 信号値xiは、例えば入力部2の各々から出力された電気信号により表される値や、各アナログ回路3から出力された積和結果である。従って、各入力部2及びアナログ回路3は、信号値xiを出力する信号源として機能するとも言える。なお、信号値xiを伝送する方法等は限定されない。例えば(数1)式に示す演算が可能となるように信号値xiを伝送する任意の電気信号が用いられてよい。
 図1に示すように、本実施形態では、1つのアナログ回路3から、1対の電気信号が出力される。この1対の電気信号により、アナログ回路3での積和結果(信号値xi)等を表すことが可能である。なお、単一の電気信号を用いて、一つの信号値xiが伝送される構成であっても、本技術は適用可能である。
 1対の電気信号は、例えば正の信号値xi +を表す正の電気信号と、負の信号値xi -を表す負の電気信号とを含む。例えば、正の信号値xi +及び負の信号値xi -は、ともに0以上の実数であり、正の信号値xi +から負の信号値xi -を引いた差分値(xi +-xi -)が、信号値xiとなる。別の観点では、一つの信号値xiは、正負の信号値xi +及びxi -により表される値であるとも言える。本実施形態では、正の信号値xi +は、第1の入力値に相当し、負の信号値xi -は、第2の入力値に相当する。
 例えば、アナログ回路3は、正の電気信号として、正の乗算値の総和である正の積和結果(正の信号値xi +)を表す電気信号を出力し、負の電気信号として、負の乗算値の総和である負の積和結果(負の信号値xi -)を表す電気信号を出力する。
 1つのアナログ回路3の出力側には、正の電気信号を伝送する複数の正の信号線1aと、負の電気信号を伝送する複数の負の信号線1bとが、それぞれ接続される。複数の正の信号線1aには、同じ正の電気信号が入力される。また複数の負の信号線1bには、同じ負の電気信号が入力される。図1では、正の信号線1a(正の入力信号線6a)が、アナログ回路3の白丸の接続点に接続される。また負の信号線1b(負の入力信号線6b)が、アナログ回路3の黒丸の接続点に接続される。
 また、各入力部2(信号源)から1対の電気信号が出力される構成が用いられてもよい。例えば入力部2は、正の電気信号として、入力データ4に応じた信号値を表す電気信号を出力し、負の電気信号として、信号値がゼロである電気信号を出力する。例えばこのように入力部2を構成することが可能である。
 このように、本実施形態では、正の信号値xi +を表す正の電気信号が入力される正の入力信号線6aと、負の信号値xi -を表す負の電気信号が入力される負の入力信号線6aとを対とする複数の入力信号線6の対が用いられる。
 図1に示すように、演算装置100は、複数の階層のそれぞれに、複数のアナログ回路3が設けられた階層構造を有する。アナログ回路3の層構造を構成することで、例えば多層パーセプトロン型のニューラルネットワーク等が構築される。例えば複数のアナログ回路3と、ネットワーク回路とを接続することで、積和演算システムを構築することが可能となる。各階層に設けられるアナログ回路3の数や、階層の数等は、例えば所望の処理が実行可能となるように適宜設計される。以下では、j段目の層に設けられるアナログ回路3の数をNjと記載する場合がある。
 例えば1段目の層(最下位層)に設けられた各アナログ回路3には、N個の入力部2により生成されたN個の電気信号がそれぞれ入力される。1段目の各アナログ回路3により、入力データの信号値xiに関する積和結果がそれぞれ算出され、次の階層(2段目)に設けられたアナログ回路3に出力される。
 2段目の層(上位層)に設けられた各アナログ回路3には、1段目で算出された各積和結果を表すN1個の電気信号がそれぞれ入力される。従って2段目の各アナログ回路3から見ると、1段目で算出された各積和結果が電気信号の信号値xi(正負の信号値xi +及びxi -)となる。2段目の各アナログ回路3により、1段目から出力された信号値xiに関する積和結果が算出され、さらに上位層のアナログ回路3に出力される。
 このように、演算装置100では、下位層のアナログ回路3で算出された積和結果に基づいて、上位層のアナログ回路3の積和結果が算出される。このような処理が複数回実行され、最上位層(図1では3段目の層)に含まれるアナログ回路3から処理結果が出力される。これにより、例えば猫が撮影された画像データ(入力データ4)から、被写体が猫であることを判定するといった画像認識等の処理が可能となる。
 なお、各アナログ回路3を接続する方法等は限定されず、例えば所望の処理が可能となるように、複数のアナログ回路3が適宜接続されてもよい。例えば、各アナログ回路3が階層構造とは異なる他の構造を構成するように接続される場合であっても、本技術は適用可能である。
 上記では、下位層で算出された積和結果をそのまま上位層に入力する構成について説明した。これに限定されず、例えば積和結果についての変換処理等が実行されてもよい。例えばニューラルネットワークモデルでは、各アナログ回路3の積和結果に対して、活性化関数を用いて非線形変換を行い、その変換結果を上位層に入力するといった処理が実行される。
 演算装置100では、例えば電気信号に対して活性化関数による非線形変換を行う関数回路5等が用いられる。関数回路5は、例えば下位層と上位層との間に設けられ、入力する電気信号の信号値を適宜変換して、変換結果に応じた電気信号を出力する回路である。関数回路5は、例えば信号線1ごとに設けられる。関数回路5の数や配置等は、例えば演算装置100に実装される数学モデル等に応じて適宜設定される。
 なお図1では、一例として、3段目の層に含まれるアナログ回路3に電気信号を入力する入力信号線に、関数回路5が配置されている。もちろん、全ての入力信号線に関数回路5が配置されてもよいし、一部の入力信号線に選択的に関数回路5が配置されてもよい。
 活性化関数としては、例えばReLU関数(ランプ関数)等が用いられる。ReLU関数は、例えば信号値xiが0以上である場合には、信号値xiをそのまま出力し、それ以外の場合には0を出力する。これにより、演算装置100の処理精度を大幅に向上することが可能である。
 図2は、アナログ回路3に入力される電気信号の一例を示す模式図である。図2には、1対の電気信号の波形を表すグラフが模式的に図示されている。グラフの横軸は時間軸であり、縦軸は電気信号の電圧である。なお各グラフの時間軸は共通である。
 図2には、スパイクタイミング方式(以下、TACT方式と記載する)の電気信号の波形の一例が示されている。TACT方式では、電気信号としてパルスのタイミングを用いて信号値xiを表す信号が用いられる。例えば所定のタイミングを基準として、パルスが入力されるタイミングが早いほど、そのパルスにより表される信号値xiが大きくなる。
 本実施形態では、複数の入力信号線6の各々には、所定の入力期間T内に、電気信号(パルス)が入力される。この入力期間Tにおける、パルスの入力タイミングにより信号値xiが表される。従って、例えば入力期間Tの開始と同時に入力されたパルスが最も大きい信号値xiを表すことになる。
 なお図2には、電気信号として、所定のパルス幅を持った矩形パルスが図示されている。これに限定されず、電気信号として、例えばあるタイミングに立ち上がり、積和結果が得られるまでONレベルを維持する継続的なパルス等が用いられてもよい。
 本実施形態に係るアナログ回路3をTACT方式のアナログ回路3と言うことも可能である。本実施形態では、TACT方式のアナログ回路3を用いた時間軸アナログ積和演算が実行可能である。
 図3は、演算装置100の具体的な構成例を示す模式図である。図3には、1つの階層に設けられる複数のアナログ回路3が模式的に図示されている。
 アナログ回路3は、1対の出力線7と、複数のシナプス回路8と、ニューロン回路9とを有する。図2に示すように、演算装置100は、入力信号線6と各出力線7とが直交して配置されたクロスバー構成を有する回路である。また演算装置100では、各シナプス回路8に対して、正の入力信号線6aと、負の入力信号線6bとが接続される。
 1対の出力線7は、延在方向に沿って互いに離間して配置される。1対の出力線7は、正の出力線7aと、負の出力線7bとを有する。各出力線7a及び7bは、複数のシナプス回路8を経由してニューロン回路9に接続される。
 シナプス回路8は、電気信号により表される信号値xiと荷重値wiとの乗算値(wi・xi)を算出する。シナプス回路8には、荷重値wiが予め設定される。この荷重値wiと正負の入力信号線6a及び6bから入力される正負の信号値xi +及びxi -との乗算値(wi・xi +及びwi・xi -)に対応する電荷が生成される。
 例えば、正の荷重値wi +が設定されている場合、wi +・xi +に対応する電荷が正の出力線7aに出力され、wi +・xi -に対応する電荷が負の出力線7aに出力される。また例えば、負の荷重値wi -が設定されている場合、wi -・xi +に対応する電荷が負の出力線7bに出力され、wi -・xi -に対応する電荷が正の出力線7bに出力される。
 なおシナプス回路8では、乗算値に対応する電荷として、荷重値wiの正負に係らず同符号の電荷(例えば正の電荷)が出力される。従って、wi -との乗算は、その絶対値である|wi -|との乗算と見做すことができる。
 また荷重値wi=0が設定されている場合には、正負の信号値xi +及びxi -との乗算値は、ともに0となる。この場合、シナプス回路8からは、正の出力線7a及び負の出力線7bに対して電荷は出力されない。
 このようにアナログ回路3では、複数のシナプス回路8により、複数の入力信号線6の各々に入力される電気信号に基づいて、信号値xiに荷重値wiを乗算した乗算値に対応する電荷が生成される。また生成された電荷は、荷重値wiの符号に応じて、正負の出力線7a及び7bに出力される。本実施形態では、シナプス回路8は、乗算部に相当する。
 シナプス回路8は、例えば電気信号により表される電圧から電流を生成する抵抗素子や、生成された電流を各出力線に切り替えて出力するスイッチ素子等を用いて構成される。例えば、抵抗素子としてMOS(Metal Oxide Semiconductor)トランジスタ等を用いた回路や、スイッチ素子としてフリップフロップ回路等を用いた回路等が構成されてよい。この他、シナプス回路8の具体的な構成は限定されない。
 図4は、ニューロン回路9の構成例を示す模式図である。ニューロン回路9は、蓄積部11と、出力部12とを有する。図4には、1対の出力線7と、1対の出力信号線10とに接続された2入力2出力のニューロン回路9が示されている。
 蓄積部11は、複数のシナプス回路8により1対の出力線7に出力された電荷を蓄積する。蓄積部11は、2つのキャパシタ13a及び13bを有する。キャパシタ13aは、正の出力線7aとGNDとの間に接続される。またキャパシタ13bは、負の出力線7bとGNDとの間に接続される。
 従って各キャパシタ13a及び13bには、各出力線7a及び7bから流れ込む電荷が蓄積される。なお蓄積部11には、各キャパシタ13に蓄積された電荷を放出するためのスイッチ等が適宜設けられる。
 出力部12は、蓄積部11に蓄積された電荷に基づいて、乗算値(wi・xi)の和を表す積和信号を出力する。本実施形態では、積和信号として、正負それぞれの積和結果を表す正の積和信号及び負の積和信号の2つの信号が生成される。
 キャパシタ13に電荷が蓄積されると、キャパシタ13の出力線7に接続される側の電位が上昇する。この電位を検出することで、キャパシタ13に蓄積される電荷を検出することが可能である。例えば出力部12は、キャパシタ13aの電位を検出して正の積和信号を生成し、キャパシタ13bの電位を検出して負の積和信号を生成する。このように、ニューロン回路9(蓄積部11及び出力部12)は、複数のシナプス回路8の各々により生成された乗算値に対応する電荷を蓄積することで、乗算値の和を表す積和信号を出力する。
 また出力部は、所定の出力期間内に、乗算値の和を表す積和信号(正負の積和信号)を出力する。所定の出力期間は、例えば入力期間Tと同様の長さの期間である。出力期間は、入力期間の後に引き続く期間であり、例えば入力期間の終了と同時に開始され、期間Tが経過すると終了する。以下では出力期間を、入力期間Tと同じ長さの期間として、出力期間Tと記載する場合がある。
 上記したように、本実施形態では、TACT方式の電気信号が用いられる。例えばTACT方式の電気信号がシナプス回路8に入力されると、パルスの入力タイミングから、一定の割合で継続的に電荷が生成され、出力線7に出力される。この結果、キャパシタ13には、一定の割合で電荷が蓄積される。例えば、キャパシタ13の電位が、所定の閾値を超えたタイミングを検出することで、出力線7に出力された電荷の総量を検出することが可能である。
 このように、TACT方式では、それぞれの荷重値wiに応じた割合(傾き)で電荷を出力し、閾値を超えるまでキャパシタが充電される。この場合、1つのアナログ回路3で算出される全体の積和結果は、例えば特許文献1に示すように、以下の式を用いて算出することが可能である。
Figure JPOXMLDOC01-appb-M000002
 ここで、θ+及びθ-は、キャパシタ13a及び13bの電位を検出するための閾値である。またβは、各シナプス回路8に設定される荷重値wiの総和である。β+及びβ-は、それぞれ正の荷重値wi +の総和及び負の荷重値|wi -|の総和であり、β=β+-β-である。またTinは、入力期間T(出力期間T)である。
 tν +及びtν -は、それぞれ、キャパシタ13a及び13bの電位が各閾値を超えたタイミングである。出力部12では、正の積和信号として、tν +のタイミングでパルスが開始されるTACT方式の電気信号が生成される。また負の積和信号として、tν -のタイミングでパルスが開始されるTACT方式の電気信号が生成される。
 一般に、正の荷重値wi +の総和であるβ+と負の荷重値|wi -|の総和であるβ-とは、それぞれ異なる値となる。しかしながら、図1及び図3に示すように、正負1対の入力信号線6a及び6bを設けて、正の信号値xi +及び負の信号値xi -に共通の荷重値wiを乗算する構成とすることで、β+=β-=β0とすることが可能である。この場合、全体の荷重値wiの総和βは、β=β+-β-=0となる。
 例えば、各キャパシタ13a及び13bに対する閾値θ+及びθ-は、出力される積和結果のスケールを等しくするために同じ値に設定される。この結果、アナログ回路203により算出される積和結果である(数2)式は、以下のように変形される。
Figure JPOXMLDOC01-appb-M000003
 (数3)式に示すように、全体の積和結果は、キャパシタ13bの電位が閾値を超えたタイミングtν -から、キャパシタ13bの電位が閾値を超えたタイミングtν +を引いた差分として算出することが可能となる。このような演算は、例えばタイミングtν +を表す正の積和信号と、タイミングtν -を表す負の積和信号とに基づいて、論理回路等を用いて容易に実行することが可能である。
 本実施形態では、下位層のアナログ回路3から上位層のアナログ回路3に対して、正の信号値xi +及び負の信号値xi -、すなわち正の積和信号及び負の積和信号がそれぞれ入力される。従って、各階層間では、(数3)式に示す全体の積和結果を演算することなく、正負の積和信号がそのまま伝送される。これにより、例えば各アナログ回路3ごとに全体の積和結果を演算する必要がなくなり、回路構成をシンプルにすることが可能となる。
 [アナログ回路の動作]
 上記したように、時間軸アナログ積和演算では、時間軸を基準とするパラメータ(TACT方式ではパルスのタイミング)に置き換えて信号値xiの情報が伝送される。一方で、例えばデジタル方式の積和器等では、信号値xiをそのまま数値として伝送する方法が用いられる。以下では、信号値xiをそのまま数値として伝送し時間軸と独立して積和演算を行う積和器と比較して、時間軸アナログ積和演算を行うアナログ回路3の動作について説明する。
 図5は、積和器及びアナログ回路3の動作を説明するための模式図である。図5の上側の図は、積和器15の機能的なブロック図であり、下側の図は、アナログ回路3の機能的なブロック図である。以下では、アナログ回路3と同様の処理を実行可能なように積和器15が構成されているものとする。また信号値xiを入力値xiと記載する。
 積和器15は、例えば数値として伝送された入力値xiに基づいて積和演算を行う。積和器15は、例えば専用のデジタル回路や、汎用デジタルプロセッサ等により実現される。また積和器15は、プログラムにより構成される積和演算を行う機能ブロックと見做すことも可能である。図5には、積和器15に入力されるi番目の入力値xiが矢印を用いて模式的に図示されている。以下では、積和器15に入力される入力値xiの個数をNとする。
 また積和器15には、各入力値xiに乗算される荷重値wiが設定される。図5では、-1≦wi≦+1となる荷重値wiが設定されているものとする。また積和器15には、所定のバイアス項bが設定される。バイアス項bは、例えば各積和器15の出力を偏らせるためのパラメータであり、例えば実装される処理に応じて適宜設定される。
 積和器15による積和演算では、入力値xiと荷重値wiとの乗算値の和((数1)式参照)にバイアス項bを加えた出力値y=Σwi・xi+bが出力される。このように、積和器15では、N個の入力値xiに基づいて1つの出力値yが算出される。なお、記号Σで表される総和は、添え字i=(1,2,…N)についての総和である。
 アナログ回路3には、上記したように正負の入力信号線6a及び6bを対として、N対の入力信号線6が接続される。例えばi番目の入力信号線6の対に入力される各電気信号(例えば正負の積和信号)により、i番目の入力値xiが表される。具体的には、図4を参照して説明したように、正負の入力信号線6a及び6bには、タイミングt+及びタイミングt-を表すTACT方式の電気信号が入力される。図5には、i番目の入力値xiに対応するタイミングti +及びti -が矢印を用いて模式的に図示されている。
 TACT方式では、ti +及びti -は、xi=(ti --ti +)/Tinを満たす値である。従って、この関係によりti +及びti -は、xiに変換することが可能である。アナログ回路3には、このような(ti +,ti -)のセットが、N個入力される。これは、N個の入力値xiが入力されることに相当する。
 アナログ回路3には、N個の(ti +,ti -)に乗算されるN個の荷重値wiが設定される。また、アナログ回路3には、バイアス項bが設定される。アナログ回路3に設定される荷重値wi及びバイアス項b、積和器15に設定される荷重値wi及びバイアス項と同様である。
 アナログ回路3による時間軸アナログ積和演算では、各(ti +,ti -)と荷重値wiとの乗算値に対応する電荷が適宜蓄積され、正の積和信号(タイミングtν +の電気信号)と負の積和信号(タイミングtν -の電気信号)とが出力される。このように、アナログ回路3では、N対の入力(ti +,ti -)から1対の出力(tν +,tν -)が算出される。
 バイアス項bが導入された場合、アナログ回路3で算出される1対の出力(tν +,tν -)と、積和器15で算出される出力値yとの関係は、以下のように表される。
Figure JPOXMLDOC01-appb-M000004
 例えば、(数4)式を用いることで、アナログ回路3の出力(tν +,tν -)から、そのアナログ回路3による全体の積和結果を算出することが可能である。なお、下位層に設けられるアナログ回路3では、例えば全体の積和結果等を算出することなく、出力(tν +,tν -)が後段のアナログ回路3への入力としてそのまま用いられる。
 アナログ回路3の出力(tν +,tν -)を直接後段に入力する構成では、(数4)に示すように、出力(tν +,tν -)の差分値(tν --tν +)により、積和結果(出力値y)に関する情報が伝送される。例えば、差分値(tν --tν +)に着目すると、(数4)式は以下のように書き換えられる。
Figure JPOXMLDOC01-appb-M000005
 (数5)式に示すように、アナログ回路3の出力により表される情報である差分値(tν --tν +)は、アナログ回路3を通過するたびに、1/β0倍される。従って、例えば各アナログ回路3に設定された荷重値wiの総和が大きいほど、差分値(tν --tν +)は小さくなるとも言える。以下、具体的に説明する。
 図6は、2段に接続された積和器15及び2段に接続されたアナログ回路3の動作を説明するための模式図である。以下では、1段目及び2段目に関する各パラメータを、上付きの添え字(1)及び(2)を用いて表す。
 図6Aには、直列に接続された積和器15a及び15bが模式的に図示されている。例えば1段目の積和器15aから出力された出力値y(1)は、そのまま2段目の積和器15bの入力として用いられる。この場合、全体の積和結果を表す出力値y(1)がそのまま次段の入力となるため、積和器15を通過することで、それまでの演算結果を表す値が小さくなることはない。
 図6Bには、直列に接続されたアナログ回路3a及び3bが模式的に図示されている。例えば1段目のアナログ回路3aの出力(tν (1)+,tν (1)-)により表される積和結果に関する値(tν (1)--tν (1)+)/Tinは、本来の積和結果(y(1))を1/β0 (1)倍した値となる。すなわち、1段目のアナログ回路3aを通過した時点で、演算結果を表す値が小さくなる。
 2段目のアナログ回路3bには、1段目の出力(tν (1)+,tν (1)-)がそのまま入力される。すなわち、2段目のアナログ回路3bには、本来の積和結果を1/β0 (1)倍した値が入力されるとも言える。この1/β0 (1)倍された値に基づいて、時間軸アナログ演算が実行される。このため、2段目のアナログ回路3bの出力(tν (2)+,tν (2)-)により表される積和結果に関する値(tν (2)--tν (2)+)/Tinは、本来の積和結果(y(2))を1/(β0 (1)・β0 (2))倍した値となる。なお、2段目のアナログ回路3では、バイアス値としてb/β0 (1)が用いられる。
 このように、アナログ回路3を通過することで、それまでの演算結果を表す値が小さくなる。すなわち、1つのアナログ回路3を通過する度に、そのアナログ回路3に設定された荷重値の総和β0に応じて、差分値(tν --tν +)が1/β0倍され、積和結果に関する値が減少する。このため、複数のアナログ回路3を介して行われる演算では、例えば最終的な演算結果が小さくなってしまう恐れがある。
 図7は、アナログ回路3を用いた演算装置100の一例を示す模式図である。演算装置100は、入力層30と、中間層31と、出力層32との3層構造からなる。図7に示す例では、入力データとして、28×28ピクセルの画像データが用いられる。演算装置100には、例えば0~9までの10個の数字の認識を行う機能が実装される。
 入力層30は、畳み込み層33(Conv1)と、ReLU関数部34aと、プーリング部35とを有する。畳み込み層33は、対象範囲(5×5)を単位として画像データに対する畳み込み処理を実行する層である。例えば28×28の画像データに対して5×5の対象範囲を1ピクセルずつずらして積和演算が実行される。以下では、5×5の対象範囲での演算を単位演算と記載する。
 図7に示す例では、1つの対象範囲について30種類の単位演算が実行される。例えば5×5の対象範囲を28×28の画像データに対して1ピクセルずつずらした場合、対象範囲をずらす回数は24×24回となる。従って、1つの画像データに対して、24×24×30回の単位演算が実行されることになる。言い換えれば、24×24の位置に対して30種類ずつの単位演算が実行されるため、単位演算の総数は、24×24×30回となる。
 畳み込み層33では、1回の単位演算が1つのアナログ回路3により実行される。従って1つのアナログ回路3には、25対の入力信号線6が接続されることになる。すなわち、畳み込み層33には5×5のデータに対して積和演算を実行するアナログ回路3が、24×24×30個設けられる。
 なお1つのピクセルについてのデータは、例えば正負の入力信号線6a及び6bを介してアナログ回路3に入力される。従ってアナログ回路3には25対の入力信号線6が接続される。またアナログ回路3からは、1対の出力信号線10a及び10bを介して積和結果が出力される(図3等参照)。
 ReLU関数部34aは、24×24×30個のアナログ回路3の出力について、ReLU関数を作用させる回路である。例えば、アナログ回路3の積和結果が正である場合には積和結果がそのまま出力され、負である場合には0が出力される。
 プーリング部35は、24×24×30個の出力を減らす回路である。例えば24×24回の単位演算の結果から、縦横の演算結果をそれぞれ半分に減少させる。この結果、入力層30からは、12×12×30=4320個の積和結果が後段の中間層31に向けて出力される。
 中間層31は、第1のFC層36(FC1:Full Connection 1)と、ReLU関数部34bとを有する。第1のFC層36には、100個のアナログ回路3が設けられる。各アナログ回路3には、入力層30から出力された4320個の積和結果がそれぞれ入力される。ReLU関数部34bは、第1のFC層36から出力された100個の積和結果について、ReLU関数を作用させる。
 出力層32は、第2のFC層37(FC2)と、SoftMax部38とを有する。第2のFC層37には、10個のアナログ回路3が設けられる。各アナログ回路3には、中間層31から出力された100個の積和結果がそれぞれ入力される。SoftMax部38は、所定の変換関数(SoftMax関数等)を用いて第2のFC層37から出力された10個の積和結果を出力用の値(確率値等)にそれぞれ変換する。SoftMax部38から出力された10個の結果が、演算装置100の出力結果(例えば10個の数字の認識結果)となる。
 図8は、図7に示す演算装置の動作の一例を説明するための模式図である。図8には、入力層30(畳み込み層33)、中間層31(第1のFC層36)、出力層32(第2のFC層37)に含まれるアナログ回路3a、3b、及び3cが図示されている。アナログ回路3a~3cは、それぞれ、25入力、4320入力、100入力の回路である。なお1入力とは、1対の入力信号線6a及び6bが接続されることに相当する。
 図8では、荷重値wiを2値化して設定するバイナリコネクトが用いられる。バイナリコネクトは、例えばニューラルネットワーク等による画像認識で用いられる手法である。荷重値wiを2値化することで、荷重値wiが設定されるシナプス回路8の構成を簡略化することが可能である。図8に示す例では、正規化された荷重値がwi=±1が用いられる。
 この場合、荷重値wiの総和Σ|wi|は、設定される荷重値wiの総数、すなわち入力の数と等しくなる。従ってアナログ回路3におけるβ0は、入力の数にバイアス項bを加えた値となる。各バイアス項bを1と見做すと、例えば、畳み込み層33に含まれるアナログ回路3aでは、β0 (1)=25+1=26となる。また第1のFC層36に含まれるアナログ回路3bでは、β0 (2)=4320+1=4321となる。また第2のFC層37に含まれるアナログ回路3cでは、β0 (3)=100+1=101となる。
 例えば、入力層30では、アナログ回路3aにより(tν (1)+,tν (1)-)が出力される。この出力の差分値(tν (1)--tν (1)+)/Tinは、本来の積和結果(y(1))を1/26倍した値となっている。アナログ回路3aの出力は、ReLU関数部34a及びプーリング部35を介してそのまま中間層31のアナログ回路3bに入力される。
 中間層31では、アナログ回路3bにより、1/26倍された演算結果に基づいて、(tν (2)+,tν (2)-)が出力される。この出力の差分値(tν (2)--tν (2)+)/Tinは、本来の積和結果(y(2))を1/(26×4321)倍した値となる。アナログ回路3bの出力は、ReLU関数部34bを介してそのまま出力層32のアナログ回路3dに入力される。
 出力層32では、アナログ回路3dにより、1/(26×4321)倍された演算結果に基づいて、(tν (3)+,tν (3)-)が出力される。この出力の差分値(tν (3)--tν (3)+)/Tinは、本来の積和結果(y(3))を1/(26×4321×101)倍した値となる。アナログ回路3cの出力は、SoftMax部38に入力され、演算装置100の演算結果が出力される。
 図9は、アナログ回路3から出力されるタイミングの差分値の変化を示すグラフである。図9に示すグラフには、各階層に含まれるアナログ回路3から出力される差分値(tν (n)--tν (n)+)の分布の幅が示されている。分布の幅は、差分値(tν (n)--tν (n)+)の分布における±3σの値により表されており、単位は秒である。ここでσは分布の標準偏差である。なお図9では入力期間Tinは、1μ秒に設定されている。
 演算装置100では、例えば各アナログ回路3から出力される差分値(tν (n)--tν (n)+)を検出することで、積和結果の大小等を比較することが可能である。従って差分値の分布の幅が狭いほど、例えば個々の積和結果を比較することが難しくなると言える。
 図9に示すように、畳み込み層33から出力された差分値(tν (1)--tν (1)+)の分布の幅は、0.5μ秒程度である。また第1のFC層36から出力された差分値(tν (2)--tν (2)+)の分布の幅は、10n秒程度に減少する。また第2のFC層37から出力された差分値(tν (3)--tν (3)+)の分布の幅は、0.5n秒程度まで減少する。このように、アナログ回路3を用いた時間軸アナログ積和演算では、各階層を通過する度に、演算結果を表すパラメータ(差分値)が減少することがあり得る。
 図10は、積和器15及びアナログ回路3の各出力の変化を示すグラフである。図10には、アナログ回路3により構成された演算装置100における、各部の出力(差分値)の分布幅(±3σ)が黒塗りのデータ点で示されている。黒塗りのデータ点のグラフは図9に示すグラフを詳細にしたグラフとなっている。なお一番左のデータ点は、演算装置100への入力の分布幅を示している。
 また図10には、積和器15を用いて図7に示す演算装置100を構成した場合の、各部の出力値yの分布幅(±3σ)が白抜きのデータ点で示されている。なお出力値yは、無次元量である。また一番左のデータ点は、入力値の分布幅を示している。
 図10に示す例では、最後段の積和器15の出力値y(FC2の出力値y(3))の分布幅が、最初の入力値の分布幅と比べて増大している。このように、積和結果である出力値yを直接算出し、その値を次段の積和器15に入力する構成とした場合、出力値yの分布幅が大きくなる場合があり得る。なお、積和器15の構成によっては、最終的な出力値yが減少する場合もある。
 一方でアナログ回路3を直列に接続して時間軸アナログ積和演算を行う場合には、電気信号が各アナログ回路3を通過する際に、1/β0が作用することで、演算結果が減少する。この結果、最終的な演算結果を検出することが難しくなる可能性がある。
 [荷重値の設定]
 本開示において、各アナログ回路3(シナプス回路8)に設定される荷重値wiの値は、所定の値域に含まれるように制限される。ここで所定の値域とは、例えば予め設定された荷重値wiの取り得る値の範囲である。すなわち、各アナログ回路3には、予め値の制限された荷重値wiが設定されるとも言える。値域が制限された荷重値wiを用いて、時間軸アナログ積和演算を行うことで、本実施形態に係る積和演算方法が実行される。
 また所定の値域は、複数の制限値を含んで構成される。すなわち、荷重値wiの取り得る値は、離散的な制限値によって制限される。従って、荷重値wiは、複数の制限値のいずれかに設定されることになる。このように荷重値wiを離散的に制限することで、例えば上記したβ0等を小さくすることが可能である。
 図11は、荷重値wiの制限処理の一例を示すフローチャートである。荷重値wiは、例えばコンピュータ等の演算装置を用いて予め算出される。この時、所定の値域に含まれるように荷重値wiの値が制限される。
 まずコンピュータ等を用いて量子化前荷重viが算出される(ステップ101)。例えば演算装置100に実装されるニューラルネットワーク等のコンピュータモデルが構築される。コンピュータモデルでは、演算装置100に含まれるアナログ回路3に対応するノードが設けられる。また各ノードには、シナプス回路8の荷重値wiに対応する荷重が設定される。
 このコンピュータモデルを適宜学習させることで、目的とする処理に応じた荷重(シナプス結合の強度)が算出される。すなわち、演算装置100で用いられる荷重値wiと同数の荷重がそれぞれ算出される。なおコンピュータモデルは、例えば、各荷重が浮動小数点表現を用いた値として算出されるように構成される。この浮動小数点表現で表される荷重(すなわち正数値による量子化がされていない荷重)が量子化前荷重viとして用いられる。
 量子化前荷重viは、例えば正負を含む任意の実数で表される。また例えば、-α≦vi≦+αといった所定の範囲内で量子化前荷重viが算出されてもよい。あるいは、-1≦vi≦+1といった規格化された範囲で量子化前荷重vが算出されてもよい。この他、量子化前荷重viを算出する方法は限定されない。本実施形態では、量子化前荷重viは、荷重値となる値に相当する。
 量子化前荷重viの絶対値に基づいて荷重値wiを設定する荷重制限処理が実行される(ステップ102)。本実施形態では、量子化前荷重viの絶対値は、荷重値となる値の絶対値である第1の値に相当する。また荷重制限処理は、第1の処理に相当する。
 図11では、荷重制限処理として、量子化前荷重viの絶対値の小さいほうから、第1の割合でゼロを代入する処理が実行される。後述するようにゼロが代入された量子化前荷重viに対応する荷重値wiは、ゼロ(制限値)に設定される。このように量子化前荷重viの値を制限することで、荷重値wiを制限することが可能である。
 荷重制限処理は、1つのアナログ回路3に設定されるN個の量子化前荷重vi(荷重値wi)を対象として実行される。すなわち、アナログ回路3に含まれる複数のシナプス回路8の各々に設定される荷重値wiについて、量子化前荷重viの絶対値が小さい方から順番に第1の割合で荷重値wiを0に設定する処理が実行される。なお、第1の割合は、演算装置100に要求される処理精度等に応じて適宜設定される。
 荷重制限処理では、例えばN個の量子化前荷重viの絶対値が算出され、第1の割合に応じた数の量子化前荷重viに対して、絶対値の小さい方から順にゼロが代入される。例えば、第1の割合が1/2に設定されている場合、絶対値の小さい方からN/2個の量子化前荷重viが0となる。この場合、絶対値の大きいN/2個の量子化前荷重viは、算出時の値が維持される。また例えば、第1の割合が3/4に設定されている場合、絶対値の小さい方からN×3/4個の量子化前荷重viが0となる。この場合、絶対値の大きいN/4個の量子化前荷重viは、算出時の値が維持される。
 量子化前荷重viに対する2値化処理が実行され、荷重値wiが算出される(ステップ103)。2値化処理は、例えば量子化前荷重viの値に基づいて、2つの値を算出する処理である。本実施形態では、2値化処理により、互いに絶対値が等しい正の制限値と負の制限値とが算出される。この正負の制限値が、荷重値wiとして設定される。
 本実施形態では、例えば量子化前荷重viの符号に応じて、対応する荷重値wiとして-1(負の制限値)及び+1(正の制限値)のどちらかを設定する2値化処理が実行される。なお、値がゼロである量子化前荷重viについては、対応する荷重値wiとして0が算出される。
 例えば、量子化前荷重viが負である場合(vi<0)、対応する荷重値wiとして-1が設定される。また、量子化前荷重viが正である場合(vi>0)、対応する荷重値wiとして+1が設定される。算出された各荷重値wiは、荷重値データとして記録される。
 荷重値データに基づいて、アナログ回路3(各シナプス回路8)に対して荷重値wiが設定される(ステップ104)。例えば、アナログ回路3に設けられた荷重値wiを設定するための配線等を用いて、荷重値データに記憶された荷重値wiが各シナプス回路8に設定される。また例えば、算出された荷重値wiに基づいて設計されたアナログ回路3等が用いられてもよい。この他、アナログ回路3に荷重値wiを設定する方法等は限定されない。
 このように、図11に示す処理では、荷重値wiとして-1、0、+1の3通りの値が設定される。例えば第1の割合が50%(1/2)に設定されていた場合、少なくとも半分以上の荷重値wiは0に設定される。これにより、影響の小さい荷重値wiをまびくことがとなり、荷重値wiをスパース化(疎性化)することが可能となる。本開示では、このようにスパース化された荷重値wiを用いて、時間軸アナログ積和演算が実行される。
 図12は、スパース化された荷重値wiが設定されたアナログ回路3の動作の一例を説明するための模式図である。図12では、図8に示す第1のFC層36(中間層31)に含まれるアナログ回路3bが図示されている。
 以下では、スパース化された荷重値wiを用いたアナログ回路3bの動作について説明する。また図12に示す例では、前段のアナログ回路3aに設定される荷重値wiは、スパース化されていないものとする。なお、他の層に含まれるアナログ回路3a及び3c等にスパース化された荷重値wiが設定される場合にも、以下に説明する内容は適用可能である。
 上記したように、第1のFC層36に含まれるアナログ回路3bは、4320入力の回路である。すなわちアナログ回路3には4320個の荷重値wiが設定される。従って、図11に示す処理では、アナログ回路3bに設定するための荷重値データ39として、4320個の荷重値wiが算出される。
 例えば荷重値wiを0とする割合、すなわち第1の割合が1/2(50%)であった場合、4320/2=2160の荷重値wiが0に設定される。また2160の荷重値wiが±1に設定される。このため、アナログ回路3bにおけるβ0 (2)は、β0 (2)=4320/2+1=2161となる。従って、アナログ回路3bの出力(tν (2)+,tν (2)-)の差分値(tν (2)--tν (2)+)/Tinは、本来の積和結果(y(2))を1/(26×2161)倍した値となる。
 また、第1の割合が3/4(75%)であった場合、4320×3/4=3240の荷重値wiが0に設定される。また1080の荷重値wiが±1に設定される。このため、アナログ回路3bにおけるβ0 (2)は、β0 (2)=4320/4+1=1081となる。従って、アナログ回路3bの出力(tν (2)+,tν (2)-)の差分値(tν (2)--tν (2)+)/Tinは、本来の積和結果(y(2))を1/(26×1081)倍した値となる。
 このように、第1の割合(50%や75%)で、荷重値wiを0に設定するスパース化を行うことで、β0 (2)の値が小さくなる。この結果、スパース化をしない場合と比べ、アナログ回路3bから出力される積和結果を表す値、すなわち出力の差分値(tν (1)--tν (1)+)/Tinを増大させることが可能である。荷重のスパース化により個々の出力差分値が増大し、これにより差分値の分布が拡大する。これにより図9を用いて説明した、積和結果を比較することが困難となるという問題が緩和される。
 図13は、アナログ回路3から出力されるタイミングの差分値の変化を示すグラフである。図13には、アナログ回路3bにスパース化された荷重値wiが設定された場合の各層の差分値の変化が示されている。なおアナログ回路3bの前段及び後段となるアナログ回路3a及び3cには、スパース化されていない荷重値wi(±1)が設定されている。
 白色のデータ点は、第1の割合が50%に設定された場合のグラフであり、灰色のデータ点は、第1の割合が75%に設定された場合のグラフである。また図13には、図9を参照して説明したグラフ、すなわち全てのアナログ回路3a~3cでスパース化されていない荷重値が用いられる場合のグラフが黒のデータ点で示されている。
 例えば、1段目に配置された畳み込み層33(Conv1)の差分値の分布幅±3σは、3つのグラフで略同様の値となる。2段目に配置された第1のFC層36(FC1)の差分値の分布幅は、第1の割合が大きいほど、大きくなる。すなわち、0の荷重値wiが多く設定されているほど、2段目の値が増大する。また3段目に配置された第2のFC層37(FC2)の差分値の分布幅も、2段目の結果と同様に、第1の割合が大きいほど増大した値となる。
 このように、中間のアナログ回路3bの荷重値wiをスパース化することで、後段のアナログ回路3cから出力される演算結果を増大させることが可能である。これにより、例えば最終的な演算結果を精度よく検出することが可能となり、例えば演算装置100による認識処理等を適正に実行することが可能となる。
 図14は、差分値の標準偏差σの変化率を示すグラフである。図15は、積和結果及び差分値の標準偏差σの変化率を示す表である。図14には、4種類のスパース化(荷重制限処理)を行った場合の、差分値の標準偏差σの変化率が、棒グラフを用いて示されている。なお標準偏差σの変化率とは、スパース化を行わなかった場合の差分値の標準偏差σ0を基準とする変化の割合である。例えば、変化率が1である場合には、標準偏差σ0と同様となり変化はなかったことになる。
 図14ではスパース化として、荷重値wiの50%をランダムに0にしたパターンA、荷重値wiの75%をランダムに0にしたパターンBについての変化率が示されている。また量子化前荷重viの絶対値の小さい方から50%を0にしたパターンC、及び絶対値の小さい方から75%を0にしたパターンDについての変化率が示されている。
 荷重値wiをランダムに0にした場合(パターンA及びB)では、差分値(tν --tν +)の標準偏差σは、ほとんど変化しない。このように、荷重値wiをランダムにまびく方法では、差分値の分布が十分に拡大することはなく、演算結果の増大はあまり見込めない。
 また絶対値の小さい方から50%を0にした場合(パターンC)、差分値の標準偏差σは1.67倍となり、75%を0にした場合(パターンD)、差分値の標準偏差σは2.41倍となる。このように、量子化前荷重viの絶対値を基準に、各荷重値wiを制限することで、差分値の分布が十分に拡大し、演算結果を効果的に増大させることが可能となる。
 図15には、パターンC及びDにおける、積和結果y、差分値、及び正規化された差分値の標準偏差の変化率が示されている。積和結果yは、例えば(数4)式に基づいて、算出された本来の積和結果yである。例えば荷重値wiをスパース化することで、入力値xiと荷重値wiとの乗算値(wi・xi)の値が0になる場合が増える。このため乗算値の和を表す積和結果yは、荷重値wiのスパース化に伴い減少する。
 この積和結果yの標準偏差の変化率を用いて、各パターンでの差分値の標準偏差の変化率を正規化する。正規化後の差分値の標準偏差変化率は、パターンCでは2.06(~2)となり、パターンDでは3.95(~4)となった。このように、正規化後の変化率は、スパース化した荷重値wiの割合(第1の割合)と符合する。
 以下では、荷重値wiのスパース化、すなわち荷重値wiの値域を制限する他の方法について説明する。
 図11のステップ102で説明したように、上記した荷重制限処理では、量子化前荷重viの絶対値が小さい方から所定の割合(第1の割合)で荷重値wiを0に変換する方法が用いられた。この方法は、N個の荷重値wiのうち、2値化前の値が相対的に小さいものを0とする方法であるとも言える。例えば、2値化前の値の絶対値を直接評価することで、荷重値wiを制限することも可能である。
 例えば、荷重制限処理として、量子化前荷重viの絶対値が第1の閾値d以下である時に、荷重値wiを0にする処理が実行される。これにより、量子化前荷重viの大きさを直接評価することが可能である。
 第1の閾値dは、例えば量子化前荷重viの絶対値の平均値ave=(Σ|vi|)/N等を基準として設定される。ここでNは、量子化前荷重viの個数であり、Σは、N個の量子化前荷重viの絶対値の総和を表す。例えば絶対値の平均値aveの70%を第1の閾値dとして設定した場合、第1の閾値dは、d=0.7×(Σ|vi|)/Nと表される。もちろん、aveの80%や40%といった、他の割合で第1の閾値dが算出されてもよい。
 荷重設定処理では、第1の閾値dに基づいて閾値判定を行い、第1の閾値dをよりも絶対値が小さい量子化前荷重viに対応する荷重値wiとして0が算出される。また第1の閾値dをよりも絶対値が大きい量子化前荷重viに対応する荷重値wiとして、量子化前荷重viの符号に応じて±1が算出される。すなわち、荷重値wiは以下の式を用いて算出されることになる。
Figure JPOXMLDOC01-appb-M000006
 これにより、量子化前荷重viが十分に小さい荷重値wiを0とすることが可能となり、演算に影響の少ない荷重値wiをまびくことが可能となる。算出された荷重値wiは、荷重値データ39として記録され、アナログ回路3(各シナプス回路)に設定される。
 図16は、第1の閾値dを用いてスパース化された荷重値wiの分布を示すグラフである。グラフの横軸は、荷重値wiであり、縦軸は、設定された荷重値wiの個数を荷重の総数で除算した頻度(Frequency)である。図16には、絶対値の平均値aveの70%を第1の閾値dとした場合に、1つの階層に含まれるアナログ回路3に設定される荷重値wiの分布が示されている。
 第1の閾値dがaveの70%に設定された場合、約70%の荷重値wiが0に設定される。また残りの30%の荷重値wiが±1に設定される。このように、70%の荷重値wiを0にするスパース化により、入力値xiと荷重値wiとの乗算値wi・xiの和のうち、約70%の成分が削減される。この結果、例えば100入力のアナログ回路3からは、実質的に30入力分の積和結果が出力されることになる。
 図17は、電気信号により表される積和結果について説明するための模式図である。図2を参照して説明したように、TACT方式の電気信号(パルス信号)は、設定された入力期間Tの期間内で数値を表現する信号である。図17では、入力期間Tが矢印を用いて模式的に図示されている。
 入力値xiが所定のビット精度Kを有する値(2K)であった場合に、アナログ回路3に0でない荷重値wiが2L個設定されているとし、例えばその絶対値を1とする。この場合、時間軸アナログ積和演算を行うアナログ回路3からは、2K×2Lの大きさの出力値yが出力される可能性がある。すなわち、出力値yを正確に表現するには、K+Lビット相当の精度が必要となる。
 一方、入力期間Tにおいてパルスタイミング(あるいはパルス幅)で表現できる時間分解能がKビットであったとする。この場合、出力期間T'内でK+Lビット相当の時間分解能を得ようとすると、出力期間T'の長さは、入力期間Tの2L倍必要となる。例えば、0でない荷重値wiが100個程度あった場合は、L≒7となり、出力期間T'は、T'=T×2L≒100Tとなり、出力期間T'が著しく長くなる可能性がある。
 別の観点では、入力期間Tと同じ長さの出力期間T'を設定する場合(T=T')、アナログ回路3から出力される出力値yを正確に表すための時間分解能は、入力期間Tにおける時間分解能の1/100とする必要が生じ、検出精度が低下する恐れが生じる。
 例えば、8bit(28)の情報量を持った入力値xiで表される電気信号が、100入力のアナログ回路3に入力されるとする。このとき、アナログ回路3の荷重値wiが、全て-1又は+1であった場合、アナログ回路3による積和結果(出力値y)は、約15ビットとなる。この場合、図17の上側に示すように、積和結果を表す電気信号は、215=32768の情報を期間Tで表す信号となる。
 これに対し、例えば図16に示すように、70%の荷重値wiを0に制限するスパース化が行われた場合、アナログ回路3の入力は、実質的に30入力(~25)と見做すことが可能である。このため、アナログ回路3による積和結果(出力値y)は、約13ビットとなる。この場合、図17の下側に示すように、積和結果を表す電気信号は、213=8192の情報を期間Tで表す信号となる。
 このように、70%の荷重値wiをスパース化することで、例えば単位出力(値が1の出力)を表現するために使うことのできる時間の長さは、約4倍となる。すなわち、スパース化による出力比は約4倍に増加される。これにより、積和結果を十分高精度に検出することが可能となる。この結果、時間軸アナログ積和演算を用いた各種の処理を適正に実行することが可能となる。
 以上、本実施形態に係る演算装置100では、入力値xiに応じた電気信号が複数の入力信号線6から入力され、電気信号に基づいて入力値xiと荷重値wiとの乗算値に対応する電荷が生成される。生成された電荷を蓄積して乗算値の和を表す積和信号が出力される。この時、荷重値wiの値が制限される。荷重値wiを制限することで、例えば乗算値の和を調整することが可能となる。この結果、積和演算を行うアナログ方式の回路において、演算結果を精度よく検出することが可能となる。
 <第2の実施形態>
 本技術に係る第2の実施形態の演算装置200について説明する。これ以降の説明では、上記の実施形態で説明した演算装置100における構成及び作用と同様な部分については、その説明を省略又は簡略化する。
 本実施形態では、時間軸アナログ積和演算を行う際に、各信号線1に入力される電気信号の信号値(入力値)の取り得る値が制限される。このように信号値の値は、所定の値域に含まれるように制限されている。
 図18は、第2の実施形態に係る演算装置200の構成例を示す模式図である。演算装置200は、複数のアナログ回路203と、複数の信号制限回路204とを有する。各アナログ回路203は、例えば図3を参照して説明したアナログ回路3と同様に構成される。なお図18に示すアナログ回路203は、例えば中間層に含まれるアナログ回路203である。
 信号制限回路204は、信号値の値域を制限する回路である。信号制限回路204は、例えば前段と後段のアナログ回路203をつなぐ信号線(正負の入力信号線6a及び6b/正負の出力信号線10a及び10b)上に設けられる。この信号線1を伝送される信号値の値が、信号制限回路204により制限される。
 図18に示す例では、中間層の出力側に接続された複数の信号制限回路204が図示されている。これに限定されず、中間層の入力側(プレニューロンの出力側)に信号制限回路204が設けられてもよい。
 図18に示すように、信号制限回路204には、アナログ回路203(ニューロン回路209の出力部)により算出された積和結果sjを表す積和信号(正の積和信号及び負の積和信号)が入力される。ここで、添え字のjは、中間層に含まれるアナログ回路203を示す指標である。以下では、中間層に含まれるアナログ回路203の総数をM個とする。従って指標jはj=(1,2,…,M)で表される整数となる。
 また信号制限回路204から出力された信号は、後段のアナログ回路203に入力される。従って、後段のアナログ回路203から見て、信号制限回路204から出力される信号は、入力信号となり、入力信号により表される値は、入力値となる。すなわち、信号制限回路204は、後段のアナログ回路203に入力される入力値を制限する回路である。
 以下では、信号制限回路204から出力される信号を、後段入力信号と記載し、後段入力信号により表される値を後段入力値xjと記載する。従って、信号制限回路204に入力される積和結果sjは、後段入力値xjとなる値であるとも言える。本実施形態では、後段入力値xjは、入力値の一例である。また信号制限回路204は、制限部に相当する。
 信号制限回路204は、積和結果sjの絶対値に基づいて後段入力値xjを設定する信号制限処理を実行する。上記したように、積和結果sjは、1対の正負の積和信号を用いて表される。信号制限処理では、正負の積和信号から積和結果sjの絶対値が参照され、その絶対値に基づいて後段入力値xjの値が設定される。
 このように、信号制限回路204は、ニューロン回路209の出力部から出力される積和信号に基づいて信号制限処理を実行する。本実施形態では、積和結果sjの絶対値(乗算値の和の絶対値)は、第2の値に相当し、信号制限処理は、第2の処理に相当する。
 信号制限処理の一例として、M個のアナログ回路203から出力された積和結果sjのうち、積和結果sjの絶対値が小さい方から順番に、第2の割合で定められた個数の後段入力値xjを0に設定する処理が実行される。すなわち、M個の後段入力値xjのうち、もとの値(積和結果sj)の絶対値が小さいものは、第2の割合(例えば70%、50%等)で0に設定される。これにより、値の小さい後段入力値xjのスパース化を実現することが可能となる。
 なお、M個の後段入力信号は(後段入力値xj)、後段のアナログ回路203に設けられた複数のシナプス回路208にそれぞれ入力されることになる。従って、上記の信号制限処理は、複数のシナプス回路208の各々に入力される後段入力信号により表される後段入力値xjについて、積和結果sjの絶対値が小さい方から順番に第2の割合で後段入力値xjを0に設定する処理であるとも言える。
 信号制限回路204では、例えば積和結果sjの絶対値として、正負の積和信号で表されるタイミングの差分値|tν --tν +|が算出される。具体的には、差分値をパルスタイミング等によって表すTACT方式のパルス信号(電気信号)等が生成される。
 各信号制限回路204で生成されたパルス信号のタイミングが比較され、差分値の小さい方から順に、第2の割合に応じた個数のパルス信号が0にされる。例えば対象となるパルス信号の配線がOFFに切り替えられる。あるいは、0を表す信号が代わりに出力される。これにより、第2の割合で後段入力値xjを0に設定することが可能である。
 なお信号制限回路204は、例えば上記した差分値の算出をする論理回路、タイミングを比較・カウントするカウンター回路、及び配線のON/OFFを切り替えるスイッチ回路等を用いて適宜構成される。信号制限回路204の具体的な構成は限定されない。
 また、信号制限処理の他の一例として、積和結果sjの絶対値が第2の閾値d以下であるときに後段入力値xjを0に設定する処理が実行されてもよい。例えば、信号制限回路204では、イミングの差分値|tν --tν +|(積和結果sjの絶対値)を表すパルス信号が生成され、そのパルスタイミングについて第2の閾値dを用いた閾値処理が実行される。この結果、例えば差分値が閾値以下であると判定された場合、そのパルス信号の配線がOFFに切り替えられる。例えばこのような処理が実行される。
 このように、信号制限回路204を適宜構成することで、所望とする信号制限処理を実装することが可能である。これにより、中間層から、後段の上位層等へ入力される後段入力値xjを適正にスパース化する事が可能である。
 なお0に設定されかった後段入力値xjとしては、例えば積和結果sjがそのまま用いられる。すなわち、正負の積和信号がそのまま後段入力信号として出力される。あるいは、積和結果sjの正負に応じて、後段入力値xjが±1に2値化されてもよい。これらの後段入力値xjが、上位層に含まれるアナログ回路203に対する実質的な入力値となる。
 このように、上位層に含まれるアナログ回路203では、実質的に入力数が減ることになる。すなわち、入力値と荷重値との乗算値のうち、入力値が0となる数が増加するため、0となる乗算値が増加する((数1)等参照)。これにより、上位層の各アナログ回路203で算出される積和結果を小さくすることが可能である。
 この結果、積和結果を表すための精度を向上させることが可能となる。あるいは、積和結果に対応する差分値の大きさを増大させることが可能である。これにより、演算装置200による演算結果等を高精度に検出することが可能となる。この結果、時間軸アナログ積和演算を用いた各種の処理を適正に実行することが可能となる。
 <その他の実施形態>
 本技術は、以上説明した実施形態に限定されず、他の種々の実施形態を実現することができる。
 上記では、値域が制限された荷重値が設定された演算装置100と、値域が制限された入力値が用いられる演算装置200について説明した。これに限定されず、値域が制限された荷重値が設定され、値域が制限された入力値が用いられる演算装置が構成されてもよい。すなわち、荷重値と入力値との両方がスパース化されてもよい。
 例えば図18を参照して説明した演算装置200に対して、値域が制限された荷重値等を設定することで、荷重値と入力値との両方をスパース化することが可能である。これにより、例えば各アナログ回路で算出される積和結果を十分に抑制することが可能となり、演算装置による演算結果を高精度に検出することが可能となる。
 上記では、荷重値及び入力値の値域が、複数の制限値(±1,0等)を用いて制限された。これに限定されず、例えば、アナログ回路により算出される積和結果が小さくなるように、荷重値及び入力値の値域が適宜設定されてよい。
 複数の制限値として、-1、-0.5、0、+0.5、+1といった、5つの値が用いられてもよい。例えば、入力値及び荷重値のもととなる値の大きさに基づいて、入力値及び荷重値を各制限値に設定する判定処理等が実行されてもよい。このように入力値及び荷重値の値域を詳細に設定することで、演算装置により処理精度を向上させることが可能である。もちろん、±3、±2、±1、0といった、規格化されていない離散値が制限値としてもちいられてもよい。この他、制限値を設定する方法は限定されない。
 また例えば、荷重値及び入力値の値が、所定の範囲に収まるように制限されてもよい。例えば荷重値及び入力値のもとになる値(量子化前荷重や積和結果)の絶対値等を基準として、もとの値が小さいものを、-0.1~+0.1の範囲に収まるように制限するといった処理が実行されてもよい。このように、荷重値及び入力値が連続した値域に制限される場合であっても、積和結果等を小さくすることが可能であり、検出精度を向上することが可能である。例えばこのような処理が実行されてもよい。
 上記の実施形態ではTACT方式の電気信号を用いた時間軸アナログ積和演算について説明した。電気信号の方式は限定されず、例えば時間軸アナログ積和演算を実行可能な任意の方式の電気信号が用いられてよい。
 例えば、電気信号として、パルス幅変調方式(PWM:Pulse Width Modulation)の電気信号が用いられてもよい。PWM方式の電気信号は、パルス幅を用いて入力値を表す信号である。また電気信号のパルス幅は、典型的には、所定の入力期間に収まるように設定される。従って、電気信号により表される入力値の精度は、入力値の増大に伴い低下する。例えば、PWM方式の電気信号が用いられる場合であっても、上記した荷重値及び入力値のスパース化により、積和結果等を小さくすることが可能である。これにより、演算結果を精度よく検出することが可能である。
 各図面を参照して説明した演算装置、アナログ回路、シナプス回路、ニューロン回路等の各構成、荷重値及び入力値を制限する方法等はあくまで一実施形態であり、本技術の趣旨を逸脱しない範囲で、任意に変形可能である。すなわち本技術を実施するための他の任意の構成や方法等が採用されてよい。
 荷重値をスパース化する回路(以下では、荷重制限回路と記載する)が設けられてもよい。荷重制限回路は、アナログ回路(積和演算装置)の各シナプス回路(乗算部)に設定される荷重値の値を制限する。荷重制限回路によるスパース化は、典型的には、1つのアナログ回路が含む複数のシナプス回路を対象として実行される。荷重制限回路により、例えば各シナプス回路に対応して算出された複数の量子化前荷重viが、所定の値域に含まれる荷重値wiとなるように制限する処理が実行される。
 例えば、荷重制限回路は、入力された量子化前荷重viの絶対値を計算し、絶対値の小さいほうから順に所定の数の荷重を選択して、選択した荷重の量子化後の荷重値wiにゼロを代入して出力する。あるいは、荷重制限回路は、入力された量子化前荷重viの絶対値を計算し、絶対値が閾値dと比較して小さい荷重に対し、量子化後の荷重値wiにゼロを代入して出力する。荷重制限回路から出力された荷重値wiが、各シナプス回路に設定される。
 荷重制限回路の具体的な構成は限定されず、例えば比較器、論理素子、記憶素子等を適宜組み合わせることで実現可能である。また、荷重制限回路は、アナログ回路ごとに設けられてもよいし、複数のアナログ回路に共通の回路として構成されてもよい。いずれにしろ、荷重制限回路としては、入力された荷重(量子化前荷重vi)をスパース化して各シナプス回路に設定可能な回路が用いられる。
 また、図18では、入力値をスパース化する回路(信号制限回路204)について説明した。このように、入力値や荷重値をスパース化する回路(信号制限回路及び荷重制限回路)を用いることが可能である。これらの回路により、アナログ回路に設けられた複数のシナプス回路の各々が乗算値に対応する電荷を生成する前に、入力値及び荷重値の少なくとも一方の値が制限される。これにより、演算結果を精度よく検出することが可能となる。信号制限回路及び荷重制限回路は、本技術に係る制限処理部として機能する。
 また図1等を参照して説明したように、複数のアナログ回路(積和演算装置)が接続されることで、ネットワーク回路が構成され、積和演算システムが実現される。上記した信号制限回路及び荷重制限回路は、このネットワーク回路上に設けられる回路である。従って、各アナログ回路にはネットワーク回路を介してスパース化処理済みの入力値や荷重値が入力されることになる。例えば下層側に配置された信号制限回路により、上層側のアナログ回路に入力される入力値がスパース化される。あるいはネットワーク回路に適宜接続された荷重制限回路により、アナログ回路の荷重値がスパース化される。
 このように、入力値及び荷重値の少なくとも一方は、ネットワーク回路を介して信号制限回路や荷重制限回路(制限処理部)により制限される。これにより、例えば信号制限回路を用いることで、スパース化されていない入力値が入力される場合であっても、実際の演算では、スパース化された入力値が用いられることになる。または、荷重制限回路を用いることで、事前にスパース化されていない荷重が入力される場合であっても、適正にスパース化された荷重値を設定することが可能である。この結果、演算結果の検出精度が高く、汎用性の高い演算装置を実現することが可能となる。
 本開示において、「同じ」「等しい」「直交」等は、「実質的に同じ」「実質的に等しい」「実質的に直交」等を含む概念とする。例えば「完全に同じ」「完全に等しい」「完全に直交」等を基準とした所定の範囲(例えば±10%の範囲)に含まれる状態も含まれる。
 以上説明した本技術に係る特徴部分のうち、少なくとも2つの特徴部分を組み合わせることも可能である。すなわち各実施形態で説明した種々の特徴部分は、各実施形態の区別なく、任意に組み合わされてもよい。また上記で記載した種々の効果は、あくまで例示であって限定されるものではなく、また他の効果が発揮されてもよい。
 なお、本技術は以下のような構成も採ることができる。
(1)入力値に応じたパルス信号が入力される複数の入力線と、
  前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
  前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部と
 を有する積和演算装置と
 を具備し、
 前記入力値及び前記荷重値の少なくとも一方の値が制限されている
 演算装置。
(2)(1)に記載の演算装置であって、
 前記入力値及び前記荷重値の少なくとも一方の値は、所定の値域に含まれるように制限されている
 演算装置。
(3)(2)に記載の演算装置であって、
 前記所定の値域は、複数の制限値を含み、
 前記入力値及び前記荷重値の少なくとも一方は、前記複数の制限値のいずれかに設定される
 演算装置。
(4)(3)に記載の演算装置であって、
 前記複数の制限値は、0を含む
 演算装置。
(5)(3)又は(4)に記載の演算装置であって、
 前記複数の制限値は、互いに絶対値が等しい正の制限値及び負の制限値を含む
 演算装置。
(6)(1)から(5)のうちいずれか1つに記載の演算装置であって、
 前記荷重値は、前記荷重値となる値の絶対値である第1の値に基づいて前記荷重値を設定する第1の処理により制限される
 演算装置。
(7)(6)に記載の演算装置であって、
 前記第1の処理は、前記第1の値が第1の閾値以下であるときに前記荷重値を0に設定する処理である
 演算装置。
(8)(6)に記載の演算装置であって、
 前記第1の処理は、前記複数の乗算部の各々に設定される前記荷重値について、前記第1の値が小さい方から順番に第1の割合で前記荷重値を0に設定する処理である
 演算装置。
(9)(1)から(8)のうちいずれか1つに記載の演算装置であって、
 前記入力値は、前記入力値となる値の絶対値である第2の値に基づいて前記入力値を設定する第2の処理により制限される
 演算装置。
(10)(9)に記載の演算装置であって、
 前記第2の処理は、前記第2の値が第2の閾値以下であるときに前記入力値を0に設定する処理である
 演算装置。
(11)(9)に記載の演算装置であって、
 前記第2の処理は、前記複数の乗算部の各々に入力される前記パルス信号により表される前記入力値について、前記第2の値が小さい方から順番に第2の割合で前記入力値を0に設定する処理である
 演算装置。
(12)(9)から(11)のうちいずれか1つに記載の演算装置であって、さらに、
 前記積和信号により表される前記乗算値の和の絶対値を前記第2の値として、前記積和信号に基づいて前記第2の制限処理を実行する制限部を具備する
 演算装置。
(13)(1)から(12)のうちいずれか1つに記載の演算装置であって、
 前記複数の入力線の各々には、所定の入力期間内に、前記パルス信号が入力され、
 前記出力部は、所定の出力期間内に、前記乗算値の和を表す積和信号を出力する
 演算装置。
(14)(1)から(13)のうちいずれか1つに記載の演算装置であって、
 前記入力値は、第1の入力値及び第2の入力値により表される値であり、
 前記複数の入力線は、前記第1の入力値を表す第1のパルス信号が入力される第1の入力線と、前記第2の入力値を表す第2のパルス信号が入力される第2の入力線とを対とする、複数の前記入力線の対を含む
 演算装置。
(15)(1)から(14)のうちいずれか1つに記載の演算装置であって、
 前記パルス信号は、パルスのタイミング及びパルス幅の少なくとも一方を用いて前記入力値を表す信号である
 演算装置
(16)複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
 前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部と
 を具備し、
 前記入力値及び前記荷重値の少なくとも一方の値が制限されている
 積和演算装置。
(17)入力値に応じたパルス信号が入力される複数の入力線と、
  前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
  前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部と
 を有する複数の積和演算装置と、
 前記複数の積和演算装置を接続して構成されたネットワーク回路と
 を具備し、
 前記入力値及び前記荷重値の少なくとも一方の値が制限されている
 積和演算システム。
(18)複数の入力線に、入力値に応じたパルス信号を入力し、
 前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成し、
 前記乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力し、
 前記入力値及び前記荷重値の少なくとも一方の値を制限する
 積和演算方法。
(19)入力値に応じたパルス信号が入力される複数の入力線と、
  前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
  前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部と
 を有する積和演算装置と、
 前記複数の乗算部の各々が前記乗算値に対応する電荷を生成する前に、前記入力値及び前記荷重値の少なくとも一方の値を制限する制限処理部と
 を具備する演算装置。
(20)入力値に応じたパルス信号が入力される複数の入力線と、
  前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
  前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部と
 を有する複数の積和演算装置と、
 前記複数の積和演算装置を接続して構成されたネットワーク回路と、
 前記複数の乗算部の各々が前記乗算値に対応する電荷を生成する前に、前記入力値及び前記荷重値の少なくとも一方の値を制限する制限処理部と
 を具備し、
 前記入力値及び前記荷重値の少なくとも一方の値が前記ネットワーク回路を介して前記制限処理部により制限される
 積和演算システム。
 1、1a、1b…信号線
 3、3a~3c、203…アナログ回路
 6、6a、6b…入力信号線
 8、208…シナプス回路
 9、209…ニューロン回路
 10、10a、10b…出力信号線
 11…蓄積部
 12…出力部
 39…荷重値データ
 100、200…積和演算装置
 204…信号制限回路

Claims (20)

  1.  入力値に応じたパルス信号が入力される複数の入力線と、
      前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
      前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部と
     を有する積和演算装置と
     を具備し、
     前記入力値及び前記荷重値の少なくとも一方の値が制限されている
     演算装置。
  2.  請求項1に記載の演算装置であって、
     前記入力値及び前記荷重値の少なくとも一方の値は、所定の値域に含まれるように制限されている
     演算装置。
  3.  請求項2に記載の演算装置であって、
     前記所定の値域は、複数の制限値を含み、
     前記入力値及び前記荷重値の少なくとも一方は、前記複数の制限値のいずれかに設定される
     演算装置。
  4.  請求項3に記載の演算装置であって、
     前記複数の制限値は、0を含む
     演算装置。
  5.  請求項3に記載の演算装置であって、
     前記複数の制限値は、互いに絶対値が等しい正の制限値及び負の制限値を含む
     演算装置。
  6.  請求項1に記載の演算装置であって、
     前記荷重値は、前記荷重値となる値の絶対値である第1の値に基づいて前記荷重値を設定する第1の処理により制限される
     演算装置。
  7.  請求項6に記載の演算装置であって、
     前記第1の処理は、前記第1の値が第1の閾値以下であるときに前記荷重値を0に設定する処理である
     演算装置。
  8.  請求項6に記載の演算装置であって、
     前記第1の処理は、前記複数の乗算部の各々に設定される前記荷重値について、前記第1の値が小さい方から順番に第1の割合で前記荷重値を0に設定する処理である
     演算装置。
  9.  請求項1に記載の演算装置であって、
     前記入力値は、前記入力値となる値の絶対値である第2の値に基づいて前記入力値を設定する第2の処理により制限される
     演算装置。
  10.  請求項9に記載の演算装置であって、
     前記第2の処理は、前記第2の値が第2の閾値以下であるときに前記入力値を0に設定する処理である
     演算装置。
  11.  請求項9に記載の演算装置であって、
     前記第2の処理は、前記複数の乗算部の各々に入力される前記パルス信号により表される前記入力値について、前記第2の値が小さい方から順番に第2の割合で前記入力値を0に設定する処理である
     演算装置。
  12.  請求項9に記載の演算装置であって、さらに、
     前記積和信号により表される前記乗算値の和の絶対値を前記第2の値として、前記積和信号に基づいて前記第2の制限処理を実行する制限部を具備する
     演算装置。
  13.  請求項1に記載の演算装置であって、
     前記複数の入力線の各々には、所定の入力期間内に、前記パルス信号が入力され、
     前記出力部は、所定の出力期間内に、前記乗算値の和を表す積和信号を出力する
     演算装置。
  14.  請求項1に記載の演算装置であって、
     前記入力値は、第1の入力値及び第2の入力値により表される値であり、
     前記複数の入力線は、前記第1の入力値を表す第1のパルス信号が入力される第1の入力線と、前記第2の入力値を表す第2のパルス信号が入力される第2の入力線とを対とする、複数の前記入力線の対を含む
     演算装置。
  15.  請求項1に記載の演算装置であって、
     前記パルス信号は、パルスのタイミング及びパルス幅の少なくとも一方を用いて前記入力値を表す信号である
     演算装置
  16.  複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
     前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部と
     を具備し、
     前記入力値及び前記荷重値の少なくとも一方の値が制限されている
     積和演算装置。
  17.  入力値に応じたパルス信号が入力される複数の入力線と、
      前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
      前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部と
     を有する複数の積和演算装置と、
     前記複数の積和演算装置を接続して構成されたネットワーク回路と
     を具備し、
     前記入力値及び前記荷重値の少なくとも一方の値が制限されている
     積和演算システム。
  18.  複数の入力線に、入力値に応じたパルス信号を入力し、
     前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成し、
     前記乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力し、
     前記入力値及び前記荷重値の少なくとも一方の値を制限する
     積和演算方法。
  19.  入力値に応じたパルス信号が入力される複数の入力線と、
      前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
      前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部と
     を有する積和演算装置と、
     前記複数の乗算部の各々が前記乗算値に対応する電荷を生成する前に、前記入力値及び前記荷重値の少なくとも一方の値を制限する制限処理部と
     を具備する演算装置。
  20.  入力値に応じたパルス信号が入力される複数の入力線と、
      前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
      前記複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積することで、前記乗算値の和を表す積和信号を出力する出力部と
     を有する複数の積和演算装置と、
     前記複数の積和演算装置を接続して構成されたネットワーク回路と、
     前記複数の乗算部の各々が前記乗算値に対応する電荷を生成する前に、前記入力値及び前記荷重値の少なくとも一方の値を制限する制限処理部と
     を具備し、
     前記入力値及び前記荷重値の少なくとも一方の値が前記ネットワーク回路を介して前記制限処理部により制限される
     積和演算システム。
PCT/JP2019/027650 2018-07-17 2019-07-12 演算装置、積和演算装置、積和演算システム、及び積和演算方法 WO2020017444A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020531285A JP7447790B2 (ja) 2018-07-17 2019-07-12 演算装置、積和演算装置、積和演算システム、及び積和演算方法
US17/258,965 US20210318853A1 (en) 2018-07-17 2019-07-12 Arithmetic logic unit, multiply-accumulate operation device, multiply-accumulate operation system, and multiply-accumulate operation method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-134591 2018-07-17
JP2018134591 2018-07-17

Publications (1)

Publication Number Publication Date
WO2020017444A1 true WO2020017444A1 (ja) 2020-01-23

Family

ID=69164027

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/027650 WO2020017444A1 (ja) 2018-07-17 2019-07-12 演算装置、積和演算装置、積和演算システム、及び積和演算方法

Country Status (4)

Country Link
US (1) US20210318853A1 (ja)
JP (1) JP7447790B2 (ja)
TW (1) TWI831804B (ja)
WO (1) WO2020017444A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200341109A1 (en) * 2019-03-14 2020-10-29 Infineon Technologies Ag Fmcw radar with interference signal suppression using artificial neural network
DE102019106529A1 (de) 2019-03-14 2020-09-17 Infineon Technologies Ag Fmcw radar mit störsignalunterdrückung mittels künstlichem neuronalen netz
US11907829B2 (en) 2019-03-14 2024-02-20 Infineon Technologies Ag FMCW radar with interference signal suppression using artificial neural network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05290014A (ja) * 1992-04-15 1993-11-05 Ricoh Co Ltd 信号処理装置
JPH10222491A (ja) * 1997-02-06 1998-08-21 Fuji Xerox Co Ltd 分散算術法積和演算システム
JP2001285137A (ja) * 2000-03-30 2001-10-12 Hitachi Kokusai Electric Inc 積和演算回路
WO2018034163A1 (ja) * 2016-08-19 2018-02-22 国立大学法人 九州工業大学 積和演算装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9754203B2 (en) * 2013-03-24 2017-09-05 Technion Research And Development Foundation Ltd. Analog multiplier using a memristive device and method for implemening Hebbian learning rules using memrisor arrays
US9891886B2 (en) * 2014-07-02 2018-02-13 Via Alliance Semiconductor Co., Ltd Split-path heuristic for performing a fused FMA operation
US10528864B2 (en) * 2016-08-11 2020-01-07 Nvidia Corporation Sparse convolutional neural network accelerator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05290014A (ja) * 1992-04-15 1993-11-05 Ricoh Co Ltd 信号処理装置
JPH10222491A (ja) * 1997-02-06 1998-08-21 Fuji Xerox Co Ltd 分散算術法積和演算システム
JP2001285137A (ja) * 2000-03-30 2001-10-12 Hitachi Kokusai Electric Inc 積和演算回路
WO2018034163A1 (ja) * 2016-08-19 2018-02-22 国立大学法人 九州工業大学 積和演算装置

Also Published As

Publication number Publication date
JP7447790B2 (ja) 2024-03-12
US20210318853A1 (en) 2021-10-14
TW202029048A (zh) 2020-08-01
TWI831804B (zh) 2024-02-11
JPWO2020017444A1 (ja) 2021-08-05

Similar Documents

Publication Publication Date Title
WO2020017444A1 (ja) 演算装置、積和演算装置、積和演算システム、及び積和演算方法
TWI762719B (zh) 用於混和訊號運算的系統及方法
US9721332B2 (en) Spike domain convolution circuit
WO2021044821A1 (ja) 演算装置及び積和演算システム
JP7283477B2 (ja) 積和演算装置、積和演算回路、積和演算システム、及び積和演算方法
WO2020162241A1 (ja) 演算装置、及び積和演算システム
Bhaduri et al. Spiking neural classifier with lumped dendritic nonlinearity and binary synapses: a current mode VLSI implementation and analysis
WO2020195867A1 (ja) 演算装置及び積和演算システム
WO2020255599A1 (ja) 演算装置及び積和演算システム
WO2020195546A1 (ja) 演算装置及び積和演算システム
WO2020162141A1 (ja) 演算装置、積和演算システム及び設定方法
US12008338B2 (en) Multiply-accumulate operation device, multiply-accumulate operation circuit, multiply-accumulate operation system, and multiply-accumulate operation method
Moriyasu et al. A deep dynamic binary neural network and its application to matrix converters
JP7420072B2 (ja) 演算装置、積和演算装置、積和演算回路、及び積和演算システム
Tanaka et al. An analog CMOS circuit for spiking neuron models
Youssefi et al. Hardware realization of mixed-signal neural networks with modular synapse-neuron arrays
WO2020013075A1 (ja) 積和演算システム及び積和演算方法
JP7271463B2 (ja) シナプス回路およびニューラルネットワーク装置
Zamanlooy et al. Efficient hardware implementation of threshold neural networks

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19837914

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020531285

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19837914

Country of ref document: EP

Kind code of ref document: A1