Computing device, neural network system, neuron model device, computing method, and learned model generation method
By incorporating a current addition unit dependent on the membrane potential in the accumulation phase of a spiking neural network, the complexity of each neuron model is reduced, enhancing the efficiency and scalability of the network.
Patent Information
- Application Number
- JP2023544939
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-09-03
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2041-09-03
AI Technical Summary
Existing spiking neural networks become complex as the scale of the neural network increases, making it difficult to configure each neuron model simply.
The proposed solution involves a spiking neural network with an accumulation phase for adding currents and a decoding phase for converting voltage into pulse timing, where the current flowing into or out of a self-neuron includes a current addition unit dependent on the membrane potential of the self-neuron.
This configuration allows for a simpler configuration of each neuron model, improving the efficiency and scalability of the spiking neural network.
Smart Images

Figure 0007697516000014 
Figure 0007697516000015 
Figure 0007697516000016
Abstract
Description
Technical Field
[0001] The present invention relates to an arithmetic unit, a neural network system, a neuron model device, an arithmetic method, and a learned model generation method.
Background Art
[0002] One type of neural network is the Spiking Neural Network (SNN). For example, Patent Document 1 describes a neuromorphic computing system that implements a spiking neural network on a neuromorphic computing device. In a spiking neural network, a neuron model has an internal state called a membrane potential and outputs a signal called a spike based on the temporal evolution of the membrane potential. There is a finding that such a neuron model can be realized using an analog circuit including an analog multiplier. For example, by making an operation of taking a weighted sum of the outputs of an activation function and an operation of applying an activation function to the weighted sum into an analog circuit, the efficiency of the operation can be improved. When using such an analog circuit, a circuit that converts a voltage into a pulse can be associated with the activation function. As the object to be learned by the neural network becomes more complex, the scale of the neural network becomes larger. Along with this, the configuration of the spiking neural network realized by the analog circuit may become complex.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] It is preferable that each neuron model constituting the spiking neural network can be configured more simply.
[0005] An example of the object of the present invention is to provide an arithmetic unit, a neural network system, a neuron model device, an arithmetic method, and a learned model generation method capable of solving the above-described problems.
Means for Solving the Problems
[0006] According to a first aspect of the present invention, an arithmetic unit includes a spiking neural network including an accumulation phase for adding currents and a decoding phase for converting a voltage generated by the addition into a timing of a voltage pulse, and in the accumulation phase of the spiking neural network, a current flowing into or out of a self-neuron includes a current addition unit that depends on a membrane potential of the self-neuron.
[0007] According to a second aspect of the present invention, a neural network system is a neural network system including a spiking neural network including an accumulation phase for adding currents and a decoding phase for converting a voltage generated by the addition into a timing of a voltage pulse, and in the accumulation phase, a current flowing into or out of a self-neuron includes a current addition unit that depends on a membrane potential of the self-neuron.
[0008] According to a third aspect of the present invention, a neuron model device is a neuron model device that forms a spiking neural network including an accumulation phase for adding currents and a decoding phase for converting a voltage generated by the addition into a timing of a voltage pulse, and in the accumulation phase, a current flowing into or out of a self-neuron includes a current addition unit that depends on a membrane potential of the self-neuron.
[0009] According to a fourth aspect of the present invention, an arithmetic method is an arithmetic method using a spiking neural network including an accumulation phase of adding currents and a decoding phase of converting the resulting voltage into the timing of voltage pulses. In the accumulation phase, the current flowing into or out of a neuron includes a current addition operation that depends on the membrane potential of the neuron itself.
[0010] According to a fifth aspect of the present invention, a spiking neural network including an accumulation phase of adding currents and a decoding phase of converting the resulting voltage into the timing of voltage pulses is such that, in the accumulation phase, the current flowing into or out of a neuron includes a current addition operation that depends on the membrane potential of the neuron itself, and a learned model generation method is a learned model generation method for determining the responsiveness of the membrane potential of the neuron to the current.
Advantages of the Invention
[0011] According to the present invention, each neuron model constituting the arithmetic device can be configured more simply.
Brief Description of the Drawings
[0012]
Figure 1
Figure 2
Figure 3A
Figure 3B
Figure 3C
Figure 3D
Figure 3E
Figure 4
Figure 5A
Figure 5B
Figure 6
Figure 7
Figure 8A
Figure 8B
Figure 8C
Figure 8D
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Mode for Carrying Out the Invention
[0013] Hereinafter, embodiments of the present invention will be described. However, the following embodiments do not limit the invention according to the claims. Also, not all combinations of features described in the embodiments are essential for the solution means of the invention. (Embodiment) FIG. 1 is a diagram showing an example of the configuration of a neural network device according to an embodiment. In the configuration shown in FIG. 1, the neural network device 10 (arithmetic device) includes a neuron model 100. The neuron model 100 includes an index value calculation unit 110, a comparison unit 120, and a signal output unit 130.
[0014] The neural network device 10 performs data processing using a spiking neural network. The neural network device 10 corresponds to an example of an arithmetic device. The neural network device referred to here is a device in which a neural network is implemented. The spiking neural network may be implemented in the neural network device 10 using dedicated hardware. For example, the spiking neural network may be implemented in the neural network device 10 using an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array). Alternatively, the spiking neural network may be implemented in the neural network device 10 software-wise using a computer or the like.
[0015] Any of an apparatus including an ASIC, an apparatus including an FPGA, and a computer corresponds to an example of a programmable apparatus. In the case of an ASIC and an FPGA, describing hardware using a hardware description language and implementing the described hardware on the ASIC or FPGA corresponds to an example of programming. When the neural network device 10 is configured using a computer, the function of the spiking neural network may be described by programming and the obtained program may be executed by the computer. Hereinafter, an example in which a spiking neural network is realized using an analog circuit and implemented in the neural network device 10 will be illustrated. In the description thereof, when explaining the functional configuration, a configuration example of a functional model (numerical analysis model) may be shown for explanation.
[0016] The spiking neural network referred to herein is a neural network that outputs a signal at a timing based on a state quantity called a membrane potential, in which the output state of the neuron model changes with time according to the input situation of signals to the neuron model itself. The membrane potential is also referred to as an index value for signal output, or simply an index value. The time change referred to here means changing according to time.
[0017] The neuron model in a spiking neural network is also referred to as a spiking neuron model. The signal output by the spiking neuron model is also referred to as a spike signal or a spike. In a spiking neural network, a binary signal can be used as the spike signal, and information transmission between spiking neuron models can be performed by the transmission timing of the spike signal, the number of spike signals, or the like. In the case of the neuron model 100, the index value calculation unit 110 calculates the membrane potential based on the input situation of the spike signals to the neuron model 100. The signal output unit 130 outputs a spike signal at a timing corresponding to the time change of the membrane potential.
[0018] As the spike signal in the neural network device 10, a pulse signal or a step signal may be used, but it is not limited thereto. Hereinafter, as an example, a case where the time method of transmitting information at the transmission timing of spike signals is used as the information transmission method between neuron models 100 in the spiking neural network by the neural network device 10 will be described. However, the information transmission method between neuron models 100 in the spiking neural network by the neural network device 10 is not limited to a specific method.
[0019] The processing performed by the neural network device 10 can be various processes executable using a spiking neural network. For example, the neural network device 10 may perform image recognition, biometric authentication, or numerical prediction, but is not limited thereto.
[0020] The neural network device 10 may be configured as one device or may be configured by combining a plurality of devices. For example, each neuron model 100 may be configured as a device, and a spiking neural network may be configured by connecting the devices constituting these individual neuron models 100 via a signal transmission path.
[0021] FIG. 2 is a diagram showing an example of the configuration of the spiking neural network included in the neural network device 10. The spiking neural network included in the neural network device 10 is also denoted as the neural network 11. Further, the neural network 11 is also referred to as the neural network main body.
[0022] In the example of FIG. 2, the neural network 11 is configured as a feedforward 4-layer spiking neural network. Specifically, the neural network 11 includes an input layer 21, two intermediate layers 22-1 and 22-2, and an output layer 23. The two intermediate layers 22-1 and 22-2 are collectively referred to as the intermediate layer 22. The intermediate layer is also called a hidden layer. The input layer 21, the intermediate layer 22, and the output layer 23 are collectively referred to as the layer 20.
[0023] The input layer 21 includes input nodes 31. The intermediate layer 22 includes intermediate nodes 32. The output layer 23 includes output nodes 33. The input nodes 31, the intermediate nodes 32, and the output nodes 33 are collectively referred to as nodes 30.
[0024] The input nodes 31, for example, convert the input data to the neural network 11 into spike signals. Alternatively, when the input data to the neural network 11 is represented by spike signals, a neuron model 100 may be used as the input nodes 31.
[0025] A neuron model 100 may be used as both the intermediate nodes 32 and the output nodes 33. Also, in the output nodes 33, the operation of the neuron model 100 may be different between the intermediate nodes 32 and the output nodes 33, such as the constraint conditions for the spike signal output timing described later being more relaxed than in the case of the intermediate nodes.
[0026] The four layers 20 of the neural network 11 are arranged in the order of the input layer 21, the intermediate layer 22-1, the intermediate layer 22-2, and the output layer 23 from the upstream side in signal transmission. Between two adjacent layers 20, the nodes 30 are connected by a transmission path 40. The transmission path 40 transmits spike signals from the nodes 30 of the upstream layer 20 to the nodes 30 of the downstream layer 20.
[0027] However, when the neural network 11 is configured as a feedforward spiking neural network, the number of layers is not limited to four layers and may be two or more layers. Also, the number of neuron models 100 provided in each layer is not limited to a specific number, and each layer may be provided with one or more neuron models 100. Each layer may be provided with the same number of neuron models 100, or may be provided with different numbers of neuron models 100 depending on the layer.
[0028] Also, the neural network 11 may be configured as a fully connected type, but is not limited to this. In the example of FIG. 2, all the neuron models 100 on the front stage side and all the neuron models 100 on the rear stage side in adjacent layers may be connected by the transmission path 40, but there may be some neuron models 100 in adjacent layers that are not connected by the transmission path 40.
[0029] Hereinafter, it is assumed that the delay time in the transmission of the spike signal can be ignored, and the description will be made on the assumption that the spike signal output time of the neuron model 100 on the spike signal output side is the same as the spike signal input time to the neuron model 100 on the spike signal input side. When the delay time in the transmission of the spike signal cannot be ignored, the time obtained by adding the delay time to the spike signal output time may be used as the spike signal input time.
[0030] The spiking neuron model outputs a spike signal at the timing when the membrane potential that changes with time reaches the threshold within a predetermined period. In a general spiking neural network where the output timing of the spike signal is not restricted, when there are multiple pieces of data to be processed, it is necessary to wait for the input of the next input data to the spiking neural network until the spiking neural network receives the input of the input data and outputs the calculation result.
[0031] Figure 3A is a diagram showing an example of the time change of the membrane potential in a spiking neuron model where the output timing of the spike signal is not restricted. The horizontal axis of the graph in Figure 3A indicates time. The vertical axis indicates the membrane potential. Figure 3A shows an example of the membrane potential of the spiking neuron model of the i-th node in the l-th layer. The membrane potential of the spiking neuron model of the i-th node in the l-th layer at time t is denoted as vi(l)(t). In the description of Figure 3A, the spiking neuron model of the i-th node in the l-th layer is also referred to as the target model. Time t indicates the elapsed time starting from the start time of the time interval assigned to the processing of the first layer.
[0032] In the example of Figure 3A, the target model receives inputs of spike signals from three spiking neuron models. Time t2*(l - 1) indicates the input time of the spike signal from the second spiking neuron model in the l - 1-th layer. Time t1*(l - 1) indicates the input time of the spike signal from the first spiking neuron model in the l - 1-th layer. Time t3*(l - 1) indicates the input time of the spike signal from the third spiking neuron model in the l - 1-th layer. Also, the target model outputs a spike signal at time ti*(l). When a spiking neuron model outputs a spike signal, it is called firing. The time when a spiking neuron model fires is called the firing time.
[0033] In the example of Figure 3A, the initial value of the membrane potential is set to 0. The initial value of the membrane potential corresponds to the resting membrane potential. Before the target model fires, after the input of the spike signal, the membrane potential vi(l)(t) of the target model continues to change at a rate (change speed) corresponding to the weight set for each transmission path of the spike signal. Also, the change rates of the membrane potential for each input of the spike signal are linearly added. The differential equation of the membrane potential vi(l)(t) in the example of Figure 3A is expressed as in Equation (1).
[0034]
Equation
[0035] In Equation (1), wij(l) represents the weight set in the transmission path of the spike signal from the j-th spiking neuron model in the (l-1)-th layer to the target model. The weight wij(l) is the object of learning. The weight wij(l) can take both positive and negative values.
[0036] θ is a step function and is expressed as in Equation (2). Therefore, the change rate of the membrane potential vi(l)(t) varies, showing various values depending on the input situation of the spike signal and the value of the weight wij(l), and can take both positive and negative values during the process.
[0037] For example, at time ti*(l), the membrane potential vi(l)(t) of the target model reaches the threshold Vth, and the target model fires. Due to the firing, the membrane potential vi(l)(t) of the target model becomes 0, and thereafter, the membrane potential does not change even if the target model receives an input of a spike signal.
[0038] Referring to FIGS. 3B to 3D, the operation method for the membrane potential of the above target model will be described. FIG. 3B is a diagram for explaining an operation method of obtaining the membrane potential of the target model using the deep learning model 11M as a numerical analysis model of a comparative example. FIG. 3C is a diagram for explaining an operation method of obtaining the membrane potential of the target model using the analog circuit of the embodiment. FIG. 3D is a diagram for explaining a method of converting the membrane potential of the target model into a pulse using the analog circuit.
[0039] In the case of the comparative example using the deep learning model 11M shown in FIG. 3B, the operation of taking the weighted sum of the outputs of the activation function (Weighted sum) and the operation of applying the activation function to the weighted sum (Activation) are repeatedly performed. For example, the deep learning model 11M includes intermediate nodes 32-1, 32-2, and 32-3 in different layers. The intermediate nodes 32-1, 32-2, and 32-3 are an example of the intermediate node 32. When the intermediate nodes 32-1, 32-2, and 32-3 are connected in series in the signal processing order, when the intermediate node 32-1 performs the operation of applying the activation function, accordingly, the intermediate node 32-2 performs the operation of taking the weighted sum of the outputs of the activation function. Then, when the intermediate node 32-2 performs the operation of applying its activation function, accordingly, the next-layer intermediate node 32-3 performs the operation of taking the weighted sum of the outputs of the activation function. In the case of the comparative example, the above operations are performed by numerical analysis.
[0040] On the other hand, the case of realizing the above operations using the analog circuit 11ACM will be described. The analog circuit 11ACM shown in FIG. 3C is an example that prioritizes learning with higher accuracy. In the case of the method using the analog circuit 11ACM, an accumulation phase (Ph-Acc) that operates on the voltage (Voltage) related to the membrane potential is used instead of the operation of taking the weighted sum of the outputs of the activation function (Weighted sum), and a decoding phase (Ph-Dec) that determines the pulse timing for the membrane potential is used instead of the operation of applying the activation function to the weighted sum (Activation). These phases are repeatedly performed. For example, an accumulation phase that operates on the voltage (Voltage) related to the membrane potential of the intermediate node 32-2 is applied between the intermediate nodes 32-1 and 32-2 in different layers, and a decoding phase that determines the pulse timing for the membrane potential of the intermediate node 32-2 is applied between the intermediate nodes 32-2 and 32-3 in different layers.
[0041] The graph shown in FIG. 3D shows an example of a conversion rule for converting voltage into a pulse. The graph shown in FIG. 3D shows the relationship between the change over time (horizontal axis) of the voltage (vertical axis). It shows that a voltage (membrane potential) that monotonically changes over time reaches the threshold value Vth at a timing within a predetermined period from time T to time 2T, and then fires to output a spike signal. For example, in the graph shown in FIG. 3D, two straight lines with different membrane potentials at the start stage of the decoding phase are depicted. The graph shown in FIG. 3D shows an example of an activation function.
[0042] By the way, in the case of the method using the analog circuit 11ACM shown in FIG. 3C, an arithmetic circuit that calculates the membrane potential by precise arithmetic can be selected. Examples include integrating the current from a constant voltage source using a sum-of-products arithmetic circuit with an operational amplifier and a capacitor in its feedback circuit, and integrating with an integrating circuit that charges a capacitor with the current from a constant current source. In the case of such an analog circuit 11ACM, an operational amplifier, a constant current circuit, etc. are required within the range of the circuit used in the above-mentioned accumulation phase. Since these configurations are required for each intermediate node 32, for example, it has been a factor in increasing the circuit scale.
[0043] The method of using the analog circuit 11ASM shown in FIG. 3E prioritizes a more concise configuration. The method of using the analog circuit 11ASM is similar to the method of using the analog circuit 11ACM shown in FIG. 3C mentioned above, but there are some differences. The difference is that instead of calculating the voltage related to the membrane potential in the accumulation phase, the membrane potential is directly calculated. The analog circuit 11ACM directly calculates by using an integrating circuit that charges the capacitor CP with the current from a constant voltage source (power supply PS). The direct calculation method includes obtaining the membrane potential without involving the conversion of the current by the spike signal using an active element.
[0044] The operation method using the above spiking neural network includes an accumulation phase of adding currents and a decoding phase of converting the resulting voltage into the timing of voltage pulses. In this operation method, in the accumulation phase, the current flowing into or out of the neuron model 100 is configured to include a current addition operation that depends on the membrane potential of the neuron model 100.
[0045] Hereinafter, an example of the analog circuit 11ASM that realizes such a spiking neuron model will be described. The analog circuit 11ASM realizes an analog sum-of-products operation circuit without using the operational amplifier and constant current required in the accumulation phase of the method of FIG. 3C.
[0046] FIG. 4 is a configuration diagram of a spiking neuron model including an analog sum-of-products operation circuit. The neuron model 100 is an example of a spiking neuron model including an analog sum-of-products operation circuit. For example, the neuron model 100 includes conductors G11 - G22, switches S11 and S12, S21 - S22, S31 - S32, a capacitor CP, a constant current source CS, and a comparator COMP.
[0047] The neuron model 100 may further include a positive power supply unit PVS and a negative power supply unit NVS inside or outside the neuron model 100. The positive power supply unit PVS and the negative power supply unit NVS may be collectively referred to as a power supply unit PS.
[0048] The positive power supply unit PVS is a voltage source capable of outputting a predetermined positive voltage Vdd+ with respect to the reference potential as the reference positive voltage. The negative power supply unit NVS is a voltage source capable of outputting a predetermined negative voltage Vdd- with respect to the reference potential as the reference negative voltage. The positive voltage Vdd+ and the negative voltage Vdd- are voltages within the allowable input voltage range of the comparator COMP described later. The positive voltage Vdd+ and the negative voltage Vdd- are voltages within the power supply voltage range of the comparator COMP (the range from the negative voltage VSS to the positive voltage VDD) (negative voltage VSS < negative voltage Vdd- < 0 (reference potential) < positive voltage Vdd+ < positive voltage VDD). The negative voltage VSS and the positive voltage VDD may be the power supply voltages of the comparator COMP described later.
[0049] The conductors G11 - G22 may be formed by applying resistors respectively, or may be formed by applying semiconductor elements such as analog memories. For example, the conductances of the conductors G11, G12, G21, G22 may be σi1(l)+, σi1(l)-, σi2(l)+, σi2(l)- respectively. These are collectively referred to as conductance values. Conductance is the reciprocal of the resistance value.
[0050] The switch S11 and the switch S12, the switch S21 and the switch S22, and the switch S31 and the switch S32 each include an a-contact type switch (semiconductor switch) that closes the circuit between the first terminal and the second terminal under control.
[0051] The first terminals of the switch S11 and the switch S21 are connected to the output of the positive power supply unit PVS. The second terminal of the switch S11 is connected to the first terminal of the switch S31 via the conductor G11 connected in series. The second terminal of the switch S12 is connected to the first terminal of the switch S31 via the conductor G12 connected in series.
[0052] The first terminals of the switch S12 and the switch S22 are connected to the output of the negative power supply unit NVS. The second terminal of switch S12 is connected to the first terminal of switch S31 via a conductor G12 connected in series. The second terminal of switch S22 is connected to the first terminal of switch S31 via a conductor G22 connected in series.
[0053] The control terminals of switch S11 and switch S12 are connected to the output of neuron NNJ1 in the (l-1) layer. Switches S11 and S12 are switched between ON and OFF according to the logical state of the output signal S1(l-1) of neuron NNJ1 in the (l-1) layer. For example, switches S11 and S12 both turn ON when the logical state of output signal S1(l-1) is 1, and turn OFF when it is 0. The 1 and 0 of the logical state of output signal S1(l-1) may be defined in association with the result of identifying the voltage of that signal using a predetermined threshold voltage.
[0054] The control terminals of switch S21 and switch S22 are connected to the output of neuron NNJ2 in the (l-1) layer. Switches S21 and S22 are switched between ON and OFF according to the logical state of the output signal S2(l-1) of neuron NNJ2 in the (l-1) layer. For example, switches S21 and S22 both turn ON when the logical state of output signal S2(l-1) is 1, and turn OFF when it is 0. The 1 and 0 of the logical state of output signal S2(l-1) may be defined in association with the result of identifying the voltage of that signal using a predetermined threshold voltage.
[0055] Connected to the second terminal of switch S31 are the first terminal of capacitor CP, the first terminal of switch S32, and the non-inverting input terminal of comparator COMP. The voltage at the non-inverting input terminal of comparator COMP is equal to the voltage at the first terminal of capacitor CP.
[0056] The second terminal of the capacitor CP is connected to the reference potential pole. The output of the constant current source CS is connected to the second terminal of the switch S32. For example, a predetermined positive voltage is supplied to the power supply side of the constant current source CS. The constant current source CS includes a constant current circuit that passes a current Idecode with an adjusted current value. The magnitude of the current Idecode is determined based on the capacitance C of the capacitor CP and the period T, and may be, for example, (C / T).
[0057] The control terminals of the switch S31 and the switch S32 are supplied with a phase switching signal Sphase(l), which is a logic signal, from the controller 12. The switch S31 turns ON and OFF according to the logic state of the phase switching signal Sphase(l). For example, the switch S31 turns ON in the first phase when the phase switching signal Sphase(l) is true, and turns OFF in the second phase when the phase switching signal Sphase(l) is false. In contrast, the switch S32 turns OFF in the first phase when the phase switching signal Sphase(l) is true, and turns ON in the second phase when the phase switching signal Sphase(l) is false. The first phase is an example of the above accumulation phase, and the second phase is an example of the above decoding phase.
[0058] A threshold voltage Vth indicating a predetermined potential is applied to the inverting input terminal of the comparator COMP. The comparator COMP compares the voltage vi(l) at the non-inverting input terminal with the threshold voltage Vth, and outputs the comparison result as an output signal Si(l). For example, the comparator COMP outputs an output signal Si(l) indicating "true" when the voltage vi(l) exceeds the threshold voltage Vth, and outputs an output signal Si(l) indicating "false" when the voltage vi(l) is less than the threshold voltage Vth.
[0059] The neuron model 100 configured as described above changes the membrane potential vi(l)(t) according to the combination of the conductance values of the conductors G11 - G22 and the period during which the switches S11 - S22 are in the conductive state.
[0060] In addition, a discharge circuit for resetting the membrane potential vi(l)(t) to 0 is provided in parallel with the capacitor CP, and the capacitor CP may be discharged at a predetermined timing controlled by the controller 12 or at a predetermined timing synchronized with the supplied clock.
[0061] As described above, the neuron model 100 forms a spiking neural network including an accumulation phase for adding currents and a decoding phase for converting the voltage generated by the addition into the timing of voltage pulses. In the accumulation phase, the neuron model 100 (self-neuron) is formed to include an index value calculation unit 110 in which the current flowing into or out of the neuron model 100 depends on the membrane potential of the neuron model 100.
[0062] FIGS. 5A and 5B are diagrams showing examples of the timing of passing spike signals between neuron models 100 in the neural network device 10. FIG. 5A shows, for each of the first to third layers of the neural network 11, the time change of the membrane potential of each neuron model 100 in a relationship of passing spike signals, and an example of the firing timing based on the membrane potential. The horizontal axis of the graph in FIG. 5A indicates the time, which is the elapsed time since the first input data was input to the first layer. The vertical axis indicates the membrane potential of each neuron model 100 from the first layer to the third layer.
[0063] In the example of FIG. 5A, the data processing time set for the neuron model 100 is composed of a combination of an input time interval and an output time interval. The input time interval is a time interval during which the neuron model 100 receives an input of a spike signal. The output time interval is a time interval during which the neuron model 100 outputs a spike signal.
[0064] The neural network device 10 synchronizes between neuron models 100 for each layer so that the same data processing time is set for all neuron models 100 included in the same layer, and sets the same input time interval and the same output time interval. T is the time width of each time interval.
[0065] Further, the neural network device 10 synchronizes between layers so that the output time interval in the neuron model 100 of a certain layer overlaps with the input time interval in the neuron model 100 of the next layer. In particular, the input time interval and the output time interval are set so that the time length of the input time interval and the time length of the output time interval are set to the same length, and the output time interval in the neuron model 100 of a certain layer completely overlaps with the input time interval in the neuron model 100 of the next layer.
[0066] In this case, the "neuron model 100 of a certain layer" corresponds to an example of the first neuron model. The "neuron model 100 of the next layer" corresponds to an example of the second neuron model. The output time interval and the input time interval are set so that the output time interval of the first neuron model overlaps with the input time interval of the second neuron model that receives the input of the spike signal from the first neuron model.
[0067] Since the time when the spike signal is input to the neuron model 100 is limited to the input time interval, the index value calculation unit 110 calculates the membrane potential so as to change the membrane potential over time based on the input state of the spike signal in the input time interval. The index value calculation unit 110 corresponds to an example of index value calculation means.
[0068] Hereinafter, in the same manner as the description of the spiking neural network with reference to Equation (1) and Equation (2), the neuron model 100 of the i-th node in the l-th layer is referred to as the target model, and the membrane potential of the target model is denoted as vi(l)(t).
[0069] The index value calculation unit 110 uses the following formula (1A) instead of the above formula (1). By using formula (1A), the rate of change of the membrane potential vi(l)(t) can be changed between the input time interval and the output time interval.
[0070]
Number
[0071] wij(l) represents the weight set in the transmission path of the spike signal from the j-th spiking neuron model in the (l - 1)-th layer to the target model. The rate of change of the membrane potential vi(l)(t) from time t = (l - 1) to t = l is a function using the weight coefficient wij(l). Thus, the rate of change of the membrane potential vi(l)(t) in the input time interval is calculated by a function using the weight coefficient wij(l). Also, the rate of change of the membrane potential vi(l)(t) in the output time interval from time t = l to t = (l + 1) is a function using the weight coefficient or a fixed value. For example, the fixed value takes a positive value. The value may be 1. Thus, it is calculated using 1 as the rate of change of the membrane potential vi(l)(t) in the output time interval. It is advisable to make the weight wij(l) the object of learning. Also, the weight set in the transmission path of the spike signal from the j-th spiking neuron model in the (l - 1)-th layer to the target model is denoted as wij(l).
[0072] The rate of change of the membrane potential vi(l)(t) can be obtained by the above formula (1A). A detailed explanation of the above formula (1A) will be described later.
[0073] The right side of the formula for the input time interval of the above formula (1A) includes the term of the membrane potential vi(l). This indicates that the rate of change of the membrane potential vi(l)(t) on the left side of this formula changes according to the membrane potential vi(l). Since the circuit that can eliminate the term of the membrane potential vi(l) on the right side becomes more complex than the configuration shown in FIG. 4, it becomes more difficult to realize as the scale increases.
[0074] The description regarding the neuron model 100 of the target model applies to all neuron models 100 included in the neural network device 10, except that the output timing of the spike signal of the neuron model 100 in the output layer described later can be relaxed. That is, the l-th layer may be any layer including the neuron model 100 as a node. Any neuron model 100 in the l-th layer may be the i-th neuron model 100.
[0075] By using Equation (1A) in this way, it is possible to formulate that the membrane potential vi(l)(t) of the neuron model 100 changes with a slope specific to the output time interval in the output time interval. This slope is +1. This corresponds to the conversion characteristic shown in FIG. 3D described above.
[0076] Note that the firing time when the neuron model 100 fires within the output time interval may be defined as a function of the membrane potential of the neuron model 100 at the last time of the input time interval. The neuron model 100 may be formed to limit firing when the membrane potential of the neuron model 100 at the last time of the input time interval is outside a predetermined range. The neuron model 100 may be formed such that the membrane potential of the neuron model 100 within the output time interval increases with a slope specific to the neuron model 100. The neuron model 100 generates spikes of a predetermined pulse waveform when the membrane potential of the neuron model 100 satisfies a predetermined condition within the output time interval. For example, the neuron model 100 can start transmitting rectangular-wave spikes when the membrane potential of the neuron model 100 satisfies a predetermined condition within the output time interval and interrupt the transmission of the spikes at the time when the output time interval ends.
[0077] Instead, a similar function can also be realized by fixing the membrane potential in the output time interval and changing the firing threshold instead of the threshold Vth. Specifically, in each neuron model, the firing threshold can be set as a unique value determined for each neuron model, and the firing threshold can be changed with a slope of -1 in the output time interval. In the following description, the case where the firing threshold is fixed at the threshold Vth and the membrane potential vi(l)(t) changes in the output time interval is illustrated, but the same discussion is applicable to the case where the membrane potential is fixed and the firing threshold changes in the output time interval.
[0078] Hereinafter, the membrane potential vi(l)(t) will be divided into the input time interval and the output time interval, and its details will be described. Hereinafter, it will be explained that the time evolution of the membrane potential vi(l)(t) based on the circuit shown in FIG. 4 is equivalent to the above formula (1A).
[0079] The rate of change of the membrane potential vi(l)(t) is defined by being divided into a first phase and a second phase according to the range of time t. The rate of change of the membrane potential vi(l)(t) in the first phase is defined using Equation (3A), and the rate of change of the membrane potential vi(l)(t) in the second phase is defined using Equation (3B).
[0080] The membrane potential vi(l)(t) in the input time interval is expressed as in Equation (3A). The membrane potential vi(l)(t) in the output time interval is expressed as in Equation (3B).
[0081]
Number
[0082] First, referring to Equation (3A), the change in the membrane potential in the first phase will be described. The variables σij(l)+ and σij(l)- in Equation (3A) will be described. The variable σij(l)+ and the variable σij(l)- represent the conductance components of the circuit in which the i-th neuron in the l-th layer of the neuron model 100 receives a pulse signal from the j-th neuron in the (l-1)-th layer. The variables σij(l)+ and σij(l)- are shown in the following equations (4A) and (4B).
[0083]
Equation
[0084] The variable σij(l)+ shown in the above equation (4A) is the conductance component from the positive voltage source part PVS to the i-th neuron. For example, the variable σij(l)+ is converted using the capacitance C, the weight coefficient Wij(l), the function δ, and the positive voltage Vdd+. This variable σij(l)+ can be obtained by dividing the product of the capacitance C, the weight coefficient Wij(l), and the function δ by the positive voltage Vdd+. The variable σij(l)- shown in the above equation (4B) is the conductance component from the negative voltage source part NVS to the i-th neuron. For example, the variable σij(l)- is converted using the capacitance C, the weight coefficient Wij(l), the function δ, and the negative voltage Vdd-. This variable σij(l)- can be obtained by dividing the product of the capacitance C, the weight coefficient Wij(l), and the function δ by the negative voltage Vdd-. When comparing the variable σij(l)+ and the variable σij(l)-, the capacitance C and the weight coefficient Wij_(l) are common, and the function δ, the positive voltage Vdd+ and the negative voltage Vdd- of the voltage components are different.
[0085] The function δ, which outputs a logical value according to the state s, is shown in the following equation (5). For example, the function δ takes the state s as an argument, outputs 0 as the solution when the state s does not satisfy a predetermined condition (false), and outputs 1 as the solution when the state s satisfies a predetermined condition (true).
[0086]
Equation
[0087] As shown in the following formula (6), the function θ(x) is a step function. For example, it outputs 0 when the argument x is negative and outputs 1 when the argument x is positive.
[0088]
Number
[0089] Next, with reference to formula (3B), the change in the membrane potential in the second phase will be described. The change in the membrane potential in the second phase is defined as a fixed value determined by the capacitance C and the period T.
[0090] By dividing both sides of formula (3A) and formula (3B) by the capacitance C respectively and substituting formula (4A) and formula (4B), the following formula (7A) and formula (7B) are obtained. Formula (7A) and formula (7B) are formulas indicating the rate of change of the membrane potential. This rate of change of the membrane potential is the slope of the graph with time on the horizontal axis and the membrane potential on the vertical axis.
[0091]
Number
[0092] By the way, the right side of formula (7A) is grouped and rewritten as the following formula (8).
[0093]
Number
[0094] Taking the period T as 1 and substituting a part in the formula using the following formula (9), the above formula (3A) and formula (3B) can be converted into the following formula (10A) and formula (10B).
[0095]
Number
[0096]
Number
[0097] By setting the period T to 1, the above equations (10A) and (10B) become the same as the aforementioned equation (1A), so they are equivalent. That is, after training the neural network based on equation (1A), similar operations can be realized on the circuit as represented by equations (10A) and (10B).
[0098] Next, the movements of each part are organized. The index value calculation unit 110 calculates the membrane potential vi(l)(t) of each interval based on the above equations (3A) and (3B) by turning on switch S31 and turning off switch S32. In the input time interval, the index value calculation unit 110 changes the membrane potential vi(l)(t) at a rate according to the input situation of the spike signal to the target model as shown in equations (1A) and (3A).
[0099] On the other hand, in the output time interval when switch S31 is turned off and switch S32 is turned on, the index value calculation unit 110 blocks the spike signal by switch S31. The index value calculation unit 110 does not receive the spike signal to the target model as shown in equation (1A). Furthermore, the index value calculation unit 110 changes the membrane potential vi(l)(t) based on the membrane potential vi(l)(lT) at the end of the input time interval and the elapsed time from the start of the output time interval in the output time interval. For example, the index value calculation unit 110 charges the capacitor CP with a constant current by turning on switch S32 and increases it monotonically from the membrane potential vi(l)(lT) at the end of the input time interval. The equation shown in equation (3B) is an example. The change rate of the membrane potential vi(l)(t) in the output time interval may be maintained at a predetermined value.
[0100] The comparison unit 120 compares the membrane potential vi(l)(t) with the threshold value Vth to determine whether the membrane potential vi(l)(t) has reached the threshold value Vth. For example, this comparison is performed over at least the output time interval. Alternatively, this comparison is performed constantly, and the comparison result is used at least during the output time interval.
[0101] Based on the determination result of the membrane potential vi(l)(t), the signal output unit 130 outputs a spike signal within the output time interval. For example, when the membrane potential vi(l)(t) reaches the threshold value Vth within the output time interval, the signal output unit 130 outputs a spike signal. When the membrane potential vi(l)(t) does not reach the threshold value Vth within the output time interval, the signal output unit 130 may output a spike signal at the end of the output time interval.
[0102] Note that for the output layer in the example of FIG. 5A, since there is no recipient to which the spike signal is passed, spike output is possible even in the time interval corresponding to the input time interval. The time interval corresponding to the input time interval in this case is also referred to as the input / output time interval.
[0103] Hereinafter, with reference to FIG. 5B, the change in the membrane potential vi(l)(t) of the neuron model 100 will be classified into several cases and described.
[0104] FIG. 5B shows an example of a spike signal passed from the l-th layer to the (l + 1)-th layer of the neural network 11. The horizontal axis of the graph in FIG. 5B represents time, indicated as the elapsed time since the first input data was input to the l-th layer. The vertical axis represents, from the upper side of FIG. 5B, the membrane potential of the neuron model 100 in the l-th layer, its output spike, and the membrane potential vi(l)(t) of the neuron model 100 in the (l + 1)-th layer. In FIG. 5B, interval A indicates the input time interval, and interval B indicates the output time interval.
[0105] FIG. 5B shows typical examples of cases where the membrane potential vi(l)(t) reaches the threshold value Vth from CASE0 to CASE2. CASE1 shows the case where the membrane potential vi(l)(t) reaches the threshold value Vth within the output time interval. CASE0 and CASE2 show the cases where the membrane potential vi(l)(t) reaches the threshold value Vth within the input time interval.
[0106] For example, as shown in CASE1 in FIG. 5B, when the membrane potential vi(l)(t) reaches the threshold value Vth within the output time interval, the comparison unit 120 determines that the membrane potential vi(l)(t) has reached the threshold value Vth. The signal output unit 130 outputs a spike signal based on the determination result of the comparison unit 120. Thereby, the signal output unit 130 outputs a spike signal at the timing when the membrane potential vi(l)(t) reaches the threshold value Vth.
[0107] In contrast, as shown in CASE0 and CASE2 in FIG. 5B, even when the case occurs where the membrane potential vi(l)(t) reaches the threshold value Vth within the input time interval, at least the signal output unit 130 does not output a spike signal in response thereto. In the case of CASE0, the membrane potential vi(l)(t) has dropped below the threshold value Vth at the end of the input time interval. In this case, the above case of CASE1 is applied, and the signal output unit 130 outputs a spike signal at the timing when the membrane potential vi(l)(t) reaches the threshold value Vth within the output time interval. In the case of CASE2, the membrane potential vi(l)(t) exceeds the threshold value Vth at the end of the input time interval. Also in this case, the above case of CASE1 is applied, and the signal output unit 130 outputs a spike signal at the start timing of the output time interval when the membrane potential vi(l)(t) has reached the threshold value Vth.
[0108] For example, there may be a case where the membrane potential vi(l)(t) has never reached the threshold value Vth until the end of the output time interval. This is called CASE3. In the case of CASE3, the comparison unit 120 may output a dummy determination result assuming that the membrane potential has reached the threshold value. Then, the signal output unit 130 may output a spike signal at the end of the output time interval based on the determination result of the comparison unit 120.
[0109] Alternatively, in the case of CASE3, the index value calculation unit 110 may calculate the membrane potential vi(l)(t) as 0 at the start of the next input time interval. Thereby, the index value calculation unit 110 may start the processing for the next data in the next input time interval from the state where the membrane potential vi(l)(t) is reset to 0.
[0110] FIG. 6 is a diagram showing an example of setting time intervals. The horizontal axis in FIG. 6 indicates the time, which is the elapsed time from the start of data input to the neural network 11. The input and output of data between layers are performed by input and output of spike signals. In the example of FIG. 6, the time shown on the horizontal axis is divided into time intervals every time T. Further, FIG. 6 shows the types of time intervals for each of the input layer, the first layer, the second layer, and the output layer. Specifically, the input time interval is indicated by the description "input", and the output time interval is indicated by the description "output". Also, for the input / output time interval, it is indicated by both the descriptions "input" and "output". Further, FIG. 6 shows an example in the case where the neural network 11 processes three pieces of data, i.e., the first data, the second data, and the third data. For each layer, the time interval for processing each data in that layer is shown.
[0111] In the example of FIG. 6, any of the neuron models 100 in the first layer, the second layer, and the third layer operates to complete the data processing within one input time interval, one output time interval following the input time interval, and the data processing time. Specifically, each neuron model 100 outputs a spike signal and ends the processing if the membrane potential vi(l)(t) does not reach the threshold value Vth by the end of the output time interval. Thereby, the neuron model 100 can process the next data in the next data processing time. In the entire neural network 11, it is possible to start processing the next data without waiting for the completion of processing of the input data, so to speak, like pipeline processing.
[0112] Also, in the example of FIG. 6, the neural network device 10 synchronizes between layers and synchronizes the neuron models 100 within each layer so that the output time interval of the layer on the side that outputs the spike signal matches the input time interval of the layer on the side that receives the input of the spike signal. That is, the neural network device 10 synchronizes between layers and synchronizes the neuron models 100 within each layer so that the output time interval of the layer on the side that outputs the spike signal completely overlaps with the input time interval of the layer on the side that receives the input of the spike signal.
[0113] The neural network device 10 may include a synchronization processing unit, and the synchronization processing unit may notify each neuron model 100 of the timing of the switching of the time interval. Alternatively, each of the neuron models 100 may detect the timing of the switching of the time interval based on a clock signal common to all the neuron models 100.
[0114] FIG. 7 is a diagram showing an example of setting the firing limit of the neuron model 100. FIG. 7 shows an example of the firing limit when the neuron model 100 of the first layer processes the first data in the example of FIG. 6. The horizontal axis of the graph in FIG. 7 indicates the time when the membrane potential vi(1)(t) reaches the threshold value Vth, represented as the elapsed time from the start of data input to the neural network 11. The vertical axis indicates the time when the neuron model 100 outputs a spike signal, represented as the elapsed time from the start of data input to the neural network 11. Both the horizontal axis and the vertical axis of FIG. 7 are associated with the horizontal axis of FIG. 6.
[0115] As shown in FIG. 7, when the threshold arrival time ti(l,vth) is earlier than the time T, the neuron model 100 does not respond to this. When the threshold arrival time ti(l,vth) is within the interval from time T to 2T, the neuron model 100 outputs a spike signal at the threshold arrival time ti(l,vth). The time 2T is the end time of the output time interval. It is assumed that the delay time from when the membrane potential vi(1)(t) reaches the threshold value Vth until the neuron model 100 outputs a spike signal can be ignored. When the threshold arrival time ti(l,vth) is later than the time 2T, that is, when the membrane potential vi(1)(t) does not reach the threshold Vth by the time 2T, the neuron model 100 outputs a spike signal at the time 2T or moves on to the processing of the next data without outputting a spike signal.
[0116] With reference to FIGS. 8A to 8D, the response of the neuron model 100 will be described. FIGS. 8A to 8C are diagrams for explaining the response of the neuron model 100. FIG. 8D is a diagram for explaining the operation of the neuron model 100.
[0117] The results of the experiment using the neural network device 10 shown in FIGS. 8A to 8D are those obtained by performing learning and testing of handwritten digit image recognition using the MNIST, which is a dataset of handwritten digit images.
[0118] The configuration of the neural network 11 used in this test was a fully connected forward propagation type having four layers: an input layer, a first layer, a second layer, and an output layer. The number of neuron models 100 in the input layer was set to 784, the number of neuron models 100 in the first layer and the second layer was set to 200 each, and the number of neuron models 100 in the output layer was set to 10.
[0119] The horizontal axis and the vertical axis of the graphs in FIGS. 8A to 8C are associated with FIG. 5A, and the time when the membrane potential vi(l)(t) reaches the threshold Vth is shown as the elapsed time from the start of data input to the neural network 11. The vertical axis shows the time when the neuron model 100 outputs a spike signal as the elapsed time from the start of data input to the neural network 11.
[0120] The differences among the diagrams in FIGS. 8A to 8C are that the reference voltages (positive voltage Vdd+ and negative voltage Vdd-) output by the power supply PS, which is a constant voltage source, are different from each other. For example, in FIG. 8A, the positive voltage Vdd+ is +11 V (volts), and the negative voltage Vdd- is -10 V. In FIG. 8B, the positive voltage Vdd+ is +1.4 V, and the negative voltage Vdd- is -0.4 V. In FIG. 8C, the positive voltage Vdd+ is +1.1 V, and the negative voltage Vdd- is -0.1 V.
[0121] The example shown in FIG. 8A corresponds to the case where the reference voltage is set relatively high among these three examples. By increasing the reference voltage, the current flowing into or out of the membrane potential becomes less dependent on the value of the membrane potential. Therefore, the value of the membrane potential at the end of the input time interval almost coincides with the result of the product-sum operation. At the stage of the output layer shown in FIG. 8A(c), the desired discrimination result is obtained.
[0122] On the other hand, the two examples shown in FIGS. 8B and 8C correspond to the case where the reference voltage is set relatively low. By setting the reference voltage relatively low, the power consumption and heat generation of the circuit through which the signal passes can be suppressed. In these examples, since the current value depends greatly on the value of the membrane potential, there is a characteristic that the slope becomes gentler as the membrane potential approaches the reference voltage. Also, in the case of this example, the value of the membrane potential at the end of the input time interval does not coincide with the product-sum operation result, but as will be described later, the learning performance hardly decreases. At the stage of the output layer shown in FIGS. 8B and 8C(c), the desired discrimination result is obtained.
[0123] The above FIGS. 8A to 8C are an example of verification results, and the reference voltage can be set as appropriate. FIG. 8D shows the results of comparing the recognition performance for several cases where the reference voltage is adjusted in this way.
[0124] The horizontal axis of FIG. 8D is the absolute value of the positive voltage Vdd+ and the negative voltage Vdd-, and the vertical axis shows the correct answer rate (recognition performance) of the discrimination result. It was confirmed that as long as the reference voltage is not set extremely low, the recognition performance shows performance comparable to that of an ideal weighted sum model.
[0125] FIG. 9 is a diagram showing an example of the system configuration during learning. In the configuration shown in FIG. 9, the neural network system 1 includes a neural network device 10 and a learning device 50. The neural network device 10 and the learning device 50 may be integrally configured as one device. Alternatively, the neural network device 10 and the learning device 50 may be configured as separate devices. As described above, the neural network 11 configured by the neural network device 10 is also referred to as the neural network main body.
[0126] The neural network device 10 in the neural network system 1 includes an index value calculation unit 110 (current addition unit), that is, a neuron model 100. As described above, the index value calculation unit 110 is formed such that the current flowing into or out of the neuron model 100 (self-neuron) depends on the membrane potential of the neuron model 100 in the accumulation phase.
[0127] For example, the calculation process of the membrane potential of the neuron model 100 by the index value calculation unit 110 includes a current addition operation in which the current flowing into or out of the neuron model 100 depends on the membrane potential of the neuron model 100. The learning device 50 generates a learned model for determining the responsiveness of the membrane potential of the neuron model 100 to the above current.
[0128] FIG. 10 is a diagram showing an example of signal input and output in the neural network system 1. In the example of FIG. 10, input data and a teacher label indicating the correct answer for the input data are input to the neural network system 1. The neural network device 10 may receive the input of the input data, and the learning device 50 may receive the input of the teacher label. The combination of the input data and the teacher label corresponds to an example of training data in supervised learning. Also, the neural network device 10 acquires a clock signal. The neural network device 10 may be provided with a clock circuit. Alternatively, the neural network device 10 may be configured to receive an input of a clock signal from outside the neural network device 10.
[0129] The neural network device 10 receives an input of input data and outputs an estimated value based on the input data. When calculating the estimated value, the neural network device 10 synchronizes the time intervals between layers and the time intervals between neuron models 100 within the same layer using the clock signal.
[0130] The learning device 50 performs learning of the neural network device 10. The learning here is to adjust the parameter values of the learning model by machine learning. The learning device 50 performs learning of the weight coefficients for the spike signals input to the neuron model 100. The weight Wij(l) in Equation (4) corresponds to an example of the weight coefficient whose value is adjusted by the learning device 50 through learning. The weight Wij(l) in Equation (4) is associated with, for example, the conductance of an analog circuit.
[0131] The learning device 50 may perform learning of the weight coefficients so that the magnitude of the error between the estimated value and the correct value becomes small, using an evaluation function that indicates an evaluation of the error between the estimated value output by the neural network device 10 and the correct value indicated by the teacher label. The learning device 50 corresponds to an example of a learning means. The learning device 50 is configured using, for example, a computer.
[0132] For example, as a learning method performed by the learning device 50, for example, a machine learning method, a reinforcement learning method, a deep reinforcement learning method, etc. may be applied. More specifically, the learning device 50 may learn the characteristic values of the index value calculation unit 110 so as to maximize a predetermined gain, following the method of reinforcement learning (deep reinforcement learning).
[0133] Also, as a learning method performed by the learning device 50, an existing learning method such as the backpropagation method can be used. For example, when the learning device 50 performs learning using the error backpropagation method, the weight Wij(l) may be updated so as to change the weight Wij(l) by the change amount ΔWij(l) shown in Equation (11).
[0134]
Number
[0135] η is a constant indicating the learning rate. The learning rates in Equation (11) may be the same value or different values from each other. C is expressed as in Equation (12).
[0136]
Number
[0137] The first term of C corresponds to an example of an evaluation function that shows an evaluation of the error between the estimated value output by the neural network device 10 and the correct value indicated by the teacher label. The first term of C is set as a loss function that outputs a smaller value as the error gets smaller. M represents an index value indicating the output layer (final layer). N(M) represents the number of neuron models 100 included in the output layer.
[0138] κi represents the teacher label. Here, it is assumed that the neural network device 10 performs class classification with N(M) classes, and the teacher label is represented by a one-hot vector. It is assumed that κi = 1 when the value of index i indicates the correct class, and κi = 0 otherwise.
[0139] t(ref) represents a reference spike. 「γ / 2(ti(M)-t(ref))2」is a term provided to avoid learning difficulty. This term is also referred to as the Temporal Penalty Term. γ is a constant for adjusting the influence degree of the temporal penalty term, and γ > 0. γ is also referred to as the temporal penalty coefficient. Si is the softmax function and is represented as in Equation (13).
[0140] [Number]
[0141] σsoft is a constant provided as a scale factor for adjusting the magnitude of the value of the softmax function Si, and σsoft > 0. For example, the spike firing time of the output layer may be such that, for each class, it indicates the probability that the classification target indicated by the input data is classified into that class. For i where κi = 1, the smaller the value of ti(M), the smaller the value of the term "-Σi = 1N(M)(κiln(Si(t(M))))", and the learning device 50 calculates a smaller loss (the value of the evaluation function C). However, the processing performed by the neural network device 10 is not limited to class classification.
[0142] FIG. 11 is a diagram showing an example of signal input and output in the neural network device 10 during operation. Similar to the operation shown in FIG. 10, during learning as well, the neural network device 10 receives the input of input data and also acquires a clock signal. The neural network device 10 may be provided with a clock circuit. Alternatively, the neural network device 10 may be configured to receive the input of a clock signal from outside the neural network device 10. The neural network device 10 receives the input of input data and outputs an estimated value based on the input data. When calculating the estimated value, the neural network device 10 may synchronize the time intervals between layers and the time intervals between neuron models 100 within the same layer using a clock signal.
[0143] According to an embodiment, the neural network device 10 (computing device) includes a spiking neural network (neural network 11) including an accumulation phase for adding currents and a decoding phase for converting the voltage generated by the addition into the timing of voltage pulses. The spiking neural network includes, in the accumulation phase, an index value calculation unit 110 (current addition unit) in which the current flowing into or out of the neuron model 100 (self-neuron) depends on the membrane potential of the neuron model 100. Thereby, each neuron model 100 constituting the neural network device 10 can be configured more simply.
[0144] Also, a current flows through the index value calculation unit 110 by the output of the previous neuron provided in front of the neuron model 100. The current that the previous neuron flows through the index value calculation unit 110 may depend on the potential difference between the reference voltage of the previous neuron and the membrane potential of the index value calculation unit 110.
[0145] Also, since the current that the previous neuron flows through the index value calculation unit 110 is proportional to the potential difference between the reference voltage of the previous neuron and the membrane potential of the neuron model 100, the reference voltage of the previous neuron, which is the calculation result, affects the current that the previous neuron flows through the index value calculation unit 110. By incorporating such an influence into learning, high learning performance can be maintained.
[0146] Also, the index value calculation unit 110 may be learned so that the magnitude of the current flowing due to the output of the previous neuron becomes smaller by learning using a predetermined arbitrary cost function.
[0147] Further, the index value calculation unit 110 may learn the conductance characteristics related to the magnitude of the current flowing due to the output of the previous neuron by learning using an arbitrarily determined cost function in advance.
[0148] (Modification of the Embodiment) As described above, when the neural network 11 is configured as a forward propagation type spiking neural network, the number of layers of the neural network 11 may be two or more and is not limited to a specific number of layers. Also, the number of neuron models 100 included in each layer is not limited to a specific number, and each layer may include one or more neuron models 100. Each layer may include the same number of neuron models 100, or may include different numbers of neuron models 100 depending on the layer. Also, the neural network 11 may be fully connected or may not be fully connected. For example, the neural network 11 may be configured as a convolutional neural network (CNN) using a spiking neural network.
[0149] Also, the membrane potential after the neuron model 100 fires is not limited to not changing from the above-described potential 0. For example, after a predetermined time has elapsed since firing, the membrane potential may change in response to the input of a spike signal. The number of times each neuron model 100 fires is also not limited to once for each input data.
[0150] The configuration of the neuron model 100 as a spiking neuron model is also not limited to a specific configuration. For example, the change speed of the neuron model 100 may not be constant from the reception of the spike signal input until the reception of the next spike signal input. The learning method of the neural network 11 is not limited to supervised learning. The learning device 50 may perform the learning of the neural network 11 by unsupervised learning.
[0151] As described above, the index value calculation unit 110 changes the membrane potential over time based on the input status of the signal in the input time interval. The signal output unit 130 outputs a signal within the output time interval after the end of the input time interval based on the membrane potential. In this way, by setting the input time interval during which the neuron model 100 receives the input of the spike signal and the output time interval during which the neuron model 100 outputs the spike signal, the time for which the index value calculation unit 110 should calculate the membrane potential can be limited to the time from the start of the input time interval to the end of the output time interval. At other times, the neuron model 100 can perform processing on other data. According to the neural network device 10, in this regard, the spiking neural network can efficiently perform data processing.
[0152] Also, the index value calculation unit 110 changes the membrane potential at a rate of change corresponding to the input status of the signal in the input time interval. If the membrane potential does not reach the threshold value within the input time interval, the index value calculation unit 110 changes the membrane potential at a predetermined rate of change in the output time interval. If the membrane potential reaches the threshold value within the output time interval, the signal output unit 130 outputs a spike signal when the membrane potential reaches the threshold value. If the membrane potential does not reach the threshold value within the output time interval, the signal output unit 130 outputs a spike signal at the end of the output time interval.
[0153] Thereby, the time for which the neuron model 100 outputs the spike signal can be limited to the output time interval. After the end of the output time interval, the neuron model 100 can perform processing on other data. According to the neural network device 10, in this regard, the spiking neural network can efficiently perform data processing.
[0154] Also, the output time interval of the first neuron model 100 and the input time interval of the second neuron model that receives the input of the spike signal from the first neuron model 100 are set so as to overlap. As a result, data can be efficiently transmitted from the first neuron model 100 to the second neuron model 100 by the spike signal, and the first neuron model 100 and the second neuron model 100 can perform processing like pipeline processing. According to the neural network device 10, in this regard, the spiking neural network can efficiently perform data processing.
[0155] Also, the index value calculation unit 110 changes the membrane potential over time based on the signal input situation in the input time interval. The signal output unit 130 outputs a spike signal within the output time interval after the end of the input time interval based on the membrane potential. The learning device 50 performs learning of the weight coefficient for the spike signal. Thereby, the weight coefficient can be adjusted by learning, and the estimation accuracy by the neural network device 10 can be improved.
[0156] FIG. 12 is a diagram showing a configuration example of a neural network device according to an embodiment. In the configuration shown in FIG. 11, the neural network device 610 includes a neuron model 611. The neuron model 611 includes an index value calculation unit 612 and a signal output unit 613. With such a configuration, the neuron model 611 is formed to be able to transmit a spike by firing within a certain time interval. In the neural network device 610, an input time interval for receiving a spike and an output time interval in which transmission of a spike is permitted are distinguished in association with firing of the neuron model 611. For example, the index value calculation unit 612 changes the index value of signal output based on the signal input situation in the input time interval. The signal output unit 613 outputs a signal within the output time interval after the end of the input time interval by firing based on the index value. The index value calculation unit 612 corresponds to an example of index value calculation means. The signal output unit 613 corresponds to an example of signal output means.
[0157] In this way, by setting the input time interval during which the neuron model 611 receives a signal and the output time interval during which the neuron model 611 outputs a spike signal, and causing it to fire within the output time interval, the time during which the index value calculation unit 612 should calculate the index value can be limited to the time from the start of the input time interval to the end of the output time interval. At other times, the neuron model 611 can perform processing on other data. According to the neural network device 610, in this regard, the spiking neural network can efficiently perform data processing. Note that if it is a layer where the input of the signal and the output of the signal do not interfere, the input time interval and the output time interval may be defined so as to overlap. For example, the aforementioned output layer 23 is an example of a layer where the input of the signal and the output of the signal do not interfere. For the neuron model 611 applied to such an output layer 23, an input / output time interval in which signal reception and transmission are permitted may be set in association with causing it to fire. The input / output time interval in which signal reception and transmission are permitted may be set instead of the input time interval in which the output of the signal is restricted.
[0158] FIG. 13 is a diagram showing a configuration example of a neuron model device according to an embodiment. In the configuration shown in FIG. 13, the neuron model device 620 includes an index value calculation unit 621 and a signal output unit 622. With such a configuration, the neuron model device 620 is divided into an input time interval for receiving a signal and an output time interval in which signal transmission is permitted in association with causing it to fire. The index value calculation unit 621 changes the index value of signal output based on the signal input situation in the input time interval. The signal output unit 622 outputs a signal within the output time interval after the end of the input time interval by causing it to fire based on the index value. The index value calculation unit 621 corresponds to an example of index value calculation means. The signal output unit 622 corresponds to an example of signal output means.
[0159] Thus, by setting the input time interval during which the neuron model device 620 receives a signal input and the output time interval during which the neuron model device 620 outputs a spike signal, the time during which the index value calculation unit 621 should calculate the index value can be limited to the time from the start of the input time interval to the end of the output time interval. At other times, the neuron model device 620 can perform processing on other data. In this regard, according to the neuron model device 620, a spiking neural network can efficiently perform data processing.
[0160] FIG. 14 is a diagram showing a configuration example of a neural network system according to an embodiment. In the configuration shown in FIG. 14, the neural network system 630 includes a neural network main body 631 and a learning unit 635. The neural network main body 631 includes a neuron model 632. The neuron model 632 includes an index value calculation unit 633 and a signal output unit 634.
[0161] In such a configuration, in the neural network system 630, in association with firing the neuron model 632, an input time interval for receiving a signal and an output time interval during which signal transmission is permitted are distinguished. The index value calculation unit 633 changes the index value of signal output based on the signal input situation in the input time interval. The signal output unit 634 outputs a signal within the output time interval after the end of the input time interval based on the index value. The learning unit 635 performs learning of the weight coefficient for the signal input to the neuron model 632.
[0162] The index value calculation unit 633 corresponds to an example of index value calculation means. The signal output unit 634 corresponds to an example of signal output means. The learning unit 635 corresponds to an example of learning means. The learning unit 635 is an example of learning means that learns the characteristic values of the index value calculation unit 633 (current addition unit) so that the calculation result of a predetermined arbitrary cost function is minimized. In the neural network system 630, the weight coefficients can be adjusted by learning, and the estimation accuracy by the neural network main body 631 can be improved.
[0163] FIG. 15 is a flowchart showing an example of a processing procedure in the operation method according to the embodiment. The operation method shown in FIG. 15 includes identifying a division of a time interval (step S610), calculating an index value (step S611), and outputting a signal (step S612).
[0164] In identifying a division of a time interval (step S610), an input time interval for receiving a spike and an output time interval permitted to transmit a spike are identified. For example, identifying a division of a time interval may include setting a flag according to the identification result. In calculating an index value (step S611), when the identification result indicates the input time interval, signal input is permitted, and the index value of signal output is changed based on the signal input situation in the input time interval. Outputting a signal (step S612) is performed, for example, when a transition from the input time interval to the output time interval is detected according to the identification result. In outputting a signal (step S612), according to the identification result (value of the flag), a signal is output within the output time interval after the end of the input time interval by firing based on the index value.
[0165] In the operation method shown in FIG. 15, an input time interval for receiving a signal input and an output time interval for outputting a signal are set, and by firing within the output time interval, the time for which the index value should be calculated can be limited to the time from the start of the input time interval to the end of the output time interval. At other times, processing for other data can be performed. According to the operation method shown in FIG. 15, in this regard, the spiking neural network can efficiently perform data processing.
[0166] FIG. 16 is a schematic block diagram showing the configuration of a computer according to at least one embodiment. In the configuration shown in FIG. 16, the computer 700 includes a CPU 710, a main memory device 720, an auxiliary storage device 730, an interface 740, and a non-volatile recording medium 750.
[0167] Any one or more or a part of the above neural network device 10, learning device 50, neural network device 610, neuron model device 620, and neural network system 630 may be implemented in the computer 700. In that case, the operations of the above-described respective processing units are stored in the auxiliary storage device 730 in the form of a program. The CPU 710 reads the program from the auxiliary storage device 730, expands it in the main memory device 720, and executes the above processing according to the program. Also, the CPU 710 secures a storage area corresponding to each of the above-described storage units in the main memory device 720 according to the program. Communication between each device and other devices is executed by the interface 740 having a communication function and performing communication under the control of the CPU 710.
[0168] When the neural network device 10 is implemented in the computer 700, the neural network device 10 and the operations of its respective parts are stored in the auxiliary storage device 730 in the form of a program. The CPU 710 reads the program from the auxiliary storage device 730, expands it in the main memory device 720, and executes the above processing according to the program.
[0169] Also, the CPU 710 secures a storage area for the processing of the neural network device 10 in the main memory device 720 according to the program. Communication between the neural network device 10 and other devices is executed by the interface 740 having a communication function and operating under the control of the CPU 710. Interaction between the neural network device 10 and the user is executed by the interface 740 including a display device and an input device, displaying various images under the control of the CPU 710, and accepting user operations.
[0170] When the learning device 50 is implemented in the computer 700, the operations of the learning device 50 are stored in the auxiliary storage device 730 in the form of a program. The CPU 710 reads the program from the auxiliary storage device 730, expands it in the main storage device 720, and executes the above processing according to the program.
[0171] Also, the CPU 710 secures a storage area for the processing of the learning device 50 in the main storage device 720 according to the program. Communication between the learning device 50 and other devices is executed by the interface 740 having a communication function and operating according to the control of the CPU 710. Interaction between the learning device 50 and the user is executed by the interface 740 including a display device and an input device, displaying various images according to the control of the CPU 710, and accepting user operations.
[0172] When the neural network device 610 is implemented in the computer 700, the operations of the neural network device 610 and its respective parts are stored in the auxiliary storage device 730 in the form of a program. The CPU 710 reads the program from the auxiliary storage device 730, expands it in the main storage device 720, and executes the above processing according to the program.
[0173] Also, the CPU 710 secures a storage area for the processing of the neural network device 610 in the main storage device 720 according to the program. Communication between the neural network device 610 and other devices is executed by the interface 740 having a communication function and operating according to the control of the CPU 710. Interaction between the neural network device 610 and the user is executed by the interface 740 including a display device and an input device, displaying various images according to the control of the CPU 710, and accepting user operations.
[0174] When the neuron model device 620 is implemented in the computer 700, the operations of the neuron model device 620 and its respective parts are stored in the auxiliary storage device 730 in the form of a program. The CPU 710 reads the program from the auxiliary storage device 730, expands it in the main storage device 720, and executes the above processing according to the program.
[0175] Also, the CPU 710 secures a storage area for the processing of the neuron model device 620 in the main storage device 720 according to the program. Communication between the neuron model device 620 and other devices is executed by the interface 740 having a communication function and operating according to the control of the CPU 710. Interaction between the neuron model device 620 and the user is executed by the interface 740 including a display device and an input device, displaying various images according to the control of the CPU 710, and accepting user operations.
[0176] When the neural network system 630 is implemented in the computer 700, the operations of the neural network system 630 and its respective parts are stored in the auxiliary storage device 730 in the form of a program. The CPU 710 reads the program from the auxiliary storage device 730, expands it in the main storage device 720, and executes the above processing according to the program.
[0177] Also, the CPU 710 secures a storage area for the processing of the neural network system 630 in the main storage device 720 according to the program. Communication between the neural network system 630 and other devices is executed by the interface 740 having a communication function and operating according to the control of the CPU 710. Interaction between the neural network system 630 and the user is executed by the interface 740 including a display device and an input device, displaying various images according to the control of the CPU 710, and accepting user operations.
[0178] Note that a program for executing all or part of the processes performed by the neural network device 10, the learning device 50, the neural network device 610, the neuron model device 620, and the neural network system 630 may be recorded on a computer-readable recording medium, and the program recorded on this recording medium may be read into a computer system and executed to perform the processes of each part. Here, the "computer system" is assumed to include hardware such as an OS and peripheral devices. Also, the "computer-readable recording medium" refers to a portable medium such as a flexible disk, a magneto-optical disk, a ROM (Read Only Memory), a CD-ROM (Compact Disc Read Only Memory), or a storage device such as a hard disk incorporated in a computer system. Further, the above program may be for realizing a part of the above-described functions, or may be for realizing the above-described functions in combination with a program already recorded in the computer system.
[0179] As described above, the embodiments of the present invention have been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and designs and the like within the scope not departing from the gist of the present invention are also included.
Explanation of Reference Numerals
[0180] 1, 630 Neural network system 10, 10A, 610 Neural network device 11, 11A Neural network 21 Input layer 22 Intermediate layer 23 Output layer 24 Feature extraction layer 50 Learning device 100, 611, 632 Neuron model 110, 612, 621, 633 Index value calculation unit 120 Comparison unit 130, 613, 622, 634 Signal output unit 620 Neuron Model Device 631 Neural Network Main Body 635 Learning Unit
Claims
1. A computing device comprising a spiking neural network including an accumulation phase for adding currents and a decoding phase for converting the voltage generated by the addition into the timing of voltage pulses, wherein the spiking neural network in the accumulation phase, has a current addition unit in which the current flowing into or out of a neuron depends on the membrane potential of the neuron itself and uses the membrane potential at the end of the accumulation phase in the decoding phase to cause firing when the threshold potential is reached in the decoding phase, does not cause firing in the decoding phase when the threshold potential has already been reached at the end of the accumulation phase, and, even if the membrane potential has reached the threshold potential before reaching the end of the accumulation phase, uses the membrane potential at the end of the accumulation phase in the decoding phase if the membrane potential at the end of the accumulation phase has not reached the threshold potential, and is adjusted so that the membrane potential at the end of the decoding phase does not reach the threshold potential when the membrane potential at the end of the accumulation phase is a negative voltage. A computing device.
2. The current addition unit is trained using an arbitrarily predetermined cost function so that the magnitude of the current flowing due to the output of a pre-stage neuron provided in front of the neuron itself is learned. The computing device according to claim 1.
3. The current addition unit is trained using an arbitrarily predetermined cost function so that the conductance characteristics related to the magnitude of the current flowing due to the output of a pre-stage neuron provided in front of the neuron itself are learned. The computing device according to claim 1.
4. Learning means for training the characteristic values of the current addition unit so as to minimize the calculation result of an arbitrarily predetermined cost function The computing device according to any one of claims 1 to 3, comprising the learning means.
5. A neural network system including a neural network including an accumulation phase for adding currents and a decoding phase for converting the voltage generated by the addition into the timing of voltage pulses, In the accumulation phase, a current addition unit in which the current flowing into or out of the neuron depends on the membrane potential of the neuron itself is provided, using the membrane potential at the end of the accumulation phase in the decoding phase, firing when the threshold potential is reached in the decoding phase, when the threshold potential has already been reached at the end of the accumulation phase, not firing in the decoding phase, even if the membrane potential has reached the threshold potential before reaching the end of the accumulation phase, if the membrane potential at the end of the accumulation phase has not reached the threshold potential, using the membrane potential at the end of the accumulation phase in the decoding phase, when the membrane potential at the end of the accumulation phase is a negative voltage, being adjusted so that the membrane potential at the end of the decoding phase does not reach the threshold potential, a neural network system.
6. A neuron model device forming a spiking neural network including an accumulation phase for adding currents and a decoding phase for converting the voltage generated by the addition into the timing of voltage pulses, In the accumulation phase, a current addition unit in which the current flowing into or out of the neuron depends on the membrane potential of the neuron itself is provided, using the membrane potential at the end of the accumulation phase in the decoding phase, firing when the threshold potential is reached in the decoding phase, when the threshold potential has already been reached at the end of the accumulation phase, not firing in the decoding phase, even if the membrane potential has reached the threshold potential before reaching the end of the accumulation phase, if the membrane potential at the end of the accumulation phase has not reached the threshold potential, using the membrane potential at the end of the accumulation phase in the decoding phase, when the membrane potential at the end of the accumulation phase is a negative voltage, being adjusted so that the membrane potential at the end of the decoding phase does not reach the threshold potential, a neuron model device.
7. An arithmetic method using a spiking neural network including an accumulation phase for adding currents and a decoding phase for converting the resulting voltage into the timing of voltage pulses, wherein in the accumulation phase, the current flowing into or out of the self-neuron includes a current addition operation that depends on the membrane potential of the self-neuron and includes using the membrane potential at the end of the accumulation phase in the decoding phase to fire when the threshold potential is reached in the decoding phase, not firing in the decoding phase when the threshold potential has already been reached at the end of the accumulation phase, even if the membrane potential has reached the threshold potential before reaching the end of the accumulation phase, if the membrane potential at the end of the accumulation phase has not reached the threshold potential, using the membrane potential at the end of the accumulation phase in the decoding phase, when the membrane potential at the end of the accumulation phase is a negative voltage, controlling so that the membrane potential at the end of the decoding phase does not reach the threshold potential, arithmetic method. **Claim 8** In a spiking neural network including an accumulation phase for adding currents and a decoding phase for converting the resulting voltage into the timing of voltage pulses, the neurons of the spiking neural network in the accumulation phase, charge the capacitor of the self-neuron with the current flowing into or out of the self-neuron to generate the membrane potential of the self-neuron, in the decoding phase, use the membrane potential of the self-neuron at the end of the accumulation phase as the initial potential and continue to charge the capacitor with the current from a constant current source that does not depend on the generation of spikes, and is configured to fire at the timing when the potential of the capacitor reaches the threshold potential due to the charging, As learning processing for each neuron of the spiking neural network, if the potential at the end of the accumulation phase of a specific neuron is a positive potential equal to or lower than the threshold potential, by learning the conductance characteristics corresponding to the weight coefficient of the specific neuron so as to fire within the decoding phase of the specific neuron, it includes adjusting the current value of the current flowing from the constant current source of the neuron in the previous stage of the specific neuron to the specific neuron using the learned conductance characteristics. A learned model generation method for determining the responsiveness of the membrane potential of the neuron itself to the current in the decoding phase.
Citation Information
Patent Citations
Network traversal using neuromorphic instantiations of spike-timing dependent plasticity
JP2018136919A
Deep Learning in Bipartite Memristor Networks
JP2020521248A
Multiplier-accumulator
WO2018034163A1
Multiply-accumulate device, multiply-accumulate circuit, multiply-accumulate system, and multiply-accumulate method
WO2020013069A1