Learning apparatus, learning system, learning method, and program
The learning device and method adjust neuron firing probabilities using a reference time-based evaluation function, enhancing information transmission and accuracy in time-based spiking neural networks by ensuring a higher probability of neuron activation.
Patent Information
- Application Number
- JP2024034427
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-06
- Publication Date
- 2025-09-19
Smart Images

Figure 2025136181000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a learning device, a learning system, a learning method, and a program. [Background technology]
[0002] A type of neural network is a spiking neural network. For example, Patent Document 1 describes that in a spiking neural network, in order to prevent neuron instability that may occur due to a very small membrane potential threshold, when the membrane potential of a neuron is smaller than a reference value, the weight of the synapse for each neuron is increased instead of lowering the membrane potential of the neuron. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 2017-134821 Summary of the Invention [Problem to be solved by the invention]
[0004] One type of spiking neural network is a time-based spiking neural network, which transmits information based on firing times. In a time-based spiking neural network, if the proportion of neurons that do not fire is too high, the amount of information transmitted will be reduced, and the estimation accuracy of the neural network will be reduced. For this reason, it is preferable that neurons have a relatively high probability of firing.
[0005] An example of an objective of the present disclosure is to provide a learning device, a learning system, a learning method, and a program that can solve the above-mentioned problems. [Means for solving the problem]
[0006] According to a first aspect of the present disclosure, a learning device includes a learning means for learning a time-based spiking neural network using an evaluation function including a predetermined reference time and an index related to neurons, the evaluation function being given to each layer of the time-based spiking neural network.
[0007] According to a second aspect of the present disclosure, a learning system includes a time-based spiking neural network and a learning device, the learning device including learning means for learning the spiking neural network using an evaluation function including a predetermined reference time and an index related to neurons, the evaluation function being given to each layer of the spiking neural network.
[0008] According to a third aspect of the present disclosure, a training method includes a computer training a time-based spiking neural network using an evaluation function including a predetermined reference time and an index related to a neuron, the evaluation function being given to each layer of the time-based spiking neural network.
[0009] According to a fourth aspect of the present disclosure, a program causes a computer to perform training of a time-based spiking neural network using an evaluation function including a predetermined reference time and an index related to neurons, the reference time being given to each layer of the time-based spiking neural network. [Effects of the Invention]
[0010] According to one aspect of the present disclosure, in a time-based spiking neural network, neurons are expected to have a relatively high probability of firing. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 illustrates an example of the configuration of a learning system according to at least one embodiment. [Figure 2] FIG. 1 illustrates an example of a neural network configuration according to at least one embodiment. [Figure 3] FIG. 1 illustrates an example of the configuration of a convolutional layer included in a neural network according to at least one embodiment. [Figure 4] FIG. 2 illustrates an example of a correspondence between input data and output data in a convolutional channel according to at least one embodiment. [Figure 5] FIG. 2 illustrates an example of the configuration of a pooling layer included in a neural network according to at least one embodiment. [Figure 6] FIG. 2 illustrates an example of a correspondence between input data and output data in a pooling channel according to at least one embodiment. [Figure 7] FIG. 2 illustrates an example of the configuration of a fully connected layer included in a neural network according to at least one embodiment. [Figure 8] FIG. 2 illustrates an example configuration of an output layer according to at least one embodiment. [Figure 9] FIG. 1 illustrates an example of the configuration of a learning device according to at least one embodiment. [Figure 10] FIG. 1 illustrates a first example of a neural network configuration used in an experiment according to at least one embodiment. [Figure 11] FIG. 1 illustrates a first example of neuron firing in a neural network in an experiment according to at least one embodiment. [Figure 12] FIG. 10 illustrates a second example of neuron firing in a neural network in an experiment according to at least one embodiment. [Figure 13] FIG. 10 illustrates a second example of a neural network configuration used in experiments according to at least one embodiment. [Figure 14] FIG. 10 illustrates a third example of neuron firing in a neural network in an experiment according to at least one embodiment. [Figure 15] FIG. 10 illustrates a fourth example of neuron firing in a neural network in an experiment according to at least one embodiment. [Figure 16]FIG. 1 illustrates an example of the configuration of a learning device according to at least one embodiment. [Figure 17] FIG. 1 illustrates an example of a spiking neural network according to at least one embodiment. [Figure 18] FIG. 1 illustrates another example of a configuration of a learning system according to at least one embodiment. [Figure 19] FIG. 1 is a diagram illustrating an example of a processing procedure in a learning method according to at least one embodiment. [Figure 20] FIG. 1 illustrates a computer configuration according to at least one embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0012] The following describes embodiments of the present invention, but the following embodiments do not limit the scope of the invention as claimed. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.
[0013] First Embodiment 1 is a diagram showing an example of the configuration of a learning system according to at least one embodiment. In the configuration shown in FIG. 1, the learning system 1 includes a learning device 100 and a neural network 200. The learning system 1 is a system that performs learning on a neural network 200 .
[0014] Neural network 200 is the neural network to be learned in learning system 1, and is configured as a spiking neural network (SNN) using time-to-first-spike coding. Learning of a neural network here refers to adjusting the parameter values of the neural network using training data. Learning of a neural network can also be called training of a neural network.
[0015] Hereinafter, the timing related to the operation of neural network 200 will also be referred to as time. In this case, "time" can be expressed, for example, as the elapsed time since neural network 200 started processing (the elapsed time since a signal was input to neural network 200).
[0016] A spiking neural network is a neural network that includes spiking neurons. A spiking neuron has an internal state called a membrane potential, and its membrane potential changes depending on the input time of a spike signal or a signal called a spike (the firing time of a spiking neuron in the previous layer) and the parameter value, also called weight, corresponding to each input. A spiking neuron outputs a spike signal when the membrane potential reaches a predetermined threshold. The output of a spike signal by a spiking neuron is also called firing. The timing at which a spiking neuron fires is also called firing time. The threshold in this case is also called firing threshold. The change in membrane potential can be seen as the calculation of firing time by a spiking neuron.
[0017] A time-based spiking neural network is a spiking neural network that transmits information by firing time. In a time-based spiking neural network, each spiking neuron only needs to fire once, which allows for relatively low power consumption.
[0018] In the following, we will explain an example in which the neural network 200 is configured as a convolutional neural network (CNN) using spiking neurons. A convolutional neural network using spiking neurons is also called a spiking convolutional neural network.
[0019] A spiking convolutional neural network can be considered as a neural network that uses spike signals to perform the processing that a convolutional neural network performs. Each layer of a spiking convolutional neural network can be considered as a layer that uses spike signals to perform the processing that a convolutional neural network performs.
[0020] However, the application of the learning device 100 is not limited to spiking convolutional neural networks, but can be applied to various neural networks that include spiking neurons that transmit signals in a time-domain manner.
[0021] The processing performed by the neural network 200 is also referred to as estimation. Alternatively, the processing performed by the neural network 200 can be referred to as prediction or forecasting. However, the target of the processing performed by the neural network 200 is not limited to future events.
[0022] The functions of neural network 200 may be performed by computer simulation, or neural network 200 may be implemented in hardware. For example, during learning, the functions of neural network 200 may be executed by computer simulation, and based on the learning results, neural network 200 may be implemented in hardware as a circuit using resistors, capacitors, etc., and used for operation.
[0023] Fig. 2 is a diagram showing an example of the configuration of neural network 200. In the example of Fig. 2, neural network 200 is configured as a forward propagation neural network, and includes an input layer 220, one or more hidden layers 230, and an output layer 240. The layers of neural network 200 are also referred to as layers 210.
[0024] The neural network 200 may include a layer 210 that does not include spiking neurons (i.e., a layer 210 that is configured without using spiking neurons). The output of a spike signal by a layer 210 that does not include spiking neurons is also referred to as firing. The time at which a layer 210 that does not include spiking neurons outputs a spike signal is also referred to as firing time. The time at which a spike signal is output is also referred to as the firing time of the spike signal.
[0025] The layer 210 may have multiple channels. The channel here refers to a signal path. More specifically, the channel here refers to the layer 210 divided according to the signal path. When the layer 210 has multiple channels, each channel processes the signal independently of the other channels. Specifically, each channel in the same layer 210 receives the same signal input and processes it using different weights for each channel.
[0026] The number of elements in the spike signal output by each channel is also referred to as the number of dimensions of the channel. For example, if a channel outputs a signal in which spike signals are arranged in the form of a matrix, the number of elements in the matrix corresponds to the number of dimensions of the channel. The matrix of spike signals is also referred to as the spike matrix. In the following, the tensor of spike signals is also referred to as the spike matrix.
[0027] The input layer 220 accepts two-dimensional input data, such as image data, and outputs a spike matrix of the same size as the input data. For each element of the input data, the input layer 220 outputs a spike signal with a firing time corresponding to the value of that element. However, the dimensions of data that the input layer 220 accepts as input are not limited to two dimensions. For example, the input layer 220 may accept input of three or more dimensional data. Alternatively, the input layer 220 may accept input of one-dimensional data.
[0028] The input layer 220 may have a spiking neuron for each element of the input data, and the membrane potential may increase in proportion to the magnitude of the element value of the input data. In this case, the input layer 220 outputs a spike signal for each element of the input data earlier as the element value increases.
[0029] However, the relationship between the magnitude of the input data elements and the timing at which the input layer 220 outputs a spike signal is not limited to a specific relationship. For example, the input layer 220 may be configured to output a spike signal earlier for each element of the input data as the element value becomes smaller. The input layer 220 may be configured without spiking neurons.
[0030] Each hidden layer 230 receives spike signals from the previous layer 210 and outputs spike signals according to the input situation, based on the input time of the spike signals (the firing time of the spiking neurons in the previous layer) and the value of the weight (weighting coefficient) corresponding to each input. The neural network 200 includes a convolutional layer, a pooling layer, a fully connected layer, or the like as the hidden layer 230. For example, the hidden layer 230 may be a convolutional layer, a combination of a convolutional layer and a pooling layer, or a fully connected layer.
[0031] 3 is a diagram showing an example of the configuration of a convolutional layer included in the neural network 200. In the configuration shown in FIG. 3, the convolutional layer 231 includes one or more convolutional channels 311. The convolutional channel 311 includes one or more neurons 320.
[0032] The convolutional channel 311 is a channel of the convolutional layer 231. One convolutional channel receives one input spike matrix, performs signal processing, and outputs one spike matrix. The spike matrix output by the convolutional channel 311 can be considered as a feature map. Neuron 320 is a spiking neuron.
[0033] Fig. 4 is a diagram showing an example of the correspondence between input data and output data in the convolutional channel 311. In the example of Fig. 4, the convolutional channel 311 includes neurons 320 corresponding to each element of the spike matrix M12, which is the output data of the convolutional channel 311 itself. Therefore, the number of dimensions of the channels in the convolutional layer 231 is equal to the number of neurons 320 per channel in the convolutional layer 231.
[0034] The convolution channel 311 receives input of output data from each channel in the previous layer. When the output data from each channel in the previous layer is expressed as a two-dimensional spike matrix, the input data to the convolution channel 311 can be regarded as two-dimensional spike matrices equal to the number of channels in the previous layer, or as one three-dimensional spike matrix.
[0035] Each neuron 320 receives spike signals from elements of spike matrix M11 from each channel in the previous layer, which are input data to convolutional channel 311, at positions referenced by the kernel of the convolutional neural network. Then, in each neuron 320, the membrane potential changes according to the equation of the convolutional operation. For example, the membrane potential of neuron 320 in convolutional channel 311 may change according to equation (1).
[0036]
number
[0037] Equation (1) shows an example for the ith neuron 320 in the lth layer, where l represents an identification number that identifies the layer 210 of the neural network 200. Here, i represents an identification number that identifies the neuron 320 in the lth layer. The identification numbers of the layers 210 are assigned in order from the upstream side of the spike signal flow. Therefore, the smaller the identification number of a layer 210, the more upstream it is located in the spike signal flow. v (l) i(t) indicates the membrane potential of the ith neuron 320 in the lth layer at time t.
[0038] j indicates an identification number that identifies a spike signal that may be output from the l-1th layer. If the l-1th layer is a layer in which neurons 320 output spike signals, j may be an identification number that identifies neurons 320 in the l-1th layer. Here, "possibly" means that among the spike signals identified by the identification numbers, there may be spike signals that are not output. For example, among the neurons 320 included in the convolutional channel 311, there may be neurons 320 whose membrane potential does not reach a threshold and therefore do not fire.
[0039] If the firing time of a neuron 320 cannot be identified because the neuron 320 does not fire, causing problems in the calculation, the calculation may be performed by setting the firing time of the neuron 320. For example, the learning unit 191 may perform the calculation by setting the firing time of a neuron 320 that is not firing in the calculation for learning the neural network 200 to a predetermined time that is sufficiently later than the time at which the neuron 320 is expected to fire.
[0040] J (l) i denotes a set of identification numbers of spike signals referenced by the ith neuron 320 in the lth layer, among the identification numbers of spike signals that may be output from the l-1th layer. The spike signal referenced by the ith neuron 320 in the lth layer here refers to the spike signal of the element in the spike matrix M11 described above that corresponds to the position referenced by the kernel of the convolutional neural network.
[0041] W (l) j represents the weighting coefficient for the j-th spike signal that may be output from the l-1-th layer in the neuron 320 of the l-th layer. (l) jis the target of learning in the learning of the neural network 200 performed by the learning device 100. That is, the weighting coefficient W (l) j The value of is subject to updating during the learning of the neural network 200 performed by the learning device 100. θ represents a step function, which is expressed as in equation (2).
[0042]
number
[0043] t (l-1) j indicates the firing time of the j-th spike signal that may be output from the l-1-th layer. When spike signals are distinguished by channel, the firing time of the i-th spike signal that may be output from the c-th channel of the l-th layer is defined as t (l) c,i It can also be written as: However, the change in the membrane potential of neuron 320 is not limited to that shown in equation (1). Neuron 320 fires when the membrane potential reaches a threshold, and each neuron 320 outputs a spike signal that becomes one element of spike matrix M12 upon firing.
[0044] Neuron 320 may further calculate the firing time using an activation function. For example, neuron 320 may be configured by connecting two spiking neurons in series. The membrane potential of the leading spiking neuron (upstream of the signal flow) may change according to a convolution operation formula as described above, and the spiking neuron may fire when the membrane potential reaches a threshold. Alternatively, when a trailing spiking neuron (downstream of the signal flow) receives a spike input from the leading spiking neuron, the membrane potential of the trailing spiking neuron may change according to an activation function formula. The trailing spiking neuron may fire when the membrane potential reaches a threshold.
[0045] For each layer 210 of the neural network 200, such as the convolutional layer 231, that includes neurons 320, a time period during which the firing time of the neurons 320 in that layer 210 is transmitted to the next layer may be set. This time period is also referred to as a firing time period. By setting the firing time period, subsequent layers 210 (layers 210 located downstream in the signal flow) can process neurons 320 that did not fire within the firing time period as if they had not fired.
[0046] By setting firing windows in this way, it is possible to clearly define for each hidden layer 230 how long to wait for the input of a spike signal. This allows the neural network 200 to process new, different input data before the neurons in the output layer fire. In other words, this enables pipeline operation of the neural network 200, leading to improved throughput.
[0047] 5 is a diagram showing an example of the configuration of a pooling layer included in the neural network 200. In the configuration of Fig. 5, the pooling layer 232 includes one or more pooling channels 312. The pooling channel 312 includes one or more pooling processing units 330. The pooling channel 312 is a channel of the pooling layer 232 .
[0048] Fig. 6 is a diagram showing an example of the correspondence between input data and output data in the pooling channel 312. In the example of Fig. 6, the pooling channel 312 includes a pooling unit 330 corresponding to each element of the spike matrix M22, which is the output data of the pooling channel 312 itself. Therefore, the number of dimensions of the channels in the pooling layer 232 is equal to the number of pooling units 330 per channel in the pooling layer 232.
[0049] Each pooling unit 330 receives spike signals of elements included in a window determined for each pooling unit 330 (i.e., for each element of spike matrix M22) from among the elements of spike matrix M21, which is input data to the pooling channel 312. The spike signals of elements included in the pooling window are also referred to as spike signals included in the pooling window. Each of the pooling units 330 outputs one spike signal in response to the input spike signals.
[0050] As a result, the pooling channel 312 outputs a feature map obtained by downsampling the input feature map. In the case of Figure 6, the spike matrix M21 corresponds to an example of a feature map input to the pooling channel 312. The spike matrix M22 corresponds to an example of a feature map output by the pooling channel 312.
[0051] For example, if a spike signal has a larger value as its firing time becomes earlier, max pooling is performed by the pooling processor 330 firing at the firing time corresponding to the earliest firing time among the firing times of the input spike signals. In this case, pooling can also be considered as min pooling if attention is paid to the firing times.
[0052] In this case, the pooling unit 330 may output the spike signal that first reaches the pooling unit 330 itself as is. In this way, the pooling processor 330 may output a spike signal at a timing corresponding to the timing of receiving any one of the spike signals included in the window, thereby enabling the pooling processor 330 to output a spike signal without the need to calculate the firing time, such as by using a membrane potential.
[0053] This allows pooling layer 232 to output data relatively quickly. In particular, there is no need to set an ignition time period for pooling layer 232. In this respect, it is expected that neural network 200 will be able to perform estimation in a relatively short time.
[0054] However, the pooling method performed by the pooling channel 312 is not limited to the above method. For example, the pooling channel 312 may perform average pooling. When the pooling unit 330 calculates the firing time, the pooling unit 330 may be configured using the neuron 320. In this case, when the neuron 320 receives an input of a spike signal, the membrane potential may be changed according to the pooling method. Then, when the membrane potential reaches a threshold, the neuron 320 may be configured to fire. Alternatively, a step function may be used as the spike signal, which maintains a value of 0 (OFF) before firing and a value of 1 (ON) after firing. Then, minimum pooling, which transmits the earliest fired spike, may be implemented using an OR circuit.
[0055] 7 is a diagram showing an example of the configuration of a fully connected layer included in the neural network 200. In the configuration of FIG. Each neuron 320 in the fully connected layer 233 receives spike signals from all neurons 320 in the previous layer 210 and outputs at most one spike signal. For a fully connected layer, the number of channels is set to 1. Therefore, the dimensionality of the channels in a fully connected layer is equal to the number of neurons 320 in that layer.
[0056] 8 is a diagram showing an example of the configuration of the output layer 240. In the configuration of FIG. 8, the output layer 240 includes one or more activation function calculation units 340. The activation function calculation unit 340 calculates the activation function. The activation function calculation unit 340 may be configured using a neuron 320. In this case, when the neuron 320 receives an input of a spike signal, the membrane potential may change according to the activation function. Then, when the membrane potential reaches a threshold, the neuron 320 may fire. However, the configuration of the activation function calculation unit 340 is not limited to a configuration using a neuron 320. Neural network 200 may not include output layer 240. In this case, the output of the final hidden layer 230 may be used as the output of neural network 200.
[0057] Fig. 9 is a diagram showing an example of the configuration of learning device 100. In the configuration shown in Fig. 9, learning device 100 includes a communication unit 110, a display unit 120, an operation input unit 130, a storage unit 180, and a processing unit 190. Processing unit 190 includes a learning unit 191. The learning device 100 performs learning of the neural network 200. The learning device 100 may be configured using a computer. When the functions of the neural network 200 are executed by simulation using a computer, the learning device 100 and the neural network 200 may be configured using the same computer.
[0058] The communication unit 110 communicates with other devices. For example, the communication unit 110 may receive training data from a device that stores the training data. When the learning device 100 and the neural network 200 are configured as separate devices, the learning device 100 may transmit and receive various data for learning to and from the neural network 200.
[0059] Display unit 120 has a display screen such as a liquid crystal panel or an LED (Light Emitting Diode) panel, and acquires various images. For example, display unit 120 may display various information related to the learning of neural network 200, such as the progress of the learning of neural network 200 and the accuracy rate of the estimation performed by neural network 200.
[0060] The operation input unit 130 includes input devices such as a keyboard and a mouse, and receives user operations. For example, the operation input unit 130 may receive user operations for making various settings related to learning of the neural network 200, such as a user operation for setting a learning rate.
[0061] The storage unit 180 stores various data. For example, the storage unit 180 may store training data. Furthermore, when the function of the neural network 200 is executed by simulation using a computer that constitutes the learning device 100, the storage unit 180 may store a simulation model of the neural network 200. The storage unit 180 is configured using a storage device provided in the learning device 100.
[0062] Processing unit 190 performs various processes by controlling each unit of learning device 100. The functions of processing unit 190 are performed, for example, by a CPU (Central Processing Unit) included in learning device 100 reading and executing a program from storage unit 180.
[0063] The learning unit 191 performs learning of the neural network 200. In particular, the learning unit 191 performs learning of the neural network 200 using an evaluation function that includes a predetermined time and an index related to the neuron 320. The learning unit 191 is an example of a learning means.
[0064] The predetermined time here is also referred to as the reference time. The reference time is set for each layer 210 that is the target of learning among the layers 210 of the neural network 200. If an ignition time period is set for a layer 210, the reference time is set to a time within the range of the ignition time period. Furthermore, the firing time of the neuron 320 may be used as an index related to the neuron 320. For example, an evaluation function may be used that indicates a better evaluation as the difference between the firing time and the reference time becomes smaller. Alternatively, the membrane potential at a reference time may be used as an index related to the neuron 320 .
[0065] The learning unit 191 can learn the neural network 200 using the evaluation function described above, thereby adjusting the firing time of the neuron 320 in relation to the reference time. This is expected to make neuron 320 relatively more likely to fire.
[0066] Here, if the proportion of neurons 320 that do not fire is high among the neurons 320 included in neural network 200, it is conceivable that the amount of transmitted information will be reduced, resulting in a decrease in the estimation accuracy of neural network 200. In contrast, as described above, if the probability that neurons 320 will fire becomes relatively high, it is expected that the estimation accuracy of neural network 200 will improve.
[0067] In the following, an example will be described in which the learning unit 191 learns the neural network 200 by learning the convolutional layer 231 and the fully connected layer 233. Here, it is assumed that the input layer 220, the pooling layer 232, and the output layer 240 are excluded from the learning targets. However, the pattern of the layer 210 that the learning unit 191 learns is not limited to this. For example, some layers of the convolutional layer 231 may be excluded from the learning target. Also, parameters of the output layer 240 may be included in the learning target.
[0068] In the following, an example will be described in which the learning unit 191 uses a loss function (cost function) as an evaluation function to learn the neural network 200. The loss function here is a function in which the smaller the function value, the better the evaluation. However, the learning unit 191 may also use a function in which the larger the function value, the better the evaluation. In the following, an example in which the neural network 200 performs class classification will be described.
[0069] (When using firing time as an index) When the firing time is used as an index for the neuron 320, the learning unit 191 uses, for example, the loss function C FT The neural network 200 is trained using the above.
[0070]
number
[0071] Σ i=1 N(L) κ i lnS i is a term for improving the accuracy of estimation by neural network 200. The term for improving the accuracy of estimation by neural network 200 is also referred to as an estimation loss term. L indicates the number of layers 210 of the neural network 200 that are the target of learning.
[0072] N (L) indicates the number of dimensions per channel of the L-th layer. Here, the L-th layer is the fully connected layer 233, and the number of channels in the L-th layer is one. The L-th layer is also used as the output layer 240, and the output of the neuron 320 in the L-th layer is also used as the output of the neural network 200.
[0073] Therefore, N (L)Let σ denote the number of dimensions of the channels of the neural network 200. The Lth layer has neurons 320 equal to the number of classes. The neural network 200 indicates the result of class classification based on which of the neurons 320 in the Lth layer fires the earliest. The neurons in a certain layer are also referred to as the neurons of that layer.
[0074] Here, i represents an identification number that identifies a class. κ i For example, when the neural network 200 performs class classification, κ is used to classify the correct class. i = 1, and for other classes, κ i =0.
[0075] ln indicates the natural logarithm. S i is the softmax function used for the i-th class, and is expressed as equation (4).
[0076]
number
[0077] exp represents the power of Napier's constant e. Here, j, like i, represents an identification number that identifies a class. t (L) j indicates the firing time of the j-th spike signal that may be output from the L-th layer. (L) j is also referred to as the firing time of the spike signal of the jth class.
[0078] τ soft is the softmax function S when the firing time of spike signals for each class changes. i is a constant provided as a scale factor to adjust the degree of change in the value of τ soft >0.
[0079] If the i-th class is correct, the spike signal of the i-th class fires earlier than the spike signals of other classes, and the spike signal of the i-th class fires at time t (L) i takes a value smaller than the firing time of spike signals of other classes. Therefore, the subexpression -t (L) i takes a larger value than that of other classes, and the softmax function S i The value of is also larger than that of other classes.
[0080] However, the estimated loss term used by the learning unit 191 is not limited to a specific one. For example, the learning unit 191 may use a loss function in which a function other than a softmax function is used for the estimated loss term.
[0081] Both γ1 and γ2 are coefficients for adjusting the degree of influence of each term, where γ1≧0 and γ2≧0. The subformula T is a subformula that indicates the penalty for the output layer (here, the Lth layer), and is expressed as formula (5).
[0082]
number
[0083] The firing time t of a spike signal that may be output from the Lth layer (L) i is the reference time t (L) ref The closer to, the smaller the value of the subexpression T, and the smaller the loss function C FT The value of also becomes smaller. subexpression Q FT is a sub-formula indicating the penalty for the hidden layer 230 (hence, from the 1st layer to the L-1th layer) to be learned other than the Lth layer, and is expressed as equation (6).
[0084]
number
[0085] subexpression Q (l) FT is a subexpression that indicates the penalty for the lth layer, where l is an integer between 1 and L-1. If the l-th layer is a fully connected layer 233, then the subformula Q (l) FT is expressed as equation (7).
[0086]
number
[0087] N (l) indicates the number of dimensions per channel of the l-th layer. As mentioned above, the number of channels in the fully connected layer 233 is one, and in equation (7), N (l) indicates the number of neurons 320 in the lth layer. θ represents a step function. If the argument of the step function θ is represented by x, then θ(x) = 0 when x < 0, and θ(x) = 1 when x ≥ 0.
[0088] In equation (7), the firing time t of the i-th neuron 320 in the l-th layer (l) i is the reference time t (l) ref If it is smaller than (faster than), the penalty value (t (l) i- t (l) ref ) 2 θ(t (l) i- t (l) ref ) becomes 0. Firing time t (l) i is the reference time t (l) ref Even if the penalty value (t (l) i- t (l) ref ) 2 θ(t (l) i- t (l)ref ) becomes 0. On the other hand, the firing time t of the i-th neuron 320 in the l-th layer (l) i is the reference time t (l) ref (slow), the penalty value for that neuron 320 is (t (l) i- t (l) ref ) 2 becomes.
[0089] Thus, the firing time t (l) i is the reference time t (l) ref If the penalty value for the neuron 320 is greater than 0, the neuron 320 will fire at time t (l) i From the reference time t (l) ref The difference t minus (l) i- t (l) ref The larger the value of , the larger the penalty value. This is expected to make it less likely that the firing time of the neuron 320 in the lth layer will be later than the reference time. Also, if the firing time of the neuron 320 in the lth layer is later than the reference time, it is expected that the firing time will be closer to the reference time. This is expected to make the neuron 320 in the lth layer more likely to fire.
[0090] Regarding the convolution layer 231, it was found that if the penalty values for all neurons 320 were simply added together using equation (7), the effect of the penalty would be too large due to the nature of weight sharing. Therefore, when the l-th layer is the convolution layer 231, the subformula Q shown in equation (8) (l) FT is used.
[0091]
number
[0092] C (l) indicates the number of channels in the lth layer. c indicates an identification number for identifying a channel in the lth layer. c is in the range of 1≦c≦C. (l) It takes an integer value.
[0093] In equation (8), the penalty sub-formula (t (l) c,i- t (l) ref ) 2 θ(t (l) c,i- t (l) ref ) is the sub-formula (t (l) i- t (l) ref ) 2 θ(t (l) i- t (l) ref ) to the notation t (l) i The notation t, which explicitly indicates the channel identification number c, (l) c,i In this way, the sub-formula for the penalty for each neuron 320 in equation (8) is the same as in equation (7). Furthermore, in equation (8), the penalty values for all neurons 320 in the l-th layer are summed up, which is the same as in equation (7).
[0094] On the other hand, in equation (8), the total value of the penalty values for all neurons 320 in the lth layer is calculated as the number of dimensions per channel N (l) This differs from equation (7) in that it is divided by N (l) can also be considered as the number of neurons 320 per channel in the lth layer.
[0095] This difference is to address the above-mentioned problem of the effect of penalties on the convolutional layer 231 becoming too large. In this way, by adjusting the magnitude of the penalty value for the convolution layer 231, the loss function CFT It is expected that the effect of penalties due to other subexpressions included in
[0049] will be more easily obtained. Specifically, it is expected that the effect of penalties not only on the convolutional layer 231 but also on the fully connected layer 233 and the effect of the estimated loss term will be more easily obtained.
[0096] By making it easier to obtain the effect of the penalty on the convolutional layer 231, it is expected that the neuron 320 in the convolutional layer 231 will be more likely to fire due to the influence of the evaluation criterion that the firing time of the neuron in the convolutional layer 231 be before (earlier than) the reference time. By making it easier to obtain the effect of the penalty on the fully connected layer 233, it is expected that the possibility of the neuron 320 in the fully connected layer 233 firing will become relatively higher due to the influence of the evaluation criterion that the firing time of the neuron in the fully connected layer 233 will be before the reference time.
[0097] The relatively high probability of firing neurons 320 in convolutional layer 231 and neurons 320 in fully connected layer 233 facilitates information transmission between layers 210, and is expected to enable neural network 200 to perform estimations with relatively high accuracy. Furthermore, since it becomes easier to obtain the effect of the estimated loss term, it is expected that the neural network 200 will be able to perform estimation with a relatively high degree of accuracy.
[0098] Reference time t (l) ref For example, the equation shown in equation (9) is used.
[0099]
number
[0100] Here, the number of layers 210 being the target of learning is shown. Here, l represents an identification number for identifying the layer 210 that is the target of learning. l takes an integer value in the range 1≦l≦L. t firstindicates the reference time set for the first layer 210 among the layers 210 that are the object of learning (that is, the first layer among the layers 210 that are the object of learning). t end indicates the reference time set for the last layer 210 among the layers 210 being the target of learning (that is, the Lth layer among the layers 210 being the target of learning). t first and t end is set in advance (before the neural network 200 starts to execute processing) based on the characteristics of the hardware when the neural network 200 is implemented in hardware, for example.
[0101] According to equation (9), t first From t end The time obtained by equally dividing the time period from the time of the first stanza to the time of the second stanza is calculated as the reference time in the layer 210 being learned. For example, when L=8, the reference times in each layer 210 are as follows:
[0102] t (1) ref =(7·t first +0·t end ) / 7=t first t (2) ref =(6·t first +1·t end ) / 7 t (3) ref =(5 t first +2·t end ) / 7 ... t (8) ref =(0 t first +7·t end ) / 7=t end
[0103] In this way, by allocating the reference times at equal time intervals, it is possible to handle cases where spike signals are transmitted at approximately the same time between the layers 210 being trained. As a result, when spike signals are transmitted at approximately the same time between the layers 210 being trained, the possibility of spike firing becomes relatively high, and it is expected that the neural network 200 will be able to perform estimation with relatively high accuracy.
[0104] For example, consider a case where the firing time period of each layer 210 being learned is set by dividing the time period defined as the firing time period for all of these layers into equal time intervals. In this case, by setting the reference time for each layer 210 based on equation (9), it is possible to set the reference time within the firing time period of each layer 210.
[0105] Note that there is a neuron 320 that has not fired, and the learning unit 191 does not FT If the value of cannot be calculated, the learning unit 191 sets the firing time of the non-firing neuron 320 as a sufficiently late time and calculates the evaluation function C FT For example, if there is a neuron 320 that has not fired within the firing time period, the learning unit 191 may calculate the value of the evaluation function C by setting the firing time of the neuron 320 to the end time of the firing time period or a time later than that. FT The value of may be calculated. As a result, even if there is a neuron 320 that is not firing, the learning unit 191 can FT The neural network 200 can be trained by calculating the value of
[0106] (When membrane potential is used as an indicator) When the membrane potential at the reference time is used as an index for the neuron 320, the learning unit 191 uses, for example, the loss function C MP The neural network 200 is trained using the above.
[0107]
number
[0108] Loss estimation term Σ i=1 N(L) κ i lnS i is the same as in equation (3). As in the case of equation (3), γ2 is a coefficient for adjusting the degree of influence of each term, and γ2≧0. subexpression Q MP is a sub-expression indicating the penalty for the hidden layer 230 (hence, from the 1st layer to the L-1th layer) that is the target of learning other than the Lth layer, and is expressed as equation (11). Experimental results have shown that the estimation accuracy of the neural network 200 is higher when a sub-equation indicating a penalty is not provided for the Lth layer. Therefore, equation (11) shows an example of a loss function when a sub-equation indicating a penalty is not provided for the Lth layer.
[0109]
number
[0110] subexpression Q (l) MP is a subexpression that indicates the penalty for the lth layer, where l is an integer between 1 and L-1. If the l-th layer is a fully connected layer 233, then the subformula Q (l) MP is expressed as equation (12).
[0111]
number
[0112] B indicates the batch size. b indicates the identification number that identifies the batch. b takes an integer value in the range 1≦b≦B. In an experiment using the membrane potential at a reference time as an index, it was found that mini-batch learning resulted in higher accuracy of estimation by the neural network 200 than online learning. Therefore, equation (12) shows an example of a sub-equation for mini-batch learning.
[0113] v (l) b,i (t (l) ref ) is the time t of the i-th neuron 320 in the l-th layer at the b-th data in the mini-batch. (l) ref The membrane potential at In addition, in equation (12), the membrane potential threshold (firing threshold) at which neuron 320 fires is set to 1. In accordance with mini-batch learning, in equation (12), the membrane potential v is calculated for all neurons 320 in the lth layer and for all mini-batches. (l) b,i (t (l) ref ) and calculate the squared error with the threshold. In this way, by adopting a combination of mini-batch learning and averaging the membrane potential, the accuracy of estimation by the neural network 200 is relatively high. Therefore, equation (12) shows an example of a sub-equation when mini-batch learning is performed and the membrane potential is averaged. In the calculation of equation (12), it is assumed that the membrane potential is not reset even when the neuron 320 fires.
[0114] In equation (12), the membrane potential v at the reference time (l) b,i (t (l) ref The closer the average value of ) is to the threshold, the smaller the penalty value. This is expected to make it easier for the firing time of the layer l neuron 320 to approach the reference time, which is expected to make the layer l neuron 320 more likely to fire.
[0115] For the convolutional layer 231, the average value of the penalty value per channel may be calculated. For example, when the l-th layer is the convolutional layer 231, the learning unit 191 calculates the sub-formula Q (l) MP may be used.
[0116]
number
[0117] v (l) b,i (t (l) ref ) is the reference time t (l) ref The membrane potential at In equation (13), the penalty subexpression for one channel is (1-1 / (N (l) ·B)Σ b=1 B Σ i=1 N (l) v (l) b,c,i (t (l) ref )) 2 This subexpression is the subexpression (1-1 / (N (l) ·B)Σ b=1 B Σ i=1 N (l) v (l) b,i (t (l) ref )) 2 From the above, the membrane potential at the reference time is expressed as v (l) b,i (t (l) ref ) is expressed as v, which clearly indicates the channel identification number c. (l) b,c,i (t (l) ref ) has been replaced with Thus, the sub-formula for the penalty for one channel in equation (13) is the same as in equation (12).
[0118] On the other hand, equation (13) differs from equation (12) in that it sums up the penalty values for one channel for all channels in the lth layer. Furthermore, equation (13) calculates the sum of the penalty values for one channel for all channels in the lth layer by multiplying it by the number of dimensions per channel, N (l) This differs from the case of equation (12) in that it is divided by
[0119] The penalty value for one channel is summed up for all channels in the lth layer and is expressed as the number of dimensions per channel, N (l) The division by is intended to address the above-mentioned problem of the effect of the penalty on the convolutional layer 231 becoming too large. In this way, by adjusting the magnitude of the penalty value for the convolution layer 231, the loss function C MP It is expected that the effect of penalties due to other subexpressions included in
[0049] will be more easily obtained. Specifically, it is expected that the effect of penalties not only on the convolutional layer 231 but also on the fully connected layer 233 and the effect of the estimated loss term will be more easily obtained.
[0120] By making it easier to obtain the effect of the penalty on the convolutional layer 231, it is expected that the average firing time of the neurons in the convolutional layer 231 will be more likely to approach the reference time, and that the possibility of the neurons 320 in the convolutional layer 231 firing will be relatively higher. By making it easier to obtain the effect of the penalty on the fully connected layer 233, it is expected that the average firing time of the neurons in the fully connected layer 233 will be more likely to approach the reference time, and that the possibility of the neurons 320 in the fully connected layer 233 firing will be relatively high.
[0121] The relatively high probability of firing neurons 320 in convolutional layer 231 and neurons 320 in fully connected layer 233 facilitates information transmission between layers 210, and is expected to enable neural network 200 to perform estimations with relatively high accuracy. Furthermore, since it becomes easier to obtain the effect of the estimated loss term, it is expected that the neural network 200 will be able to perform estimation with a relatively high degree of accuracy.
[0122] (About the experiment) Learning experiments were conducted using the learning system 1 in both cases where the firing time was used as an index and where the membrane potential at the reference time was used.
[0123] Fig. 10 is a diagram showing a first example of the configuration of neural network 200 used in the experiment. Fig. 10 shows hidden layer 230 included in neural network 200 used in the experiment when firing times are used as indices.
[0124] In Figure 10, the convolutional layer 231 is indicated by "Conv," the pooling layer 232 is indicated by "P," and the fully connected layer 233 is indicated by "Fully." The number in parentheses after "Conv" indicates the number of channels in that layer. The number in parentheses after "Fully" indicates the number of neurons 320 in that layer.
[0125] In the configuration shown in FIG. 10, neural network 200 includes, in this order, a 32-channel convolutional layer 231, a pooling layer 232, a 64-channel convolutional layer 231, a pooling layer 232, a 128-channel convolutional layer 231, a 128-channel convolutional layer 231, a pooling layer 232, a 256-channel convolutional layer 231, a 256-channel convolutional layer 231, a fully connected layer 233 of 1000 neurons, and a fully connected layer 233 of 10 neurons.
[0126] The kernel size of the convolutional layer 231 was set to 3 × 3, the stride was set to 1, and the padding was set to 1. The kernel size of the pooling layer 232 was set to 2 × 2, the stride was set to 2, and the padding was set to 0. In addition, the pooling layer 232 performed max pooling by outputting the spike signal that first reached the window, as described above. In addition, the convolution layer 231 and the fully connected layer 233 are used as the learning targets, and the loss function C FT was used.
[0127] The learning rate is 7×10 -4 Then, γ1=0.8 in equation (3) and τ in equation (4) soft =0.07, t in Eq. (9) first =2, t end = 3. When γ2 = 0 in equation (3), γ2 = 1.9 × 10 -3 For each case, training was performed for 300 epochs. CIFAR-10 was used as training data and classification into 10 classes was performed.
[0128] Fig. 11 is a diagram showing a first example of the firing state of neuron 320 in neural network 200. Fig. 11 uses firing time as an index and graphically shows the firing state of neuron 320 in convolutional layer 231 when γ2 = 0. Here, setting γ2=0 means that γ2Q in equation (3) FT This can be understood as not performing learning to make neurons 320 in the hidden layer 230 more likely to fire, based on the term
[0129] 11 shows a graph of the firing status of neurons 320 for each layer and each channel of neural network 200. Each row corresponds to one convolutional layer 231, and each column corresponds to one channel.
[0130] The horizontal axis of the layer-by-channel graph corresponds to time, and the vertical axis corresponds to the identification number of the neuron 320 . The brighter the graph (the more whitish), the greater the proportion of epochs in which neuron 320 fired out of 300 epochs. The darker the graph (the darker), the smaller the proportion of epochs in which neuron 320 fired out of 300 epochs. A completely black graph indicates that neuron 320 did not fire in that channel of that layer. Furthermore, when firing time was used as an index and γ2=0, the test data recognition rate of the neural network 200 was 70.86%.
[0131] 12 is a diagram showing a second example of the firing state of a neuron 320 in the neural network 200. FIG. 12 shows a second example of the firing state of a neuron 320 in the neural network 200. Using the firing time as an index, -3 The graph shows the firing state of neuron 320 in convolutional layer 231 when As in Figure 11, Figure 12 also graphically illustrates the firing status of neurons 320 by layer and by channel of neural network 200. Each row corresponds to one convolutional layer 231, and each column corresponds to one channel.
[0132] The horizontal axis of the layer-by-channel graph corresponds to time, and the vertical axis corresponds to the identification number of the neuron 320 . The brighter the graph (the more whitish), the greater the proportion of epochs in which neuron 320 fired out of 300 epochs. The darker the graph (the more blackish), the smaller the proportion of epochs in which neuron 320 fired out of 300 epochs. In addition, using the firing time as an index, γ2 = 1.9 × 10 -3 In this case, the test data recognition rate of the neural network 200 was 83.74%.
[0133] Comparing Figure 11 and Figure 12, the graph in Figure 12 is brighter, which can be interpreted as indicating a higher probability of neuron 320 firing. In Figure 12, the higher probability of neuron 320 firing compared to Figure 11 makes it easier for information to be transmitted to the next layer, which can be considered to result in an improvement in the test data recognition rate.
[0134] Fig. 13 is a diagram showing a second example of the configuration of neural network 200 used in the experiment. Fig. 13 shows hidden layer 230 included in neural network 200 used in the experiment when membrane potential at a reference time is used as an index.
[0135] As in Figure 10, in Figure 13, convolutional layers 231 are denoted by "Conv," pooling layers 232 are denoted by "P," and fully connected layers 233 are denoted by "Fully." The number in parentheses after "Conv" indicates the number of channels in that layer. The number in parentheses after "Fully" indicates the number of neurons 320 in that layer.
[0136] In the configuration shown in FIG. 13, neural network 200 includes, in this order, a 24-channel convolutional layer 231, a pooling layer 232, a 48-channel convolutional layer 231, a pooling layer 232, a 96-channel convolutional layer 231, a fully connected layer 233 of 600 neurons, and a fully connected layer 233 of 10 neurons.
[0137] The kernel size of the convolutional layer 231 was set to 3 × 3, the stride was set to 1, and the padding was set to 1. The kernel size of the pooling layer 232 was set to 2 × 2, the stride was set to 2, and the padding was set to 0. In addition, the pooling layer 232 performed max pooling by outputting the spike signal that first reached the window, as described above. In addition, the convolution layer 231 and the fully connected layer 233 are used as the learning targets, and the loss function C MP was used.
[0138] The learning rate is 1×10 -4 Then, τ in Eq. (4) soft = 1, t in Eq. (9) first =17, t end = 25. Learning was performed for 300 epochs for each of the cases of γ2 = 0 and γ2 = 1.0 in equation (10). CIFAR-10 was used as training data and classification into 10 classes was performed.
[0139] 14 is a diagram showing a third example of the firing state of neuron 320 in neural network 200. Fig. 14 shows a graph of the firing state of neuron 320 in convolutional layer 231 when γ2 = 0, using the membrane potential at a reference time as an index. Here, setting γ2=0 means that γ2Q in equation (10) FT This can be understood as not performing learning to make neurons 320 in the hidden layer 230 more likely to fire, based on the term
[0140] 14 is a graph showing the firing status of neurons 320 for each layer and each channel of neural network 200. Each row corresponds to one convolutional layer 231, and each column corresponds to one channel.
[0141] The horizontal axis of the layer-by-channel graph corresponds to time, and the vertical axis corresponds to the identification number of the neuron 320 . The brighter the graph (the more whitish), the greater the proportion of epochs in which neuron 320 fired out of 300 epochs. The darker the graph (the darker), the smaller the proportion of epochs in which neuron 320 fired out of 300 epochs. A completely black graph indicates that neuron 320 did not fire in that channel of that layer. Furthermore, when the membrane potential at the reference time was used as an index and γ2=0, the test data recognition rate by the neural network 200 was 70.10%.
[0142] 15 is a diagram showing a fourth example of the firing state of neuron 320 in neural network 200. Fig. 15 graphically shows the firing state of neuron 320 in convolutional layer 231 when γ2 = 1.0, using the membrane potential at the reference time as an index. As in Figure 14, Figure 15 also graphically illustrates the firing status of neurons 320 by layer and by channel of neural network 200. Each row corresponds to one convolutional layer 231, and each column corresponds to one channel.
[0143] The horizontal axis of the layer-by-channel graph corresponds to time, and the vertical axis corresponds to the identification number of the neuron 320 . The brighter the graph (the more whitish), the greater the proportion of epochs in which neuron 320 fired out of 300 epochs. The darker the graph (the more blackish), the smaller the proportion of epochs in which neuron 320 fired out of 300 epochs. Furthermore, when the membrane potential at the reference time was used as an index and γ2=1.0, the test data recognition rate by the neural network 200 was 84.18%.
[0144] Comparing Figure 14 and Figure 15, the graph in Figure 15 is brighter, which can be interpreted as indicating a higher probability of neuron 320 firing. In Figure 15, the probability of neuron 320 firing is higher than in Figure 14, which makes it easier for information to be transmitted to the next layer, and this can be considered to result in an improvement in the test data recognition rate.
[0145] As described above, the learning unit 191 performs learning on the neural network 200 using an evaluation function including a predetermined reference time given to each layer 210 of the neural network 200 and an index related to the neuron 320. The neural network 200 is a time-based spiking neural network.
[0146] According to the learning device 100, the neural network 200 can be trained so as to adjust the firing time of the neuron 320 in relation to the reference time, which is expected to relatively increase the possibility that the neuron 320 will fire. The relatively high possibility that the neuron 320 will fire makes it easier for information to be transmitted to the next layer, and is expected to improve the accuracy of estimation by the neural network 200.
[0147] The index for the neuron 320 is the firing time of the neuron 320 . Learning device 100 uses an index based on the firing times used by neural network 200 to make estimations and a predetermined reference time, eliminating the need to prepare separate indexes for training neural network 200. In this respect, learning device 100 imposes a relatively small burden on training neural network 200. Furthermore, learning device 100 is expected to be able to adjust firing times with a relatively high degree of accuracy, since it uses an index that uses firing times, which are the target of adjustment in learning.
[0148] Furthermore, the learning unit 191 performs learning of the neural network 200 using an evaluation function including a subexpression that indicates a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time. Learning device 100 can perform learning so that the firing time is more likely to be earlier than the reference time. In this respect, learning device 100 is expected to increase the likelihood that neuron 320 will fire, thereby improving the accuracy of estimation by neural network 200.
[0149] Furthermore, one or more hidden layers 230 are convolutional layers 231. The convolutional layers 231 are convolutional layers that use spiking neurons. The learning unit 191 performs learning of the neural network 200 using an evaluation function that includes a subexpression that sums up, for all neurons in the layer, subexpressions that show a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, and then divides the sum by the number of neurons per channel in the layer. The subexpression Q shown in equation (8) (l) FT is an example of a subexpression that sums up the subexpressions that perform better when the firing time is earlier than the reference time than when the firing time is later than the reference time for all neurons in that layer, and then divides by the number of neurons per channel in that layer.
[0150] The learning device 100 can address the finding that simply adding up the penalty values for all neurons 320 results in the effect of the penalty becoming too large due to the nature of weight sharing, and it is expected that the accuracy of estimation by the neural network 200 will be relatively high.
[0151] Furthermore, the learning unit 191 performs learning of the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, and that indicates a better evaluation when the firing time is closer to the reference time when the firing time is later than the reference time.
[0152] According to learning device 100, even if the firing time is later than the reference time, it is expected that the firing time will approach the reference time, thereby increasing the possibility that neuron 320 will fire. As a result, it is expected that learning device 100 will improve the accuracy of estimation by neural network 200.
[0153] The index for the neuron 320 is the membrane potential of the neuron 320 at the reference time. Learning device 100 uses the membrane potential used to fire neuron 320 as an index, eliminating the need to prepare a separate index. In this respect, learning device 100 imposes a relatively small burden on learning neural network 200. Furthermore, learning device 100 uses an index other than the firing time, so it is possible to calculate the value of the evaluation function even when there is a neuron 320 that does not fire, and it is expected that learning of neural network 200 will be possible.
[0154] Furthermore, the learning unit 191 performs learning of the neural network 200 by mini-batch learning. The learning device 100 can train the neural network 200 in accordance with the experimental results that mini-batch learning improves the accuracy of estimation by the neural network 200. In this respect, the learning device 100 is expected to make the accuracy of estimation by the neural network 200 relatively high.
[0155] Furthermore, a firing time period is set for each layer 210 of neural network 200. The firing time period is a time period during which the firing time of neuron 320 is transmitted to the next layer 210. The reference time is set for each layer 210 of neural network 200 as a time within the firing time period of that layer 210. Learning unit 191 performs learning of neural network 200 by setting the firing time of a neuron that did not fire within its firing time period as the end time of that firing time period or a predetermined time later. This allows the learning unit 191 to calculate the value of the evaluation function and perform learning of the neural network 200 even if there is a neuron 320 that is not firing.
[0156] Furthermore, for the layers 210 of the neural network 200 that are the subject of learning, a reference time is set for each layer 210, which is equal to the time from the reference time determined for the first layer 210 in the order of transmission of spike signals to the reference time determined for the last layer 210 in that order. According to the learning device 100, by allocating the reference times at equal time intervals, it is possible to handle the case where spike signals are transmitted at approximately the same time between the layers 210 being learned. In particular, according to the learning device 100, when spike signals are transmitted at approximately the same time between the layers 210 being learned, the possibility of spike firing becomes relatively high, and it is expected that the neural network 200 will be able to perform estimation with relatively high accuracy.
[0157] Furthermore, one or more hidden layers 230 are pooling layers 232 that output spike signals according to the timing when any of the spike signals included in the window to be pooled first reaches the hidden layer. The learning unit 191 performs learning of the neural network 200, excluding the pooling layer 232 of the hidden layers 230 from the learning target.
[0158] According to the learning device 100, the pooling layer 232 can output spike signals without the need to calculate firing times, such as by using membrane potentials. This allows the pooling layer 232 to output data relatively quickly. In particular, the pooling layer 232 does not need to have a firing time period. In this respect, it is expected that the neural network 200 will be able to perform estimation in a relatively short time.
[0159] Second Embodiment 16 is a diagram illustrating an example of the configuration of a learning device according to at least one embodiment. A learning device 610 in the configuration illustrated in FIG.
[0160] With this configuration, the learning unit 611 performs learning of the spiking neural network using an evaluation function including a predetermined reference time given to each layer of the time-based spiking neural network and an index related to neurons. The learning unit 611 is an example of a learning means.
[0161] The learning device 610 can train a neural network so as to adjust the firing time of a neuron relative to a reference time, which is expected to relatively increase the probability of the neuron firing. This relatively high probability of the neuron firing makes it easier for information to be transmitted to the next layer, which is expected to improve the accuracy of estimation by the spiking neural network.
[0162] Third Embodiment FIG. 17 illustrates an example of a spiking neural network according to at least one embodiment. The spiking neural network 620 shown in FIG. 17 is a time-based spiking neural network that has been trained using an evaluation function that includes a predetermined reference time and neuron-related indices that are given to each layer of the time-based spiking neural network.
[0163] The spiking neural network 620 has been trained to adjust the firing times of neurons relative to a reference time, and is expected to have a relatively high probability of firing neurons. This relatively high probability of firing neurons makes it easier for information to be transmitted to the next layer, and it is expected that the accuracy of estimations by the spiking neural network 620 will be relatively high.
[0164] <Fourth embodiment> 18 is a diagram illustrating an example of the configuration of a learning system according to at least one embodiment. In the configuration illustrated in FIG. 18, learning system 630 includes learning device 631 and spiking neural network 633. Learning device 631 includes learning unit 632.
[0165] With this configuration, spiking neural network 633 is a time-based spiking neural network. Learning unit 632 trains spiking neural network 633 using an evaluation function that includes a predetermined reference time and an index related to neurons, which are given to each layer of spiking neural network 633. The learning unit 632 is an example of a learning means.
[0166] The learning system 630 can train the neural network so that the firing time of the neuron is adjusted relative to the reference time, which is expected to increase the probability of the neuron firing. The relatively high probability of the neuron firing makes it easier for information to be transmitted to the next layer, which is expected to improve the accuracy of estimation by the spiking neural network 633.
[0167] Fifth Embodiment 19 is a diagram showing an example of a processing procedure in a learning method according to at least one embodiment. The learning method shown in FIG. 19 includes performing learning (step S611). In the learning process (step S611), the computer learns the spiking neural network using an evaluation function including a predetermined reference time and an index related to neurons, which are given to each layer of the time-based spiking neural network.
[0168] 19, neural networks can be trained to adjust the firing times of neurons relative to a reference time, which is expected to increase the likelihood of neuron firing. This relatively high probability of neuron firing makes it easier for information to be transmitted to the next layer, and is expected to improve the accuracy of estimation by spiking neural networks.
[0169] FIG. 20 is a diagram illustrating a computer configuration according to at least one embodiment. In the configuration shown in FIG. 20, a computer 700 includes a CPU 710, a main memory device 720, an auxiliary memory device 730, an interface 740, and a non-volatile recording medium 750.
[0170] One or more of the learning device 100, neural network 200, learning device 610, spiking neural network 620, learning device 631, and spiking neural network 633, or a portion thereof, may be implemented in a computer 700. In this case, the operation of each of the above-described processing units 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, loads it into the main storage device 720, and executes the above-described processing in accordance with the program. The CPU 710 also allocates storage areas in the main storage device 720 corresponding to each of the above-described storage units in accordance with the program. Communication between each device and other devices is performed by an interface 740 having a communication function and performing communication under the control of the CPU 710. The interface 740 also has a port for a nonvolatile storage medium 750, and reads and writes information from and to the nonvolatile storage medium 750.
[0171] When learning device 100 is implemented in computer 700, the operations of processing unit 190 and each of its components are stored in the form of a program in auxiliary storage device 730. CPU 710 reads the program from auxiliary storage device 730, loads it into main storage device 720, and executes the above-described processing in accordance with the program.
[0172] Furthermore, the CPU 710 allocates a storage area for the storage unit 180 in the main storage device 720 in accordance with the program. Communication with other devices by the communication unit 110 is performed by the interface 740 having a communication function and operating under the control of the CPU 710. Display of images by the display unit 120 is performed by the interface 740 having a display device and displaying various images under the control of the CPU 710. Reception of user operations by the operation input unit 130 is performed by the interface 740 having an input device and receiving the user operations under the control of the CPU 710.
[0173] When neural network 200 is implemented in computer 700, the operation of each unit is stored in the form of a program in auxiliary storage device 730. CPU 710 reads the program from auxiliary storage device 730, loads it into main storage device 720, and executes the above-described processing in accordance with the program.
[0174] Furthermore, CPU 710 allocates a storage area in main memory 720 for neural network 200 to perform processing in accordance with the program. Communication between neural network 200 and other devices is performed by interface 740, which has a communication function and operates under the control of CPU 710. Interaction between neural network 200 and a user is performed by interface 740, which has an input device and an output device, presenting information to the user via the output device under the control of CPU 710 and accepting user operations via the input device.
[0175] When the learning device 610 is implemented in the computer 700, the operation of the learning unit 611 is stored in the form of a program in the auxiliary storage device 730. The CPU 710 reads the program from the auxiliary storage device 730, loads it into the main storage device 720, and executes the above-described processing in accordance with the program.
[0176] Furthermore, CPU 710 allocates a storage area in main memory 720 for the learning device 610 to perform processing in accordance with the program. Communication between learning device 610 and other devices is performed by interface 740, which has a communication function and operates under the control of CPU 710. Interaction between learning device 610 and a user is performed by interface 740, which has an input device and an output device, presenting information to the user via the output device under the control of CPU 710 and accepting user operations via the input device.
[0177] When spiking neural network 620 is implemented in computer 700, the operation of each unit is stored in the form of a program in auxiliary storage device 730. CPU 710 reads the program from auxiliary storage device 730, loads it into main storage device 720, and executes the above-mentioned processing in accordance with the program.
[0178] Furthermore, CPU 710, in accordance with a program, allocates a memory area in main memory 720 for spiking neural network 620 to perform processing. Communication between spiking neural network 620 and other devices is achieved by interface 740, which has a communication function and operates under the control of CPU 710. Interaction between spiking neural network 620 and a user is achieved by interface 740 having an input device and an output device, which presents information to the user via the output device under the control of CPU 710 and accepts user operations via the input device.
[0179] When the learning device 631 is implemented in the computer 700, the operation of the learning unit 632 is stored in the form of a program in the auxiliary storage device 730. The CPU 710 reads the program from the auxiliary storage device 730, loads it into the main storage device 720, and executes the above-described processing in accordance with the program.
[0180] Furthermore, the CPU 710 allocates a storage area in the main memory device 720 for the learning device 631 to perform processing in accordance with the program. Communication between the learning device 631 and other devices is performed by the interface 740, which has a communication function and operates under the control of the CPU 710. Interaction between the learning device 631 and a user is performed by the interface 740, which has an input device and an output device, presenting information to the user via the output device under the control of the CPU 710 and accepting user operations via the input device.
[0181] When the spiking neural network 633 is implemented in the computer 700, the operation of each unit is stored in the form of a program in the auxiliary storage device 730. The CPU 710 reads the program from the auxiliary storage device 730, loads it into the main storage device 720, and executes the above-mentioned processing in accordance with the program.
[0182] Furthermore, the CPU 710, in accordance with a program, allocates a memory area in the main memory device 720 for the spiking neural network 633 to perform processing. Communication between the spiking neural network 633 and other devices is achieved by the interface 740, which has a communication function and operates under the control of the CPU 710. Interaction between the spiking neural network 633 and a user is achieved by the interface 740 having an input device and an output device, which presents information to the user via the output device under the control of the CPU 710 and accepts user operations via the input device.
[0183] One or more of the above-described programs may be recorded on nonvolatile recording medium 750. In this case, interface 740 may read the programs from nonvolatile recording medium 750. CPU 710 may then directly execute the programs read by interface 740, or may temporarily store the programs in main storage device 720 or auxiliary storage device 730 and then execute them.
[0184] Note that a program for executing all or part of the processing performed by learning device 100, neural network 200, learning device 610, spiking neural network 620, learning device 631, and spiking neural network 633 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 processing of each part. Note that the term "computer system" here includes an OS (Operating System) and hardware such as peripheral devices. Furthermore, "computer-readable recording media" refers to portable media such as flexible disks, optical magnetic disks, ROMs (Read Only Memory), and CD-ROMs (Compact Disc Read Only Memory), as well as storage devices such as hard disks built into computer systems. The program may be one that realizes part of the aforementioned functions, or may be one that can realize the aforementioned functions in combination with a program already stored in the computer system.
[0185] Although the embodiments of the present invention have been described above in detail with reference to the drawings, the specific configuration is not limited to these embodiments and includes designs within the scope of the present invention. Furthermore, the above-described embodiments may be combined with other embodiments as appropriate.
[0186] Some or all of the above embodiments can be described as, but are not limited to, the following supplementary notes.
[0187] (Appendix 1) A learning means for learning the spiking neural network using an evaluation function including a predetermined reference time and an index related to neurons given to each layer of the time-based spiking neural network. A learning device comprising:
[0188] (Appendix 2) The index is the firing time of the neuron. 2. The learning device of claim 1.
[0189] (Appendix 3) the learning means performs learning of the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time. 3. The learning device according to claim 2.
[0190] (Appendix 4) One or more hidden layers of the spiking neural network are convolutional layers using spiking neurons; the learning means learns the spiking neural network using an evaluation function including a subexpression that sums up, for all neurons in the layer, subexpressions that give a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, and then divides the sum by the number of neurons per channel in the layer. 4. The learning device according to claim 3.
[0191] (Appendix 5) the learning means performs learning of the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, and that indicates a better evaluation when the firing time is closer to the reference time when the firing time is later than the reference time. 5. The learning device according to claim 3 or 4.
[0192] (Appendix 6) The index is the membrane potential of the neuron at the reference time. 2. The learning device of claim 1.
[0193] (Appendix 7) the learning means performs learning of the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation when the average value of the membrane potential per channel of the hidden layer of the spiking neural network at the reference time is closer to a firing threshold; 7. The learning device according to claim 6.
[0194] (Appendix 8) the learning means performs learning of the spiking neural network by mini-batch learning; 8. The learning device of claim 7.
[0195] (Appendix 9) a firing time period, which is a time period during which the firing time of a neuron is transmitted to a next layer, is set for each layer of the spiking neural network, and the reference time is set for each layer of the spiking neural network to a time within the firing time period of that layer; the learning means performs learning of the spiking neural network by setting the firing time of a neuron that did not fire within the firing time period as the end time of the firing time period or a predetermined time later than that. 9. A learning device according to any one of appendices 1 to 8.
[0196] (Appendix 10) For layers of the spiking neural network that are the subject of learning, a reference time is set for each layer, which is equal to the time from a reference time set for the first layer in the order of transmission of spike signals to a reference time set for the last layer in the order of transmission of spike signals. 10. A learning device according to any one of appendices 1 to 9.
[0197] (Appendix 11) one or more hidden layers of the spiking neural network are pooling layers that output spike signals according to the timing at which any of the spike signals included in the pooling target window first arrives at the hidden layer; the learning means performs learning of the spiking neural network while excluding the pooling layer of the hidden layer from the learning target. 11. A learning device according to any one of claims 1 to 10.
[0198] (Appendix 12) A time-based spiking neural network has been trained using an evaluation function including a predetermined reference time and an index related to neurons, which is given to each layer of the time-based spiking neural network. Spiking neural networks.
[0199] (Appendix 13) The index is the firing time of the neuron. 13. The spiking neural network of claim 12.
[0200] (Appendix 14) the evaluation function is an evaluation function including a subexpression that indicates a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, 14. The spiking neural network of claim 13.
[0201] (Appendix 15) One or more hidden layers of the spiking neural network are convolutional layers using spiking neurons; the evaluation function is an evaluation function including a subexpression that sums up, for all neurons in the layer, subexpressions that show a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, and then divides the sum by the number of neurons per channel in the layer. 15. The spiking neural network of claim 14.
[0202] (Appendix 16) the evaluation function is an evaluation function including a subexpression that indicates a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, and that indicates a better evaluation when the firing time is closer to the reference time when the firing time is later than the reference time. 16. The spiking neural network of claim 14 or 15.
[0203] (Appendix 17) The index is the membrane potential of the neuron at the reference time. 13. The spiking neural network of claim 12.
[0204] (Appendix 18) the evaluation function is an evaluation function including a subexpression that indicates a better evaluation as the average value of the membrane potential per channel of the hidden layer of the spiking neural network at the reference time is closer to a firing threshold; 18. The spiking neural network of claim 17.
[0205] (Appendix 19) The learning using the evaluation function is performed by mini-batch learning. 19. The spiking neural network of claim 18.
[0206] (Appendix 20) a firing time period, which is a time period during which the firing time of a neuron is transmitted to a next layer, is set for each layer of the spiking neural network, and the reference time is set for each layer of the spiking neural network to a time within the firing time period of that layer; In the learning using the evaluation function, the firing time of a neuron that did not fire within the firing time period is set to the end time of the firing time period or a predetermined time later than that. 20. The spiking neural network of any one of claims 12 to 19.
[0207] (Appendix 21) For layers of the spiking neural network that are the subject of learning, a reference time is set for each layer, which is equal to the time from a reference time set for the first layer in the order of transmission of spike signals to a reference time set for the last layer in the order of transmission of spike signals. 21. The spiking neural network of any one of claims 12 to 20.
[0208] (Appendix 22) one or more hidden layers of the spiking neural network are pooling layers that output spike signals according to the timing at which any of the spike signals included in the pooling target window first arrives at the hidden layer; The learning using the evaluation function is performed while excluding the pooling layer of the hidden layer from the learning target. 22. The spiking neural network of any one of claims 12 to 21.
[0209] (Appendix 23) A time-based spiking neural network and a learning device are provided, The learning device a learning means for learning the spiking neural network using an evaluation function including a predetermined reference time and an index related to neurons given to each layer of the spiking neural network; Equipped with Learning system.
[0210] (Appendix 24) The index is the firing time of the neuron. 24. The learning system of claim 23.
[0211] (Appendix 25) the learning means performs learning of the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time. 25. The learning system of claim 24.
[0212] (Appendix 26) One or more hidden layers of the spiking neural network are convolutional layers using spiking neurons; the learning means learns the spiking neural network using an evaluation function including a subexpression that sums up, for all neurons in the layer, subexpressions that give a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, and then divides the sum by the number of neurons per channel in the layer. 26. The learning system of claim 25.
[0213] (Appendix 27) the learning means performs learning of the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, and that indicates a better evaluation when the firing time is closer to the reference time when the firing time is later than the reference time. 27. The learning system of claim 25 or 26.
[0214] (Appendix 28) The index is the membrane potential of the neuron at the reference time. 24. The learning system of claim 23.
[0215] (Appendix 29) the learning means performs learning of the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation when the average value of the membrane potential per channel of the hidden layer of the spiking neural network at the reference time is closer to a firing threshold; 29. The learning system of claim 28.
[0216] (Appendix 30) the learning means performs learning of the spiking neural network by mini-batch learning; 29. The learning system of claim 29.
[0217] (Appendix 31) a firing time period, which is a time period during which the firing time of a neuron is transmitted to a next layer, is set for each layer of the spiking neural network, and the reference time is set for each layer of the spiking neural network to a time within the firing time period of that layer; the learning means performs learning of the spiking neural network by setting the firing time of a neuron that did not fire within the firing time period as the end time of the firing time period or a predetermined time later than that. 31. A learning system according to any one of appendices 23 to 30.
[0218] (Appendix 32) For layers of the spiking neural network that are the subject of learning, a reference time is set for each layer, which is equal to the time from a reference time set for the first layer in the order of transmission of spike signals to a reference time set for the last layer in the order of transmission of spike signals. 32. The learning system of any one of appendices 23 to 31.
[0219] (Appendix 33) one or more hidden layers of the spiking neural network are pooling layers that output spike signals according to the timing at which any of the spike signals included in the pooling target window first arrives at the hidden layer; the learning means performs learning of the spiking neural network while excluding the pooling layer of the hidden layer from the learning target. 33. The learning system of any one of appendices 23 to 32.
[0220] (Appendix 34) The computer The spiking neural network is trained using an evaluation function including a predetermined reference time and an index related to neurons, which are given to each layer of the time-based spiking neural network. A learning method that includes:
[0221] (Appendix 35) The index is the firing time of the neuron. Study methods described in Appendix 34.
[0222] (Appendix 36) performing the learning includes learning the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time; The study method described in Appendix 35.
[0223] (Appendix 37) One or more hidden layers of the spiking neural network are convolutional layers using spiking neurons; performing the training includes training the spiking neural network using an evaluation function including a subexpression that sums up, for all neurons in the layer, subexpressions that give a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, and then divides the sum by the number of neurons per channel in the layer; Study methods described in Appendix 36.
[0224] (Appendix 38) performing the learning includes learning the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, and that indicates a better evaluation when the firing time is closer to the reference time when the firing time is later than the reference time; The study method described in Appendix 36 or Appendix 37.
[0225] (Appendix 39) The index is the membrane potential of the neuron at the reference time. Study methods described in Appendix 34.
[0226] (Appendix 40) performing the learning includes learning the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation when an average value of the membrane potential per channel of a hidden layer of the spiking neural network at the reference time is closer to a firing threshold; The study method described in Appendix 39.
[0227] (Appendix 41) The training includes training the spiking neural network using mini-batch training. The study method described in Appendix 40.
[0228] (Appendix 42) a firing time period, which is a time period during which the firing time of a neuron is transmitted to a next layer, is set for each layer of the spiking neural network, and the reference time is set for each layer of the spiking neural network to a time within the firing time period of that layer; performing the learning includes learning the spiking neural network by setting the firing time of a neuron that did not fire within the firing time period to the end time of the firing time period or a predetermined time later than that. 42. A learning method according to any one of appendices 34 to 41.
[0229] (Appendix 43) For layers of the spiking neural network that are the subject of learning, a reference time is set for each layer, which is equal to the time from a reference time set for the first layer in the order of transmission of spike signals to a reference time set for the last layer in the order of transmission of spike signals. 42. A learning method according to any one of appendices 34 to 42.
[0230] (Appendix 44) one or more hidden layers of the spiking neural network are pooling layers that output spike signals according to the timing at which any of the spike signals included in the pooling target window first arrives at the hidden layer; The performing of the learning includes performing learning of the spiking neural network while excluding the pooling layer of the hidden layer from the learning target. 43. A learning method according to any one of appendices 34 to 43.
[0231] (Appendix 45) On the computer, A time-based spiking neural network is trained using an evaluation function including a predetermined reference time and an index related to neurons, which are given to each layer of the time-based spiking neural network. A program that executes the following.
[0232] (Appendix 46) The index is the firing time of the neuron. 45. The program described in Appendix 45.
[0233] (Appendix 47) In the step of performing the learning, the program causes the computer to perform learning of the spiking neural network using a subexpression that shows a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time. 46. The program described in Appendix 46.
[0234] (Appendix 48) One or more hidden layers of the spiking neural network are convolutional layers using spiking neurons; In performing the learning, the program causes the computer to perform learning of the spiking neural network using an evaluation function including a subexpression that sums up, for all neurons in the layer, subexpressions that show a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, and then divides the sum by the number of neurons per channel in the layer. 47. The program described in Appendix 47.
[0235] (Appendix 49) In performing the learning, the program causes the computer to perform learning of the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time, and that indicates a better evaluation when the firing time is closer to the reference time when the firing time is later than the reference time. 47. A program according to claim 47 or 48.
[0236] (Appendix 50) The index is the membrane potential of the neuron at the reference time. 45. The program described in Appendix 45.
[0237] (Appendix 51) In performing the learning, the program causes the computer to perform learning of the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation when the average value of the membrane potential per channel of the hidden layer of the spiking neural network at the reference time is closer to a firing threshold. 50. The program described in Appendix 50.
[0238] (Appendix 52) In the training, the program causes the computer to train the spiking neural network by mini-batch training. 51. The program described in Appendix 51.
[0239] (Appendix 53) a firing time period, which is a time period during which the firing time of a neuron is transmitted to a next layer, is set for each layer of the spiking neural network, and the reference time is set for each layer of the spiking neural network to a time within the firing time period of that layer; In the learning, the program causes the computer to execute learning of the spiking neural network by setting the firing time of a neuron that did not fire within the firing time period as the end time of the firing time period or a predetermined time later. 53. The program of any one of appendices 45 to 52.
[0240] (Appendix 54) For layers of the spiking neural network that are the subject of learning, a reference time is set for each layer, which is equal to the time from a reference time set for the first layer in the order of transmission of spike signals to a reference time set for the last layer in the order of transmission of spike signals. 54. The program of any one of appendices 45 to 53.
[0241] (Appendix 55) one or more hidden layers of the spiking neural network are pooling layers that output spike signals according to the timing at which any of the spike signals included in the pooling target window first arrives at the hidden layer; In the learning, the program causes the computer to learn the spiking neural network while excluding the pooling layer of the hidden layer from the learning target. 55. The program of any one of appendices 45 to 54. [Explanation of symbols]
[0242] 1,630 Learning System 100,610,631 Learning Device 110 Communications Department 120 Display section 130 Operation input section 180 Storage section 190 Processing section 191, 611, 632 Learning Department 200 Neural Networks 210 layers 220 Input Layer 230 Hidden Layer 231 Convolutional Layer 232 Pooling Layer 233 Fully connected layer 311 Convolutional Channels 312 Pooling Channel 320 neurons 330 Pooling processing unit 340 Activation Function Calculation Unit 620, 633 Spiking Neural Networks
Claims
1. A learning means for learning the spiking neural network using an evaluation function including a predetermined reference time and an index related to neurons given to each layer of the time-based spiking neural network. A learning device comprising:
2. The index is the firing time of the neuron. The learning device according to claim 1 .
3. the learning means learns the spiking neural network using a sub-expression that shows a better evaluation when the firing time is earlier than the reference time than when the firing time is later than the reference time. The learning device according to claim 2 .
4. The index is the membrane potential of the neuron at the reference time. The learning device according to claim 1 .
5. the learning means performs learning of the spiking neural network using an evaluation function including a subexpression that indicates a better evaluation as the average value of the membrane potential per channel of the hidden layer of the spiking neural network at the reference time is closer to a firing threshold; The learning device according to claim 4 .
6. a firing time period, which is a time period during which the firing time of a neuron is transmitted to a next layer, is set for each layer of the spiking neural network, and the reference time is set for each layer of the spiking neural network to a time within the firing time period of that layer; the learning means performs learning of the spiking neural network by setting the firing time of a neuron that did not fire within the firing time period as the end time of the firing time period or a predetermined time later than that. The learning device according to claim 1 .
7. For layers of the spiking neural network that are the subject of learning, a reference time is set for each layer, which is equal to the time from a reference time set for the first layer in the order of transmission of spike signals to a reference time set for the last layer in the order of transmission of spike signals. The learning device according to claim 1 .
8. A time-based spiking neural network and a learning device are provided, The learning device a learning means for learning the spiking neural network using an evaluation function including a predetermined reference time and an index related to neurons given to each layer of the spiking neural network; Equipped with Learning system.
9. The computer The spiking neural network is trained using an evaluation function including a predetermined reference time and an index related to neurons, which are given to each layer of the time-based spiking neural network. A learning method that includes:
10. On the computer, A time-based spiking neural network is trained using an evaluation function including a predetermined reference time and an index related to neurons, which are given to each layer of the time-based spiking neural network. A program that executes the following.
Citation Information
Patent Citations
Recognition apparatus based on neural network and method of training neural network
JP2017134821A