This invention relates to a computing device, a neural network system, a neuron modeling device, a computation method, and a trained model generation method.
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 spiking neural networks, neuron models have internal states called membrane potentials and output signals called spikes based on the temporal evolution of membrane potentials.
There is knowledge to realize such a neuron model using analog circuits, including analog sum-of-products operators. For example, by implementing operations such as taking the weighted sum of the output of an activation function or applying an activation function to a weighted sum using analog circuits, it is possible to enhance the efficiency of these computations. When using such an analog circuit, the circuit that converts the voltage to a pulse can be mapped to the activation function. As the subject of training becomes more complex with neural networks, the scale of the neural network tends to increase. Consequently, the configuration of spiking neural networks implemented with analog circuits may become complex.
It is desirable to be able to more simply construct each neuron model that makes up the spiking neural network.
An example of an object of the present invention is to provide a computing device, a neural network system, a neuron model device, a computation method, and a trained model generation method that can solve the above-mentioned problems.
According to the first example aspect of the invention, the computing device includes a spiking neural network that includes an accumulation phase that adds currents and a decoding phase that converts a voltage resulting from the addition to a voltage pulse timing, the spiking neural network including a current adding portion wherein the current that flows into or out of an own neuron in the accumulation phase depends on the membrane potential of that neuron.
According to the second example aspect of the invention, the neural network system is a neural network system that includes a spiking neural network that includes an accumulation phase that adds currents and a decoding phase that converts a voltage resulting from the addition to a voltage pulse timing, comprising a current adding portion wherein the current that flows into or out of an own neuron in the accumulation phase depends on the membrane potential of that neuron.
According to a third example aspect of the invention, the neuron model device is a neuron model device that forms a spiking neural network that includes an accumulation phase that adds currents and a decoding phase that converts a voltage resulting from the addition to a voltage pulse timing, including a current adding portion wherein the current that flows into or out of an own neuron in the accumulation phase depends on the membrane potential of that neuron.
According to the fourth example aspect of the invention, the computation method is a computation method using a spiking neural network that includes an accumulation phase that adds currents and a decoding phase that converts a voltage resulting from the addition to a voltage pulse timing, the method including a current adding computation wherein the current that flows into or out of an own neuron in the accumulation phase depends on the membrane potential of that neuron.
According to the fifth example aspect of the invention, the trained model generation method, in which a spiking neural network that includes an accumulation phase that adds currents and a decoding phase that converts a voltage resulting from the addition to a voltage pulse timing includes a current adding computation wherein the current that flows into or out of an own neuron in the accumulation phase depends on the membrane potential of that neuron, the trained model generation method being one for determining the responsiveness of the membrane potential of the own neuron to the current.
According to the present invention, each neuron model comprising a computing device can be configured more simply.
The following is a description of an example embodiment of the present invention, but the following example embodiment is not limiting to the claimed invention. Not all of the combinations of features described in the example embodiment are essential to the solution of the invention.
The neural network device 10 uses a spiking neural network to process data. The neural network device 10 is an example of a computing device.
A neural network device 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, a spiking neural network may be implemented in the neural network device 10 using an Application Specific Integrated Circuit (ASIC) or Field Programmable Gate Array (FPGA). Alternatively, the spiking neural network may be implemented on the neural network device 10 using a computer or similar means, even in a software-based manner.
Devices with ASICs, devices with FPGAs, and computers are all examples of programmable devices. In ASICs and FPGAs, describing hardware using a hardware description language and realizing the described hardware on an ASIC or FPGA is an example of programming. When the neural network device 10 is configured using a computer, the functions of the spiking neural network may be described by programming and the resulting program may be executed by a computer. The following is an example of a spiking neural network realized using analog circuits and implemented in the neural network device 10. In that explanation, when describing the functional composition, there may be instances where an example of the configuration of the functional model (numerical analysis model) is provided for clarification.
A spiking neural network is a neural network that outputs signals with a timing based on a state quantity called membrane potential, in which the output state of a neuron model varies with time according to the input status of a signal to the neuron model itself. The membrane potential is also referred to as the index value of the signal output or simply the index value.
Time variation here refers to the change with time.
Neuron models in spiking neural networks are also referred to as spiking neuron models. The signals output by the spiking neuron model are also referred to as spiking signals or spikes. In spiking neural networks, binary signals can be used as spike signals, and information can be transferred between spiking neuron models by the timing of spike signal transmission or the number of spike signals.
In the case of the neuron model 100, an index value calculation portion 110 calculates the membrane potential based on the input status of the spike signal to the neuron model 100. A signal output portion 130 outputs a spike signal at a timing corresponding to the time variation of the membrane potential.
Regarding spike signals in the neural network device 10, it is permissible to use pulse signals, and it is also permissible to use step signals, but it is not limited thereto.
In the following, an example will be described of using a temporal method that transmits information at the timing of spike signal transmission as the information transmission method between neuron models 100 in a spiking neural network by the neural network device 10. However, the information transmission method between the neuron models 100 in the spiking neural network by the neural network device 10 is not limited to any particular method.
The processing performed by the neural network device 10 can be a variety of processes that can be executed using spiking neural networks. For example, the neural network device 10 may perform, but is not limited to, image recognition, biometric identification or numerical prediction.
The neural network device 10 may be configured as a single device or a combination of a plurality of devices. For example, a spiking neural network may be constituted by the individual neuron models 100 being configured as devices, and connecting the devices constituting these individual neuron models 100 by signal transmission pathways.
In the example in
The input layer 21 includes an input node 31. The intermediate layers 22 include an intermediate node 32. The output layer 23 includes an output node 33. The input node 31, intermediate node 32, and output node 33 are also collectively denoted as nodes 30.
The input node 31, for example, converts input data to the neural network 11 into spike signals. Alternatively, if the input data to the neural network 11 is indicated by spike signals, the neuron model 100 may be used as the input node 31.
Any of the neuron models 100 may be used as the intermediate node 32 and output node 33. The behavior of the neuron model 100 may differ between the intermediate node 32 and output node 33, such as the constraints on spike signal output timing described below being more relaxed at the output node 33 than at intermediate node.
The four layers 20 of the neural network 11 are arranged in the following order from upstream in signal transmission: the input layer 21, the intermediate layer 22-1, the intermediate layer 22-2, and the output layer 23. Between two adjacent layers 20, the nodes 30 are connected by a transmission path 40. The transmission path 40 transmits spike signals from the node 30 in the upstream layer 20 to the node 30 in the downstream layer 20.
However, when the neural network 11 is configured as a forward propagating spiking neural network, the number of layers is not limited to four, but can be two or more. The number of neuron models 100 that each layer has is not limited to a specific number; each layer can have one or more neuron models 100. Each layer may have the same number of neuron models 100, or different layers may have different numbers of neuron models 100.
The neural network 11 may be configured in an all-coupled configuration, but is not limited thereto. In the example in
In the description below, the delay time in the transmission of spike signals is assumed to be negligible, and the spike signal output time of the neuron model 100 on the spike signal output side and the spike signal input time to the neuron model 100 on the spike signal input side are assumed to be the same. If the delay time in spike signal transmission is not negligible, the spike signal output time plus the delay time may be used as the spike signal input time.
The spiking neuron model outputs a spike signal when the time-varying membrane potential reaches a threshold value within a given period of time. In a typical spiking neural network where the output timing of spike signals is not restricted, when there are a plurality 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 an input of input data and outputs the computation result.
In the example in
Time t2*(l−1) indicates the input time of the spike signal from the second spiking neuron model in layer l−1. Time t1*(l−1) indicates the input time of the spike signal from the first spiking neuron model in layer l−1. Time t3*(l−1) indicates the input time of the spike signal from the third spiking neuron model in layer l−1.
The target model also outputs a spike signal at time ti*(l). The spiking neuron model's output of a spike signal is referred to as firing. The time at which the spiking neuron model fires is referred to as the firing time.
In the example in
Before the target model fires, the membrane potential vi(l)(t) of the target model continues to change at a rate of change (change rate) according to the weight set for each spike signal transmission path after the spike signal is input. The rate of change of the membrane potential for each spike signal input is linearly additive. The differential equation for the membrane potential vi(l)(t) in the example in
In Equation (l), wij(l) denotes the weight set on the transmission path of the spike signal from the j-th spiking neuron model in layer l−1 to the target model. The weight wij(l) is the subject to training. The weight wij(l) can take both positive and negative values.
θ is a step function and is shown in Equation (2). Therefore, the rate of change of the membrane potential vi(l)(t) changes while showing various values depending on the input status of the spike signal and the value of the weight wij(l), taking both positive and negative values in the process.
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. The firing causes the membrane potential vi(l)(t) of the target model to be zero, and thereafter the membrane potential remains unchanged even when the target model receives a spike signal input.
Referring to
In the case of the comparative example using the deep learning model 11M shown in
In contrast, the following describes a case in which the above computation is realized using an analog circuit 11ACM.
The analog circuit 11ACM shown in
The graph in
The graph in
By the way, in the case of the method using the analog circuit 11ACM shown in
The method of using the analog circuit 11ASM shown in
The above computation method using a spiking neural network includes an accumulation phase to add currents and a decoding phase to convert the resulting voltage to voltage pulse timing. The computation method is configured so as to include a current adding computation in which the current flowing into or out of the neuron model 100 during the accumulation phase depends on the membrane potential of that neuron model 100.
The following describes an example of the analog circuit 11ASM that implements such a spiking neuron model. The analog circuit 11ASM is one that realizes an analog product-sum computation circuit that does not utilize the operational amplifier and constant current required in the accumulation phase of the method in
The neuron model 100 is an example of a spiking neuron model that includes an analog product-sum computation circuit. For example, the neuron model 100 includes conductors G11-G22, switch S11 and switch S12, switches S21-S22, S31-S32, capacitor CP, constant current source CS, and comparator COMP.
The neuron model 100 may further have a positive power supply PVS and a negative power supply NVS inside it, or outside the neuron model 100. The positive power supply unit PVS and the negative power supply unit NVS are sometimes collectively referred to as the power supply unit PS.
The cathode power supply unit PVS is a voltage source capable of outputting a predetermined positive voltage Vdd+ relative to the reference potential as the reference positive voltage. The anode power supply unit NVS is a voltage source capable of outputting a predetermined negative voltage Vdd− relative 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, which is described below. The positive voltage Vdd+ and the negative voltage Vdd− are voltages within the 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 supply voltage for the comparator COMP, which is described below.
The conductors G11-G22 may be formed by applying resistors individually, and may also be formed by applying semiconductor devices such as analog memories. For example, the conductances of the conductors G11, G12, G21, and G22 may be represented as σi1(l)+, σi1(l)−, σi2(l)+, and σi2(l)−, respectively. These are collectively called conductance values. Conductance is the reciprocal of resistance.
The switch S11 and switch S12, switch S21 and switch S22, and switch S31 and switch S32 each contain an a-contact type switch (semiconductor switch) that closes the circuit between the first and second terminals under control.
The switch S11 and switch S21 have their first terminals connected to the output of the positive power supply PVS.
The second terminal of the switch S11 is connected to the first terminal of the switch S31 via the series-connected conductor G11. The second terminal of the switch S12 is connected to the first terminal of the switch S31 via the series-connected conductor G12.
The switches S12 and S22 have their first terminals connected to the output of the negative power supply NVS.
The second terminal of the switch S12 is connected to the first terminal of the switch S31 via the series-connected conductor G12. The second terminal of the switch S22 is connected to the first terminal of the switch S31 via the series-connected conductor G22.
The control terminals of switches S11 and S12 are connected to the output of the neuron NNJ1 in layer (l−1). The switches S11 and S12 are switched on and off according to the logic state of the output signal S1 (l−1) of the neuron NNJ1 in layer (l−1). For example, the switches S11 and S12 both turn ON when the logic state of the output signal S1 (l−1) is 1 and OFF when it is 0. The 1 and 0 logic states of the output signal S1 (l−1) may be specified in correspondence with the result of having the voltage of the signal identified using a predetermined threshold voltage.
The control terminals of the switch S21 and switch S22 are connected to the output of neuron NNJ2 in layer (l−1). The switches S21 and S22 are switched on and off according to the logic state of the output signal S2 (l−1) of the neuron NNJ2 in layer (l−1). For example, the switches S21 and S22 both turn ON when the logic state of the output signal S2 (l−1) is 1 and OFF when it is 0. The 1 and 0 logic states of the output signal S2 (l−1) may be specified in correspondence with the result of having the voltage of the signal identified using a predetermined threshold voltage.
The second terminal of the switch S31 is connected to the first terminal of the capacitor CP, the first terminal of the switch S32, and the non-inverting input terminal of the comparator COMP. The voltage at the non-inverting input terminal of the comparator COMP is equal to the voltage at the first terminal of the capacitor CP.
The second terminal of the capacitor CP is connected to the pole of the reference potential. 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 flows a current Idecode with a regulated current value. The magnitude of the current Idecode is determined based on the capacitance C of the capacitor CP and the period T, which may be, for example, (C/T).
The control terminals of the switches S31 and S32 are supplied with the phase switching signal Sphase (l), a logic signal, from the controller 12. The switch S31 turns ON and OFF according to the logic state of the phase switching signal No. Sphase (l). For example, the switch S31 turns ON when the phase switching signal No. Sphase (l) is true in the first phase and turns OFF when the phase switching signal No. Sphase (l) is false in the second phase. In contrast, the switch S32 turns OFF when the phase switching signal No. Sphase (l) is true in the first phase and turns ON when the phase switching signal No. Sphase (l) is false in the second phase. The first phase is an example of the accumulation phase described above, and the second phase is an example of the decoding phase described above.
A threshold voltage Vth, which indicates 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 output signal Si(l). For example, the comparator COMP outputs the output signal Si(l) indicating “true” when the voltage vi(l) exceeds the threshold voltage Vth, and outputs the output signal Si(l) indicating “false” when the voltage vi(l) has not reached the threshold voltage Vth.
In the neuron model 100 constructed above, the membrane potential vi(l)(t) varies depending on the combination of the conductance values of the conductors G11-G22 and the period during which the switches S11-S22 are in the conducting state.
A discharge circuit for resetting the membrane potential vi(l)(t) to 0 may be provided in parallel with the capacitor CP, and the capacitor CP may be discharged at a predetermined timing controlled by the controller 12 or synchronized with a supplied clock.
As described above, the neuron model 100 forms a spiking neural network that includes an accumulation phase in which currents are added and a decoding phase in which the voltage produced by the addition is converted to a voltage pulse timing. The neuron model 100 is formed with an index value calculation portion 110 in which the current flowing into or out of the neuron model 100 (own neuron) during the accumulation phase depends on the membrane potential of the neuron model 100.
In the example in
The neural network device 10 sets the same input time interval and the same output time interval by synchronizing between the neuron models 100 in each layer so that all the neuron models 100 included in the same layer have the same data processing time. T is the time width of each time interval.
The neural network device 10 also synchronizes between layers so that the output time interval in the neuron model 100 in one layer overlaps with the input time interval in the neuron model 100 in the next layer.
In particular, the input time intervals and output time intervals are set so that the time length of the input time interval and the time length of the output time interval are the same, and the output time interval in the neuron model 100 in one layer completely overlaps the input time interval in the neuron model 100 in the next layer.
In this case, the “neuron model 100 of a layer” corresponds to the 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 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 spike signal input from the first neuron model.
With the time when spike signals are input to the neuron model 100 limited to the input time interval, the index value calculation portion 110 calculates the membrane potential so that the membrane potential is time-varying based on the input status of the spike signal in the input time interval. The index value calculation portion 110 corresponds to an example of an index value calculation means.
In the following, as in the description of the spiking neural network with reference to Equations (1) and (2), the neuron model 100 of the i-th node in layer l is referred to as the target model, and the membrane potential of the target model is denoted as vi(l)(t).
The indicator value calculation portion 110 uses the following Equation (1A) instead of the aforementioned Equation (1). Equation (1A) can be used to change the rate of change of the membrane potential vi(l)(t) between the input time interval and output time interval.
wij(l) denotes the weight set in the transmission path of the spike signal from the j-th spiking neuron model in layer l−1 to the target model. The rate of change of the membrane potential vi(l)(t) while the time t changes from (l−1) to 1 is a function using the weight coefficient wij(l). The rate of change of the membrane potential vi(l)(t) in the input time interval is then calculated by a function using the weight coefficient wij(l). The rate of change of the membrane potential vi(l)(t) during the output time interval in which the time t changes from 1 to (l+1) is a function using a weight coefficient or a fixed value. For example, its fixed value is positive. Its value may be 1. This is calculated using 1 as the rate of change of the membrane potential vi(l)(t) in the output time interval. The weight wij(l) should be made the target of the training. The weight set for the transmission path of the spike signal from the j-th spiking neuron model in layer l−1 to the target model is denoted as wij(l).
Equation (1A) above gives the rate of change of the membrane potential vi(l)(t). A detailed explanation of the above Equation (1A) is given below.
The term for the membrane potential vi(l) is included in the right-hand side of the equation for the input time interval in Equation (1A) above. This indicates that the rate of change of the membrane potential vi(l)(t), which is the left-hand side of this equation, varies with the membrane potential vi(l). A circuit that can eliminate the term of the membrane potential vi(l) on the right-hand side would be more complex than the configuration shown in
The description relating to the neuron model 100 of the target model applies to all neuron models 100 provided by the neural network device 10, except that the output timing of the spike signal of the neuron model 100 in the output layer, which is discussed below, can be relaxed. That is, layer l may be any layer that includes the neuron model 100 as a node. Any neuron model 100 in layer l may be the i-th neuron model 100.
Using Equation (1A), it can be formulated that the membrane potential vi(l)(t) of the neuron model 100 varies in the output time interval with a slope specific to the output time interval. This slope is +1. This corresponds to the conversion characteristic shown in
The firing time at which the neuron model 100 fires within the output time interval may be specified 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 so as 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 by a slope inherent to the neuron model 100. The neuron model 100 generates a spike of a predetermined pulse waveform when the membrane potential of the neuron model 100 meets a predetermined condition within the output time interval. For example, the neuron model 100 can start transmitting spikes in the form of square waves when the membrane potential of the neuron model 100 meets a predetermined condition within the output time interval, and interrupt the transmission of the spikes at the time when the output time interval ends.
Instead, a similar function can be achieved by fixing the membrane potential in the output time interval and varying the firing threshold value instead of the threshold value Vth. Specifically, for each neuron model, the firing threshold should be a unique value determined for each neuron model, and the firing threshold should be varied by slope of −1 during the output time interval. In the following description, the case in which the firing threshold is fixed to the threshold value Vth and the membrane potential vi(l)(t) changes during the output time interval is illustrated, but the same argument is applicable to the case in which the membrane potential is fixed and the firing threshold changes during the output time interval.
The following is a detailed description of the membrane potential vi(l)(t), divided into input and output time intervals. Below, the time evolution of the membrane potential vi(l)(t) based on the circuit shown in
The rate of change of the membrane potential vi(l)(t) is specified by dividing it into a first phase and a second phase depending on 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 membrane potential vi(l)(t) in the second phase is defined using Equation (3B).
The membrane potential vi(l)(t) of the input time interval is expressed as in Equation (3A). The membrane potential vi(l)(t) of the output time interval is expressed as in Equation (3B).
First, with reference to Equation (3A), the change in the membrane potential in the first phase will be described.
The variable σij(l)+ and the variable σij(l)− in Equation (3A) are explained below.
The variable σij(l)+ and the variable σij(l)− indicate the conductance components of the circuit in which the i-th neuron in layer l in the neuron model 100 receives the pulse signal from the j-th neuron in layer (l−1). The variable σij(l)+ and variable σij(l)− are shown in the following Equations (4A) and (4B).
The variable σij(l)+ shown in Equation (4A) above is the conductance component from the positive voltage source PVS to the i-th neuron. For example, the variable σij(l)+ is converted using capacitance C, the weight coefficient Wij(l), the function δ, and the positive voltage Vdd+. The 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 Equation (4B) above is the conductance component from the negative voltage source 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−. The 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−.
Comparing the variables σij(l)+ and σij(l)−, the capacitance C and the weight coefficient Wij_(l) are common, while the function δ and the voltage components positive voltage Vdd+ and negative voltage Vdd− are different.
The function δ is shown in the following Equation (5) for the function that outputs a logic value according to the state s. For example, the function & takes the state s as an argument and outputs 0 as the solution when state s does not satisfy the given condition (false) and outputs 1 as the solution when the state s satisfies the given condition (true).
As shown in the following Equation (6), the function θ(x) is a step function. For example, 0 is output if the argument x is negative and 1 is output if the argument x is positive.
Next, referring to Equation (3B), the change in membrane potential in the second phase will be described.
The change in membrane potential in the second phase is specified as a fixed value determined by the capacitance C and the period T.
By dividing both sides of equations (3A) and (3B) by the capacitance C respectively and substituting equations (4A) and (4B), the following equations (7A) and (7B) are obtained. Equations (7A) and (7B) become equations for the rate of change of the membrane potential.
The rate of change of the membrane potential is the slope of the graph, with time on the horizontal axis and membrane potential on the vertical axis.
By the way, the right-hand side of Equation (7A) is summarized and rewritten as in Equation (8) below.
Assuming the period T to be 1, if a substitution to a portion of the equation is made using the following Equation (9), the above equations (3A) and (3B) can be converted to the following equations (10A) and (10B).
Equations (10A) and (10B) above are equivalent because they are the same as Equation (1a) above with the period T set to 1. In other words, after training the neural network based on Equation (1a), the same operation can be realized on the circuit as represented by equations (10A) and (10B).
The following is a summary of the movement of each portion.
By turning on the switch S31 and turning off the switch S32, the index value calculation portion 110 calculates the membrane potential vi(l)(t) for each interval based on equations (3A) and (3B) above. In the input time interval, the index value calculation portion 110 changes the membrane potential vi(l)(t) at a rate of change according to the input status of the spike signal to the target model as shown in Equations (1A) and (3A).
On the other hand, in the output time interval where the switch S31 is turned OFF and the switch S32 is turned ON, the index value calculation portion 110 blocks the spike signal by the switch S31. The index value calculation portion 110 does not accept spike signals to the target model as shown in Equation (1A).
Furthermore, in the output time interval, the index value calculation portion 110 varies 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 since the start of the output time interval. For example, by turning ON the switch S32, the index value calculation portion 110 charges the capacitor CP with a constant current to monotonically increase the membrane potential vi(l)(lT) from the membrane potential at the end of the input time interval. The formula shown in Equation (3B) is an example. The rate of change of the membrane potential vi(l)(t) during the output time interval should be maintained at a predetermined value decided in advance.
The comparison portion 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 an output time interval. Alternatively, this comparison is performed at all times, and the results of the comparison are used at least for the output time interval.
The signal output portion 130 outputs a spike signal within the output time interval based on the results of the determination of the membrane potential vi(l)(t). For example, the signal output portion 130 outputs a spike signal when the membrane potential vi(l)(t) reaches the threshold Vth within the output time interval. If the membrane potential vi(l)(t) does not reach the threshold Vth within the output time interval, the signal output portion 130 may output a spike signal at the end of the output time interval.
For the output layer in the example in
Hereinbelow, with reference to
CASE 0 to CASE 2 in
For example, as shown in CASE 1 in
In contrast, as shown in CASE0 and CASE2 in
For example, the membrane potential vi(l)(t) may never reach the threshold Vth by the end of the output time interval. This is called CASE 3. In CASE 3, the comparison portion 120 may output a dummy determination result that the membrane potential has reached the threshold value. The signal output portion 130 may then output a spike signal at the end of the output time interval based on the determination result of the comparison portion 120.
Alternatively, in the case of CASE 3, the index value calculation portion 110 may calculate the membrane potential vi(l)(t) as 0 at the beginning of the next input time interval. This may allow the index value calculation portion 110 to start processing for the next data in the next input time interval from the state in which the membrane potential vi(l)(t) is reset to 0.
In the example in
In the example in
This allows the neuron model 100 to process the next data in the next data processing time. The entire neural network 11 can start processing the next data without waiting for the completion of processing the input data, so to speak, as in a pipeline process.
In the example in
The neural network device 10 may include a synchronization processing portion, which notifies each neuron model 100 of the timing of switching between time intervals. Alternatively, each of the neuron models 100 may detect the timing of the switching between time intervals based on a clock signal common to all the neuron models 100.
As shown in
If 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). Time 2T is the end of the output time interval. The delay time between the membrane potential vi(l)(t) reaching the threshold Vth and the output of the spike signal by the neuron model 100 is assumed to be negligible.
If the threshold arrival time ti(l, vth) is later than the time 2T, i.e., the membrane potential vi(l)(t) does not reach the threshold Vth by the time 2T, the neuron model 100 either outputs a spike signal at time 2T or moves on to process the next data without outputting a spike signal.
Referring to
The results of the experiments using the neural network device 10, shown in
The neural network 11 used in this test was a fully connected feed-forward type with 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 and second layers was set to 200 each, and the number of neuron models 100 in the output layer was set to 10.
The horizontal and vertical axes of the graphs in
The difference between the figures in
The example shown in
In contrast, the two examples shown in
The horizontal axis of
As mentioned above, the neural network 11 that the neural network device 10 comprises is also referred to as the neural network body.
The neural network device 10 in neural network system 1 includes an index value calculation portion 110 (current adding portion), i.e., the neuron model 100. As described above, the index value calculation portion 110 is formed so that the current flowing into or out of the neuron model 100 (own neuron) during the accumulation phase depends on the membrane potential of the neuron model 100.
For example, the process of computing the membrane potential of the neuron model 100 by the index value calculation portion 110 includes a current adding computation 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 trained model for determining the responsiveness of the membrane potential of the neuron model 100 to the aforementioned current.
The neural network device 10 also acquires a clock signal. The neural network device 10 may be equipped with a clock circuit. Alternatively, the neural network device 10 may receive a clock signal input from outside the neural network device 10.
The neural network device 10 receives input data and outputs an estimated value based on the input data. When calculating the estimated value, the neural network device 10 uses a clock signal to synchronize time intervals between layers and between neuron models 100 in the same layer.
The learning device 50 performs learning of the neural network device 10. Learning here refers to adjusting the parameter values of the learning model by machine learning. The learning device 50 performs learning of a weight coefficient for the spike signal input to the neuron model 100. The weight Wij(l) in Equation (4) corresponds to an example of a weight coefficient whose value is adjusted by the learning device 50 through training. The weight Wij(l) in Equation (4) corresponds, for example, to the conductance of the analog circuit.
The learning device 50 may perform learning of weight coefficients so that the magnitude of the error between the estimated value and the correct value indicated by the supervisor label is reduced, 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.
The learning device 50 is an example of a learning means. The learning device 50 is composed of, for example, a computer.
For example, machine learning methods, reinforcement learning methods, deep reinforcement learning methods, and the like may be applied as the learning method by the learning device 50. More specifically, the learning device 50 may learn the characteristic value of the indicator value calculation portion 110 so that the predetermined gain is maximized, following the method of reinforcement learning (deep reinforcement learning).
Existing learning methods such as error back propagation, for example, can be used as the learning method performed by the learning device 50.
For example, when the learning device 50 performs learning using the error backpropagation method, the weight Wij(l) may be updated so that the weight Wij(l) is changed by the change amount ΔWij(l) shown in Equation (11).
n is a constant that indicates the learning rate. The learning rates in Equation (11) may be the same or different from each other.
C is expressed as in Equation (12).
The first term in C corresponds to an example of an evaluation function that indicates the evaluation for errors between the estimated value output by the neural network device 10 and the correct value indicated by the supervisor label. The first term in C is set as a loss function that outputs a smaller value the smaller the error.
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.
κi represents the supervisor label. Let us assume that the neural network device 10 performs class classification with N (M) classes, and that the supervisor label is denoted by one-hot vector. It is assumed that κi=1 when the value of index i indicates the correct class, and κi=0 otherwise.
t(ref) represents the reference spike.
The term “γ/2(ti(M)−t(ref))2” is a term provided to avoid learning difficulties. This term is also called the Temporal Penalty Term. γ is a constant to adjust the influence of the Temporal Penalty Term, which γ being greater than zero. γ is also called the Temporal Penalty Coefficient.
Si is a softmax function and is expressed as in Equation (13).
σsoft is a constant established as a scale factor to adjust the magnitude of the value of the softmax function Si, where σsoft >0.
For example, the spike firing time of the output layer may indicate, for each class, the probability that the classified object 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 term “−Σi=1N(M) (κiln(Si(t(M))))”, and so the learning device 50 calculates the loss (the value of the evaluation function C) smaller.
However, the processing performed by the neural network device 10 is not limited to class classification.
As in the operation shown in
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 use a clock signal to synchronize time intervals between layers and between neuron models 100 in the same layer.
According to an example embodiment, the neural network device 10 (computing device) includes a spiking neural network (neural network 11) that includes an accumulation phase that adds currents and a decoding phase that converts the voltage produced by the addition to a voltage pulse timing. The spiking neural network includes an index value calculation portion 110 (current adding portion) where the current that flows into or out of the neuron model 100 during the accumulation phase depends on the membrane potential of the neuron model 100 in question. This allows each of the neuron models 100 that make up the neural network device 10 to be configured more simply.
In addition, current flows to the index value calculation portion 110 by the output of the preceding neuron provided in front of the neuron model 100. The current that that preceding neuron sends to the index value calculation portion may depend on the potential difference between the reference voltage of the preceding neuron and the membrane potential of the index value calculation portion 110.
In addition, because the current that the preceding neuron sends to the index value calculation portion 110 is proportional to the potential difference between the reference voltage of the preceding neuron and the membrane potential of the neuron model 100, the result of that computation, the reference voltage of the preceding neuron, affects the current that the preceding neuron sends to the index value calculation portion 110. By taking these effects into account and incorporating them into the learning process, high learning performance can be maintained.
The index value calculation portion 110 may be trained to reduce the magnitude of the current flowing due to the output of the preceding neuron through learning with a predetermined arbitrary cost function.
Furthermore, the index value calculation portion 110 may learn conductance characteristics related to the magnitude of the current flowing due to the output of the preceding neuron through learning using an arbitrary predetermined cost function.
When the neural network 11 is configured as a feed-forward spiking neural network, as described above, the number of layers of the neural network 11 need only be two or more, and is not limited to a specific number of layers. The number of neuron models 100 that each layer has is not limited to a specific number; each layer can have one or more neuron models 100. Each layer may have the same number of neuron models 100, or different layers may have different numbers of neuron models 100. The neural network 11 may or may not be fully-connected. For example, the neural network 11 may be configured as a convolutional neural network (CNN) with a spiking neural network.
The membrane potential after the firing of each neuron model 100 is not limited to remaining constant at the aforementioned potential of 0. For example, for a predetermined time from firing, the membrane potential may change in response to the spike signal input. The number of times each of the neuron models 100 fires is also not limited to once per input data.
The configuration of the neuron model 100 as a spiking neuron model is also not limited to any particular configuration. For example, the rate of change in the membrane potential of the neuron model 100 may not be constant from the receipt of one spike signal input to the receipt 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 unsupervised training of the neural network 11.
As described above, the index value calculation portion 110 varies the membrane potential over time based on the input status of the signal in the input time interval. The signal output portion 130 outputs a signal within the output time interval after the end of the input time interval based on the membrane potential.
By setting the input time interval during which the neuron model 100 accepts spike signal inputs and the output time interval during which the neuron model 100 outputs spike signals, the time during which the index value calculation portion 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, the spiking neural network can efficiently process data in this regard.
Furthermore, the index value calculation portion 110 changes the membrane potential at a rate of change that depends on the signal input status during the input time interval. If the membrane potential does not reach the threshold value within the input time interval, the index value calculation portion 110 changes the membrane potential at a predetermined rate of change during the output time interval.
If the membrane potential reaches the threshold value within the output time interval, the signal output portion 130 outputs a spike signal when the membrane potential reaches the threshold value. If the membrane potential does not reach the threshold within the output time interval, the signal output portion 130 outputs a spike signal at the end of the output time interval.
This allows the neuron model 100 to limit the time during which the spike signal is output 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, the spiking neural network can efficiently process data in this regard.
The output time interval and input time interval are set so that the output time interval of the first neuron model 100 overlaps the input time interval of the second neuron model that receives the spike signal input from the first neuron model 100.
This allows data to be efficiently transmitted by spike signals from the first neuron model 100 to the second neuron model 100, and the first neuron model and the second neuron model 100 can perform processing in a pipeline-like manner.
According to the neural network device 10, the spiking neural network can efficiently process data in this regard.
The index value calculation portion 110 varies the membrane potential over time based on the input status of the signal in the input time interval. The signal output portion 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 learns weight coefficients for spike signals.
This allows the weight coefficients to be adjusted through learning and improves the accuracy of estimation by the neural network device 10.
In such a configuration, the neuron model 611 is formed to be able to transmit spikes by having them fire within a certain time interval. In the neural network device 610, the input time interval in which spikes are received and the output time interval in which spikes are allowed to be transmitted are demarcated in association with the firing of the neuron model 611.
For example, the index value calculation unit 612 varies the index value of the signal output based on the input status of the signal in the input time interval. The signal output portion 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 portion 612 corresponds to an example of an index value calculation means. The signal output portion 613 corresponds to an example of a signal output means.
Thus, by setting the input time interval during which the neuron model 611 receives signal input and the output time interval during which the neuron model 611 outputs spike signals, and by causing the firing to occur in the output time interval, the time during which the index value calculation portion 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, the spiking neural network can efficiently process data in this regard.
As long as the layers do not interfere with signal input and signal output, the input time interval and the output time interval may be specified so as to overlap. For example, the output layer 23 described above is an example of a layer where signal input and signal output do not interfere. The neuron model 611 applied to the output layer 23 may have an input-output time interval associated with firing, where signals are allowed to be received and transmitted. An input-output time interval during which signals are allowed to be received and transmitted may be set in place of an input time interval during which signal output is restricted.
In such a configuration, the neuron model device 620 is divided into an input time interval in which the signal is received and an output time interval in which the signal is allowed to be transmitted, in association with the firing. The index value calculation portion 621 varies the index value of the signal output based on the input status of the signal in the input time interval. The signal output portion 622 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 portion 621 corresponds to an example of an index value calculation means. The signal output portion 622 corresponds to an example of a signal output means.
By setting the input time interval during which the neuron model device 620 accepts spike signal inputs and the output time interval during which the neuron model device 620 outputs spike signals, the time during which the index value calculation portion 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.
According to the neuron model device 620, the spiking neural network can efficiently process data in this regard.
In the configuration shown in
In such a configuration, the neural network system 630 is divided into an input time interval in which the signal is received and an output time interval in which the signal is allowed to be transmitted, in association with the firing of the neuron model 632. The index value calculation portion 633 varies the index value of the signal output based on the input status of the signal in the input time interval. The signal output portion 634 outputs a signal within the output time interval after the end of the input time interval based on the index value. The learning portion 635 learns weight coefficients for signals input to the neuron model 632.
The index value calculation portion 633 corresponds to an example of an index value calculation means. The signal output portion 634 corresponds to an example of a signal output means. The learning portion 635 corresponds to an example of a learning means. The learning portion 635 is an example of a learning means that learns the characteristic values of the index value calculation portion 633 (current adding portion) so that the computation result of any predetermined cost function is minimized.
In the neural network system 630, this allows the weight coefficients to be adjusted through learning, improving the accuracy of estimation by the neural network body 631.
In identifying a time interval segment (Step S610), the input time interval in which a spikes is received and the output time interval in which a spike is allowed to be transmitted are identified. For example, identifying time interval segments may include setting flags according to the results of the identification. In calculating the index value (Step S611), if the result of the identification indicates an input time interval, the signal input is allowed and the index value of the signal output is changed based on the signal input status in the input time interval. Outputting a signal (Step S612) is performed in response to the detection of a transition from the input time interval to the output time interval, for example, by the result of the identification. In outputting a signal (Step S612), the signal is output within the output time interval after the end of the input time interval by firing based on the index value, depending on the result of identification (flag value).
In the computation method shown in
The computation method shown in
In the configuration shown in
Any one or more of the above neural network device 10, learning device 50, neural network device 610, neuron model device 620, and neural network system 630, or parts thereof, may be implemented in the computer 700. In that case, the operations of each of the above-mentioned processing portions 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, deploys it in the main memory device 720, and executes the above processing according to the program. The CPU 710 also reserves a storage area in the main storage device 720 corresponding to each of the above-mentioned storage sections according to the program. Communication between each device and other devices is performed by the interface 740, which has a communication function and communicates according to the control of the CPU 710.
When the neural network device 10 is implemented in the computer 700, the operations of the neural network device 10 and the various parts thereof 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, deploys it in the main memory device 720, and executes the above processing according to the program.
The CPU 710 also reserves a storage area in the main storage device 720 for processing of the neural network device 10 according to the program. Communication between the neural network device 10 and other devices is performed by the interface 740, which has a communication function and operates according to the control of the CPU 710. Interaction between the neural network device 10 and the user is performed by the interface 740 being equipped with a display device and input device, displaying various images according to the control of the CPU 710, and accepting user operations.
When the learning device 50 is implemented in the computer 700, the operation of the learning device 50 is 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, deploys it in the main memory device 720, and executes the above processing according to the program.
The CPU 710 also reserves a storage area in the main storage device 720 for the processing of the learning device 50 according to the program. Communication between the learning device 50 and other devices is performed by the interface 740, which has a communication function and operates according to the control of the CPU 710. Interaction between the neural network device 50 and the user is performed by the interface 740 being equipped with a display device and input device, displaying various images according to the control of the CPU 710, and accepting user operations.
When the neural network device 610 is implemented in the computer 700, the operations of the neural network device 610 and the various parts thereof 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, deploys it in the main memory device 720, and executes the above processing according to the program.
The CPU 710 also reserves a storage area in the main storage device 720 for processing of the neural network device 610 according to the program. Communication between the neural network device 610 and other devices is performed by the interface 740, which has a communication function and operates according to the control of the CPU 710. Interaction between the neural network device 610 and the user is performed by the interface 740 being equipped with a display device and input device, displaying various images according to the control of the CPU 710, and accepting user operations.
When the neuron model device 620 is implemented in the computer 700, the operations of the neuron model device 620 and the various parts thereof 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, deploys it in the main memory device 720, and executes the above processing according to the program.
The CPU 710 also reserves a storage area in the main memory 720 for the processing of the neuron model device 620 according to the program. Communication between the neuron model device 620 and other devices is performed by the interface 740, which has a communication function and operates according to the control of the CPU 710. Interaction between the neuron model device 620 and the user is performed by the interface 740 being equipped with a display device and input device, displaying various images according to the control of the CPU 710, and accepting user operations.
When the neural network system 630 is implemented in the computer 700, the operations of the neural network system 630 and the various parts thereof 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, deploys it in the main memory device 720, and executes the above processing according to the program.
The CPU 710 also reserves a storage area in the main storage device 720 for processing of the neural network system 630 according to the program. Communication between the neural network system 630 and other devices is performed by the interface 740, which has a communication function and operates according to the control of the CPU 710. Interaction between the neural network system 630 and the user is performed by the interface 740 being equipped with a display device and input device, displaying various images according to the control of the CPU 710, and accepting user operations.
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 by having the computer system read and execute the program recorded on this recording medium, the processing of each part may be performed by the computer system. The term “computer system” here shall include an operating system and hardware such as peripherals.
In addition, “computer-readable recording medium” means a portable medium such as a flexible disk, magneto-optical disk, ROM (Read Only Memory), CD-ROM (Compact Disc Read Only Memory), or other storage device such as a hard disk built into a computer system. The above program may be used to realize some of the aforementioned functions, and may also be used to realize the aforementioned functions in combination with programs already recorded in the computer system.
The above example embodiments of this invention have been described in detail with reference to the drawings. Specific configurations are not limited to these example embodiments, but also include designs, etc., to the extent that they do not depart from the gist of this invention.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2021/032453 | 9/3/2021 | WO |