EP3186752A1 - Reseau de neurones convolutionnels - Google Patents
Reseau de neurones convolutionnelsInfo
- Publication number
- EP3186752A1 EP3186752A1 EP15756132.5A EP15756132A EP3186752A1 EP 3186752 A1 EP3186752 A1 EP 3186752A1 EP 15756132 A EP15756132 A EP 15756132A EP 3186752 A1 EP3186752 A1 EP 3186752A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- output
- neuron
- matrix
- input
- neurons
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
Definitions
- the invention relates generally to artificial neural networks and in particular to the implementation of convolutional neural networks in the form of electronic circuits from memristive devices.
- Artificial neural networks are schematically inspired by biological neural networks that they mimic. Artificial neural networks consist essentially of neurons interconnected by synapses, which are conventionally implemented by digital memories, but which can also be implemented by resistive components whose conductance varies as a function of the voltage applied to their terminals. Artificial neural networks are used in different fields of signal processing (visual, sound, or other) as for example in the field of classification or image recognition.
- Convolutional neural networks correspond to a particular model of articular neural network.
- the convolutional neural networks have been described for the first time in K. Fukushima's article, "Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position. Biological Cybernetics, 36 (4): 193-202, 1980. ISSN 0340-1200. doi: 10.1007 / BF00344251 ".
- convolutional neural networks are networks of neurons without feedback (“feedforward”). , inspired by biological visual systems. Applied to image recognition, these networks allow intermediate representations of objects to be taught in images that are smaller and generalized for similar objects, which facilitates their recognition.
- Such a network may consist of several convolution layers, including or not pooling layers in the English language and which are generally followed by a classifier perceptron multilayer type, the output of a layer being connected to the entrance of the next.
- each neuron is connected to a sub-matrix of the input matrix.
- Sub-matrices have the same size. They are staggered from each other in a regular way and can overlap.
- the input matrix may be of any size. However, the input matrix is generally of 2D dimension when the data to be processed are visual data, the two dimensions then corresponding to the spatial dimensions X and Y of an image.
- the neurons are connected to their input sub-matrix / by synapses whose weight is adjustable.
- the matrix K of the synaptic weights applied to the input sub-matrices of the neurons is the same for all the neurons of the same output map ("feature map" in Anglo-Saxon).
- Such a matrix K is also called a "convolution kernel".
- the coefficients of a kernel of convolution K can correspond to conventional signal processing filters (Gaussian, Gabor, Laplace 7), or be determined by learning, supervised or unsupervised, for example by using the gradient retro-propagation algorithm used in multi-layered percepton neuron networks.
- the coefficients of the convolution nuclei can be positive or negative, and are generally normalized between -1 and 1, as are the input and output values of the neurons.
- the output of the neuron corresponds to the value of the activation function g of the neuron applied to this sum: g (h).
- g can take the form of a sigmoid function, typically the hyperbolic tangent function.
- a convolutional layer may contain one or more convolution cores, each of which has an input matrix, which may be the same, but have different coefficients corresponding to different filters.
- the convolutional networks may also include local or global "pooling" layers that combine the neuron group outputs of one or more output cards.
- the combination of the outputs may for example consist of taking the maximum or average value of the outputs of the neuron group, for the corresponding output, on the output map of the "pooling" layer.
- the “pooling" layers make it possible to reduce the size of the output cards from one layer to another in the network, while improving its performance by making it more tolerant to small deformations or translations in the input data.
- Convolutional networks may also include fully connected layers of the perceptron type.
- FIG. 1 represents an example of a simple convolutional network, with an input layer “env” corresponding to the input matrix, two convolution layers, “convl” and “conv2”, as well as two completely connected layers “fc1" and “fc2".
- the size of the convolution cores is 5x5 pixels and they are offset by 2 pixels (an offset or "stride” of 2):
- the elements constituting the input matrix and the output cards are numbers, integers or decimals, with fixed or floating point.
- the convolution operation between an input sub-matrix and an output neuron corresponds to the scalar product between the input sub-matrix I and the matrix K.
- the input and output values are encoded with pulses.
- a value can thus be encoded by the number of pulses during a fixed time window (frequency coding), or by the instant of emission of a pulse according to a rank order coding technique.
- the calculation of the weighted sum h is done by accumulating the coefficient of the convolution core at each arrival of a pulse on the corresponding input.
- the activation function of the neuron g can in this case be replaced by a threshold.
- the output neuron emits a pulse of the sign of h and returns h to the value 0.
- the neuron then enters in a so-called "refractory" period during which it can no longer emit impulse during a fixed period.
- the pulses can therefore be positive or negative, depending on the sign of h when the threshold is exceeded.
- a negative input pulse reverses the sign of the corresponding kernel coefficient for accumulation.
- Such a convolution implementation uses a separate digital memory to store the coefficients of the convolution kernels and requires copying these coefficients from the memory kernel to the computing unit (ALU ) at each pulse arrival.
- ALU computing unit
- the existing solutions all require a calculation unit for the convolution calculation.
- such solutions are limited by the size of the data bus of the digital memories and initially require a recovery of the value stored in the memory before being able to perform an operation on it.
- the size of the memory bus is 64 bits and the coefficients are stored on 8 bits, it is possible to recover at each clock stroke only 8 coefficients. Millions of clock cycles may therefore be required depending on the number of coefficients in the network.
- the invention improves the situation.
- a convolutional neural network comprising a plurality of artificial neurons arranged in one or more convolutional layers.
- Each convolutional layer comprises one or more output matrices, each output matrix comprising a set of output neurons.
- Each output matrix is connected to an input matrix, which comprises a set of input neurons, by artificial synapses associated with a convolution matrix comprising the synaptic weight coefficients associated with output neurons of the output matrix.
- the output value of each output neuron is determined from the input matrix input neurons to which the output neuron is connected and synaptic weight coefficients from the convolution matrix associated with the output matrix.
- Each synapse is consisting of a set of memristive device comprising at least one memristive device, each set of memristive device storing a coefficient of said convolution matrix.
- the neural network In response to a state change of an input neuron of an input matrix, the neural network is able to: dynamically interconnect each set of memristive devices storing the weight matrix coefficients to the neurons of the neuron. output connected to the input neuron, and
- the neurons may use temporal coding, the dynamic interconnection being implemented in response to the triggering of an input neuron of the input matrix.
- the accumulation of the values of the weight coefficients can then be implemented by propagation of at least one pulse coding the value of each weight coefficient, according to the temporal coding, the values accumulated in the output accumulators constituting the output values of the output matrix.
- the neural network may include a set of switches and a logic circuit for mapping synaptic weight coefficients to output neurons connected to the input neuron that has undergone a state change, from the neuron address. input into the input matrix, to achieve the dynamic interconnection.
- Each pulse may comprise a bit stream encoding the destination address (X, Y) of the pulse along two perpendicular axes X and Y, the reference (X, Y) corresponding to the reference of the input matrix; when said pulse arrives at the input matrix, the coded address (X, Y) represents the location of the input neuron to be activated.
- the dynamic interconnection can be performed in parallel and in a single cycle, simultaneously connecting all the weight coefficients stored in the memristive devices to the output neurons connected to the input neuron having undergone a change. state.
- the dynamic interconnection can be performed semi-sequentially by connecting the coefficients of the weight matrix stored in the memristive devices, one line of the array after the other, to the output neurons connected to the neuron. entry having undergone a change of state.
- the dynamic interconnect can be performed semi-sequentially, by connecting the weight matrix coefficients stored in the memristive devices, one column of the matrix after the other, to the output neurons connected to the input neuron having undergone a change of state.
- the dynamic interconnection can be carried out sequentially, by connecting the convolution matrix coefficients, stored in said memristive devices, one after the other, to the output neurons connected to the input neuron having undergone a change of state.
- the neural network may comprise an accumulator arranged at the output of each synapse, the accumulator realizing the accumulation of the value of the weight coefficient stored in the memristive devices of the synapse with the value stored in the accumulator of the corresponding output neuron, the value stored in the auxiliary accumulator being then propagated by the pulses in the accumulator of the output matrix.
- the neural network may comprise an accumulator arranged at the level of each output neuron, the output of each memristive device of the synapse being propagated at the level of the output neuron, the value thus propagated being accumulated with the stored value. in the accumulator.
- Neural outputs can be grouped, while accumulated values corresponding to grouped outputs are stored in a common accumulator.
- the neural network may comprise STDP-type on-line learning from the dynamic interconnection.
- the proposed embodiments thus make it possible to calculate the convolution directly in the memory and in parallel, which improves the speed and the energy efficiency of the operation.
- FIG. 1 represents an example of a simple convolutional network with three layers, as well as the output layer;
- FIG. 2 represents an example of a complex convolutional network, including "pooling" layers
- FIG. 3 is a diagram showing a convolution layer consisting of several output cards / matrices
- FIG. 4 illustrates the principle of operation of a convolutional layer in such a network
- FIG. 5 is a diagram illustrating the pulse coding and the propagation in the neural network of the pulses
- FIG. 6 represents a hardware device implementing a pulsed convolutional neural network, according to some embodiments.
- Fig. 7 is a flowchart showing the convolution method according to some embodiments.
- FIG. 8 is a schematic representation of another example of hardware implementation of convolution operations in a network of neurons with grouping of the outputs (subsampling at the output);
- FIG. 9 is a schematic representation of another example of hardware implementation of convolution operations in a neural network with STDP learning
- FIG. 10 is a flowchart illustrating the step of dynamic interconnection, according to a parallel embodiment (in one cycle);
- FIG. 11 shows an exemplary hardware embodiment of the neural network corresponding to a parallel embodiment (only one cycle) according to the embodiment of FIG. 10;
- FIG. 12 is a flowchart illustrating the dynamic interconnection step, according to a semi-sequential embodiment (in n cycles).
- FIG. 13 shows an example of hardware realization of the neural network in a semi-sequential mode in Y mode
- FIG. 14 is a flowchart illustrating the dynamic interconnection step, according to a completely sequential embodiment
- FIG. 15 represents an example of hardware realization of the neural network corresponding to a completely sequential embodiment
- FIG. 16 is a flowchart illustrating the dynamic interconnection step, according to a semi-sequential embodiment
- FIG. 17 represents an example of hardware realization of the neural network in a semi-sequential mode in X;
- Fig. 18 is a flowchart showing the accumulation step, according to a kernel-side embodiment
- FIG. 19 shows an exemplary hardware embodiment of the accumulator in the kernel mode embodiment in write-add mode
- FIG. 20 represents the hardware embodiment of the accumulation part of FIG. 19 in retro-write mode
- Fig. 21 is a flowchart showing the accumulation step, according to an embodiment of the output side accumulation; and - Figure 22 shows an exemplary hardware embodiment of the accumulator in the embodiment of the accumulation on the output side.
- Figure 2 shows an example of a convolutional network including pooling layers for image classification.
- the images at the bottom of Figure 2 represent an excerpt from the convolution kernels of the first layer, after a gradient retro-propagation learning, on an image basis such as ImageNet.
- An artificial neural network (also called “formal” neural network or simply designated by the term “neural network” hereinafter) consists of one or more layers of neurons, interconnected between them. Each layer consists of a set of neurons, which are connected to one or more previous layers. Each neuron in a layer can be connected to one or more neurons of one or more previous layers. The last layer of the network is called the "output layer”. The neurons are connected to each other by synapses, or synaptic weights, which weight the efficiency of the connection between the neurons, constitute the adjustable parameters of a network and which store the information included in the network. Synaptic weights can be positive or negative.
- a convolutional neural network comprises at least one convolution or “pooling” layer.
- a convolution or “pooling” layer may consist of one or more output matrices 14 (also called “output maps” or “output feature maps” in the English language), each output card that can be connected to one or more input matrices 11 (also called “input cards”).
- an output matrix denoted 0 comprises coefficients 0 j , and has a noted size (O h , O w ).
- This matrix corresponds to a matrix of neurons and the coefficients 0 j correspond to the output values of these neurons, calculated from the entries and the synaptic weights.
- the state of a neuron corresponds to its output value.
- a change of state of a neuron thus corresponds to a change in its output value.
- a change of state of a neuron corresponds to its triggering or activation by emission of an output pulse that occurs when its integration ( or accumulation) exceeds a threshold.
- An input matrix or card 11 may correspond to an output card of a previous layer, or to an input matrix of the network that receives the stimuli or a portion of the stimuli to be processed.
- a network may consist of one or more input matrices. It may be, for example, RGB, HSV, YUV components or any other conventional component of an image, with a matrix per component.
- An input matrix denoted / comprises coefficients / j j , and has a noted size (l h , l w .
- An output card O is connected to an input matrix / by a convolution operation, via a convolution core 12 denoted K (the convolution core is also called a filter, or convolution matrix), of size (n, m ) and comprising coefficients K u .
- K the convolution core is also called a filter, or convolution matrix
- Each neuron of the output card 14 is connected to a part of the input matrix 11, this part being again called “input sub-matrix” or “receiver field of the neuron” and being of the same size as the matrix K.
- the convolution matrix K including the synaptic weights is common for all the neurons of the output map 0 (The weights of the matrix K are then called “shared weights".
- Each output coefficient of the output matrix 0 j then satisfies the following formula:
- g) denotes the activation function of the neuron
- si and sj denote the offset parameters ("stride” in Anglo-Saxon language) vertically and horizontally respectively.
- stride offset parameters
- An output card 0 is connected to an input matrix / by a “pooling" operation which downsamples the input matrix, which provides a subsampled matrix.
- Subsampling can be of two types:
- the synaptic weights associated with connections in the case of a pooling layer are generally unitary and therefore do not appear in the formulas above.
- a fully connected layer comprises a set of neurons, each neuron being connected to all inputs of the layer.
- Each neuron Oj has its own synaptic weights W ij with the corresponding inputs / £ and performs the weighted sum of the input coefficients with the weights which is then passed to the neuron activation function to obtain the output of the neuron.
- the activation function of neurons g () is generally a sigmoid function, as for example the tanh ⁇ function.
- the activation function can be for example the identity function.
- Synaptic weights are determined by learning.
- Learning a neural network consists in finding the optimal values of synaptic weights from an optimization method and a learning base.
- learning methods such as the method of gradient retro-propagation, the basic principle consisting, from a stimulus input network, calculating the output of the network, compare it to the expected output (in the case of a so-called supervised learning) and retro-propagate an error signal in the network, which modifies the synaptic weights by a method of descent of the gradient.
- the neural networks can be transposed into pulse coding as shown in FIG. 5.
- the signals propagated at the input and at the output of the network layers are no longer digital values, but electrical pulses (comparable to Dirac pulses). ).
- the information that was coded in the signal value (normalized between -1 and 1) is then coded temporally with the order of arrival of the pulses (rank order coding) or with the frequency of the pulses .
- the instant of arrival of the pulse is inversely proportional to the absolute value of the signal to be coded.
- the sign of the pulse determines the sign of the value of the signal to be encoded.
- the pulse frequency between f min and f max , is proportional to the absolute value of the signal to be coded.
- the sign of the pulse determines the sign of the value of the signal to be encoded.
- the coding can also be pseudo-frequential, for example fishy: in this case f max and f min represent average frequencies only.
- the initial phase of the pulses can be random.
- the pulses may also come directly from a sensor, such as a retina or an artificial cochlea, mimicking the operation of their biological equivalent.
- the weighted sum of the synaptic weights with the input signals is replaced by the integration of the pulses from the same weighted inputs by the synaptic weights. All pulses are identical except for their sign, so their integral can be considered unitary or normalized.
- the activation function of the neuron is replaced by a threshold which is unitary in the case of standardized synaptic weights between -1 and 1.
- a threshold which is unitary in the case of standardized synaptic weights between -1 and 1.
- a neuron When a neuron is in a "refractory" period, it can not emit a new output pulse until the end of the refractory period, which can be equal to the minimum period of the pulses propagating in the network.
- the artificial synapses of a neural network can be realized from memristive devices.
- a memristive device is a two-terminal electronic component that behaves like a resistor or conductance, the value of which can be changed by applying a current or a voltage across its terminals.
- G denotes the conductance of the device which connects its input current / ' to the voltage at its terminals v.
- a memristive device may be binary and / or stochastic.
- a family of memristive devices particularly adapted to the realization of artificial synapses in a neural network is such that the characteristic f (v, G) is nonlinear, as for example the devices of the MIM type (Metal-Insulator-Metal) which constitute the base cell of several non-volatile memory technologies such as RRAM "Resistive Random Access Memory”, CBRAM “Conductive-Bridging RAM” and OxRAM “Oxide-based Resistive Random Access Memory”.
- MIM type Metal-Insulator-Metal
- RRAM Resistive Random Access Memory
- CBRAM Conductive-Bridging RAM
- OxRAM Oxide-based Resistive Random Access Memory
- memristive such as phase change memory (PCAM), floating gate transistors, memristors, organic memristors, the NOM-particle NOMFET transistor.
- PCAM phase change memory
- a memristive device can be emulated by a conventional digital memory cell, RAM type “Random Access Memory” ROM “Read-Only Memory” PROM “Programmable ROM” or register for example.
- a synapse can thus be implemented by such an N-bit memory, thus emulating a memristive device of 2 N analog levels.
- An artificial neural network can be realized by using such memristive devices as artificial synapses and integrating them into a "crossbar" type structure.
- Figure 6 shows a hardware device 100 implementing an output map of a convolutional layer of a convolutional pulse neural network, according to some embodiments.
- the device 1 00 consists of synapses 1 0, each synapse being implemented from one or more memristive devices, to perform the convolution operations of a convolutional neuron network 1 1 without it is necessary to use calculation units for such operations and copying operations of the convolution kernel.
- a single "memristive device” as an element of a synapse for illustrative purposes.
- the invention also applies to a synapse consisting of several devices in parallel memristive whose equivalent conductance corresponds to the sum of conductances of individual memristive devices.
- the matrix (“crossbar” in Anglo-Saxon language) in which are integrated the devices 1 jersey is designated by the reference 5.
- the coefficients of the core 1 2 are numbered from 1 to 9 and spread vertically.
- device 1 00 can be used to realize a hardware implementation of convolutional neural networks for image classification and recognition. The remainder of the description will be made essentially with reference to input cards comprising pixel-type neurons for illustrative purposes.
- the convolution operations implemented by the device 1 00 make it possible to determine each coefficient 0 j of the output matrix 14 for a given convolutional layer from the input matrix 11 (again denoted by I) of the convolution and convolution core 1 2 (again noted K).
- the convolution operation from which each output coefficient 0 j is defined is given by Equation 1 below: (min (nl, I h -i.Si) min (ml, I w -j.sj) ⁇
- the coefficients j represent the coefficients of the input matrix I of the convolutional layer considered, and the coefficients K k j represent the coefficients of the convolution core 12 (weight of the inter-neuronal connections). More particularly, the neural network device 100 uses a plurality of memory devices 10 to store the convolution core (s) 12 associated with an output matrix of the convolutional layer. Each memristive device 1 0 has an electrically switchable resistance value and can be of any type (such as for example a transistor). In one embodiment, the device 100 may use one or more memory devices, constituting a synapse 10 for each coefficient of the convolution core K k1 .
- the pulses transiting between the layers of the neural network can be coded in AER ("Address-Event Representation") format.
- AER Address-Event Representation
- the pulse is digital and consists of a bit stream encoding the destination address (X, Y) of the pulse along two perpendicular axes X and Y, the reference (X, Y) corresponding to the reference of the input matrix, as well as the sign of the pulse.
- the coded address (X, Y) represents the location of the input neuron to be activated.
- its address (X, Y) gives the location to activate 1 ⁇ with:
- the device 1 00 can additionally apply a time coding operation of information to carry out each convolution between the input matrix 1 of a given convolutional layer and the convolution core 1 2, the operation of weighting the input coefficients 1, j of the input matrix 1 of a given convolutional layer with the coefficients K k j of the convolution core being then time multiplexed.
- the weighting operation is carried out directly in the memorizing devices 10 storing the coefficients corresponding to the weights of the convolution nucleus, by Ohm's law:
- I G (conductance) * U, where G denotes the conductance of one or more memristive devices forming a synapse, and U denotes the voltage of a pulse which is fixed, the value of the input coefficient ly being coded temporally (for example by frequency coding or rank coding).
- the parameter I is the value to accumulate in the corresponding output neuron.
- An input neuron 1 belongs to the receiver field of one or more output neurons 140.
- a neuron of the input matrix is activated (pixel in the example under consideration) and is surrounded by a black frame.
- the pixel 28 of the input matrix is activated.
- the input pixel considered belongs to the receiver field of 9 output neurons (upper part of Figure 6):
- the activated pixel is connected to the receiver field of the output neuron No. 8, with the coefficient No. 9 of the convolution core (lower part of FIG. 6);
- the activated pixel is connected to the receiver field of the output neuron N ° 9, with the coefficient N ° 8 of the convolution core;
- the activated pixel is connected to the receiver field of the output neuron No. 10, with the coefficient No. 7 of the convolution core;
- the coefficients j of the input matrix I can be implemented physically by a predefined frequency of the pulses while the coefficients K kJ are stored in the form of an electrical conductance of a memristive device 10.
- each device memristif 10 is configured to receive a pre-synaptic pulse emitted by a neuron of the input matrix 1 to which it is connected upstream.
- pre-synaptic pulse refers to a pulse emitted by a neuron in the direction of a synapse to which it is connected downstream.
- a pre-synaptic pulse thus emitted from an input neuron 11 propagates towards the synapse, materialized by the memristive device 10, to which the input neuron is connected.
- An input pulse propagates from the input neuron to the output neurons that have the input neuron in their receiver field, as shown in Fig. 6.
- the pulse arriving on each output neuron is weighted by the synaptic weight corresponding to the coefficient of the associated convolution kernel for this input. This weighting can be done electrically by modulating the voltage of the pulse with the equivalent conductance of the synapse, consisting of one or more devices, thanks to Ohm's law.
- a pulse modulated in this manner arriving on an output neuron is then integrated into the neuron (analogically or numerically), which emits an output pulse if this integration exceeds a threshold value.
- the device 100 comprises an interconnection matrix 13 configured to dynamically associate (so-called "dynamic mapping" operation in the English language) each output 121 of the convolution core corresponding to a coefficient of the kernel of convolution, with a position 140 of the accumulation matrix 14, upon activation of an input neuron.
- the dynamic mapping operation maps the kernel coefficients to the set of output neurons involving the activated input for the convolution calculation as described by the previous equations. For example, as shown in FIG. 6, when the input neuron 1 is triggered, the horizontal line intersecting the vertical line connected to the element 9 in the matrix 12 representing the convolution core 12 is connected dynamically, at the level of FIG. its end 121, at the position 8 of the accumulator 14.
- the coefficients k k1 of the convolution core are connected to the outputs Oi-k j- ⁇ as follows:
- the convolution operation is done by accumulating dynamically connected convolution core coefficients to the respective accumulators 140 at each arrival of a pulse on the outputs 121.
- the pulse is propagated on the vertical line 50.
- the dynamic mapping between the convolution core 12 and the outputs 140 is made possible by the pulse coding of the inputs applied to the memristive devices.
- the pulse propagation When the pulse propagation is triggered according to the predefined pulse frequency, the pulses are propagated to the respective accumulators 140 to which they are connected by the interconnection matrix through memproting devices.
- Fig. 7 is a flowchart showing the convolution method according to some embodiments.
- a neuron of the input matrix I belonging to a given convolutional layer, is triggered by an event.
- An input neuron belongs to the receiving field of one or more output neurons (ie, the input neuron is connected to these output neurons).
- the input neuron can be of any type as a pixel in the case of an impulse encoded input image.
- the triggering event may, for example, be derived from the previous convolutional layer or an event sensor, such as a retina, a cochlea, or even a frequency coding of static data, such as images or a time spectrum. -frequency.
- step 102 In response to the initiation of the input neuron, in step 102, a dynamic match is implemented to map the coefficients of the convolution core to the outputs for which the input pixel has a contribution.
- step 101 in response to triggering of the input neuron, the memproducing devices 10 storing the coefficients of the convolution core are dynamically connected to the corresponding output neurons.
- the step 101 of dynamic mapping between the memristive devices 10 and the output neurons can be implemented according to different types of dynamic routing methods such as:
- Step 101 is reiterated for each new triggered input neuron if that input neuron is different from the previously triggered neuron.
- Dynamic routing methods can be analog or digital.
- Each type of routing method offers a different compromise in number of cycles and number of switches.
- Parallel routing for example, propagates the input pulse on all output neurons for which it has a contribution at once, simultaneously, but requires a higher number of switches for dynamic routing.
- An accumulation step 103 may then be implemented from the propagation of the pulses.
- the accumulation step 103 is implemented on the side of the convolution kernel, in two sub-steps (read-add then retro-write). Alternatively, it can be implemented on the output side 121 in a single add-write step.
- the value of the accumulation is propagated in a first step from each output neuron to an intermediate accumulator (accumulator 22 in FIGS. 8 and 9) present in the output nodes 121 of the matrix 12 containing the coefficients of the convolution core stored by the memristive devices 10.
- the pulses can be propagated simultaneously or not. For example, in the case of parallel routing, they can be propagated simultaneously.
- the input impulse is propagated at each synapse and is weighted by the value of the synapse.
- the pulse For each synapse, the pulse, once weighted, is added to the intermediate accumulator present in the output nodes 121 with the value of the accumulation previously stored in the accumulator 140 of the corresponding output neuron 141 (reading step -addition or "read-add” in English language).
- This read-add step can be performed in parallel, depending on the type of routing chosen for dynamic interconnection ("dynamic mapping").
- the accumulated values in the accumulators intermediates can be propagated to the corresponding output neurons 141 and stored in the corresponding accumulators 140, in step 103 (back-write step or "write back" in English language).
- Step 103 can be performed in parallel, depending on the type of routing chosen for dynamic mapping.
- the accumulation can be performed directly in the output neurons 141 and be performed in parallel, depending on the type of routing chosen for dynamic interconnection.
- the read-add step can be performed for a first synapse group, then the write-back step can be executed for the same first group, before moving on to the next group and changing the dynamic mapping.
- Such an embodiment eliminates the need to perform the same mapping twice each time ("mapping"), a first time for reading-adding and a second time for reading-writing.
- it makes it possible to reduce the number of intermediate accumulators, since from one synapse group to another, the same accumulators can be reused.
- the neural network can be realized by integrating the memristive devices 10 in a "crossbar" type structure, with or without a selection device (transistor, diode or other device with a non-linearity).
- FIG. 8 is a schematic representation of another example of hardware implementation of convolution operations in a neural network with a grouping of outputs by downsampling.
- the operation of grouping the outputs by subsampling consists in gathering the neighboring outputs to form a new smaller output matrix 14.
- the grouping of outputs is carried out directly at the level of the accumulation, by pooling the accumulators 140 corresponding to the same output in groups 142, in the matrix 14 scaled.
- the maximum size of the matrix of the memrotatory devices 10 may advantageously be equal to the size of the convolution core 12, for example of size 35x35, 1 1 x1 1 or 5x5.
- the size may be limited in particular by the leakage currents.
- the interconnection matrix 13 (analog) can be of small size and can be made in CMOS. Alternatively, it can be performed physically with memristive devices.
- the neural network device 100 may additionally operate with a learning method, such as for example a STDP (Spike Timing Dependent Plasticity) rule-based learning method, in-situ, or online.
- a learning method such as for example a STDP (Spike Timing Dependent Plasticity) rule-based learning method, in-situ, or online.
- the interconnect matrix performs address decoding to map synaptic weights to output neurons for a given enabled input.
- each synapse consists of 3 devices (each line implementing a coefficient of the convolution kernel).
- a pulse can be propagated simultaneously on all the columns to obtain at the end of each line a current pulse weighted by the equivalent conductance of the synapse corresponding to the sum of the conductances of the devices constituting the synapse.
- the pulses are propagated on the vertical lines 5 of the "crossbar" matrix 5.
- the accumulation step 103 of FIG. 7 can be implemented sequentially, by activating one device after the other, with an adder (1+ x) per line, or synapse, the value "1" being added to the value "x" accumulated by the corresponding output neuron 140.
- This is equivalent to having several columns of devices, as in Figure 9.
- the accumulation step can be implemented in one step, using multiple thresholds (as many as devices per synapse) and one adder per line.
- the thresholds may be increasing multiples of the base threshold so as to perform a digitization of the equivalent synaptic weight stored in the set of devices constituting a line.
- This embodiment is particularly suitable in the case of binary devices, being able to store only a state "ON” (active) or "OFF” (inactive).
- the base threshold is set to trip in the event that at least one of the devices is in the state " WE ". For example, if the equivalent synapse consists of 4 devices, 2 of which are in the "ON" state, the first two thresholds will trigger on the 4, thus encoding the synapse value of 2/4.
- Such an embodiment can be implemented using digital accumulators 140 or, alternatively, analog accumulators, using an analog-to-digital converter (ADC) per line.
- ADC analog-to-digital converter
- FIG. 11 is a schematic representation of another example of hardware implementation of convolution operations in a neural network with STDP ("Spike-Timing-Dependent Plasticity” learning) meaning "plasticity according to the time of occurrence of the pulses" ).
- STDP Spike-Timing-Dependent Plasticity
- STDP learning can be done in one step with interaction of pre- and post-synaptic pulses.
- pre-synaptic and post-synaptic pulses can for example be sent by the input and output neurons to a neural network.
- synapse (constituted by one or more memristive devices) to act on the variation of its conductance, for example as described in FR2977351 B1.
- a write circuit 15 is used. Following the activation of an output neuron, the coefficients of the associated convolution kernel are mapped to the inputs constituting the output neuron receiver field (dynamic mapping). The kernel coefficients are then modified as follows:
- LTP Long Term Potentiation
- STDP learning rule “Spike Timing Depends Plasticity” consists of changing the weight of a synapse according to the temporal distance between pre- and post-synaptic impulses.
- the LTP state corresponds to the state of potentiation of the synapse and the LTP phase has a given duration corresponding to the duration during which the conductance of the synapse increases.
- the variation in the conductance of the synapse may depend on the relative arrival times of the two pulses.
- the learning may also be stochastic.
- Figs. 12 to 17 show embodiments of the step of dynamically interconnecting memproting devices 10 and output neurons in the receiver field of an activated neuron (step 102 of Fig. 7).
- Fig. 12 is a flowchart illustrating the step of dynamic interconnection, according to a parallel embodiment (in one cycle).
- step 1 an input neuron is triggered (for example a pixel).
- the steps 1 12 and 1 14 correspond to the dynamic interconnection between the outputs 121 of the matrix 12 and the nodes 141 corresponding to the output neurons that are in the receiver field of the triggered neuron.
- step 1 12 a decoding of the X address of the input neuron is performed.
- the corresponding lines of the matrix 12 are then activated (each line corresponds to a synapse or a different coefficient of the nucleus).
- step 1 14 a decoding of the Y address of the input neuron is performed.
- the corresponding lines of the matrix 12 are then activated.
- step 1 1 6 an accumulation of the values is performed in the output matrix 14 by propagation of the pulses as previously described.
- FIG. 13 represents an example of hardware realization of the neural network corresponding to a parallel embodiment (only one cycle) according to the embodiment of FIG. 12.
- the accumulators 140 (right-hand part) are connected to the corresponding core coefficients after X and Y decoding.
- N TG mn O h + m. O w . O h
- FIG. 12 is a flowchart illustrating the step of dynamic interconnection, according to a semi-sequential embodiment (in n cycles).
- step 130 an input neuron is triggered (for example a pixel).
- the dynamic interconnection between the outputs 121 of the matrix 12 and the nodes 141 corresponding to the output neurons that are in the receiver field of the triggered neuron comprises the steps 132 to 135.
- step 132 a decoding of the X address of the input neuron is performed.
- the corresponding columns of the matrix 12 are then activated.
- step 134 a decoding of the Y address of the input neuron is performed.
- the number of lines to be activated sequentially is defined by the parameter n, which corresponds to the number of lines in the convolution matrix K (12).
- step 135 a line is activated (current line). If a line was previously activated, this previous line is deactivated beforehand.
- step 136 an accumulation of the values is performed in the output matrix 14 by pulse propagation on the current activated line.
- the next line is then activated in step 138 if the number of lines already activated is less than n (i.e. the iteration number of steps 135/136 is less than n).
- FIG. 13 represents an exemplary hardware embodiment of the neural network corresponding to a semi-sequential embodiment in Y, according to the embodiment of FIG. 12.
- the accumulators 140 (right-hand part) are connected to the corresponding core coefficients after X and Y decoding.
- the matrix 12 (left part) is made physically by a set of memristive devices 10.
- the accumulation in the accumulators 140 is performed for each line activated sequentially by a sequencer.
- N TG m. n + m. O w . O h
- FIG. 14 is a flowchart illustrating the dynamic interconnection step, according to a completely sequential embodiment (in m.n cycles).
- step 150 an input neuron is triggered (for example a pixel).
- the dynamic interconnection between the outputs 121 of the matrix 12 and the nodes 141 corresponding to the output neurons that are in the receiver field of the triggered neuron comprises the steps 152 to 156. More specifically, in step 152, a decoding of the Y address of the input neuron is performed. The number of lines to activate sequentially is defined by the parameter n.
- step 153 a line is activated (current line). If a line was previously activated, this previous line is deactivated beforehand.
- step 154 a decoding of the X address of the input neuron is performed.
- the number of columns to be activated sequentially is defined by the parameter m, which corresponds to the number of columns in the convolution matrix K (12).
- step 155 a column is activated (current column). If a column has been previously enabled, this previous column is disabled beforehand.
- step 156 an accumulation of the values is carried out in the output matrix 14 by propagation of pulses on the current lines and columns activated.
- the next column is then activated in step 157 if the number of lines already activated is less than m (i.e. iteration number of steps 153/156 is less than n).
- the next line is then activated in step 158 if the number of lines already activated is less than n (i.e. the iteration number of steps 153/156 is less than n).
- FIG. 15 represents an example of hardware realization of the neural network corresponding to a completely sequential embodiment, according to the embodiment of FIG. 14.
- Each accumulator 140 (right-hand part) is sequentially connected to the corresponding core coefficient after X and Y decoding.
- the matrix 12 (left part) is made physically by a set of memristive devices 10.
- the accumulation in the accumulators 140 is performed for each line and column activated sequentially by a sequencer.
- the number of switches N T G used in the hardware realization of the neural network is then given by the following equation:
- N TG m. n + O w . O h
- This embodiment minimizes the number of switches and therefore the complexity of the interconnection matrix, but makes it possible to perform only one operation per cycle and therefore has a priori limited interest compared to a conventional digital implementation of such a network where the memory accesses are sequential.
- FIG. 16 is a flowchart illustrating the dynamic interconnection step, according to a semi-sequential embodiment (in m cycles).
- step 1 60 an input neuron is triggered (for example a pixel).
- the dynamic interconnection between the outputs 121 of the matrix 12 and the nodes 141 corresponding to the output neurons that are in the triggered field of the triggered neuron comprises the steps 1 62 to 165.
- step 162 a decoding of the Y address of the input neuron is performed.
- the corresponding lines of the matrix 12 are then activated.
- step 164 a decoding of the X address of the input neuron is performed.
- the number of columns to activate sequentially is defined by the parameter m.
- step 165 a column is activated (current line). If a column has been previously enabled, this previous column is disabled beforehand.
- step 1 66 an accumulation of the values is carried out in the output matrix 14 by propagation of pulses on the current activated column.
- FIG. 17 represents an example of hardware realization of the neural network corresponding to a semi-sequential embodiment in Y, according to the embodiment of Figure 1 6.
- the accumulators 140 (right-hand part) are connected to the corresponding core coefficients after decoding in X and Y.
- the matrix 12 (left-hand part) is made physically by a set of memristive devices 10. The accumulation in the accumulators 140 is performed for each column activated sequentially by a sequencer.
- N TG m. n + n. O h + O w . O h
- connections made by the dynamic mapping operation between the synapses and the accumulators of the output neurons cause the pulse weighted by the value of the synapses to pass.
- the connections can be made in different ways:
- N son N bits
- a digital coding is then used, it can be binary or unary.
- Figures 18 to 22 show embodiments of the accumulation step 103 of Figure 7.
- Fig. 18 is a flowchart showing the accumulation step, according to a kernel side embodiment.
- step 180 an input neuron is triggered (for example pixel).
- step 182 the dynamic interconnect step is performed, for example according to one of the embodiments of FIGS. 12 to 17.
- step 183 the value stored in the accumulator of each output neuron 140, located in the triggered field of the triggered neuron, is added together with the synaptic weight corresponding to the input neuron (stored in at least one memristive device ). The value thus obtained is stored in an accumulator 121 at the output of the synapse connecting the input neuron and the output neuron.
- step 184 the accumulated values at the output of the synapses are written in the accumulators 140 of the output neurons.
- Fig. 19 shows an exemplary hardware embodiment of the accumulator 14 in the kernel-side embodiment in write-add mode.
- Each output 20 of a coefficient of the convolution core can be realized physically by a memristive device 10, an adder 21, a storage memory 22, and a switch 23.
- the switch 23 is configured to switch between read-add (read-add) and write-back modes.
- each output corresponding to a coefficient of the convolution nucleus can be made physically by one or more memproting devices 10 storing the synaptic weight, the adder 21 then adding the value stored in the accumulator of each neuron of output 140 with the weight stored in the device (s) memristive (s).
- the storage memory 22 at the output of the synapse then stores the value thus obtained.
- the storage memory can be made in analog or digital.
- FIG. 20 represents the hardware embodiment of the accumulation part of FIG. 19 in write back mode.
- the matrix output 14 comprises a storage memory 24 for storing the propagated value from the accumulators 22.
- FIG. 21 is a flowchart representing the accumulation step (step 103 of FIG. 7), according to one embodiment of the invention. accumulation on the output side.
- step 210 an input neuron is triggered (eg pixel).
- step 212 the dynamic interconnect step is performed, for example according to one of the embodiments of FIGS. 12 to 17.
- step 214 the value stored in the accumulator of each output neuron 140, being in the receiving field of the triggered neuron, is added with the synaptic weight corresponding to the input neuron (stored in at least one memristive device and previously propagated to the output matrix 14), on the output matrix side . The value thus obtained is directly stored in the output matrix 14.
- Fig. 22 shows an exemplary hardware embodiment of the accumulator 14 in the output-side embodiment.
- Each output of a coefficient of the convolution core is directly connected to the memristive device (s) storing the value of the coefficient.
- Each output of the matrix 14 may comprise an adder 25 and a storage memory 23.
- Each output 20 of a coefficient of the convolution core can be achieved physically by the memristive device 10 storing the synaptic weight and propagated to the matrix 14.
- the adder 23 then directly adds the value stored in the accumulator of each output neuron 140 with the weight received.
- the storage memory 26 on the output matrix side stores the value thus obtained.
- the dynamic interconnection also applies to "pooling" pooling layers to match the inputs with the output neurons involved in a “pooling” calculation.
- the invention is not limited to a particular type of memristive device.
- the memristive devices can be CBRAM ("conductive bridging RAM”), OXRAM ("Oxide Based Resistive Memory”), PCRAM (“Phase Change RAM”) or PCM (“Phase-Change Memory”).
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1458088A FR3025344B1 (fr) | 2014-08-28 | 2014-08-28 | Reseau de neurones convolutionnels |
| PCT/EP2015/068955 WO2016030230A1 (fr) | 2014-08-28 | 2015-08-18 | Reseau de neurones convolutionnels |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP3186752A1 true EP3186752A1 (fr) | 2017-07-05 |
Family
ID=52450266
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP15756132.5A Withdrawn EP3186752A1 (fr) | 2014-08-28 | 2015-08-18 | Reseau de neurones convolutionnels |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US11055608B2 (fr) |
| EP (1) | EP3186752A1 (fr) |
| FR (1) | FR3025344B1 (fr) |
| WO (1) | WO2016030230A1 (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI774147B (zh) * | 2019-12-09 | 2022-08-11 | 大陸商南京惟心光電系統有限公司 | 脈衝卷積神經網路演算法、積體電路及其製造方法、運算裝置及存儲介質 |
Families Citing this family (69)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102015000120A1 (de) * | 2015-01-07 | 2016-07-07 | Merck Patent Gmbh | Elektronisches Bauelement |
| US10387770B2 (en) * | 2015-06-10 | 2019-08-20 | Samsung Electronics Co., Ltd. | Spiking neural network with reduced memory access and reduced in-network bandwidth consumption |
| US10540768B2 (en) * | 2015-09-30 | 2020-01-21 | Samsung Electronics Co., Ltd. | Apparatus and method to segment object from image |
| FR3050846B1 (fr) * | 2016-04-27 | 2019-05-03 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Dispositif et procede de distribution de donnees de convolution d'un reseau de neurones convolutionnel |
| CN107329734B (zh) * | 2016-04-29 | 2020-08-07 | 中科寒武纪科技股份有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
| GB201607713D0 (en) | 2016-05-03 | 2016-06-15 | Imagination Tech Ltd | Convolutional neural network |
| US20170357894A1 (en) * | 2016-06-10 | 2017-12-14 | Apple Inc. | Data packing for convolution of artificial neural networks |
| US9715656B1 (en) | 2016-09-12 | 2017-07-25 | International Business Machines Corporation | Killing asymmetric resistive processing units for neural network training |
| US9646243B1 (en) | 2016-09-12 | 2017-05-09 | International Business Machines Corporation | Convolutional neural networks using resistive processing unit array |
| US10402628B2 (en) | 2016-10-10 | 2019-09-03 | Gyrfalcon Technology Inc. | Image classification systems based on CNN based IC and light-weight classifier |
| US10366302B2 (en) | 2016-10-10 | 2019-07-30 | Gyrfalcon Technology Inc. | Hierarchical category classification scheme using multiple sets of fully-connected networks with a CNN based integrated circuit as feature extractor |
| US9940534B1 (en) * | 2016-10-10 | 2018-04-10 | Gyrfalcon Technology, Inc. | Digital integrated circuit for extracting features out of an input image based on cellular neural networks |
| US10360470B2 (en) | 2016-10-10 | 2019-07-23 | Gyrfalcon Technology Inc. | Implementation of MobileNet in a CNN based digital integrated circuit |
| US10043095B2 (en) * | 2016-10-10 | 2018-08-07 | Gyrfalcon Technology, Inc. | Data structure for CNN based digital integrated circuit for extracting features out of an input image |
| US10339445B2 (en) | 2016-10-10 | 2019-07-02 | Gyrfalcon Technology Inc. | Implementation of ResNet in a CNN based digital integrated circuit |
| US10366328B2 (en) | 2017-09-19 | 2019-07-30 | Gyrfalcon Technology Inc. | Approximating fully-connected layers with multiple arrays of 3x3 convolutional filter kernels in a CNN based integrated circuit |
| US10733505B2 (en) * | 2016-11-10 | 2020-08-04 | Google Llc | Performing kernel striding in hardware |
| US10360494B2 (en) * | 2016-11-30 | 2019-07-23 | Altumview Systems Inc. | Convolutional neural network (CNN) system based on resolution-limited small-scale CNN modules |
| US10248906B2 (en) | 2016-12-28 | 2019-04-02 | Intel Corporation | Neuromorphic circuits for storing and generating connectivity information |
| CN106779060B (zh) * | 2017-02-09 | 2019-03-08 | 武汉魅瞳科技有限公司 | 一种适于硬件设计实现的深度卷积神经网络的计算方法 |
| CN110546653B (zh) | 2017-02-24 | 2023-06-20 | 渊慧科技有限公司 | 使用管理者和工作者神经网络的用于强化学习的动作选择 |
| US11164071B2 (en) * | 2017-04-18 | 2021-11-02 | Samsung Electronics Co., Ltd. | Method and apparatus for reducing computational complexity of convolutional neural networks |
| KR102301232B1 (ko) * | 2017-05-31 | 2021-09-10 | 삼성전자주식회사 | 다채널 특징맵 영상을 처리하는 방법 및 장치 |
| KR20180136202A (ko) * | 2017-06-14 | 2018-12-24 | 에스케이하이닉스 주식회사 | 컨볼루션 신경망 및 컨볼루션 신경망을 가진 신경망 시스템 |
| US11216723B2 (en) | 2017-08-11 | 2022-01-04 | Syntiant | Pulse-width modulated multiplier |
| US10699160B2 (en) | 2017-08-23 | 2020-06-30 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
| CN109684901B (zh) * | 2017-10-19 | 2023-06-06 | 富士通株式会社 | 图像处理装置和图像处理方法 |
| US11301752B2 (en) | 2017-10-24 | 2022-04-12 | International Business Machines Corporation | Memory configuration for implementing a neural network |
| CN107817898B (zh) * | 2017-10-31 | 2022-07-22 | 努比亚技术有限公司 | 操作模式识别方法、终端及存储介质 |
| CN107895174B (zh) * | 2017-11-09 | 2020-01-07 | 京东方科技集团股份有限公司 | 图像分类和转换方法、装置以及图像处理系统 |
| US11494619B2 (en) * | 2017-11-30 | 2022-11-08 | Taiwan Semiconductor Manufacturing Co., Ltd. | Device and method for operating the same |
| US20190042942A1 (en) * | 2017-12-07 | 2019-02-07 | Koba Natroshvili | Hybrid spiking neural network and support vector machine classifier |
| US10409889B2 (en) | 2017-12-18 | 2019-09-10 | Mythic, Inc. | Systems and methods for mapping matrix calculations to a matrix multiply accelerator |
| DE102018200534A1 (de) * | 2018-01-15 | 2019-07-18 | Robert Bosch Gmbh | Verfahren zum Betreiben eines künstlichen neuronalen Netzes |
| US11875557B2 (en) | 2018-04-27 | 2024-01-16 | Carnegie Mellon University | Polynomial convolutional neural network with early fan-out |
| CN111971662B (zh) * | 2018-04-30 | 2025-01-21 | 慧与发展有限责任合伙企业 | 用于处理数据的设备、方法和系统 |
| CN109858506B (zh) * | 2018-05-28 | 2022-11-18 | 哈尔滨工程大学 | 一种面向卷积神经网络分类结果的可视化算法 |
| US10417342B1 (en) | 2018-07-03 | 2019-09-17 | Gyrfalcon Technology Inc. | Deep learning device for local processing classical chinese poetry and verse |
| US10311149B1 (en) | 2018-08-08 | 2019-06-04 | Gyrfalcon Technology Inc. | Natural language translation device |
| CN109460817B (zh) * | 2018-09-11 | 2021-08-03 | 华中科技大学 | 一种基于非易失存储器的卷积神经网络片上学习系统 |
| WO2020061924A1 (fr) * | 2018-09-27 | 2020-04-02 | 华为技术有限公司 | Accélérateur d'opération et procédé de traitement de données |
| CN111010492B (zh) * | 2018-10-08 | 2022-05-13 | 瑞昱半导体股份有限公司 | 图像处理电路及相关的图像处理方法 |
| US12111878B2 (en) | 2018-10-12 | 2024-10-08 | International Business Machines Corporation | Efficient processing of convolutional neural network layers using analog-memory-based hardware |
| CN111048135A (zh) * | 2018-10-14 | 2020-04-21 | 天津大学青岛海洋技术研究院 | 一种基于忆阻器内存计算的cnn处理装置及其工作方法 |
| CN109448068B (zh) * | 2018-10-16 | 2020-07-31 | 西南大学 | 一种基于忆阻器交叉阵列的图像重构系统 |
| US10387772B1 (en) | 2018-10-22 | 2019-08-20 | Gyrfalcon Technology Inc. | Ensemble learning based image classification systems |
| WO2020117348A2 (fr) * | 2018-12-06 | 2020-06-11 | Western Digital Technologies, Inc. | Puce de mémoire non volatile à réseau neuronal à apprentissage profond |
| US11133059B2 (en) | 2018-12-06 | 2021-09-28 | Western Digital Technologies, Inc. | Non-volatile memory die with deep learning neural network |
| US12393845B2 (en) | 2018-12-06 | 2025-08-19 | Western Digital Technologies, Inc. | Non-volatile memory die with deep learning neural network |
| US11557107B2 (en) | 2019-01-02 | 2023-01-17 | Bank Of America Corporation | Intelligent recognition and extraction of numerical data from non-numerical graphical representations |
| US11556763B2 (en) | 2019-02-19 | 2023-01-17 | International Business Machines Corporation | Multi-kernel configuration for convolutional neural networks |
| EP3953866A1 (fr) * | 2019-04-09 | 2022-02-16 | Chengdu Synsense Technology Co., Ltd. | Réseau neuronal à convolution avec pics pilotés par événements |
| US11520521B2 (en) | 2019-06-20 | 2022-12-06 | Western Digital Technologies, Inc. | Storage controller having data augmentation components for use with non-volatile memory die |
| US11501109B2 (en) | 2019-06-20 | 2022-11-15 | Western Digital Technologies, Inc. | Non-volatile memory die with on-chip data augmentation components for use with machine learning |
| CN112308202B (zh) * | 2019-08-02 | 2025-04-25 | 华为技术有限公司 | 一种确定卷积神经网络的决策因素的方法及电子设备 |
| CN110543933B (zh) * | 2019-08-12 | 2022-10-21 | 北京大学 | 基于flash存算阵列的脉冲型卷积神经网络 |
| US11741344B2 (en) * | 2019-12-09 | 2023-08-29 | Bank Of America Corporation | Custom convolutional neural network architectures for exposure detection |
| JP7365999B2 (ja) * | 2019-12-24 | 2023-10-20 | 財團法人工業技術研究院 | ニューラルネットワーク演算装置および方法 |
| TWI727641B (zh) * | 2020-02-03 | 2021-05-11 | 華邦電子股份有限公司 | 記憶體裝置及其操作方法 |
| US11562240B2 (en) | 2020-05-27 | 2023-01-24 | International Business Machines Corporation | Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference |
| CN111681696B (zh) * | 2020-05-28 | 2022-07-08 | 中国科学院微电子研究所 | 基于非易失存储器的存储和数据处理方法、装置及设备 |
| FR3113971B1 (fr) * | 2020-09-08 | 2023-11-03 | Thales Sa | dispositif implémentant un filtre convolutionnel d'un réseau de neurones |
| CN112561034A (zh) * | 2020-12-04 | 2021-03-26 | 深兰人工智能(深圳)有限公司 | 一种神经网络加速装置 |
| US12417390B2 (en) | 2021-06-16 | 2025-09-16 | SanDisk Technologies, Inc. | Enhanced digital signal processor (DSP) NAND flash |
| CN113705784B (zh) * | 2021-08-20 | 2025-01-24 | 江南大学 | 一种基于矩阵共享的神经网络权重编码方法及硬件系统 |
| US12112200B2 (en) | 2021-09-13 | 2024-10-08 | International Business Machines Corporation | Pipeline parallel computing using extended memory |
| CN114186667B (zh) * | 2021-12-07 | 2024-08-23 | 华中科技大学 | 一种循环神经网络权重矩阵向忆阻阵列的映射方法 |
| KR102574165B1 (ko) * | 2022-02-23 | 2023-09-01 | 고려대학교 산학협력단 | 스파이킹 신경망에서 신경 암호 기반 소리 분류 장치 및 그 방법 |
| CN116707514B (zh) * | 2023-08-09 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 一种多输出忆阻器等效电路、应用系统及控制方法 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9269043B2 (en) * | 2002-03-12 | 2016-02-23 | Knowm Tech, Llc | Memristive neural processor utilizing anti-hebbian and hebbian technology |
| US6999953B2 (en) * | 2002-07-03 | 2006-02-14 | Energy Conversion Devices, Inc. | Analog neurons and neurosynaptic networks |
| US9269042B2 (en) * | 2010-09-30 | 2016-02-23 | International Business Machines Corporation | Producing spike-timing dependent plasticity in a neuromorphic network utilizing phase change synaptic devices |
| HK1199768A1 (en) * | 2011-08-25 | 2015-07-17 | 康奈尔大学 | Retinal encoder for machine vision |
| US10140573B2 (en) * | 2014-03-03 | 2018-11-27 | Qualcomm Incorporated | Neural network adaptation to current computational resources |
| US9346167B2 (en) * | 2014-04-29 | 2016-05-24 | Brain Corporation | Trainable convolutional network apparatus and methods for operating a robotic vehicle |
| US20150339589A1 (en) * | 2014-05-21 | 2015-11-26 | Brain Corporation | Apparatus and methods for training robots utilizing gaze-based saliency maps |
-
2014
- 2014-08-28 FR FR1458088A patent/FR3025344B1/fr not_active Expired - Fee Related
-
2015
- 2015-08-18 WO PCT/EP2015/068955 patent/WO2016030230A1/fr not_active Ceased
- 2015-08-18 EP EP15756132.5A patent/EP3186752A1/fr not_active Withdrawn
- 2015-08-18 US US15/505,231 patent/US11055608B2/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI774147B (zh) * | 2019-12-09 | 2022-08-11 | 大陸商南京惟心光電系統有限公司 | 脈衝卷積神經網路演算法、積體電路及其製造方法、運算裝置及存儲介質 |
Also Published As
| Publication number | Publication date |
|---|---|
| FR3025344B1 (fr) | 2017-11-24 |
| US20170200078A1 (en) | 2017-07-13 |
| WO2016030230A1 (fr) | 2016-03-03 |
| US11055608B2 (en) | 2021-07-06 |
| FR3025344A1 (fr) | 2016-03-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3186752A1 (fr) | Reseau de neurones convolutionnels | |
| EP3449423B1 (fr) | Dispositif et procede de calcul de convolution d'un reseau de neurones convolutionnel | |
| EP3659072B1 (fr) | Calculateur pour reseau de neurones impulsionnel avec agregation maximale | |
| US12111878B2 (en) | Efficient processing of convolutional neural network layers using analog-memory-based hardware | |
| KR102873031B1 (ko) | 재구성가능하고 시간적으로 코딩된 컨볼루션 스파이킹 신경망에서의 특징들의 이벤트 기반 분류 | |
| WO2017186830A1 (fr) | Dispositif et procede de distribution de donnees de convolution d'un reseau de neurones convolutionnel | |
| Krestinskaya et al. | Neuromemristive circuits for edge computing: A review | |
| US10740671B2 (en) | Convolutional neural networks using resistive processing unit array | |
| Panda et al. | Asp: Learning to forget with adaptive synaptic plasticity in spiking neural networks | |
| US11087204B2 (en) | Resistive processing unit with multiple weight readers | |
| Zhang et al. | Memristive quantized neural networks: A novel approach to accelerate deep learning on-chip | |
| Demirağ et al. | PCM-trace: scalable synaptic eligibility traces with resistivity drift of phase-change materials | |
| KR102774735B1 (ko) | 아날로그 인공지능 네트워크 추론을 위한 행별 컨볼루션 신경망 매핑을 위한 효율적 타일 매핑 | |
| US20240005162A1 (en) | Error-triggered learning of multi-layer memristive spiking neural networks | |
| Maan et al. | Memristive threshold logic circuit design of fast moving object detection | |
| Vianello et al. | Resistive memories for spike-based neuromorphic circuits | |
| He et al. | Memristive residual capsnet: a hardware friendly multi-level capsule network | |
| Lewden et al. | On-the-fly learning with mixed-mode spiking neural network and passive memristive array: application to neuromorphic cameras | |
| Serrano-Gotarredona et al. | Spike-timing-dependent-plasticity with memristors | |
| Bürger et al. | Volatile memristive devices as short-term memory in a neuromorphic learning architecture | |
| KR20230133051A (ko) | 뉴로모픽 반도체 소자 및 동작 방법 | |
| Chen et al. | How could imperfect device properties influence the performances of spiking neural networks? | |
| Ryndin et al. | Neuromorphic Electronic Module Based on the Use of the Memristor Electronic-Component Base for Image Recognition | |
| CN119047528A (zh) | 忆阻器突触电路、人工神经元、由此构成的神经网络系统 | |
| Liu et al. | Rerise: An adversarial example restoration system for neuromorphic computing security |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20170216 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| AX | Request for extension of the european patent |
Extension state: BA ME |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17Q | First examination report despatched |
Effective date: 20210209 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20230301 |