EP4292017A1 - Circuit neuromorphique et procédé d'entraînement associé - Google Patents

Circuit neuromorphique et procédé d'entraînement associé

Info

Publication number
EP4292017A1
EP4292017A1 EP22710296.9A EP22710296A EP4292017A1 EP 4292017 A1 EP4292017 A1 EP 4292017A1 EP 22710296 A EP22710296 A EP 22710296A EP 4292017 A1 EP4292017 A1 EP 4292017A1
Authority
EP
European Patent Office
Prior art keywords
neuron
neurons
synapse
pulse
neuromorphic circuit
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.)
Pending
Application number
EP22710296.9A
Other languages
German (de)
English (en)
Inventor
Julie Grollier
Erwann MARTIN
Damien QUERLIOZ
Teodora PETRISOR
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Centre National de la Recherche Scientifique CNRS
Thales SA
Universite Paris Saclay
Original Assignee
Centre National de la Recherche Scientifique CNRS
Thales SA
Universite Paris Saclay
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Centre National de la Recherche Scientifique CNRS, Thales SA, Universite Paris Saclay filed Critical Centre National de la Recherche Scientifique CNRS
Publication of EP4292017A1 publication Critical patent/EP4292017A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron

Definitions

  • the present invention relates to a neuromorphic circuit capable of implementing a neural network and also relates to a method for training the neural network of the neuromorphic circuit.
  • a CPU is a processor, the acronym CPU coming from the English term “Central Processing Unit” literally meaning central processing unit while a GPU is a graphics processor, the acronym GPU coming from the English term “Graphics Processing Unit” literally meaning graphics unit treatment.
  • a neural network is generally made up of a succession of layers of neurons, each of which takes its inputs from the outputs of the previous layer. More precisely, each layer comprises neurons taking their inputs from the outputs of the neurons of the previous layer. Each layer is connected by a plurality of synapses. A synaptic weight is associated with each synapse. It is a real number, which takes both positive and negative values. For each layer, the input of a neuron is the weighted sum of the outputs of the neurons of the previous layer, the weighting being made by the synaptic weights.
  • Von Neumann bottleneck also called “Von Neumann bottleneck” according to its English name
  • a problem of Von Neumann bottleneck arises from the fact that the implementation of a deep neural network (more of three layers and ranging up to several tens) involves using both the memory or memories and the processor while these latter elements are spatially separated.
  • CMOS complementary metal oxide semiconductor
  • CMOS complementary metal oxide semiconductor
  • a neural network based on technologies of the optical type is also known.
  • CMOS neural networks and CMOS synapses are synapses using memristors.
  • memristor or memristance
  • the name is a portmanteau word formed from the two English words memory and resistor.
  • a memristor is a non-volatile memory component, the value of its electrical resistance changing with the application of a voltage for a certain time and remaining at this value in the absence of voltage.
  • each neuron occupies several tens of micrometers per side.
  • each synapse also occupies several tens of micrometers per side.
  • the number of neurons and synapses which can be integrated is limited, which results in a reduction in the performance of the neural network.
  • impulse neural networks in addition to the aforementioned issues, there is also the difficulty of implementing training since the gradient backpropagation technique which is currently the most effective is not directly usable.
  • the description describes a neuromorphic circuit suitable for implementing a network of impulse neurons, the neuromorphic circuit comprising synapses produced by a set of memristors arranged in the form of a matrix network, each synapse having a value.
  • the neuromorphic circuit comprises neurons, each neuron being capable of emitting impulses at a variable rate, each neuron being connected to one or more neurons via a synapse, the neurons being arranged in successive layers of neurons, the layers of neurons comprising a layer input, at least one hidden layer of neurons and an output layer, the synapses being bidirectional for the neurons of the at least one hidden layer of neurons and of the output layer.
  • the neuromorphic circuit comprises a neural network training module, for at least one bidirectional synapse connecting a first neuron to a second neuron, the training module comprising, for the first neuron and the second neuron, an estimation unit suitable for obtaining an estimate of the time derivative of the rate of pulses emitted by the neuron.
  • the training module also comprises an interconnection between the synapse and each neuron, the interconnection having at least two positions, and a controller suitable for sending a control signal to the interconnection when the first neuron has emitted an impulse, the control signal modifying the position of the interconnection so that the estimation unit of the second neuron is connected to the synapse.
  • the neuromorphic circuit has one or more of the following characteristics, taken in isolation or according to all the technically possible combinations:
  • the controller is also capable of synchronizing the two neurons so that the two neurons emit control signals modifying the value of the synapse according to the estimation of the time derivative of the rate of pulses emitted by the second neuron.
  • each memristor has a non-zero conductance for a voltage above a positive threshold and for a voltage below a negative threshold
  • the first neuron also being capable of emitting as a control signal a pulse whose amplitude is at each instant equal to one of the positive threshold and the negative threshold, the pulse preferably comprising a single change in amplitude.
  • the second neuron is capable of emitting as a control signal a pulse proportional to the estimate of the time derivative of the pulse rate obtained by the estimation unit.
  • the controller controls the two neurons so that the two control signals are emitted simultaneously.
  • the interconnection comprises a sub-circuit for each neuron to which the synapse is connected, each sub-circuit comprising two switches.
  • the estimation unit comprises a subunit for obtaining the rate of pulses emitted by said neuron, the obtaining subunit encoding the rate of pulses in an output signal, the subunit for pulse rate obtaining is preferably a leaky integrator circuit, the estimating unit having a delay of the output signal of the obtaining sub-unit, to obtain a delayed signal, and a subtractor of the signal output of the obtaining subunit and the delayed signal of the retarder, to obtain a difference signal.
  • the neuromorphic circuit further comprises a filter at the output of the subtractor, the filter preferably being a low-pass filter.
  • the neuron is produced by a pulse relaxation oscillator.
  • the description also describes a method for driving a network of impulse neurons that a neuromorphic circuit is capable of implementing, the neuromorphic circuit comprising synapses produced by a set of memristors arranged in the form of a matrix network, each synapse having a value, the neuromorphic circuit comprising neurons, each neuron being able to emit impulses according to a variable rate, each neuron being connected to one or more neurons via a synapse.
  • the neurons are arranged in layers of successive neurons, the layers of neurons comprising an input layer, at least one hidden layer of neurons and an output layer, the synapses being bidirectional for the neurons of the at least one hidden layer of neurons and of the output layer.
  • the neuromorphic circuit also comprises a neural network training module, for at least one bidirectional synapse connecting a first neuron to a second neuron, the training module comprising, for each neuron, an estimation unit capable of obtaining a estimation of the time derivative of the rate of pulses emitted by the neuron, an interconnection between the synapse and each neuron, the interconnection having at least two positions, and a controller.
  • the training method includes the steps of the controller sending a control signal to the interconnect when the first neuron has emitted a pulse, and modifying the position of the interconnect so that the unit estimation of the second neuron is connected to the synapse.
  • FIG. 1 is a schematic representation of an example of part of a neuromorphic circuit comprising a plurality of neurons and synapses
  • FIG. 2 is a schematic representation of an example of a neural network
  • FIG. 3 is a graphical representation of the behavior of a memristor
  • FIG. 4 is a schematic representation of an example of a synapse and two neurons
  • FIG. 5 is a schematic representation of an example of an operating timing diagram for updating the synapse of Figure 4.
  • a portion of a neural network neuromorphic circuit 10 is shown in Figure 1.
  • the neuromorphic circuit 10 is a single chip. This means that all the components which will be described later are located on the same chip.
  • the neuromorphic circuit 10 is suitable for implementing a neural network 12 as shown schematically in Figure 2.
  • the neural network 12 described is a network comprising an ordered succession of layers 14 of neurons 16 each of which takes its inputs from the outputs of the previous layer 14.
  • a neuron or a nerve cell
  • Neurons ensure the transmission of a bioelectrical signal called nerve impulses.
  • Neurons have two physiological properties: excitability, i.e. the ability to respond to stimulation and convert it into nerve impulses, and conductivity, i.e. the ability to transmit signals. impulses.
  • excitability i.e. the ability to respond to stimulation and convert it into nerve impulses
  • conductivity i.e. the ability to transmit signals. impulses.
  • activation a mathematical function, called activation, which has the property of being non-linear (to be able to transform the input in a useful way) and preferentially of being derivable (to allow gradient backpropagation learning).
  • the activation function in this case can be represented as a function giving the variation of the average pulse emission frequency with the input current.
  • a neuron 16 is a component performing a function equivalent to these latter models.
  • each layer 14 comprises neurons 16 taking their inputs from the outputs of the neurons 16 of the previous layer 14.
  • the neural network 12 described is a network comprising a single hidden layer of neurons 18.
  • this number of hidden layers of neurons is not limiting.
  • the uniqueness of the hidden layer of neurons 18 means that the neural network 10 has an input layer 20 followed by the hidden layer of neurons 18, itself followed by an output layer 22.
  • the layers are indexable by an integer index i, the first layer corresponding to the input layer 20 and the last to the output layer 22.
  • Each layer 14 is connected by a plurality of synapses 24.
  • the synapse designates a functional contact zone which is established between two neurons 16. Depending on its behavior, the biological synapse can excite or even inhibit the downstream neuron in response to the upstream neuron.
  • a positive synaptic weight corresponds to an excitatory synapse while a negative synaptic weight corresponds to an inhibitory synapse.
  • Biological neural networks learn by altering synaptic transmissions throughout the network.
  • formal neural networks can be trained to perform tasks by modifying synaptic weights according to a learning rule.
  • a synapse 24 is a component performing a function equivalent to a synaptic weight of modifiable value.
  • a synaptic weight is therefore associated with each synapse 24.
  • it is a real number, which takes both positive and negative values.
  • the input of a neuron 16 is the weighted sum of the outputs of the neurons 16 of the previous layer 14, the weighting being made by the synaptic weights.
  • each layer 14 of neurons 16 is fully connected.
  • a fully connected neuron layer is a layer in which the neurons in the layer are each connected to all the neurons in the previous layer. Such a type of layer is more often called according to the English term “fully connected”.
  • the neural network 10 is a pulsed neural network.
  • a spiking neural network is often referred to by the acronym SNN which refers to the English denomination of “Spiking Neural Network”.
  • a neuron is a time-varying dynamic element as described above and characterized here by its spiking frequency.
  • a neuron 16 called pre-synaptic, upstream, emits an impulse
  • synapse 24 weights this impulse and transmits it to neuron 16, called post-synaptic, downstream, which eventually emits an impulse in turn.
  • the stimulation transmitted by the synapse 24 is a stimulation of a part of the neuron 16 downstream, called membrane and presenting a potential. If this membrane potential charges beyond a so-called activation threshold, neuron 16 emits an impulse. Specifically, synapse 24 performs a multiplication between weight and input activation. The input activation of neuron 16 downstream is the output signal sent by neuron 16 upstream.
  • the downstream neuron 16 increases its membrane potential, compares it to a threshold and emits an output pulse when the membrane potential exceeds this threshold.
  • a neuron 16 upstream is permanently activated (like an input neuron) in order to add biases to the membrane potential of the neuron 16 downstream which enrich the expressiveness of the function learned by the neural network 12.
  • Such a neuron 16 is called “bias neuron” in the following description.
  • neurons 16 are connected by a synapse 24 which is bidirectional.
  • a circuit implementing a synapse 24 will simply be called synapse 24 or a circuit physically implementing a neuron 16 will simply be called neuron 16.
  • part of neuromorphic circuit 10 represented in figure 1 corresponds to a set of two layers 14 of neurons 16 connected by synapses 24.
  • neurons 16 aligned vertically form a first layer 14 and neurons 16 aligned horizontally form a second layer 14.
  • the neuromorphic circuit 10 has 16 neurons, 24 synapses and a 26 training module.
  • Each neuron 16 is made with a leakage and pulse emission integrator.
  • LIF Leaky Integrate-and-Fire
  • each neuron 16 integrates the current received as input.
  • Each neuron 16 emits an impulse when the membrane potential reaches a threshold.
  • neuron 16 resets the membrane potential and does not integrate the current received at the input for a period.
  • the period of non-integration is called the refractory period (more often referred to as the “refractory period” in reference to the corresponding English name).
  • the neuron 16 After the refractory period, the neuron 16 again integrates the current received as input and the same mechanism begins again.
  • the neuron 16 thus emits pulses at a variable rate over time.
  • the pulse emission rate is p.
  • the set of pulses is usually called “pulse train”.
  • each neuron 16 is a pulse relaxation oscillator.
  • each neuron 16 is a CMOS circuit comprising as main elements: a membrane capable of charging in integrating the currents generated by the neurons 16 of the preceding layers 14, a comparator, a pulse generator and an element producing the leak.
  • the membrane of neuron 16 has a capacity as its main element.
  • the leakage resistor can be made with an NMOS transistor (the abbreviation referring to the English name of "Metal-Oxide-Semiconductor” which literally means “metal - oxide - semiconductor", the N indicating that it is an NJ-type MOS transistor in saturation mode.
  • a second NMOS transistor mounted in parallel with the membrane capacitor makes it possible to produce a switch across the terminals of the capacitor and to discharge it.
  • the comparator is used to detect whether the voltage across the terminals of the capacity exceeds the activation threshold of neuron 16.
  • the neuron 16 can also include additional modules, in particular to control the adaptability of the thresholds, the pattern of emission of the pulses or the shape of the pulses.
  • a neuron 16 may have a size ranging from 28 nanometers (nm) to 180 nm.
  • a technology of the FDSOI type could be used.
  • the abbreviation FDSOI refers to the English name of "Fully Depleted Silicon On Insulator” which literally means silicon completely depleted on insulator.
  • a neuron 16 is a neuristor, i.e. a component based on materials with volatile resistive switching.
  • a neuron 16 is composed of two active memristors.
  • the memristors may be based on resistive materials of the NbC>2- x or VO x type (where x is between 0 and 2), with negative differential resistance.
  • Neurons 16 have an oscillation frequency which depends on the input current.
  • a module which adapts the shape of the impulses is added so that it is possible to modify the synapses, as will be explained later.
  • Each synapse 24 is made by a set of memristors 30.
  • a memristor 30 is a component whose value of its electrical resistance changes permanently when a current is applied. Thus, a data can be recorded and rewritten by a control current. Such behavior is notably observed in phase change materials, ferroelectric tunnel junctions or redox memories based on oxides such as HfO x or Ti0 2-X .
  • the change in conductance of a memristor 30 depends on the amplitude and duration of the voltage pulses applied across the memristor 30.
  • Such a memristor 30 exhibits behavior that can be modeled as follows: Where :
  • • s + is the slope of the conductance of the memristor 30 as a function of the voltage for an applied voltage greater than a positive threshold voltage V t + h ,
  • G min is the minimum conductance that can be reached by the memristor 30,
  • G max is the maximum conductance attainable by the memristor 30,
  • • h + is a non-linearity coefficient corresponding to the fact that the amplitude of change in the conductance can depend on the conductance state of the memristor 30,
  • ⁇ pulse is the duration of the voltage pulse applied to memristor 30.
  • the set of the two memristors 30 makes it possible to produce a weight of any sign.
  • one of the memristors 30 is kept fixed at an intermediate value and the conductance of the other memristor 30 varies according to the voltage pulse applied to the memristor.
  • the memristors 30 are arranged in the form of a matrix network.
  • the second neuron 16 of the second layer 14 will have an incident current / corresponding to:
  • index i gives the number of the synapse 24 concerned and the activation of the neuron 16 concerned.
  • the training module 26 is a module capable of training the neural network 12. Training a neural network 12 consists in determining the appropriate weights for the neural network 12 to perform the desired task.
  • Training module 26 is capable of operating at an adjustable learning rate.
  • the neuromorphic circuit 10 comprises a dedicated adjustment component, such as a resistor.
  • the resistor can be positioned at the output of the 42fd filter which will be described later.
  • the training module 26 includes an estimation unit 32 for each neuron 16 and a controller 34.
  • the estimation unit 32 is able to obtain an estimation of the time derivative of the rate of pulses emitted by the neuron 16.
  • the estimation unit 32 is capable of obtaining an estimation of the derivative of the rate of pulses at a given instant.
  • the estimation unit 32 takes as input the train of pulses emitted by the neuron 16 and outputs a signal encoding the derivative of the rate of emission of the pulses.
  • the signal is an impulse signal proportional to the estimated emission rate.
  • the estimation unit 32 comprises a obtaining sub-unit 36, a retarder 38 and a subtractor 40.
  • Obtaining subunit 36 is a subunit for obtaining the rate of pulses emitted by neuron 16.
  • the obtaining subunit 36 takes as input the train of pulses emitted by the neuron 16 to which the obtaining subunit 36 is connected and emits at its output an output signal encoding the rate of emitted pulses.
  • the pulse rate obtaining subunit 36 is a leaky integrator circuit.
  • the leakage coefficient of the leakage integrator circuit is denoted y u .
  • the obtaining sub-unit 36 then able to generate a voltage Vu varying in proportion to the rate of emission p of the pulse train.
  • the delay 38 is adapted to delay the signal transmitted by the obtaining sub-unit 36. More precisely, the delay 38 is capable of introducing a delay of duration t into the signal of the obtaining sub-unit 36.
  • the retarder 38 thus outputs a delayed signal.
  • Such a signal can be written mathematically as V u (t - t).
  • Subtractor 40 is a subtractor of the output signal of get subunit 36 and the delayed signal of delay timer 38.
  • the inputs of the subtractor 40 are thus connected to the outputs of the obtaining subunit 36 and of the retarder 38.
  • the signal at the output of the subtractor 40 is called the difference signal.
  • the difference signal V D verifies the following relations:
  • the RV difference signal is a signal encoding the derivative of the pulse emission rate.
  • the difference signal V D is a signal having an amplitude proportional to the derivative of the emission rate of the pulses.
  • the estimation unit 32 also comprises a filter 42 and a multiplication sub-unit 44.
  • Filter 42 is positioned at the output of subtractor 40.
  • the filter 42 is thus a filter of the difference signal serving to attenuate the variations thereof.
  • filter 42 is a low-pass filter.
  • the multiplication sub-unit 44 is capable of multiplying an incident signal by a coefficient which is here the given learning rate of the training module 26.
  • Multiplication subunit 44 is placed at the output of filter 42.
  • Each of the subunits of the estimation unit 32 is implemented as a CMOS component.
  • the output of the estimation unit 32 is thus a signal proportional to the time derivative of the rate of transmitted pulses p.
  • the proportionality coefficient is denoted e in the following.
  • the controller 34 is able to send a control signal to all the synapses 24 to which the neuron 16 is connected.
  • the controller 34 is able to send the activation signal when the first neuron 16 has emitted a pulse. Controller 34 sends the enable signal to interconnect 46 which is also part of drive module 26.
  • the interconnection 46 has several positions, and in particular a position in which the estimation unit 32 of the second neuron 16 is connected to the synapse 24 and another position in which the estimation unit 32 of the second neuron 16 is not is not connected to synapse 24.
  • the control signal causes the position of the interconnection 46 to be modified so that the estimation unit 32 of the second neuron 16 is connected to the synapse 24.
  • the interconnection 46 comprises a sub-circuit 54 for each neuron 16 to which the synapse 24 is connected.
  • Synapse 24 is connected at one end to sub-circuit 54 of the first neuron 16 and at the other end to sub-circuit 54 of the second neuron 16.
  • Each sub-circuit 54 includes two switches 56 and 58.
  • Each position of switches 56 and 58 corresponds to a state of switches 56 and 58.
  • each switch 56 and 58 is a transistor.
  • four positions are possible: on state for the two transistors 56 and 58 (first position), off state for the two transistors 56 (second position) and 58 and on state for one of the transistors 56 and 58 and off state for the other of the two transistors 56 and 58 (third and fourth positions).
  • transistors 56 and 58 are opposite, so that only two positions are possible, namely on state for one of transistors 56 and 58 and off state for the other of them. two transistors 56 and 58.
  • Each of these transistors 56 and 58 has a drain D, a gate G and a source S.
  • the drive module 26 also comprises, for each neuron 16, a current conveyor 60 ensuring the flow of current between a neuron 16 and other neurons 16.
  • the current conveyor 60 is a tripole which ensures that the signals emitted by the neurons 16 propagate bidirectionally.
  • the current conveyor 60 makes it possible both to send an impulse to the neurons 16 of the next layer 14 and to impose a value on the synapse 24 connected upstream.
  • the current conveyor 60 copies the post-synaptic resting potential on one of the terminals of the synapse 24, the other terminal of the synapse 24 having the presynaptic resting potential.
  • the current generated proportional to the resistance of a synapse 24 arrives at one of the two input terminals of the conveyor of current 60 and is copied to the output terminal of the synapse 24 in order to charge the membrane capacity of the post-synaptic neuron 16.
  • the activation threshold is exceeded, the post-synaptic potential generated is sent to the next layer 14 as well as to the second input of the current conveyor 60 in order to be able to write on the synapse 24.
  • the drain D of the first transistor 56 is connected to the output of the estimation unit 32, the gate G of the first transistor 56 is connected to the controller 34 and the source S of the first transistor 56 is connected to the synapse 24.
  • the drain D of the second transistor 58 is connected to the output of the current conveyor 60, the gate G of the second transistor 58 is connected to the controller 34 and the source S of the second transistor 58 is connected to the synapse 24.
  • the controller 34 is also capable of synchronizing the two neurons 16 so that the two neurons 16 emit control signals modifying the value of the synapse 24 according to the estimate of the time derivative of the rate of pulses emitted by the second neuron 16.
  • control signals emitted by each neuron 16 differ as will be explained later in this description.
  • control signals are synchronized so that the voltage applied to the synapse 24 allows it to be updated to the desired value.
  • the operation of the neuromorphic circuit 10, and more specifically of the training module 26, is now described with reference to a method of training the neural network 12.
  • the first neuron 16 emits an impulse.
  • Controller 34 sends an activation signal to all synapses 24 to which neuron 16 is connected.
  • the controller 34 then forces the first transistor 56 of the sub-circuit 54 of the second neuron 16 to be in the on state.
  • the controller 34 makes it possible to ensure that the sub-circuits 54 of the neurons 16 are in the appropriate state to emit a control signal at a time to.
  • the command signals emitted are shown in the timing diagram in Figure 5.
  • the first neuron 16 then emits a first control signal whose amplitude is at each instant equal to one of the positive threshold voltage V h of the memristor 30 to be updated and the negative threshold voltage V t ⁇ h of the memristor 30 to update.
  • the first control signal comprises a single amplitude change, so that the first control signal comprises a pulse of positive amplitude followed by a pulse of negative amplitude.
  • the positive amplitude pulse has as its amplitude the positive threshold voltage V h of the memristor 30 to be updated while the negative amplitude pulse has as its amplitude the negative threshold voltage V t ⁇ h of the memristor 30 to be updated. up to date.
  • the positive amplitude pulse and the negative amplitude pulse have the same duration denoted At imp .
  • the estimation unit 32 of each second neuron 16 is triggered and emits a voltage pulse having a pulse proportional to the time derivative of the rate of pulses emitted, the pulse having a duration 2*At imp .
  • This voltage pulse corresponds to the second control signal.
  • the controller 34 the second control signal is thus synchronized with the first control signal, the pulse emitted by the estimation unit 32 temporally covering the first control signal (simultaneous transmission).
  • the modification signal is such that the voltage applied in the memristor 30 is therefore first between time to and time t 0 + At imp a voltage of amplitude V t + h + er then between time t 0 + At imp and time t 0 + 2 * At imp a voltage of amplitude V t ⁇ h + er.
  • the update is performed according to the value of the time derivative of the rate of pulses emitted by the second neuron 16.
  • the update is on the one hand carried out according to the value of the aforementioned time derivative and on the other hand carried out according to the value of the rate of pulses emitted by the first neuron 16.
  • the rate of change in the value of synapse 24 is the product of the rate of impulses emitted by the first neuron 16 with the time derivative of the rate of impulses emitted by the second neuron 16.
  • the update of the same synapse 24 is also performed according to the value of the time derivative of the rate of impulses emitted by the first neuron 16.
  • Equilibrium Propagation a modification of a learning law called equilibrium propagation (referred to as “Equilibrium Propagation”), which allows the weights to be modified continuously, depending on the local dynamics of the neurons 16 and which encodes the derivative of the error in the changes in pulse frequencies during the training phase of the neural network 12.
  • This modification of the learning law allows the implementation with memristors with functional performance equivalent to the backpropagation of the gradient of the error, by adding only a drive module 26 which consumes little resources.
  • the training module 26 comprises a set of inexpensive units in terms of hardware for each neuron 16 instead of costly external memories in place and in execution time, as well as specific circuits to modify each memristor in function of the gradient of the explicit error.
  • a learning module 26 that is relatively easy to implement since it suffices to use a controller 34 (depending on the case, a central controller or a controller per pair of neurons 16), a unit of estimation 32 for each neuron 16 as well as an interconnection 46 for each synapse 24.
  • the drive module 26 can be made with CMOS components, the drive module 26 has good efficiency.
  • the training module 26 thus allows a network of impulse neurons to learn with good precision while maintaining a high integrability of the elements of the neuromorphic circuit 10.
  • Such a neuromorphic circuit 10 is in particular suitable for performing image classification with local supervised learning.
  • the neuromorphic circuit 10 is then a chip making it possible to carry out an adaptive classification at high speed and at low power. In particular, such a neuromorphic circuit 10 can learn during use.
  • the robustness to faults of the neuromorphic circuit 10 can be improved by considering monolithic elements of the transistor type - one memristor per synapse (English acronym 1T1 R) .
  • This structure allows a finer adjustment of the conductances of the memristors 30 and remains below the on-chip footprint of the production of all-CMOS synapses.

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)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Feedback Control In General (AREA)
  • Air Conditioning Control Device (AREA)

Abstract

La présente invention concerne un circuit neuromorphique mettant en œuvre un réseau de neurones impulsionnel et comprenant: - des synapses (24) bidirectionnelles réalisées par un ensemble de memristors (30) agencés matriciellement, - des neurones (16) émettant des impulsions selon un taux variable et reliés à des neurones (16) via une synapse (24), et - un module d'entraînement (26) du réseau de neurones comportant, pour au moins une synapse (24) bidirectionnelle une unité d'estimation (32) obtenant une estimation de la dérivée temporelle du taux d'impulsions de chaque neurone (16), une interconnexion (46) à au moins deux positions entre la synapse (24) et chaque neurone (16), et un contrôleur (34) envoyant un signal de contrôle à destination de l'interconnexion (46) après une impulsion, le signal modifiant la position de l'interconnexion (46) pour connecter l'unité d'estimation (32) et la synapse (24).

Description

Circuit neuromorphique et procédé d’entraînement associé
La présente invention concerne un circuit neuromorphique propre à mettre en œuvre un réseau de neurones et se rapporte également à un procédé d’entraînement du réseau de neurones du circuit neuromorphique.
Le développement de l’internet et des capteurs connectés conduit à permettre l’obtention de quantités considérables de données. Ce phénomène souvent désigné sous le terme de « big data » implique l’emploi d’ordinateurs pour pouvoir exploiter l’ensemble des données obtenues. Une telle exploitation peut être utilisée dans de multiples domaines, parmi lesquelles le traitement automatique de données, l’aide au diagnostic, l’analyse prédictive, les véhicules autonomes, la bioinformatique ou la surveillance.
Pour mettre en œuvre une telle exploitation, il est connu d’utiliser des algorithmes d’apprentissage automatique faisant partie de programmes pouvant être exécutés sur des processeurs tels que les CPU ou les GPU. Un CPU est un processeur, le sigle CPU provenant du terme anglais « Central Processing Unit » signifiant littéralement unité centrale de traitement tandis qu’un GPU est un processeur graphique, le sigle GPU provenant du terme anglais « Graphics Processing Unit » signifiant littéralement unité graphique de traitement.
Parmi les techniques de mise en œuvre d’apprentissage, l’emploi de réseaux de neurones formels, et notamment de réseaux de neurones profonds, est de plus en plus répandu, ces structures étant considérées comme très prometteuses du fait de leurs performances pour de nombreuses tâches telles que la classification automatique de données, la reconnaissance de motifs, la traduction et la compréhension automatique de langues, le contrôle robotique, la navigation automatique, les systèmes de recommandations, la détection d’anomalies, la détection de fraudes, l’étude de l’ADN ou encore la découverte de nouvelles molécules.
Un réseau de neurones est en général composé d'une succession de couches de neurones dont chacune prend ses entrées sur les sorties de la couche précédente. Plus précisément, chaque couche comprend des neurones prenant leurs entrées sur les sorties des neurones de la couche précédente. Chaque couche est reliée par une pluralité de synapses. Un poids synaptique est associé à chaque synapse. C’est un nombre réel, qui prend des valeurs positives comme négatives. Pour chaque couche, l’entrée d’un neurone est la somme pondérée des sorties des neurones de la couche précédente, la pondération étant faite par les poids synaptiques. Pour une implémentation dans un CPU ou un GPU, une problématique de goulot d’étranglement de Von Neumann (également appelée « Von Neumann bottleneck » selon sa dénomination anglaise) apparaît du fait que l’implémentation d’un réseau de neurones profond (à plus de trois couches et allant jusqu’à plusieurs dizaines) implique d’utiliser à la fois la ou les mémoires et le processeur alors que ces derniers éléments sont séparés spatialement. Il en résulte un engorgement du bus de communication entre la ou les mémoires et le processeur à la fois pendant que le réseau de neurones une fois entraîné est utilisé pour réaliser une tâche, et, à plus forte raison, pendant que le réseau de neurones est entraîné, c’est-à-dire pendant que ses poids synaptiques sont réglés pour résoudre la tâche en question avec un maximum de performance.
Il est donc souhaitable de développer des architectures matérielles dédiées, entremêlant mémoire et calcul, pour réaliser des réseaux de neurones rapides, faible consommation et capables d’apprendre en temps réel.
Il est connu de réaliser des réseaux de neurones sur la base d’une technologie de type CMOS. Il est entendu par le sigle « CMOS », oxyde métallique semi-conducteur complémentaire (acronyme provenant de l’expression anglaise « Complementary Metal- Oxide-Semiconductor »). Le sigle CMOS désigne aussi bien un procédé de fabrication qu’un composant obtenu par un tel procédé de fabrication.
Il est également connu un réseau de neurones reposant sur des technologies de type optique.
Plus précisément, trois propositions d’architecture font l’objet d’études spécifiques : les réseaux à neurones CMOS et synapses CMOS, les réseaux à neurones optiques et synapses optiques et les réseaux à neurones CMOS et synapses memristives. Des synapses memristives sont des synapses utilisant des memristors. En électronique, le memristor (ou memristance) est un composant électronique passif. Le nom est un mot- valise formé à partir des deux mots anglais memory et resistor. Un memristor est un composant de mémoire non-volatile, la valeur de sa résistance électrique changeant avec l’application d’une tension pendant une certaine durée et restant à cette valeur en l’absence de tension.
Toutefois, selon chacune de ces technologies, chaque neurone occupe plusieurs dizaines de micromètres de côté. Pour les technologies CMOS et optique, chaque synapse occupe également plusieurs dizaines de micromètres de côté. Il en résulte que, sur une surface limitée correspondant par exemple à une puce électronique, le nombre de neurones et de synapses qui peuvent être intégrés est limité, ce qui résulte en une diminution des performances du réseau de neurones. Pour les réseaux de neurones impulsionnels, aux problématiques précitées, s’ajoute aussi la difficulté à implémenter un entraînement puisque la technique de rétropropagation du gradient qui est la plus efficace actuellement n’est pas directement utilisable.
Pour entraîner les réseaux de neurones impulsionnels, il est connu d’utiliser un principe dérivé de la règle d’Hebb selon lequel deux neurones ont un lien synaptique plus forts lorsqu’ils émettent des impulsions simultanément. Par exemple, une contrainte est appliquée sur chaque synapse pour que le poids associé soit augmenté si les deux neurones reliés à la synapse ont émis chacun une impulsion avec un intervalle de temps inférieur à un seuil prédéfini ou soit diminué dans le cas contraire.
Néanmoins, du fait que cette technique ne résout pas l’optimisation d’une fonction objectif globale, sa précision n’est pas toujours satisfaisante.
Il existe donc un besoin pour un circuit neuromorphique permettant d’entraîner un réseau de neurones impulsionnel à une précision satisfaisante, tout en conservant une forte intégrabilité des éléments du circuit neuromorphique et une réalisation locale de l’entraînement.
A cet effet, la description décrit un circuit neuromorphique propre à mettre en œuvre un réseau de neurones impulsionnel, le circuit neuromorphique comprenant des synapses réalisées par un ensemble de memristors agencés sous forme d’un réseau matriciel, chaque synapse présentant une valeur. Le circuit neuromorphique comprend des neurones, chaque neurone étant propre à émettre des impulsions selon un taux variable, chaque neurone étant relié à un ou plusieurs neurones via une synapse, les neurones étant agencés en couches de neurones successives, les couches de neurones comprenant une couche d’entrée, au moins une couche cachée de neurones et une couche de sortie, les synapses étant bidirectionnelles pour les neurones de l’au moins une couche cachée de neurones et de la couche de sortie. Le circuit neuromorphique comprend un module d’entraînement du réseau de neurones, pour au moins une synapse bidirectionnelle reliant un premier neurone à un deuxième neurone, le module d’entraînement comportant, pour le premier neurone et le deuxième neurone, une unité d’estimation propre à obtenir une estimation de la dérivée temporelle du taux d’impulsions émises par le neurone. Le module d’entraînement comporte également une interconnexion entre la synapse et chaque neurone, l’interconnexion présentant au moins deux positions, et un contrôleur propre à envoyer un signal de contrôle à destination de l’interconnexion lorsque le premier neurone a émis une impulsion, le signal de contrôle modifiant la position de l’interconnexion pour que l’unité d’estimation du deuxième neurone soit connectée à la synapse. Selon des modes de réalisation particuliers, le circuit neuromorphique présente une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou selon toutes les combinaisons techniquement possibles :
- le contrôleur est également propre à synchroniser les deux neurones pour que les deux neurones émettent des signaux de commande modifiant la valeur de la synapse en fonction de l’estimation de la dérivée temporelle du taux d’impulsions émis par le deuxième neurone.
- chaque memristor présente une conductance non nulle pour une tension supérieure à un seuil positif et pour une tension inférieure à un seuil négatif, le premier neurone étant également propre à émettre comme signal de commande une impulsion dont l’amplitude est à chaque instant égale à l’un parmi le seuil positif et le seuil négatif, l’impulsion comportant, de préférence, un seul changement d’amplitude.
- le deuxième neurone est propre à émettre comme signal de commande une impulsion proportionnelle à l’estimation de la dérivée temporelle du taux d’impulsions obtenue par l’unité d’estimation.
- le contrôleur contrôle les deux neurones pour que les deux signaux de commande soient émis simultanément.
- l’interconnexion comporte un sous-circuit pour chaque neurone auquel la synapse est reliée, chaque sous-circuit comprenant deux interrupteurs.
- l’unité d’estimation comporte une sous-unité d’obtention du taux d’impulsions émises par ledit neurone, la sous-unité d’obtention codant le taux d’impulsions dans un signal de sortie, la sous-unité d’obtention du taux d’impulsions est, de préférence, un circuit intégrateur à fuites, l’unité d’estimation comportant un retardateur du signal de sortie de la sous-unité d’obtention, pour obtenir un signal retardé, et un soustracteur du signal de sortie de la sous-unité d’obtention et du signal retardé du retardateur, pour obtenir un signal de différence.
- le circuit neuromorphique comporte, en outre, un filtre en sortie du soustracteur, le filtre étant, de préférence, un filtre passe-bas.
- le neurone est réalisé par un oscillateur à relaxation d’impulsions.
La description décrit aussi un procédé d’entraînement d’un réseau de neurones impulsionnel qu’un circuit neuromorphique est propre à mettre en œuvre, le circuit neuromorphique comprenant des synapses réalisées par un ensemble de memristors agencés sous forme d’un réseau matriciel, chaque synapse présentant une valeur, le circuit neuromorphique comprenant des neurones, chaque neurone étant propre à émettre des impulsions selon un taux variable, chaque neurone étant relié à un ou plusieurs neurones via une synapse. Les neurones sont agencés en couches de neurones successives, les couches de neurones comprenant une couche d’entrée, au moins une couche cachée de neurones et une couche de sortie, les synapses étant bidirectionnelles pour les neurones de l’au moins une couche cachée de neurones et de la couche de sortie. Le circuit neuromorphique comprend également un module d’entraînement du réseau de neurones, pour au moins une synapse bidirectionnelle reliant un premier neurone à un deuxième neurone, le module d’entraînement comportant, pour chaque neurone, une unité d’estimation propre à obtenir une estimation de la dérivée temporelle du taux d’impulsions émises par le neurone, une interconnexion entre la synapse et chaque neurone, l’interconnexion présentant au moins deux positions, et un contrôleur. Le procédé d’entraînement comporte les étapes d’envoi par le contrôleur d’un signal de contrôle à destination de l’interconnexion lorsque le premier neurone a émis une impulsion, et de modification de la position de l’interconnexion pour que l’unité d’estimation du deuxième neurone soit connectée à la synapse.
Des caractéristiques et avantages de l’invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d’exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels :
- la figure 1 est une représentation schématique d’un exemple d’une partie de circuit neuromorphique comportant une pluralité de neurones et de synapses,
- la figure 2 est une représentation schématique d’un exemple de réseau de neurones,
- la figure 3 est une représentation graphique du comportement d’un memristor,
- la figure 4 est une représentation schématique d’un exemple d’une synapse et de deux neurones, et
- la figure 5 est une représentation schématique d’un exemple de chronogramme de fonctionnement de la mise à jour de la synapse de la figure 4.
Une partie d’un circuit neuromorphique 10 de réseau de neurones est représentée sur la figure 1 .
Selon l’exemple décrit, le circuit neuromorphique 10 est une puce unique. Cela signifie que l’ensemble des composants qui seront décrits ultérieurement sont situés sur une même puce.
Le circuit neuromorphique 10 est propre à implémenter un réseau de neurones 12 tel que schématisé sur la figure 2.
Le réseau de neurones 12 décrit est un réseau comportant une succession ordonnée de couches 14 de neurones 16 dont chacune prend ses entrées sur les sorties de la couche 14 précédente.
Par définition, en biologie, un neurone, ou une cellule nerveuse, est une cellule excitable constituant l'unité fonctionnelle de base du système nerveux. Les neurones assurent la transmission d'un signal bioélectrique appelé influx nerveux. Les neurones ont deux propriétés physiologiques : l'excitabilité, c'est-à-dire la capacité de répondre aux stimulations et de convertir celles-ci en impulsions nerveuses, et la conductivité, c'est-à- dire la capacité de transmettre les impulsions. Dans les réseaux de neurones formels, le comportement des neurones biologiques est imité par une fonction mathématique, dite d’activation, qui présente la propriété d’être non-linéaire (pour pouvoir transformer l’entrée de manière utile) et préférentiellement d’être dérivable (pour permettre l’apprentissage par rétropropagation du gradient). Des modèles plus proches du neurone biologique existent, dans lesquels le neurone émet des impulsions (ou des trains d’impulsions) avec une certaine fréquence qui dépend des impulsions entrantes. La fonction d’activation dans ce cas peut être représenté comme une fonction donnant la variation de la fréquence moyenne d’émission d’impulsions avec le courant d’entrée. Dans le cadre de cette demande, un neurone 16 est un composant réalisant une fonction équivalente à ces derniers modèles.
Plus précisément, chaque couche 14 comprend des neurones 16 prenant leurs entrées sur les sorties des neurones 16 de la couche 14 précédente.
Dans le cas de la figure 2, le réseau de neurones 12 décrit est un réseau comportant une unique couche cachée de neurones 18. Toutefois, ce nombre de couches cachées de neurones n’est pas limitatif.
L’unicité de la couche cachée de neurones 18 signifie que le réseau de neurones 10 comporte une couche d’entrée 20 suivie par la couche cachée de neurones 18, elle-même suivie par une couche de sortie 22.
Les couches sont indexables par un indice i entier, la première couche correspondant à la couche d’entrée 20 et la dernière à la couche de sortie 22.
Chaque couche 14 est reliée par une pluralité de synapses 24.
En biologie, la synapse désigne une zone de contact fonctionnelle qui s'établit entre deux neurones 16. Suivant son comportement, la synapse biologique peut exciter ou encore inhiber le neurone aval en réponse au neurone amont. Dans les réseaux de neurones formels, un poids synaptique positif correspond à une synapse excitatrice tandis qu’un poids synaptique négatif correspond à une synapse inhibitrice. Les réseaux de neurones biologiques apprennent par la modification des transmissions synaptiques dans l’ensemble réseau. De même, les réseaux de neurones formels peuvent être entraînés à réaliser des tâches en modifiant les poids synaptiques selon une règle d’apprentissage. Dans le cadre de cette demande, une synapse 24 est un composant réalisant une fonction équivalente à un poids synaptique de valeur modifiable.
Un poids synaptique est donc associé à chaque synapse 24. A titre d’exemple, c’est un nombre réel, qui prend des valeurs positives comme négatives. Pour chaque couche 14, l’entrée d’un neurone 16 est la somme pondérée des sorties des neurones 16 de la couche 14 précédente, la pondération étant faite par les poids synaptiques.
Selon l’exemple décrit, chaque couche 14 de neurones 16 est entièrement connectée. Une couche de neurones entièrement connectée est une couche dans laquelle les neurones de la couche sont chacun connectés à tous les neurones de la couche précédente. Un tel type de couche est plus souvent dénommée selon le terme anglais de « fully connected ».
En l’occurrence, le réseau de neurones 10 est un réseau de neurones à impulsions. Un réseau de neurones à impulsions est souvent dénommé par le sigle SNN qui renvoie à la dénomination anglaise de « Spiking Neural Network ».
Dans un tel réseau de neurones impulsionnel, un neurone est un élément dynamique variant dans le temps tel que décrit plus haut et caractérisé ici par sa fréquence d’émission d’impulsions. Lorsqu’un neurone 16, dit pré-synaptique, en amont, émet une impulsion, la synapse 24 pondère cette impulsion et la transmet au neurone 16, dit post-synaptique, en aval, qui émet éventuellement à son tour une impulsion.
La stimulation transmise par la synapse 24 est une stimulation d’une partie du neurone 16 en aval, appelée membrane et présentant un potentiel. Si ce potentiel de membrane se charge au-delà d’un seuil dit d’activation, le neurone 16 émet une impulsion. Plus précisément, la synapse 24 effectue une multiplication entre le poids et l’activation d’entrée. L’activation d’entrée du neurone 16 en aval est le signal de sortie envoyé par le neurone 16 en amont.
Le neurone 16 en aval augmente son potentiel de membrane, le compare à un seuil et émet une impulsion de sortie lorsque le potentiel de membrane excède ce seuil. Dans certains cas, un neurone 16 en amont est activé en permanence (à la façon d’un neurone d’entrée) afin d’ajouter des biais au potentiel de membrane du neurone 16 en aval qui enrichissent l’expressivité de la fonction apprise par le réseau de neurones 12. Un tel neurone 16 est appelé « neurone de biais » dans la suite de la description.
Le fonctionnement qui vient d’être décrit est valable dans l’autre sens. Plus précisément, dans l’exemple de la figure 2, pour toutes les couches 14 de neurones 16, à l’exception de la première couche 20 et des neurones de biais 16, les neurones 16 sont connectés par une synapse 24 qui est bidirectionnelle.
De ce fait, le même calcul peut être effectué en échangeant le rôle des deux neurones 16. Dans la suite de la description, pour clarifier le propos, les éléments réalisant une des fonctions précitées sont désignés par le nom de la fonction et non par une formulation du type « circuit réalisant » ou « circuit implémentant physiquement ».
A titre d’exemple spécifique, un circuit réalisant une synapse 24 sera simplement dénommé synapse 24 ou un circuit implémentant physiquement un neurone 16 sera simplement appelé neurone 16.
Il peut également être indiqué que la partie de circuit neuromorphique 10 représentée dans la figure 1 correspond à un ensemble de deux couches 14 de neurones 16 reliées par des synapses 24.
A titre d’exemple, les neurones 16 alignés verticalement forment une première couche 14 et les neurones 16 alignés horizontalement forment une deuxième couche 14.
Le circuit neuromorphique 10 comporte des neurones 16, des synapses 24 et un module d’entraînement 26.
Chaque neurone 16 est réalisé avec un intégrateur à fuite et émission d’impulsions.
Un tel neurone est souvent dénommé LIF. L’acronyme « LIF » renvoie à la dénomination anglaise correspondante de « Leaky Integrate-and-Fire ».
En pratique, comme expliqué précédemment, chaque neurone 16 intègre le courant reçu en entrée.
Chaque neurone 16 émet une impulsion lorsque le potentiel de membrane atteint un seuil.
Puis, après une impulsion émise, le neurone 16 réinitialise le potentiel de membrane et n’intègre pas le courant reçu en entrée pendant une période.
La période de non-intégration est appelée période réfractaire (plus souvent dénommée « refractory period » en référence à la dénomination anglaise correspondante).
Après la période réfractaire, le neurone 16 intègre à nouveau le courant reçu en entrée et le même mécanisme recommence.
En l’absence d’impulsion reçue, le potentiel de membrane du neurone 16 décroît vers sa valeur de repos avec une certaine constante de temps. Cette constante de temps est notée YUF-
Le neurone 16 émet ainsi des impulsions à un taux variable dans le temps.
Le taux d’émission des impulsions est p.
L’ensemble des impulsions est usuellement appelé « train d’impulsions ».
Dans l’exemple décrit, chaque neurone 16 est un oscillateur à relaxation d’impulsions.
Selon une première implémentation, chaque neurone 16 est un circuit CMOS comprenant comme éléments principaux : une membrane capable de se charger en intégrant les courants générés par les neurones 16 des couches 14 précédentes, un comparateur, un générateur d’impulsions et un élément réalisant la fuite.
La membrane du neurone 16 a comme élément principal une capacité. La résistance de fuite peut être réalisée avec un transistor NMOS (l’abréviation renvoyant à la dénomination anglaise de « Metal-Oxide-Semiconductor » qui signifie littéralement « métal - oxyde - semiconducteur », le N indiquant qu’il s’agit d’un transistor MOS de type NJ en régime de saturation. Un deuxième transistor NMOS monté en parallèle avec la capacité de membrane permet de réaliser un interrupteur aux bornes de la capacité et de la décharger. Le comparateur sert à détecter si la tension aux bornes de la capacité dépasse le seuil d’activation du neurone 16.
Le neurone 16 peut également comporter des modules supplémentaires, notamment pour contrôler l’adaptabilité des seuils, le modèle d’émission des impulsions ou la forme des impulsions.
Une telle implémentation peut être réalisée avec des technologies CMOS. Par exemple, un neurone 16 pourra présenter une taille allant de 28 nanomètres (nm) à 180 nm. Pour obtenir un neurone 16 de faible taille, il pourrait être utilisé une technologie de type FDSOI. L’abréviation FDSOI renvoie à la dénomination anglaise de « Fully Depleted Silicon On Insulator » qui signifie littéralement silicium complètement dépiété sur isolant.
Dans une autre implémentation, un neurone 16 est un neuristor, c’est-à-dire un composant basé sur des matériaux à commutation résistive volatile.
Par exemple, un neurone 16 est composé de deux memristors actifs. Les memristors pourront être basés sur des matériaux résistifs de type NbC>2-x ou VOx (où x est compris entre 0 et 2), à résistance différentielle négative. Les neurones 16 ont une fréquence d’oscillation qui dépend du courant d’entrée. Pour de tels neurones 16, un module qui adapte la forme des impulsions est ajouté pour qu’il soit possible de modifier les synapses, comme cela sera expliqué ultérieurement.
Chaque synapse 24 est réalisée par un ensemble de memristors 30.
Une memristor 30 est un composant dont la valeur de sa résistance électrique change, de façon permanente, lorsqu’un courant est appliqué. Ainsi, une donnée peut être enregistrée et réécrite par un courant de contrôle. Un tel comportement est notamment observé dans les matériaux à changement de phase, les jonctions tunnel ferroélectriques ou les mémoires redox à base d’oxydes tels que le HfOx ou Ti02-X.
Le changement de conductance d’un memristor 30 dépend de l'amplitude et de la durée des impulsions de tension appliquées à travers le memristor 30.
Un tel memristor 30 présente un comportement pouvant être modélisé ainsi : Où :
• s+ est la pente de la conductance du memristor 30 en fonction de la tension pour une tension appliquée supérieure à une tension de seuil positive Vt + h,
• s~ est la pente de la conductance du memristor 30 en fonction de la tension pour une tension appliquée inférieure à une tension de seuil négative V h,
• Gmin est la conductance minimale atteignable par le memristor 30,
Gmax est la conductance maximale atteignable par le memristor 30,
• h+ est un coefficient de non-linéarité correspondant au fait que l’amplitude de changement de la conductance peut dépendre de l’état de conductance du memristor 30,
• h~ est un coefficient de non-linéarité correspondant au fait que l’amplitude de changement de la conductance peut dépendre de l’état de conductance du memristor 30, et
• ^impulsion est la durée de l'impulsion de tension appliquée au memristor 30.
Le modèle précédent montre qu’en associant deux memristors 30 en parallèle, il est possible de réaliser des poids positifs et négatifs.
En effet, en obtenant le poids comme la différence des deux conductances, l’ensemble des deux memristors 30 permet de réaliser un poids de tout signe.
Par exemple, un des memristors 30 est conservé fixe à une valeur intermédiaire et la conductance de l’autre memristor 30 varie en fonction de l'impulsion de tension appliquée au memristor.
Il est à noter que les memristors 30 sont agencés sous forme d’un réseau matriciel.
Ainsi, comme visible sur la figure 1 , pour des activations u1; u2 et u3 pour les trois neurones 16 de la première couche 14, le deuxième neurone 16 de la deuxième couche 14 aura un courant incident / correspondant à :
Où l’indice i donne le numéro de la synapse 24 concernée et l’activation du neurone 16 concerné.
Le module d’entraînement 26 est un module propre à entraîner le réseau de neurones 12. L’entraînement d’un réseau de neurones 12 consiste à déterminer les poids adaptés pour que le réseau de neurones 12 réalise la tâche souhaitée.
Le module d’entraînement 26 est propre à opérer à un taux d’apprentissage réglable.
Pour cela, le circuit neuromorphique 10 comporte un composant de réglage dédié, comme une résistance. La résistance peut être positionné en sortie du filtre 42fd qui sera décrit ultérieurement.
En référence à la figure 4 qui représente une synapse 24 reliée à un premier neurone 16 et un deuxième neurone 16, le module d’entraînement 26 comporte une unité d’estimation 32 pour chaque neurone 16 et un contrôleur 34.
L’unité d’estimation 32 est propre à obtenir une estimation de la dérivée temporelle du taux d’impulsions émises par le neurone 16.
Il est entendu par cette expression que l’unité d’estimation 32 est propre à obtenir une estimation de la dérivée du taux d’impulsions à un instant donné.
L’unité d’estimation 32 prend en entrée le train d’impulsions émis par le neurone 16 et délivre en sortie un signal codant la dérivée du taux d’émission des impulsions.
En l’espèce, le signal est un signal impulsionnel proportionnel au taux d’émission estimé.
L’unité d’estimation 32 comporte une sous-unité d’obtention 36, un retardateur 38 et un soustracteur 40.
La sous-unité d’obtention 36 est une sous-unité d’obtention du taux d’impulsions émises par le neurone 16.
La sous-unité d’obtention 36 prend en entrée le train d’impulsions émis par le neurone 16 auquel la sous-unité d’obtention 36 est reliée et émet en sortie un signal de sortie codant le taux d’impulsions émises.
En l’espèce, la sous-unité d’obtention 36 du taux d’impulsions est un circuit intégrateur à fuites.
Un tel circuit est plus souvent désigné sous le terme anglais correspondant de « Leaky-lntegrator » .
Le coefficient de fuites du circuit intégrateur à fuites est noté yu .
La sous-unité d’obtention 36 alors propre à générer une tension Vu variant proportionnellement au taux d’émission p du train d’impulsions.
Il vient ainsi :
Le retardateur 38 est propre à retarder le signal émis par la sous-unité d’obtention 36. Plus précisément, le retardateur 38 est propre à introduire un retard de durée t dans le signal de la sous-unité d’obtention 36.
Le retardateur 38 émet ainsi en sortie un signal retardé.
Un tel signal peut s’écrire mathématiquement comme Vu(t - t).
Le soustracteur 40 est un soustracteur du signal de sortie de la sous-unité d’obtention 36 et du signal retardé du retardateur 38.
Les entrées du soustracteur 40 sont ainsi connectés aux sorties de la sous-unité d’obtention 36 et du retardateur 38.
Le signal en sortie du soustracteur 40 est appelé signal de différence.
Le signal de différence VD vérifie les relations suivantes :
Le signal de différence VD est un signal codant la dérivée du taux d’émission des impulsions.
De fait, le signal de différence VD est un signal présentant une amplitude proportionnelle à la dérivée du taux d’émission des impulsions.
Selon l’exemple décrit, l’unité d’estimation 32 comprend également un filtre 42 et une sous-unité de multiplication 44.
Le filtre 42 est positionné en sortie du soustracteur 40.
Le filtre 42 est ainsi un filtre du signal de différence servant à en atténuer les variations.
Dans l’exemple décrit, le filtre 42 est un filtre passe-bas.
La sous-unité de multiplication 44 est propre à multiplier un signal incident par un coefficient qui est ici, le taux d’apprentissage donné du module d’entraînement 26.
La sous-unité de multiplication 44 est placée en sortie du filtre 42.
Une telle multiplication permet de contrôler la modification des poids pour qu’elle se fasse progressivement. Cela favorise la convergence de l’entraînement.
Chacune des sous-unités de l’unité d’estimation 32 est réalisée sous la forme d’un composant CMOS.
La sortie de l’unité d’estimation 32 est ainsi un signal proportionnel à la dérivée temporelle du taux d’impulsions émises p. Le coefficient de proportionnalité est noté e dans la suite.
Le contrôleur 34 est propre à envoyer un signal de contrôle à destination de l’ensemble des synapses 24 auquel le neurone 16 est relié.
Le contrôleur 34 est propre à envoyer le signal d’activation lorsque le premier neurone 16 a émis une impulsion. Le contrôleur 34 envoie le signal d’activation à destination d’une interconnexion 46 qui fait également partie du module d’entraînement 26.
L’interconnexion 46 présente plusieurs positions, et notamment une position dans laquelle l’unité d’estimation 32 du deuxième neurone 16 est connectée à la synapse 24 et une autre position dans laquelle l’unité d’estimation 32 du deuxième neurone 16 n’est pas connectée à la synapse 24.
Le signal de contrôle entraîne la modification de la position de l’interconnexion 46 pour que l’unité d’estimation 32 du deuxième neurone 16 soit connectée à la synapse 24.
Selon l’exemple décrit, l’interconnexion 46 comporte un sous-circuit 54 pour chaque neurone 16 auquel la synapse 24 est reliée.
La synapse 24 est reliée à une extrémité au sous-circuit 54 du premier neurone 16 et à l’autre extrémité au sous-circuit 54 du deuxième neurone 16.
Chaque sous-circuit 54 comprend deux interrupteurs 56 et 58.
Chaque position des interrupteurs 56 et 58 correspond à un état des interrupteurs 56 et 58.
Dans l’exemple décrit, chaque interrupteur 56 et 58 est un transistor.
Aussi, quatre positions sont possibles : état passant pour les deux transistors 56 et 58 (première position), état bloqué pour les deux transistors 56 (deuxième position) et 58 et état passant pour l’un des transistors 56 et 58 et état bloqué pour l’autre des deux transistors 56 et 58 (troisième et quatrième positions).
Toutefois, dans le cas de la figure 4, les états des transistors 56 et 58 sont opposés, de sorte que seule deux positions sont possibles, à savoir état passant pour l’un des transistors 56 et 58 et état bloqué pour l’autre des deux transistors 56 et 58.
Chacun de ces transistors 56 et 58 comporte un drain D, une grille G et une source S.
Le module d’entraînement 26 comporte également, pour chaque neurone 16, un convoyeur de courant 60 assurant la circulation du courant entre un neurone 16 et d’autres neurones 16.
Le convoyeur de courant 60 est un tripôle qui garantit que les signaux émis par les neurones 16 se propagent de manière bidirectionnelle.
En effet, le convoyeur de courant 60 permet à la fois d’envoyer une impulsion vers les neurones 16 de la couche 14 suivante et d’imposer une valeur à la synapse 24 connectée en amont. En l’absence d’impulsion émise, le convoyeur de courant 60 copie le potentiel de repos post-synaptique sur une des bornes de la synapse 24, l’autre borne de la synapse 24 ayant le potentiel de repos pré-synaptique.
Lors d’émission d’une impulsion présynaptique, le courant généré proportionnel à la résistance d’une synapse 24 arrive sur une des deux bornes d’entrée du convoyeur de courant 60 et se trouve recopié à la borne de sortie de la synapse 24 afin de charger la capacité de membrane du neurone 16 post-synaptique. Au dépassement du seuil d’activation, le potentiel post-synaptique généré est envoyé vers la couche 14 suivante ainsi qu’à la deuxième entrée du convoyeur de courant 60 pour pouvoir écrire sur la synapse 24.
Selon l’exemple décrit, le drain D du premier transistor 56 est relié à la sortie de l’unité d’estimation 32, la grille G du premier transistor 56 est reliée au contrôleur 34 et la source S du premier transistor 56 est reliée à la synapse 24.
Le drain D du deuxième transistor 58 est relié à la sortie du convoyeur de courant 60, la grille G du deuxième transistor 58 est reliée au contrôleur 34 et la source S du deuxième transistor 58 est reliée à la synapse 24.
Le contrôleur 34 est également propre à synchroniser les deux neurones 16 pour que les deux neurones 16 émettent des signaux de commande modifiant la valeur de la synapse 24 en fonction de l’estimation de la dérivée temporelle du taux d’impulsions émis par le deuxième neurone 16.
Les signaux de commande émis par chaque neurone 16 diffèrent comme cela sera expliqué ultérieurement dans la présente description.
Grâce au contrôleur 34, les signaux de commande sont synchronisés pour que la tension appliquée à la synapse 24 permette sa mise à jour à la valeur souhaitée.
Le fonctionnement du circuit neuromorphique 10, et plus spécifiquement du module d’entraînement 26, est maintenant décrit en référence à un procédé d’entraînement du réseau de neurones 12.
Durant la phase d’apprentissage, le premier neurone 16 émet une impulsion.
Le contrôleur 34 envoie un signal d’activation à destination de l’ensemble des synapses 24 auquel le neurone 16 est relié.
Le contrôleur 34 impose alors au premier transistor 56 du sous-circuit 54 du deuxième neurone 16 d’être en état passant.
Le contrôleur 34 permet d’assurer que les sous-circuits 54 des neurones 16 soient dans l’état approprié pour émettre un signal de commande à un instant to.
Les signaux de commandes émis sont représentés sur le chronogramme de la figure 5.
Le premier neurone 16 émet alors un premier signal de commande dont l’amplitude est à chaque instant égale à l’une parmi la tension de seuil positive Vh du memristor 30 à mettre à jour et la tension de seuil négative Vt ~ h du memristor 30 à mettre à jour.
Selon l’exemple décrit, le premier signal de commande comporte un seul changement d’amplitude, de sorte que le premier signal de commande comporte une impulsion d’amplitude positive suivie d’une impulsion d’amplitude négative. L’impulsion d’amplitude positive présente comme amplitude la tension de seuil positive V h du memristor 30 à mettre à jour tandis que l’impulsion d’amplitude négative présente comme amplitude la tension de seuil négative Vt ~ h du memristor 30 à mettre à jour.
L’impulsion d’amplitude positive et l’impulsion d’amplitude négative présentent la même durée notée Atimp.
L’unité d’estimation 32 de chaque deuxième neurone 16 est déclenchée et émet une impulsion de tension présentant une impulsion proportionnelle à la dérivée temporelle du taux d’impulsions émises, l’impulsion présentant une durée 2 * Atimp. Cette impulsion de tension correspond au deuxième signal de commande.
Grâce au contrôleur 34, le deuxième signal de commande est ainsi synchronisé avec le premier signal de commande, l’impulsion émise par l’unité d’estimation 32 recouvrant temporellement le premier signal de commande (émission simultanée).
Le signal de modification est tel que la tension appliquée dans le memristor 30 soit donc d’abord entre l’instant to et l’instant t0 + Atimp une tension d’amplitude Vt + h + er puis entre l’instant t0 + Atimp et l’instant t0 + 2 * Atimp une tension d’amplitude Vt ~ h + er.
Cela signifie que l’émission d’une impulsion par le premier neurone 16 a conduit à la mise à jour de l’ensemble des valeurs des synapses 24 reliées au premier neurone 16.
La mise à jour est effectuée en fonction de la valeur de la dérivée temporelle du taux d’impulsions émises par le deuxième neurone 16.
Plus précisément, la mise à jour est d’une part effectuée en fonction de la valeur de la dérivée temporelle précitée et d’autre part effectuée en fonction de la valeur du taux d’impulsions émises par le premier neurone 16.
Il peut être montré que cela implique que le taux de variation de la valeur de la synapse 24 est le produit du taux d’impulsions émises par le premier neurone 16 avec la dérivée temporelle du taux d’impulsions émises par le deuxième neurone 16.
En notant W la valeur de la synapse 24, cela s’écrit mathématiquement comme :
Du fait du caractère bidirectionnel des synapses 24, lorsque le deuxième neurone 16 va émettre une impulsion, la mise à jour de la même synapse 24 est également effectuée en fonction de la valeur de la dérivée temporelle du taux d’impulsions émises par le premier neurone 16.
Il vient ainsi que : Cela correspond à la mise en œuvre d’une règle d’apprentissage locale à chaque synapse 24 qui a la particularité de modifier sa valeur proportionnellement au changement de fréquence d’émission d’un des neurones 16 pour chaque impulsion émise par l’autre neurone 16.
Ceci correspond à une modification d’une loi d’apprentissage appelée propagation d’équilibre (dénommée sous l’appellation anglaise « Equilibrium Propagation »), qui permet la modification des poids en continu, en fonction de la dynamique locale des neurones 16 et qui encode la dérivée de l’erreur dans les changements de fréquences d’impulsions durant la phase d’entraînement du réseau de neurones 12. Cette modification de la loi d’apprentissage permet l’implémentation avec des memristors à performance fonctionnelle équivalente à la rétropropagation du gradient de l’erreur, en rajoutant seulement un module d’entraînement 26 peu consommateur en ressources. De fait, le module d’entraînement 26 comporte un ensemble d’unités peu coûteux en termes de matériels pour chaque neurone 16 au lieu de mémoires externes coûteuses en place et en temps d’exécution, ainsi que des circuits spécifiques pour modifier chaque memristor en fonction du gradient de l’erreur explicite.
Ainsi, un tel apprentissage est réalisé avec un module d’entraînement 26 relativement aisé à mettre en œuvre puisqu’il suffit d’utiliser un contrôleur 34 (selon les cas un contrôleur central ou un contrôleur par paire de neurones 16), une unité d’estimation 32 pour chaque neurone 16 ainsi qu’une interconnexion 46 pour chaque synapse 24.
Cela permet d’obtenir un circuit neuromorphique 10 avec des gains d’énergie estimés à au moins 2 ordres de grandeur par rapport aux architectures von-Neumann de type GPU.
En outre, du fait que le module d’entraînement 26 peut être réalisée avec des composants CMOS, le module d’entraînement 26 présente une bonne efficacité.
Le module d’entraînement 26 permet ainsi à un réseau de neurones impulsionnel d’apprendre avec une bonne précision tout en conservant une forte intégrabilité des éléments du circuit neuromorphique 10.
Un tel circuit neuromorphique 10 est notamment adapté pour réaliser de la classification d'images avec un apprentissage supervisé local.
Le circuit neuromorphique 10 est alors une puce permettant de réaliser une classification adaptative à grande vitesse et à faible puissance. Notamment, un tel circuit neuromorphique 10 peut apprendre en cours d’utilisation.
Du fait des différents degrés de maturité des technologies memristives ainsi que la variabilité inhérente à ces composants, la robustesse aux défauts du circuit neuromorphique 10 peut être améliorée en considérant des éléments monolithiques de type un transistor - un memristor par synapse (acronyme anglais 1T1 R). Cette structure permet un réglage plus fin des conductances des memristors 30 et reste en deçà de l’empreinte sur puce de la réalisation des synapses tout CMOS.

Claims

REVENDICATIONS
1. Circuit neuromorphique (10) propre à mettre en œuvre un réseau de neurones impulsionnel (12), le circuit neuromorphique (10) comprenant :
- des synapses (24) réalisées par un ensemble de memristors (30) agencés sous forme d’un réseau matriciel, chaque synapse (24) présentant une valeur (W),
- des neurones (16), chaque neurone (16) étant propre à émettre des impulsions selon un taux variable, chaque neurone (16) étant relié à un ou plusieurs neurones (16) via une synapse (24), les neurones (16) étant agencés en couches (14) de neurones (16) successives, les couches (14) de neurones (16) comprenant une couche d’entrée (20), au moins une couche cachée (18) de neurones (16) et une couche de sortie (22), les synapses (24) étant bidirectionnelles pour les neurones (16) de l’au moins une couche cachée (18) de neurones (16) et de la couche de sortie (22), et
- un module d’entraînement (26) du réseau de neurones (12), le module d’entraînement (26) comportant, pour au moins une synapse (24) bidirectionnelle reliant un premier neurone (16) à un deuxième neurone (16) :
- pour le premier neurone (16) et le deuxième neurone (16), une unité d’estimation (32) propre à obtenir une estimation de la dérivée temporelle du taux d’impulsions émises par le neurone (16),
- une interconnexion (46) entre la synapse (24) et chaque neurone (16), l’interconnexion (46) présentant au moins deux positions, et
- un contrôleur (34) propre à envoyer un signal de contrôle à destination de l’interconnexion (46) lorsque le premier neurone (16) a émis une impulsion, le signal de contrôle modifiant la position de l’interconnexion (46) pour que l’unité d’estimation (32) du deuxième neurone (16) soit connectée à la synapse (24).
2. Circuit neuromorphique selon la revendication 1 , dans lequel le contrôleur (34) est également propre à synchroniser les deux neurones (16) pour que les deux neurones (16) émettent des signaux de commande modifiant la valeur de la synapse (24) en fonction de l’estimation de la dérivée temporelle du taux d’impulsions émis par le deuxième neurone (16).
3. Circuit neuromorphique selon la revendication 2, dans lequel chaque memristor (30) présente une conductance non nulle pour une tension supérieure à un seuil positif (¾) et pour une tension inférieure à un seuil négatif (V h), le premier neurone (16) étant également propre à émettre comme signal de commande une impulsion dont l’amplitude est à chaque instant égale à l’un parmi le seuil positif (yt + h) et le seuil négatif (V h), l’impulsion comportant, de préférence, un seul changement d’amplitude.
4. Circuit neuromorphique selon la revendication 2 ou 3, dans lequel le deuxième neurone (16) est propre à émettre comme signal de commande une impulsion proportionnelle à l’estimation de la dérivée temporelle du taux d’impulsions obtenue par l’unité d’estimation (32).
5. Circuit neuromorphique selon l’une quelconque des revendications 2 à 4, dans lequel le contrôleur (34) contrôle les deux neurones (16) pour que les deux signaux de commande soient émis simultanément.
6. Circuit neuromorphique selon l’une quelconque des revendications 1 à 5, dans lequel l’interconnexion (46) comporte un sous-circuit (54) pour chaque neurone (16) auquel la synapse (24) est reliée, chaque sous-circuit (54) comprenant deux interrupteurs (56, 58).
7. Circuit neuromorphique selon l’une quelconque des revendications 1 à 6, dans lequel l’unité d’estimation (32) comporte :
- une sous-unité d’obtention (36) du taux d’impulsions émises par ledit neurone (16), la sous-unité d’obtention (36) codant le taux d’impulsions dans un signal de sortie, la sous-unité d’obtention (36) du taux d’impulsions est, de préférence, un circuit intégrateur à fuites.
- un retardateur (38) du signal de sortie de la sous-unité d’obtention (36), pour obtenir un signal retardé,
- un soustracteur (40) du signal de sortie de la sous-unité d’obtention (36) et du signal retardé du retardateur (38), pour obtenir un signal de différence.
8. Circuit neuromorphique selon la revendication 7, dans lequel le circuit neuromorphique (10) comporte, en outre, un filtre (42) en sortie du soustracteur (40), le filtre étant, de préférence, un filtre passe-bas.
9. Circuit neuromorphique selon l’une quelconque des revendications 1 à 8, dans lequel le neurone (16) est réalisé par un oscillateur à relaxation d’impulsions.
10. Procédé d’entraînement d’un réseau de neurones (12) impulsionnel qu’un circuit neuromorphique (10) est propre à mettre en œuvre, le circuit neuromorphique (10) comprenant :
- des synapses (24) réalisées par un ensemble de memristors (30) agencés sous forme d’un réseau matriciel, chaque synapse (24) présentant une valeur (W),
- des neurones (16), chaque neurone (16) étant propre à émettre des impulsions selon un taux variable, chaque neurone (16) étant relié à un ou plusieurs neurones (16) via une synapse (24), les neurones (16) étant agencés en couches (14) de neurones (16) successives, les couches (14) de neurones (16) comprenant une couche d’entrée (20), au moins une couche cachée (18) de neurones (16) et une couche de sortie (22), les synapses (24) étant bidirectionnelles pour les neurones (16) de l’au moins une couche cachée (18) de neurones (16) et de la couche de sortie (22), et
- un module d’entraînement (26) du réseau de neurones (12), le module d’entraînement (26) comportant, pour au moins une synapse (24) bidirectionnelle reliant un premier neurone (16) à un deuxième neurone (16) :
- pour le premier neurone (16) et le deuxième neurone (16), une unité d’estimation (32) propre à obtenir une estimation de la dérivée temporelle du taux d’impulsions émises par le neurone (16),
- une interconnexion (46) entre la synapse (24) et chaque neurone (16), l’interconnexion (46) présentant au moins deux positions, et
- un contrôleur (34), le procédé d’entraînement comportant les étapes de :
- envoi par le contrôleur (34) d’un signal de contrôle à destination de l’interconnexion (46) lorsque le premier neurone (16) a émis une impulsion, et
- modification de la position de l’interconnexion (46) pour que l’unité d’estimation (32) du deuxième neurone (16) soit connectée à la synapse (24).
EP22710296.9A 2021-02-11 2022-02-08 Circuit neuromorphique et procédé d'entraînement associé Pending EP4292017A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2101311A FR3119696B1 (fr) 2021-02-11 2021-02-11 Circuit neuromorphique et procede d'entraînement associé
PCT/EP2022/053026 WO2022171632A1 (fr) 2021-02-11 2022-02-08 Circuit neuromorphique et procédé d'entraînement associé

Publications (1)

Publication Number Publication Date
EP4292017A1 true EP4292017A1 (fr) 2023-12-20

Family

ID=76730604

Family Applications (1)

Application Number Title Priority Date Filing Date
EP22710296.9A Pending EP4292017A1 (fr) 2021-02-11 2022-02-08 Circuit neuromorphique et procédé d'entraînement associé

Country Status (3)

Country Link
EP (1) EP4292017A1 (fr)
FR (1) FR3119696B1 (fr)
WO (1) WO2022171632A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115169547B (zh) * 2022-09-09 2022-11-29 深圳时识科技有限公司 神经形态芯片及电子设备

Also Published As

Publication number Publication date
FR3119696B1 (fr) 2024-02-09
FR3119696A1 (fr) 2022-08-12
WO2022171632A1 (fr) 2022-08-18

Similar Documents

Publication Publication Date Title
EP3663988B1 (fr) Neurone artificiel pour puce neuromorphique à synapses résistives
EP2713318B1 (fr) Système neuromorphique exploitant les caractéristiques intrinseque de cellules de mémoire
EP2965269B1 (fr) Organe à neurone artificiel et memristor
EP3449423B1 (fr) Dispositif et procede de calcul de convolution d'un reseau de neurones convolutionnel
EP3186752A1 (fr) Reseau de neurones convolutionnels
WO2017178352A1 (fr) Neurone artificiel
KR20170008747A (ko) 공통 피처들에 대한 분류자의 업데이트
WO2013000940A1 (fr) Reseau de neurones artificiels a base de dispositifs memristifs complementaires
US20150248609A1 (en) Neural network adaptation to current computational resources
EP3660749A1 (fr) Circuit neuronal apte à mettre en oeuvre un apprentissage synaptique
WO2017009543A1 (fr) Dispositif de traitement de données avec représentation de valeurs par des intervalles de temps entre événements
FR3087560A1 (fr) Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels
EP4292017A1 (fr) Circuit neuromorphique et procédé d'entraînement associé
WO2019020384A1 (fr) Calculateur pour reseau de neurones impulsionnel avec agregation maximale
EP0454535B1 (fr) Système neuronal de classification et procédé de classification utilisant un tel système
EP3549070B1 (fr) Dispositif et procède de modulation, synapse artificielle comportant ledit dispositif de modulation, procède de plasticité a court terme dans un réseau de neurones artificiels comportant ladite synapse artificielle
EP4137999A1 (fr) Circuit neuromorphique à base de cellules rram 2t2r
FR3083896A1 (fr) Circuit neuromorphique impulsionnel implementant un neurone formel
US20220004876A1 (en) Training of oscillatory neural networks
FR3114718A1 (fr) Dispositif de compensation du mouvement d’un capteur événementiel et système d’observation et procédé associés
FR3135562A1 (fr) Cellule mémoire, circuit électronique comprenant de telles cellules, procédé de programmation et procédé de multiplication et accumulation associés
FR3124621A1 (fr) Procédé d’apprentissage d’un ensemble de modèles d’un réseau de neurones artificiels, procédé de traitement de données et circuit électronique associés
FR3105659A1 (fr) Procédé et dispositif de codage binaire de signaux pour implémenter des opérations MAC numériques à précision dynamique
EP4195061A1 (fr) Calculateur d'algorithme réalisé à partir de mémoires à technologies mixtes
FR2691004A1 (fr) Dispositif connexionniste de suivi de l'évolution d'une information entre au moins deux valeurs données, et applications.

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

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: 20230809

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

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)