WO2021105332A1 - Method for automatically determining parameters of an artificial neural network and microcontroller for implementing the method - Google Patents

Method for automatically determining parameters of an artificial neural network and microcontroller for implementing the method Download PDF

Info

Publication number
WO2021105332A1
WO2021105332A1 PCT/EP2020/083594 EP2020083594W WO2021105332A1 WO 2021105332 A1 WO2021105332 A1 WO 2021105332A1 EP 2020083594 W EP2020083594 W EP 2020083594W WO 2021105332 A1 WO2021105332 A1 WO 2021105332A1
Authority
WO
WIPO (PCT)
Prior art keywords
layer
artificial neuron
scenario
artificial
model
Prior art date
Application number
PCT/EP2020/083594
Other languages
French (fr)
Inventor
Bijan MOHAMMADI
Original Assignee
Université De Montpellier
Centre National De La Recherche Scientifique
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 Université De Montpellier, Centre National De La Recherche Scientifique filed Critical Université De Montpellier
Publication of WO2021105332A1 publication Critical patent/WO2021105332A1/en

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/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Definitions

  • TITLE PROCESS FOR AUTOMATIC DETERMINATION OF PARAMETERS OF AN ARTIFICIAL NEURON NETWORK AND MICROCONTROLLER FOR IMPLEMENTING THE PROCESS
  • the technical field of the invention is that of artificial neural networks which we propose to replace with convolutional information networks.
  • the present invention relates to a method for automatically determining parameters of an artificial neural network and more particularly parameters of a convolutional information network defining itself as an automatically generated artificial neural network.
  • the invention provides a method for automatically determining the number of hidden layers, variables of these hidden layers such as the number of synapses or the number of neurons, as well as the synaptic coefficients of the artificial neural network.
  • the present invention also relates to a microcontroller, a computer program product, a recording medium for implementing the method and a method for classifying a data set comprising the steps of the method for automatically determining parameters d. 'an artificial neural network.
  • the artificial neural network constitutes the main tool of deep learning or deep learning which attempts to model data in order to be able subsequently to perform specific tasks with new data, such as classification tasks or detection.
  • An artificial neural network is a complex structure formed from a plurality of layers, each layer comprising at least one artificial neuron. Each neuron in a layer is connected to at least one neuron in a neighboring layer via an artificial synapse to which a synaptic coefficient is assigned.
  • the synaptic coefficients are determined during a training phase using data from a training database associating an input datum with a true output datum.
  • the learning phase consists of browsing the learning database and, for each input data provided to the artificial neural network, updating the synaptic coefficients using an optimization algorithm, to minimize the difference between the output of the artificial neural network and the true output datum associated with the input datum.
  • the invention offers a solution to the problems mentioned above, by making it possible to automatically determine the parameters, that is to say the number of layers, the number of neurons per layer, the number of synapses and the synaptic coefficients, of an artificial neural network implemented on a microcontroller.
  • This automatically generated artificial neural network ie generated directly with its synaptic coefficients without going through an additional learning phase, is called a convolutional information network.
  • a first aspect of the invention relates to a computer-implemented method for automatically determining parameters of an artificial neural network from a database [X, Y], an artificial neural network comprising at least a first layer and a second layer each comprising at least one artificial neuron, each artificial neuron of a first layer being connected to an artificial neuron of a second layer via a synapse to which is assigned a synaptic coefficient, a network of artificial neurons having as parameter a number of layers, a number of artificial neurons per layer, a number of synapses and for each synapse, a synaptic coefficient, the method comprising the following steps:
  • the parameters of an artificial neural network namely its number of layers, its number of synapses, its synaptic coefficients and its number of neurons per layer, are determined automatically, without human intervention. Indeed, as long as the learning error representative of the error between the model defined from the ad-hoc geometry adapted to the data updated for each new datum and the training database is high and both As the validation error representative of over-learning on the validation database decreases, a new layer is introduced and synaptic coefficients are calculated for each layer. For each non-zero synaptic coefficient, all possibilities are explored for the placement in the model of the synapse to which the synaptic coefficient is assigned, through the introduction of the different scenarios.
  • the first scenario corresponds to the case where the synaptic coefficient considered is assigned to a synapse connecting an artificial neuron of the previous layer which is not yet connected to any artificial neuron of the new layer and an artificial neuron of the new layer which is not. still connected to no artificial neuron of the previous layer.
  • the second scenario corresponds to the case where the synaptic coefficient considered is assigned to a synapse connecting an artificial neuron of the previous layer which is not yet connected to any artificial neuron of the new layer and an artificial neuron of the new existing layer, already connected to another artificial neuron of the previous layer.
  • the third scenario corresponds to the case where the synaptic coefficient considered is assigned to a synapse connecting an artificial neuron of the previous existing layer, already connected to another artificial neuron of the new layer and an artificial neuron of the new layer which is not yet connected to any artificial neuron of the previous layer.
  • the fourth scenario corresponds to the case where the synaptic coefficient considered is assigned to a synapse connecting an artificial neuron of the previous existing layer already connected to another artificial neuron of the new layer and an artificial neuron of the new existing layer, already connected to a another artificial neuron from the previous layer.
  • the procedure is stopped when the validation error increases or when the learning error is reduced to a predefined level for a given scenario.
  • the method therefore does not use any optimization algorithm based on backpropagation.
  • the computing resources used are thus drastically reduced, as is the volume of data required, typically by a factor of the order of ten, so that the method can be embedded in a constrained environment in terms of resources, such as a microprocessor.
  • the method is deterministic because it does not use any stochastic ingredients like the stochastic gradient method, for example, for optimization.
  • the method according to the invention may have one or more additional characteristics among the following, considered individually or in any technically possible combination.
  • the ad hoc geometry is a Riemannian geometry.
  • the learning error does indeed represent the error between the model defined from the ad-hoc geometry and the learning database.
  • the validation error Vv is defined by:
  • V v ⁇ Y V - R (X V ) ⁇
  • the validation error is representative of over-learning.
  • each synaptic coefficient is further calculated from a kernel function K depending on a distance d defined from a scalar product associated with the geometry ad hoc.
  • the distance d is defined as:
  • n the dimension of the vector or the set of input vectors X, p a non-zero real value or a vector of non-zero real values and M the adaptation matrix corresponding to the ad hoc geometry.
  • the set of synaptic coefficients W is defined by:
  • the synaptic coefficients represent the influence of the training data YA at the validation points Xv through a convolution operator and are a function of the ad-hoc geometry.
  • the kernel function is of the Gaussian type.
  • the kernel function depends on the iteration.
  • the verification of the first condition is carried out simultaneously with the verification of the second condition.
  • a second aspect of the invention relates to a microcontroller comprising a computer configured to implement the method according to the invention.
  • the method can be embedded in an environment constrained in terms of computing resources and memory.
  • a third aspect of the invention relates to a computer program product comprising instructions which, when the program is executed by a computer, lead the latter to implement the steps of the method according to the invention.
  • a fourth aspect of the invention relates to a computer readable recording medium, on which is recorded the computer program product according to the invention.
  • a fifth aspect of the invention relates to a method of classifying a data set acquired by a sensor using a microcontroller, comprising the following steps implemented by the microcontroller: a step of determining the parameters of a network artificial neurons comprising the steps of the method according to the first aspect of the invention, for a database comprising, for each data set of a plurality of data sets acquired by the sensor, the associated class from among a predefined set of classes; a step of using the artificial neural network with the previously determined parameters, on the acquired data set to obtain the associated class.
  • the method according to the third aspect of the invention is a method for voice identification of an individual carried out for a set of data acquired by at least one microphone, each class corresponding to an individual .
  • the method according to the third aspect of the invention is a method for detecting human activity carried out for a set of data acquired by at least one inertial unit, each class corresponding to an activity human.
  • the method according to the third aspect of the invention is a facial detection method carried out for an image acquired by at least one camera, each class corresponding to an individual.
  • FIG. 1 shows a schematic representation of an artificial neural network.
  • FIG. 2 is a block diagram showing the steps of the method according to the invention.
  • FIG. 3 is a block diagram showing the sub-steps of an iteration of the method according to the invention.
  • FIG. 4 is a block diagram showing the steps of a classification method according to the invention.
  • FIG. 5 is a standardized confusion matrix obtained for an example of a method of detecting human activity.
  • a first aspect of the invention relates to a method for automatically determining parameters of an artificial neural network, the parameters comprising the number of layers, the number of neurons per layer, the number of synapses and the synaptic coefficients of the artificial neural network.
  • An artificial neural network whose parameters are determined automatically is called a convolutional information network.
  • neuroneuron and “artificial neuron” will be used interchangeably.
  • Figure 1 shows a schematic representation of an artificial neural network 100.
  • a neural network 100 comprises at least two layers 103 each comprising at least one artificial neuron 101.
  • the neural network 100 comprises three layers 103 each comprising three neurons 101.
  • Each neuron 101 of each layer 103 is connected to each neuron 101 of the preceding layer 103 and to each neuron 101 of the following layer 103.
  • Neurons 101 of the same layer are not connected to each other.
  • a connection between two neurons 101 is called a synapse 102.
  • Each synapse 102 is assigned a synaptic coefficient w.
  • the synaptic coefficient w of the synapse 102 connecting the input of the neuron k of any layer to the output of the neuron i of the preceding layer will be written in the remainder of the description according to the formalism wf.
  • the neural networks 100 are configured to perform prediction from data injected at the input of the neural network 100, that is to say at the inputs. neurons 101 of the first layer 103 of neurons 101, so that these data are processed successively by this first layer 103 then by the following layers 103 of neurons 101.
  • the digital output data are for example in the form of a probability vector or of a set of Y probability vectors that provide prediction information about the initial data.
  • This vector or set of vectors can be assimilated to a vector comprising m coefficients Yi to Ym.
  • the input data is in the form of a vector or a set of vectors X which can be likened to a vector comprising n coefficients Xi to Xn.
  • This vector is defined in a determined metric space.
  • the output vector y 1 of the first layer 103 of neurons 101 then becomes the input vector of the second layer 103 of neurons 101, and the processing of the data is propagated in the layers 103 of successive neurons 101.
  • each neuron 101 of an intermediate layer k receives as input the outputs of the neurons 101 of the layer k-1.
  • the calculation of the output vector y k by the neural network 100 at the output of the layer of neurons k takes the following form: y k ⁇ x is the vector of the output data generated by the neurons 101 of layer k-1 and injected at the input of the neurons 101 of layer k, and x k is the vector resulting from the processing of the vector y k_1 by the function combination at the level of the k-layer of neurons 101.
  • the processing of the data by the neural network 100 is carried out by propagation in the successive layers 103 of the network 100.
  • the last layer 103 of neurons 101, returning the output vector Y comprises a number of neurons m which may be different from n.
  • the output vector Y thus comprises m coefficients Yi to Ym.
  • the neural network 100 must have synaptic coefficients w having adequate values.
  • the method according to the first aspect of the invention makes it possible to automatically determine the number of layers 103, the number of synapses 102, the number of neurons 101 per layer, and the synaptic coefficients w of an artificial neural network 100 from a database which, has a vector or set of input vectors X, associates a vector or set of true output vectors Y, corresponding to the vector or set of output vectors of the artificial neural network 100 that one would like to obtain for the vector or the set of input vectors X.
  • Figure 2 is a block diagram showing steps 201 to 204 of method 200 according to the first aspect of the invention.
  • a first step 201 of the method 200 consists in choosing an ad-hoc geometry as a function of the database (X, Y) to adapt the geometry of the architecture of the neural network 100 initially, and of the metric space in which the operators of the neural network 100 are defined, in particular the transfer function f of the neurons 101, secondly, to vectors or sets of input vectors X injected into the neural network 100.
  • the ad-hoc geometry is for example chosen from a set of predefined geometries, automatically, by carrying out the method 200 for each geometry of the set of geometry and by keeping the geometry leading to the most learning error. low.
  • the ad hoc geometry is taken into account through the definition of a non-isotropic and non-Euclidean distance function on the vectors or sets of input vectors X.
  • the distance function is for example the distance associated with the L1 standard or with the L2 standard or the geodesic distance.
  • adaptation matrix M is for example a diagonal matrix.
  • the adaptation matrix M makes it possible to adapt the database (X, Y) to the chosen geometry.
  • the adaptation matrix M allows for example the introduction of a Riemannian geometry.
  • the adaptation matrix M is for example the matrix of geodesics, the matrix of Gaussian curvatures or even the energy-momentum tensor.
  • the adaptation matrix M of the standard of the metric space in which the transfer functions f are defined is for example determined as follows: maximum and minimum of the i th component of the input vector X, the matrix being in fact of order n and positive definite.
  • the Euclidean case corresponds to the identity matrix.
  • the adaptation matrix M makes it possible to define a distance d defined by the scalar product associated with the ad-hoc geometry previously identified, for example:
  • n the dimension of the vector or set of input vectors X, p a non-zero real value or a vector of non-zero real values and M the adaptation matrix corresponding to the ad hoc geometry.
  • p is the power of the Lp standard.
  • p can be a vector of parameters.
  • the distance d is used in the definition of the transfer functions f of the neural network 100.
  • a second step 202 of the method 200 consists in separating the database (X, Y) into a training database (XA, YA) and a validation database (Xv, Yv).
  • the training database (XA, YA) represents for example between 75% and 90% of the database (X, Y) and the validation database (Xv, Yv) between 10% and 25% of the database (X, Y).
  • a third step 203 of the method 200 consists in creating an R model of artificial neural networks 100 comprising a first layer 103 of artificial neurons 101.
  • the model R aims to reproduce the behavior of an artificial neural network 100 having as parameters the parameters of the model R.
  • the model R and a network of artificial neurons 100 having the same parameters as the model R have the same vector or set of output vectors.
  • the model R uses the distance d defined from the adaptation matrix M in the transfer functions f.
  • Each layer of the network model R offers all four main functionalities available in the layers of conventional convolutional neural networks dense functions, maxpull function, dropout / activation function, and convolution function.
  • the network model R includes the classical definition of the neural network. The difference comes from the fact that in the network model R the architecture (number of layers, number of neurons per layers, number of synapses) is not predefined and is identified at the same time as the synaptic coefficients by the method 200 then that in classical neural networks, the architecture must be predefined before the identification of the synaptic coefficients.
  • the mentioned multifunction layer allows the automatic identification of the parameters of the R network model.
  • a fourth step 204 of the method 200 consists in performing an iteration.
  • FIG. 3 is a block diagram showing the substeps 2040 to 2047 of the fourth step 204 of the method 200 according to the first aspect of the invention.
  • a first sub-step 2040 of the fourth step 204 consists in adding a new layer 103 of artificial neurons 101 in the model R.
  • a second sub-step 2041 of the fourth step 204 of the method 200 consists in calculating a set of synaptic coefficients W from the training database (XA, YA) and the distance d defined by the product scalar associated with the ad-hoc geometry identified in the first step 201.
  • the set of synaptic coefficients W is for example defined by:
  • K a kernel function and * the convolution operator.
  • the formula defining the set of synaptic coefficients W illustrates the multifunctional aspect of the layers.
  • the density of the dense function is illustrated by the fact that all the coefficients of the set W of one layer are involved in the definition of all the others and in the definition of the set of coefficients of the next layer.
  • the kernel function K depends on the distance d.
  • the second threshold can be chosen for example between 10 4 to 10 2 .
  • K is for example a Gaussian kernel, that is to say that K is defined in this case as:
  • the core K can be different for each iteration, that is to say for each performance of the fourth step 204 during the method 200.
  • Third substep 2042, fourth substep 2043, fifth substep 2044 and sixth substep 2045 are then performed for each non-zero synaptic coefficient w of the set of synaptic coefficients W calculated in the second sub -step 2041.
  • the third sub-step 2042 consists in creating a first scenario in the model R
  • the fourth sub-step 2043 consists in creating a second scenario in the model R
  • the fifth sub-step 2044 consists in creating a third scenario in the model R
  • the sixth sub-step 2045 consists in creating a fourth scenario in the model R, each scenario corresponding to an assignment possibility for the synaptic coefficient w considered between the layer 103 added in the first sub-step 2040 and the previous layer 103, being defined as the layer 103 preceding the layer 103 added in the model R at the first sub-step 2040.
  • the first scenario corresponds to the case where the synaptic coefficient w considered is assigned to a synapse connecting an artificial neuron 101 of the previous layer 103 which is not yet connected to any artificial neuron 101 of the added layer 103 and an artificial neuron 101 of the added layer 103 which is not yet connected to any artificial neuron 101 of the previous layer 103.
  • the third sub-step 2042 therefore consists in adding an artificial neuron 101 in the previous layer 103 2042-1, in adding an artificial neuron 101 in the layer 103 added at the first sub-step 2040, 2042-2 and in add a synapse 102 to which is assigned the synaptic coefficient w considered connecting the artificial neuron 101 of the previous layer 103 previously added and the artificial neuron 101 of the layer 103 added to the first sub-step 2040 previously added 2042-3.
  • the second scenario corresponds to the case where the synaptic coefficient w considered is assigned to a synapse connecting an artificial neuron 101 of the previous layer 103 which is not yet connected to any artificial neuron 101 of the layer 103 added and an artificial neuron 101 of the layer 103 added to the first existing sub-step 2040, already connected to another artificial neuron 101 of the preceding layer 103.
  • the fourth sub-step 2043 therefore consists in adding an artificial neuron 101 in the previous layer 103 2043-1, and in adding a synapse 102 to which the considered synaptic coefficient w connecting the artificial neuron 101 of the layer 103 is assigned. previous previously added and existing added layer 103 artificial neuron 101 2043-2.
  • the fourth sub-step 2043 is performed for each artificial neuron 101 of the added layer 103.
  • the third scenario corresponds to the case where the synaptic coefficient w considered is assigned to a synapse connecting an existing artificial neuron 101 of the previous layer 103, already connected to another artificial neuron 101 of the added layer 103 and an artificial neuron 101 of the added layer 103 which is not yet connected to any artificial neuron 101 of the previous layer 103.
  • the fifth sub-step 2044 therefore consists in adding an artificial neuron 101 in the layer 103 added to the first sub-step 2040, 2044-1 and in adding a synapse 102 to which is assigned the synaptic coefficient w considered connecting the artificial neuron 101 of the previous existing layer 103 and the artificial neuron 101 of the layer 103 added in the first sub-step 2040 previously added 2044-2.
  • the fifth sub-step 2044 is performed for each artificial neuron 101 of the previous layer 103.
  • the fourth scenario corresponds to the case where the synaptic coefficient w considered is assigned to a synapse connecting an artificial neuron 101 of the previous layer 103 existing already connected to another artificial neuron 101 of the layer 103 added in the first sub-step 2040 and an artificial neuron 101 of the layer 103 added to the first existing sub-step 2040, already connected to another artificial neuron 101 of the preceding layer 103.
  • the sixth sub-step 2045 therefore consists in adding a synapse 102 to which the synaptic coefficient w considered connecting the artificial neuron is assigned. 101 of the existing previous layer 103 and the artificial neuron 101 of the existing added layer 103 2045-1.
  • the sixth sub-step 2045 is carried out for each pair comprising an artificial neuron 101 of the preceding layer 103 and an artificial neuron 101 of the added layer 103 which are not already connected by a synapse 102.
  • the model R therefore comprises four scenarios, each scenario of the model R having parameters of the artificial neural network 100 different.
  • Seventh sub-step 2046 and eighth sub-step 2047 are performed for each scenario created previously.
  • the seventh sub-step 2046 of the method 200 consists in calculating a learning error VA from the learning database (XA, YA) and from the scenario of the model R.
  • the VA learning error is defined for example as:
  • V A ⁇ Y A - R (X a ) ⁇
  • the eighth sub-step 2047 of the method 200 consists in calculating a validation error Vv from the validation database (Xv, Yv) and from the scenario of the model R.
  • Vv validation error is defined for example as:
  • V v ⁇ Y V - R (X V ) ⁇
  • the value decreases is meant that the previously calculated value is greater than or equal to the current value.
  • the first threshold can be chosen for example between 10 6 and 10 3 .
  • the VA learning error is initialized to a value strictly greater than the first threshold.
  • the verification of the first condition C1 can take place before the performance of the eighth sub-step 2047 for the purpose of algorithmic optimization.
  • Vv validation error is for example initialized by:
  • V v (initial)
  • the method 200 stops.
  • the parameters of the artificial neural network 100 namely its number of layers 103, its number of neurons 101 per layer 103, its number of synapses 102 and its synaptic coefficients w, correspond to the parameters of the scenario of the model R having leads to the stopping of the method 200, that is to say having not verified the first condition C1 and / or the second condition C2.
  • a new iteration is performed, that is to say a new fourth step 204 is performed for each scenario of the model R.
  • a first layer 103 is added to the model R.
  • a first iteration is performed, in particular a second layer 103 is added to the model R of artificial neural network 100 in the first sub-step 2040 and a first set of synaptic coefficients W is calculated in the second sub-step 2041, comprising a first non-zero synaptic coefficient w and a second non-zero synaptic coefficient w.
  • the first layer 103 and the second layer 103 do not contain any artificial neuron 101 in the model R.
  • the first synaptic coefficient w only the first scenario is possible for the first synaptic coefficient w and therefore only the third substep 2042 is performed, i.e. an artificial neuron 101 is added in the first layer 103, an artificial neuron 101 is added in the second layer 103 and a synapse 102 affected by the first synaptic coefficient w connecting the two previously added artificial neurons 101 is added.
  • the first layer 103 and the second layer 103 each contain an artificial neuron 101 in the model R, already connected by a synapse 102.
  • the first scenario, the second scenario and the third scenario is possible for the second synaptic coefficient w and therefore only the third substep 2042, the fourth substep 2043 and the fifth substep 2044 are carried out.
  • an artificial neuron 101 is added in the first layer 103, an artificial neuron 101 is added in the second layer 103 and a synapse 102 affected by the second synaptic coefficient w connecting the two artificial neurons 101 previously added is added.
  • the first scenario of the model R comprises the first layer 103 with two artificial neurons 101 and the second layer 103 with two artificial neurons 101, each artificial neuron 101 of the first layer being connected to a different artificial neuron 101 of the second layer 103, via a synapse 102.
  • the second layer 103 comprises a single artificial neuron 103
  • an artificial neuron 101 is added in the first layer 103 and a synapse 102 affected by the second synaptic coefficient w connecting the artificial neuron 101 of the first layer 103 added and the artificial neuron 101 of the second layer 103 is added.
  • the second scenario of the model R comprises the first layer 103 with two artificial neurons 101 and the second layer 103 with an artificial neuron 101, the artificial neuron 101 of the second layer 103 being connected to each artificial neuron 101 of the first layer 103 via a synapse 102.
  • the first layer 103 comprises a single artificial neuron 103
  • an artificial neuron 101 is added in the second layer 103 and a synapse
  • the third scenario of the model R comprises the first layer 103 with an artificial neuron 101 and the second layer 103 with two artificial neurons 101, the artificial neuron 101 of the first layer 103 being connected to each artificial neuron 101 of second layer 103 via a synapse 102.
  • a learning error VA is calculated for each scenario of the model R, namely for the first scenario, the second scenario and the third scenario and in the sixth sub-step 2047 of method 200, a validation error Vv is calculated for each scenario of the model R.
  • the learning error VA is greater than the first threshold and the validation error Vv is less than the previous value of the validation error Vv.
  • a new iteration is therefore carried out, i.e. a new fourth step 204 is carried out, for each scenario of the model R.
  • a third layer 103 is added to the model R at the first substep 2040 and a second set of synaptic coefficients W is calculated at the second sub- step 2041, comprising a single synaptic coefficient w.
  • the third layer 103 does not contain any artificial neuron 101 in the third scenario of the model R, only the first scenario and the third scenario are possible and therefore only the third sub-step 2042, and the fifth sub-step 2044 are carried out.
  • an artificial neuron 101 is added in the second layer 103, an artificial neuron 101 is added in the third layer 103 and a synapse 102 assigned the synaptic coefficient w connecting the two artificial neurons 101 previously added is added.
  • the first scenario of the third scenario of the model R comprises the second layer 103 with three artificial neurons 101 and the third layer 103 with an artificial neuron 101, the artificial neuron 101 of the second layer added being connected to the artificial neuron 101 of the third layer 103, via a synapse 102.
  • the fifth sub-step 2044 is carried out for each artificial neuron 101 of the second layer 103.
  • an artificial neuron 101 is added in the third layer 103 and a synapse 102 affected by the second synaptic coefficient w connecting the artificial neuron 101 of the second layer 103 considered and the artificial neuron 101 of the third layer 103 added, is added.
  • the first third scenario of the third scenario of the model R comprises the second layer 103 with a first artificial neuron 101 and a second artificial neuron 101, and the third layer 103 with an artificial neuron 101, the artificial neuron 101 of the third layer 103 being connected to the first artificial neuron 101 of the second layer 103 via a synapse 102 and the second third scenario of the third scenario of the model R comprises the second layer 103 with a first artificial neuron 101 and a second artificial neuron 101, and the third layer 103 with an artificial neuron 101, the artificial neuron 101 of the third layer 103 being connected to the second artificial neuron 101 of the second layer 103 via a synapse 102.
  • a learning error VA is calculated for each scenario of the third scenario of the model R, namely for the first scenario, the first third scenario and the second third scenario and to the sixth sub-step 2047 of the method 200, a validation error Vv is calculated for each scenario of the third scenario of the model R.
  • the method 200 stops. If for at least one of the scenarios of the model R, for example for the first scenario of the third scenario of the model R, the learning error VA is less than the first threshold and / or the validation error Vv is greater at the previous value of the validation error Vv, the method 200 stops.
  • the parameters of the artificial neural network 100 to be generated are then the parameters of the first scenario of the third scenario of the model R, namely a first layer 103 with an artificial neuron 101, a second layer 103 with a first artificial neuron 101, a second artificial neuron 101, and a third artificial neuron 101, the artificial neuron 101 of the first layer 103 being connected to the first artificial neuron 101 of the second layer 103 via a synapse 102 affected by the first non-zero synaptic coefficient w calculated at the second substep 2041 of the first iteration and to the second artificial neuron 101 of the second layer 103 via a synapse 102 affected by the second coefficient non-zero synaptic w calculated in the second substep 2041 of the first iteration, and the third artificial neuron 101 of the second layer 103 being connected to the artificial neuron 101 of the third layer 103 via a synapse 102 assigned the non-zero synaptic coefficient w calculated in the second sub-step 2041 of the second it
  • the neural network 100 the architecture of which is fixed using the previously calculated parameters, then operates like a conventional neural network 100, by propagating data between its layers 103.
  • the distance d associated with the ad-hoc geometry can then be used in the transfer functions f of the neural network 100.
  • the method 200 according to the first aspect of the invention is implemented by computer, which computer conventionally comprises calculation and processing means of the microprocessor type.
  • the computer comprises for example at least one CPU type calculation unit (standing for Central Processing Unit) and / or at least one GPU type calculation unit (standing for Graphics Processing Unit, such processor allowing parallelizable matrix computation), and / or an ASIC type processor (standing for application-specific integrated circuit) and / or an FPGA (standing for Field-Programmable Gâte Array) and or even an ARM processor ( from English Advanced- RISC Machines), RISC-V processor (from English Reduced Instruction Set Computing).
  • CPU type calculation unit standing for Central Processing Unit
  • GPU type calculation unit standing for Graphics Processing Unit, such processor allowing parallelizable matrix computation
  • ASIC type processor standing for application-specific integrated circuit
  • FPGA standing for Field-Programmable Gâte Array
  • ARM processor from English Advanced- RISC Machines
  • RISC-V processor from English Reduced Instruction Set Computing
  • the computer also comprises at least one flash memory type storage means readable by this computer on which is recorded a computer program comprising a plurality of instructions which, when executed by the computer, lead the latter to implement the algorithm or algorithms defining the method 200 of the invention.
  • the computer is for example a microcontroller constrained in terms of resources, and in particular computing resources, memory and energy resources such as for example a Raspberry Pi or PC.
  • the method 200 according to the first aspect of the invention has been used to solve several problems of supervised learning on board, that is to say in an environment subject to constraints of memory and energy consumption important.
  • the method 200 was more particularly used in the following two examples in which the database [X, Y] was split into a training database [XA, YA] corresponding to 75% of the base of data [X, Y] and in a validation database [Xv, Yv] corresponding to 25% of the database [X, Y].
  • the first example consists of boarding a motorized vehicle such as for example a quad, a Raspberry Pi embedding the method 200, interfaced with the output of a real-time camera acquiring low-definition images, of size 400 ⁇ 600 pixels, each corresponding to at 240 kbytes.
  • the objective is to detect the presence of obstacles in the images acquired, that is to say to assign a label 1 to the images containing at least one obstacle and a label 0 to the images not containing any obstacles.
  • the database [X, Y] has only about a hundred images.
  • the size of the convolutional information network automatically generated by the method 200 using the database is 2 megabytes.
  • the convolutional information network makes it possible to obtain a success rate of greater than 80% on the images acquired by the camera while conventional artificial neural networks do not exceed 50% because of the low quality of the images and the reduced amount of images in the database.
  • the second example consists of taking a low fidelity sensor in immersion for underwater robotic applications, a Raspberry Pi embedding the method 200.
  • the objective is to generate in real time, from the information supplied by the low fidelity sensor, information which would be provided by a high fidelity sensor, which is much more expensive.
  • the low-fidelity sensor provides for a given orientation of the robot by a real vector of size 3, a vector of reals of size 16 comprising estimates of the acceleration, of the magnetic field, of the gyroscopic effect, of the depth and we want to generate a vector of output variables of real numbers of size 8 corresponding to the thrusts of 8 electric motors to steer the robot in a defined direction.
  • the database [X, Y] comprises vectors of output variables obtained by simulation.
  • the size of the convolutional information network automatically generated by the method 200 using the database is 6 megabytes.
  • the convolutional information network reduces the acquisition error of low-fidelity sensors from 95% to 5% in real time.
  • the method 200 has also been used to classify a data set acquired by at least one sensor, that is to say to attribute to the data set a class among a set of predefined classes, in a classification method , the classification method being on board a microcontroller which is itself on board the sensor or connected to the sensor.
  • the connection can be wired, for example via a bus, or wireless, for example via Bluetooth or Wifi.
  • FIG. 4 is a block diagram showing the steps 301 and 302 of the classification method 300.
  • the classification method 300 includes a first step of determining the parameters of an artificial neural network 100.
  • the parameters of the artificial neural network 100 are determined by the method 200, using a database comprising a plurality of sets of data acquired by the sensor, and for each data set, the class associated with the data set among the set of classes.
  • the database could also include at least one data set acquired by another sensor of the same type as the considered sensor.
  • a second step 302 of the classification method 300 then consists in using an artificial neural network with the parameters determined in the first step 301, on the acquired data set to obtain the associated class.
  • the classified data set can then be added to the database to be used to classify a new data set acquired subsequently, after an incremental and personalized on-board learning.
  • the classification method 300 is a method of voice identification of an individual.
  • the sensor is a microphone
  • the data set is a data set acquired by a microphone, for example the average values of the cepstral coefficients according to the Mel scale of a sound signal, and each class corresponds to a individual.
  • the database then comprises at least one data set for each individual whose voice we want to be able to identify.
  • the classification method 300 is a method for detecting human activity.
  • the sensor comprises at least one inertial unit
  • the data set is a set of data acquired by an inertial unit, for example an acceleration and an angular speed
  • each class corresponds to a human activity, for example rest, walking, running, climbing stairs.
  • the database then includes at least one data set for each human activity that we want to be able to detect.
  • Figure 5 illustrates the confusion matrix obtained in the case where we consider four classes of human activity: the first class corresponding to rest, the second class corresponding to walking, the third class. corresponding to the race and the fourth class corresponding to the climb of stairs.
  • the color scale corresponds to the number of data sets in the test database assigned to each of the classes by the classification. It can be seen that for each class, the classification accuracy is greater than 94%, for a memory footprint of 15 KB for the first step 301, 12 KB for the second step 302, 8 KB for the storage of the network parameters of artificial neurons and of 5KB for the storage of the database, the process 300 being carried out in 1.1 seconds.
  • the classification method 300 is a race detection method in which each class corresponds to a type of races, for example sprinting, jogging.
  • the classification method 300 is a facial detection method.
  • the sensor comprises at least one camera
  • the data set is a data set acquired by a camera, for example an image
  • each class corresponds to an individual.
  • the database then includes at least one data set for each individual that we want to be able to identify.

Abstract

One aspect of the invention relates to a method (200) for automatically determining parameters of a neural network, comprising the following steps: - Identifying an ad hoc geometry specific to a database (201); - Creating a model comprising a first layer (203); - Performing an iteration (204) comprising the following steps: o Adding a new layer to the model; o Computing a set of synaptic weights; o For each nonzero synaptic weight, creating each scenario possible in the model for the synapse to which the synaptic weight is assigned; o For each scenario, computing a training error and a validation error and stopping the method if the training error is higher than a threshold and/or if the validation error is increasing; o If the method is not stopped, performing a new iteration (204) for each scenario; the parameters of the artificial neural network (100) corresponding to the parameters of the scenario of the R model that did not meet the first condition for which the method (200) was stopped.

Description

DESCRIPTION DESCRIPTION
TITRE : PROCEDE DE DETERMINATION AUTOMATIQUE DE PARAMETRES D’UN RESEAU DE NEURONES ARTIFICIELS ET MICROCONTROLEUR POUR LA MISE EN ŒUVRE DU PROCEDETITLE: PROCESS FOR AUTOMATIC DETERMINATION OF PARAMETERS OF AN ARTIFICIAL NEURON NETWORK AND MICROCONTROLLER FOR IMPLEMENTING THE PROCESS
DOMAINE TECHNIQUE DE L’INVENTION TECHNICAL FIELD OF THE INVENTION
[0001] Le domaine technique de l’invention est celui des réseaux de neurones artificiels que nous proposons de substituer par des réseaux d’information convolutifs. [0001] The technical field of the invention is that of artificial neural networks which we propose to replace with convolutional information networks.
[0002] La présente invention concerne un procédé de détermination automatique de paramètres d’un réseau de neurones artificiels et plus particulièrement de paramètres d’un réseau d’information convolutif se définissant comme un réseau de neurones artificiels généré automatiquement. En particulier, l’invention propose un procédé de détermination automatique du nombre de couches cachées, des variables de ces couches cachées comme le nombre de synapses ou le nombre de neurones, ainsi que des coefficients synaptiques du réseau de neurones artificiels. La présente invention concerne également un microcontrôleur, un produit- programme d’ordinateur, un support d’enregistrement pour la mise en oeuvre du procédé et un procédé de classification d’un jeu de données comportant les étapes du procédé de détermination automatique de paramètres d’un réseau de neurones artificiels. The present invention relates to a method for automatically determining parameters of an artificial neural network and more particularly parameters of a convolutional information network defining itself as an automatically generated artificial neural network. In particular, the invention provides a method for automatically determining the number of hidden layers, variables of these hidden layers such as the number of synapses or the number of neurons, as well as the synaptic coefficients of the artificial neural network. The present invention also relates to a microcontroller, a computer program product, a recording medium for implementing the method and a method for classifying a data set comprising the steps of the method for automatically determining parameters d. 'an artificial neural network.
ARRIERE-PLAN TECHNOLOGIQUE DE L’INVENTION TECHNOLOGICAL BACKGROUND OF THE INVENTION
[0003] Le réseau de neurones artificiels constitue le principal outil de l’apprentissage profond ou deep learning qui tente de modéliser des données afin d’être capable par la suite d’effectuer des tâches spécifiques avec de nouvelles données, comme des tâches de classification ou de détection. [0003] The artificial neural network constitutes the main tool of deep learning or deep learning which attempts to model data in order to be able subsequently to perform specific tasks with new data, such as classification tasks or detection.
[0004] Un réseau de neurones artificiels est une structure complexe formée d’une pluralité de couches, chaque couche comportant au moins un neurone artificiel. Chaque neurone d’une couche est relié à au moins un neurone d’une couche voisine via une synapse artificielle à laquelle est affecté un coefficient synaptique. [0004] An artificial neural network is a complex structure formed from a plurality of layers, each layer comprising at least one artificial neuron. Each neuron in a layer is connected to at least one neuron in a neighboring layer via an artificial synapse to which a synaptic coefficient is assigned.
[0005] Classiquement, une fois que l’architecture du réseau de neurones artificiels est fixée, c’est-à-dire son nombre de couches, son nombre de neurones et son nombre de synapses, les coefficients synaptiques sont déterminés lors d’une phase d’apprentissage grâce aux données d’une base de données d’apprentissage associant à une donnée d’entrée une donnée de sortie vraie. La phase d’apprentissage consiste à parcourir la base de données d’apprentissage et, pour chaque donnée d’entrée fournie au réseau de neurones artificiels, à mettre à jour les coefficients synaptiques à l’aide d’un algorithme d’optimisation, pour minimiser l’écart entre la sortie du réseau de neurones artificiels et la donnée de sortie vraie associée à la donnée d’entrée. Conventionally, once the architecture of the artificial neural network is fixed, that is to say its number of layers, its number of neurons and its number of synapses, the synaptic coefficients are determined during a training phase using data from a training database associating an input datum with a true output datum. The learning phase consists of browsing the learning database and, for each input data provided to the artificial neural network, updating the synaptic coefficients using an optimization algorithm, to minimize the difference between the output of the artificial neural network and the true output datum associated with the input datum.
[0006] Le nombre de couches et de neurones par couche définissant la capacité du réseau de neurones à apprendre, le nombre de couches et de neurones par couche ne cessent d’augmenter, multipliant ainsi le nombre de coefficients synaptiques à déterminer. La quantité de données d’apprentissage et de ressources de calcul et de mémoire nécessaires sont donc de plus en plus importantes, ce qui ne permet pas un apprentissage du réseau de neurones artificiels en embarqué, notamment sur microcontrôleur. [0006] The number of layers and neurons per layer defining the capacity of the neural network to learn, the number of layers and neurons per layer keep increasing, thus multiplying the number of synaptic coefficients to be determined. The quantity of learning data and the necessary computation and memory resources are therefore increasingly large, which does not allow learning of the artificial neural network on board, in particular on a microcontroller.
[0007] De plus, il n’existe pas à ce jour de méthode permettant de déterminer automatiquement le nombre de couches, le nombre de neurones pour chaque couche et le nombre de synapses d’un réseau de neurones optimaux pour une tâche donnée, ces paramètres étant fixés via un choix humain reposant sur du savoir-faire. [0008] Il existe donc un besoin de déterminer automatiquement les paramètres d’un réseau de neurones artificiels, à savoir son nombre de couches, son nombre de neurones pour chaque couche, son nombre de synapses et ses coefficients synaptiques, dans un environnement embarqué, c’est-à-dire dans un environnement contraint en termes de ressources. [0007] In addition, to date there is no method making it possible to automatically determine the number of layers, the number of neurons for each layer and the number of synapses of an optimal neural network for a given task, these parameters being set through a human choice based on know-how. [0008] There is therefore a need to automatically determine the parameters of an artificial neural network, namely its number of layers, its number of neurons for each layer, its number of synapses and its synaptic coefficients, in an on-board environment, that is to say in a constrained environment in terms of resources.
RESUME DE L’INVENTION SUMMARY OF THE INVENTION
[0009] L’invention offre une solution aux problèmes évoqués précédemment, en permettant de déterminer automatiquement les paramètres, c’est-à-dire le nombre de couches, le nombre de neurones par couche, le nombre de synapses et les coefficients synaptiques, d’un réseau de neurones artificiels implémenté sur un microcontrôleur. Ce réseau de neurones artificiels automatiquement généré, c’est-à- dire généré directement avec ses coefficients synaptiques sans passer par une phase supplémentaire d’apprentissage, est appelé réseau d’information convolutif. [0010] Un premier aspect de l’invention concerne un procédé mis en oeuvre par ordinateur de détermination automatique de paramètres d’un réseau de neurones artificiels à partir d’une base de données [X, Y], un réseau de neurones artificiels comportant au moins une première couche et une deuxième couche comprenant chacune au moins un neurone artificiel, chaque neurone artificiel d’une première couche étant connecté à un neurone artificiel d’une deuxième couche via une synapse à laquelle est affecté un coefficient synaptique, un réseau de neurones artificiels ayant pour paramètre un nombre de couches, un nombre de neurones artificiels par couche, un nombre de synapses et pour chaque synapse, un coefficient synaptique, le procédé comportant les étapes suivantes : The invention offers a solution to the problems mentioned above, by making it possible to automatically determine the parameters, that is to say the number of layers, the number of neurons per layer, the number of synapses and the synaptic coefficients, of an artificial neural network implemented on a microcontroller. This automatically generated artificial neural network, ie generated directly with its synaptic coefficients without going through an additional learning phase, is called a convolutional information network. A first aspect of the invention relates to a computer-implemented method for automatically determining parameters of an artificial neural network from a database [X, Y], an artificial neural network comprising at least a first layer and a second layer each comprising at least one artificial neuron, each artificial neuron of a first layer being connected to an artificial neuron of a second layer via a synapse to which is assigned a synaptic coefficient, a network of artificial neurons having as parameter a number of layers, a number of artificial neurons per layer, a number of synapses and for each synapse, a synaptic coefficient, the method comprising the following steps:
- Identification d’une géométrie ad hoc à partir de la base de données [X, Y] ; - Identification of an ad hoc geometry from the database [X, Y];
- Séparation de la base de données [X, Y] en une base de données d’apprentissage [XA, YA] et une base de données de validation [Xv, Yv] ;- Separation of the database [X, Y] into a learning database [XA, YA] and a validation database [Xv, Yv];
- Création d’un modèle R de réseau de neurones artificiels comprenant une première couche ; - Creation of an R model of an artificial neural network comprising a first layer;
- Réalisation d’une itération comportant les étapes suivantes : o Ajout d’une nouvelle couche dans le modèle R ; o Calcul d’un ensemble de coefficients synaptiques W à partir de la base de données d’apprentissage [XA, YA] et d’une distance d définie à partir d’un produit scalaire associé à la géométrie ad- hoc ; o Pour chaque coefficient synaptique non nul de l’ensemble de coefficients synaptiques W : - Carrying out an iteration comprising the following steps: o Adding a new layer in the R model; o Calculation of a set of synaptic coefficients W from the learning database [XA, YA] and a distance d defined from a dot product associated with the ad hoc geometry; o For each non-zero synaptic coefficient of the set of synaptic coefficients W:
• Création d’un premier scénario dans le modèle R en réalisant les étapes suivantes : • Creation of a first scenario in the R model by carrying out the following steps:
Ajout d’un neurone artificiel dans la couche précédente, se définissant comme la couche précédant la nouvelle couche dans le modèle R ; Addition of an artificial neuron in the previous layer, defining itself as the layer preceding the new layer in the R model;
Ajout d’un neurone artificiel dans la nouvelle couche ; Addition of an artificial neuron in the new layer;
Ajout d’une synapse à laquelle est affectée le coefficient synaptique, connectée au neurone artificiel de la couche précédente ajouté et au neurone artificiel de la nouvelle couche ajouté ; Addition of a synapse to which the synaptic coefficient is assigned, connected to the neuron artificial from the previous layer added and artificial neuron from the new layer added;
• Pour chaque neurone artificiel de la nouvelle couche, création d’un deuxième scénario dans le modèle R en réalisant les étapes suivantes : • For each artificial neuron of the new layer, creation of a second scenario in the R model by performing the following steps:
Ajout d’un neurone artificiel dans la couche précédente ; Addition of an artificial neuron in the previous layer;
Ajout d’une synapse à laquelle est affectée le coefficient synaptique, connectée au neurone artificiel de la couche précédente ajouté et au neurone artificiel de la nouvelle couche ; Addition of a synapse to which the synaptic coefficient is assigned, connected to the artificial neuron of the previous layer added and to the artificial neuron of the new layer;
• Pour chaque neurone artificiel de la couche précédente, création d’un troisième scénario dans le modèle R en réalisant les étapes suivantes : • For each artificial neuron of the previous layer, creation of a third scenario in the R model by performing the following steps:
Ajout d’un neurone artificiel dans la nouvelle couche ; Addition of an artificial neuron in the new layer;
Ajout d’une synapse à laquelle est affectée le coefficient synaptique, connectée au neurone artificiel de la nouvelle couche ajouté et au neurone artificiel de la couche précédente ; Addition of a synapse to which the synaptic coefficient is assigned, connected to the artificial neuron of the new layer added and to the artificial neuron of the previous layer;
• Pour chaque couple comprenant un neurone artificiel de la couche précédente et un neurone artificiel de la nouvelle couche non reliés entre eux par une synapse, création d’un quatrième scénario dans le modèle R en ajoutant une synapse à laquelle est affectée le coefficient synaptique, connectée au neurone artificiel de la couche précédente du couple et au neurone artificiel de la nouvelle couche du couple ; • For each pair comprising an artificial neuron from the previous layer and an artificial neuron from the new layer not linked to each other by a synapse, creation of a fourth scenario in the R model by adding a synapse to which the synaptic coefficient is assigned, connected to the artificial neuron of the previous layer of the couple and to the artificial neuron of the new layer of the couple;
- Pour chaque scénario ajouté dans le modèle R : o Calcul d’une erreur d’apprentissage VA à partir de la donnée de la base de données d’apprentissage [XA, YA] et du scénario du modèle R; o Calcul d’une erreur de validation Vv à partir de la donnée de la base de données de validation [Xv, Yv] et du scénario du modèle R; - For each scenario added to the model R: o Calculation of a VA training error from the data in the training database [XA, YA] and from the scenario of the R model; o Calculation of a validation error Vv from the data from the validation database [Xv, Yv] and from the scenario of the model R;
• Si une première condition selon laquelle l’erreur d’apprentissage VA est supérieure à un premier seuil n’est pas vérifiée et/ou si une deuxième condition selon laquelle l’erreur de validation Vv décroît n’est pas vérifiée, arrêt du procédé ; • If a first condition according to which the learning error VA is greater than a first threshold is not verified and / or if a second condition according to which the validation error Vv decreases is not verified, the process is stopped. ;
- Si la première condition et la deuxième condition sont vérifiées pour chaque scénario ajouté, réalisation d’une nouvelle itération pour chaque scénario du modèle R ; les paramètres du réseau de neurones artificiels correspondant aux paramètres du scénario du modèle R n’ayant pas vérifié la première condition et/ou la deuxième condition. - If the first condition and the second condition are verified for each scenario added, carrying out a new iteration for each scenario of the R model; the parameters of the artificial neural network corresponding to the parameters of the scenario of the model R not having verified the first condition and / or the second condition.
[0011] Grâce à l’invention, les paramètres d’un réseau de neurones artificiels, à savoir son nombre de couches, son nombre de synapses, ses coefficients synaptiques et son nombre de neurones par couche, sont déterminés automatiquement, sans intervention humaine. En effet, tant que l’erreur d’apprentissage représentative de l’erreur entre le modèle défini à partir de la géométrie ad-hoc adaptée aux données mis à jour à chaque nouvelle donnée et la base de données d’apprentissage est élevée et tant que l’erreur de validation représentative du sur-apprentissage sur la base de données de validation décroît, une nouvelle couche est introduite et des coefficients synaptiques sont calculés pour chaque couche. Pour chaque coefficient synaptique non nul, toutes les possibilités sont explorées pour le placement dans le modèle, de la synapse à laquelle le coefficient synaptique est affecté, à travers l’introduction des différents scénarios. Le premier scénario correspond au cas où le coefficient synaptique considéré est affecté à une synapse reliant un neurone artificiel de la couche précédente qui n’est encore relié à aucun neurone artificiel de la nouvelle couche et un neurone artificiel de la nouvelle couche qui n’est encore relié à aucun neurone artificiel de la couche précédente. Le deuxième scénario correspond au cas où le coefficient synaptique considéré est affecté à une synapse reliant un neurone artificiel de la couche précédente qui n’est encore relié à aucun neurone artificiel de la nouvelle couche et un neurone artificiel de la nouvelle couche existant, déjà relié à un autre neurone artificiel de la couche précédente. Le troisième scénario correspond au cas où le coefficient synaptique considéré est affecté à une synapse reliant un neurone artificiel de la couche précédente existant, déjà relié à un autre neurone artificiel de la nouvelle couche et un neurone artificiel de la nouvelle couche qui n’est encore relié à aucun neurone artificiel de la couche précédente. Le quatrième scénario correspond au cas où le coefficient synaptique considéré est affecté à une synapse reliant un neurone artificiel de la couche précédente existant déjà relié à un autre neurone artificiel de la nouvelle couche et un neurone artificiel de la nouvelle couche existant, déjà relié à un autre neurone artificiel de la couche précédente. Thanks to the invention, the parameters of an artificial neural network, namely its number of layers, its number of synapses, its synaptic coefficients and its number of neurons per layer, are determined automatically, without human intervention. Indeed, as long as the learning error representative of the error between the model defined from the ad-hoc geometry adapted to the data updated for each new datum and the training database is high and both As the validation error representative of over-learning on the validation database decreases, a new layer is introduced and synaptic coefficients are calculated for each layer. For each non-zero synaptic coefficient, all possibilities are explored for the placement in the model of the synapse to which the synaptic coefficient is assigned, through the introduction of the different scenarios. The first scenario corresponds to the case where the synaptic coefficient considered is assigned to a synapse connecting an artificial neuron of the previous layer which is not yet connected to any artificial neuron of the new layer and an artificial neuron of the new layer which is not. still connected to no artificial neuron of the previous layer. The second scenario corresponds to the case where the synaptic coefficient considered is assigned to a synapse connecting an artificial neuron of the previous layer which is not yet connected to any artificial neuron of the new layer and an artificial neuron of the new existing layer, already connected to another artificial neuron of the previous layer. The third scenario corresponds to the case where the synaptic coefficient considered is assigned to a synapse connecting an artificial neuron of the previous existing layer, already connected to another artificial neuron of the new layer and an artificial neuron of the new layer which is not yet connected to any artificial neuron of the previous layer. The fourth scenario corresponds to the case where the synaptic coefficient considered is assigned to a synapse connecting an artificial neuron of the previous existing layer already connected to another artificial neuron of the new layer and an artificial neuron of the new existing layer, already connected to a another artificial neuron from the previous layer.
[0012] La procédure est stoppée lorsque l’erreur de validation augmente ou lorsque l’erreur d’apprentissage est réduite jusqu’à un niveau prédéfini pour un scénario donné. Le procédé n’a donc recours à aucun algorithme d’optimisation basé sur la rétropropagation. Les ressources de calcul utilisées sont ainsi drastiquement réduites, de même que le volume de données nécessaire, typiquement d’un facteur de l’ordre de dix, si bien que le procédé est embarquable sur un environnement contraint en termes de ressources, comme un microprocesseur. De plus, le procédé est déterministe car il n’utilise aucun ingrédient stochastique comme la méthode de gradient stochastique, par exemple, pour l’optimisation. The procedure is stopped when the validation error increases or when the learning error is reduced to a predefined level for a given scenario. The method therefore does not use any optimization algorithm based on backpropagation. The computing resources used are thus drastically reduced, as is the volume of data required, typically by a factor of the order of ten, so that the method can be embedded in a constrained environment in terms of resources, such as a microprocessor. . In addition, the method is deterministic because it does not use any stochastic ingredients like the stochastic gradient method, for example, for optimization.
[0013] Outre les caractéristiques qui viennent d’être évoquées dans le paragraphe précédent, le procédé selon l’invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles. [0013] In addition to the characteristics which have just been mentioned in the previous paragraph, the method according to the invention may have one or more additional characteristics among the following, considered individually or in any technically possible combination.
[0014] Selon une variante de réalisation, la géométrie ad hoc est une géométrie Riemannienne. According to an alternative embodiment, the ad hoc geometry is a Riemannian geometry.
[0015] Selon une variante de réalisation compatible avec la variante de réalisation précédente, l’erreur d’apprentissage VA est définie par : vA = H ¼ -*(¾) H According to an alternative embodiment compatible with the previous variant, the learning error VA is defined by: v A = H ¼ - * (¾) H
Avec ||. Il, la norme euclidienne. With ||. He, the Euclidean norm.
[0016] Ainsi, l’erreur d’apprentissage représente bien l’erreur entre le modèle défini à partir de la géométrie ad-hoc et la base de données d’apprentissage. [0017] Selon une variante de réalisation compatible avec les variantes de réalisation précédentes, l’erreur de validation Vv est définie par : [0016] Thus, the learning error does indeed represent the error between the model defined from the ad-hoc geometry and the learning database. According to an alternative embodiment compatible with the previous variant embodiments, the validation error Vv is defined by:
Vv = \\YV - R(XV)\\ V v = \\ Y V - R (X V ) \\
Avec ||. Il, la norme euclidienne. With ||. He, the Euclidean norm.
[0018] Ainsi, l’erreur de validation est représentative du sur-apprentissage. [0018] Thus, the validation error is representative of over-learning.
[0019] Selon une variante de réalisation compatible avec les variantes de réalisation précédentes, chaque coefficient synaptique est calculé en outre à partir d’une fonction noyau K dépendant d’une distance d définie à partir d’un produit scalaire associée à la géométrie ad hoc. Par exemple, la distance d se définit comme :
Figure imgf000008_0001
According to a variant embodiment compatible with the previous variant embodiments, each synaptic coefficient is further calculated from a kernel function K depending on a distance d defined from a scalar product associated with the geometry ad hoc. For example, the distance d is defined as:
Figure imgf000008_0001
Avec n la dimension du vecteur ou de l’ensemble de vecteurs d’entrée X, p une valeur réelle non nulle ou un vecteur de valeurs réelles non nulles et M la matrice d’adaptation correspondant à la géométrie ad hoc. With n the dimension of the vector or the set of input vectors X, p a non-zero real value or a vector of non-zero real values and M the adaptation matrix corresponding to the ad hoc geometry.
[0020] Selon une sous-variante de réalisation de la variante de réalisation précédente, l’ensemble des coefficients synaptiques W est défini par : According to a sub-variant embodiment of the previous variant, the set of synaptic coefficients W is defined by:
W = max(0, YA * K{d,Xv,XA) - s) W = max (0, Y A * K {d, X v , X A ) - s)
Avec s un deuxième seuil. With s a second threshold.
[0021] Ainsi, les coefficients synaptiques représentent l’influence des données d’apprentissage YA aux points de validation Xv à travers un opérateur de convolution et sont fonction de la géométrie ad-hoc. [0021] Thus, the synaptic coefficients represent the influence of the training data YA at the validation points Xv through a convolution operator and are a function of the ad-hoc geometry.
[0022] Selon une première sous-variante de réalisation de la sous-variante de réalisation précédente, la fonction noyau est de type Gaussien. According to a first sub-variant embodiment of the previous sub-variant embodiment, the kernel function is of the Gaussian type.
[0023] Selon une deuxième sous-variante de réalisation de la sous-variante de réalisation précédente compatible avec la première variante de réalisation, la fonction noyau dépend de l’itération. [0024] Selon une variante de réalisation compatible avec les variantes de réalisation précédentes, la vérification de la première condition est réalisée simultanément à la vérification de la deuxième condition. According to a second sub-variant embodiment of the previous sub-variant embodiment compatible with the first variant embodiment, the kernel function depends on the iteration. According to a variant embodiment compatible with the previous variant embodiments, the verification of the first condition is carried out simultaneously with the verification of the second condition.
[0025] Un second aspect de l’invention concerne un microcontrôleur comportant un calculateur configuré pour mettre en oeuvre le procédé selon l’invention. [0025] A second aspect of the invention relates to a microcontroller comprising a computer configured to implement the method according to the invention.
[0026] Ainsi, le procédé peut être embarqué sur un environnement contraint en termes de ressources de calcul et de mémoire. Thus, the method can be embedded in an environment constrained in terms of computing resources and memory.
[0027] Un troisième aspect de l’invention concerne un produit-programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par ordinateur, conduisent celui-ci à mettre en oeuvre les étapes du procédé selon l’invention. [0027] A third aspect of the invention relates to a computer program product comprising instructions which, when the program is executed by a computer, lead the latter to implement the steps of the method according to the invention.
[0028] Un quatrième aspect de l’invention concerne un support d’enregistrement lisible par ordinateur, sur lequel est enregistré le produit-programme d’ordinateur selon l’invention. [0028] A fourth aspect of the invention relates to a computer readable recording medium, on which is recorded the computer program product according to the invention.
[0029] Un cinquième aspect de l’invention concerne un procédé de classification d’un jeu de données acquis par un capteur utilisant un microcontrôleur, comportant les étapes suivantes mis en oeuvre par le microcontrôleur : une étape de détermination des paramètres d’un réseau de neurones artificiels comportant les étapes du procédé selon le premier aspect de l’invention, pour une base de données comportant pour chaque jeu données d’une pluralité de jeux de données acquis par le capteur, la classe associée parmi un ensemble de classes prédéfini ; une étape d’utilisation du réseau de neurones artificiels avec les paramètres précédemment déterminés, sur le jeu de données acquis pour obtenir la classe associée. A fifth aspect of the invention relates to a method of classifying a data set acquired by a sensor using a microcontroller, comprising the following steps implemented by the microcontroller: a step of determining the parameters of a network artificial neurons comprising the steps of the method according to the first aspect of the invention, for a database comprising, for each data set of a plurality of data sets acquired by the sensor, the associated class from among a predefined set of classes; a step of using the artificial neural network with the previously determined parameters, on the acquired data set to obtain the associated class.
[0030] Ainsi, il est possible d’utiliser un réseau de neurones artificiels pour classifier un jeu de données acquis par un capteur, en embarqué, au niveau du capteur et donc dans un environnement contraint en termes de ressources de calcul et de mémoire. Les paramètres du réseau de neurones artificiels peuvent alors être obtenus uniquement à partir de jeux de données propres au capteur, ce qui permet de ne pas utiliser de jeux de données acquis par d’autres capteurs qui pourraient introduire un biais du fait qu’ils ne sont pas identiques au capteur considéré. [0031] Selon une première variante de réalisation, le procédé selon le troisième aspect de l’invention est un procédé d’identification vocale d’un individu réalisé pour un jeu de données acquis par au moins un microphone, chaque classe correspondant à un individu. [0032] Selon une deuxième variante de réalisation, le procédé selon le troisième aspect de l’invention est un procédé de détection d’une activité humaine réalisé pour un jeu de données acquis par au moins une centrale inertielle, chaque classe correspondant à une activité humaine. [0033] Selon une troisième variante de réalisation, le procédé selon le troisième aspect de l’invention est un procédé de détection faciale réalisé pour une image acquise par au moins une caméra, chaque classe correspondant à un individu. [0030] Thus, it is possible to use an artificial neural network to classify a set of data acquired by a sensor, on board, at the level of the sensor and therefore in a constrained environment in terms of computation and memory resources. The parameters of the artificial neural network can then be obtained only from data sets specific to the sensor, which makes it possible not to use data sets acquired by other sensors which could introduce a bias due to the fact that they are not identical to the considered sensor. According to a first variant embodiment, the method according to the third aspect of the invention is a method for voice identification of an individual carried out for a set of data acquired by at least one microphone, each class corresponding to an individual . According to a second variant embodiment, the method according to the third aspect of the invention is a method for detecting human activity carried out for a set of data acquired by at least one inertial unit, each class corresponding to an activity human. According to a third variant embodiment, the method according to the third aspect of the invention is a facial detection method carried out for an image acquired by at least one camera, each class corresponding to an individual.
[0034] L’invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l’examen des figures qui l’accompagnent. The invention and its various applications will be better understood on reading the following description and on examining the accompanying figures.
BREVE DESCRIPTION DES FIGURES BRIEF DESCRIPTION OF THE FIGURES
[0035] Les figures sont présentées à titre indicatif et nullement limitatif de l’invention. - La figure 1 montre une représentation schématique d’un réseau de neurones artificiels. [0035] The figures are presented as an indication and in no way limit the invention. - Figure 1 shows a schematic representation of an artificial neural network.
La figure 2 est un schéma synoptique représentant les étapes du procédé selon l’invention. Figure 2 is a block diagram showing the steps of the method according to the invention.
La figure 3 est un schéma synoptique représentant les sous-étapes d’une itération du procédé selon l’invention. FIG. 3 is a block diagram showing the sub-steps of an iteration of the method according to the invention.
La figure 4 est un schéma synoptique représentant les étapes d’un procédé de classification selon l’invention. La figure 5 est une matrice de confusion normalisé obtenue pour un exemple de procédé de détection d’activité humaine. FIG. 4 is a block diagram showing the steps of a classification method according to the invention. FIG. 5 is a standardized confusion matrix obtained for an example of a method of detecting human activity.
DESCRIPTION DETAILLEE DETAILED DESCRIPTION
[0036] Sauf précision contraire, un même élément apparaissant sur des figures différentes présente une référence unique. Unless otherwise specified, the same element appearing in different figures has a single reference.
[0037] Un premier aspect de l’invention concerne un procédé de détermination automatique de paramètres d’un réseau de neurones artificiels, les paramètres comportant le nombre de couches, le nombre de neurones par couche, le nombre de synapses et les coefficients synaptiques du réseau de neurones artificiels. A first aspect of the invention relates to a method for automatically determining parameters of an artificial neural network, the parameters comprising the number of layers, the number of neurons per layer, the number of synapses and the synaptic coefficients of the artificial neural network.
[0038] Un réseau de neurones artificiels dont les paramètres sont déterminés automatiquement est appelé réseau d’information convolutif. [0038] An artificial neural network whose parameters are determined automatically is called a convolutional information network.
[0039] Dans la suite de la demande, on utilisera indifféremment les termes de « neurone « et de « neurone artificiel ». In the remainder of the application, the terms “neuron” and “artificial neuron” will be used interchangeably.
[0040] [Fig. 1] La figure 1 montre une représentation schématique d’un réseau de neurones artificiels 100. [0040] [Fig. 1] Figure 1 shows a schematic representation of an artificial neural network 100.
[0041] Un réseau de neurones 100 comporte au moins deux couches 103 comportant chacune au moins un neurone artificiel 101. Sur la figure 1 , le réseau de neurones 100 comporte trois couches 103 comportant chacune trois neurones 101. Chaque neurone 101 de chaque couche 103 est connecté à chaque neurone 101 de la couche 103 précédente et à chaque neurone 101 de la couche 103 suivante. Les neurones 101 d’une même couche ne sont pas connectés entre eux. Une connexion entre deux neurones 101 est appelée une synapse 102. Chaque synapse 102 est affectée d’un coefficient synaptique w. A neural network 100 comprises at least two layers 103 each comprising at least one artificial neuron 101. In FIG. 1, the neural network 100 comprises three layers 103 each comprising three neurons 101. Each neuron 101 of each layer 103 is connected to each neuron 101 of the preceding layer 103 and to each neuron 101 of the following layer 103. Neurons 101 of the same layer are not connected to each other. A connection between two neurons 101 is called a synapse 102. Each synapse 102 is assigned a synaptic coefficient w.
[0042] Le coefficient synaptique w de la synapse 102 reliant l’entrée du neurone k d’une couche quelconque à la sortie du neurone i de la couche précédente sera écrit dans la suite de la description suivant le formalisme wf. [0043] Une fois leur architecture fixée et leurs coefficients synaptiques déterminés, les réseaux de neurones 100 sont configurés pour réaliser de la prédiction à partir de données injectées en entrée du réseau de neurones 100, c’est- à-dire au niveau des entrées des neurones 101 de la première couche 103 de neurones 101, afin que ces données soit traitées successivement par cette première couche 103 puis par les couches 103 de neurones 101 suivantes. The synaptic coefficient w of the synapse 102 connecting the input of the neuron k of any layer to the output of the neuron i of the preceding layer will be written in the remainder of the description according to the formalism wf. Once their architecture is fixed and their synaptic coefficients determined, the neural networks 100 are configured to perform prediction from data injected at the input of the neural network 100, that is to say at the inputs. neurons 101 of the first layer 103 of neurons 101, so that these data are processed successively by this first layer 103 then by the following layers 103 of neurons 101.
[0044] Les données numériques de sortie, c’est-à-dire celles obtenues au niveau des sorties de la dernière couche 103 de neurones 101 , se présentent par exemple sous la forme d’un vecteur de probabilité ou d’un ensemble de vecteurs de probabilité Y qui fournit des informations de prédiction sur les données initiales. Ce vecteur ou ensemble de vecteurs peut être assimilé à un vecteur comprenant m coefficients Yi à Ym. The digital output data, that is to say those obtained at the level of the outputs of the last layer 103 of neurons 101, are for example in the form of a probability vector or of a set of Y probability vectors that provide prediction information about the initial data. This vector or set of vectors can be assimilated to a vector comprising m coefficients Yi to Ym.
[0045] Les données d’entrée se présentent sous la forme d’un vecteur ou d’un ensemble de vecteurs X pouvant être assimilé à un vecteur comprenant n coefficients Xi à Xn. Ce vecteur est défini dans un espace métrique déterminé. La première couche 103 du réseau de neurones 100 comprend ainsi n neurones 101 , chaque neurone i étant affecté d’un poids synaptique w et d’une fonction de transfert / qui utilise en son sein une fonction distance. Chaque neurone i reçoit en entrée le coefficient Xi du vecteur X. Une fonction de combinaison du neurone i de la première couche génère ainsi une valeur x = w Xt. La fonction de combinaison des neurones 101 de la première couche 103 génère donc un vecteur x1 avec les coefficients x{ à x , et la fonction de transfert des neurones 101 de la première couche 103 génère un vecteur de sortie y1 = /(x1), à n coefficients y\ à y . Le vecteur de sortie y1 de la première couche 103 de neurones 101 devient alors le vecteur d’entrée de la deuxième couche 103 de neurones 101 , et le traitement des données se propage dans les couches 103 de neurones 101 successives. The input data is in the form of a vector or a set of vectors X which can be likened to a vector comprising n coefficients Xi to Xn. This vector is defined in a determined metric space. The first layer 103 of the neural network 100 thus comprises n neurons 101, each neuron i being assigned a synaptic weight w and a transfer function / which uses a distance function within it. Each neuron i receives as input the coefficient Xi of the vector X. A combination function of the neuron i of the first layer thus generates a value x = w X t . The combination function of the neurons 101 of the first layer 103 therefore generates a vector x 1 with the coefficients x {to x, and the transfer function of the neurons 101 of the first layer 103 generates an output vector y 1 = / (x 1 ), with n coefficients y \ at y. The output vector y 1 of the first layer 103 of neurons 101 then becomes the input vector of the second layer 103 of neurons 101, and the processing of the data is propagated in the layers 103 of successive neurons 101.
[0046] Plus précisément, chaque neurone 101 d’une couche intermédiaire k reçoit en entrée les sorties des neurones 101 de la couche k-1. Par exemple, dans le cas d’une fonction de transfert entre deux couches 103 successives linéaire, le calcul du vecteur de sortie yk par le réseau de neurones 100 en sortie de la couche de neurones k prend la forme suivante :
Figure imgf000013_0001
yk~x est le vecteur des données de sortie générées par les neurones 101 de la couche k-1 et injectées en entrée des neurones 101 de la couche k, et xk est le vecteur résultant du traitement du vecteur yk_1 par la fonction de combinaison au niveau de la couche k de neurones 101.
More precisely, each neuron 101 of an intermediate layer k receives as input the outputs of the neurons 101 of the layer k-1. For example, in the case of a transfer function between two successive linear layers 103, the calculation of the output vector y k by the neural network 100 at the output of the layer of neurons k takes the following form:
Figure imgf000013_0001
y k ~ x is the vector of the output data generated by the neurons 101 of layer k-1 and injected at the input of the neurons 101 of layer k, and x k is the vector resulting from the processing of the vector y k_1 by the function combination at the level of the k-layer of neurons 101.
[0047] Le traitement des données par le réseau de neurones 100 est réalisé par propagation dans les couches 103 successives du réseau 100. La dernière couche 103 de neurones 101, renvoyant le vecteur de sortie Y, comprend un nombre de neurones m pouvant être différent de n. Comme précisé ci-dessus, le vecteur de sortie Y comprend ainsi m coefficients Yi à Ym. The processing of the data by the neural network 100 is carried out by propagation in the successive layers 103 of the network 100. The last layer 103 of neurons 101, returning the output vector Y, comprises a number of neurons m which may be different from n. As specified above, the output vector Y thus comprises m coefficients Yi to Ym.
[0048] Ainsi, pour réaliser de la prédiction de données efficace, le réseau de neurones 100 doit disposer de coefficients synaptiques w présentant des valeurs adéquates. Thus, to perform efficient data prediction, the neural network 100 must have synaptic coefficients w having adequate values.
[0049] Le procédé selon le premier aspect de l’invention permet de déterminer automatiquement le nombre de couches 103, le nombre de synapses 102, le nombre de neurones 101 par couche, et les coefficients synaptiques w d’un réseau de neurones artificiels 100 à partir d’une base de données qui, a un vecteur ou un ensemble de vecteurs d’entrée X, associe un vecteur ou un ensemble de vecteurs de sortie vrai Y, correspondant au vecteur ou ensemble de vecteurs de sortie du réseau de neurones artificiels 100 que l’on souhaiterait obtenir pour le vecteur ou l’ensemble de vecteurs d’entrée X. The method according to the first aspect of the invention makes it possible to automatically determine the number of layers 103, the number of synapses 102, the number of neurons 101 per layer, and the synaptic coefficients w of an artificial neural network 100 from a database which, has a vector or set of input vectors X, associates a vector or set of true output vectors Y, corresponding to the vector or set of output vectors of the artificial neural network 100 that one would like to obtain for the vector or the set of input vectors X.
[0050] [Fig. 2] La figure 2 est un schéma synoptique représentant les étapes 201 à 204 du procédé 200 selon le premier aspect de l’invention. [0050] [Fig. 2] Figure 2 is a block diagram showing steps 201 to 204 of method 200 according to the first aspect of the invention.
[0051] Une première étape 201 du procédé 200 consiste à choisir une géométrie ad-hoc en fonction de la base de données (X, Y) pour adapter la géométrie de l’architecture du réseau de neurones 100 dans un premier temps, et de l’espace métrique dans lequel sont définis les opérateurs du réseau de neurones 100, notamment la fonction de transfert f des neurones 101, dans un deuxième temps, aux vecteurs ou ensembles de vecteurs d’entrée X injectés dans le réseau de neurones 100. A first step 201 of the method 200 consists in choosing an ad-hoc geometry as a function of the database (X, Y) to adapt the geometry of the architecture of the neural network 100 initially, and of the metric space in which the operators of the neural network 100 are defined, in particular the transfer function f of the neurons 101, secondly, to vectors or sets of input vectors X injected into the neural network 100.
[0052] La géométrie ad-hoc est par exemple choisie parmi un ensemble de géométries prédéfinies, automatiquement, en réalisant le procédé 200 pour chaque géométrie de l’ensemble de géométrie et en conservant la géométrie conduisant à l’erreur d’apprentissage la plus faible. The ad-hoc geometry is for example chosen from a set of predefined geometries, automatically, by carrying out the method 200 for each geometry of the set of geometry and by keeping the geometry leading to the most learning error. low.
[0053] La géométrie ad hoc est prise en compte à travers la définition d’une fonction distance non isotrope et non Euclidienne sur les vecteurs ou ensembles de vecteurs d’entrée X. The ad hoc geometry is taken into account through the definition of a non-isotropic and non-Euclidean distance function on the vectors or sets of input vectors X.
[0054] La fonction distance est par exemple la distance associée à la norme L1 ou à la norme L2 ou la distance géodésique. The distance function is for example the distance associated with the L1 standard or with the L2 standard or the geodesic distance.
[0055] Pour ce faire, une matrice nommée matrice d’adaptation M dans la suite de la description, est définie. M est par exemple une matrice diagonale. To do this, a matrix called adaptation matrix M in the remainder of the description is defined. M is for example a diagonal matrix.
[0056] La matrice d’adaptation M permet d’adapter la base de données (X, Y) à la géométrie choisie. The adaptation matrix M makes it possible to adapt the database (X, Y) to the chosen geometry.
[0057] La matrice d’adaptation M permet par exemple l’introduction d’une géométrie Riemannienne. The adaptation matrix M allows for example the introduction of a Riemannian geometry.
[0058] La matrice d’adaptation M est par exemple la matrice des géodésiques, la matrice des courbures de Gauss ou encore le tenseur énergie-impulsion. The adaptation matrix M is for example the matrix of geodesics, the matrix of Gaussian curvatures or even the energy-momentum tensor.
[0059] La matrice d’adaptation M de la norme de l’espace métrique dans lequel sont définies les fonctions de transfert f est par exemple déterminée de la façon suivante :
Figure imgf000015_0002
maximale et minimale de la ième composante du vecteur X d’entrée, la matrice étant de fait d’ordre n et définie positive.
The adaptation matrix M of the standard of the metric space in which the transfer functions f are defined is for example determined as follows:
Figure imgf000015_0002
maximum and minimum of the i th component of the input vector X, the matrix being in fact of order n and positive definite.
[0060] Le cas euclidien correspond à la matrice identité. The Euclidean case corresponds to the identity matrix.
[0061] La matrice d’adaptation M permet de définir une distance d définie par le produit scalaire associée à la géométrie ad-hoc précédemment identifiée, par exemple :
Figure imgf000015_0001
The adaptation matrix M makes it possible to define a distance d defined by the scalar product associated with the ad-hoc geometry previously identified, for example:
Figure imgf000015_0001
Avec n, la dimension du vecteur ou de l’ensemble de vecteurs d’entrée X, p une valeur réelle non nulle ou un vecteur de valeurs réelles non nulles et M la matrice d’adaptation correspondant à la géométrie ad hoc. With n, the dimension of the vector or set of input vectors X, p a non-zero real value or a vector of non-zero real values and M the adaptation matrix corresponding to the ad hoc geometry.
[0062] Par exemple, le cas d’une distance euclidienne correspond au cas p=2 et M la matrice identité. For example, the case of a Euclidean distance corresponds to the case p = 2 and M the identity matrix.
[0063] Dans les versions les plus simples de distance, p est la puissance de la norme Lp. In the simplest distance versions, p is the power of the Lp standard.
[0064] Dans les exemples donnés plus haut sur les différentes métriques Riemanniennes, p peut être un vecteur de paramètres. In the examples given above on the various Riemannian metrics, p can be a vector of parameters.
[0065] Une fois l’architecture du réseau de neurones 100 déterminée, la distance d est utilisée dans la définition des fonctions de transfert f du réseau de neurones 100. Once the architecture of the neural network 100 has been determined, the distance d is used in the definition of the transfer functions f of the neural network 100.
[0066] Une deuxième étape 202 du procédé 200 consiste à séparer la base de données (X, Y) en une base de données d’apprentissage (XA, YA) et une base de données de validation (Xv, Yv). [0067] La base de données d’apprentissage (XA, YA) représente par exemple entre 75 % et 90 % de la base de données (X, Y) et la base de données de validation (Xv, Yv) entre 10% et 25% de la base de données (X, Y). A second step 202 of the method 200 consists in separating the database (X, Y) into a training database (XA, YA) and a validation database (Xv, Yv). The training database (XA, YA) represents for example between 75% and 90% of the database (X, Y) and the validation database (Xv, Yv) between 10% and 25% of the database (X, Y).
[0068] Une troisième étape 203 du procédé 200 consiste à créer un modèle R de réseaux de neurones artificiels 100 comprenant une première couche 103 de neurones artificiels 101. A third step 203 of the method 200 consists in creating an R model of artificial neural networks 100 comprising a first layer 103 of artificial neurons 101.
[0069] Le modèle R vise à reproduire le comportement d’un réseau de neurones artificiels 100 ayant pour paramètres les paramètres du modèle R. En particulier, pour un vecteur ou un ensemble de vecteurs d’entrée donné, le modèle R et un réseau de neurones artificiels 100 ayant les mêmes paramètres que le modèle R ont le même vecteur ou ensemble de vecteurs de sortie. The model R aims to reproduce the behavior of an artificial neural network 100 having as parameters the parameters of the model R. In particular, for a vector or a set of given input vectors, the model R and a network of artificial neurons 100 having the same parameters as the model R have the same vector or set of output vectors.
[0070] Le modèle R utilise la distance d définie à partir de la matrice d’adaptation M dans les fonctions de transfert f. The model R uses the distance d defined from the adaptation matrix M in the transfer functions f.
[0071] Chaque couche du modèle de réseau R proposent l’ensemble des quatre fonctionnalités principales disponibles dans les couches des réseaux de neurones à convolution classiques fonctions dense, fonction maxpull, fonction dropout/activation, et fonction convolution. Each layer of the network model R offers all four main functionalities available in the layers of conventional convolutional neural networks dense functions, maxpull function, dropout / activation function, and convolution function.
[0072] Le modèle de réseau R inclut la définition classique du réseau de neurones. La différence vient du fait que dans le modèle de réseau R l’architecture (nombre de couches, nombres de neurones par couches, nombre de synapses) n’est pas prédéfinie et est identifiée en même temps que les coefficients synaptiques par le procédé 200 alors que dans les réseaux de neurones classiques, l’architecture doit être prédéfinie avant l’identification des coefficients synaptiques. La couche multifonction mentionnée permet l’identification automatique des paramètres du modèle de réseau R. The network model R includes the classical definition of the neural network. The difference comes from the fact that in the network model R the architecture (number of layers, number of neurons per layers, number of synapses) is not predefined and is identified at the same time as the synaptic coefficients by the method 200 then that in classical neural networks, the architecture must be predefined before the identification of the synaptic coefficients. The mentioned multifunction layer allows the automatic identification of the parameters of the R network model.
[0073] A partir de la troisième étape 203 du procédé 200, les étapes du procédé 200 ne sont pas effectuées en séquentiel, mais en parallèle via l’utilisation d’une couche multifonction. [0074] Une quatrième étape 204 du procédé 200 consiste à réaliser une itération. From the third step 203 of the method 200, the steps of the method 200 are not carried out sequentially, but in parallel via the use of a multifunction layer. A fourth step 204 of the method 200 consists in performing an iteration.
[0075] [Fig. 3] La figure 3 est un schéma synoptique représentant les sous- étapes 2040 à 2047 de la quatrième étape 204 du procédé 200 selon le premier aspect de l’invention. [0075] [Fig. 3] FIG. 3 is a block diagram showing the substeps 2040 to 2047 of the fourth step 204 of the method 200 according to the first aspect of the invention.
[0076] Une première sous-étape 2040 de la quatrième étape 204 consiste à ajouter une nouvelle couche 103 de neurones artificiels 101 dans le modèle R. A first sub-step 2040 of the fourth step 204 consists in adding a new layer 103 of artificial neurons 101 in the model R.
[0077] Une deuxième sous-étape 2041 de la quatrième étape 204 du procédé 200 consiste à calculer un ensemble de coefficients synaptiques W à partir de la base de données d’apprentissage (XA, YA) et de la distance d définie par le produit scalaire associée à la géométrie ad-hoc identifiée à la première étape 201. A second sub-step 2041 of the fourth step 204 of the method 200 consists in calculating a set of synaptic coefficients W from the training database (XA, YA) and the distance d defined by the product scalar associated with the ad-hoc geometry identified in the first step 201.
[0078] L’ensemble de coefficients synaptiques W est par exemple défini par : The set of synaptic coefficients W is for example defined by:
W = max(0, YA * K{d,Xv,XA) - s) W = max (0, Y A * K {d, X v , X A ) - s)
Avec s, un deuxième seuil prédéfini, K une fonction noyau et * l’opérateur de convolution. With s, a second predefined threshold, K a kernel function and * the convolution operator.
[0079] La formule définissant l’ensemble des coefficients synaptiques W illustre l’aspect multifonctionnel des couches. La densité de la fonction dense est illustrée par le fait que tous les coefficients de l’ensemble W d’une couche interviennent dans la définition de tous les autres et dans la définition de l’ensemble des coefficients de la couche suivante. The formula defining the set of synaptic coefficients W illustrates the multifunctional aspect of the layers. The density of the dense function is illustrated by the fact that all the coefficients of the set W of one layer are involved in the definition of all the others and in the definition of the set of coefficients of the next layer.
[0080] La fonction noyau K dépend de la distance d. The kernel function K depends on the distance d.
[0081 ] Le deuxième seuil peut être choisi par exemple entre 104 à 102. The second threshold can be chosen for example between 10 4 to 10 2 .
[0082] K est par exemple un noyau Gaussien, c’est-à-dire que K se définit dans ce cas comme :
Figure imgf000017_0001
[0083] Le noyau K peut être différent pour chaque itération, c’est-à-dire pour chaque réalisation de la quatrième étape 204 au cours du procédé 200.
K is for example a Gaussian kernel, that is to say that K is defined in this case as:
Figure imgf000017_0001
The core K can be different for each iteration, that is to say for each performance of the fourth step 204 during the method 200.
[0084] Des troisième sous-étape 2042, quatrième sous-étape 2043, cinquième sous-étape 2044 et sixième sous-étape 2045 sont ensuite réalisées pour chaque coefficient synaptique w non nul de l’ensemble de coefficients synaptiques W calculé à la deuxième sous-étape 2041. Third substep 2042, fourth substep 2043, fifth substep 2044 and sixth substep 2045 are then performed for each non-zero synaptic coefficient w of the set of synaptic coefficients W calculated in the second sub -step 2041.
[0085] La troisième sous-étape 2042 consiste à créer un premier scénario dans le modèle R, la quatrième sous-étape 2043 consiste à créer un deuxième scénario dans le modèle R, la cinquième sous-étape 2044 consiste à créer un troisième scénario dans le modèle R, et la sixième sous-étape 2045 consiste à créer un quatrième scénario dans le modèle R, chaque scénario correspondant à une possibilité d’affectation pour le coefficient synaptique w considéré entre la couche 103 ajoutée à la première sous-étape 2040 et la couche 103 précédente, se définissant comme la couche 103 précédant la couche 103 ajoutée dans le modèle R à la première sous-étape 2040. The third sub-step 2042 consists in creating a first scenario in the model R, the fourth sub-step 2043 consists in creating a second scenario in the model R, the fifth sub-step 2044 consists in creating a third scenario in the model R, and the sixth sub-step 2045 consists in creating a fourth scenario in the model R, each scenario corresponding to an assignment possibility for the synaptic coefficient w considered between the layer 103 added in the first sub-step 2040 and the previous layer 103, being defined as the layer 103 preceding the layer 103 added in the model R at the first sub-step 2040.
[0086] Le premier scénario correspond au cas où le coefficient synaptique w considéré est affecté à une synapse reliant un neurone artificiel 101 de la couche 103 précédente qui n’est encore relié à aucun neurone artificiel 101 de la couche 103 ajoutée et un neurone artificiel 101 de la couche 103 ajoutée qui n’est encore relié à aucun neurone artificiel 101 de la couche 103 précédente. The first scenario corresponds to the case where the synaptic coefficient w considered is assigned to a synapse connecting an artificial neuron 101 of the previous layer 103 which is not yet connected to any artificial neuron 101 of the added layer 103 and an artificial neuron 101 of the added layer 103 which is not yet connected to any artificial neuron 101 of the previous layer 103.
[0087] La troisième sous-étape 2042 consiste donc à ajouter un neurone artificiel 101 dans la couche 103 précédente 2042-1, à ajouter un neurone artificiel 101 dans la couche 103 ajoutée à la première sous-étape 2040, 2042-2 et à ajouter une synapse 102 à laquelle est affectée le coefficient synaptique w considéré reliant le neurone artificiel 101 de la couche 103 précédente précédemment ajouté et le neurone artificiel 101 de la couche 103 ajoutée à la première sous-étape 2040 précédemment ajouté 2042-3. The third sub-step 2042 therefore consists in adding an artificial neuron 101 in the previous layer 103 2042-1, in adding an artificial neuron 101 in the layer 103 added at the first sub-step 2040, 2042-2 and in add a synapse 102 to which is assigned the synaptic coefficient w considered connecting the artificial neuron 101 of the previous layer 103 previously added and the artificial neuron 101 of the layer 103 added to the first sub-step 2040 previously added 2042-3.
[0088] Le deuxième scénario correspond au cas où le coefficient synaptique w considéré est affecté à une synapse reliant un neurone artificiel 101 de la couche 103 précédente qui n’est encore relié à aucun neurone artificiel 101 de la couche 103 ajoutée et un neurone artificiel 101 de la couche 103 ajoutée à la première sous- étape 2040 existant, déjà relié à un autre neurone artificiel 101 de la couche 103 précédente. The second scenario corresponds to the case where the synaptic coefficient w considered is assigned to a synapse connecting an artificial neuron 101 of the previous layer 103 which is not yet connected to any artificial neuron 101 of the layer 103 added and an artificial neuron 101 of the layer 103 added to the first existing sub-step 2040, already connected to another artificial neuron 101 of the preceding layer 103.
[0089] La quatrième sous-étape 2043 consiste donc à ajouter un neurone artificiel 101 dans la couche 103 précédente 2043-1 , et à ajouter une synapse 102 à laquelle est affectée le coefficient synaptique w considéré reliant le neurone artificiel 101 de la couche 103 précédente précédemment ajouté et le neurone artificiel 101 de la couche 103 ajoutée existant 2043-2. The fourth sub-step 2043 therefore consists in adding an artificial neuron 101 in the previous layer 103 2043-1, and in adding a synapse 102 to which the considered synaptic coefficient w connecting the artificial neuron 101 of the layer 103 is assigned. previous previously added and existing added layer 103 artificial neuron 101 2043-2.
[0090] La quatrième sous-étape 2043 est réalisée pour chaque neurone artificiel 101 de la couche 103 ajoutée. The fourth sub-step 2043 is performed for each artificial neuron 101 of the added layer 103.
[0091] Le troisième scénario correspond au cas où le coefficient synaptique w considéré est affecté à une synapse reliant un neurone artificiel 101 de la couche 103 précédente existant, déjà relié à un autre neurone artificiel 101 de la couche 103 ajoutée et un neurone artificiel 101 de la couche 103 ajoutée qui n’est encore relié à aucun neurone artificiel 101 de la couche 103 précédente. The third scenario corresponds to the case where the synaptic coefficient w considered is assigned to a synapse connecting an existing artificial neuron 101 of the previous layer 103, already connected to another artificial neuron 101 of the added layer 103 and an artificial neuron 101 of the added layer 103 which is not yet connected to any artificial neuron 101 of the previous layer 103.
[0092] La cinquième sous-étape 2044 consiste donc à ajouter un neurone artificiel 101 dans la couche 103 ajoutée à la première sous-étape 2040, 2044-1 et à ajouter une synapse 102 à laquelle est affectée le coefficient synaptique w considéré reliant le neurone artificiel 101 de la couche 103 précédente existant et le neurone artificiel 101 de la couche 103 ajoutée à la première sous-étape 2040 précédemment ajouté 2044-2. The fifth sub-step 2044 therefore consists in adding an artificial neuron 101 in the layer 103 added to the first sub-step 2040, 2044-1 and in adding a synapse 102 to which is assigned the synaptic coefficient w considered connecting the artificial neuron 101 of the previous existing layer 103 and the artificial neuron 101 of the layer 103 added in the first sub-step 2040 previously added 2044-2.
[0093] La cinquième sous-étape 2044 est réalisée pour chaque neurone artificiel 101 de la couche 103 précédente. The fifth sub-step 2044 is performed for each artificial neuron 101 of the previous layer 103.
[0094] Le quatrième scénario correspond au cas où le coefficient synaptique w considéré est affecté à une synapse reliant un neurone artificiel 101 de la couche 103 précédente existant déjà relié à un autre neurone artificiel 101 de la couche 103 ajoutée à la première sous-étape 2040 et un neurone artificiel 101 de la couche 103 ajoutée à la première sous-étape 2040 existant, déjà relié à un autre neurone artificiel 101 de la couche 103 précédente. The fourth scenario corresponds to the case where the synaptic coefficient w considered is assigned to a synapse connecting an artificial neuron 101 of the previous layer 103 existing already connected to another artificial neuron 101 of the layer 103 added in the first sub-step 2040 and an artificial neuron 101 of the layer 103 added to the first existing sub-step 2040, already connected to another artificial neuron 101 of the preceding layer 103.
[0095] La sixième sous-étape 2045 consiste donc à ajouter une synapse 102 à laquelle est affectée le coefficient synaptique w considéré reliant le neurone artificiel 101 de la couche 103 précédente existant et le neurone artificiel 101 de la couche 103 ajoutée existant 2045-1. The sixth sub-step 2045 therefore consists in adding a synapse 102 to which the synaptic coefficient w considered connecting the artificial neuron is assigned. 101 of the existing previous layer 103 and the artificial neuron 101 of the existing added layer 103 2045-1.
[0096] La sixième sous-étape 2045 est réalisée pour chaque couple comprenant un neurone artificiel 101 de la couche 103 précédente et un neurone artificiel 101 de la couche 103 ajoutée qui ne sont pas déjà reliés par une synapse 102. The sixth sub-step 2045 is carried out for each pair comprising an artificial neuron 101 of the preceding layer 103 and an artificial neuron 101 of the added layer 103 which are not already connected by a synapse 102.
[0097] Ainsi, toutes les possibilités d’affectation sont traitées pour le coefficient synaptique w considéré. Thus, all the possibilities of assignment are processed for the synaptic coefficient w considered.
[0098] A l’issue de la sixième sous-étape 2045, le modèle R comporte donc quatre scénarii, chaque scénario du modèle R présentant des paramètres de réseau de neurones artificiels 100 différent. At the end of the sixth sub-step 2045, the model R therefore comprises four scenarios, each scenario of the model R having parameters of the artificial neural network 100 different.
[0099] Des septième sous-étape 2046 et huitième sous-étape 2047 sont réalisées pour chaque scénario précédemment créé. Seventh sub-step 2046 and eighth sub-step 2047 are performed for each scenario created previously.
[00100] La septième sous-étape 2046 du procédé 200 consiste à calculer une erreur d’apprentissage VA à partir de la base de données d’apprentissage (XA, YA) et du scénario du modèle R. The seventh sub-step 2046 of the method 200 consists in calculating a learning error VA from the learning database (XA, YA) and from the scenario of the model R.
[00101] L’erreur d’apprentissage VA se définit par exemple comme : [00101] The VA learning error is defined for example as:
VA = \\YA - R(Xa)\\ V A = \\ Y A - R (X a ) \\
Avec ||. Il, la norme euclidienne, par exemple. With ||. He, the Euclidean norm, for example.
[00102] La huitième sous-étape 2047 du procédé 200 consiste à calculer une erreur de validation Vv à partir de la base de données de validation (Xv, Yv) et du scénario du modèle R. The eighth sub-step 2047 of the method 200 consists in calculating a validation error Vv from the validation database (Xv, Yv) and from the scenario of the model R.
[00103] L’erreur de validation Vv se définit par exemple comme : [00103] The Vv validation error is defined for example as:
Vv = \\YV - R(XV)\\ V v = \\ Y V - R (X V ) \\
Avec ||. Il, la norme euclidienne par exemple. [00104] On vérifie alors si une première condition C1 est vérifiée, à savoir si l’erreur d’apprentissage VA est supérieure à un premier seuil prédéfini et si une deuxième condition C2 est vérifiée, à savoir si l’erreur de validation Vv décroît. With ||. He, the Euclidean norm for example. It is then checked whether a first condition C1 is verified, namely whether the learning error VA is greater than a first predefined threshold and whether a second condition C2 is verified, namely whether the validation error Vv decreases .
[00105] On entend par « la valeur décroît », que la valeur précédemment calculée est supérieure ou égale à la valeur actuelle. By "the value decreases" is meant that the previously calculated value is greater than or equal to the current value.
[00106] Le premier seuil peut être choisi par exemple entre 106 et 103. The first threshold can be chosen for example between 10 6 and 10 3 .
[00107] L’erreur d’apprentissage VA est initialisée à une valeur strictement supérieure au premier seuil. The VA learning error is initialized to a value strictly greater than the first threshold.
[00108] La vérification de la première condition C1 peut avoir lieu avant la réalisation de la huitième sous-étape 2047 dans un but d’optimisation algorithmique. The verification of the first condition C1 can take place before the performance of the eighth sub-step 2047 for the purpose of algorithmic optimization.
[00109] L’erreur de validation Vv est par exemple initialisée par : [00109] The Vv validation error is for example initialized by:
Vv (initial) = ||iV|| V v (initial) = || iV ||
Avec ||. Il, la norme euclidienne par exemple. With ||. He, the Euclidean norm for example.
[00110] Si la première condition C1 ou la deuxième condition C2 n’est pas vérifiée, le procédé 200 s’arrête. Dans ce cas, les paramètres du réseau de neurones artificiels 100, à savoir son nombre de couches 103, son nombre de neurones 101 par couche 103, son nombre de synapses 102 et ses coefficients synaptiques w, correspondent aux paramètres du scénario du modèle R ayant conduit à l’arrêt du procédé 200, c’est-à-dire n’ayant pas vérifié la première condition C1 et/ou la deuxième condition C2. [00110] If the first condition C1 or the second condition C2 is not verified, the method 200 stops. In this case, the parameters of the artificial neural network 100, namely its number of layers 103, its number of neurons 101 per layer 103, its number of synapses 102 and its synaptic coefficients w, correspond to the parameters of the scenario of the model R having leads to the stopping of the method 200, that is to say having not verified the first condition C1 and / or the second condition C2.
[00111] Si la première condition C1 et la deuxième condition C2 sont vérifiées, une nouvelle itération est réalisée, c’est-à-dire qu’une nouvelle quatrième étape 204 est réalisée pour chaque scénario du modèle R. If the first condition C1 and the second condition C2 are verified, a new iteration is performed, that is to say a new fourth step 204 is performed for each scenario of the model R.
[00112] Prenons l’exemple suivant pour illustrer la mise en oeuvre du procédé 200. [00113] A la troisième étape 203 du procédé 200, une première couche 103 est ajoutée au modèle R. Let us take the following example to illustrate the implementation of the method 200. In the third step 203 of the method 200, a first layer 103 is added to the model R.
[00114] A la quatrième étape 204 du procédé 200, une première itération est réalisée, en particulier une deuxième couche 103 est ajoutée au modèle R de réseau de neurones artificiels 100 à la première sous-étape 2040 et un premier ensemble de coefficients synaptiques W est calculé à la deuxième sous-étape 2041 , comprenant un premier coefficient synaptique w non nul et un deuxième coefficient synaptique w non nul. In the fourth step 204 of the method 200, a first iteration is performed, in particular a second layer 103 is added to the model R of artificial neural network 100 in the first sub-step 2040 and a first set of synaptic coefficients W is calculated in the second sub-step 2041, comprising a first non-zero synaptic coefficient w and a second non-zero synaptic coefficient w.
[00115] Pour le premier coefficient synaptique w non nul, la première couche 103 et la deuxième couche 103 ne contiennent aucun neurone artificiel 101 dans le modèle R. Ainsi, seul le premier scénario est possible pour le premier coefficient synaptique w et donc seule la troisième sous-étape 2042 est réalisée, c’est-à-dire qu’un neurone artificiel 101 est ajouté dans la première couche 103, un neurone artificiel 101 est ajouté dans la deuxième couche 103 et une synapse 102 affectée du premier coefficient synaptique w reliant les deux neurones artificiels 101 précédemment ajoutés est ajoutée. For the first non-zero synaptic coefficient w, the first layer 103 and the second layer 103 do not contain any artificial neuron 101 in the model R. Thus, only the first scenario is possible for the first synaptic coefficient w and therefore only the third substep 2042 is performed, i.e. an artificial neuron 101 is added in the first layer 103, an artificial neuron 101 is added in the second layer 103 and a synapse 102 affected by the first synaptic coefficient w connecting the two previously added artificial neurons 101 is added.
[00116] Pour le deuxième coefficient synaptique w non nul, la première couche 103 et la deuxième couche 103 contiennent chacune un neurone artificiel 101 dans le modèle R, déjà reliés par une synapse 102. Ainsi, seuls le premier scénario, le deuxième scénario et le troisième scénario sont possibles pour le deuxième coefficient synaptique w et donc seules la troisième sous-étape 2042, la quatrième sous-étape 2043 et la cinquième sous-étape 2044 sont réalisées. For the second non-zero synaptic coefficient w, the first layer 103 and the second layer 103 each contain an artificial neuron 101 in the model R, already connected by a synapse 102. Thus, only the first scenario, the second scenario and the third scenario is possible for the second synaptic coefficient w and therefore only the third substep 2042, the fourth substep 2043 and the fifth substep 2044 are carried out.
[00117] Lors de la troisième sous-étape 2042, dans le premier scénario du modèle R, un neurone artificiel 101 est ajouté dans la première couche 103, un neurone artificiel 101 est ajouté dans la deuxième couche 103 et une synapse 102 affectée du deuxième coefficient synaptique w reliant les deux neurones artificiels 101 précédemment ajoutés est ajouté. During the third sub-step 2042, in the first scenario of the model R, an artificial neuron 101 is added in the first layer 103, an artificial neuron 101 is added in the second layer 103 and a synapse 102 affected by the second synaptic coefficient w connecting the two artificial neurons 101 previously added is added.
[00118] Ainsi, à l’issue de la troisième sous-étape 2042, le premier scénario du modèle R comporte la première couche 103 avec deux neurones artificiels 101 et la deuxième couche 103 avec deux neurones artificiels 101 , chaque neurone artificiel 101 de la première couche étant connecté à un neurone artificiel 101 de la deuxième couche 103 différent, via une synapse 102. Thus, at the end of the third sub-step 2042, the first scenario of the model R comprises the first layer 103 with two artificial neurons 101 and the second layer 103 with two artificial neurons 101, each artificial neuron 101 of the first layer being connected to a different artificial neuron 101 of the second layer 103, via a synapse 102.
[00119] Comme la deuxième couche 103 comporte un unique neurone artificiel 103, lors de la quatrième sous-étape 2043, dans le deuxième scénario du modèle R, un neurone artificiel 101 est ajouté dans la première couche 103 et une synapse 102 affectée du deuxième coefficient synaptique w reliant le neurone artificiel 101 de la première couche 103 ajouté et le neurone artificiel 101 de la deuxième couche 103 est ajouté. As the second layer 103 comprises a single artificial neuron 103, during the fourth sub-step 2043, in the second scenario of the model R, an artificial neuron 101 is added in the first layer 103 and a synapse 102 affected by the second synaptic coefficient w connecting the artificial neuron 101 of the first layer 103 added and the artificial neuron 101 of the second layer 103 is added.
[00120] Ainsi, à l’issue de la quatrième sous-étape 2043, le deuxième scénario du modèle R comporte la première couche 103 avec deux neurones artificiels 101 et la deuxième couche 103 avec un neurone artificiel 101 , le neurone artificiel 101 de la deuxième couche 103 étant connecté à chaque neurone artificiel 101 de la première couche 103 via une synapse 102. Thus, at the end of the fourth sub-step 2043, the second scenario of the model R comprises the first layer 103 with two artificial neurons 101 and the second layer 103 with an artificial neuron 101, the artificial neuron 101 of the second layer 103 being connected to each artificial neuron 101 of the first layer 103 via a synapse 102.
[00121] Comme la première couche 103 comporte un unique neurone artificiel 103, lors de la cinquième sous-étape 2044, dans le troisième scénario du modèle R, un neurone artificiel 101 est ajouté dans la deuxième couche 103 et une synapseAs the first layer 103 comprises a single artificial neuron 103, during the fifth sub-step 2044, in the third scenario of the model R, an artificial neuron 101 is added in the second layer 103 and a synapse
102 affectée du deuxième coefficient synaptique w reliant le neurone artificiel 101 de la première couche 103 et le neurone artificiel 101 de la deuxième couche 103 ajouté, est ajouté. 102 assigned the second synaptic coefficient w connecting the artificial neuron 101 of the first layer 103 and the artificial neuron 101 of the second layer 103 added, is added.
[00122] Ainsi, à l’issue de la cinquième sous-étape 2044, le troisième scénario du modèle R comporte la première couche 103 avec un neurone artificiel 101 et la deuxième couche 103 avec deux neurones artificiels 101 , le neurone artificiel 101 de la première couche 103 étant connecté à chaque neurone artificiel 101 de la deuxième couche 103 via une synapse 102. [00122] Thus, at the end of the fifth sub-step 2044, the third scenario of the model R comprises the first layer 103 with an artificial neuron 101 and the second layer 103 with two artificial neurons 101, the artificial neuron 101 of the first layer 103 being connected to each artificial neuron 101 of second layer 103 via a synapse 102.
[00123] A la cinquième sous-étape 2046 du procédé 200, une erreur d’apprentissage VA est calculée pour chaque scénario du modèle R, à savoir pour le premier scénario, le deuxième scénario et le troisième scénario et à la sixième sous- étape 2047 du procédé 200, une erreur de validation Vv est calculée pour chaque scénario du modèle R. [00124] Dans notre exemple, pour chaque scénario, l’erreur d’apprentissage VA est supérieure au premier seuil et l’erreur de validation Vv est inférieure à la valeur précédente de l’erreur de validation Vv. Une nouvelle itération est donc réalisée, c’est-à-dire qu’une nouvelle quatrième étape 204 est réalisée, pour chaque scénario du modèle R. In the fifth sub-step 2046 of the method 200, a learning error VA is calculated for each scenario of the model R, namely for the first scenario, the second scenario and the third scenario and in the sixth sub-step 2047 of method 200, a validation error Vv is calculated for each scenario of the model R. In our example, for each scenario, the learning error VA is greater than the first threshold and the validation error Vv is less than the previous value of the validation error Vv. A new iteration is therefore carried out, i.e. a new fourth step 204 is carried out, for each scenario of the model R.
[00125] Considérons le troisième scénario du modèle R. Lors de la nouvelle quatrième étape 204, une troisième couche 103 est ajoutée au modèle R à la première sous-étape 2040 et un deuxième ensemble de coefficients synaptiques W est calculé à la deuxième sous-étape 2041 , comprenant un unique coefficient synaptique w. Consider the third scenario of the model R. During the new fourth step 204, a third layer 103 is added to the model R at the first substep 2040 and a second set of synaptic coefficients W is calculated at the second sub- step 2041, comprising a single synaptic coefficient w.
[00126] Comme la troisième couche 103 ne contient aucun neurone artificiel 101 dans le troisième scénario du modèle R, seuls le premier scénario et le troisième scénario sont possibles et donc seules la troisième sous-étape 2042, et la cinquième sous-étape 2044 sont réalisées. As the third layer 103 does not contain any artificial neuron 101 in the third scenario of the model R, only the first scenario and the third scenario are possible and therefore only the third sub-step 2042, and the fifth sub-step 2044 are carried out.
[00127] Lors de la troisième sous-étape 2042, dans le premier scénario du troisième scénario du modèle R, un neurone artificiel 101 est ajouté dans la deuxième couche 103, un neurone artificiel 101 est ajouté dans la troisième couche 103 et une synapse 102 affectée du coefficient synaptique w reliant les deux neurones artificiels 101 précédemment ajoutés est ajouté. During the third sub-step 2042, in the first scenario of the third scenario of the model R, an artificial neuron 101 is added in the second layer 103, an artificial neuron 101 is added in the third layer 103 and a synapse 102 assigned the synaptic coefficient w connecting the two artificial neurons 101 previously added is added.
[00128] Ainsi, à l’issue de la troisième sous-étape 2042, le premier scénario du troisième scénario du modèle R comporte la deuxième couche 103 avec trois neurones artificiels 101 et la troisième couche 103 avec un neurone artificiel 101 , le neurone artificiel 101 de la deuxième couche ajouté étant connecté au neurone artificiel 101 de la troisième couche 103, via une synapse 102. [00128] Thus, at the end of the third sub-step 2042, the first scenario of the third scenario of the model R comprises the second layer 103 with three artificial neurons 101 and the third layer 103 with an artificial neuron 101, the artificial neuron 101 of the second layer added being connected to the artificial neuron 101 of the third layer 103, via a synapse 102.
[00129] Comme la deuxième couche 103 comporte deux neurones artificiels 103, la cinquième sous-étape 2044 est réalisée pour chaque neurone artificiel 101 de la deuxième couche 103. As the second layer 103 comprises two artificial neurons 103, the fifth sub-step 2044 is carried out for each artificial neuron 101 of the second layer 103.
[00130] Ainsi, pour chaque neurone artificiel 101 de la deuxième couche 10, dans le troisième scénario du troisième scénario du modèle R, un neurone artificiel 101 est ajouté dans la troisième couche 103 et une synapse 102 affectée du deuxième coefficient synaptique w reliant le neurone artificiel 101 de la deuxième couche 103 considéré et le neurone artificiel 101 de la troisième couche 103 ajouté, est ajouté. [00131] Ainsi, à l’issue de la cinquième sous-étape 2044, le premier troisième scénario du troisième scénario du modèle R comporte la deuxième couche 103 avec un premier neurone artificiel 101 et un deuxième neurone artificiel 101 , et la troisième couche 103 avec un neurone artificiel 101 , le neurone artificiel 101 de la troisième couche 103 étant connecté au premier neurone artificiel 101 de la deuxième couche 103 via une synapse 102 et le deuxième troisième scénario du troisième scénario du modèle R comporte la deuxième couche 103 avec un premier neurone artificiel 101 et un deuxième neurone artificiel 101 , et la troisième couche 103 avec un neurone artificiel 101 , le neurone artificiel 101 de la troisième couche 103 étant connecté au deuxième neurone artificiel 101 de la deuxième couche 103 via une synapse 102. Thus, for each artificial neuron 101 of the second layer 10, in the third scenario of the third scenario of the model R, an artificial neuron 101 is added in the third layer 103 and a synapse 102 affected by the second synaptic coefficient w connecting the artificial neuron 101 of the second layer 103 considered and the artificial neuron 101 of the third layer 103 added, is added. Thus, at the end of the fifth sub-step 2044, the first third scenario of the third scenario of the model R comprises the second layer 103 with a first artificial neuron 101 and a second artificial neuron 101, and the third layer 103 with an artificial neuron 101, the artificial neuron 101 of the third layer 103 being connected to the first artificial neuron 101 of the second layer 103 via a synapse 102 and the second third scenario of the third scenario of the model R comprises the second layer 103 with a first artificial neuron 101 and a second artificial neuron 101, and the third layer 103 with an artificial neuron 101, the artificial neuron 101 of the third layer 103 being connected to the second artificial neuron 101 of the second layer 103 via a synapse 102.
[00132] A la cinquième sous-étape 2046 du procédé 200, une erreur d’apprentissage VA est calculée pour chaque scénario du troisième scénario du modèle R, à savoir pour le premier scénario, le premier troisième scénario et le deuxième troisième scénario et à la sixième sous-étape 2047 du procédé 200, une erreur de validation Vv est calculée pour chaque scénario du troisième scénario du modèle R. In the fifth sub-step 2046 of the method 200, a learning error VA is calculated for each scenario of the third scenario of the model R, namely for the first scenario, the first third scenario and the second third scenario and to the sixth sub-step 2047 of the method 200, a validation error Vv is calculated for each scenario of the third scenario of the model R.
[00133] Si pour au moins un des scénarii du modèle R, par exemple pour le premier scénario du troisième scénario du modèle R, l’erreur d’apprentissage VA est inférieure au premier seuil et/ou l’erreur de validation Vv est supérieure à la valeur précédente de l’erreur de validation Vv, le procédé 200 s’arrête. If for at least one of the scenarios of the model R, for example for the first scenario of the third scenario of the model R, the learning error VA is less than the first threshold and / or the validation error Vv is greater at the previous value of the validation error Vv, the method 200 stops.
[00134] Les paramètres du réseau de neurones artificiels 100 à générer sont alors les paramètres du premier scénario du troisième scénario du modèle R, à savoir une première couche 103 avec un neurone artificiel 101 , une deuxième couche 103 avec un premier neurone artificiel 101 , un deuxième neurone artificiel 101 , et un troisième neurone artificiel 101 , le neurone artificiel 101 de la première couche 103 étant connecté au premier neurone artificiel 101 de la deuxième couche 103 via une synapse 102 affecté du premier coefficient synaptique w non nul calculé à la deuxième sous-étape 2041 de la première itération et au deuxième neurone artificiel 101 de la deuxième couche 103 via une synapse 102 affecté du deuxième coefficient synaptique w non nul calculé à la deuxième sous-étape 2041 de la première itération, et le troisième neurone artificiel 101 de la deuxième couche 103 étant connecté au neurone artificiel 101 de la troisième couche 103 via une synapse 102 affecté du coefficient synaptique w non nul calculé à la deuxième sous-étape 2041 de la deuxième itération. The parameters of the artificial neural network 100 to be generated are then the parameters of the first scenario of the third scenario of the model R, namely a first layer 103 with an artificial neuron 101, a second layer 103 with a first artificial neuron 101, a second artificial neuron 101, and a third artificial neuron 101, the artificial neuron 101 of the first layer 103 being connected to the first artificial neuron 101 of the second layer 103 via a synapse 102 affected by the first non-zero synaptic coefficient w calculated at the second substep 2041 of the first iteration and to the second artificial neuron 101 of the second layer 103 via a synapse 102 affected by the second coefficient non-zero synaptic w calculated in the second substep 2041 of the first iteration, and the third artificial neuron 101 of the second layer 103 being connected to the artificial neuron 101 of the third layer 103 via a synapse 102 assigned the non-zero synaptic coefficient w calculated in the second sub-step 2041 of the second iteration.
[00135] Le réseau de neurones 100 dont l’architecture est fixée grâce aux paramètres précédemment calculées fonctionne alors comme un réseau de neurones 100 classique, par propagation des données entre ses couches 103. [00135] The neural network 100, the architecture of which is fixed using the previously calculated parameters, then operates like a conventional neural network 100, by propagating data between its layers 103.
[00136] La distance d associée à la géométrie ad-hoc pourra alors être utilisée dans les fonctions de transfert f du réseau de neurones 100. The distance d associated with the ad-hoc geometry can then be used in the transfer functions f of the neural network 100.
[00137] Le procédé 200 selon le premier aspect de l’invention est mis en oeuvre par ordinateur, lequel ordinateur comprend classiquement des moyens de calcul et de traitement du type microprocesseur. The method 200 according to the first aspect of the invention is implemented by computer, which computer conventionally comprises calculation and processing means of the microprocessor type.
[00138] L’ordinateur comprend par exemple au moins une unité de calcul de type CPU (de l’anglais Central Processing Unit) et/ou au moins une unité de calcul de type GPU (de l’anglais Graphics Processing Unit, un tel processeur permettant le calcul matriciel parallélisable), et/ou un processeur du type ASIC (de l’anglais application-specific integrated circuit) et/ou encore un FPGA (de l’anglais Field- Programmable Gâte Array) et ou encore processeur ARM (de l’anglais Advanced- RISC Machines), processeur RISC-V (de l’anglais Reduced Instruction Set Computing). The computer comprises for example at least one CPU type calculation unit (standing for Central Processing Unit) and / or at least one GPU type calculation unit (standing for Graphics Processing Unit, such processor allowing parallelizable matrix computation), and / or an ASIC type processor (standing for application-specific integrated circuit) and / or an FPGA (standing for Field-Programmable Gâte Array) and or even an ARM processor ( from English Advanced- RISC Machines), RISC-V processor (from English Reduced Instruction Set Computing).
[00139] L’ordinateur comprend également au moins un moyen de stockage de type mémoire flash lisible par cet ordinateur sur lequel est enregistré un programme d’ordinateur comprenant une pluralité d’instructions qui, lorsqu’elles sont exécutées par l’ordinateur, conduisent ce dernier à implémenter le ou les algorithmes définissant le procédé 200 de l’invention. The computer also comprises at least one flash memory type storage means readable by this computer on which is recorded a computer program comprising a plurality of instructions which, when executed by the computer, lead the latter to implement the algorithm or algorithms defining the method 200 of the invention.
[00140] Dans le cas où le procédé 200 est destiné à être utilisé en embarqué, l’ordinateur est par exemple un microcontrôleur contraint en termes de ressources, et en particulier de ressources de calcul, de ressources mémoire et d’énergie comme par exemple un Raspberry Pi ou Arduino. In the case where the method 200 is intended to be used on-board, the computer is for example a microcontroller constrained in terms of resources, and in particular computing resources, memory and energy resources such as for example a Raspberry Pi or Arduino.
[00141] Le procédé 200 selon le premier aspect de l’invention a été utilisé pour résoudre plusieurs problèmes d’apprentissage supervisé en embarqué, c’est-à-dire dans un environnement soumis à des contraintes de mémoire et de consommation d’énergie importantes. The method 200 according to the first aspect of the invention has been used to solve several problems of supervised learning on board, that is to say in an environment subject to constraints of memory and energy consumption important.
[00142] Le procédé 200 a plus particulièrement été utilisé dans les deux exemples suivants dans lesquels la base de données [X, Y] a été découpée en une base de données d’apprentissage [XA, YA] correspondant à 75% de la base de données [X, Y] et en une base de données de validation [Xv, Yv] correspondant à 25% de la base de données [X, Y]. The method 200 was more particularly used in the following two examples in which the database [X, Y] was split into a training database [XA, YA] corresponding to 75% of the base of data [X, Y] and in a validation database [Xv, Yv] corresponding to 25% of the database [X, Y].
[00143] Le premier exemple consiste à embarquer sur un engin motorisé comme par exemple un quad, un Raspberry Pi embarquant le procédé 200, interfacée avec la sortie d’une caméra temps réel acquérant des images basse définition, de taille 400x600 pixels, correspondant chacune à 240 koctets. The first example consists of boarding a motorized vehicle such as for example a quad, a Raspberry Pi embedding the method 200, interfaced with the output of a real-time camera acquiring low-definition images, of size 400 × 600 pixels, each corresponding to at 240 kbytes.
[00144] L’objectif est de détecter la présence d’obstacles dans les images acquises, c’est-à-dire d’affecter un label 1 aux images contenant au moins un obstacle et un label 0 aux images ne contenant pas d’obstacles. The objective is to detect the presence of obstacles in the images acquired, that is to say to assign a label 1 to the images containing at least one obstacle and a label 0 to the images not containing any obstacles.
[00145] La base de données [X, Y] comporte seulement une centaine d’images. La taille du réseau d’information convolutif généré automatiquement par le procédé 200 à l’aide de la base de données est de 2 mégaoctets. [00145] The database [X, Y] has only about a hundred images. The size of the convolutional information network automatically generated by the method 200 using the database is 2 megabytes.
[00146] Le réseau d’information convolutif permet d’obtenir un taux de réussite supérieur à 80% sur les images acquises par la caméra alors que les réseaux de neurones artificiels classiques ne dépassent pas 50% à cause de la faible qualité des images et de la quantité réduite d’images dans la base de données. The convolutional information network makes it possible to obtain a success rate of greater than 80% on the images acquired by the camera while conventional artificial neural networks do not exceed 50% because of the low quality of the images and the reduced amount of images in the database.
[00147] Le deuxième exemple consiste à embarquer sur un capteur basse fidélité en immersion pour des applications robotiques sous-marines, un Raspberry Pi embarquant le procédé 200. [00148] L’objectif est de générer en temps réel, à partir des informations fournies par le capteur basse fidélité, des informations qui seraient fournies par un capteur haute fidélité, beaucoup plus coûteux. The second example consists of taking a low fidelity sensor in immersion for underwater robotic applications, a Raspberry Pi embedding the method 200. The objective is to generate in real time, from the information supplied by the low fidelity sensor, information which would be provided by a high fidelity sensor, which is much more expensive.
[00149] Le capteur basse fidélité fournit pour une orientation donnée du robot par un vecteur réel de taille 3, un vecteur de réels de taille 16 comportant des estimations de l’accélération, du champ magnétique, de l’effet gyroscopique, de la profondeur et l’on veut générer un vecteur de variables de sortie de nombres réels de taille 8 correspondant aux poussées de 8 moteurs électriques pour diriger le robot dans une direction définie. The low-fidelity sensor provides for a given orientation of the robot by a real vector of size 3, a vector of reals of size 16 comprising estimates of the acceleration, of the magnetic field, of the gyroscopic effect, of the depth and we want to generate a vector of output variables of real numbers of size 8 corresponding to the thrusts of 8 electric motors to steer the robot in a defined direction.
[00150] La base de données [X, Y] comporte des vecteurs de variables de sortie obtenus par simulation. La taille du réseau d’information convolutif généré automatiquement par le procédé 200 à l’aide de la base de données est de 6 mégaoctets. The database [X, Y] comprises vectors of output variables obtained by simulation. The size of the convolutional information network automatically generated by the method 200 using the database is 6 megabytes.
[00151] Le réseau d’information convolutif permet de réduire l’erreur d’acquisition des capteurs basse fidélité de 95% à 5% en temps réel. [00151] The convolutional information network reduces the acquisition error of low-fidelity sensors from 95% to 5% in real time.
[00152] Le procédé 200 a également été utilisé pour classifier un jeu de données acquis par au moins un capteur, c’est-à-dire pour attribuer au jeu de données une classe parmi un ensemble de classes prédéfini, dans un procédé de classification, le procédé de classification étant embarqué sur un microcontrôleur lui-même embarqué sur le capteur ou connecté au capteur. Dans ce dernier cas, la connexion peut être filaire, par exemple via un bus, ou non filaire, par exemple via Bluetooth ou Wifi. The method 200 has also been used to classify a data set acquired by at least one sensor, that is to say to attribute to the data set a class among a set of predefined classes, in a classification method , the classification method being on board a microcontroller which is itself on board the sensor or connected to the sensor. In the latter case, the connection can be wired, for example via a bus, or wireless, for example via Bluetooth or Wifi.
[00153] [Fig. 4] La figure 4 est un schéma synoptique représentant les étapes 301 et 302 du procédé de classification 300. [00153] [Fig. 4] FIG. 4 is a block diagram showing the steps 301 and 302 of the classification method 300.
[00154] Le procédé de classification 300 comporte une première étape de détermination des paramètres d’un réseau de neurones artificiels 100. The classification method 300 includes a first step of determining the parameters of an artificial neural network 100.
[00155] Les paramètres du réseau de neurones artificiels 100 sont déterminés par le procédé 200, en utilisant une base de données comportant une pluralité de jeux de données acquis par le capteur, et pour chaque jeu de données, la classe associée au jeu de données parmi l’ensemble de classes. The parameters of the artificial neural network 100 are determined by the method 200, using a database comprising a plurality of sets of data acquired by the sensor, and for each data set, the class associated with the data set among the set of classes.
[00156] La base de données pourrait également comporter au moins un jeu de données acquis par un autre capteur de même type que le capteur considéré. [00156] The database could also include at least one data set acquired by another sensor of the same type as the considered sensor.
[00157] Une deuxième étape 302 du procédé de classification 300 consiste alors à utiliser un réseau de neurones artificiels avec les paramètres déterminés à la première étape 301 , sur le jeu de données acquis pour obtenir la classe associée. A second step 302 of the classification method 300 then consists in using an artificial neural network with the parameters determined in the first step 301, on the acquired data set to obtain the associated class.
[00158] Le jeu de données classé peut ensuite être ajouté à la base de données pour être utilisé pour classer un nouveau jeu de données acquis ultérieurement, après un apprentissage incrémental et personnalisé en embarqué. The classified data set can then be added to the database to be used to classify a new data set acquired subsequently, after an incremental and personalized on-board learning.
[00159] Dans un premier exemple d’application, le procédé de classification 300 est un procédé d’identification vocale d’un individu. Dans ce cas, le capteur est un microphone, le jeu de données est un jeu de données acquis par un microphone, par exemple les valeurs moyennes des coefficients cepstraux selon l’échelle de Mel d’un signal sonore, et chaque classe correspond à un individu. La base de données comporte alors au moins un jeu de données pour chaque individu dont on veut pouvoir identifier la voix. In a first example of application, the classification method 300 is a method of voice identification of an individual. In this case, the sensor is a microphone, the data set is a data set acquired by a microphone, for example the average values of the cepstral coefficients according to the Mel scale of a sound signal, and each class corresponds to a individual. The database then comprises at least one data set for each individual whose voice we want to be able to identify.
[00160] Dans un deuxième exemple d’application, le procédé de classification 300 est un procédé de détection d’une activité humaine. Dans ce cas, le capteur comporte au moins une centrale inertielle, le jeu de données est un jeu de données acquis par une centrale inertielle, par exemple une accélération et une vitesse angulaire, et chaque classe correspond à une activité humaine, par exemple repos, marche, course, montée d’escaliers. La base de données comporte alors au moins un jeu de données pour chaque activité humaine que l’on veut pouvoir détecter. [00160] In a second application example, the classification method 300 is a method for detecting human activity. In this case, the sensor comprises at least one inertial unit, the data set is a set of data acquired by an inertial unit, for example an acceleration and an angular speed, and each class corresponds to a human activity, for example rest, walking, running, climbing stairs. The database then includes at least one data set for each human activity that we want to be able to detect.
[00161] [Fig. 5] La figure 5 illustre la matrice de confusion obtenue dans le cas où on considère quatre classes d’activité humaine : la première classe correspondant au repos, la deuxième classe correspondant à la marche, la troisième classe correspondant à la course et la quatrième classe correspondant à la montée d’escaliers. [00161] [Fig. 5] Figure 5 illustrates the confusion matrix obtained in the case where we consider four classes of human activity: the first class corresponding to rest, the second class corresponding to walking, the third class. corresponding to the race and the fourth class corresponding to the climb of stairs.
[00162] L’échelle de couleur correspond au nombre de jeux de données de la base de données de test affectées à chacune des classes par la classification. [00163] On constate que pour chaque classe, la précision de classification est supérieure à 94%, pour une empreinte mémoire de 15 KB pour la première étape 301 , de 12KB pour la deuxième étape 302, de 8KB pour le stockage des paramètres du réseau de neurones artificiels et de 5KB pour le stockage de la base de données, le procédé 300 étant réalisé en 1.1 seconde. [00162] The color scale corresponds to the number of data sets in the test database assigned to each of the classes by the classification. It can be seen that for each class, the classification accuracy is greater than 94%, for a memory footprint of 15 KB for the first step 301, 12 KB for the second step 302, 8 KB for the storage of the network parameters of artificial neurons and of 5KB for the storage of the database, the process 300 being carried out in 1.1 seconds.
[00164] Dans un cas d’application du deuxième exemple d’application, le procédé de classification 300 est un procédé de détection de courses dans lequel chaque classe correspond à un type de courses, par exemple sprint, jogging. [00165] Dans un troisième exemple d’application, le procédé de classification 300 est un procédé de détection faciale. Dans ce cas, le capteur comporte au moins une caméra, le jeu de données est un jeu de données acquis par une caméra, par exemple une image, et chaque classe correspond à un individu. La base de données comporte alors au moins un jeu de données pour chaque individu que l’on veut pouvoir identifier. [00164] In an application case of the second application example, the classification method 300 is a race detection method in which each class corresponds to a type of races, for example sprinting, jogging. In a third application example, the classification method 300 is a facial detection method. In this case, the sensor comprises at least one camera, the data set is a data set acquired by a camera, for example an image, and each class corresponds to an individual. The database then includes at least one data set for each individual that we want to be able to identify.

Claims

REVENDICATIONS
[Revendication 1] Procédé (200) mis en oeuvre par ordinateur de détermination automatique de paramètres d’un réseau de neurones artificiels (100) à partir d’une base de données [X, Y], un réseau de neurones artificiels (100) comportant au moins une première couche (103) et une deuxième couche (103) comprenant chacune au moins un neurone artificiel (101), chaque neurone artificiel (101) d’une première couche (103) étant connecté à un neurone artificiel (101) d’une deuxième couche (103) via une synapse (102) à laquelle est affecté un coefficient synaptique, un réseau de neurones artificiels (100) ayant pour paramètre un nombre de couches (103), un nombre de neurones artificiels (101) par couche (103), un nombre de synapses (102) et pour chaque synapse (102), un coefficient synaptique, le procédé (200) étant caractérisé en ce qu’il comporte les étapes suivantes : [Claim 1] Computer-implemented method (200) of automatically determining parameters of an artificial neural network (100) from a database [X, Y], an artificial neural network (100) comprising at least a first layer (103) and a second layer (103) each comprising at least one artificial neuron (101), each artificial neuron (101) of a first layer (103) being connected to an artificial neuron (101) a second layer (103) via a synapse (102) to which a synaptic coefficient is assigned, an artificial neural network (100) having as parameter a number of layers (103), a number of artificial neurons (101) per layer (103), a number of synapses (102) and for each synapse (102), a synaptic coefficient, the method (200) being characterized in that it comprises the following steps:
- Choix d’une géométrie ad hoc en fonction de la base de données [X, Y] (201 ) ; - Choice of an ad hoc geometry according to the database [X, Y] (201);
- Séparation de la base de données [X, Y] en une base de données d’apprentissage [XA, YA] et une base de données de validation [Xv, Yv] (202) ; - Separation of the database [X, Y] into a learning database [XA, YA] and a validation database [Xv, Yv] (202);
- Création d’un modèle R de réseau de neurones artificiels comprenant une première couche (103, 203) ; - Creation of an R model of an artificial neural network comprising a first layer (103, 203);
- Réalisation d’une itération (204) comportant les étapes suivantes : o Ajout d’une nouvelle couche (103) dans le modèle R (2040) ; o Calcul d’un ensemble de coefficients synaptiques W à partir de la base de données d’apprentissage [XA, YA] et d’une distance d définie à partir d’un produit scalaire associé à la géométrie ad- hoc (2041) ; o Pour chaque coefficient synaptique non nul de l’ensemble de coefficients synaptiques W : - Realization of an iteration (204) comprising the following steps: o Addition of a new layer (103) in the R model (2040); o Calculation of a set of synaptic coefficients W from the learning database [XA, YA] and a distance d defined from a dot product associated with the ad hoc geometry (2041); o For each non-zero synaptic coefficient of the set of synaptic coefficients W:
• Création d’un premier scénario dans le modèle R (2042) en réalisant les étapes suivantes : • Creation of a first scenario in the model R (2042) by carrying out the following steps:
Ajout d’un neurone artificiel (101) dans la couche (103) précédente, se définissant comme la couche (103) précédant la nouvelle couche dans le modèle R (103, 2042-1) ; Ajout d’un neurone artificiel (101) dans la nouvelle couche (103, 2042-2) ; Addition of an artificial neuron (101) in the previous layer (103), defining itself as the layer (103) preceding the new layer in the model R (103, 2042-1); Addition of an artificial neuron (101) in the new layer (103, 2042-2);
Ajout d’une synapse (102) à laquelle est affectée le coefficient synaptique, connectée au neurone artificiel (101) de la couche (103) précédente ajouté et au neurone artificiel (101) de la nouvelle couche (103) ajouté (2042-3) ; Addition of a synapse (102) to which the synaptic coefficient is assigned, connected to the artificial neuron (101) of the previous layer (103) added and to the artificial neuron (101) of the new layer (103) added (2042- 3);
• Pour chaque neurone artificiel (101) de la nouvelle couche (103), création d’un deuxième scénario dans le modèle R (2043) en réalisant les étapes suivantes : • For each artificial neuron (101) of the new layer (103), creation of a second scenario in the R model (2043) by carrying out the following steps:
Ajout d’un neurone artificiel (101) dans la couche (103) précédente (2043-1) ; Addition of an artificial neuron (101) in the previous layer (103) (2043-1);
Ajout d’une synapse (102) à laquelle est affectée le coefficient synaptique, connectée au neurone artificiel (101) de la couche (103) précédente ajouté et au neurone artificiel (101) de la nouvelle couche (103, 2043-2) ; Addition of a synapse (102) to which the synaptic coefficient is assigned, connected to the artificial neuron (101) of the previous layer (103) added and to the artificial neuron (101) of the new layer (103, 2043-2) ;
• Pour chaque neurone artificiel (101) de la couche (103) précédente, création d’un troisième scénario dans le modèle R (2044) en réalisant les étapes suivantes : • For each artificial neuron (101) of the previous layer (103), creation of a third scenario in the R model (2044) by carrying out the following steps:
Ajout d’un neurone artificiel (101) dans la nouvelle couche (103, 2044-1) ; Addition of an artificial neuron (101) in the new layer (103, 2044-1);
Ajout d’une synapse (102) à laquelle est affectée le coefficient synaptique, connectée au neurone artificiel (101) de la nouvelle couche (103) ajouté et au neurone artificiel (101) de la couche (103) précédente (2044-2) ; Addition of a synapse (102) to which the synaptic coefficient is assigned, connected to the artificial neuron (101) of the new layer (103) added and to the artificial neuron (101) of the previous layer (103) (2044-2) );
• Pour chaque couple comprenant un neurone artificiel (101) de la couche (103) précédente et un neurone artificiel (101) de la nouvelle couche (103) non reliés entre eux par une synapse (102), création d’un quatrième scénario dans le modèle R (2045) en ajoutant une synapse (102) à laquelle est affectée le coefficient synaptique, connectée au neurone artificiel (101) de la couche (103) précédente du couple et au neurone artificiel (101 ) de la nouvelle couche (103) du couple (2045-1 ) ; • For each pair comprising an artificial neuron (101) from the previous layer (103) and an artificial neuron (101) from the new layer (103) not linked to each other by a synapse (102), creation of a fourth scenario in the R model (2045) by adding a synapse (102) to which the synaptic coefficient is assigned, connected to the artificial neuron (101) of the previous layer (103) of the couple and to the artificial neuron (101) of the new layer (103) of the couple (2045-1);
- Pour chaque scénario ajouté dans le modèle R : o Calcul d’une erreur d’apprentissage VA à partir de la base de données d’apprentissage [XA, YA] et du scénario du modèle R (2046) ; o Calcul d’une erreur de validation Vv à partir de la base de données de validation [Xv, Yv] et du scénario du modèle R (2047) ; - For each scenario added to the R model: o Calculation of a VA learning error from the learning database [XA, YA] and the R model scenario (2046); o Calculation of a validation error Vv from the validation database [Xv, Yv] and the scenario of the model R (2047);
• Si une première condition (C1 ) selon laquelle l’erreur d’apprentissage VA est supérieure à un premier seuil n’est pas vérifiée et/ou si une deuxième condition (C2) selon laquelle l’erreur de validation Vv décroît n’est pas vérifiée, arrêt du procédé (200) ; • If a first condition (C1) according to which the learning error VA is greater than a first threshold is not verified and / or if a second condition (C2) according to which the validation error Vv decreases is not not verified, process stop (200);
- Si la première condition (C1 ) et la deuxième condition (C2) sont vérifiées pour chaque scénario ajouté, réalisation d’une nouvelle itération (204) pour chaque scénario du modèle R ; les paramètres du réseau de neurones artificiels (100) correspondant aux paramètres du scénario du modèle R n’ayant pas vérifié la première condition (C1 ) et/ou la deuxième condition (C2). - If the first condition (C1) and the second condition (C2) are verified for each scenario added, carrying out a new iteration (204) for each scenario of the model R; the parameters of the artificial neural network (100) corresponding to the parameters of the scenario of the model R not having satisfied the first condition (C1) and / or the second condition (C2).
[Revendication 2] Procédé (200) selon la revendication 1 , caractérisé en ce que la géométrie ad hoc est une géométrie Riemannienne. [Claim 2] A method (200) according to claim 1, characterized in that the ad hoc geometry is a Riemannian geometry.
[Revendication 3] Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que l’erreur d’apprentissage VA est définie par : [Claim 3] A method (200) according to any one of the preceding claims, characterized in that the VA learning error is defined by:
VA = Il ¼ - *(¾) Il V A = Il ¼ - * (¾) Il
Avec ||. Il, la norme euclidienne. With ||. He, the Euclidean norm.
[Revendication 4] Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que l’erreur de validation Vv est définie par : [Claim 4] A method (200) according to any one of the preceding claims, characterized in that the validation error Vv is defined by:
Vv = \\YV - R(XV)\\ V v = \\ Y V - R (X V ) \\
Avec ||. Il, la norme euclidienne. With ||. He, the Euclidean norm.
[Revendication 5] Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que la distance d se définit comme :
Figure imgf000034_0001
[Claim 5] A method (200) according to any one of the preceding claims, characterized in that the distance d is defined as:
Figure imgf000034_0001
Avec n, la dimension du vecteur ou de l’ensemble de vecteurs d’entrée X, p une valeur réelle non nulle ou un vecteur de valeurs réelles non nulles et M la matrice d’adaptation correspondant à la géométrie ad hoc. With n, the dimension of the vector or set of input vectors X, p a non-zero real value or a vector of non-zero real values and M the adaptation matrix corresponding to the ad hoc geometry.
[Revendication 6] Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que l’ensemble de coefficients synaptiques W est défini par : [Claim 6] A method (200) according to any one of the preceding claims, characterized in that the set of synaptic coefficients W is defined by:
W = max(0, YA * K{d,Xv,XA) - s) W = max (0, Y A * K {d, X v , X A ) - s)
Avec K une fonction noyau et s un deuxième seuil. With K a kernel function and s a second threshold.
[Revendication 7] Procédé (200) selon la revendication 6, caractérisé en ce que la fonction noyau est de type Gaussien. [Claim 7] A method (200) according to claim 6, characterized in that the kernel function is of the Gaussian type.
[Revendication 8] Procédé (200) selon l’une quelconque des revendications 6 ou 7, caractérisé en ce que la fonction noyau dépend de l’itération. [Claim 8] A method (200) according to any one of claims 6 or 7, characterized in that the kernel function depends on the iteration.
[Revendication 9] Microcontrôleur caractérisé en ce qu’il comporte un calculateur configuré pour mettre en oeuvre le procédé (200) selon l’une quelconque des revendications précédentes. [Claim 9] Microcontroller characterized in that it comprises a computer configured to implement the method (200) according to any one of the preceding claims.
[Revendication 10] Produit-programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par ordinateur, conduisent celui-ci à mettre en oeuvre les étapes du procédé (200) selon l’une quelconque des revendications 1 à 8. [Claim 10] A computer program product comprising instructions which, when the program is executed by a computer, lead the latter to implement the steps of the method (200) according to any one of claims 1 to 8.
[Revendication 11] Support d’enregistrement lisible par ordinateur, sur lequel est enregistré le produit-programme d’ordinateur selon la revendication 10. [Claim 11] A computer readable recording medium, on which is recorded the computer program product according to claim 10.
[Revendication 12] Procédé de classification d’un jeu de données acquis par un capteur utilisant un microcontrôleur, comportant les étapes suivantes mis en oeuvre par le microcontrôleur : [Claim 12] A method of classifying a data set acquired by a sensor using a microcontroller, comprising the following steps implemented by the microcontroller:
- une étape de détermination des paramètres d’un réseau de neurones artificiels comportant les étapes du procédé (200) selon l’une quelconque des revendications 1 à 8, pour une base de données comportant pour chaque jeu données d’une pluralité de jeux de données acquis par le capteur, la classe associée parmi un ensemble de classes prédéfini ; - a step of determining the parameters of an artificial neural network comprising the steps of the method (200) according to any one of claims 1 to 8, for a database comprising, for each data set, a plurality of sets of data. data acquired by the sensor, the associated class from among a set of predefined classes;
- une étape d’utilisation du réseau de neurones artificiels avec les paramètres précédemment déterminés, sur le jeu de données acquis pour obtenir la classe associée. - a step of using the artificial neural network with the previously determined parameters, on the acquired data set to obtain the associated class.
[Revendication 13] Procédé d’identification vocale d’un individu comportant les étapes du procédé de classification selon la revendication 12 pour un jeu de données acquis par au moins un microphone, chaque classe correspondant à un individu. [Claim 13] A method of voice identification of an individual comprising the steps of the classification method according to claim 12 for a data set acquired by at least one microphone, each class corresponding to an individual.
[Revendication 14] Procédé de détection d’une activité humaine comportant les étapes du procédé de classification selon la revendication 12 pour un jeu de données acquis par au moins une centrale inertielle, chaque classe correspondant à une activité humaine. [Claim 14] A method of detecting human activity comprising the steps of the classification method according to claim 12 for a data set acquired by at least one inertial unit, each class corresponding to human activity.
[Revendication 15] Procédé de détection faciale comportant les étapes du procédé de classification selon la revendication 12 pour une image acquise par au moins une caméra, chaque classe correspondant à un individu. [Claim 15] A facial detection method comprising the steps of the classification method according to claim 12 for an image acquired by at least one camera, each class corresponding to an individual.
PCT/EP2020/083594 2019-11-27 2020-11-27 Method for automatically determining parameters of an artificial neural network and microcontroller for implementing the method WO2021105332A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR1913334 2019-11-27
FR1913334A FR3103600B1 (en) 2019-11-27 2019-11-27 METHOD FOR AUTOMATIC DETERMINATION OF PARAMETERS OF AN ARTIFICIAL NEURON NETWORK AND MICROCONTROLLER FOR IMPLEMENTING THE METHOD

Publications (1)

Publication Number Publication Date
WO2021105332A1 true WO2021105332A1 (en) 2021-06-03

Family

ID=69700098

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/083594 WO2021105332A1 (en) 2019-11-27 2020-11-27 Method for automatically determining parameters of an artificial neural network and microcontroller for implementing the method

Country Status (2)

Country Link
FR (1) FR3103600B1 (en)
WO (1) WO2021105332A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007056803A1 (en) * 2005-11-15 2007-05-24 Bernadette Garner Method for training neural networks
WO2019211367A1 (en) * 2018-05-02 2019-11-07 Dreamquark Sas Method for automatically generating artificial neural networks and method for assessing an associated risk

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007056803A1 (en) * 2005-11-15 2007-05-24 Bernadette Garner Method for training neural networks
WO2019211367A1 (en) * 2018-05-02 2019-11-07 Dreamquark Sas Method for automatically generating artificial neural networks and method for assessing an associated risk

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RAJESH PAREKH ET AL: "Constructive Neural-Network Learning Algorithms for Pattern Classification", IEEE TRANSACTIONS ON NEURAL NETWORKS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 11, no. 2, 1 January 2000 (2000-01-01), XP011039451, ISSN: 1045-9227 *
ZHANG B-T ED - INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS: "AN INCREMENTAL LEARNING ALGORITHM THAT OPTIMIZES NETWORK SIZE AND SAMPLE SIZE IN ONE TRAIL", INTERNATIONAL CONFERENCE ON NEURAL NETWORKS/ WORLD CONGRESS ON COMPUTATIONAL INTELLIGENCE. ORLANDO, JUNE 27 - 29, 1994; [PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON NEURAL NETWORKS (ICNN)], NEW YORK, IEEE, US, vol. 1, 27 June 1994 (1994-06-27), pages 215 - 220, XP000510407, ISBN: 978-0-7803-1902-8 *

Also Published As

Publication number Publication date
FR3103600A1 (en) 2021-05-28
FR3103600B1 (en) 2023-04-14

Similar Documents

Publication Publication Date Title
EP2696344B1 (en) Method and system for detecting acoustic events in a given environment
JP6859332B2 (en) Selective backpropagation
EP0624847B1 (en) Device and method to generate an approximating function
US11507829B2 (en) Greedy approach for obtaining an artificial intelligence model in a parallel configuration
EP3953662B1 (en) Method for defining a path
CN111368973B (en) Method and apparatus for training a super network
EP0372613B1 (en) Process for the backpropagation of errors and neuronal network structure
FR3088463A1 (en) METHOD OF CONSTRUCTING A NEURON ARRAY FOR THE SIMULATION OF REAL SYSTEMS
FR2944125A1 (en) METHOD FOR IDENTIFYING AERODYNAMIC MODELS FOR AIRCRAFT SIMULATION METHOD
US10832036B2 (en) Meta-learning for facial recognition
CN113361645A (en) Target detection model construction method and system based on meta-learning and knowledge memory
KR102402194B1 (en) Deep learning based end-to-end o-ring defect inspection method
WO2021105332A1 (en) Method for automatically determining parameters of an artificial neural network and microcontroller for implementing the method
WO2022008605A1 (en) Electronic device and method for processing data based on reversible generative networks, associated electronic detection system and associated computer program
EP3660748A1 (en) Method for analyzing a set of parameters of a neural network in order to obtain a technical improvement, for example a memory gain
EP1525520A2 (en) Method for determining a value given to different parameters of a system
CA2709180C (en) Methods for updating and training for a self-organising card
FR3094104A1 (en) Method and device for determining the overall memory size of a global memory area allocated to data from a neural network taking into account its topology
EP3502904B1 (en) Method for improving the execution time of a computer application
US20220092404A1 (en) Neural network selection
FR3080932A1 (en) AUTOMATIC GENERATION METHOD OF ARTIFICIAL NEURON NETWORKS
CN114997401B (en) Adaptive inference acceleration method, apparatus, computer device, and storage medium
WO2023126420A1 (en) Method for characterizing the movement of mobile entities and associated computer program product
FR3118503A1 (en) Data abnormality detection method and device
EP4012619A1 (en) Method for compressing an artificial neural network

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20812035

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20812035

Country of ref document: EP

Kind code of ref document: A1