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
La présente invention concerne un dispositif électronique de traitement de données, ainsi qu’un procédé de traitement de données mis en œuvre par un tel dispositif électronique de traitement.
L’invention concerne aussi un système électronique de détection d’objet(s), comprenant un capteur, tel qu’un capteur d’image(s), et un tel dispositif électronique de traitement, chaque donnée à traiter étant un objet détecté dans une image respective.
L’invention concerne également un programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un tel procédé de traitement.
L’invention concerne alors le domaine de l’apprentissage automatique (de l’anglais machine learning), en particulier celui de l’apprentissage continu à base des réseaux génératifs de neurones, notamment pour le traitement de données, tel que la classification de données et l’apprentissage de caractéristiques latentes.
Par réseau de neurones, on entend un réseau de neurones artificiels (de l’anglais artificial neural network) connu en soi.
L’invention offre alors diverses applications, telles que la classification ou l’identification d’objets préalablement détectés par un détecteur d’objets, permettant par exemple d’apprendre les identités de personnes dont le visage a été détecté par un détecteur de visages. Une autre application est un système d’apprentissage automatique et non-supervisé des caractéristiques, par exemple un système qui est entraîné d’une manière autonome et continue sur des données de voix humaines autour de lui, et les caractéristiques apprises sont ensuite utilisées pour prétraiter des données pour un système d’apprentissage spécialisé sur la voix d’une certaine personne.
Lorsqu’un réseau de neurones pour le traitement de données, et en particulier pour la classification, est entraîné pour une tâche (de l’anglais task), également appelée classe dans le cas d’un usage pour la classification des données, telle qu’une première tâche, ou première classe, et est ensuite entraîné pour une autre tâche, à savoir une deuxième tâche, ou deuxième classe, le réseau de neurones oubliera les informations apprises sur la première tâche et sera ensuite incapable d’exécuter à nouveau la première tâche, ce
phénomène étant aussi connu sous le nom d’oubli catastrophique (de l’anglais catastrophic forgetting).
De manière connue, les réseaux de neurones pour le traitement de données, et en particulier pour la classification, sont alors entraînés simultanément sur une pluralité de tâches, ou classes, des exemples représentant ces différentes tâches devant alors être répartis de manière homogène dans un jeu de données d’apprentissage. En outre, ces réseaux de neurones sont typiquement entraînés sur un nombre de tâches qui est fixé au début de leur apprentissage.
Pour chercher à remédier à ce phénomène d’oubli catastrophique, on connaît également des procédés, tels qu’un procédé de consolidation du poids élastique, aussi noté EWC (de l’anglais Elastic Weight Consolidation), ou un procédé d’intelligence synaptique, aussi noté SI (de l’anglais Synaptic Intelligence), consistant à trouver une métrique assignant une importance à chaque paramètre utilisé pour l’exécution d’une certaine tâche, après l’avoir appris. Si un paramètre est important pour l’exécution d’une tâche, il est alors plus difficile à modifier lors de l’apprentissage de tâches subséquentes.
Toutefois, de tels procédés nécessitent de sauvegarder des variables supplémentaires, et le calcul de l’importance de chaque paramètre pour chaque tâche s’avère alors souvent coûteux en ressources informatiques et/ou en temps de calcul. Aussi, de tels procédés sont généralement utilisés seulement pour des cas où les tâches ne diffèrent pas trop les unes des autres.
D’autres procédés cherchant à apporter une solution au phénomène d’oubli catastrophique utilisent des modèles génératifs pour produire des données artificielles qui ressemblent aux données des tâches déjà apprises.
Les modèles génératifs visent à représenter un espace d’entrée X dans un espace de sortie Y, en définissant par exemple une loi de probabilité jointe ou des fonctions bijectives pour toutes les variables possibles, c’est-à-dire pour les variables de l’espace de sortie Y, aussi appelées variables de sortie et correspondant aux données à prédire ; pour les variables de l’espace d’entrée X, aussi appelées variables d’entrée et correspondant aux données reçues en entrée du modèle génératif ; et pour les variables d’un espace non- observé, également appelé espace latent H, aussi noté Z, ces variables annexes non- observées étant alors également appelées variables latentes ou cachées. Ces variables latentes correspondent alors à des vecteurs de l’espace latent H, également appelés vecteurs latents. Lorsque les modèles génératifs sont utilisés pour le traitement de données, et en particulier pour la classification de données, l’espace de sortie Y correspond à l’espace des tâches, et les variables de sortie représentent alors des identifiants, ou étiquettes (de l’anglais task label), de tâches associées aux données d’entrée.
De tels procédés sont souvent considérés comme mettant en œuvre une approche dite de réentrainement génératif (de l’anglais generative replay, ou encore pseudo- rehearsal). Avec ces procédés, les données artificielles produites sont utilisées en combinaison avec les données d’une nouvelle tâche pour entraîner le ou les réseaux de neurones mis en œuvre pour le traitement de données, et en particulier pour la classification de ces données. L’article « Continuai Unsupervised Représentation Learning » de Rao et al, 33rd Conférence on Neural Information Processing Systems (NeurIPS 2019), décrit un exemple d’un tel procédé de réentrainement génératif.
Cependant, avec de tels procédés de réentrainement génératif, il est nécessaire d’avoir un modèle génératif de très bonne qualité qui est capable de générer des bonnes représentations des tâches déjà apprises.
Le but de l’invention est alors de proposer un dispositif électronique de traitement de données, et un procédé de traitement associé, permettant d’offrir une meilleure solution au phénomène d’oubli catastrophique en représentant mieux les tâches, ou classes, et alors d’apprendre des caractéristiques qui sont plus discriminantes.
A cet effet, l’invention a pour objet un dispositif électronique de traitement de données, comprenant:
- un module d’acquisition configuré pour acquérir un ensemble de donnée(s) à traiter ;
- un module de calcul incluant une pluralité de composants, chacun associé à une tâche respective, chaque composant étant configuré pour mettre en œuvre un réseau de neurones inversible pour calculer un vecteur dans un espace latent, dit vecteur latent, à partir de l’ensemble de donnée(s) ;
- un module de détermination configuré pour déterminer une tâche pour chaque donnée, en :
+ évaluant, pour chaque composant, un score de vraisemblance à partir du vecteur latent correspondant ; et
+ attribuant, à ladite donnée, la tâche associée au composant avec le score de vraisemblance le plus élevé parmi la pluralité de scores évalués ; et
+ si le score de vraisemblance évalué est incohérent pour le composant associé à la tâche attribuée, modifiant la tâche attribuée en tâche inconnue.
Ainsi, le dispositif électronique de traitement selon l’invention offre un apprentissage continu à base de réseaux génératifs de neurones, les réseaux du module de calcul étant en outre des réseaux de neurones inversibles (de l’anglais normalizing flow) qui apprennent alors chacun une fonction bijective entre l’espace d’entrée X et l’espace latent H. L’espace latent H est alors distribué selon une fonction de distribution probabiliste de la même
dimension que celle de l’espace d’entrée X, chaque fonction de distribution probabiliste étant par exemple une Gaussienne multidimensionnelle. La possibilité d’inverser le réseau de neurones de chaque composant permet alors d’exprimer la fonction de vraisemblance (de l’anglais likelihood) des données de l’espace d’entrée X plus facilement en fonction des valeurs des vecteurs de l’espace latent H.
Les réseaux inversibles permettent aussi de faire un calcul exact du score de la vraisemblance des données de l’espace d’entrée X suivant la fonction de distribution probabiliste px de l’espace d’entrée X. Aussi, si le score de vraisemblance d’un échantillon (de l’anglais sample ) est incohérent pour le composant associé à la tâche attribuée, par exemple si le score de vraisemblance dévie trop du score moyen observé pendant l’apprentissage dudit composant, cet échantillon est considéré comme étant de tâche inconnue. Le dispositif électronique de traitement selon l’invention permet alors d’effectuer en outre une détection de tâche(s) inconnue(s), ou classe(s) inconnue(s).
En outre, l’utilisation d’un réseau de neurones inversible pour chaque composant du module de calcul permet d’utiliser un même et unique réseau de neurones pour l’encodage depuis l’espace d’entrée X vers l’espace latent H, et pour le décodage depuis l’espace latent H vers l’espace d’entrée X, ce décodage permettant typiquement de créer des exemples artificiels de données, pour le réentrainement ultérieur des réseaux de neurones des composants.
Un autre avantage des réseaux inversibles est la possibilité d’implémenter l’algorithme de la rétro-propagation du gradient (de l’anglais back-propagation) avec moins des ressources de mémoire, car les activations de chaque neurone sont reconstructibles à partir de la sortie du réseau. Cela permet de recalculer les activations en parallèle pendant une phase de rétro-propagation, ce qui évite de devoir sauvegarder les activations de chaque neurone pendant une phase d’inférence. L’invention est alors particulièrement adaptée pour l’implémentation d’un système d’apprentissage continu avec des ressources mémoire moindres, tel qu’un système embarqué.
De préférence, les paramètres du réseau de neurones de chaque composant sont aptes à être optimisés en utilisant une méthode de vraisemblance maximale (de l’anglais maximum likelihood estimation) sur les données de l’espace d’entrée X.
De préférence encore, le réseau de neurones de chaque composant est appris en utilisant un algorithme de rétro-propagation pour le calcul du gradient de chaque paramètre du réseau suivant une fonction de coût, la fonction de coût comportant typiquement un terme de vraisemblance, tel qu’un terme logarithmique de vraisemblance.
Suivant d’autres aspects avantageux de l’invention, le dispositif électronique de traitement comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles :
- le dispositif comprend en outre un module de rétroaction configuré pour stocker dans une mémoire tampon chaque donnée de tâche inconnue, et pour déclencher la création d’une nouvelle tâche si le nombre de données stockées dans la mémoire tampon est supérieur à un nombre prédéfini ; le module de calcul étant alors configuré pour inclure un nouveau composant associé à la nouvelle tâche, l’apprentissage du nouveau composant étant effectué à partir desdites données stockées dans la mémoire tampon ;
- le réseau de neurones inversible de chaque composant comporte des paramètres, tels que des poids ; lesdits paramètres étant optimisés via une méthode de vraisemblance maximale ; l’apprentissage dudit réseau étant de préférence effectué via un algorithme de rétro- propagation pour le calcul du gradient de chaque paramètre ; l’apprentissage dudit réseau étant de préférence encore continu, notamment effectué après chaque traitement de donnée(s) ;
- le dispositif comprend en outre un module d’extraction de caractéristiques connecté entre le module d’acquisition et le module de calcul, le module d’extraction étant configuré pour mettre en œuvre au moins un réseau de neurones pour convertir l’ensemble de donnée(s) en une représentation simplifiée, en extrayant une ou plusieurs caractéristiques communes à la pluralité de tâches ; chaque réseau de neurones du module d’extraction étant de préférence inversible ; le module d’extraction comportant de préférence encore un premier extracteur configuré pour mettre en œuvre un réseau de neurones avec des poids figés suite à l’apprentissage dudit réseau et un deuxième extracteur configuré pour mettre en œuvre un réseau de neurones avec des poids entrainables via un apprentissage continu, tel qu’un apprentissage effectué après chaque traitement de donnée(s), notamment via un algorithme de propagation inverse ;
- le module de détermination est configuré en outre pour générer un vecteur de nombre(s) aléatoire(s) ou pseudo-aléatoire(s) correspondant à la distribution de l’espace latent d’un des composants, puis pour propager ledit vecteur de manière inverse via le réseau de neurones inversible correspondant, afin de créer un exemple artificiel de donnée(s), un identifiant de tâche associé à cet exemple artificiel étant un identifiant dudit composant ;
ledit vecteur étant de préférence propagé de manière inverse vers le module de calcul ou bien vers un module de réentrainement distinct du module de calcul ;
- le dispositif comprend en outre un module de réentrainement configuré pour recevoir le vecteur généré par le module de détermination et pour fournir au moins un exemple artificiel de donnée(s) et son identifiant au(x) composant(s) du module de calcul associé(s) au même identifiant, le(s)dit(s) composant(s) étant à entraîner à nouveau, le module de réentrainement comportant une copie de chaque composant à entraîner à nouveau ;
- lorsque le module d’extraction comporte le premier extracteur et le deuxième extracteur, le module de réentrainement comporte en outre une copie du deuxième extracteur, le module de réentrainement étant alors configuré en outre pour fournir au moins un exemple artificiel de donnée(s) au deuxième extracteur du module d’extraction ;
- le dispositif est configuré pour effectuer un apprentissage non-supervisé de tâches, chaque composant du module de calcul étant configuré pour calculer un vecteur dans l’espace latent pour chaque nouvelle donnée, l’espace latent comportant alors des vecteurs latents pour cette nouvelle donnée, un identifiant du composant étant en outre associé à chaque vecteur latent calculé ;
- le module de détermination est configuré en outre pour modifier les identifiants de composants à partir d’un lot d’exemples identifiés, un identifiant respectif étant associé à chaque exemple, en attribuant pour chaque exemple son identifiant au composant présentant le score de vraisemblance le plus élevé, le ou les composants n’ayant pas d’identifiant attribué après prise en compte de tous les exemples du lot étant ignorés ;
- le score de vraisemblance est un score logarithmique ; le score de vraisemblance comportant de préférence le terme logarithmique suivant : l°g [PH (i (*))]. où H représente un espace des vecteurs latents, également appelé espace latent,
PH représente une fonction de distribution probabiliste de l’espace latent H, k est un indice entier représentant chaque composant, k étant typiquement compris entre 1 et P, avec P représentant le nombre de composants, P ³ 2,
Fk est une fonction inversible, ou bijective, reliant un vecteur latent hk à l’ensemble x de donnée(s) : hk = Fk(x ) ;
- le score de vraisemblance évalué est incohérent pour le composant associé à la tâche attribuée si l’écart entre le score de vraisemblance évalué et un score de vraisemblance moyen pour ledit composant est supérieur à un seuil ; ledit seuil étant de préférence une valeur prédéfinie pour chaque composant, ou encore un pourcentage d’une valeur moyenne observée pour chaque composant ;
une méthode dite de détection hors-distribution (de l’anglais out-of-distribution détection) est appliquée en variante aux scores de vraisemblance évalués pour la détection d’échantillon(s) inconnu(s) ;
- le module de détermination est configuré en outre pour transmettre les vecteurs latents à un autre dispositif électronique de traitement de données, tel qu’un classificateur k-NN ou un autre réseau de neurones ;
- le module d’acquisition est configuré en outre pour effectuer une normalisation de l’ensemble de donnée(s) et/ou un enrichissement de l’ensemble de donnée(s), par exemple via une ou plusieurs rotations d’angle aléatoire.
L’invention a également pour objet un système électronique de détection d’objet(s), le système comprenant un capteur, tel qu’un capteur d’image(s), un capteur sonore ou encore un capteur de détection d’objets, et un dispositif électronique de traitement de donnée(s) relié au capteur, le dispositif électronique de traitement étant tel que défini ci- dessus, et chaque donnée à traiter est un objet détecté dans une image.
L’invention a aussi pour objet un procédé de traitement de données, mis en œuvre par un dispositif électronique de traitement et comprenant les étapes suivantes :
- acquérir un ensemble de donnée(s) à traiter ;
- calculer, via la mise en œuvre d’un réseau de neurones inversible pour chaque composant d’une pluralité de composants, un vecteur dans un espace latent, dit vecteur latent, pour chaque composant et à partir de l’ensemble de donnée(s), chaque composant étant associé à une tâche respective ;
- déterminer une tâche pour chaque donnée, en :
+ évaluant, pour chaque composant, un score de vraisemblance à partir du vecteur latent correspondant ; et
+ attribuant, à ladite donnée, la tâche associée au composant avec le score de vraisemblance le plus élevé parmi la pluralité de scores évalués ; et
+ si le score de vraisemblance évalué est incohérent pour le composant associé à la tâche attribuée, modifiant la tâche attribuée en tâche inconnue.
L’invention a également pour objet un programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un procédé de traitement, tel que défini ci-dessus.
Ces caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description qui va suivre, donnée uniquement à titre d’exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels :
- la figure 1 est une représentation schématique d’un système électronique de détection d’objets selon l’invention, comprenant un capteur et un dispositif électronique de traitement de données, relié au capteur ;
- la figure 2 est une représentation schématique plus détaillée du dispositif électronique de traitement de la figure 1 , comportant notamment un module de calcul incluant une pluralité de composants, chacun étant associé à une tâche respective et configuré pour mettre en œuvre un réseau de neurones inversible pour calculer un vecteur dans un espace latent à partir d’un ensemble de donnée(s) à traiter, selon un premier mode de réalisation ;
- la figure 3 est une représentation schématique d’un exemple d’implémentation des réseaux de neurones inversibles des composants du module de calcul de la figure 2, ces réseaux de neurones inversible étant en outre optionnellement connectés au réseau de neurones inversibles d’un module d’extraction de caractéristiques inclus dans le dispositif électronique de traitement des figures 1 et 2, en complément du module de calcul ;
- la figure 4 est une vue analogue à celle de la figure 2, selon un deuxième mode de réalisation de l’invention, dans lequel le dispositif électronique de traitement comprend en outre un module de réentrainement configuré pour fournir à partir d’un vecteur latent, au moins un exemple artificiel et son identifiant, au(x) composant(s) du module de calcul associé(s) au même identifiant que celui de l’exemple artificiel, ledit ou lesdits composants étant à entraîner à nouveau, et le module de réentrainement comportant une copie de chaque composant à entraîner à nouveau ; et
- la figure 5 est un organigramme d’un procédé de traitement de données selon l’invention, le procédé étant mis en œuvre par le dispositif électronique de traitement de la figure 1.
Dans la présente description, sauf indication contraire, lorsqu’il est fait référence à deux éléments connectés entre eux, cela signifie qu’ils sont connectés directement entre eux, sans élément intermédiaire entre eux autre que des conducteurs de liaison ; et lorsqu’il est fait référence à deux éléments couplés ou reliés entre eux, cela signifie que ces deux éléments sont soit connectés entre eux, ou bien couplés ou reliés entre eux par l’intermédiaire d’un ou plusieurs autres éléments.
Dans la présente description, sauf autre précision, les expressions « sensiblement », « environ », « approximativement » et « de l’ordre de » définissent une relation d’égalité à plus ou moins 10%, de préférence à plus ou moins 5%.
On entend par tâche, ou encore classe, un regroupement de données semblables, ou de même type, et à chaque tâche (de l’anglais task) est associé un identifiant, ou label,
de tâche (de l’anglais task label). Les termes « tâche » et « classe » sont considérés comme synonymes au sens de la présente invention.
On entend par objet une réalisation concrète d’une classe ou tâche, par exemple un objet physique, une personne, et plus généralement un élément présent dans une scène captée par un capteur, notamment du type décrit ci-après. La scène est alors typiquement représentée sous forme d’images ou de vidéos dans le cas d’un capteur d’image(s) ou d’un capteur infrarouge, sous forme sonore dans le cas d’un capteur sonore, ou encore sous forme de nuage(s) de points dans le cas d’un capteur lidar ou radar.
Sur la figure 1 , un système électronique de détection 10 est configuré pour détecter un ou plusieurs objets, non représentés, et comprend un capteur 12 et un dispositif électronique de traitement 14, relié au capteur 12.
Le système électronique de détection 10 forme par exemple un détecteur de visages apte à reconnaître les visages de personnes préalablement identifiées et/ou à détecter des visages de personnes inconnues, c’est-à-dire des visages de personnes qui n’ont pas été préalablement identifiées. Le dispositif électronique de traitement 14 permet alors d’apprendre les identités des personnes détectées, et aussi d’identifier des personnes inconnues.
Le capteur 12 est connu en soi, et est par exemple un capteur d’image(s) configuré pour prendre une ou plusieurs images d’une scène, et les transmettre au dispositif électronique de traitement 14.
En variante, le capteur 12 est un capteur sonore, un capteur de détection d’objets, tel qu’un capteur lidar, un capteur radar, un capteur infrarouge, un capteur de proximité capacitif, un capteur de proximité inductif, un capteur de proximité à effet Hall ou encore un capteur de présence, configuré pour acquérir un signal caractéristique en fonction de la présence ou de l’absence d’objet(s), puis pour le transmettre au dispositif électronique de traitement 14.
Le dispositif électronique de traitement 14 est configuré pour traiter un ensemble de donnée(s), l’ensemble de donnée(s) correspondant typiquement à un ou plusieurs signaux captés par le capteur 12. Le dispositif électronique de traitement 14 est alors typiquement configuré pour interpréter une scène captée par le capteur 12, c’est-à-dire pour identifier et/ou pour reconnaître un type d’un ou plusieurs éléments - tels que personnes ou objets physiques - présents dans la scène captée et correspondants au signal ou aux signaux captés par la capteur 12.
Le dispositif électronique de traitement 14 comprend un module 16 d’acquisition de l’ensemble de donnée(s) à traiter ; un modul de calcul 18 incluant une pluralité de
composants 20, visibles sur les figures 2 à 4, chacun associé à une tâche respective, chaque composant 20 étant apte à calculer un vecteur dans un espace latent H, dit vecteur latent hk, à partir de l’ensemble de donnée(s) ; et un module 22 de déterminration d’une tâche pour chaque donnée, à partir du vecteur latent hk calculé.
En complément facultatif, le dispositif électronique de traitement 14 comprend en outre un module de rétroaction 24 configuré pour stocker dans une mémoire tampon 26, visible sur la figure 2, chaque donnée de tâche inconnue et pour déclencher le cas échéant la création d’une nouvelle tâche.
En complément facultatif encore, le dispositif électronique de traitement 14 comprend en outre un module 28 d’extration de caractéristiques (de l’anglais features extractor), connecté entre le module d’acquisition 16 et le module de calcul 18, le module d’extraction 28 étant apte à extraire une ou plusieurs caractéristiques communes à plusieurs tâches afin de transformer l’ensemble de donnée(s) en une représentation simplifiée.
En complément facultatif encore, et comme cela sera décrit plus en détail par la suite en regard du mode de réalisation de la figure 4, le dispositif électronique de traitement 14 comprend en outre un module de réentrainement 30 configuré pour générer, à partir d’un vecteur de nombre(s) aléatoire(s) ou pseudo-aléatoire(s) correspondant à la distribution dans l’espace latent d’un des composants, au moins un exemple artificiel de donnée(s) et son identifiant, et les fournir ensuite au(x) composant(s) 20 associé(s) au même identifiant, ledit ou lesdits composants 20 étant à entraîner à nouveau, le module de réentrainement 30 comportant une copie de chaque composant 20 à entraîner à nouveau.
Dans l’exemple de la figure 1, le dispositif électronique de traitement 14 comprend une unité de traitement d’informations 40 formée par exemple d’une mémoire 42 et d’un processeur 44 associé à la mémoire 42.
Dans l’exemple de la figure 1 , le module d’acquisition 16, le module de calcul 18 et le module de détermination 22, ainsi qu’en complément facultatif le module de rétroaction 24, le module d’extraction 28 et/ou le module de réentrainement 30, sont réalisés chacun sous forme d’un logiciel, ou d’une brique logicielle, exécutable par le processeur 44. La mémoire 42 du dispositif électronique de traitement 14 est alors apte à stocker un logiciel d’acquisition de l’ensemble de donnée(s) à traiter, un logiciel de calcul du vecteur latent pour chaque composant à partir de l’ensemble de donnée(s) et un logiciel de détermination d’une tâche pour chaque donnée à partir des vecteurs latents calculés. En complément facultatif, la mémoire 42 du dispositif électronique de traitement 14 est apte à stocker un logiciel de rétroaction apte à stocker dans la mémoire tampon 26 chaque donnée de tâche inconnue et à déclencher le cas échéant la création d’une nouvelle tâche, un logiciel d’extaction de caractéristiques communes à plusieurs tâches afin de convertir l’ensemble
de donnée(s) en une représentation simplifiée, et un logiciel de réentrainement apte à fournir, à partir d’un vecteur aléatoire ou pseudo-aléatoire correspondant à la distribution de l’espace latent d’un des composants, au moins un exemple artificiel de donnée(s) et son identifiant, ceci au(x) composant(s) de même identifiant que celui de l’exemple artificiel généré. Le processeur 44 est alors apte à exécuter chacun des logiciels parmi le logiciel d’acquisition, le logiciel de calcul et le logiciel de détermination, ainsi qu’en complément facultatif le logiciel de rétroaction, le logiciel d’extraction et/ou le logiciel de réentrainement.
En variante, non représentée, le module d’acquisition 16, le module de calcul 18 et le module de détermination 22, ainsi qu’en complément facultatif le module de rétroaction 24, le module d’extraction 28 et/ou le module de réentrainement 30, sont réalisés chacun sous forme d’un composant logique programmable, tel qu’un FPGA (de l’anglais Field Programmable GateArraÿ), ou encore sous forme d’un circuit intégré dédié, tel qu’un ASIC (de l’anglais Application Spécifie Integrated Circuit).
Lorsque le dispositif électronique de traitement 14 est réalisé sous forme d’un ou plusieurs logiciels, c’est-à-dire sous forme d’un programme d’ordinateur, il est en outre apte à être enregistré sur un support, non représenté, lisible par ordinateur. Le support lisible par ordinateur est par exemple un médium apte à mémoriser des instructions électroniques et à être couplé à un bus d’un système informatique. A titre d’exemple, le support lisible est un disque optique, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, tout type de mémoire non volatile (par exemple EPROM, EEPROM, FLASH, NVRAM), une carte magnétique ou une carte optique. Sur le support lisible est alors mémorisé un programme d’ordinateur comprenant des instructions logicielles.
Le module d’acquisition 16 est configuré pour acquérir l’ensemble de donnée(s) à traiter. Dans la suite de la description, l’espace des données auquel appartient cet ensemble de donnée(s) est noté X, et chaque ensemble de donnée(s) acquis est noté x, et est par exemple en forme d’un vecteur comportant la ou les données d’entrée, également appelé vecteur d’entrée x.
En complément, le module d’acquisition 16 est également configuré pour effectuer un prétraitement des données acquises, tel qu’une normalisation des données acquises. En variante ou en complément encore, le module d’acquisition 16 est configuré en outre pour effectuer un enrichissement des données acquises, par exemple en appliquant une ou plusieurs rotations d’angle aléatoire aux données acquises afin de générer des données supplémentaires.
Le module de calcul 18 inclut la pluralité de composants 20, chacun étant associé à une unique tâche respective. Selon l’invention, chaque composant 20 est configuré pour mettre en œuvre un réseau de neurones inversible pour calculer à partir de l’ensemble de
donnée(s), tel qu’à partir du vecteur d’entrée x, un vecteur dans l’espace latent H, également appelé vecteur latent hk.
Dans l’exemple de la figure 2, le nombre de composants 20 est égal à P, et chaque composant 20 est également alors noté Ck, où k est un indice entier de valeur comprise entre 1 et P. Chaque composant Ck est alors configuré pour calculer le vecteur latent hk exposant k, comme représenté sur la figure 2 où les vecteurs latents h1, h2, ... hp sont alors calculés par le module de calcul 18 pour chaque vecteur d’entrée x, et plus particulièrement par les composants respectifs Ci, C2, ... , Cp.
Chaque réseau de neurones inversible est configuré pour apprendre une fonction bijective entre l’espace des données d’entrée X et l’espace latent H, et l’espace latent H est alors contraint d’être distribué selon une fonction de distribution probabiliste de dimension égale à celle de l’espace d’entrée X. La fonction de distribution probabiliste selon laquelle est distribué l’espace latent H est par exemple une Gaussienne multidimensionnelle, de même que celle selon laquelle est distribué l’espace d’entrée X.
Chaque réseau de neurones inversibles comporte un ou plusieurs blocs inversibles 32 (de l’anglais coupling layer), où chaque bloc inversible 32 représente une transformée bijective entre son entrée et sa sortie. Dans l’exemple de la figure 3, chaque composant 20 du module de calcul 18 comporte un bloc inversible avec quatre dimensions d’entrée/sortie, et la transformée bijective associée au bloc inversible 32 du composant Ci est par exemple la fonction g, et les équations suivantes sont par exemple vérifiées dans l’exemple de ce bloc inversible du composant Ci : y = g(x ) (1 ) yi = #i0¾) + *1 (2)
*2 = y2 - flf2(yi) (5)
*1 = yi - s,i0¾) (6)
Dans l’exemple de la figure 3, chaque réseau de neurones inversible d’un composant 20 comporte en outre une couche 34 d’adaptation d’échelle, et les paramètres de cette couche d’adaptation 34 sont également entrainables.
L’homme du métier notera bien entendu que le réseau de neurones inversible d’un composant 20 est susceptible de comporter plusieurs blocs inversibles 32, où les blocs inversibles 32 sont alors connectés les uns à la suite des autres, afin de toujours préserver la même dimension d’espace entre l’entrée et la sortie, comme illustré sur la figure 3 pour les blocs inversibles 32 du réseau de neurones inversible inclus dans le module d’extraction 28.
La figure 3 illustre également la connexion de plusieurs réseaux de neurones inversibles à un réseau de neurones inversible commun, lorsque le module d’extraction 28 comporte un ou plusieurs réseaux de neurones inversibles connectés les uns à la suite des autres, le dernier réseau inversible de cette succession étant alors connecté à chacun des réseaux de neurones inversibles associés aux composants 20 agencés en parallèle. En particulier, pour chaque dimension, le nœud de sortie du dernier réseau inversible commun est connecté au nœud d’entrée de la même dimension de chacun des réseaux de neurones inversibles en entrée des composants 20, comme représenté sur la figure 3.
Sur la figure 3, le ou les réseaux de neurones inversibles communs (représentés sur la partie gauche de la figure) jouent alors le rôle d’extracteur de caractéristique(s) commune(s) à la pluralité de tâches pour tous les réseaux de neurones inversibles des composants 20 (représentés sur la partie droite de la figure), qui sont agencés en parallèle les uns des autres et spécifiques à chaque tâche.
Le module de détermination 22 est configuré pour déterminer une tâche pour chaque donnée en évaluant, pour chaque composant 20, noté Ck, un score de vraisemblance à partir du vecteur latent hk correspondant ; et en attribuant, à ladite donnée, la tâche d’identifiant k associée au composant 20 avec le score de vraisemblance le plus élevé parmi la pluralité de scores de vraisemblance évalués ; et si le score de vraisemblance évalué est incohérent pour le composant 20 associé à la tâche attribuée, en modifiant la tâche attribuée en tâche inconnue.
Chaque score de vraisemblance évalué par le module de détermination 22 est par exemple un score logarithmique et chaque score de vraisemblance comporte alors de préférence le terme logarithmique suivant
(7) où PH représente une fonction de distribution probabiliste de l’espace latent H, k est un indice entier représentant chaque composant, k étant typiquement compris entre 1 et P, avec P représentant le nombre de composants, P ³ 2,
Fk est une fonction inversible, ou bijective, reliant un vecteur latent hk au vecteur donnée x : hk = Fk(x ) ;
Chaque fonction de distribution probabiliste de l’espace latent H vérifie par exemple l’équation suivante :
PHW = Yld PHd(hd) (8) où d représente le nombre de dimensions de l’espace d’entrée X et de l’espace latent H qui est identique pour les deux espaces, du fait de l’utilisation de réseaux de neurones inversibles.
L’homme du métier observera alors que dans l’équation (8) les composants hd sont indépendants les uns des autres, de sorte que l’espace latent H se factorise.
En outre, étant donné que la fonction F est inversible, la fonction de distribution probabiliste de l’espace d’entrée X vérifie l’équation suivante : dFk(x ) det
dx (9) dFk(x ) où le terme det dx représente le déterminant Jacobien de la fonction de transformation Fk(x)
Lorsque la fonction de distribution probabiliste de l’espace d’entrée X vérifie l’équation (9) précédente, le score de vraisemblance logarithmique s’écrit typiquement sous la forme suivante : l°gp (x) = log p (ffe(x)) + log |det^^ (10)
Le score de vraisemblance logarithmique selon l’équation (10) comporte alors le terme logarithmique de l’équation (7) précédente.
Le réseau de neurones inversible de chaque composant 20 comporte des paramètres Q, les paramètres de chaque composant Ck étant alors notés 0k, et lesdits paramètres sont optimisés de préférence via une méthode de vraisemblance maximale.
L’apprentissage du ou des réseaux de neurones inversibles de chaque composant est alors de préférence effectué via un algorithme de rétro-propagation pour le calcul du gradient de chaque paramètre Q.
L’apprentissage de chaque réseau est de préférence encore continu, et notamment effectué après chaque traitement de données.
Les paramètres optimisés 9 du ou des réseaux de neurones inversibles de chaque composant Ck vérifient alors par exemple l’équation suivante :
L’homme du métier observera alors que l’estimation de vraisemblance maximale est effectuée indépendamment, c’est-à-dire séparément, pour chaque composant Ck, i.e. indépendamment pour chaque valeur de l’indice k.
Le module de détermination 22 est alors configuré pour déterminer la tâche pour chaque donnée, en attribuant à ladite donnée la tâche d’indice k qui est associée au composant avec le score de vraisemblance le plus élevé parmi la pluralité de scores évalués, et l’identifiant, ou label, de ladite tâche vérifie alors typiquement l’équation suivante :
En variante, l’identifiant de ladite tâche est déterminé selon l’équation suivante :
L’homme du métier remarquera alors que la détermination dudit identifiant selon l’équation (13) précédente utilise un score de vraisemblance logarithmique simplifié basé seulement sur le terme latent du score de vraisemblance, c’est-à-dire sur le terme logp^(Ffe(x)), et ne prenant pas en compte le terme correspondant au logarithme du dFk(x ) déterminant Jacobien de la fonction de transformation, c’est-à-dire le terme log |det dx
Les inventeurs ont en effet observé que l’utilisation du seul terme latent logp# (Ffe(x)) permet d’obtenir de meilleurs résultats lorsque la détermination de tâches est utilisée pour de la classification de données et/ou pour de la détection de frontières de classes, alors que l’utilisation du score de vraisemblance logarithmique complet selon l’équation (12) précédente est préférable pour l’optimisation de chaque réseau de neurones inversibles. Ils estiment que ceci est probablement dû au fait que le terme du score de vraisemblance logarithmique correspondant au logarithme du déterminant Jacobien, c’est-à-dire le terme dFk(x) log | det , est susceptible de contracter, ou au contraire de détendre, le volume de dx l’espace latent, ce qui est alors susceptible de conduire à des différences assez sensibles de scores de vraisemblance d’une tâche à l’autre. Si ce terme log |det^^| est ignoré, le volume de l’espace latent H de chaque composant Ck est alors équivalent à celui de l’espace d’entrée X, ce qui permet une meilleure liaison entre les différents composants Ck. Toutefois, la qualité d’exemple(s) artificiel(s) généré(s) en utilisant une propagation inverse de vecteur(s) aléatoire(s) ou pseudo-aléatoire(s), ainsi que cela sera décrit plus en détail par la suite, est bien meilleure, notamment moins bruitée, lorsque la propagation inverse est effectuée depuis l’espace latent H vers l’espace d’entrée X à travers des couches des réseaux de neurones inverses qui ont été entraînés et optimisés en utilisant le score de vraisemblance complet selon l’équation (10), c’est-à-dire en déterminant l’identifiant de chaque tâche selon l’équation (12) lors de cette phase d’optimisation.
La fonction PH de distribution probabiliste de l’espace latent H est généralement une fonction de distribution normale standard factorisée, telle que la fonction de distribution vérifiant par exemple l’équation suivante :
où ma, et respectivement s , représentent la moyenne, et respectivement l’écart type, de la fonction de distribution probabiliste de dimension d, telle que la Gaussienne multidimensionnelle.
Le module de détermination 22 est configuré pour déterminer que le score de vraisemblance évalué est incohérent pour le composant 20 associé à la tâche attribuée si
l’écart entre le score de vraisemblance évalué et un score de vraisemblance moyen pour ledit composant 20 est supérieur à un seuil. Ce seuil est par exemple une valeur prédéfinie pour chaque composant 20, ou encore un pourcentage d’une valeur moyenne observée pour chaque composant 20.
En variante, le module de détermination 22 est configuré pour détecter que le score de vraisemblance évalué est incohérent, et que la tâche attribuée doit alors être modifiée en tâche inconnue en appliquant une méthode dite de détection hors-distribution, également notée OOD (de l’anglais Out-Of-Distribution), au score de vraisemblance évalué.
En complément facultatif, le module de détermination 22 est configuré en outre pour transmettre les vecteurs latents hk calculés à un autre dispositif électronique de traitement de données, tel qu’un classificateur k-NN (de l’anglais K-Nearest Neighbours), c’est-à-dire un classificateur (de l’anglais c/ass/7/er) mettant en œuvre l’algorithme des k plus proches voisins, ou un autre algorithme de l’apprentissage automatique, tel qu’un ou des réseaux de neurones artificiels.
En complément, le module de détermination 22 est configuré en outre pour générer un vecteur de nombre(s) aléatoire(s) ou pseudo-aléatoire(s) correspondant à la distribution de l’espace latent H d’un des composants 20, puis pour propager ledit vecteur aléatoire ou pseudo-aléatoire de manière inverse via le réseau de neurones inversibles correspondant, c’est-à-dire via le réseau de neurones inversibles du composant correspondant à la distribution de l’espace latent prise en compte, afin de créer un exemple artificiel 52 de donnée(s), un identifiant de tâche associée à cet exemple artificiel 52 étant alors l’identifiant dudit composant via lequel a été effectuée la propagation inverse.
Dans l’exemple de la figure 2, la création de l’exemple artificiel 52 est illustrée pour le composant C5, et la propagation inverse du vecteur aléatoire ou pseudo-aléatoire est représentée par le vecteur aléatoire hs 5 généré par le module de détermination 22 à destination du composant C5, puis propagé de manière inverse en direction de l’espace d’entrée X, comme représenté par les flèches G1, G2 et G3.
Selon ce complément, le vecteur aléatoire ou pseudo-aléatoire, c’est-à-dire le vecteur hs 5dans l’exemple de la figure 2, ou encore le vecteur hs 2 dans l’exemple de la figure 4, est propagé de manière inverse vers le module de calcul 18 comme dans l’exemple de la figure 2, ou encore vers le module de réentraînement 30 distinct du module de calcul 20 comme dans l’exemple de la figure 4.
Le vecteur aléatoire hs k vérifie alors l’équation suivante : hs ~ PH (15) et l’exemple artificiel 52 ainsi créé via cette propagation inverse, également noté xs(k) vérifie alors l’équation suivante :
xs(k) = F-1’k(hs k, ek*) (16)
Selon ce complément, le dispositif électronique de traitement 14 permet alors, en d’autres termes, de générer des échantillons xs de la distribution apprise rc(c,q*) en effectuant un tirage d’un échantillon au sort à partir de la fonction de distribution de l’espace latent, et en transférant cet échantillon aléatoire vers l’espace d’entrée par propagation inverse, c’est-à-dire en appliquant la fonction inverse F 1, à l’échantillon aléatoire de la fonction de distribution de l’espace latent H. Les équations (15) et (16) précédentes correspondent au cas où la fonction de distribution de l’espace latent est une équation standard factorisée. L’homme du métier observera en outre que la complexité de calculs associés à la génération d’un tel échantillon est alors équivalente à celle mise en œuvre pour optimiser les paramètres des réseaux de neurones des composants 20 du module de calcul 18 via la méthode de vraisemblance maximale, dans le sens de l’inférence, c’est-à- dire depuis l’espace d’entrée X vers l’espace latent H.
Le module de rétroaction 24 est configuré pour stocker dans la mémoire tampon 26 chaque donnée de tâche inconnue, c’est-à-dire chaque donnée de tâche dont le score de vraisemblance évalué est incohérent, et pour déclencher la création d’une nouvelle tâche le cas échéant.
Le module de rétroaction 24 est par exemple configuré pour déclencher la création d’une nouvelle tâche si le nombre de données stockées dans la mémoire tampon 26 est supérieur à un nombre prédéfini. Le module de calcul 18 est alors configuré pour inclure un nouveau composant 20 associé à la nouvelle tâche créée par le module de rétroaction 24, comme représenté par la flèche R1 dans les exemples des figures 2 et 4, et l’apprentissage du nouveau composant 20 est alors effectué à partir desdites données stockées dans la mémoire tampon 26.
En complément facultatif, le module d’extraction 28, connecté entre le module d’acquisition 16 et le module de calcul 18, est configuré pour mettre en œuvre au moins un réseau de neurones pour convertir l’ensemble de donnée(s), tels que le vecteur de données X acquis, en une représentation simplifiée, en extrayant alors une ou plusieurs caractéristiques communes à la pluralité de tâches. Chaque réseau de neurones du module d’extraction 28 est de préférence un réseau de neurones inversibles.
Dans l’exemple des figures 2 et 4, le module d’extraction 28 est avantageusement constitué d’un premier extracteur 60 configuré pour mettre en œuvre un réseau de neurones avec des poids figés suite à l’apprentissage dudit réseau et d’un deuxième extracteur 62 configuré pour mettre en œuvre un réseau de neurones avec des poids entraînables via un apprentissage continu, tel qu’un apprentissage effectué après chaque traitement de données, notamment via un algorithme de propagation inverse lorsque les
premier et deuxième extracteurs 60, 62 comportent chacun des réseaux de neurones inversibles.
L’homme du métier comprendra alors que l’architecture du dispositif électronique de traitement 14 selon ce complément facultatif est particulière en ce qu’elle comporte deux parties, à savoir une partie agnostique aux tâches correspondant au module d’extraction 28, et en particulier au premier extracteur de caractéristiques 60 et au deuxième extracteur de caractéristiques 62, et une partie spécifique aux tâches comportant plusieurs blocs inversibles indépendants, à savoir les composants 20, qui sont tous connectés en parallèle à la partie agnostique aux tâches. Cette architecture en deux parties avec une partie agnostique et une partie spécifique permet alors d’offrir un meilleur apprentissage en continu.
En particulier, la partie spécifique aux tâches, c’est-à-dire le module de calcul 18 comportant les composants 20 indépendants les uns des autres, correspond à des composants de niveau élevé de la distribution à modéliser, et étant donné que leur poids sont indépendants, ils ne sont pas sujets au phénomène de l’oubli catastrophique. La partie agnostique aux tâches permet quant à elle de jouer le rôle d’extracteur de caractéristiques communes à tous les composants 20, mais est toutefois sujette au phénomène d’oubli catastrophique si les tâches sont apprises d’une manière séquentielle. La partie agnostique aux tâches permet toutefois d’utiliser beaucoup moins de paramètres, étant donné que les caractéristiques agnostiques aux tâches sont utilisables simultanément par tous les composants 20 qui sont spécifiques aux tâches. En outre, si les caractéristiques bas niveau de toutes les tâches sont similaires, ce qui est généralement le cas si l’apprentissage est effectué sur un ensemble de données spécifiques, chaque tâche additionnelle est alors apprise plus rapidement et avec un plus faible nombre d’exemples, en étant basée sur les caractéristiques agnostiques aux tâches déjà existantes.
Dans l’exemple des figures 2 et 4, les caractéristiques communes à la pluralité de tâches sont symbolisées par les fonctions fo à ÎN-I pour le premier extracteur 60, puis par les fonctions fn à †M-I pour le deuxième extracteur 62, et les caractéristiques spécifiques à chaque tâche sont ensuite symbolisées par les fonctions fM k fwi+A à fi_k où k représente l’identifiant de la tâche.
L’homme du métier comprendra alors que le premier extracteur 60 est configuré pour mettre en œuvre une composée des fonctions fo à †N-I dans le sens de l’inférence ou de l’apprentissage, c’est-à-dire depuis l’espace de données X vers l’espace latent H, comme représenté par les flèches IL1 , IL2 et IL3, et inversement pour mettre en œuvre la composée de fonction f0 1 à fn 1 dans le sens inverse, par exemple pour la génération d’exemples
artificiels 52 depuis l’espace latent H vers l’espace de données X, comme représenté par les flèches G1 à G3.
De manière analogue, le deuxième extracteur 62 est configuré pour mettre en œuvre une composée des fonctions †N à †M-I dans le sens de l’inférence ou de l’apprentissage depuis l’espace de données X vers l’espace latent H, et inversement pour mettre en œuvre une composée des fonctions inverses ÎN 1 à †M 1 dans le sens de la génération d’exemples artificiels depuis l’espace latent H vers l’espace de données X.
De manière analogue encore, chaque composant Ck est configuré pour mettre en œuvre une composée des fonctions spécifiques fM k àfi_k dans le sens de l’inférence et de l’apprentissage depuis l’espace de données X vers l’espace latent H, et inversement seul le composant associé au vecteur aléatoire généré, tel que le composant C5 dans l’exemple de la figure 2 ou encore le composant C2 dans l’exemple de la figure 4, est configuré pour mettre en œuvre dans le sens inverse une composée fonction inverse, telle que la composée des fonctions inverses (fM 5) 1 à (fi_5) 1 dans l’exemple de la figure 2, ou encore telle que la composée des fonctions inverses (fM 2) 1 à (fi_2) 1 dans l’exemple de la figure 4.
L’homme du métier comprendra alors que chaque vecteur latent hk vérifie l’équation suivante dans ces exemples des figures 2 et 4 :
De manière analogue, chaque exemple artificiel x généré en utilisant le composant Ck en inverse vérifie l’équation suivante :
avec la convention de notation suivante : (/ ) 1 = fe
L’homme du métier comprendra en outre que, dans l’équation (17), la composée des fonctions fo à †M-I correspond à la partie agnostique aux tâches, c’est-à-dire au module d’extraction 28 optionnel, et la composée des fonctions fM k à fi_k correspond à la partie spécifique aux tâches, en l’occurrence à la partie spécifique à la tâche d’identifiant k, c’est- à-dire au composant Ck.
De manière analogue, dans l’équation (18), la composée des fonctions inverses fo 1 à †M 1 correspond à la partie agnostique aux tâches, c’est-à-dire au module d’extraction 28 optionnel, et la composée des fonctions inverses (fM k) 1 à (fi_k) 1 correspond à la partie spécifique aux tâches, en particulier à la mise en œuvre inverse du composant Ck.
Lorsqu’en complément facultatif, le dispositif électronique de traitement 14 comprend en outre le module d’extraction 28 connecté entre le module d’acquisition 16 et le module de calcul 18, en particulier comporte en outre le deuxième extracteur 62, le module de rétroaction 24 est configuré pour transmettre les nouvelles données stockées dans la
mémoire tampon 26 à la fois au module de calcul 18 pour l’inclusion d’un nouveau composant 20 associé à la nouvelle tâche selon la flèche R1 ; et également au module d’extraction 28, en particulier au deuxième extracteur 62 dont le ou les réseaux de neurones comportent des poids entraînables, le deuxième extracteur 62 étant alors également entraîné avec ces données issues du module de rétroaction 24, comme représenté par la flèche R2.
Le dispositif électronique de traitement 14 selon l’invention offre alors différentes applications. Une première application est la classification de données, et la tâche ou classe, prédite pour chaque donnée à traiter est alors déterminée en recherchant le composant 20 présentant le score de vraisemblance le plus élevé parmi la pluralité de scores évalués pour les différents composants 20, la tâche déterminée étant alors celle associée au composant présentant le score de vraisemblance le plus élevé. Le label t de la tâche déterminée vérifie alors par exemple l’équation (12), ou encore de préférence l’équation (13) qui ne prend pas en compte le terme de volume, i.e. qui ne prend pas en compte le logarithme du déterminant Jacobien, et fournit alors de meilleurs résultats.
L’homme du métier observera que plusieurs identifiants k de composants peuvent être assignés à un même label, ou identifiant, de tâche t.
Une deuxième application du dispositif électronique de traitement 14 selon l’invention est la labellisation de composants, ou encore l’identification de composants, une telle labellisation étant par exemple obtenue via un apprentissage supervisé, ce qui signifie alors que le label de tâches t est fourni avec la donnée x, et le module de calcul 18 comporte alors un unique composant 20 pour chaque tâche.
En variante, cette labellisation de composants est effectuée de manière non supervisée, et le dispositif de traitement 14 est alors configuré pour effectuer un apprentissage non-supervisé de tâches, chaque composant 20 du module de calcul 18 étant alors configuré pour calculer un vecteur dans l’espace latent H pour chaque nouvelle donnée, l’espace latent H comportant alors des vecteurs latents hk pour cette nouvelle donnée, et un identifiant du composant 20 étant en outre associé à chaque vecteur latent hk calculé.
Pour cet apprentissage non-supervisé, selon une première alternative, le module de détermination 22 est par exemple configuré en outre pour modifier les identifiants de composant 20 à partir d’un lot d’exemples identifiés, un identifiant respectif étant associé à chaque exemple ; ceci en attribuant pour chaque exemple son identifiant au composant 20 présentant le score de vraisemblance le plus élevé, le ou les composants n’ayant aucun identifiant attribué après prise en compte de tous les exemples du lot étant alors ignoré(s).
Selon cette variante, en apprentissage non-supervisé, plusieurs composants 20 du module de calcul 18 sont susceptibles de représenter une même tâche.
Pour cet apprentissage non-supervisé, selon une deuxième alternative correspondant à une labellisation autonome, les labels de tâches sont déjà assignés durant l’apprentissage en utilisant un processus de labellisation continu. Selon cette deuxième alternative, chaque fois que le dispositif de traitement 14 détecte une nouvelle tâche, le label de tâche courant est alors incrémenté, et tous les exemples subséquents sont traités comme correspondant à ce label jusqu’à ce qu’une nouvelle tâche soit détectée par le dispositif de traitement 14, en particulier par le module de détermination 22. Lorsqu’un nouveau composant est ajouté au module de calcul 18, suite à la détection d’une nouvelle tâche, ce composant est alors assigné avec le label de la nouvelle tâche. L’homme du métier observera que la labellisation selon cette deuxième alternative d’apprentissage non-supervisé est alors basée sur l’interprétation du dispositif de traitement 14, et en particulier de ses réseaux de neurones, et les tâches ainsi identifiées ne correspondent alors pas nécessairement à des tâches réelles de l’environnement.
Une troisième application du dispositif électronique de traitement 14 est la détection de données hors-distribution pour la classification et/ou pour la détection de frontières de tâches. Cette troisième application correspond de préférence à un apprentissage non- supervisé sans label de tâche préalablement assigné. L’homme du métier notera toutefois que la détection de tâche(s) ou classe(s) inconnue(s) permet aussi, lorsque le dispositif de traitement 14, et en particulier ses réseaux de neurones, sont en mode d’inférence pure, et qu’aucun nouveau composant n’est ajouté, de calculer une estimation d’une certitude de réponse du ou des réseaux de neurones. La détection de tâche(s) inconnue(s) selon cette troisième application est alors effectuée, comme décrit précédemment, en détectant qu’un score de vraisemblance évalué par le module de détermination 22 est incohérent pour le composant 20 associé à la tâche attribuée, une telle incohérence correspondant typiquement à un écart entre le score de vraisemblance évalué et le score de vraisemblance moyen pour ledit composant supérieur à un seuil. L’homme du métier comprendra alors que cette application de détection de tâche(s) inconnue(s) est susceptible d’être mise en œuvre seulement après la mise en œuvre d’une phase de mise en route lors de laquelle un certain nombre d’itérations est effectué pour chaque composant 20, ceci jusqu’à ce qu’il converge vers la distribution d’une tâche respective, et lors de cette phase de mise en route aucune tâche inconnue n’est susceptible d’être détectée.
Le seuil utilisé pour détecter de nouvelle(s) tâche(s), via une incohérence du score de vraisemblance évalué, est par exemple une valeur prédéfinie pour chaque composant ou encore un pourcentage d’une valeur moyenne observée pour chaque composant. Dans
ce dernier cas, le score de vraisemblance évalué est alors considéré comme incohérent à partir du moment où il dévie dudit pourcentage par rapport au score de vraisemblance moyen observé pour ledit composant.
Selon cette troisième application, les échantillons qui sont considérés comme inconnus sont alors ajoutés dans la mémoire tampon 36, et lorsque le nombre d’échantillons inconnus est supérieur au nombre prédéfini précité, le module de détermination 22 considère que la tâche a changé, et un apprentissage est alors effectué pour la nouvelle tâche, comme représenté par les flèches R1 , R2 et décrit précédemment.
En complément encore, le module de rétroaction 24 est configuré pour effacer régulièrement la mémoire tampon 26, par exemple si après un petit nombre d’échantillons inconnus est rencontré à nouveau un grand nombre d’exemples connus, c’est-à-dire associés à des tâches déjà connues. Un tel effacement régulier de la mémoire tampon 26 par le module de rétroaction 24 permet alors d’éviter l’ajout d’une nouvelle tâche qui serait basée sur des exemples inconnus disparates obtenus au fil du temps jusqu’à ce que le nombre de données inconnues dépasse le nombre prédéfini de déclenchement de la création d’une nouvelle tâche.
Une quatrième application du dispositif électronique de traitement 14 selon l’invention est l’addition autonome et dynamique de composants 20 au sein du module de calcul 18. En effet, comme décrit précédemment, lorsqu’une nouvelle tâche a été détectée, un nouveau composant 20 est initialisé au sein du module de calcul 18, ceci par exemple avec des poids aléatoires, ou encore avec les poids du composant 20 (parmi ceux déjà existants) ayant le score de vraisemblance le plus élevé pour les données stockées dans la mémoire tampon 26.
Ce nouveau composant 20, et le cas échéant le deuxième extracteur 62, est alors entraîné pour le nombre d’itérations correspondant à la phase de mise en route, décrite précédemment, par exemple via une optimisation basée sur les gradients à partir des données stockées dans la mémoire tampon 26, ce qui permet alors au nouveau composant 20 de converger vers la distribution de la nouvelle tâche. En variante, au lieu d’utiliser un nombre défini d’itérations lors de cette phase de mise en route, la phase de mise en route pour l’apprentissage du nouveau composant 20 est effectuée jusqu’à ce qu’un critère de convergence soit vérifié.
Le nouveau composant 20 ainsi ajouté au module de calcul 18 représente alors la distribution de la nouvelle tâche, et la mémoire tampon 26 est alors effacée. L’apprentissage est ensuite poursuivi avec les nouvelles données acquises, qui sont alors assignées au nouveau composant, jusqu’à ce qu’une prochaine nouvelle tâche soit détectée.
Selon un aspect complémentaire correspondant au deuxième mode de réalisation de la figure 4, le dispositif électronique de traitement 14 selon l’invention comprend en outre le module de réentraînement 30, celui-ci étant distinct du module de calcul 18, et le cas échéant du module d’extraction 28.
Selon cet aspect complémentaire, le module de réentraînement 30 est configuré pour recevoir le vecteur aléatoire ou pseudo-aléatoire hs k (tel que le vecteur hs 2 dans l’exemple de la figure 4), généré par le module de détermination 22 pour le composant d’indice k qui est à entraîner à nouveau, et le module de réentraînement 30 est alors configuré pour fournir au moins un exemple artificiel 52 de donnée(s) et son identifiant, ceci au composant 20 du module de calcul 18 qui est associé au même identifiant k, tel que l’identifiant de valeur 2 dans l’exemple de la figure 4.
Selon cet aspect complémentaire, le module de réentraînement 30 comporte alors une copie de chaque composant 20 qui est à entraîner à nouveau.
Lorsque le dispositif électronique de traitement 14 comprend en complément facultatif le module d’extraction 28 comportant notamment le deuxième extracteur 62, le module de réentraînement 30 comporte en outre une copie du deuxième extracteur 62, et le module de réentraînement 30 est alors configuré en outre pour fournir chaque exemple artificiel 52 de données au module d’extraction 28, et en particulier à son deuxième extracteur 62, pour un nouvel apprentissage de celui-ci, comme représenté par la flèche G’4.
L’homme du métier comprendra en outre que - de manière analogue à ce qui a été expliqué pour la génération d’exemples artificiels 52 selon le premier mode de réalisation au vu de la figure 2 - le module de réentraînement 30 est configuré pour créer chaque exemple artificiel 52 de données en effectuant une propagation de manière inverse du vecteur aléatoire ou pseudo-aléatoire à travers le composant 20 considéré qui est une copie du composant 20 du module de calcul 18 qui est à entraîner à nouveau, comme illustré par la flèche G’1 à la figure 4 ; et le cas échéant à travers le deuxième extracteur 62 dont le ou les réseaux de neurones sont alors inversibles, comme illustré par la flèche G’2 à la figure 4, le deuxième extracteur 62 contenu dans le module de réentraînement 30 étant une copie du deuxième extracteur 62 du module d’extraction 28.
La copie est effectuée à chaque fois avant qu’un nouveau composant 20 est ajouté. Dans les cas d’apprentissage non-supervisé avec détection automatique de tâches via la mémoire tampon 26, la copie est effectuée avant que le composant 20, et le cas échéant le deuxième extracteur 62, soient entraînés avec les données de la mémoire tampon 26.
Le fonctionnement du dispositif électronique de traitement 14 selon l’invention va être à présent décrit en regard de la figure 5 représentant un organigramme du procédé de traitement selon l’invention, celui-ci étant mis en œuvre par le dispositif de traitement 14.
Lors d’une étape initiale 100, le dispositif de traitement 14 acquiert, via son module d’acquisition 16, l’ensemble de données à traiter, celui-ci étant typiquement en forme d’un vecteur de données x.
Lors de cette étape d’acquisition 100, le module d’acquisition 16 effectue en complément facultatif une normalisation de l’ensemble de donnée(s) et/ou un enrichissement de l’ensemble de donnée(s), par exemple via une ou plusieurs rotations d’angle aléatoire.
Lorsqu’en complément facultatif, le dispositif de traitement 14 comporte le module d’extraction 28, il extrait, lors d’une étape suivante optionnelle 110 et via son module d’extraction 28, une ou plusieurs caractéristiques communes à plusieurs tâches afin de convertir l’ensemble de données acquis en une représentation simplifiée, ce qui permet alors de mettre ensuite en œuvre plus rapidement la partie spécifique à chaque tâche, via le module de calcul 18. Cette étape optionnelle 110 correspond en effet à une étape agnostique aux tâches, qui est mise en œuvre par le module d’extraction 28 et qui correspond à la partie de l’architecture du dispositif de traitement 14 qui est agnostique aux tâches, comme expliqué précédemment.
A l’issue de l’étape 100 d’acquisition, ou le cas échéant à l’issue de l’étape optionnelle 110 d’extraction, le dispositif de traitement 14 calcule, lors de l’étape suivante 120 et via son module de calcul 18, un vecteur latent hk pour chaque composant 20 inclus dans le module de calcul 18 et à partir de l’ensemble de donnée(s), c’est-à-dire soit à partir de vecteur de données x acquis lors de l’étape d’acquisition 100 ou bien à partir de la représentation simplifiée obtenue à l’issue de l’étape d’extraction 110.
Selon l’invention, chaque composant 20 associé à une tâche respective et calculant le vecteur latent hk est configuré pour mettre en œuvre un réseau de neurones inversible, et cette possibilité d’inverser le réseau de neurones de chaque composant 20 permet alors d’exprimer la fonction de vraisemblance des données d’entrée facilement en fonction des valeurs de l’espace latent H, c’est-à-dire facilement en fonction du vecteur latent hk, lors de l’étape suivante 130.
A l’issue de l’étape 120 de calcul de chaque vecteur latent hk, le dispositif de traitement 14 détermine en effet, lors de l’étape 130 et via son module de détermination 22, une tâche pour chaque donnée en évaluant le score de vraisemblance pour chaque composant, ceci à partir du vecteur latent hk calculé pour chaque composant 20. Lors de cette étape de détermination 130, la tâche déterminée est alors celle associée au composant 20 présentant le score de vraisemblance le plus élevé, et le label t de la tâche déterminée vérifie par exemple l’équation (12) ou encore l’équation (13).
Lorsqu’en complément facultatif, le dispositif de traitement 14 comprend en outre le module de rétroaction 24, le dispositif de traitement 14 effectue lors de l’étape suivante 140 et via ledit module de rétroaction 24, un stockage dans la mémoire tampon 26 de chaque donnée de tâche inconnue, c’est-à-dire de chaque donnée pour laquelle le score de vraisemblance évalué est incohérent pour le composant associé à la tâche attribuée, qui est alors considérée comme inconnue.
Lors de cette étape optionnelle de rétroaction 140, le module de rétroaction 24 déclenche en outre la création d’une nouvelle tâche si nécessaire, par exemple si le nombre de données stockées dans la mémoire tampon 26 est supérieur au nombre prédéfini. Le cas échéant, le module de calcul 18 est préférentiellement configuré pour inclure alors un nouveau composant 20 associé à la nouvelle tâche, et l’apprentissage du nouveau composant 20 est effectué à partir des données stockées dans la mémoire tampon 26, comme décrit précédemment.
Enfin; le dispositif de traitement 14 effectue optionnellement, lors de l’étape suivante 150, et via son module de calcul 18 en propagation inverse selon le premier mode de réalisation de la figure 2, ou encore via son module de réentraînement 30 selon le deuxième mode de réalisation de la figure 4, la création d’au moins un exemple artificiel 52 de données à partir du vecteur aléatoire ou pseudo-aléatoire hs k généré par le module de détermination 22. Plus précisément, le vecteur aléatoire ou pseudo-aléatoire hs k est généré par le module de détermination 22 pour correspondre à la distribution de l’espace latent du composant Ck qui est à entraîner à nouveau, et ce vecteur hs k est alors propagé en inverse depuis l’espace latent H vers l’espace d’entrée X via le réseau de neurones inversibles du composant Ck à entraîner à nouveau dans l’exemple de la figure 2, ou bien via le réseau de neurones inversibles de la copie du composant Ck à entraîner à nouveau qui est incluse dans le module de réentraînement 30 dans l’exemple de la figure 4. L’exemple artificiel, ainsi que son identifiant, ainsi créés sont alors fournis au composant Ck du module de calcul 18 qui est associé au même identifiant k.
Lorsqu’en complément facultatif le dispositif de traitement 14 comporte également le module d’extraction 28, celui-ci étant alors composé de réseaux de neurones inversibles, le vecteur aléatoire ou pseudo-aléatoire hs k est aussi propagé à travers ledit module d’extraction 28 de manière inverse, comme représenté sur la figure 2 par les flèches G1 et G2. Dans l’exemple de la figure 4 correspondant au deuxième mode de réalisation, lorsqu’en complément facultatif le module de réentraînement 30 comporte aussi une copie dudit deuxième extracteur 62, le vecteur aléatoire ou pseudo-aléatoire hs k est alors propagé de manière inverse également à travers la copie dudit deuxième extracteur 62, puis l’exemple artificiel 52 ainsi créé par le module de réentraînement 30 est alors fourni
également au deuxième extracteur 62 du module d’extraction 28. Dans ce cas, si le deuxième extracteur 62 est entrainable, il est, comme le composant Ck , entraîné à nouveau sur l’exemple artificiel, par rétro-propagation du gradient du composant Ck. Le dispositif de traitement 14 selon l’invention permet alors d’effectuer un apprentissage continu à base de réseaux génératifs de neurones, ces réseaux de neurones étant en outre inversibles, ce qui permet alors d’exprimer la fonction de vraisemblance des données de l’espace d’entrée X plus facilement en fonction des valeurs des vecteurs de l’espace latent H.
L’homme du métier observera que le dispositif de traitement 14 selon l’invention permet d’effectuer à la fois des apprentissages de type non-supervisé et des apprentissages de type supervisé, comme expliqué précédemment à travers les première, deuxième, troisième et quatrième applications décrites.
Les réseaux inversibles permettent également un calcul exact du score de la vraisemblance des données de l’espace d’entrée X suivant la fonction de distribution probabiliste de cet espace d’entrée, et de déterminer alors le cas échéant si le score de vraisemblance d’un échantillon est incohérent pour le composant associé à la tâche attribuée, ce qui permet alors de détecter une tâche inconnue en apprentissage non- supervisé.
En outre, selon le premier mode de réalisation de la figure 2, l’utilisation de réseaux de neurones inversibles pour chaque composant 20 du module de calcul 18 permet d’utiliser un unique réseau de neurones à la fois pour l’encodage depuis l’espace d’entrée X vers l’espace latent H et pour le décodage depuis ledit espace latent H vers ledit espace d’entrée X, ce décodage permettant alors de créer des exemples artificiels 52 pour le réentraînement ultérieur des réseaux de neurones des composants 20.
L’aspect complémentaire correspondant au deuxième mode de réalisation de la figure 4 où le dispositif de traitement 14 comporte en outre le module de réentraînement 30 distinct du module de calcul 18 permet alors la génération d’exemples artificiels 52 par le module de réentraînement 30 en même temps que le module de calcul 18 continue d’effectuer l’apprentissage de tâches, ce qui permet de créer plus facilement et plus régulièrement des exemples artificiels 52 pour le réentraînement ultérieur des réseaux de neurones des composants 20 correspondants.
En outre, quel que soit le mode de réalisation, les réseaux de neurones inversibles des composants 20 du module de calcul 18 et, le cas échéant le réseau de neurones inversible du deuxième extracteur 62, permettent d’implémenter l’algorithme de rétro- propagation du gradient avec une moindre quantité de ressources mémoires étant donné que les activations de chaque neurone sont reconstructibles à partir de la sortie du réseau correspondant. Cela permet alors de recalculer les activations en parallèle pendant la rétro-
propagation du gradient, sans avoir à sauvegarder les activations de chaque neurone pendant une phase d’inférence, et cette moindre utilisation des ressources mémoires est alors particulièrement adaptée lorsque le dispositif de traitement 14 selon l’invention est mis en œuvre dans un système embarqué. On conçoit ainsi que le dispositif électronique de traitement 14, et le procédé de traitement associé, selon l’invention permettent d’offrir une meilleure solution au phénomène d’oubli catastrophique en représentant mieux les tâches et en apprenant alors des caractéristiques qui sont plus discriminantes.