FR3103600A1 - Procede de determination automatique de parametres d’un reseau de neurones artificiels et microcontroleur pour la mise en œuvre du procede - Google Patents

Procede de determination automatique de parametres d’un reseau de neurones artificiels et microcontroleur pour la mise en œuvre du procede Download PDF

Info

Publication number
FR3103600A1
FR3103600A1 FR1913334A FR1913334A FR3103600A1 FR 3103600 A1 FR3103600 A1 FR 3103600A1 FR 1913334 A FR1913334 A FR 1913334A FR 1913334 A FR1913334 A FR 1913334A FR 3103600 A1 FR3103600 A1 FR 3103600A1
Authority
FR
France
Prior art keywords
neural network
database
layer
artificial neural
validation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1913334A
Other languages
English (en)
Other versions
FR3103600B1 (fr
Inventor
Bijan MOHAMMADI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Centre National de la Recherche Scientifique CNRS
Universite de Montpellier I
Universite de Montpellier
Original Assignee
Centre National de la Recherche Scientifique CNRS
Universite de Montpellier I
Universite de Montpellier
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Centre National de la Recherche Scientifique CNRS, Universite de Montpellier I, Universite de Montpellier filed Critical Centre National de la Recherche Scientifique CNRS
Priority to FR1913334A priority Critical patent/FR3103600B1/fr
Priority to PCT/EP2020/083594 priority patent/WO2021105332A1/fr
Publication of FR3103600A1 publication Critical patent/FR3103600A1/fr
Application granted granted Critical
Publication of FR3103600B1 publication Critical patent/FR3103600B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)

Abstract

PROCEDE DE DETERMINATION AUTOMATIQUE DE PARAMETRES D’UN RESEAU DE NEURONES ARTIFICIELS ET MICROCONTROLEUR POUR LA MISE EN ŒUVRE DU PROCEDE Un aspect de l’invention concerne un procédé (200) de détermination automatique de paramètres d’un réseau de neurones, comportant les étapes suivantes : Identification d’une géométrie ad hoc à une base de données (201) ;Pour chaque donnée d’une base de données d’apprentissage :Ajout d’une couche dans un modèle R (203) ;Pour chaque donnée d’une base de données de validation :Calcul d’un coefficient synaptique (204) et ajout d’une synapse dans le modèle R (205) ;Calcul d’une erreur d’apprentissage (206) et d’une erreur de validation (207) ;Arrêt du procédé (200) si l’erreur d’apprentissage est supérieure à un seuil et/ou si l’erreur de validation croît ; le nombre de couches du réseau correspondant au nombre de couches du modèle R et le nombre de synapses de réseau au nombre de coefficients synaptiques non nuls du modèle R. Figure à publier avec l’abrégé : Figure 2

Description

PROCEDE DE DETERMINATION AUTOMATIQUE DE PARAMETRES D’UN RESEAU DE NEURONES ARTIFICIELS ET MICROCONTROLEUR POUR LA MISE EN ŒUVRE DU PROCEDE
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.
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 et un support d’enregistrement pour la mise en œuvre du procédé.
ARRIERE-PLAN TECHNOLOGIQUE DE L’INVENTION
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.
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.
Classiquement, une fois que l’architecture du réseau de neurones artificiels est fixée, c’est-à-dire son nombre de couches et son nombre de neurones ou 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.
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.
De plus, il n’existe pas à ce jour de méthode permettant de déterminer automatiquement le nombre de couches 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.
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 synapses et ses coefficients synaptiques, dans un environnement embarqué, c’est-à-dire dans un environnement contraint en termes de ressources.
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é est appelé réseau d’information convolutif.
Un premier aspect de l’invention concerne un procédé mis en œuvre 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 w, un réseau de neurones artificiels ayant pour paramètre un nombre de couches, un nombre de synapses et pour chaque synapse, un coefficient synaptique w, le procédé comportant les étapes suivantes:
  • Identification d’une géométrie ad hoc à partir de la base de données [X, Y] et détermination d’une matrice d’adaptation M correspondant à la géométrie ad hoc ;
  • 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] ;
  • Pour chaque donnée de la base de données d’apprentissage [XA, YA]:
    • Ajout d’une couche de neurones artificiels dans un modèle R de réseau de neurones artificiels ;
    • Pour chaque donnée de la base de données de validation [XV, YV]:
      • Calcul d’un coefficient synaptique w à partir de la donnée de la base de données d’apprentissage [XA, YA], de la donnée de la base de données de validation [XV, YV] et d’une distance d définie à partir de la matrice d’adaptation M;
      • Ajout, dans le modèle R de réseau de neurones artificiels, d’une synapse connectée à la couche ajoutée, à laquelle est affecté le coefficient synaptique w ;
      • Calcul d’une erreur d’apprentissage VAà partir de la donnée de la base de données d’apprentissage [XA, YA] et du modèle R de réseau de neurones artificiels ;
      • Calcul d’une erreur de validation VVà partir de la donnée de la base de données de validation [XV, YV] et du modèle R de réseau de neurones artificiels ;
      • Si une première condition selon laquelle l’erreur d’apprentissage VAest supérieure à un premier seuiln’est pas vérifiée et/ou si une deuxième condition selon laquelle l’erreur de validation VVdécroîtn’est pas vérifiée, arrêt du procédé ;
le nombre de couches du réseau de neurones artificiels correspondant au nombre de couches dans le modèle R de réseau de neurones artificiels et le nombre de synapses du réseau de neurones artificiels correspondant au nombre de synapses ayant un coefficient synaptique w non nul dans le modèle R de réseau de neurones artificiels.
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 in fine le 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 les coefficients synaptiques sont calculés pour chaque couche. 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. 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.
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.
Selon une variante de réalisation, la géométrie ad hoc est une géométrie Riemannienne.
Selon une variante de réalisation compatible avec la variante de réalisation précédente, l’erreur d’apprentissage VAest définie par: Avec , la norme euclidienne.
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.
Selon une variante de réalisation compatible avec les variantes de réalisation précédentes, l’erreur de validation VVest définie par: Avec , la norme euclidienne.
Ainsi, l’erreur de validation est représentative du sur-apprentissage.
Selon une variante de réalisation compatible avec les variantes de réalisation précédentes, chaque coefficient synaptique w 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: Avec p, un nombre entier.
Selon une sous-variante de réalisation de la variante de réalisation précédente, un coefficient synaptique w est défini par: Avec s un deuxième seuil.
Ainsi, les coefficients synaptiques représentent l’influence des données d’apprentissage YAaux points de validation XVà travers un opérateur de convolution et sont fonction de la géométrie ad-hoc.
Selon une sous-variante de réalisation de la sous-variante de réalisation précédente, la fonction noyau est de type Gaussien.
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.
Un second aspect de l’invention concerne un microcontrôleur comportant un calculateur configuré pour mettre en œuvre le procédé selon l’invention.
Ainsi, le procédé peut être embarqué sur un environnement contraint en termes de ressources de calcul et de mémoire.
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 œuvre les étapes du procédé selon l’invention.
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.
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.
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.
  • La figure 2 est un schéma synoptique représentant les étapes du procédé selon l’invention.
Sauf précision contraire, un même élément apparaissant sur des figures différentes présente une référence unique.
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.
Un réseau de neurones artificiels dont les paramètres sont déterminés automatiquement est appelé réseau d’information convolutif.
Dans la suite de la demande, on utilisera indifféremment les termes de «neurone «et de «neurone artificiel».
La figure 1 montre une représentation schématique d’un réseau de neurones artificiels 100.
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 103comportant 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.
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 .
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.
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é Y qui fournit des informations de prédiction sur les données initiales. Ce vecteur peut être assimilé à un vecteur comprenant m coefficients Y1à Ym.
Les données d’entrée se présentent sous la forme d’un vecteur X comprenant n coefficients X1à 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 et d’une fonction de transfert qui utilise en son sein une fonction distance. Chaque neurone i reçoit en entrée le coefficient Xidu vecteur X. Une fonction de combinaison du neurone i de la première couche génère ainsi une valeur . La fonction de combinaison des neurones 101 de la première couche 103 génère donc un vecteur avec les coefficients à , et la fonction de transfert des neurones 101 de la première couche 103 génère un vecteur de sortie , à n coefficients à . Le vecteur de sortie 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.
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 par le réseau de neurones 100 en sortie de la couche de neurones k prend la forme suivante: 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 est le vecteur résultant du traitement du vecteur par la fonction de combinaison au niveau de la couche k de neurones 101.
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 Y1à Ym.
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.
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, et donc le nombre de neurones 101, et les coefficients synaptiques w d’un réseau de neurones artificiels 100 à partir d’une base de données qui, a un vecteur d’entrée X, associe un vecteur de sortie vrai Y, correspondant au vecteur de sortie du réseau de neurones artificiels 100 que l’on souhaiterait obtenir pour le vecteur d’entrée X.
La figure 2 est un schéma synoptique représentant les étapes 201 à 205 du procédé 200 selon le premier aspect de l’invention.
Une première étape 201 du procédé 200 consiste à identifier une géométrie ad-hoc à partir 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 d’entrée X injectés dans le réseau de neurones 100.
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 d’entrée X.
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.
La matrice d’adaptation M permet par exemple l’introduction d’une géométrie Riemannienne.
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: et représentent respectivement les valeurs maximale et minimale de la ièmecomposante du vecteur X d’entrée, la matrice étant de fait d’ordre n et définie positive.
Le cas euclidien correspond à la matrice identité.
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:
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.
On retrouve le cas euclidien avec p=1 et M la matrice identité.
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).
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).
Une troisième étape 203 du procédé 200 consiste à ajouter une couche 103 de neurones artificiels 101 dans un modèle R de réseaux de neurones artificiels 100 pour une donnée de la base de données d’apprentissage (XA, YA).
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 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 de sortie.
Le modèle R utilise la distance d définie à partir de la matrice d’adaptation M dans les fonctions de transfert f.
La troisième étape 203 est réalisée pour chaque donnée de la base de données d’apprentissage (XA, YA) tant que le procédé 200 n’est pas arrêté.
Initialement, le modèle R est vide.
Une quatrième étape 204 du procédé 200 consiste à calculer un coefficient synaptique w pour la donnée de la base de données d’apprentissage (XA, YA) et pour une donnée de la base de données de validation (XV, YV).
Le coefficient synaptique w est par exemple défini par: Avec s, un deuxième seuil prédéfini, K une fonction noyau et * l’opérateur de convolution.
La fonction noyau K dépend de la distance d définie à partir de la matrice d’adaptation M.
Le deuxième seuil peut être choisi par exemple entre 10-4à 10-2.
K est par exemple un noyau Gaussien, c’est-à-dire que K se définit dans ce cas comme:
Une cinquième étape 205 du procédé 200 consiste à ajouter une synapse 102 dans le modèle R de réseaux de neurones artificiels 100, la synapse 102 étant affectée du coefficient synaptique w précédemment calculé à la quatrième étape 204.
La synapse 102 ajoutée est connectée à la couche 103 ajoutée à la troisième étape 203.
Une sixième étape 206 du procédé 200 consiste à calculer une erreur d’apprentissage VApour la donnée de la base de données d’apprentissage (XA, YA).
L’erreur d’apprentissage VAse définit par exemple comme: Avec , la norme euclidienne, par exemple.
Le premier seuil peut être choisi par exemple entre 10- 6et 10- 3.
L’erreur d’apprentissage VAest initialisée à une valeur strictement supérieure au premier seuil.
La septième étape 207 du procédé 200 consiste à calculer une erreur de validation VVpour la donnée de la base de données de validation (XV, YV).
L’erreur de validation VVse définit par exemple comme: Avec , la norme euclidienne par exemple.
On vérifie alors si une première condition C1 est vérifiée, à savoir si l’erreur d’apprentissage VAest 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 VVdécroît.
On entend par «la valeur décroît», que la valeur précédemment calculée est supérieure ou égale à la valeur actuelle.
La vérification de la première condition C1 peut avoir lieu avant la réalisation de la septième étape 207 dans un but d’optimisation algorithmique.
L’erreur de validation VVest par exemple initialisée par: Avec , la norme euclidienne par exemple.
Si la deuxième condition C2 est vérifiée, on réalise à nouveau les étapes 203 à 207 du procédé 200 pour une autre donnée de la base de données de validation (XV, YV) puis on vérifie à nouveau si la première condition C1 et la deuxième condition C2 sont vérifiées. On continue ainsi pour chaque donnée de la base de données de validation (XV, YV) tant que la première condition C1 et la deuxième condition C2 sont vérifiées.
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.
Si les étapes 203 à 207 du procédé 200 sont réalisées pour chaque donnée de la base de données de validation (XV, YV), on réalise à nouveau la troisième étape 203 pour une autre donnée de la base de données d’apprentissage (XA, YA), c’est-à-dire qu’on ajoute une nouvelle couche 201 dans le modèle R du réseau de neurones 100 et on réalise les mêmes étapes précédemment décrites pour chaque donnée de la base de données de validation (XV, YV).
Une fois le procédé 200 arrêté, le nombre de couches 103, le nombre de synapses 102 et les coefficients synaptiques w non nuls dans le modèle R de réseau de neurones artificiels 100 correspondent respectivement au nombre de couches 103, au nombre de synapses 102 et aux coefficients synaptiques w du réseau de neurones 100.
Par exemple, si quatre coefficients synaptiques w non nuls ont été calculés pour la troisième couche 103 ajoutée, la troisième couche 103 du réseau de neurones 100 comporte quatre synapses 102, c’est-à-dire que quatre synapses 102 partent de la troisième couche 103.
La détermination du nombre de neurones 101 d’une couche 103 donnée se déduit ensuite du nombre de synapses 102 des couches 103 précédentes et/ou du nombre de synapses 102 des couches 103 suivantes.
Prenons l’exemple suivant: après la deuxième étape 202 du procédé 200, l’erreur d’apprentissage VAest initialisée à 3, l’erreur de validation VVest initialisée à 10 et le premier seuil est choisi à 10-4.
A la troisième étape 203 du procédé 200, une première couche 103 est ajoutée au modèle R de réseau de neurones artificiels 100 pour une première donnée de la base de données d’apprentissage (XA, YA).
A la quatrième étape 204 du procédé 200, un premier coefficient synaptique w est calculé pour la première donnée de la base de données d’apprentissage (XA, YA) et pour une première donnée de la base de données de validation (XV, YV).
A la cinquième étape 205 du procédé 200, une première synapse 102 est ajoutée au modèle R de réseau de neurones artificiels 100 ayant le premier coefficient synaptique w pour coefficient synaptique w.
A la sixième étape 206 du procédé 200, une première erreur d’apprentissage VAest calculée et vaut 3,8 et à la septième étape 207 du procédé 200, une première erreur de validation VVest calculée et vaut 8,3. La première condition C1 est vérifiée car la première erreur d’apprentissage VAest supérieure au premier seuil et la deuxième condition C2 est vérifiée car la première erreur de validation VVest inférieure à la valeur précédente de l’erreur de validation VV.
La première erreur d’apprentissage VAet la première erreur de validation VVsont calculées à partir du modèle R de réseau de neurones artificiels 100 comportant une couche 103 connectée à une synapse 102.
On réalise alors à nouveau la quatrième étape 204 et la cinquième étape 205 du procédé 200. Un deuxième coefficient synaptique w est calculé et une deuxième synapse 102 est ajoutée au modèle R.
On réalise alors à nouveau la sixième étape 206 et la septième étape 207 du procédé 200. Une deuxième erreur d’apprentissage VAest calculée et vaut 2,5 et une deuxième erreur de validation VVest calculée et vaut 7,6. La première condition C1 est vérifiée car la deuxième erreur d’apprentissage VAest supérieure au premier seuil et la deuxième condition C2 est vérifiée car la deuxième erreur de validation VVest inférieure à la première erreur de validation VV.
La deuxième erreur d’apprentissage VAet la deuxième erreur de validation VVsont calculées à partir du modèle R de réseau de neurones artificiels 100 comportant une couche 103 connectée à deux synapses 102.
Les étapes 204 à 207 sont réalisées pour chaque donnée de la base de données de validation (XV, YV) tant que la première condition C1 et la deuxième condition C2 sont vérifiées.
Si les étapes 204 à 207 ont été réalisées pour chaque donnée de la base de données de validation (XV, YV), la troisième étape 203 est alors réalisée pour une deuxième donnée de la base de données d’apprentissage (XA, YA) et ainsi de suite jusqu’à ce que la première condition C1 ou la deuxième condition C2 ne soit plus vérifiée et que le procédé 200 s’arrête.
Par exemple, à l’issue du procédé 200, pour la première couche 103 du réseau de neurones 100, seulement deux coefficients synaptiques w non nuls ont été calculés donc la première couche 103 du réseau de neurones 100 comporte au plus deux neurones 101: soit la première couche 103 comporte un neurone 101 et la deuxième couche 103 comporte deux neurones 101, soit la première couche 103 comporte deux neurones 101 et la deuxième couche 103 comporte un neurone 101.
Pour la deuxième couche 103 du réseau de neurones 100, neufs coefficients synaptiques w non nuls ont été calculés. Etant donné que la deuxième couche 103 comporte au plus deux neurones 101 d’après l’itération précédente, soit la deuxième couche 103 comporte un neurone 101 et la troisième couche 103 comporte neufs neurones 101, soit la deuxième couche 103 comporte deux neurones 101 et la troisième couche 103 comporte trois neurones 101.
Pour la troisième couche 103 du réseau de neurones 100, trois coefficients synaptiques w non nuls ont été calculés. La troisième couche 103 ne peut pas comporter neuf neurones 101 et ne peut donc que comporter trois neurones 101.
Ainsi, la première couche 103 comporte un neurone 101, la deuxième couche 103 comporte deux neurones 101 et la troisième couche 103 comporte trois neurones 101. La quatrième couche 101 ne pourra donc comporter qu’un neurone 101.
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.
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.
Le procédé 200 selon le premier aspect de l’invention est mis en œuvre par ordinateur, lequel ordinateur comprend classiquement des moyens de calcul et de traitement du type microprocesseur.
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 Gate Array) et ou encore processeur ARM (de l’anglais Advanced-RISC Machines), processeur RISC-V (de l’anglais Reduced Instruction Set Computing).
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.
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.
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.
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 [XV, YV] et en une base de données de validation [XV, YV] correspondant à 25% de la base de données [XV, YV].
Le premier exemple consiste à embarquer sur 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.
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.
La base de données [XV, YV] 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.
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.
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.
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.
Le capteur basse fidélité fournit un vecteur de réels de taille 16 comportant des estimations de l’accélération, du champ magnétique, de l’effet gyroscopique, des poussées cumulées de huit moteurs électriques et de la profondeur et l’on veut générer un vecteur de variables de sortie de nombres réels de taille 10 comportant les quaternions définissant l’orientation d’un robot et la définition haute-fidélité de son accélération.
La base de données [XV, YV] 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.
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.

Claims (10)

  1. Procédé (200) mis en œuvre 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 w, un réseau de neurones artificiels (100) ayant pour paramètre un nombre de couches (103), un nombre de synapses (102) et pour chaque synapse (102), un coefficient synaptique w, le procédé (200) étant caractérisé en ce qu’il comporte les étapes suivantes:
    • Identification d’une géométrie ad hoc à partir de la base de données [X, Y] et détermination d’une matrice d’adaptation M correspondant à la géométrie ad hoc (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);
    • Pour chaque donnée de la base de données d’apprentissage [XA, YA]:
      • Ajout d’une couche (103) de neurones artificiels (101) dans un modèle R de réseau de neurones artificiels (100, 203);
      • Pour chaque donnée de la base de données de validation [XV, YV]:
        • Calcul d’un coefficient synaptique w à partir de la donnée de la base de données d’apprentissage [XA, YA], de la donnée de la base de données de validation [XV, YV] et d’une distance d définie à partir de la matrice d’adaptation M (204);
        • Ajout, dans le modèle R de réseau de neurones artificiels (100), d’une synapse (102) connectée à la couche (103) ajoutée, à laquelle est affecté le coefficient synaptique w (205) ;
        • Calcul d’une erreur d’apprentissage VAà partir de la donnée de la base de données d’apprentissage [XA, YA] et du modèle R de réseau de neurones artificiels (206) ;
        • Calcul d’une erreur de validation VVà partir de la donnée de la base de données de validation [XV, YV] et du modèle R de réseau de neurones artificiels (207) ;
        • Si une première condition (C1) selon laquelle l’erreur d’apprentissage VAest supérieure à un premier seuiln’est pas vérifiée et/ou si une deuxième condition (C2) selon laquelle l’erreur de validation VVdécroîtn’est pas vérifiée, arrêt du procédé (200);
    le nombre de couches (103) du réseau de neurones artificiels correspondant au nombre de couches (103) dans le modèle R de réseau de neurones artificiels (100) et le nombre de synapses (102) du réseau de neurones artificiels correspondant au nombre de synapses (102) ayant un coefficient synaptique w non nul dans le modèle R de réseau de neurones artificiels (100).
  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.
  3. Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que l’erreur d’apprentissage VAest définie par:

    Avec , la norme euclidienne.
  4. Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que l’erreur de validation VVest définie par:

    Avec , la norme euclidienne.
  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:

    Avec p, un nombre entier.
  6. Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce qu’un coefficient synaptique w est défini par:

    Avec K une fonction noyau et s un deuxième seuil.
  7. Procédé (200) selon la revendication 6, caractérisé en ce que la fonction noyau est de type Gaussien.
  8. Microcontrôleur caractérisé en ce qu’il comporte un calculateur configuré pour mettre en œuvre le procédé (200) selon l’une quelconque des revendications précédentes.
  9. Produit-programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé (200) selon l’une quelconque des revendications 1 à 7.
  10. Support d’enregistrement lisible par ordinateur, sur lequel est enregistré le produit-programme d’ordinateur selon la revendication 9.
FR1913334A 2019-11-27 2019-11-27 Procede de determination automatique de parametres d’un reseau de neurones artificiels et microcontroleur pour la mise en œuvre du procede Active FR3103600B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1913334A FR3103600B1 (fr) 2019-11-27 2019-11-27 Procede de determination automatique de parametres d’un reseau de neurones artificiels et microcontroleur pour la mise en œuvre du procede
PCT/EP2020/083594 WO2021105332A1 (fr) 2019-11-27 2020-11-27 Procede de determination automatique de parametres d'un reseau de neurones artificiels et microcontroleur pour la mise en œuvre du procede

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1913334A FR3103600B1 (fr) 2019-11-27 2019-11-27 Procede de determination automatique de parametres d’un reseau de neurones artificiels et microcontroleur pour la mise en œuvre du procede
FR1913334 2019-11-27

Publications (2)

Publication Number Publication Date
FR3103600A1 true FR3103600A1 (fr) 2021-05-28
FR3103600B1 FR3103600B1 (fr) 2023-04-14

Family

ID=69700098

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1913334A Active FR3103600B1 (fr) 2019-11-27 2019-11-27 Procede de determination automatique de parametres d’un reseau de neurones artificiels et microcontroleur pour la mise en œuvre du procede

Country Status (2)

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007056803A1 (fr) * 2005-11-15 2007-05-24 Bernadette Garner Methode pour entrainer des reseaux neuraux
WO2019211367A1 (fr) * 2018-05-02 2019-11-07 Dreamquark Sas Procede de generation automatique de reseaux de neurones artificiels et procede d'evaluation d'un risque associe

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007056803A1 (fr) * 2005-11-15 2007-05-24 Bernadette Garner Methode pour entrainer des reseaux neuraux
WO2019211367A1 (fr) * 2018-05-02 2019-11-07 Dreamquark Sas Procede de generation automatique de reseaux de neurones artificiels et procede d'evaluation d'un risque associe

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
WO2021105332A1 (fr) 2021-06-03
FR3103600B1 (fr) 2023-04-14

Similar Documents

Publication Publication Date Title
US20170280130A1 (en) 2d video analysis for 3d modeling
EP3953662A1 (fr) Procede de definition d'un chemin
CN115880298B (zh) 一种基于无监督预训练的玻璃表面缺陷检测系统
CN113361645A (zh) 基于元学习及知识记忆的目标检测模型构建方法及系统
KR102402194B1 (ko) 딥러닝 기반 엔드-투-엔드 o-ring 결함 검출 방법
CN115439694A (zh) 一种基于深度学习的高精度点云补全方法及装置
EP1792278B1 (fr) Procede de detection et de pistage de cibles ponctuelles, dans un systeme de surveillance optronique
EP0681270A1 (fr) Procédé de trajectographie d'objets et dispositif de mise en oeuvre de ce procédé
WO2022008605A1 (fr) Dispositif électronique et procédé de traitement de données à base de réseaux génératifs inversibles, système électronique de détection et programme d'ordinateur associés
KR102264285B1 (ko) 수질 관리를 위한 조류 정량화 방법
CN112802076A (zh) 反射图像生成模型及反射去除模型的训练方法
EP3712775A1 (fr) Procédé et dispositif de détermination de la taille mémoire globale d'une zone mémoire globale allouée aux données d'un réseau de neurones compte tenu de sa topologie
FR3103600A1 (fr) Procede de determination automatique de parametres d’un reseau de neurones artificiels et microcontroleur pour la mise en œuvre du procede
EP3660748A1 (fr) Procédé d'analyse d'un jeu de paramètres d'un réseau de neurones en vue d'obtenir une amélioration technique, par exemple un gain en mémoire
EP1387232A1 (fr) Procédé de détermination de la valeur à donner à différents paramètres d'un système
EP4202770A1 (fr) Reseau de neurones avec generation a la volee des parametres du reseau
CN111814813A (zh) 神经网络训练和图像分类方法与装置
EP3502904B1 (fr) Procédé d'amélioration du temps d'exécution d'une application informatique
KR102616081B1 (ko) 깊이 맵의 특징점을 획득하기 위한 방법
EP4322061A1 (fr) Dispositif électronique et procédé de traitement de données comportant au moins un modèle d'intelligence artificielle auto-adaptatif avec apprentissage local, système électronique et programme d'ordinateur associés
FR3112122A1 (fr) Procédé d’évaluation de l’état relatif d’un moteur d’aéronef
CA3104759A1 (fr) Procede de modelisation pour le controle des resultats fournis par un reseau de neurones artificiels et autres procedes associes
WO2023111345A1 (fr) Procédé d'analyse d'une donnée numérique
CN116597249A (zh) 图像表征模型的训练方法及装置
FR3130061A1 (fr) Procédé de localisation et cartographie simultanées intégrant un masquage temporel auto-supervisé et modèle d’apprentissage automatique pour générer un tel masquage.

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20210528

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

CL Concession to grant licences

Name of requester: AXLR, SATT OCCITANIE MEDITERRANEE, FR

Effective date: 20221109

PLFP Fee payment

Year of fee payment: 5