EP3871153A1 - Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels - Google Patents

Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels

Info

Publication number
EP3871153A1
EP3871153A1 EP19787001.7A EP19787001A EP3871153A1 EP 3871153 A1 EP3871153 A1 EP 3871153A1 EP 19787001 A EP19787001 A EP 19787001A EP 3871153 A1 EP3871153 A1 EP 3871153A1
Authority
EP
European Patent Office
Prior art keywords
neuron
error
phase
layer
artificial
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
EP19787001.7A
Other languages
German (de)
English (en)
Inventor
Johannes THIELE
Olivier Bichler
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.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
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 Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Publication of EP3871153A1 publication Critical patent/EP3871153A1/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/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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
    • 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/045Combinations of 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

Definitions

  • the invention relates to the field of artificial neural networks and more specifically that of impulse neural networks.
  • Artificial neural networks are essentially composed of neurons interconnected by synapses, which are conventionally implemented by digital memories, but which can also be implemented by resistive components whose conductance varies according to the voltage applied to their terminals.
  • Impulse neural networks are generally optimized by implementing supervised or unsupervised learning methods.
  • These methods include a first phase of propagation of data, produced at the input of the neural network, to the output layer of the neural network, then a second phase of reverse propagation of errors from the output layer to the layer of Entrance.
  • the synapses are updated from errors calculated locally by each neuron as a function of errors back-propagated from the previous layer of the neural network.
  • the invention relates to an impulse neuron and an impulse neural network, which are designed to implement an error feedback algorithm in the form of signed or unsigned pulses or binary or ternary data.
  • Impulse neural networks have the advantage of allowing implementation on computers with constrained resources because the treatments implemented during the propagation phase of learning or during a classification phase do not require multiplication of floating numbers.
  • the data is coded in the form of pulses (signed or unsigned) and the processing executed by each neuron can, therefore, be implemented only using accumulators and comparators.
  • the use of operators for multiplying floating numbers is avoided, which has a definite advantage for a digital or analog implementation on devices with limited resources.
  • the back-propagation algorithm used to update the values of the synapses during a learning phase requires the use of multiplications of floating numbers to calculate the errors local to each neuron. Furthermore, it also requires the synchronous propagation of these errors in the form of floating numbers between each layer of neurons in the neural network.
  • pulse neural networks are based on a logic of propagation of asynchronous data, in the form of pulses.
  • the back-propagation algorithm is generally not implemented, within a pulse neural network, so as to take into account the hardware constraints of such a network.
  • the invention proposes a new implementation of an error back-propagation algorithm which is adapted to the hardware constraints of a device implementing a pulse neural network.
  • the invention uses, in particular, a binary or ternary coding of the errors calculated during the back-propagation phase to adapt its implementation to the constraints of the network and thus avoid the recourse to operators of multiplication of floating numbers.
  • the invention proposes a global adaptation of the back-propagation algorithm to the specific constraints of a pulse neural network.
  • the invention makes it possible to use the same propagation infrastructure for the propagation of the data and for the reverse propagation of the errors during the learning phase.
  • the invention provides a generic implementation of an impulse neuron which is suitable for the implementation of all types of impulse neural networks, in particular convolutional networks.
  • the invention relates to an artificial impulse neuron belonging to an intermediate layer of several neurons, the intermediate layer belonging to a neural network comprising several successive layers, the neural network being configured to execute a mechanism training comprising a first phase of propagation of data from an input layer to an output layer, and a second phase of back propagation of errors from the output layer to the input layer, the artificial neuron pulse comprising, for the execution of the second back-propagation phase: -
  • a first input / output interface capable of receiving binary or ternary error signals weighted by synaptic coefficients
  • An error calculation module configured to calculate a binary or ternary local error signal from a binary or ternary intermediate signal generated by the neuron in response to the error signals received and an estimate of the derivative an equivalent activation function implemented by the neuron during the first phase of data propagation
  • a second input / output interface capable of propagating the local binary or ternary error signal to several synapses in the form of pulses.
  • the first input / output interface is capable of transmitting binary or ternary signals to several synapses in the form of pulses during the first phase of data propagation and the second input / output interface is capable of receiving binary or ternary signals weighted by synaptic coefficients during the first phase of data propagation.
  • the artificial impulse neuron comprises:
  • At least one comparator to compare the cumulative error with at least one activation threshold among a positive activation threshold and a negative activation threshold
  • An activation module configured to generate the binary or ternary intermediate signal depending on the result of at least one comparator.
  • the invention also relates to an artificial impulse neuron belonging to an intermediate layer of several neurons, the intermediate layer belonging to a neural network comprising several successive layers, the neural network being configured to execute a learning mechanism comprising a first phase of propagation of data from an input layer to an output layer , and a second phase of error back propagation from the output layer to the input layer, the artificial impulse neuron comprising, for the execution of the second phase of back propagation:
  • a first input / output interface capable of receiving binary or ternary error signals
  • An error calculation module configured to calculate a binary or ternary local error signal from a binary or ternary intermediate signal generated by the neuron in response to the error signals received and an estimate of the derivative an equivalent activation function implemented by the neuron during the first phase of data propagation
  • a second input / output interface capable of propagating the local binary or ternary error signal to the neurons of the next layer.
  • the first input / output interface is capable of transmitting binary or ternary signals to the neurons of the next layer during the first phase of data propagation and the second interface input / output is able to receive binary or ternary signals during the first phase of data propagation.
  • the artificial impulse neuron comprises:
  • An activation module configured to generate the binary or ternary intermediate signal depending on the result of at least one comparator.
  • the activation module is configured to generate a positive intermediate signal when the cumulative error is greater than the positive activation threshold and a negative intermediate signal when the cumulative error is less than the threshold d 'negative activation.
  • the artificial impulse neuron according to any one of the embodiments of the invention further comprises a subtractor for subtracting from the cumulative error the value of the positive activation threshold when a positive intermediate signal is generated and subtracting from the cumulative error the value of the negative activation threshold when a negative intermediate signal is generated.
  • the artificial impulse neuron according to any one of the embodiments of the invention further comprises a module for calculating an update of synaptic coefficients from the local error and from a result of the equivalent activation function.
  • the result of the equivalent activation function is calculated during the data propagation phase of a neuron.
  • the module for calculating an update of synaptic coefficients is activated after the propagation of the local error.
  • the module for calculating a local error signal is configured to calculate a product between the intermediate signal and the estimate of the derivative of the equivalent activation function.
  • the equivalent activation function is a function of integration of the pulses generated by the neuron and weighted by a learning rate parameter of the neural network.
  • the artificial impulse neuron comprises a derivative calculation module configured to calculate the estimate of the derivative of the equivalent activation function from a result of the equivalent activation function implemented by the neuron during the first phase of data propagation and of an integration variable of the neuron during the first phase of data propagation.
  • the estimate of the derivative of the equivalent activation function is equal to 1 when the result of said function is strictly positive or the integration variable is strictly positive, and is equal to 0 if not.
  • the derivative calculation module is activated during the data propagation phase of the neuron or during the error back propagation phase of the neuron.
  • the invention also relates to an artificial pulse neural network configured to execute a learning mechanism comprising a first phase of propagation of data from an input layer to an output layer, and a second phase of back propagation errors from the output layer to the input layer, the neural network comprising several layers of pulsed artificial neurons according to any one of the embodiments of the invention, each neuron being connected at least to one neuron d 'a next layer or to a neuron of a previous layer via a synapse.
  • the network comprises an input layer and an output layer, the neurons of the input layer being configured to receive data to be propagated in binary form or ternary and the neurons of the output layer being configured to calculate, from the data propagated during the first phase of data propagation, an error between a result obtained and a target result.
  • each neuron of the output layer comprises an encoder configured to code the error into a set of at least one binary or ternary signal.
  • the coder is configured to quantify the error on two or three quantization levels so as to generate a binary or ternary signal.
  • the coder is configured to code the error by a group of successive binary signals or a group of successive ternary signals.
  • the invention also relates to an artificial neural network configured to execute a learning mechanism comprising a first phase of data propagation from an input layer to an output layer, and a second phase of back propagation of errors from the output layer to the input layer, the neural network comprising several layers of artificial impulse neurons according to the second embodiment of the invention, each neuron being connected to at least one neuron of a next layer or to a neuron of a previous layer via a synapse having a synaptic weight, the synapses being implemented in the form of digital memories, memristive devices or analog circuits.
  • each synapse is configured to update its synaptic weight in response to a binary or ternary error signal received from a neuron of a next layer and to a signal representative of the result of the function. equivalent activation received from a neuron in a previous layer.
  • FIG. 1 a general diagram of a network of artificial impulse neurons
  • FIG. 2 a diagram of an artificial impulse neuron, according to a first embodiment of the invention, executing a first phase of propagation of data of a learning mechanism
  • FIG. 3 a diagram of an artificial impulse neuron, according to a second embodiment of the invention, executing a first phase of propagation of data of a learning mechanism
  • FIG. 5 a diagram of an artificial impulse neuron, according to the first embodiment of the invention, executing a second phase of reverse propagation of errors of a learning mechanism
  • FIG. 1 represents a general diagram of a network of artificial impulse neurons.
  • a neural network is conventionally composed of several layers C e , Ci, Ci + i , C s of interconnected impulse neurons.
  • the network comprises at least one input layer C e and one output layer C s and at least one intermediate layer C
  • the neurons N ie of the input layer C e each receive an input data input 101.
  • the input data can be of a nature different depending on the intended application.
  • a neural network may be pixels of an image or audio or text data or more generally any type of data which can be coded in the form of pulses.
  • the applications of a neural network include in particular the classification and detection of objects in an image or in a video for devices on board autonomous vehicles or video surveillance devices associated with video surveillance cameras.
  • a neural network is, for example, used in the field of image classification or image recognition or more generally the recognition of characteristics which can be visual, audio or both.
  • Each neuron of a layer is connected, by its input and / or its output, to all the neurons of the previous or next layer. More generally, a neuron may only be connected to part of the neurons of another layer, in particular in the case of a convolutional network.
  • connections 102, 103, 104 between two neurons N ie , N are made through artificial synapses Si, S 2 , S 3 which can be carried out, in particular, by digital memories or by memristive devices.
  • the coefficients of the synapses can be optimized thanks to a learning mechanism of the neural network. This mechanism comprises two distinct phases, a first phase of propagation of data from the input layer to the output layer and a second phase of back propagation of errors from the output layer to the input layer with, for each layer, an update of the weights of the synapses.
  • training data for example images or sequences of images
  • training data are supplied at the input of the neurons of the input layer and propagated in the network.
  • the data is coded as asynchronous pulses.
  • the pulses correspond to binary or ternary signals, in other words they can be signed or unsigned pulses.
  • Each neuron implements, during this first phase, an integration function of the pulses it receives from the neurons of the previous layer (or pulses coded from the input data for the neurons of the input layer).
  • the integration function essentially consists of an accumulation of pulses weighted by the weights of the artificial synapses.
  • Each neuron also implements an activation function which consists, from a comparison of the integration variable with one or two activation threshold (s), in generating and propagating an impulse towards the neurons of the layer. next.
  • the integration function and the activation function may vary.
  • a leakage current can be implemented by the neuron to attenuate the integration variable over time when no pulse is received by the neuron.
  • the neurons N,, 3 of the output layer C s perform additional processing in that they calculate an error between an integration result of the pulses received by the neuron N,, s and an expected value or a target value which corresponds to the final state of the neuron of the output layer that one wishes to obtain in relation to the training input data.
  • the neurons of the output layer C s transmit the calculated errors to the neurons of the previous layer Ci + i which calculate a local error from the back propagated error of the previous layer and in turn pass this local error to the previous layer C
  • each neuron calculates, from the local error, an update value for the weights of the synapses to which it is connected and updates the synapses. The process continues for each layer of neurons until the penultimate layer which is responsible for updating the weights of the synapses which connect it to the input layer C e .
  • An object of the invention is to propose a particular implementation of the error back-propagation phase, which is adapted to the implementation constraints or material constraints of impulse neurons.
  • FIG. 2 describes an example of a pulse neuron according to a first embodiment of the invention and its operation during the data propagation phase.
  • FIG. 2 is shown a neuron N, belonging to an intermediate layer C
  • the neuron N is connected downstream to the neurons of a following layer Ci + i by means of synapses Wu + i , W 2 J + I, ... , WK , I + I.
  • the synapses are produced by memristive devices or memristors or any equivalent analog circuit.
  • the neuron N u is connected upstream to the neurons of a previous layer C M via synapses WI J, W 2, I ... , W K, I.
  • the neuron N u receives, via a first I / O 2 input / output interface, pulses emitted by the neurons of the previous layer and weighted by the weights of the synapses WI J, W 2 J ... , W K J.
  • Synapses produced by memristive devices, receive a signed or unsigned pulse of constant amplitude emitted by a neuron and emit at their output, a pulse amplified by a value representative of the weight of the synapse.
  • the signals received by the neuron N, i correspond to binary or ternary signals weighted by the weights of the synapses.
  • the signals received are integrated by an integration module INT which performs an integration function which depends on the nature of the neuron.
  • the integration function consists in summing or integrating, over time, the signals received.
  • the integration function comprises an attenuation or leakage function to decrease the integration variable over time when no signal is received by the neuron.
  • the integration variable Vg obtained at the output of the integration module INT is then compared with one or more activation thresholds via a comparator COMP. According to a first embodiment, a single positive activation threshold 0 ff is used.
  • an activation module ACT When the integration variable V u exceeds the positive activation threshold 0 ff , an activation module ACT generates a positive pulse and the integration variable Vg is reduced by the value of the threshold 0 ff .
  • a negative threshold -0 ff is used in addition to the positive threshold 0 ′′.
  • an activation module ACT When the integration variable V u decreases below the negative activation threshold -0 ff , an activation module ACT generates a negative pulse and the integration variable V u is reduced by the value of the threshold -0 ff ( or increased by the value 0 ff ).
  • the absolute values of the two thresholds can be equal or different.
  • the pulses generated by the activation module ACT are transmitted to an input / output interface E / Si to be propagated to the synapses W 1 J + 1 , W 2 , I + I ,. . . , W K, I + I connected between the neuron N, i and neurons of the next layer i + Ci.
  • the integration variable Vg calculated by the INT integration module over time can be represented by the following relation:
  • j (t) represents the pulse generated by the neuron whose value is given by the following relation in the case of a ternary signal:
  • the integration variable Vg can be initialized to a value other than 0 at the start of the data propagation phase.
  • Neuron N u The treatments described above and implemented by the neuron N u are only based on accumulations or comparisons and do not require any multiplication of floating numbers. Neuron N, i additionally performs two additional calculation functions to calculate variables which will be used during the error back-propagation phase.
  • a second FAE integration module is used to accumulate the pulses Sj generated by the neuron over time, the accumulation being weighted by a learning rate hi which is a parameter of the neural network. This learning rate hi can be different for each layer of the network.
  • variable x obtained at the output of this second integration module is represented by the following relation:
  • This variable can also be represented by the following relationships, where a,, ! corresponds to the accumulation over time of the impulses generated by the neuron and is called the equivalent activation function of the neuron.
  • the variable Xj (t) corresponds to the equivalent activation function weighted by a learning rate parameter hi.
  • the calculation of the variable Xj does not require multiplication either because the pulses s, take the values 1, 0 or -1.
  • the calculation of the variable Xi , i consists of an accumulation of the value hi.
  • a DER derivation module is also used to calculate an estimate a i of the equivalent activation function a. of the neuron. This estimate is used during the error back-propagation phase.
  • the estimate a'i j is equal to 1 if the integration variable Vj is greater than 0 or if the variable Xj is greater than 0 and is worth 0 otherwise.
  • other estimates a'i j of the equivalent activation function can be determined so as to produce a binary variable ⁇ 0; 1 ⁇ or ternary ⁇ -1; 0; 1 ⁇ .
  • a feature of the invention is that the estimate a'i j is a binary or ternary variable so as to avoid calculations involving multiplications of floating numbers.
  • Vj (t) and Xj (t) used to calculate a'i j are the last updated values calculated by the neuron during the data propagation phase for a learning sequence presented at the input of the neural network .
  • the calculation of the estimate a'i j of the equivalent activation function a, j of the neuron can be carried out during the data propagation phase in which case the value of a'i j is saved in a memory to be used during of the error back-propagation phase.
  • the calculation of the estimate a'i j can also be carried out during the error back-propagation phase, from the last values saved by the neuron of V, j (t) and Xj j (t).
  • the activation function implemented by the neuron can be modified as follows:
  • the sum of the pulses generated by the neuron, represented by the variable aj (t) is always greater than 0.
  • FIG. 3 represents a second embodiment of the impulse neuron according to the invention.
  • the neuron is implemented by a digital device.
  • Binary or ternary pulse signals are encoded by binary or ternary digital signals and are transmitted between neurons via a digital communications infrastructure.
  • the synapses are no longer performed by active devices positioned on the connections between two neurons.
  • the weights of the synapses are stored in a digital memory MEM_W.
  • the signals received by the I / O input interface 2 are binary or ternary signals (depending on the neuron model chosen).
  • the integration module INT is modified to calculate the sum of the received signals weighted by the weights of the synapses which are read in the memory MEM_W. In other words, the weighting of the signals by the weights of the synapses is carried out by the neuron and not by the synapses as in the first embodiment.
  • Each neuron in the output layer is configured to calculate a variable and a desired target value for that variable.
  • the variable used can be the integration variable Vi S calculated by the integration module INT or the pulses Si , s generated by the activation module ACT or the result of the function d activation equivalent to i S or any combination of one or more of these variables or other variables calculated by the output neuron.
  • the target value is chosen according to the application. For example, if the neuron network is used for object classification, the target value corresponds to the object that each output neuron is supposed to detect.
  • each output neuron can calculate a cost function dependent on one or more of the variables calculated or on a combination of one or more of these variables and a target value or desired value.
  • the error calculated by the output neuron is then equal to the derivative of the cost function with respect to each variable used.
  • the cost function used can depend only on the equivalent activation function ai , s (t) and the calculated error will be dependent on the derivative of this equivalent activation function.
  • 5 i S the error calculated by the output neuron N i S - This error is then coded, using an encoder that the output neuron includes, in the form of pulses or digital data. Different types of coding are possible.
  • the pulses can be coded on three levels as ternary signals.
  • the error 5i s, which is a floating number, is quantified on three levels -1, 0.1 and transmitted to the neurons of the preceding layer via a digital signal or a ternary pulse.
  • the error 5 i S is decomposed into a sum of the values -1, 0 and 1 and is coded by a group of digital data or of ternary pulses.
  • the value 5.3 can be coded by five successive positive pulses
  • the value -3.2 can be coded by three successive negative pulses.
  • the pulses can also be coded on two levels as binary signals according to the two coding variants presented above.
  • FIG. 4 represents an example of implementation of an output neuron N i S. It mainly includes an I / O 2 input / output interface, an INT integration module, an CALC_ER error calculation module and a COD encoder to encode the calculated error into pulses which are then back propagated to the previous layer via the I / O input / output interface 2 .
  • the output neuron N i S can also include a comparator COMP and an activation module ACT when these are necessary for the calculation of variables used for the calculation of the error.
  • FIG. 5 describes, according to the first embodiment of the invention, the operation of an impulse neuron Nu of an intermediate layer Ci during the back-propagation phase of the errors calculated by the neurons of the output layer.
  • the synapses are produced by memristive devices, memristors or any equivalent analog circuit as explained in the paragraph relating to FIG. 2.
  • FIG. 5 only the computation modules and operators of the neuron are represented. who intervene during the back-propagation phase. In a real implementation of the neuron, this comprises both the modules and operators described in FIG. 5 which are activated during the back propagation phase and the modules and operators described in FIG. 2 which are activated during the phase of data propagation.
  • the synapses W 1 J + 1 , W 2 J + I, ... , W K J + I receive the errors calculated by the neurons of the previous layer C (in the direction of back propagation) in the form of binary or ternary pulses. Each synapse sends in response a signal corresponding to the received pulse weighted by the weight of the synapse. These weighted error signals are received by the I / O input / output interface and then processed by an INT_ER integration module which achieves an accumulation of the received signals.
  • the INT_ER integration module activated during the back propagation phase performs the same function as the INT integration module activated during the data propagation phase. They can be implemented by two separate modules or by the same module.
  • the integration variable U obtained at the output of the integration module INT_ER is then compared with one or two activation thresholds. For example, when the signals received are ternary signals, a positive activation threshold 0 bp and a negative activation threshold -0 bp are used, via a comparator COMP_ER which can be produced by the same component as the comparator COMP described in Figure 2.
  • a comparator COMP_ER which can be produced by the same component as the comparator COMP described in Figure 2.
  • an activation module ACT_ER generates a positive pulse and the integration variable Ui j is reduced by the value of threshold 0 bp .
  • an activation module ACT_ER When the integration variable U, j decreases below the negative activation threshold -0 bp , an activation module ACT_ER generates a negative pulse and the integration variable U, is reduced by the value of the threshold -0 bp .
  • the ACT_ER activation module can be made by the same component as the ACT activation module described in Figure 2.
  • the integration variable of the neuron during the error back-propagation phase is given by the following relation:
  • the signal generated by the activation module ACT_ER is an intermediate impulse signal z u .11 can be represented by the following relation:
  • the positive activation threshold can be replaced by T + 0 bp and the negative activation threshold by T-0 bp with T a positive, negative or zero constant.
  • the intermediate pulse signal z can be represented by the relation:
  • a single threshold 0 bP is used instead of two thresholds.
  • the integration variable Ui j is reduced by a predetermined value which can be equal to the threshold 0 bp or to a value different from the threshold 0 bP .
  • a single activation threshold 0 bp is used.
  • the integration variable Uj is reduced by a predetermined value which can be equal to the 0 bp threshold or to a value different from the 0 bp threshold.
  • the back propagation algorithm executed by the neural network is implemented in two successive phases.
  • the back-propagation algorithm is executed by the neural network by considering an intermediate pulse signal z u binary represented by the following relation, with 6 bp a positive activation threshold:
  • the activation module ACT_ER When the integration variable Llg exceeds the activation threshold 0 bp , the activation module ACT_ER generates a positive pulse and the integration variable Uj is reduced by the value of the threshold 0 bp .
  • the back-propagation algorithm is executed by the neural network by considering an intermediate pulse signal z, binary represented by the following relation, with -9 bp a negative activation threshold:
  • the activation module ACT_ER When the integration variable u, i goes below the activation threshold -0 bp , the activation module ACT_ER generates a negative pulse and the integration variable Uj is reduced by the value of the threshold -0 bp (or increased by the value of 0 bp ).
  • This signal is used to then generate a local error in the same impulse form.
  • the local error is calculated by the calculation module ER_LOC from the intermediate signal z, and from the estimate a'i j of the derivative of the equivalent activation function of the neuron.
  • the estimate a'i j was calculated by the neuron during the data propagation phase (see Figure 2) or is calculated during the error back propagation phase from the last values of the variables Xj and V u which were saved at the end of the data propagation phase.
  • the local error is calculated by making a product of the intermediate signal z u and of the estimate a'i which is a binary or ternary variable, according to the model of the estimate a'i j chosen.
  • the calculation of the local error does not require multiplication of floating numbers and the result of this calculation is a ternary variable (which takes values 1, 0 or -1) or binary.
  • the local error 5j (t) is then propagated to the synapses of the next layer CM via the I / O interface 2 .
  • the neuron also includes a SHIFT module for calculating an update of the weights of the synapses. This update is calculated from the local error and from the variable X j, M transmitted by each neuron of layer C to which the neuron N, is connected.
  • the variable X jj -i was previously calculated during the data propagation phase.
  • the weights of the synapses are preferably updated after the propagation of the errors to the next layer, however it is also possible to reverse the order of these two actions.
  • the variable h - is stored in a memory MEM_X accessible to the neurons of two consecutive layers, as shown in FIG. 5.
  • the MAJ module for calculating an update of the weights of the synapses is eliminated and the updating of the synaptic weights is directly carried out by the memristive devices which produce the synapses.
  • the error signals 5j (t) are propagated from the neurons of the layer Ci to the synapses Wy , W 2J ... W K, i and the variables X j, are propagated in the form of signals from the neurons from the CM layer to the synapses WI J , W 2, i, ... W Kj .
  • Each synapse then updates its synaptic weight directly from the interaction of the two signals 5i j (t) and X jj -i (t) by analyzing the difference in the potentials of the two signals to update its weight with a value representative of the term
  • FIG. 6 describes the operation of an impulse neuron Nu of an intermediate layer Ci during the back-propagation phase according to the second embodiment of the invention described in FIG. 3.
  • the neuron is implemented by a digital device.
  • Binary or ternary error signals are coded by binary or ternary digital signals and are transmitted between neurons via the same communication infrastructure as for signals propagated during the data propagation phase.
  • the weights of the synapses are stored in a digital memory MEM_W
  • the integration module INT_ER is modified to calculate the sum of the received signals weighted by the weights of the synapses which are read in the memory MEM_W
  • of the layer Ci is directly updated by the MAJ calculation module for updating the weights of the synapses.
  • Different architectures are possible for storing the weights of the synapses.
  • the INT_ER integration module is configured to access the memory in which the weights of the synapses of the previous layer C
  • the signals exchanged between the neurons can be implemented by two separate buses.
  • a first data bus is used to transmit the pulses generated via a value 1, in the case of binary signals, or a value 1 or -1, in the case of ternary signals.
  • a second asynchronous signaling bus is used to signal to a neuron the reception (or transmission) of a data item.
  • the second asynchronous bus is used to transmit information of the presence of a value other than 0 on the data bus.
  • the second asynchronous bus can be, for example, a bus of the AER type "Address Event Representation".
  • the assembly formed by the data bus and the asynchronous bus is capable of transmitting a binary digital signal or a ternary digital signal.
  • the binary signal the reader will understand that the value "1" is indicated by the data bus and the value "0" by the asynchronous bus.
  • the ternary signal the values "1" and “-1” are indicated by the data bus and the value "0” by the asynchronous bus.
  • the invention has the advantage of using a binary or ternary representation of the local errors calculated during the error back-propagation phase so that no multiplication of floating numbers is necessary to implement the calculations d 'errors.
  • the same communication infrastructure can be used both for data propagation and for error back propagation since the two types of signals are coded in the same way.
  • Certain calculation modules and operators can be used jointly for the data propagation phase and for the error back propagation phase.
  • the integration modules INT, INT_ER, the comparators COMP, COMP_ER and the activation modules ACT, ACT_ER can be produced by a single component.
  • the invention makes it possible to use the same type of device or circuit to carry out the data propagation phase and the error back propagation phase since the signals propagated in the two phases are of similar natures and the treatments applied to these signals are limited to accumulations and comparisons for the two phases.
  • the invention can be implemented using hardware and / or software components.
  • the software elements may be available as a computer program product on a computer-readable medium, which may be electronic, magnetic, optical or electromagnetic.
  • the hardware elements may be available in whole or in part, in particular as dedicated integrated circuits (ASIC) and / or configurable integrated circuits (FPGA) and / or as neural circuits according to the invention or as a digital signal processor DSP and / or as a GPU graphics processor, and / or as a microcontroller and / or as a general processor for example.
  • the neural network according to the invention can be implemented by one or more digital device (s) comprising at least a digital memory and a communication infrastructure for propagating binary or ternary signals between neurons.
  • the neural network according to the invention can also be implemented by one or more analog device (s) comprising at least one memristive device and a communication infrastructure able to propagate analog signals in the form of signed or non-signed pulses. signed.
  • analog device comprising at least one memristive device and a communication infrastructure able to propagate analog signals in the form of signed or non-signed pulses. signed.
  • the synapses can be produced in the form of memristive devices or memristors, for example devices of the PCM (Phase-Change Memory) type or RAM or OXRAM memories or any other equivalent analog device or circuit.
  • a synapse can be implemented by an analog circuit based on at least one capacity or at least one capacitor and the charge of the capacity or of the capacitor making it possible to store the value of a synaptic weight.

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)
  • Memory System (AREA)
  • Semiconductor Memories (AREA)

Abstract

L'invention propose une nouvelle implémentation d'un algorithme de rétropropagation d'erreurs qui est adaptée aux contraintes matérielles d'un dispositif implémentant un réseau de neurones impulsionnels. L'invention utilise, notamment, un codage binaire ou ternaire des erreurs calculées lors de la phase de rétro-propagation pour adapter sa mise en œuvre aux contraintes du réseau et ainsi éviter le recours à des opérateurs de multiplication de nombres flottants. Plus généralement l'invention propose une adaptation globale de l'algorithme de rétro-propagation aux contraintes spécifiques d'un réseau de neurones impulsionnel. En particulier, l'invention permet d'utiliser la même infrastructure de propagation pour la propagation des données et pour la rétro-propagation des erreurs lors de la phase d'apprentissage. L'invention propose une implémentation générique d'un neurone impulsionnel qui convient à la mise en œuvre de tout type de réseaux de neurones impulsionnels, en particulier les réseaux convolutionnels.

Description

Rétro-propagation d’erreurs sous forme impulsionnelle dans un réseau de neurones impulsionnels
L’invention concerne le domaine des réseaux de neurones artificiels et plus précisément celui des réseaux de neurones impulsionnels.
Les réseaux de neurones artificiels sont composés essentiellement de neurones interconnectés entre eux par des synapses, qui sont classiquement implémentées par des mémoires numériques, mais qui peuvent être également implémentées par des composants résistifs dont la conductance varie en fonction de la tension appliquée à leurs bornes.
Les réseaux de neurones impulsionnels sont en général optimisés par la mise en oeuvre de méthodes d’apprentissage supervisé ou non supervisé.
Ces méthodes comprennent une première phase de propagation de données, produites en entrée du réseau de neurones, vers la couche de sortie du réseau de neurones, puis une seconde phase de rétro-propagation d’erreurs depuis la couche de sortie vers la couche d’entrée. Lors de la seconde phase de rétro-propagation, les synapses sont mises à jour à partir d’erreurs calculées localement par chaque neurone en fonction d’erreurs rétro-propagées depuis la couche précédente du réseau de neurones.
L’invention porte sur un neurone impulsionnel et un réseau de neurones impulsionnels, conçus pour implémenter un algorithme de rétro- propagation d’erreurs sous forme d’impulsions signées ou non signées ou de données binaires ou ternaires.
Les réseaux de neurones impulsionnels présentent l’avantage de permettre une implémentation sur des calculateurs à ressources contraintes car les traitements mis en oeuvre pendant la phase de propagation de l’apprentissage ou pendant une phase de classification ne nécessitent pas de multiplications de nombres flottants. En effet, au sein d’un réseau de neurones impulsionnels, les données sont codées sous forme d’impulsions (signées ou non) et les traitements exécutés par chaque neurone peuvent, de ce fait, être implémentés uniquement à l’aide d’accumulateurs et de comparateurs. Ainsi, le recours à des opérateurs de multiplication de nombres flottants est évité, ce qui présente un avantage certain pour une implémentation numérique ou analogique sur des dispositifs à ressources limitées.
Cependant, l’algorithme de rétro-propagation utilisé pour mettre à jour les valeurs des synapses lors d’une phase d’apprentissage nécessite, quand à lui, l’utilisation de multiplications de nombres flottants pour calculer les erreurs locales à chaque neurone. Par ailleurs, il nécessite également la propagation synchrone de ces erreurs sous la forme de nombres flottants entre chaque couche de neurones du réseau de neurones. Or les réseaux de neurones impulsionnels sont basés sur une logique de propagation des données asynchrones, sous forme d’impulsions.
Ainsi, l’algorithme de rétro-propagation n’est généralement pas mis en oeuvre, au sein d’un réseau de neurones impulsionnel, de manière à prendre en compte les contraintes matérielles d’un tel réseau.
Du fait de l’incompatibilité de mise en oeuvre d’un algorithme de rétro- propagation pour un réseau de neurones impulsionnel, l’apprentissage au sein d’un tel réseau est généralement réalisé en utilisant un algorithme inspiré de règles biologiques du type « Spike-Timing Dépendent Plasticity » ou STDP. Ce type de règle d’apprentissage est cependant moins performant qu’un apprentissage basé sur un algorithme de rétro-propagation.
La publication scientifique [1 ] décrit une mise en œuvre possible d’un algorithme de rétro-propagation pour un réseau de neurones impulsionnels. Cependant, il s’agit d’une implémentation coûteuse car elle nécessite des multiplications de nombres flottants et n’est pas adaptée à des dispositifs à faible consommation et ressources contraintes.
La publication scientifique [2] décrit la possibilité de quantifier sur trois valeurs les erreurs rétro-propagées par l’algorithme de rétro-propagation. Cependant ce document concerne les réseaux de neurones formels et non pas les réseaux de neurones impulsionnels. Il ne prend pas en compte les contraintes de traitement asynchrone de ces réseaux.
L’invention propose une nouvelle implémentation d’un algorithme de rétro-propagation d’erreurs qui soit adaptée aux contraintes matérielles d’un dispositif implémentant un réseau de neurones impulsionnels.
L’invention utilise, notamment, un codage binaire ou ternaire des erreurs calculées lors de la phase de rétro-propagation pour adapter sa mise en oeuvre aux contraintes du réseau et ainsi éviter le recours à des opérateurs de multiplication de nombres flottants.
Plus généralement l’invention propose une adaptation globale de l’algorithme de rétro-propagation aux contraintes spécifiques d’un réseau de neurones impulsionnel. En particulier, l’invention permet d’utiliser la même infrastructure de propagation pour la propagation des données et pour la rétro-propagation des erreurs lors de la phase d’apprentissage.
L’invention propose une implémentation générique d’un neurone impulsionnel qui convient à la mise en oeuvre de tout type de réseaux de neurones impulsionnels, en particulier les réseaux convolutionnels.
Dans un premier mode de réalisation, l’invention a pour objet un neurone artificiel impulsionnel appartenant à une couche intermédiaire de plusieurs neurones, la couche intermédiaire appartenant à un réseau de neurones comprenant plusieurs couches successives, le réseau de neurones étant configuré pour exécuter un mécanisme d’apprentissage comprenant une première phase de propagation de données d’une couche d’entrée vers une couche de sortie, et une seconde phase de rétro-propagation d’erreurs depuis la couche de sortie vers la couche d’entrée, le neurone artificiel impulsionnel comprenant, pour l’exécution de la seconde phase de rétro- propagation: - Une première interface d’entrée/sortie apte à recevoir des signaux d’erreur binaires ou ternaires pondérés par des coefficients synaptiques,
- Un module de calcul d’erreur configuré pour calculer un signal d’erreur locale binaire ou ternaire à partir d’un signal intermédiaire binaire ou ternaire généré par le neurone en réponse aux signaux d’erreur reçus et d’une estimée de la dérivée d’une fonction d’activation équivalente mise en oeuvre par le neurone pendant la première phase de propagation de données,
- Une seconde interface d’entrée/sortie apte à propager le signal d’erreur locale binaire ou ternaire vers plusieurs synapses sous forme d’impulsions.
Selon un aspect particulier du premier mode de réalisation de l’invention, la première interface d’entrée/sortie est apte à émettre des signaux binaires ou ternaires vers plusieurs synapses sous forme d’impulsions pendant la première phase de propagation de données et la seconde interface d’entrée/sortie est apte à recevoir des signaux binaires ou ternaires pondérés par des coefficients synaptiques pendant la première phase de propagation de données.
Selon une variante particulière du premier mode de réalisation de l’invention, le neurone artificiel impulsionnel comprend :
- Un module d’intégration desdits signaux d’erreur pour calculer une erreur cumulée,
- Au moins un comparateur pour comparer l’erreur cumulée à au moins un seuil d’activation parmi un seuil d’activation positif et un seuil d’activation négatif,
- Un module d’activation configuré pour générer le signal intermédiaire binaire ou ternaire en fonction du résultat de l’au moins un comparateur.
Dans un second mode de réalisation, l’invention a aussi pour objet un neurone artificiel impulsionnel appartenant à une couche intermédiaire de plusieurs neurones, la couche intermédiaire appartenant à un réseau de neurones comprenant plusieurs couches successives, le réseau de neurones étant configuré pour exécuter un mécanisme d’apprentissage comprenant une première phase de propagation de données d’une couche d’entrée vers une couche de sortie, et une seconde phase de rétro-propagation d’erreurs depuis la couche de sortie vers la couche d’entrée, le neurone artificiel impulsionnel comprenant, pour l’exécution de la seconde phase de rétro- propagation:
- Une première interface d’entrée/sortie apte à recevoir des signaux d’erreur binaires ou ternaires,
- Un module de calcul d’erreur configuré pour calculer un signal d’erreur locale binaire ou ternaire à partir d’un signal intermédiaire binaire ou ternaire généré par le neurone en réponse aux signaux d’erreur reçus et d’une estimée de la dérivée d’une fonction d’activation équivalente mise en oeuvre par le neurone pendant la première phase de propagation de données,
- Une seconde interface d’entrée/sortie apte à propager le signal d’erreur locale binaire ou ternaire vers les neurones de la couche suivante.
Selon un aspect particulier du second mode de réalisation de l’invention, la première interface d’entrée/sortie est apte à émettre des signaux binaires ou ternaires vers les neurones de la couche suivante pendant la première phase de propagation de données et la seconde interface d’entrée/sortie est apte à recevoir des signaux binaires ou ternaires pendant la première phase de propagation de données.
Selon une variante particulière du second mode de réalisation de l’invention, le neurone artificiel impulsionnel comprend :
- Un module d’intégration desdits signaux d’erreur binaires ou ternaires pour calculer une erreur cumulée et pondérée par des coefficients synaptiques, - Au moins un comparateur pour comparer l’erreur cumulée à au moins un seuil d’activation parmi un seuil d’activation positif et un seuil d’activation négatif,
- Un module d’activation configuré pour générer le signal intermédiaire binaire ou ternaire en fonction du résultat de l’au moins un comparateur.
Selon un aspect particulier de l’invention, le module d’activation est configuré pour générer un signal intermédiaire positif lorsque l’erreur cumulée est supérieure au seuil d’activation positif et un signal intermédiaire négatif lorsque l’erreur cumulée est inférieure au seuil d’activation négatif.
Selon une variante particulière, le neurone artificiel impulsionnel selon l’un quelconque des modes de réalisation de l’invention comprend en outre un soustracteur pour soustraire de l’erreur cumulée la valeur du seuil d’activation positif lorsqu’un signal intermédiaire positif est généré et soustraire de l’erreur cumulée la valeur du seuil d’activation négatif lorsqu’un signal intermédiaire négatif est généré.
Selon une variante particulière, le neurone artificiel impulsionnel selon l’un quelconque des modes de réalisation de l’invention comprend en outre un module de calcul d’une mise à jour de coefficients synaptiques à partir de l’erreur locale et d’un résultat de la fonction d’activation équivalente.
Selon un aspect particulier de l’invention, le résultat de la fonction d’activation équivalente est calculé pendant la phase de propagation de données d’un neurone.
Selon un aspect particulier de l’invention, le module de calcul d’une mise à jour de coefficients synaptiques est activé après la propagation de l’erreur locale.
Selon un aspect particulier de l’invention, le module de calcul d’un signal d’erreur locale est configuré pour calculer un produit entre le signal intermédiaire et l’estimée de la dérivée de la fonction d’activation équivalente. Selon un aspect particulier de l’invention, la fonction d’activation équivalente est une fonction d’intégration des impulsions générées par le neurone et pondérée par un paramètre de taux d’apprentissage du réseau de neurones.
Selon une variante particulière, le neurone artificiel impulsionnel selon l’un quelconque des modes de réalisation de l’invention comprend un module de calcul de dérivée configuré pour calculer l’estimée de la dérivée de la fonction d’activation équivalente à partir d’un résultat de la fonction d’activation équivalente mise en oeuvre par le neurone pendant la première phase de propagation de données et d’une variable d’intégration du neurone pendant la première phase de propagation de données.
Selon un aspect particulier de l’invention, l’estimée de la dérivée de la fonction d’activation équivalente est égale à 1 lorsque le résultat de ladite fonction est strictement positif ou la variable d’intégration est strictement positive, et est égale à 0 sinon.
Selon un aspect particulier de l’invention, le module de calcul de dérivée est activé pendant la phase de propagation de données du neurone ou pendant la phase de rétro-propagation d’erreurs du neurone.
L’invention a encore pour objet un réseau de neurones artificiels impulsionnels configuré pour exécuter un mécanisme d’apprentissage comprenant une première phase de propagation de données d’une couche d’entrée vers une couche de sortie, et une seconde phase de rétro- propagation d’erreurs depuis la couche de sortie vers la couche d’entrée, le réseau de neurones comprenant plusieurs couches de neurones artificiels impulsionnels selon l’un quelconque des modes de réalisation de l’invention, chaque neurone étant connecté au moins à un neurone d’une couche suivante ou à un neurone d’une couche précédente par l’intermédiaire d’une synapse.
Selon un aspect particulier de l’invention, le réseau comprend une couche d’entrée et une couche de sortie, les neurones de la couche d’entrée étant configurés pour recevoir des données à propager sous forme binaire ou ternaire et les neurones de la couche de sortie étant configurés pour calculer, à partir des données propagées pendant la première phase de propagation de données, une erreur entre un résultat obtenu et un résultat cible.
Selon un aspect particulier de l’invention, chaque neurone de la couche de sortie comprend un codeur configuré pour coder l’erreur en un ensemble d’au moins un signal binaire ou ternaire.
Selon un aspect particulier de l’invention, le codeur est configuré pour quantifier l’erreur sur deux ou trois niveaux de quantification de manière à générer un signal binaire ou ternaire.
Selon un aspect particulier de l’invention, le codeur est configuré pour coder l’erreur par un groupe de signaux binaires successifs ou un groupe de signaux ternaires successifs.
L’invention a encore pour objet un réseau de neurones artificiels configuré pour exécuter un mécanisme d’apprentissage comprenant une première phase de propagation de données d’une couche d’entrée vers une couche de sortie, et une seconde phase de rétro-propagation d’erreurs depuis la couche de sortie vers la couche d’entrée, le réseau de neurones comprenant plusieurs couches de neurones artificiels impulsionnels selon le second mode de réalisation de l’invention, chaque neurone étant connecté au moins à un neurone d’une couche suivante ou à un neurone d’une couche précédente par l’intermédiaire d’une synapse ayant un poids synaptique, les synapses étant implémentées sous forme de mémoires numériques, de dispositifs memristifs ou de circuits analogiques.
Selon un aspect particulier de l’invention, chaque synapse est configurée pour mettre à jour son poids synaptique en réponse à un signal d’erreur binaire ou ternaire reçu depuis un neurone d’une couche suivante et à un signal représentatif du résultat de la fonction d’activation équivalente reçu depuis un neurone d’une couche précédente. D’autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description qui suit en relation aux dessins annexés qui représentent :
- La figure 1 , un schéma général d’un réseau de neurones artificiels impulsionnels,
- La figure 2, un schéma d’un neurone artificiel impulsionnel, selon un premier mode de réalisation de l’invention, exécutant une première phase de propagation de données d’un mécanisme d’apprentissage,
- La figure 3, un schéma d’un neurone artificiel impulsionnel, selon un second mode de réalisation de l’invention, exécutant une première phase de propagation de données d’un mécanisme d’apprentissage,
- La figure 4, un schéma d’un neurone artificiel impulsionnel de la couche de sortie du réseau de neurones,
- La figure 5, un schéma d’un neurone artificiel impulsionnel, selon le premier mode de réalisation de l’invention, exécutant une seconde phase de rétro-propagation d’erreurs d’un mécanisme d’apprentissage,
- La figure 5bis, un schéma d’une variante du premier mode de réalisation,
- La figure 6, un schéma d’un neurone artificiel impulsionnel, selon le second mode de réalisation de l’invention, exécutant une seconde phase de rétro-propagation d’erreurs d’un mécanisme d’apprentissage. La figure 1 représente un schéma général d’un réseau de neurones artificiels impulsionnels. Un réseau de neurones est classiquement composé de plusieurs couches Ce,Ci,Ci+i,Cs de neurones impulsionnels interconnectés. Le réseau comporte au moins une couche d’entrée Ce et une couche de sortie Cs et au moins une couche intermédiaire C|,C|+-|. Les neurones Ni e de la couche d’entrée Ce reçoivent chacun en entrée une donnée d’entrée 101. Les données d’entrée peuvent être de natures différentes selon l’application visée. Par exemple, il peut s’agir de pixels d’une image ou de données audio ou textuelles ou plus généralement n’importe quel type de données pouvant être codées sous forme d’impulsions. Les applications d’un réseau de neurones comprennent notamment la classification et la détection d’objets dans une image ou dans une vidéo pour des dispositifs embarqués dans des véhicules autonomes ou des dispositifs de vidéo surveillance associés à des caméras de vidéo surveillance. Un réseau de neurones est, par exemple, utilisé dans le domaine de la classification d’image ou de la reconnaissance d’image ou plus généralement la reconnaissance de caractéristiques qui peuvent être visuelles, audio ou les deux à la fois. Chaque neurone d’une couche est connecté, par son entrée et/ou sa sortie, à tous les neurones de la couche précédente ou suivante. Plus généralement un neurone peut n’être connecté qu’à une partie des neurones d’une autre couche, notamment dans le cas d’un réseau convolutionnel. Les connexions 102,103,104 entre deux neurones Ni e, N se font à travers des synapses artificielles S-i,S2,S3 qui peuvent être réalisées, notamment, par des mémoires numériques ou par des dispositifs memristifs. Les coefficients des synapses peuvent être optimisés grâce à un mécanisme d’apprentissage du réseau de neurones. Ce mécanisme comporte deux phases distinctes, une première phase de propagation de données de la couche d’entrée vers la couche de sortie et une seconde phase de rétro-propagation d’erreurs de la couche de sortie vers la couche d’entrée avec, pour chaque couche, une mise à jour des poids des synapses.
Lors de la première phase de propagation de données, des données d’apprentissage, par exemple des images ou séquences d’images, sont fournies en entrée des neurones de la couche d’entrée et propagées dans le réseau. Pour un réseau de neurones impulsionnels, les données sont codées sous forme d’impulsions asynchrones. Les impulsions correspondent à des signaux binaires ou ternaires, autrement dit il peut s’agir d’impulsions signées ou non. Chaque neurone met en œuvre, pendant cette première phase, une fonction d’intégration des impulsions qu’il reçoit des neurones de la couche précédente (ou des impulsions codées depuis les données d’entrée pour les neurones de la couche d’entrée). La fonction d’intégration consiste essentiellement en une accumulation des impulsions pondérées par les poids des synapses artificielles. Chaque neurone met aussi en œuvre une fonction d’activation qui consiste, à partir d’une comparaison de la variable d’intégration à un ou deux seuil(s) d’activation, à générer et propager une impulsion vers les neurones de la couche suivante. Selon les modèles de neurones choisis, la fonction d’intégration et la fonction d’activation peuvent varier. En particulier, un courant de fuite peut être implémenté par le neurone pour atténuer la variable d’intégration au cours du temps lorsqu’aucune impulsion n’est reçue par le neurone. Les neurones N,,3 de la couche de sortie Cs exécutent un traitement supplémentaire en ce qu’ils calculent une erreur entre un résultat d’intégration des impulsions reçues par le neurone N,, s et une valeur attendue ou une valeur cible qui correspond à l’état final du neurone de la couche de sortie que l’on souhaite obtenir en relation avec les données d’entrée d’apprentissage.
Lors de la seconde phase de rétro-propagation d’erreurs, les neurones de la couche de sortie Cs transmettent les erreurs calculées aux neurones de la couche précédente Ci+i qui calculent une erreur locale à partir de l’erreur rétro-propagée de la couche précédente et transmettent à leur tour cette erreur locale à la couche précédente C|. En parallèle, chaque neurone calcule, à partir de l’erreur locale, une valeur de mise à jour des poids des synapses auxquelles il est connecté et met à jour les synapses. Le processus se poursuit pour chaque couche de neurones jusqu’à l’avant dernière couche qui est chargée de mettre à jour les poids des synapses qui la relient à la couche d’entrée Ce.
Un objectif de l’invention est de proposer une mise en œuvre particulière de la phase de rétro-propagation d’erreurs, qui soit adaptée aux contraintes d’implémentation ou contraintes matérielles des neurones impulsionnels.
La figure 2 décrit un exemple de neurone impulsionnel selon un premier mode de réalisation de l’invention et son fonctionnement lors de la phase de propagation de données.
Sur la figure 2 est représenté un neurone N, appartenant à une couche intermédiaire C|. Le neurone N, est connecté en aval aux neurones d’une couche suivante Ci+i par l’intermédiaire de synapses Wu+i, W2J+I , .. . ,WK,I+I . Selon le premier mode de réalisation de l’invention, les synapses sont réalisées par des dispositifs memristifs ou memristors ou tout circuit analogique équivalent. De la même façon, le neurone Nu est connecté en amont aux neurones d’une couche précédente CM par l’intermédiaire de synapses W-I J, W2,I .. . ,WK,I.
Lors de la phase de propagation de données, le neurone Nu reçoit, via une première interface d’entrée/sortie E/S2, des impulsions émises par les neurones de la couche précédente et pondérées par les poids des synapses W-I J, W2J .. . ,WKJ. Les synapses, réalisées par des dispositifs memristifs, reçoivent une impulsion signée ou non signée d’amplitude constante émise par un neurone et émettent à leur sortie, une impulsion amplifiée par une valeur représentative du poids de la synapse. Les signaux reçus par le neurone N, i correspondent à des signaux binaires ou ternaires pondérés par les poids des synapses. Les signaux reçus sont intégrés par un module d’intégration INT qui réalise une fonction d’intégration qui dépend de la nature du neurone. Selon un exemple de réalisation, la fonction d’intégration consiste à sommer ou intégrer, dans le temps, les signaux reçus. Dans un autre exemple de réalisation, la fonction d’intégration comprend une fonction d’atténuation ou de fuite pour faire décroître la variable d’intégration au cours du temps lorsqu’aucun signal n’est reçu par le neurone. La variable d’intégration Vg obtenue en sortie du module d’intégration INT est ensuite comparée à un ou plusieurs seuils d’activation via un comparateur COMP. Selon un premier exemple de réalisation, un seul seuil d’activation positif 0ff est utilisé. Lorsque la variable d’intégration Vu dépasse le seuil d’activation positif 0ff, un module d’activation ACT génère une impulsion positive et la variable d’intégration Vg est diminuée de la valeur du seuil 0ff. Selon un second exemple de réalisation, en plus du seuil positif 0«, un seuil négatif -0ff est utilisé. Lorsque la variable d’intégration Vu diminue en dessous du seuil d’activation négatif -0ff, un module d’activation ACT génère une impulsion négative et la variable d’intégration Vu est diminuée de la valeur du seuil -0ff (ou augmentée de la valeur 0ff). Les valeurs absolues des deux seuils peuvent être égales ou différentes. Les impulsions générées par le module d’activation ACT sont transmises à une interface d’entrée/sortie E/Si pour être propagées vers les synapses W1 J+1, W2,I+I , . . . ,WK,I+I connectées entre le neurone N,,i et les neurones de la couche suivante Ci+i.
La variable d’intégration Vg calculée par le module d’intégration INT au cours du temps peut être représentée par la relation suivante :
Sij(t) représente l’impulsion générée par le neurone dont la valeur est donnée par la relation suivante dans le cas d’un signal ternaire:
Dans le cas d’un signal binaire, la relation (2) est remplacée par :
La variable d’intégration Vg peut être initialisée à une valeur différente de 0 au début de la phase de propagation de données.
Les traitements décrits ci-dessus et mis en oeuvre par le neurone Nu ne sont basés que sur des accumulations ou des comparaisons et ne nécessitent aucune multiplication de nombres flottants. Le neurone N, i exécute en outre deux fonctions de calcul supplémentaires pour calculer des variables qui seront utilisées pendant la phase de rétro-propagation d’erreurs.
Un deuxième module d’intégration FAE est utilisé pour accumuler les impulsions Sj générées par le neurone au cours du temps, l’accumulation étant pondérée par un taux d’apprentissage hi qui est un paramètre du réseau de neurones. Ce taux d’apprentissage hi peut être différent pour chaque couche du réseau.
La variable x, obtenue en sortie de ce deuxième module d’intégration est représentée par la relation suivante :
Xi,i ) = hi . si (t) + xix (t - At) (3)
Cette variable peut aussi être représentée par les relations suivantes, où a,,! correspond à l’accumulation au cours du temps des impulsions générées par le neurone et est appelée fonction d’activation équivalente du neurone. La variable Xj (t) correspond à la fonction d’activation équivalente pondérée par un paramètre de taux d’apprentissage hi.
Le calcul de la variable Xj ne nécessite pas non plus de multiplication car les impulsions s, prennent les valeurs 1 ,0 ou -1. Le calcul de la variable Xi,i consiste en une accumulation de la valeur hi.
Un module de dérivation DER est aussi utilisé pour calculer une estimée a i de la fonction d’activation équivalente a. du neurone. Cette estimée est utilisée lors de la phase de rétro-propagation d’erreurs.
L’estimée a’ij est égale à 1 si la variable d’intégration Vj est supérieure à 0 ou que la variable Xj est supérieure à 0 et vaut 0 sinon. Sans sortir du cadre de l’invention, d’autres estimées a’ij de la fonction d’activation équivalente peuvent être déterminées de sorte à produire une variable binaire {0 ;1 } ou ternaire {-1 ;0 ;1 }. Une caractéristique de l’invention est que l’estimée a’ij est une variable binaire ou ternaire de sorte à éviter les calculs impliquant des multiplications de nombres flottants.
Les valeurs de Vj (t) et Xj (t) utilisées pour calculer a’ij sont les dernières valeurs à jour calculées par le neurone lors de la phase de propagation de données pour une séquence d’apprentissage présentée en entrée du réseau de neurones.
Le calcul de l’estimée a’ij de la fonction d’activation équivalente a,j du neurone peut être réalisé pendant la phase de propagation de données auquel cas la valeur de a’ij est sauvegardée dans une mémoire pour être utilisée lors de la phase de rétro-propagation d’erreurs. Le calcul de l’estimée a’ij peut aussi être réalisé pendant la phase de rétro-propagation d’erreurs, à partir des dernières valeurs sauvegardées par le neurone de V, j(t) et Xjj(t).
Dans une variante de réalisation, la fonction d’activation mise en oeuvre par le neurone peut être modifiée de la façon suivante :
Selon cette variante, la somme des impulsions générées par le neurone, représentée par la variable aj (t) est toujours supérieure à 0.
La figure 3 représente un second mode de réalisation du neurone impulsionnel selon l’invention. Dans ce second mode de réalisation, le neurone est implémenté par un dispositif numérique. Les signaux impulsionnels binaires ou ternaires sont codés par des signaux numériques binaires ou ternaires et sont transmis entre les neurones via une infrastructure de communication numérique. Les synapses ne sont plus réalisées par des dispositifs actifs positionnés sur les connexions entre deux neurones. Selon cette implémentation numérique, les poids des synapses sont stockés dans une mémoire numérique MEM_W. Les signaux reçus par l’interface d’entrée E/S2 sont des signaux binaires ou ternaires (selon le modèle de neurone choisi). Le module d’intégration INT est modifié pour calculer la somme des signaux reçus pondérés par les poids des synapses qui sont lus dans la mémoire MEM_W. Autrement dit, la pondération des signaux par les poids des synapses est réalisée par le neurone et non par les synapses comme dans le premier mode de réalisation.
Lorsque les données produites en entrée du réseau de neurones, autrement dit en entrée de la couche d’entrée Ce du réseau sont propagées jusqu’à la couche de sortie Cs du réseau, la phase de propagation des données est terminée. Chaque neurone de la couche de sortie est configuré pour calculer une variable et une valeur cible souhaitée pour cette variable. Selon le modèle de neurone de sortie choisi, la variable utilisée peut être la variable d’intégration Vi S calculée par le module d’intégration INT ou les impulsions Si,s générées par le module d’activation ACT ou le résultat de la fonction d’activation équivalente ai S ou toute combinaison d’une ou plusieurs de ces variables ou d’autres variables calculées par le neurone de sortie. La valeur cible est choisie selon l’application. Par exemple si le réseau de neurone est utilisé dans le cadre d’une classification d’objets, la valeur cible correspond à l’objet que chaque neurone de sortie est censé détecter.
Autrement dit, chaque neurone de sortie peut calculer une fonction de coût dépendante d’une ou plusieurs des variables calculées ou d’une combinaison d’une ou plusieurs de ces variables et d’une valeur cible ou valeur souhaitée. L’erreur calculée par le neurone de sortie est alors égale à la dérivée de la fonction de coût par rapport à chaque variable utilisée. Par exemple, la fonction de coût utilisée peut dépendre uniquement de la fonction d’activation équivalente ai,s(t) et l’erreur calculée sera dépendante de la dérivée de cette fonction d’activation équivalente. On note 5i S l’erreur calculée par le neurone de sortie Ni S- Cette erreur est ensuite codée, à l’aide d’un codeur que comporte le neurone de sortie, sous forme d’impulsions ou de données numériques. Différents types de codage sont possibles. Les impulsions peuvent être codées sur trois niveaux en tant que signaux ternaires. Selon une première variante, l’erreur 5i,s, qui est un nombre flottant, est quantifiée sur trois niveaux -1 ,0,1 et transmise aux neurones de la couche précédente via un signal numérique ou une impulsion ternaire. Selon une seconde variante, l’erreur 5i S est décomposée en une somme des valeurs -1 ,0 et 1 et est codée par un groupe de données numériques ou d’impulsions ternaires. Par exemple, la valeur 5,3 peut être codée par cinq impulsions positives successives, la valeur -3,2 peut être codée par trois impulsions négatives successives. Les impulsions peuvent être aussi codées sur deux niveaux en tant que signaux binaires selon les deux variantes de codage présentées ci-dessus.
La figure 4 représente un exemple d’implémentation d’un neurone de sortie Ni S. Il comprend principalement une interface d’entrée/sortie E/S2, un module d’intégration INT, un module de calcul d’erreur CALC_ER et un codeur COD pour coder l’erreur calculée en impulsions qui sont ensuite rétro-propagées vers la couche précédente via l’interface d’entrée/sortie E/S2. Le neurone de sortie Ni S peut aussi comprendre un comparateur COMP et un module d’activation ACT lorsque ceux-ci sont nécessaires pour le calcul de variables utilisées pour le calcul de l’erreur.
La figure 5 décrit, selon le premier mode de réalisation de l’invention, le fonctionnement d’un neurone impulsionnel Nu d’une couche intermédiaire Ci durant la phase de rétro-propagation des erreurs calculées par les neurones de la couche de sortie.
Dans ce premier mode de réalisation, les synapses sont réalisées par des dispositifs memristifs, memristors ou tout circuit analogique équivalent comme explicité dans le paragraphe relatif à la figure 2. Sur la figure 5, on a représenté uniquement les modules de calcul et opérateurs du neurone qui interviennent pendant la phase de rétro-propagation. Dans une implémentation réelle du neurone, celui-ci comprend à la fois les modules et opérateurs décrits à la figure 5 qui sont activés pendant la phase de rétro- propagation et les modules et opérateurs décrits à la figure 2 qui sont activés pendant la phase de propagation de données.
Les synapses W1 J+1 , W2J+I , .. . ,WKJ+I reçoivent les erreurs calculées par les neurones de la couche précédente C (dans le sens de la rétro- propagation) sous forme d’impulsions binaires ou ternaires. Chaque synapse émet en réponse un signal correspondant à l’impulsion reçue pondérée par le poids de la synapse. Ces signaux d’erreur pondérés sont reçus par l’interface d’entrée/sortie E/Si puis traités par un module d’intégration INT_ER qui réalise une accumulation des signaux reçus. Le module d’intégration INT_ER activé pendant la phase de rétro-propagation réalise la même fonction que le module d’intégration INT activé pendant la phase de propagation des données. Ils peuvent être réalisés par deux modules distincts ou par le même module. La variable d’intégration U, obtenue en sortie du module d’intégration INT_ER est ensuite comparée à un ou deux seuils d’activation. Par exemple, lorsque les signaux reçus sont des signaux ternaires, un seuil d’activation positif 0bp et un seuil d’activation négatif -0bp sont utilisés, via un comparateur COMP_ER qui peut être réalisé par le même composant que le comparateur COMP décrit à la figure 2. Lorsque la variable d’intégration U,j dépasse le seuil d’activation positif 0bp, un module d’activation ACT_ER génère une impulsion positive et la variable d’intégration Uij est diminuée de la valeur du seuil 0bp. Lorsque la variable d’intégration U,j diminue en dessous du seuil d’activation négatif -0bp, un module d’activation ACT_ER génère une impulsion négative et la variable d’intégration U, est diminuée de la valeur du seuil -0bp. Le module d’activation ACT_ER peut être réalisé par le même composant que le module d’activation ACT décrit à la figure 2.
La variable d’intégration du neurone pendant la phase de rétro- propagation d’erreurs est donnée par la relation suivante :
Le signal généré par le module d’activation ACT_ER est un signal impulsionnel intermédiaire zu .11 peut être représenté par la relation suivante :
Dans une variante de réalisation, le seuil d’activation positif peut être remplacé par T+0bp et le seuil d’activation négatif par T-0bp avec T une constante positive, négative ou nulle.
Dans une autre variante de réalisation, le signal impulsionnel intermédiaire z, peut être représenté par la relation :
Dans cette variante, un seul seuil 0bP est utilisé au lieu de deux seuils. Dans ce cas, la variable d’intégration Uij est diminuée par une valeur prédéterminée qui peut être égale au seuil 0bp ou à une valeur différente du seuil 0bP.
Selon une autre variante de réalisation, lorsque les signaux reçus sont des signaux binaires, un seul seuil d’activation 0bp est utilisé.
Selon cette variante de réalisation, le signal impulsionnel intermédiaire
Z, peut être représenté par la relation suivante:
Avec 0bp un seuil d’activation dont la valeur peut être positive ou négative. Dans ce cas, la variable d’intégration Uj est diminuée par une valeur prédéterminée qui peut être égale au seuil 0bp ou à une valeur différente du seuil 0bp.
Dans encore une autre variante de réalisation pour laquelle les signaux reçus sont des signaux binaires, l’algorithme de rétro-propagation exécuté par le réseau de neurones est mis en oeuvre en deux phases successives.
Lors d’une première phase, l’algorithme de rétro-propagation est exécuté par le réseau de neurones en considérant un signal impulsionnel intermédiaire z u binaire représenté par la relation suivante, avec 6bp un seuil d’activation positif :
Lorsque la variable d’intégration Llg dépasse le seuil d’activation 0bp, le module d’activation ACT_ER génère une impulsion positive et la variable d’intégration Uj est diminuée de la valeur du seuil 0bp.
Lors d’une seconde phase, l’algorithme de rétro-propagation est exécuté par le réseau de neurones en considérant un signal impulsionnel intermédiaire z, binaire représenté par la relation suivante, avec -9bp un seuil d’activation négatif :
Lorsque la variable d’intégration u, i passe en dessous du seuil d’activation -0bp, le module d’activation ACT_ER génère une impulsion négative et la variable d’intégration Uj est diminuée de la valeur du seuil -0bp (ou augmentée de la valeur de 0bp).
Ce signal est utilisé pour ensuite générer une erreur locale sous la même forme impulsionnelle. Le calcul de l’erreur locale est réalisée par le module de calcul ER_LOC à partir du signal intermédiaire z, et de l’estimée a’ij de la dérivée de la fonction d’activation équivalente du neurone. L’estimée a’ij a été calculée par le neurone pendant la phase de propagation de données (cf figure 2) ou est calculée pendant la phase de rétro- propagation d’erreurs à partir des dernières valeurs des variables Xj et Vu qui ont été sauvegardées à l’issue de la phase de propagation de données.
L’erreur locale est calculée en réalisant un produit du signal intermédiaire zu et de l’estimée a’i qui est une variable binaire ou ternaire, selon le modèle de l’estimée a’ij choisi.
Dans une variante de réalisation, un comparateur est ajouté pour ne pas réaliser ce calcul lorsque a’ij(t)=0 ;
Ainsi, le calcul de l’erreur locale ne nécessite pas de multiplication de nombres flottants et le résultat de ce calcul est une variable ternaire (qui prend pour valeurs 1 ,0 ou -1 ) ou binaire.
L’erreur locale 5j (t) est ensuite propagée vers les synapses de la couche suivante CM via l’interface E/S2.
Le neurone comporte également un module MAJ de calcul d’une mise à jour des poids des synapses. Cette mise à jour est calculée à partir de l’erreur locale et de la variable Xj,M transmise par chaque neurone de la couche C auquel est connecté le neurone N, . La variable Xjj-i a été préalablement calculée pendant la phase de propagation de données.
La mise à jour des poids d’une synapse Wjj est donnée par la relation :
Ces valeurs sont propagées jusqu’aux synapses W-I , W2 ... WK,i pour qu’elles mettent à jour leurs poids via la règle :
La mise à jour des poids des synapses est préférentiellement effectuée après la propagation des erreurs à la couche suivante, cependant il est aussi possible d’inverser l’ordre de ces deux actions. Dans une variante de réalisation, la variable h- est stockée dans une mémoire MEM_X accessible aux neurones de deux couches consécutives, comme représenté sur la figure 5.
Dans une autre variante de réalisation représentée à la figure 5bis, le module MAJ de calcul d’une mise à jour des poids des synapses est supprimé et la mise à jour des poids synaptiques est directement réalisée par les dispositifs memristifs qui réalisent les synapses. Dans cette variante, les signaux d’erreurs 5j (t) sont propagés depuis les neurones de la couche Ci vers les synapses W-y, W2J ... WK,i et les variables Xj, sont propagées sous forme de signaux depuis les neurones de la couche CM vers les synapses W-I J, W2,i,... WKj. Chaque synapse met alors à jour son poids synaptique directement à partir de l’interaction des deux signaux 5ij(t) et Xjj-i (t) en analysant la différence des potentiels des deux signaux pour mettre à jour son poids avec une valeur représentative du terme
La figure 6 décrit le fonctionnement d’un neurone impulsionnel Nu d’une couche intermédiaire Ci durant la phase de rétro-propagation selon le second mode de réalisation de l’invention décrit à la figure 3.
Selon ce second mode, le neurone est implémenté par un dispositif numérique. Les signaux d’erreur binaires ou ternaires sont codés par des signaux numériques binaires ou ternaires et sont transmis entre les neurones via la même infrastructure de communication que pour les signaux propagés pendant la phase de propagation de données. Les poids des synapses sont stockés dans une mémoire numérique MEM_W|+1 ,MEM_W|. Le module d’intégration INT_ER est modifié pour calculer la somme des signaux reçus pondérés par les poids des synapses qui sont lus dans la mémoire MEM_W|+1 dans laquelle sont stockés les poids des synapses de la couche Ci+i · Autrement dit, la pondération des signaux par les poids des synapses est réalisée par le neurone et non par les synapses comme dans le premier mode de réalisation. La mémoire MEM_W| de la couche Ci est directement mise à jour par le module de calcul MAJ de mise à jour des poids des synapses. Différentes architectures sont possibles pour la mise en mémoire des poids des synapses. Sur la figure 6, on a représenté une mémoire MEM_W|+1, MEM_W| associée à chaque couche Ci+i, Ci de neurones. Mais il est aussi possible d’avoir une mémoire unique partagée pour au moins deux couches de neurones successives ou pour l’ensemble du réseau de neurones. A l’inverse, une mémoire locale à chaque neurone peut aussi être envisagée. Le module d’intégration INT_ER est configuré pour accéder en lecture à la mémoire dans laquelle ont été stockés les poids des synapses de la couche précédente C|+-|.
Dans le cas d’une implémentation par un dispositif numérique comme décrit à la figure 6, les signaux échangés entre les neurones peuvent être implémentés par deux bus distincts. Un premier bus de données est utilisé pour transmettre les impulsions générées via une valeur 1 , dans le cas de signaux binaires, ou une valeur 1 ou -1 , dans le cas de signaux ternaires. Un second bus asynchrone de signalisation est utilisé pour signaler à un neurone la réception (ou l’émission) d’une donnée. Autrement dit, le second bus asynchrone est utilisé pour transmettre l’information de la présence d’une valeur différente de 0 sur le bus de données. Le second bus asynchrone peut être, par exemple, un bus du type AER « Address Event Représentation ». Un avantage à cette implémentation est d’éviter aux neurones de réaliser des traitements sur des valeurs reçues correspondant à un état «0 ». L’ensemble formé par le bus de données et le bus asynchrone est apte à transmettre un signal numérique binaire ou un signal numérique ternaire. Dans le cas du signal binaire, le lecteur comprendra que la valeur « 1 » est indiquée par le bus de données et la valeur « 0 » par le bus asynchrone. Dans le cas du signal ternaire, les valeurs « 1 » et « -1 » sont indiquées par le bus de données et la valeur « 0 » par le bus asynchrone. L’invention présente l’avantage d’utiliser une représentation binaire ou ternaire des erreurs locales calculées lors de la phase de rétro-propagation d’erreurs de sorte qu’aucune multiplication de nombres flottants n’est nécessaire pour mettre en oeuvre les calculs d’erreurs. Par ailleurs, la même infrastructure de communication peut être utilisée à la fois pour la propagation des données et pour la rétro-propagation des erreurs car les deux types de signaux sont codés de la même façon. Certains modules de calcul et opérateurs peuvent être utilisés conjointement pour la phase de propagation de données et pour la phase de rétro-propagation d’erreurs. Par exemple, les modules d’intégration INT,INT_ER, les comparateurs COMP,COMP_ER et les modules d’activation ACT,ACT_ER peuvent être réalisés par un seul composant. De façon générale, l’invention permet d’utiliser le même type de dispositif ou circuit pour réaliser la phase de propagation de données et la phase de rétro-propagation d’erreurs puisque les signaux propagés dans les deux phases sont de natures similaires et les traitements appliqués à ces signaux sont limités à des accumulations et des comparaisons pour les deux phases.
De façon générale, l’invention peut être mise en oeuvre à l’aide de composants matériels et/ou logiciels. Les éléments logiciels peuvent être disponibles en tant que produit programme d’ordinateur sur un support lisible par ordinateur, support qui peut être électronique, magnétique, optique ou électromagnétique. Les éléments matériels peuvent être disponibles tous ou en partie, notamment en tant que circuits intégrés dédiés (ASIC) et/ou circuits intégrés configurables (FPGA) et/ou en tant que circuits neuronaux selon l’invention ou en tant que processeur de signal numérique DSP et/ou en tant que processeur graphique GPU, et/ou en tant que microcontrôleur et/ou en tant que processeur général par exemple.
De façon plus précise, le réseau de neurones selon l’invention peut être implémenté par un ou plusieurs dispositif(s) numérique(s) comprenant au moins une mémoire numérique et une infrastructure de communication pour propager des signaux binaires ou ternaires entre les neurones.
Le réseau de neurones selon l’invention peut aussi être implémenté par un ou plusieurs dispositif(s) analogique(s) comprenant au moins un dispositif memristif et une infrastructure de communication apte à propager des signaux analogiques sous forme d’impulsions signées ou non-signées.
Les synapses peuvent être réalisées sous la forme de dispositifs memristifs ou memristors, par exemple des dispositifs de type PCM (Phase- Change Memory) ou des mémoires RAM ou OXRAM ou tout autre dispositif ou circuit analogique équivalent. Notamment, une synapse peut être mise en oeuvre par un circuit analogique basé sur au moins une capacité ou au moins un condensateur et dont la charge de la capacité ou du condensateur permet de stocker la valeur d’un poids synaptique.
Références
[1] « Algorithm and hardware design of discrete-time spiking neural networks based on back propagation with binary activations », S. Yin et al, 2017 IEEE Biomédical Circuits and Systems,
[2] “Hardware efficient on line learning through pipelined truncated error back-propagation in binary State networks”, H. Mostafa et al, Frontiers in Neuroscience, 2017

Claims

REVENDICATIONS
1. Neurone artificiel impulsionnel (N ), implémenté par un dispositif de calcul, le neurone étant destiné à être intégré au sein d’un réseau de neurones comprenant plusieurs couches successives (CM , CI, CI+I ), chaque couche étant composée de plusieurs neurones, le réseau de neurones étant configuré pour exécuter un mécanisme d’apprentissage comprenant une première phase de propagation de données d’une couche d’entrée vers une couche de sortie, et une seconde phase de rétro-propagation d’erreurs depuis la couche de sortie vers la couche d’entrée, le neurone artificiel impulsionnel (Nu) comprenant, pour l’exécution de la seconde phase de rétro-propagation:
- Une première interface d’entrée/sortie (E/Si) apte à recevoir des signaux d’erreur binaires ou ternaires pondérés par des coefficients synaptiques,
- Un module de calcul d’erreur (ER_LOC) configuré pour calculer un signal d’erreur locale binaire ou ternaire (du) à partir d’un signal intermédiaire binaire ou ternaire (Zj ) généré par le neurone en réponse aux signaux d’erreur reçus et d’une estimée (a’i ) de la dérivée d’une fonction d’activation équivalente (FAE) mise en oeuvre par le neurone (Nu) pendant la première phase de propagation de données,
- Une seconde interface d’entrée/sortie (E/S2) apte à propager le signal d’erreur locale binaire ou ternaire (d,,i) vers plusieurs synapses sous forme d’impulsions.
2. Neurone artificiel impulsionnel (N, i) selon la revendication 1 dans lequel la première interface d’entrée/sortie (E/Si) est apte à émettre des signaux binaires ou ternaires vers plusieurs synapses sous forme d’impulsions pendant la première phase de propagation de données et la seconde interface d’entrée/sortie (E/S2) est apte à recevoir des signaux binaires ou ternaires pondérés par des coefficients synaptiques pendant la première phase de propagation de données.
3. Neurone artificiel impulsionnel selon l’une des revendications 1 ou 2 comprenant :
- Un module d’intégration (INT_ER) desdits signaux d’erreur pour calculer une erreur cumulée (Uij),
- Au moins un comparateur (COMP_ER) pour comparer l’erreur cumulée (U,j) à au moins un seuil d’activation parmi un seuil d’activation positif et un seuil d’activation négatif,
- Un module d’activation (ACT_ER) configuré pour générer le signal intermédiaire binaire ou ternaire (z,j) en fonction du résultat de l’au moins un comparateur.
4. Neurone artificiel impulsionnel (Nu), implémenté par un dispositif de calcul, le neurone étant destiné à être intégré au sein d’un réseau de neurones comprenant plusieurs couches successives (CM , CI, C ), chaque couche étant composée de plusieurs neurones, le réseau de neurones étant configuré pour exécuter un mécanisme d’apprentissage comprenant une première phase de propagation de données d’une couche d’entrée vers une couche de sortie, et une seconde phase de rétro-propagation d’erreurs depuis la couche de sortie vers la couche d’entrée, le neurone artificiel impulsionnel (Nu) comprenant, pour l’exécution de la seconde phase de rétro-propagation:
- Une première interface d’entrée/sortie (E/Si) apte à recevoir des signaux d’erreur binaires ou ternaires,
- Un module de calcul d’erreur (ER_LOC) configuré pour calculer un signal d’erreur locale binaire ou ternaire (du) à partir d’un signal intermédiaire binaire ou ternaire (z,j) généré par le neurone en réponse aux signaux d’erreur reçus et d’une estimée (a’u) de la dérivée d’une fonction d’activation équivalente (FAE) mise en oeuvre par le neurone (N, i) pendant la première phase de propagation de données,
- Une seconde interface d’entrée/sortie (E/S2) apte à propager le signal d’erreur locale binaire ou ternaire (d,,i) vers les neurones de la couche suivante (CM ).
5. Neurone artificiel impulsionnel (Nu) selon la revendication 4 dans lequel la première interface d’entrée/sortie (E/Si) est apte à émettre des signaux binaires ou ternaires vers les neurones de la couche suivante (Ci+i) pendant la première phase de propagation de données et la seconde interface d’entrée/sortie (E/S2) est apte à recevoir des signaux binaires ou ternaires pendant la première phase de propagation de données.
6. Neurone artificiel impulsionnel selon l’une des revendications 4 ou 5 comprenant :
- Un module d’intégration (INT_ER) desdits signaux d’erreur binaires ou ternaires pour calculer une erreur cumulée et pondérée par des coefficients synaptiques (Uij),
- Au moins un comparateur (COMP_EFt) pour comparer l’erreur cumulée (U,j) à au moins un seuil d’activation parmi un seuil d’activation positif et un seuil d’activation négatif,
- Un module d’activation (ACT_EFt) configuré pour générer le signal intermédiaire binaire ou ternaire (zu) en fonction du résultat de l’au moins un comparateur.
7. Neurone artificiel impulsionnel (Nj ) selon l’une des revendications 3 ou 6 dans lequel le module d’activation (ACT_EFt) est configuré pour générer un signal intermédiaire positif lorsque l’erreur cumulée est supérieure au seuil d’activation positif et un signal intermédiaire négatif lorsque l’erreur cumulée est inférieure au seuil d’activation négatif.
8. Neurone artificiel impulsionnel (N, ) selon la revendication 7 comprenant en outre un soustracteur pour soustraire de l’erreur cumulée (Uij) la valeur du seuil d’activation positif lorsqu’un signal intermédiaire positif est généré et soustraire de l’erreur cumulée (Uj ) la valeur du seuil d’activation négatif lorsqu’un signal intermédiaire négatif est généré.
9. Neurone artificiel impulsionnel (N ) selon l’une des revendications précédentes comprenant en outre un module de calcul (MAJ) d’une mise à jour de coefficients synaptiques à partir de l’erreur locale (d ) et d’un résultat (Xjj-i) de la fonction d’activation équivalente (FAE).
10. Neurone artificiel impulsionnel (N, i) selon la revendication 9 dans lequel le résultat (Xjj.-i) de la fonction d’activation équivalente (FAE) est calculé pendant la phase de propagation de données d’un neurone.
1 1 . Neurone artificiel impulsionnel (N, ) selon l’une des revendications 9 ou 10 dans lequel le module de calcul (MAJ) d’une mise à jour de coefficients synaptiques est activé après la propagation de l’erreur locale.
12. Neurone artificiel impulsionnel (N, i) selon l’une des revendications précédentes dans lequel le module de calcul (ER_LOC) d’un signal d’erreur locale est configuré pour calculer un produit entre le signal intermédiaire (Zj ) et l’estimée (a’ij) de la dérivée de la fonction d’activation équivalente (FAE).
13. Neurone artificiel impulsionnel (N, i) selon l’une des revendications précédentes dans lequel la fonction d’activation équivalente (FAE) est une fonction d’intégration des impulsions (Sj ) générées par le neurone et pondérée par un paramètre de taux d’apprentissage (hi) du réseau de neurones.
14. Neurone artificiel impulsionnel (N,,i) selon l’une des revendications précédentes comprenant un module de calcul de dérivée (DER) configuré pour calculer l’estimée (a’j ) de la dérivée de la fonction d’activation équivalente (FAE) à partir d’un résultat de la fonction d’activation équivalente (FAE) (Xj ) mise en oeuvre par le neurone (Ng) pendant la première phase de propagation de données et d’une variable d’intégration (Vij) du neurone pendant la première phase de propagation de données.
15. Neurone artificiel impulsionnel (N, ) selon la revendication 14 dans lequel l’estimée (a’ij) de la dérivée de la fonction d’activation équivalente (FAE) est égale à 1 lorsque le résultat (Xj ) de ladite fonction est strictement positif ou la variable d’intégration (Vu) est strictement positive, et est égale à 0 sinon.
16. Neurone artificiel impulsionnel (N, ) selon l’une des revendications précédentes dans lequel le module de calcul de dérivée (DER) est activé pendant la phase de propagation de données du neurone ou pendant la phase de rétro-propagation d’erreurs du neurone.
17. Réseau de neurones artificiels impulsionnels configuré pour exécuter un mécanisme d’apprentissage comprenant une première phase de propagation de données d’une couche d’entrée vers une couche de sortie, et une seconde phase de rétro-propagation d’erreurs depuis la couche de sortie vers la couche d’entrée, le réseau de neurones comprenant plusieurs couches de neurones artificiels impulsionnels selon l’une des revendications précédentes, chaque neurone étant connecté au moins à un neurone d’une couche suivante ou à un neurone d’une couche précédente par l’intermédiaire d’une synapse.
18. Réseau de neurones artificiels impulsionnels selon la revendication 17, le réseau comprenant une couche d’entrée et une couche de sortie, les neurones de la couche d’entrée étant configurés pour recevoir des données à propager sous forme binaire ou ternaire et les neurones de la couche de sortie étant configurés pour calculer, à partir des données propagées pendant la première phase de propagation de données, une erreur entre un résultat obtenu et un résultat cible.
19. Réseau de neurones artificiels impulsionnels selon la revendication 18 dans lequel chaque neurone de la couche de sortie comprend un codeur (COD) configuré pour coder l’erreur en un ensemble d’au moins un signal binaire ou ternaire.
20. Réseau de neurones artificiels impulsionnels selon la revendication 19 dans lequel le codeur (COD) est configuré pour quantifier l’erreur sur deux ou trois niveaux de quantification de manière à générer un signal binaire ou ternaire.
21. Réseau de neurones artificiels impulsionnels selon la revendication 19 dans lequel le codeur (COD) est configuré pour coder l’erreur par un groupe de signaux binaires successifs ou un groupe de signaux ternaires successifs.
22. Réseau de neurones artificiels impulsionnels configuré pour exécuter un mécanisme d’apprentissage comprenant une première phase de propagation de données d’une couche d’entrée vers une couche de sortie, et une seconde phase de rétro-propagation d’erreurs depuis la couche de sortie vers la couche d’entrée, le réseau de neurones comprenant plusieurs couches de neurones artificiels impulsionnels selon l’une quelconque des revendications 4 à 6, chaque neurone étant connecté au moins à un neurone d’une couche suivante ou à un neurone d’une couche précédente par l’intermédiaire d’une synapse ayant un poids synaptique, les synapses (Wu,...WK,i+i) étant implémentées sous forme de mémoires numériques, de dispositifs memristifs ou de circuits analogiques.
23. Réseau de neurones artificiels impulsionnels selon la revendication 22 dans lequel chaque synapse est configurée pour mettre à jour son poids synaptique en réponse à un signal d’erreur binaire ou ternaire (d,,i) reçu depuis un neurone d’une couche suivante (Ci) et à un signal représentatif du résultat (Xjj.-i ) de la fonction d’activation équivalente (FAE) reçu depuis un neurone d’une couche précédente (CM ).
EP19787001.7A 2018-10-23 2019-10-22 Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels Pending EP3871153A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1859760A FR3087560A1 (fr) 2018-10-23 2018-10-23 Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels
PCT/EP2019/078669 WO2020083880A1 (fr) 2018-10-23 2019-10-22 Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels

Publications (1)

Publication Number Publication Date
EP3871153A1 true EP3871153A1 (fr) 2021-09-01

Family

ID=66166046

Family Applications (1)

Application Number Title Priority Date Filing Date
EP19787001.7A Pending EP3871153A1 (fr) 2018-10-23 2019-10-22 Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels

Country Status (5)

Country Link
US (1) US20210397968A1 (fr)
EP (1) EP3871153A1 (fr)
JP (1) JP7433307B2 (fr)
FR (1) FR3087560A1 (fr)
WO (1) WO2020083880A1 (fr)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200076083A (ko) * 2018-12-19 2020-06-29 에스케이하이닉스 주식회사 오류 역전파를 이용하여 지도 학습을 수행하는 뉴로모픽 시스템
US20200293860A1 (en) * 2019-03-11 2020-09-17 Infineon Technologies Ag Classifying information using spiking neural network
KR102474053B1 (ko) * 2020-06-22 2022-12-06 주식회사 퓨리오사에이아이 뉴럴네트워크 프로세서
CN114781633B (zh) * 2022-06-17 2022-10-14 电子科技大学 一种融合人工神经网络与脉冲神经网络的处理器
CN115392443B (zh) * 2022-10-27 2023-03-10 之江实验室 类脑计算机操作系统的脉冲神经网络应用表示方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150269485A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated Cold neuron spike timing back-propagation
US20170228646A1 (en) * 2016-02-04 2017-08-10 Qualcomm Incorporated Spiking multi-layer perceptron

Also Published As

Publication number Publication date
JP2022504942A (ja) 2022-01-13
JP7433307B2 (ja) 2024-02-19
FR3087560A1 (fr) 2020-04-24
WO2020083880A1 (fr) 2020-04-30
US20210397968A1 (en) 2021-12-23

Similar Documents

Publication Publication Date Title
WO2020083880A1 (fr) Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels
EP3449423B1 (fr) Dispositif et procede de calcul de convolution d'un reseau de neurones convolutionnel
FR3025344A1 (fr) Reseau de neurones convolutionnels
US10902311B2 (en) Regularization of neural networks
EP0875032B1 (fr) Procede d'apprentissage generant des reseaux de neurones de petites tailles pour la classification de donnees
EP3659072A1 (fr) Calculateur pour reseau de neurones impulsionnel avec agregation maximale
CA2992036A1 (fr) Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements
EP4179469A1 (fr) Dispositif électronique et procédé de traitement de données à base de réseaux génératifs inversibles, système électronique de détection et programme d'ordinateur associés
FR2716279A1 (fr) Réseau neuronal chaotique récurrent et algorithme d'apprentissage pour celui-ci.
EP3202044B1 (fr) Procede de codage d'un signal reel en un signal quantifie
EP4078817A1 (fr) Procede et dispositif de codage additif de signaux pour implementer des operations mac numeriques a precision dynamique
Babaeizadeh et al. A simple yet effective method to prune dense layers of neural networks
EP4315170A1 (fr) Autoencodeur multimodal a fusion de donnees latente amelioree
US11526735B2 (en) Neuromorphic neuron apparatus for artificial neural networks
WO2022171632A1 (fr) Circuit neuromorphique et procédé d'entraînement associé
US20210073620A1 (en) Neuromorphic spike integrator apparatus
EP4078816A1 (fr) Procede et dispositif de codage binaire de signaux pour implementer des operations mac numeriques a precision dynamique
US11727252B2 (en) Adaptive neuromorphic neuron apparatus for artificial neural networks
US20220121910A1 (en) Neural apparatus for a neural network system
Tenneti et al. DSP-inspired deep learning: A case study using Ramanujan subspaces
EP4187445A1 (fr) Procédé d'apprentissage de valeurs de poids synaptique d'un réseau de neurones, procédé de traitement de données, programme d'ordinateur, calculateur et système de traitement associés
EP4162409A1 (fr) Procédé de génération d'un système d'aide à la décision et systèmes associés
Nayak et al. Replication/NeurIPS 2019 Reproducibility Challenge
EP4322061A1 (fr) Dispositif électronique et procédé de traitement de données comportant au moins un modèle d'intelligence artificielle auto-adaptatif avec apprentissage local, système électronique et programme d'ordinateur associés
KR20220071091A (ko) 스파이킹 뉴럴 네트워크를 최적화하는 방법 및 장치

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

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)
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: 20240102