Brevet FR3146536A1 — publié le 20240913

Système de réseaux neuronaux par distillation, procédés d’entrainement améliorés L’invention se rapporte à un système de réseaux de neurones de type élève-enseignant, dans lequel un premier réseau de neurones pré-entrainé, dit réseau enseignant (REN), est utilisé durant une phase d'apprentissage pour entrainer un deuxième réseau de neurones, dit réseau élève (REL), par minimisation d’au moins une fonction de coût (FC) entre des couches intermédiaires correspondantes desdits réseaux, lesdites couches intermédiaires comprenant chacune une couche de traitement linéaire (L) suivie d’une couche de traitement non linéaire (NL). Selon le principe général de la technique proposée, durant cette phase d’apprentissage, ces fonctions de coûts sont minimisées en fonction de données obtenues directement en sortie des couches de traitement linéaires (L) desdites couches intermédiaires correspondantes. Figure d’abrégé : Figure 3 Système de réseaux neuronaux par distillation, procédés d’entrainement améliorés L’invention se situe dans le domaine des réseaux de neurones artificiels. Plus particulièrement, l’invention se rapporte à l’utilisation de tels réseaux de neurones pour détecter des anomalies ou des défauts sur des produits manufacturées, par exemple au moment de leur fabrication, ou sur des produits bruts. Art antérieur La détection automatique de défauts ou d’anomalies sur des produits manufacturés, à partir d’images ou de vidéos de ces produits fournies en entrée d’un système électronique, est du plus haut intérêt, notamment dans le cadre de processus de contrôle de qualité mis en œuvre dans des environnements industriels. Dans ce domaine, des techniques de vision par ordinateur et d'intelligence artificielle sont ainsi de plus en plus exploitées, afin de proposer des solutions de détection et de localisation automatiques de défauts qui soient aussi fiables que possible et relativement peu onéreuses. Nombre de ces solutions reposent sur l’utilisation de réseaux de neurones artificiels, qui, une fois entrainés, s’avèrent particulièrement performants et bien adaptés pour réaliser des applications spécifiques de ce type, impliquant de la reconnaissance de formes et/ou de la classification de données. La présente de manière schématique et simplifiée une architecture standard de réseau de neurones de l’art antérieur, dans laquelle un nombre variable de couches de neurones se succèdent pour produire une sortie S (par exemple une classification) en fonction de données d’entrée E injectées dans le réseau (par exemple des images d’une pièce usinée ou d’un produit). Un tel réseau comprend généralement une couche d’entrée CE et une couche de sortie CS, entre lesquelles sont disposées une ou plusieurs couches intermédiaires (CI1, CI2, CI3). Les couches intermédiaires comprennent chacune un ou plusieurs neurones (non représentés), les neurones d’une couche prenant ses entrées sur les sorties des neurones de la couche précédente. Au sein d’un neurone, les entrées du neurone sont combinées de manière linéaire (i.e. via une somme pondérée des entrées), et le résultat de cette combinaison linéaire des entrées est injectée en entrée d’une fonction d’activation non linéaire (e.g. une fonction sigmoïde ou ReLu) qui délivre la valeur de sortie du neurone qui va à son tour alimenter la couche suivante du réseau. De manière simplifiée, et comme illustrée sur la , on peut donc considérer que chaque couche intermédiaire (CI1, CI2, CI3, etc.) peut être décomposée en une couche de traitement linéaire L (combinaison linéaire), suivie d’une couche de traitement non linéaire NL (activation non linéaire). Les différents poids du réseau de neurones (i.e. les différents coefficients de pondération utilisés pour la mise en œuvre de la combinaison linéaire des entrées au niveau de chaque neurone) sont ajustés au cours d’une phase d’apprentissage, par minimisation d’une fonction de coût. Plus particulièrement, pendant cette phase d'apprentissage, une sortie générée par le réseau est comparée avec une sortie attendue fournie par l'utilisateur (apprentissage supervisé) ou générée automatiquement (apprentissage non supervisé), et les poids du réseau de neurones sont ajustés progressivement, à l'aide d’un algorithme de rétropropagation du type descente de gradient, de manière à réduire l'erreur (i.e. minimiser la fonction de coût) entre la sortie obtenue et la sortie attendue. En répétant cette procédure un nombre suffisant de fois avec de nombreux exemples d'entraînement, les poids du réseau sont ainsi adaptés au fur et à mesure, jusqu’à ce que la sortie générée corresponde le mieux possible à la vérité du terrain dans la plupart des cas. Le réseau de neurones peut ensuite être utilisé pour réaliser l’application spécifique pour laquelle il a été ainsi entrainé, telle que la reconnaissance de formes ou la classification de données par exemple. De tels réseaux de neurones basés sur l’apprentissage profond pour l'analyse d'images ont montré ces dernières années un grand potentiel dans ces domaines relatifs à la classification d'images et à la détection d'objets. Sur la base d'une grande quantité d'images marquées ou étiquetées avec des classes d'objets ou des concepts, les algorithmes d’intelligence artificielle basés sur les réseaux de neurones sont notamment capables d'apprendre des représentations d'images avec un grand pouvoir de généralisation, et de fournir des performances de détection proches de celles des humains. Bien que prometteuses notamment dans le domaine de la détection de défauts, de nombreux freins font que les solutions existantes à base de réseaux de neurones standards (i.e. avec une architecture du type de celle illustrée sur la ) restent toutefois peu adaptées aux besoins et aux contraintes réels des acteurs industriels. En particulier, lorsqu'on essaie en pratique de déployer de telles solutions dans un environnement de production, la grande quantité de données requises pour entrainer le réseau, la nécessité d’identifier et d’étiqueter en masse des échantillons pour chaque type de défaut, la lenteur de l'apprentissage, et la rigidité de la technologie actuelle face à des situations en constante évolution sont parmi les principaux goulets d'étranglement qui empêchent ces solutions d'atteindre leur pleine maturité pour des applications à l’échelle industrielle. Diverses solutions ont été explorées pour remédier au moins en partie à certains de ces problèmes. Par exemple, au lieu d'apprendre à détecter les défauts, une approche différente, plus puissante, consiste à entrainer le réseau de neurones à apprendre l'apparence normale (i.e. sans défaut) des objets, de manière à détecter ensuite toute déviation par rapport à la normalité comme un défaut ou une anomalie. Via ce changement de paradigme, le nombre de données requises pour entrainer le réseau est diminué de manière significative et ces données sont plus simples à rassembler (puisqu’on va cibler cette fois-ci uniquement des « bons » produits, i.e. des images « normales » de pièces, sans défaut), et l'apprentissage est plus rapide (puisque le système n’a dans ce cas pas besoin d'apprendre à détecter plusieurs classes de défauts). Les solutions existantes qui reposent sur cette approche pour la détection d'anomalies ne permettent cependant toujours pas de lever certaines contraintes importantes identifiées précédemment. En particulier, elles reposent encore sur des schémas complexes d'apprentissage profond qui restent peu flexibles et nécessitent un effort d’apprentissage substantiel, ce qui fait qu’elles sont toujours peu adaptées pour une mise en œuvre dans des conditions réelles de production industrielle. Pour tenter de pallier ces inconvénients, des solutions basées sur le concept de distillation des connaissances (« knowledge distillation » en anglais) et sur des systèmes de réseaux de neurones de type élève-enseignant ont été développées et exploitées dans le domaine de la détection de défaut, avec notamment pour objectif de réduire la complexité des modèles de réseaux de neurones utilisés (technique de compression des réseaux) et les rendre ainsi un peu plus adaptés aux contraintes des industriels. La présente de manière schématique et simplifiée un exemple d’architecture d’un tel système de réseaux de neurones de type élève-enseignant, selon l’art antérieur, qui repose sur l'utilisation d'une paire de réseaux de neurones : un réseau enseignant REN et un réseau élève REL. Dans une telle approche, le réseau enseignant REN est pré-entrainé : en d'autres termes, il a déjà été entrainé avec une grande quantité de données (par exemple, sur la base d’un jeu de données du type ImageNet, bien connu dans le domaine de la vision par ordinateur, comprenant des millions d’images quelconques annotées de manière à préciser la présence ou l’absence de certaines classes d’objets dans chaque image) pour réaliser une tâche, par exemple une tâche de classification d’images, qui n’a finalement que peu d’importance (une telle tâche est à ce titre parfois qualifiée de tâche « proxy »). Dans un système de réseaux de type élève-enseignant, l’idée est en effet non pas d’exploiter le réseau enseignant pour son aptitude à réaliser une tâche particulière, mais plutôt d’exploiter sa capacité à extraire au niveau de ses couches intermédiaires (et plus particulièrement des couches intermédiaires CI1, CI2, etc., en amont du réseau) des caractéristiques génériques importantes des images fournies en entrée de ce réseau. Les couches finales de décision du réseau enseignant REN ne sont donc significatives dans ce cadre. En intégrant au sein d’un système de réseaux de neurones un réseau enseignant REN ainsi pré-entrainé, il devient possible, au cours d’une phase d’apprentissage, de forcer le réseau élève REL à s’adapter à des caractéristiques données, typiquement des caractéristiques représentatives de la normalité d’un produit, et ceci même si le réseau élève possède un nombre de couches intermédiaires (CI1’, CI2’, etc.) significativement moins important que celui du réseau enseignant. Pour ce faire, durant la phase d'apprentissage, des images IMG de produits sans défaut sont injectées en entrée du système, et les caractéristiques extraites en sortie des couches intermédiaires du réseau enseignant REN, qui sont alors des caractéristiques génériques représentatives d’un produit « normal » (i.e. sans défaut), sont utilisées pour entrainer le réseau élève REL, par minimisation de fonctions de coûts FC entre les couches intermédiaires correspondantes (CI1 et CI1’, CI2 et CI2’, etc.) de ces deux réseaux, via un ajustement progressif des poids du réseau élève REL. De cette manière, le réseau élève apprend également non pas à résoudre une tâche spécifique, mais à se spécialiser dans l'apparence « normale » (i.e. sans défaut) d'un objet. Par la suite, en phase opérationnelle (c'est à dire une fois la phase d'apprentissage achevée), l’injection dans le système de réseaux de neurones d’une image d’un produit présentant des défauts ou des anomalies (i.e. d’un produit qui n’est pas « normal ») aura tendance à produire des caractéristiques différentes dans les deux réseaux au niveau de leurs couches intermédiaires correspondantes, une mesure de ces différences permettant ainsi la détection de la présence ou au contraire de l’absence des défauts ou anomalies en question. L’approche précédemment décrite, basée sur l’utilisation d’un système de réseaux de neurones de type élève-enseignant de l’art antérieur tel qu’illustré en relation avec la , souffre cependant encore de certains inconvénients qui peuvent s’avérer rédhibitoires pour une utilisation à une échelle industrielle. En premier lieu, bien que plus rapide que les approches traditionnelles d'apprentissage profond, l'apprentissage n'est pas encore assez rapide pour certaines applications industrielles, notamment parce qu’il reste basé sur des algorithmes standards de rétropropagation et de descente de gradient, c’est-à-dire d'optimisation non linéaire mis en œuvre via des processus hautement itératifs et donc relativement lents. En deuxième lieu, l'apprentissage du réseau élève est toujours réalisé avant le déploiement du système en environnement de production (i.e. hors ligne), et le système effectivement déployé a donc un dimensionnement déjà figé, ce qui limite la capacité du système à s'adapter à des changements continus pourtant fréquents en milieu industriel. En troisième lieu, une étape de supervision est toujours nécessaire, au cours de laquelle des échantillons normaux sont présentés au système, avant que le système ne puisse être déployé en production et utilisé de manière effective pour la détection de défauts. Il existe donc un besoin pour des solutions à base de réseaux de neurones plus performantes, plus rapides et plus flexibles que celles de l’art antérieur, notamment dans le domaine de la détection de défauts. La présente technique permet de proposer une solution visant à remédier à certains inconvénients de l’art antérieur. Selon un aspect, la présente technique se rapporte en effet à un système de réseaux de neurones de type élève-enseignant, dans lequel un premier réseau de neurones pré-entrainé, dit réseau enseignant, est utilisé durant une phase d'apprentissage pour entrainer un deuxième réseau de neurones, dit réseau élève, par minimisation d’au moins une fonction de coût entre des couches intermédiaires correspondantes desdits réseaux, lesdites couches intermédiaires comprenant chacune une couche de traitement linéaire suivie d’une couche de traitement non linéaire. Selon le principe général de la technique proposée, ledit système est configuré pour que, durant ladite phase d’apprentissage, lesdites fonctions de coûts sont minimisées en fonction de données obtenues directement en sortie des couches de traitement linéaires desdites couches intermédiaires correspondantes. Dans un mode de réalisation particulier, ledit système de réseaux de neurones est en outre configuré pour que, durant ladite phase d’apprentissage, les couches de traitements linéaires des couches intermédiaires du réseau élève ont pour entrées les sorties des couches intermédiaires immédiatement précédentes dudit réseau enseignant. Dans un mode de réalisation particulier, ledit système de réseaux de neurones est utilisé pour détecter la présence ou l’absence de défaut sur un produit cible, à partir d’au moins une image dudit produit cible fourni en entrée dudit système. Selon une caractéristique particulière de ce mode de réalisation, durant ladite phase d'apprentissage, seules des images de produits de même type que le produit cible dans lesquelles lesdits produits ne présentent pas de défauts sont injectées en entrée dudit système. De manière alternative, selon une autre caractéristique particulière de ce mode de réalisation, durant ladite phase d'apprentissage, des images quelconques de produits de même type que le produit cible sont injectées en entrée dudit système, et ledit système intègre des moyens d’estimation robuste configurés pour diminuer automatiquement, durant ladite phase d'apprentissage, la sensibilité dudit système à des images de produits comprenant un défaut parmi lesdites images quelconques. Dans un mode de réalisation particulier, le dimensionnement du réseau élève est adapté de manière incrémentale, par ajout successif, l’une après l’autre, de couches intermédiaires audit réseau élève, tant qu’un seuil d’efficacité prédéterminé n’a pas été atteint dans la détection de la présence ou de l’absence de défaut sur des produits cibles. Selon un autre aspect, la technique proposée se rapporte également à un procédé d’adaptation du dimensionnement d’un réseau élève d’un système de réseaux de neurones tel que décrit précédemment dans ses divers modes de réalisation. Un tel procédé comprend les étapes suivantes : (a) ajout d’une couche intermédiaire audit réseau élève ; (b) estimation des paramètres associés à ladite couche intermédiaire ajoutée, de manière indépendante du reste dudit réseau élève ; (c) obtention d’une mesure représentative d’une précision atteinte par le système de réseaux de neurones, ladite mesure tenant compte de l’ensemble des couches intermédiaires ajoutées audit réseau élève ; (d) comparaison de ladite mesure représentative d’une précision atteinte avec un seuil de précision prédéterminé, et - lorsque ladite mesure représentative d’une précision atteinte est supérieure audit seuil de précision prédéterminé, arrêt dudit procédé d’adaptation du dimensionnement du réseau élève ; - lorsque ladite mesure représentative d’une précision atteinte est inférieure audit seuil de précision prédéterminé, mise en œuvre d’une nouvelle itération des étapes (a), (b), (c) et (d). Selon un autre aspect, la technique proposée se rapporte également à un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, comprenant des instructions de code de programme pour l’exécution d'un procédé d’adaptation du dimensionnement d’un réseau élève d’un système de réseaux de neurones tel que décrit précédemment, lorsqu’il est exécuté sur un ordinateur. La technique proposée vise également un support d’enregistrement lisible par un ordinateur sur lequel est enregistré un programme d’ordinateur comprenant des instructions de code de programme pour l’exécution des étapes du procédé tel que décrit précédemment, dans l’un quelconque de ses modes de réalisation. Un tel support d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une clé USB ou un disque dur. D'autre part, un tel support d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens, de sorte que le programme d’ordinateur qu’il contient est exécutable à distance. Le programme selon l'invention peut être en particulier téléchargé sur un réseau, par exemple le réseau Internet. Les différents modes de réalisation mentionnés ci-dessus sont combinables entre eux pour la mise en œuvre de l'invention. Figures D’autres caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description suivante d’un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : présente de manière schématique et simplifiée une architecture standard de réseau de neurones selon l’art antérieur ; présente de manière schématique et simplifiée une architecture d’un système de réseaux de neurones de type enseignant-élève, selon l’art antérieur ; présente de manière schématique et simplifiée une première configuration améliorée d’un système de réseaux de neurones de type enseignant-élève, en phase d’apprentissage, dans un mode de réalisation particulier de la technique proposée ; présente de manière schématique et simplifiée une deuxième configuration améliorée d’un système de réseaux de neurones de type enseignant-élève, en phase d’apprentissage, dans un mode de réalisation particulier de la technique proposée ; illustre les différentes étapes d’un procédé d’adaptation du dimensionnement d’un réseau élève d’un système de réseaux de neurones, dans un mode de réalisation particulier de la technique proposée ; présente une architecture simplifiée d’un dispositif d’adaptation du dimensionnement d’un réseau élève d’un système de réseaux de neurones, dans un mode de réalisation particulier. Description détaillée de l’invention La présente technique permet de remédier à certains des inconvénients précités. La technique proposée vise notamment à proposer un système de réseaux de neurones qui soit à la fois performant, rapide et flexible, et de ce fait bien adapté pour être déployé dans des environnements de production industrielle, par exemple pour des applications de détection automatique de défauts sur des pièces ou produits bruts ou manufacturés. Selon un aspect, la présente technique se rapporte plus particulièrement à des configurations innovantes de systèmes de réseaux de neurones de type élève-enseignant, qui permettent notamment la simplification et l’optimisation de l’apprentissage du réseau élève. Sur toutes les figures du présent document, les éléments et étapes de même nature sont désignés par une même référence. Comme déjà décrit en relation avec la de l’art antérieur, et à nouveau présenté ci-après en relation avec les figures 3 et 4 illustrant divers modes de réalisation particuliers de la présente technique, un système de réseaux de neurones de type élève-enseignant est un système dans lequel un premier réseau de neurones pré-entrainé, dit réseau enseignant REN, est utilisé durant une phase d'apprentissage pour entrainer un deuxième réseau de neurones, dit réseau élève REL. De manière indépendante de l’application envisagée pour le système de réseaux de neurones, le réseau enseignant a par exemple été préalablement pré-entrainé pour une tâche de classification quelconque, au moyen d’un jeu de données comprenant un très grand nombre (e.g. plusieurs dizaines ou centaines de milliers, voire des millions) d’images annotées d’entités ou classes d’objets diverses (objets, êtres vivants, etc.). La mise en œuvre d’un tel pré-entrainement du réseau enseignant ne fait pas l’objet de la présente technique, mais il en résulte, comme déjà décrit en relation avec l’art antérieur, que le réseau enseignant a ainsi déjà la capacité d’extraire au niveau de ses couches intermédiaires (et plus particulièrement des couches intermédiaires en amont du réseau enseignant) des caractéristiques génériques importantes des images fournies en entrée de ce réseau. Le système de réseaux de neurones selon la présente technique se distingue toutefois des systèmes de l’art antérieur en ce qu’il est configuré de manière particulière, notamment durant la phase d'apprentissage, selon des configurations innovantes lui conférant de multiples avantages. Selon une première configuration, illustrée en relation avec la dans un mode de réalisation particulier, plutôt que de minimiser lors de la phase d'apprentissage des fonctions de coûts FC en fonction des données obtenues en sortie des couches de traitement non linéaires des couches intermédiaires du réseau, tel que cela est classiquement réalisé dans les systèmes de l’art antérieur tels que présentés en , il est proposé de réaliser cette opération en fonction de données obtenues en amont, directement en sortie des couches de traitement linéaires des couches intermédiaires. En d'autres termes, l’ajustement des poids des couches intermédiaires du réseau élève est effectué de manière à s’adapter à la sortie des couches de traitement linéaires des couches intermédiaires du réseau enseignant, et non plus des couches de traitement non linéaires comme dans l’existant. Une telle adaptation est possible d’une part du fait de l’utilisation de deux réseaux (le réseau enseignant et le réseau élève) fonctionnant en parallèle, et d’autre part du fait que les fonctions d’activation classiquement utilisées pour la mise en œuvre des couches de traitement non linéaires des couches intermédiaires – notamment dans les systèmes utilisés pour des applications de détection de défauts – sont des fonctions monotones continues croissantes. Ainsi, minimiser une fonction de coût en fonction de données en sortie de la couche de traitement linéaire des couches intermédiaires est, du point de vue global de la finalité d’apprentissage du réseau élève, équivalent à minimiser une fonction de coût en fonction des données en sortie de la couche de traitement non linéaire des couches intermédiaires comme cela est réalisé dans l’art antérieur. En revanche, du point de vue du processus d’optimisation des poids du réseau élève REL durant sa phase d'apprentissage, une telle configuration selon la est particulièrement avantageuse en ce qu’elle permet de basculer d’un objectif de résolution d’un problème d’optimisation non linéaire tel qu’il est posé avec les solutions de l’art antérieur à un objectif de résolution d’un problème d’optimisation purement linéaire dans le cadre de la technique proposée. Autrement dit, un problème d'optimisation auparavant complexe (minimisation non linéaire) est transformé, au moyen de la présente technique, en un problème d’optimisation beaucoup moins complexe de détermination d’un modèle de régression linéaire par rapport aux paramètres des couches linéaires du système. Des techniques d’estimation linéaire simples et rapides, pour lesquelles une solution est par ailleurs accessible directement sans avoir besoin de recourir à un processus d’itérations successives comme c’est le cas pour la résolution d’un problème non linéaire, peuvent alors être mises en œuvre. Par exemple, la présente technique permet d’utiliser à cette fin des outils tels que la décomposition en valeurs singulières (ou SVD, de l'anglais « Singular Value Decomposition »), en lieu et place des algorithmes classique de rétropropagation de type descente de gradient classiquement mis en œuvre dans les réseaux existants. De tels outils d’estimation linéaire fournissent des solutions exactes, de manière rapide, et permettent également de se prémunir de certains problèmes usuels des réseaux de neurones existants, tels que le problème des gradients évanescents par exemple. Une deuxième configuration, présentant des adaptations supplémentaires et complémentaires à la première configuration précédemment présentée, est illustrée en relation avec la , dans un mode de réalisation particulier de la technique proposée. Dans cette deuxième configuration, il est proposé d’exploiter de manière encore plus approfondie le parallélisme entre le réseau enseignant REN et le réseau élève REL, en injectant directement en entrée des couches intermédiaires du réseau élève les données de sortie des couches intermédiaires immédiatement précédentes du réseau enseignant, durant la phase d'apprentissage du réseau élève. Autrement dit, comme montré sur la , le système de réseaux de neurones est configuré de manière à ce qu’une couche intermédiaire de rang n du réseau élève REL admet pour entrée non plus la sortie de la couche intermédiaire de rang n-1 du réseau élève REL, mais celle de rang n-1 du réseau enseignant REN (par exemple, la sortie de la couche de traitement non linéaire NL de la couche intermédiaire CI1 du réseau enseignant REN est injectée en entrée de la couche de traitement linéaire L de la couche intermédiaire CI2’ du réseau élève, la sortie de la couche de traitement non linéaire NL de la couche intermédiaire CI2 du réseau enseignant REN est injectée en entrée de la couche de traitement linéaire L de la couche intermédiaire CI3’ du réseau élève, etc.). Une telle adaptation repose sur le fait que la propagation de données de l’entrée vers la sortie d’un réseau de neurones correspond à la mise en œuvre d’une composition de fonctions, et que minimiser la fonction de coût à la sortie de chaque couche de traitement linéaire séparément est équivalent, de par les propriétés de continuité des fonctions utilisées, à minimiser la composition des fonctions (la limite d'une composition de fonctions est la composition des limites, étant donné la continuité). Avec cette configuration en phase d'apprentissage, un découplage complet de l’estimation des poids associés aux différentes couches de traitement linéaires des couches intermédiaires (CI1’, CI2’, etc.) du réseau élève est obtenu, dans la mesure où : - l’entrée d’une couche de traitement linéaire L d’une couche intermédiaire du réseau élève REL est prise directement en sortie d’une couche intermédiaire précédente du réseau enseignant REN (sauf pour la toute première couche intermédiaire du réseau élève) ; - la minimisation de la fonction de coût est opérée en sortie de la couche de traitement linéaire de la couche intermédiaire du réseau élève, sur la base de données de sortie de la couche de traitement linéaire de la couche intermédiaire correspondante du réseau enseignant (selon le principe général déjà décrit en relation avec la première configuration présentée en relation avec la ). En d'autres termes, dans la configuration selon la , l’optimisation de chaque couche intermédiaire (CI1’, CI2’, CI3’, etc.) du réseau élève devient un problème indépendant du reste du réseau élève, qui ne dépend notamment pas de l’optimisation des couches intermédiaires précédentes ou suivantes du réseau élève. Une telle configuration est particulièrement intéressante sur de nombreux aspects. En premier lieu, il n’est plus nécessaire de recourir à des algorithmes de rétropropagation de l'erreur pour estimer les poids de chaque couche intermédiaire du réseau élève. En deuxième lieu, chaque couche intermédiaire du réseau élève peut être optimisée indépendamment des autres couches intermédiaires de ce réseau, ce qui permet de paralléliser les opérations d’optimisation des différentes couches du réseau élève lors de la phase d’apprentissage, avec pour effet un gain de rapidité global. En troisième lieu, l'apprentissage peut être distribué facilement pour chaque couche intermédiaire du réseau élève dans la mesure où ces couches intermédiaires ne sont plus interdépendantes. En quatrième lieu, l’utilisation directe des caractéristiques du réseau enseignant en entrée des couches de traitement linéaires des couches intermédiaires du réseau élève permet d’accélérer la convergence vers la solution permettant de minimiser la fonction de coût, lorsqu’une méthode d'optimisation itérative est utilisée. Plus particulièrement, la convergence est beaucoup plus rapide que dans les architectures standard telles que celle illustrée en , dans lesquelles de nombreuses itérations sont requises en phase d’apprentissage avant d’obtenir des entrées pertinentes sur l’ensemble des couches intermédiaires du réseau élève. En effet, dans les systèmes existants, les données d’entrée injectées dans une couche intermédiaire du réseau élève correspondent aux données de sortie de la couche précédente de ce réseau. Aussi, tant que les paramètres d’une couche sont encore mal estimés, les résultats produits en sortie de cette couche ne sont pas pertinents et sont donc assimilable à du bruit injecté dans la couche suivante. Autrement dit, tant que le processus d’ajustement des poids d’une couche du réseau élève n’a pas atteint un certain degré d’adaptation aux caractéristiques de la couche correspondante du réseau enseignant, l’ajustement des poids de la couche suivante du réseau élève n’est pas réalisé sur des données pertinentes. Le processus global d’ajustement de l’ensemble des poids du réseau élève est donc lent à converger, dans les solutions existantes. La configuration selon la présente technique, telle qu’illustrée en relation avec la , ne présente pas de tels inconvénients : en effet, comme le réseau enseignant est déjà pré-entrainé, les données de sorties des couches de traitement linéaires des couches intermédiaires du réseau enseignant qui sont injectées en entrée des couches intermédiaires du réseau élève sont déjà des données pertinentes (le processus d’ajustement des poids du réseau enseignant ayant déjà été mené à son terme lors de l’entrainement préalable de ce réseau). La phase d'apprentissage du réseau élève est donc plus rapide avec la technique proposée que dans les solutions existantes. Un système de réseaux de neurones selon la technique proposée est par exemple particulièrement adapté pour être utilisé dans des applications de détection de la présence (ou l’absence) de défauts ou anomalies sur des produits cibles, à partir d’au moins une image du produit cible fourni en entrée dudit système. De telles images peuvent par exemple être fournies par des dispositifs d’acquisition d’images (e.g. appareil photographique, caméra) installés sur une ligne de production (acquisition d’images de produits acheminés sur un tapis roulant, par exemple). Dans un mode de réalisation particulier, durant la phase d'apprentissage du réseau élève du système de réseaux de neurones, on présente en entrée du système uniquement des images de produits de même type que le produit cible, qui ne présentent pas de défauts. Ainsi, dans ce mode d’apprentissage de type « supervisé », on permet au réseau élève de se spécialiser dans l’apprentissage de l’apparence « normale » du produit considéré (i.e. sans défaut), dans la mesure où les caractéristiques génériques extraites au niveau des couches intermédiaires du réseau enseignant pré-entrainé seront alors représentatives d’une telle normalité d’un produit. Les propriétés d’indépendance des couches et de convergence rapide de l’optimisation présentées précédemment sont alors particulièrement intéressantes, en ce qu’elles permettent de limiter le nombre d’itérations durant lesquelles les caractéristiques extraites au niveau des couches intermédiaires et utilisées pour l’optimisation ne sont pas encore pertinentes, c’est-à-dire de limiter l’optimisation sur la base de données qui ne seraient pas encore représentatives de la « normalité » du produit considéré. Dans un mode de réalisation particulier alternatif, il est également possible de mettre en œuvre un apprentissage de type « non supervisé », en intégrant au système de réseaux de neurones des moyens d’estimation robuste. Dans ce cas durant la phase d'apprentissage du réseau élève du système de réseaux de neurones, des images quelconques de produits de même type que le produit cible sont injectées en entrée du système, avec l’hypothèse qu’une majorité des images ainsi injectées sont des images de produits « normaux », i.e. ne présentant pas de défauts ou d’anomalies. En d'autres termes, on considère que statistiquement, sur un panel de produits de même type sélectionné au hasard, la vaste majorité des produits (e.g. plus de 95% des produits) aura une apparence normale, tandis que seule une petite minorité de produits (e.g. moins de 5% des produits) présenteront un défaut. Les moyens d’estimation robuste sont alors configurés pour diminuer la sensibilité du système aux images de produits comprenant un défaut parmi les images injectées en entrées, sur la base par exemple de techniques de détection d’anomalies statistiques. Les images de produits ne correspondants pas à la normalité peuvent ainsi par exemple être automatiquement rejetées ou écartées au cours de la phase d’apprentissage. Une telle variante présente un intérêt certain, en ce qu’elle permet que l’apprentissage soit mis en œuvre même après le déploiement du système dans un environnement de production, et de surcroît dans un mode intégralement non supervisé. En d'autres termes, il suffit par exemple que des produits « défilent » pendant un certain temps (considéré comme un temps d’apprentissage) sous le dispositif d’acquisition d’images couplé au système de réseaux de neurones, en conditions normales de production, pour que la phase d’apprentissage et donc l’optimisation du système soit effectuée de manière automatique et autonome. Le découplage lors de la phase d'apprentissage des différentes couches intermédiaires du réseau élève tel qu’obtenu avec la configuration de système de réseaux de neurones présentée en offre encore d’autres avantages particulièrement intéressants. Ainsi, il permet notamment d’adapter facilement le dimensionnement du réseau élève aux différents besoins des industriels et/ou aux évolutions de l’environnement industriel dans lequel la solution est déployée. Plus particulièrement, ce découplage facilite l'ajout progressif de complexité au modèle, en rendant possible une adaptation « à la carte » ou « à la demande » du nombre de couches intermédiaires du réseau élève, et ceci même lorsque le système est déjà déployé dans un environnement de production. En effet, dans la mesure où les paramètres des couches intermédiaires du réseau élève sont estimés de manière indépendante pour chaque couche (i.e. sans relation d’interdépendance entre les différentes couches intermédiaires du réseau élève), des couches peuvent être ajoutées (ou retirées) en fonction des besoins, sans que cette modification n’affecte les autres couches du réseau élève. Un critère tel que l’atteinte d’un seuil d’efficacité prédéterminé (par exemple un seuil d’efficacité dans la détection de la présence ou de l’absence de défaut sur des produits cibles), ou tout autre moyen de décision, peuvent par exemple être utilisés pour déterminer s’il est utile ou non d’ajouter une couche intermédiaire au réseau élève. La présente, dans un mode de réalisation particulier de la technique proposée, un exemple de procédé d’adaptation du dimensionnement d’un réseau élève d’un système de réseaux de neurones configuré dans le mode de réalisation décrit précédemment en relation avec la . Un tel exemple est donné à titre purement illustratif et non limitatif, dans le cadre d’une application à la détection de défaut sur un produit cible. Un tel procédé est par exemple mis en œuvre après déploiement du système de réseaux de neurones dans un environnement de production, éventuellement avec un réseau élève dans lequel aucune couche intermédiaire n'est encore instanciée, et il comprend les étapes suivantes : (a) une étape 51 d’ajout d’une couche intermédiaire au réseau élève (à l’issue de la toute première mise en œuvre de cette étape, le réseau élève ne comprend par exemple qu’une seule couche intermédiaire) ; (b) une étape 52 d’estimation des paramètres (i.e. des poids) associés à la couche intermédiaire ajoutée, en utilisant l'approche déjà décrite en relation avec la (en d'autres termes, grâce à la configuration particulière du système de réseaux de neurones durant la phase d'apprentissage, cette estimation est réalisée de manière indépendante du reste du réseau élève, et en particulier des autres couches intermédiaires éventuellement déjà présentes) ; (c) une étape 53 d’obtention d’une mesure MES représentative d’une précision atteinte par le système de réseaux de neurones, ladite mesure tenant compte de l’ensemble des couches intermédiaires ajoutées audit réseau élève (une telle mesure est par exemple déterminée en fonction des caractéristiques de sortie des couches intermédiaires du réseau élève, au regard des caractéristiques des couches intermédiaires correspondantes du réseau enseignant, par exemple par évaluation des valeurs des différentes fonctions de coût entre couches correspondantes) ; (d) une étape 54 de comparaison de la mesure MES représentative d’une précision atteinte avec un seuil de précision prédéterminé SL et : - lorsque ladite mesure représentative d’une précision atteinte est supérieure au seuil de précision prédéterminé, arrêt dudit procédé d’adaptation du dimensionnement du réseau élève (en d'autres termes, le nombre de couches intermédiaires du réseau élève est considéré comme suffisant pour l’objectif recherché et il est inutile d’en ajouter, le procédé d’adaptation du dimensionnement est alors terminé) ; - lorsque ladite mesure représentative d’une précision atteinte est inférieure audit seuil de précision prédéterminé, mise en œuvre d’une nouvelle itération des étapes (a), (b), (c) et (d) (en d'autres termes, le niveau de précision atteint est encore considéré comme étant insuffisant, et il est nécessaire d’ajouter encore au moins une couche intermédiaire au réseau élève pour améliorer sa précision). Le système de réseaux de neurones selon la présente technique est donc particulièrement flexible. Une fois la phase d'apprentissage terminée, le système de réseaux de neurones selon la technique proposée peut être utilisé, dans une phase opérationnelle. Par exemple, pour une application de détection de défaut telle que décrite au long du présent document, l’injection dans le système de réseaux de neurones d’une image d’un produit présentant des défauts ou des anomalies (i.e. d’un produit qui n’est pas « normal ») aura tendance à produire des caractéristiques différentes dans les deux réseaux au niveau de leurs couches intermédiaires correspondantes, une mesure de ces différences permettant ainsi la détection de la présence ou au contraire de l’absence des défauts ou anomalies en question. Il est à noter que pour cette phase opérationnelle (i.e. d’inférence), le système de réseaux de neurones peut être utilisé dans sa configuration illustrée en relation avec la , ou avoir été reconfiguré après la phase d'apprentissage pour être utilisé dans une configuration plus classique telle qu’illustrée en relation avec la . Selon un autre aspect, la technique proposée se rapporte également à un dispositif apte à réaliser le procédé d’adaptation du dimensionnement d’un réseau élève d’un système de réseaux de neurones présenté précédemment. Plus particulièrement, un tel dispositif selon la présente technique comprend des moyens permettant la mise en œuvre des étapes (a), (b), (c) et (d) précédemment décrites, i.e. : - des moyens d’ajout d’une couche intermédiaire au réseau élève ; - des moyens d’estimation des paramètres associés à ladite couche intermédiaire ajoutée, de manière indépendante du reste dudit réseau élève ; - des moyens d’obtention d’une mesure représentative d’une précision atteinte par le système de réseaux de neurones, ladite mesure tenant compte de l’ensemble des couches intermédiaires ajoutées audit réseau élève ; - des moyens de comparaison de ladite mesure représentative d’une précision atteinte avec un seuil de précision prédéterminé. La représente, de manière schématique et simplifiée, la structure d’un tel dispositif, dans un mode de réalisation particulier. Le dispositif selon la technique proposée comprend par exemple une mémoire 61 constituée d’une mémoire tampon M, une unité de traitement 62, équipée par exemple d’un microprocesseur μP, et pilotée par le programme d’ordinateur Pg 63, mettant en œuvre des étapes du procédé d’adaptation du dimensionnement d’un réseau élève d’un système de réseaux de neurones, selon au moins un mode de réalisation de l’invention. À l’initialisation, les instructions de code du programme d’ordinateur 63 sont chargées dans la mémoire tampon avant d’être exécutées par le processeur de l’unité de traitement 62. Le microprocesseur de l’unité de traitement 62 réalise alors les étapes du procédé d’adaptation du dimensionnement du réseau élève, selon les instructions du programme d’ordinateur 63. Plus particulièrement, l’unité de traitement 62 reçoit par exemple en entrée E une requête d’adaptation du dimensionnement du réseau élève d’un système de réseaux de neurones, et procède à l’ajout successif, l’une après l’autre, de couches intermédiaires au réseau élève, tant que le système de réseaux de neurones n’a pas atteint un seuil de précision prédéterminé. Ce seuil atteint, l’unité de traitement 62 délivre alors en sortie S un système de réseaux de neurones de type élève-enseignant dans lequel le nombre de couches intermédiaires du réseau élève est dimensionné pour l’exécution, avec la précision souhaitée, de l’application pour laquelle le système de réseaux de neurones de type élève-enseignant est configuré. Système de réseaux de neurones de type élève-enseignant, configuré pour détecter la présence ou l’absence de défaut sur un produit cible à partir d’au moins une image dudit produit cible fourni en entrée dudit système, dans lequel un premier réseau de neurones pré-entrainé, dit réseau enseignant (REN), est utilisé durant une phase d'apprentissage pour entrainer, sur la base d’images de produits de même type que le produit cible injectées en entrée dudit système, un deuxième réseau de neurones, dit réseau élève (REL), par minimisation d’au moins une fonction de coût (FC) entre des couches intermédiaires correspondantes desdits réseaux, lesdites couches intermédiaires comprenant chacune une couche de traitement linéaire (L) suivie d’une couche de traitement non linéaire (NL), ledit système étant caractérisé en ce que , durant ladite phase d’apprentissage, en réponse à l’injection d’une image d’un produit de même type que le produit cible en entrée dudit système, lesdites fonctions de coûts sont minimisées en fonction de données obtenues directement en sortie des couches de traitement linéaires (L) desdites couches intermédiaires correspondantes. Système selon la revendication 1, caractérisé en outre en ce que, durant ladite phase d’apprentissage, les couches de traitements linéaires des couches intermédiaires du réseau élève ont pour entrées les sorties des couches intermédiaires immédiatement précédentes dudit réseau enseignant. Système selon la revendication 2, caractérisé ce que durant ladite phase d'apprentissage, seules des images de produits de même type que le produit cible dans lesquelles lesdits produits ne présentent pas de défauts sont injectées en entrée dudit système. Système selon la revendication 2, caractérisé ce que durant ladite phase d'apprentissage, des images quelconques de produits de même type que le produit cible sont injectées en entrée dudit système, et en ce que ledit système intègre des moyens d’estimation robuste configurés pour diminuer automatiquement, durant ladite phase d'apprentissage, la sensibilité dudit système à des images de produits comprenant un défaut parmi lesdites images quelconques. Système selon la revendication 2, caractérisé ce que le dimensionnement du réseau élève est adapté de manière incrémentale, par ajout successif, l’une après l’autre, de couches intermédiaires audit réseau élève, tant qu’un seuil d’efficacité prédéterminé n’a pas été atteint dans la détection de la présence ou de l’absence de défaut sur des produits cibles. Procédé d’adaptation du dimensionnement d’un réseau élève d’un système de réseaux de neurones selon la revendication 2, ledit procédé étant caractérisé en ce qu'il comprend les étapes suivantes : (a) ajout (51) d’une couche intermédiaire audit réseau élève ; (b) estimation (52) des paramètres associés à ladite couche intermédiaire ajoutée, de manière indépendante du reste dudit réseau élève ; (c) obtention (53) d’une mesure (MES) représentative d’une précision atteinte par le système de réseaux de neurones, ladite mesure tenant compte de l’ensemble des couches intermédiaires ajoutées audit réseau élève ; (d) comparaison (54) de ladite mesure (MES) représentative d’une précision atteinte avec un seuil de précision prédéterminé (SL), et - lorsque ladite mesure représentative d’une précision atteinte est supérieure audit seuil de précision prédéterminé, arrêt dudit procédé d’adaptation du dimensionnement du réseau élève ; - lorsque ladite mesure représentative d’une précision atteinte est inférieure audit seuil de précision prédéterminé, mise en œuvre d’une nouvelle itération des étapes (a), (b), (c) et (d). Produit programme d’ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu’il comprend des instructions de code de programme pour l’exécution d'un procédé selon la revendication 6, lorsqu’il est exécuté par un ordinateur.