Brevet FR2658336A1 — publié le 19910816

DESCRIPTION "PROCEDE D'APPRENTISSAGE D'UN RESEAU DE NEURONES EN COUCHES POUR CLASSIFICATION MULTICLASSES ET RESEAU DE NEURONES EN COUCHES". L'invention concerne un procédé de classification mis en oeuvre dans un réseau de neurones en couches, compre- nant des étapes d'apprentissage au cours desquelles au moins une couche est construite par addition de neurones successifs nécessaires pour opérer par dichotomies successives une clas- sification d'exemples répartis par classes. Elle concerne également un réseau de neurones mettant en oeuvre ce procédé. Les réseaux de neurones trouvent leurs applica- tions dans les problèmes de classification en particulier pour la reconnaissance de forme, de caractères, le traitement du signal de la parole, le traitement d'images, de compression de l'information Les réseaux de neurones sont constitués d'automa- tes non-linéaires généralement connectés entre eux par des sy- napses auxquelles sont affectés des coefficients synaptiques. Ils permettent de traiter des problèmes qui le sont difficile- ment par les ordinateurs séquentiels classiques. Les deux types de réseaux les plus répandus sont: les réseaux pleinement connectés dits de Hopfield les réseaux en couches: les neurones sont regroupés en couches successives, chaque neurone est connecté à tous les neurones de la couche suivante, l'information passant de la couche d'entrée aux couches suivantes (couches cachées) jus- qu'à la couche de sortie. Ces systèmes sont capables d'apprendre par l'exemple ou de s'autoorganiser Les temps de calcul très longs sur ordinateur séquentiel peuvent se réduire considéra- blement en parallélisant les opérations qui comprennent des phases d'apprentissage et des phases de résolution. Pour effectuer un traitement donné, les réseaux de neurones doivent au préalable apprendre à l'effectuer. Cette phase appelée apprentissage fait appel à des exemples. Pour de nombreux algorithmes, les résultats que l'on doit ob- tenir en sortie avec ces exemples sont généralement connus à l'avance Dans un premier temps le réseau de neurones qui n'est pas encore adapté à la tâche prévue, va délivrer des ré- sultats erronés On détermine alors une erreur entre les ré- sultats obtenus et ceux que l'on aurait dû obtenir et, à par- tir d'un critère d'adaptation, on modifie les coefficients sy- naptiques pour permettre au réseau de neurones d'apprendre l'exemple choisi Cette étape est réitérée sur le lot d'exem- ples considérés comme nécessaires à un apprentissage satisfai- sant du réseau de neurones. Les algorithmes d'apprentissage se répartissent en deux classes: les apprentissages locaux, o la modification d'un coef- ficient synaptique Cij reliant un neurone j à un neurone i ne dépend que de l'information localisée sur les neurones i et j, les apprentissages non-locaux, o elle dépend d'informa- tions situées dans tout le réseau Ce dernier apprentissage est par exemple celui de la rétropropagation de l'erreur dans des réseaux en couches. Des informations sur divers types de réseaux de neurones peuvent par exemple être trouvées dans l'article de R.P LIPPMANN, "An introduction to computing with neural nets" IEEE ASSP Magazine Avril 1987 p 4 à 22. Dans ces réseaux de neurones l'organisation de la structure est fixe (en couches ou pleinement connectée) et les liaisons entre neurones sont fixées à l'avance. L'apprentissage qui est alors effectué a pour ob- jectif de chercher une structure optimale en opérant sur dif- férentes architectures puis de faire un choix a posteriori. Un algorithme qui permet de déterminer l'archi- tecture au cours de l'apprentissage a été proposé par: M MEZARD et J P NADAL dans R Learning in Feedforward Layered networks: the tiling algorithme J Phys A: Math Gen 22 ( 1989) p 2191-2203. Pour cela on initialise l'apprentissage en opti- misant les coefficients synaptiques d'un premier neurone af- fecté à une première couche et si ce neurone ne suffit pas pour accomplir la tâche de classification on ajoute un neurone supplémentaire dans la couche en cours ou dans la couche sui- vante qui est ainsi initialisée Cette approche permet d'ap- prendre l'architecture et les paramètres de réseaux en couches (Multilayer Perceptrons) en séparant les sorties en deux clas- ses. Mais une telle structure de réseau de neurones ne permet pas de traiter des problèmes de classification opérant sur des exemples répartis sur plusieurs classes. Le problème posé consiste donc à pouvoir traiter de tels problèmes tout en maintenant la détermination de l'ar- chitecture lors de l'apprentissage. La solution consiste en ce que pour créer au moins une couche à partir d'un groupe d'exemples répartis sur plus de deux classes, chaque neurone successif tend à sé- parer ses données d'entrée selon deux sous-groupes de classes prédéterminés propres audit neurone selon une analyse en composantes principales de la distribution desdites données d'entrée soumises à l'apprentissage du neurone de la couche concernée. Le procédé va donc mettre en oeuvre un neurone père puis des neurones successeurs qui ensemble vont permettre de séparer le groupe d'exemples répartis sur plusieurs classes en sous-groupes d'exemples formant chacun une classe unique. Pour opérer l'apprentissage chaque neurone va donc mettre en oeuvre plusieurs étapes successives: A Introduction du groupe inhomogène d'exemples, B Répartition des exemples du groupe inhomogène en deux sousgroupes de classes basée sur une analyse en composantes principales r C Apprentissage d'un neurone père en calculant ses coefficients synoptiques pour qu'il tende à séparer le groupe d'exemples en deux sous-groupes d'exemples approchant le mieux possible la première répartition en deux sous-groupes de classes, D Test de l'homogénéité de chacun des deux sousgroupes d'exemples pour déterminer s'ils renferment ou non une seule classe d'exemples, E Parmi lesdits sous-groupes d'exemples sélection d'un seul sous-groupe inhomogène, F Répartition des exemples du sous-groupe inhomogène en deux sous-groupes de classes basée sur une analyse en composantes principales, G Apprentissage d'un neurone suivant en calculant ses coefficients synoptiques pour qu'il tende à séparer le sous- groupe d'exemples inhomogène sélectionné en deux sous-groupes d'exemples approchant le mieux possible la répartition suivante en deux sous-groupes de classes, H Action dudit neurone suivant sur l'ensemble des sousgroupes inhomogènes d'exemples séparés par le neurone précédent pour générer de nouveaux sous-groupes d'exemples, I Test de l'homogénéité de chacun de ces nouveaux sous-groupes d'exemples générés, J Extraction des exemples appartenant à des sous-groupes inhomogènes d'exemples, K Poursuite à l'étape E sur les sous-groupes d'exemples inhomogènes restants jusqu'à l'obtention de sous-groupes homo- gènes formés de classes uniques. Cette séparation des exemples en deux sous-grou- pes d'exemples opérée par un neurone tend à se conformer à une répartition des classes effectuée par une analyse en composantes principales de la distribution d'exemples en opérant la répartition en deux sous-groupes de classes en relation avec le-centre de gravité de la distribution d'exemples. L'analyse en composantes principales est une méthode statistique qui permet de décrire un ensemble de vecteurs à l'aide d'un vecteur moyen de d directions principales et des variances correspondantes Cette méthode est décrite ci-après. Pour effectuer l'apprentissage on calcule les coefficients synaptiques d'un neurone père pour séparer un groupe M d'exemples en vue d'isoler un sous-groupe de classes particulier P depuis le groupe d'exemples M La séparation peut consister à isoler le sous-groupe P dans un sous-groupe M+. La séparation dans le groupe M+ de la classe particulière P que l'on désire opérer à l'aide du neurone Peut n'être obtenue qu'imparfaitement lorsque les classes d'exemples ne sont pas linéairement séparables Ainsi des exemples ayant la même classe que la classe particulière P peuvent se trouver dans le sous-groupe complémentaire M après séparation par le premier neurone. Le groupe M+ et le groupe complémentaire M sont alors testés en homogénéité pour déterminer s'ils renferment une classe unique Si l'un et l'autre de ces groupes est homogène, la séparation de ces sous-groupes est achevée Si l'un ou l'autre de ces groupes est inhomogène, on sélectionne un sous-groupe inhomogène et on génère un neurone successeur qui sépare le groupe inhomogène en deux nouveaux groupes Pour cela le procédé sépare préalablement les classes présentes dans le sous-groupe en deux sous-groupes de classes suivant une analyse en composantes principales, puis calcule des coefficients synaptiques pour ce neurone successeur qui opère cette séparation selon un critère de dichotomie suivant les deux sous-groupes de classes Puis on fait agir le neurone successeur, avec ses coefficients synaptiques ainsi déterminés, sur l'ensemble des groupes inhomogènes générés par le neurone précédent (un ou deux groupes) Cette procédure de dichotomie des exemples et de génération de neurones successeurs est itérée sur les générations successives. Lorsque toutes les classes sont ainsi séparées, les phases d'apprentissage sont alors achevées et le réseau de neurones peut être utilisé en mode d'exploitation pour opérer des classifications. Après séparation des classes en deux sous-groupes, l'apprentissage de chaque neurone opérant une séparation sur deux sous-groupes peut présenter plusieurs va- riantes Préférentiellement on met en oeuvre l'algorithme Pocket utilisé par M MEZARD et J P NADAL et décrit par S GALLANT dans "Optimal linear discriminants' IEEE Proc. 8th Conf on Pattern Recognition Paris ( 1986) Cet algorithme Pocket peut être utilisé pour opérer la séparation effectuée par chaque neurone. Il est aussi possible pour chaque neurone d'uti- liser un critère d'apprentissage des "Perceptrons" qui réactualisent les coefficients synaptiques à partir d'erreurs qui caractérisent l'écart pour un exemple quelconque entre un résultat obtenu en sortie du réseau de neurones et le résultat attendu Ces critères d'apprentissage sont connus de l'homme du métier. Le calcul des coefficients synoptiques d'un neu- rone quelconque est destiné à faire que le neurone concerné sépare soit le groupe d'exemples d'entrée soumis à l'action des neurones de la couche d'entrée, soit les groupes inhomogè- nes sélectionnés soumis respectivement à l'action des neurones des couches suivantes chaque fois selon deux groupes de clas- ses prédéterminés. Pour effectuer l'apprentissage d'un neurone quel- conque le calcul de ses coefficients synaptiques met en oeuvre soit l'algorithme "Pocketn soit une règle d'apprentissage de type "Perceptron" soit une règle d'apprentissage de type Hebb (voir R P LIPPMANN déjà cité et R MEIR et E DOMANY dans u Iterated Learning in a layered Feed-Forward Neural Network Phys Rev A, vol 37, N 07, 1988, p 2660). L'invention concerne également un réseau de neu- rones mettant en oeuvre le procédé Le réseau de neurones est d'abord construit puis utilisé pour opérer les tâches de clas- sification apprises Les neurones formant la première couche joue un rôle de séparateur dans l'espace des données d'en- trée Ils délivrent donc en sortie chacun un état binaire. L'ensemble de ces états binaires constituent les données d'entrée de la couche suivante Cet ensemble d'états binaires peut être décodé à l'aide de couches successives formant le réseau de neurones Il peut aussi être décodé à l'aide d'une mémoire qui stocke les classes d'exemples en fonction des états binaires des neurones de la première couche En mode d'exploitation cette mémoire est adressée par ces états binaires puis lue pour délivrer les classifications effectuées. L'invention sera mieux comprise à l'aide des figures suivantes données à titre d'exemples non limitatifs qui représentent Figure 1: une représentation dans l'espace des entrées du mode d'action des séparateurs dans une base d'exemples répartis sur K classes. Figure 2: un organigramme qui indique le mécanisme de séparation des classes et les sous-groupes d'exemples concernés pour l'apprentissage du réseau de neurones en couches. Figure 3: une représentation de la séparation des exemples. Figures 4 A, 4 B: une représentation des composantes principales d'une distribution et un exemple de répartition de classes. Figure 5: un exemple d'algorithme constitué par l'algorithme Pocket permettant d'opérer la séparation entre deux sous-groupes de classes. La figure 1 représente des exemples répartis sur classes a, b, c, d, e o l'exemple est indiqué par une lettre correspondant à sa classe Les exemples sont répartis dans les sous-groupes successifs SG 1, SG 2 et SG 3 dont les axes principaux sont respectivement AP 1, AP 2 et AP 3 et qui sont traités par les neurones Nj, N 2 et N 3. La détermination des axes principaux de la distribution des-exemples à l'aide d'une analyse en composantes principales est détaillée ci-après. La figure 2 représente un organigramme relatif à une structure en couches o apparaissent différentes étapes du procédé Celui-ci opère à partir d'une sélection d'un groupe M d'exemples (étape 200) choisis pour réaliser un apprentissage du réseau de neurones et l'adapter au traitement d'une tâche définie Par définition ce groupe M d'exemples est inhomogène L'apprentissage doit être compris ici dans un sens large car il consiste non seulement à déterminer les coefficients synaptiques requis (apprendre au réseau de neurones) mais simultanément à déterminer le nombre de neurones nécessaires pour accomplir cette tâche Il s'agit donc également de déterminer la taille que doit avoir le réseau de neurones. Le groupe M d'exemples est formé par exemple de k classes différentes L'étape 202 consiste à répartir préalablement les k classes en deux sousgroupes de classes G+ et G afin de ramener le problème de classification de k classes à un problème de classification de deux sous-groupes de classes G+ et G Au cours de l'étape 203 le procédé dé- termine les coefficients synaptiques d'un neurone père qui opère sur l'ensemble du groupe d'exemples M Ces coefficients synaptiques sont déterminés pour que le réseau de neurones tende à opérer la séparation du groupe d'exemples M en deux sous-groupes M+ et M renfermant au mieux les deux sous-groupes de classes préalablement répartis G+, G- Le mécanisme d'apprentissage qui permet de déterminer les coefficients synaptiques est effectué préférentiellement par l'algorithme Pocket décrit ci-après Dans ces conditions l'apprentissage s'avère être optimal à la fois pour la durée d'exécution et pour le matériel nécessaire à le mettre en oeuvre La sortie du réseau de neurones s'analyse sous forme de l'affectation correcte ou non de chaque classe au sous-groupe prévu Pour fixer les idées on peut par exemple chercher à isoler un sous-groupe de classe G+ à partir du groupe d'exemples M. Le sous-groupe de classes G est alors formé par le groupe d'exemples M dans lequel on a extrait le sous-groupe de classes G+ L'apprentissage du neurone père va ainsi tendre à faire correspondre M+ avec G+ et M avec G-. Le sous-groupe de classes G+ peut être homogène ou inhomogène Les classes n'étant pas a priori linéairement séparables, le sous-groupe M ainsi séparé peut comprendre lui aussi des éléments du sous-groupe de classe G+. Les exemples générant les sous-groupes d'exemples M+ et M sont tout d'abord traités séparément On examine l'homogénéité de M+ et de M, étapes 220, 210. En effet le neurone père a pour tâche de séparer un sous-groupe de classes prédéfini Si le groupe d'exemples M+ (respectivement M-) est homogène, c'est-à-dire s'il ne contient que des exemples d'une même classe, ces exemples sont ainsi séparés, étape 222 (respectivement étape 212) (classes Ko, Kj). Si le sous-groupe d'exemples M+ (respectivement M-) est inhomogène, c'està-dire s'il contient des exemples de classes diffférentes, il faut continuer la séparation. Pour cela on sélectionne (étape 224) un sous-groupe d'exemples inhomogène soit M+ soit M- Ce choix peut être fait par exemple en prenant le sousgroupe le plus nombreux ou le sous-groupe renfermant le moins de classes ou tout autre critère. Le sous-groupe M+ ou M ainsi sélectionné est soumis à l'action d'une répartition de classes qui consiste, comme pour l'étape 202, à répartir les k classes du sous-groupe sélectionné en deux sous-groupes de classes seulement (étape 226) Ceci ramène le problème de classification à k classes à un problème de classification à deux classes L'apprentissage du neurone N 2 (étape 228) consiste à effectuer une première séparation du sous-groupe d'exemples sélectionné en deux sous-groupes et pour cela consiste à tendre à faire correspondre les deux sous-groupes d'exemples nouveaux aux deux sous-groupes de classes prédéterminées Les coefficients synaptiques du neurone N 2 sont ainsi déterminés Ils restent alors inchangés et le neurone N 2 opère une seconde séparation sur la totalité des sous-groupes d'exemples M+ et M générés par le neurone précédent Une commande 231 est pour cela émise qui valide le traitement de M+ (étape 230) et de M (étape 240) par le neurone N 2. A l'issue de ces deux dernières étapes le neurone N 2 a réparti respectivement les exemples des sous-groupes M+ i 2 2 3/3 et M en deux nouveaux sous-groupes d'exemples M+/M et M+/M-. L'ensemble de ces quatre sous-groupes est alors traité par un neurone successeur N 3 (non représenté) selon le même mécanisme La suite d'étapes située entre les lignes discontinues A-A et B-B (fig 2) est reprise à l'identique en opérant sur quatre sous-groupes au lieu de deux sous-groupes. L'étape de construction de la couche courante est achevée lorsque tous les exemples du groupe M ont ainsi été traités et que chaque sous-groupe d'exemples isolé ne contient que des exemples appartenant à la même classe Le procédé peut s'en tenir là, o éventuellement construire une couche supplémentaire si nécessaire Le nombre de neurones et leurs coefficients synaptiques sont ainsi déterminés par le procédé lui-même et l'opération d'apprentissage est achevée pour ce groupe d'exemples Le réseau de neurones peut alors être exploité pour opérer des tâches de classifications. La figure 3 est une autre représentation des étapes de séparation opérées par le procédé selon l'invention Sur le groupe inhomogène M d'exemples le neurone père Ni (représenté par un trait gras) effectue la séparation selon les sous-groupes d'exemples M+ et M-. On suppose sur cette représentation que les deux sous-groupes d'exemples M+ et M sont inhomogènes L'un des sous-groupes est sélectionné par exemple M+ pour opérer l'apprentissage par un neurone successeur N 2 en calculant ses coefficients synoptiques Lorsque cet apprentissage est terminé le neurone N 2 conserve ces coefficients synaptiques et opère la répartition sur l'ensemble M+ et M qu'il sépare en 2/2 M 3/3 2 3 M+/" et M+/M- Supposons que M et M+ soient homogènes le procédé se poursuit avec les deux sous-groupes inhomogènes restants soit M+ et M- Le sous-groupe M+ est par exemple sélectionné pour calculer les coefficients synaptiques d'un neurone successeur N 3 Ensuite le neurone N 3 répartit les sous-groupes M+ et M respectivement selon les sous-groupes 4 4 5 5 4 5 M+/N et M+/M- Si par exemple seulement M et M+ sont inhomogènes un neurone successeur N 4 opère comme préalablement G G 7 7 pour séparer les sous-groupes M+/M et M+/M supposés homogènes L'apprentissage du réseau de neurone pour cette tâche de classification est alors achevée et il peut être utilisé en mode d'exploitation pour opérer ce type de tâche sur d'autres exemples. La partie droite de la figure 3 indique en colonne I le groupe d'exemples utilisé par le neurone placé sur la même ligne pour le calcul des coefficients synoptiques de ce neurone. La colonne II indique le groupe d'exemples sur lequel le neurone placé sur la même ligne effectue ensuite la séparation des sous-groupes d'exemples. La colonne III indique pour chacun desdits neurones les sous-groupes d'exemples homogènes qui sont alors extraits avant l'action du neurone successeur. Selon l'invention la répartition vers laquelle doit tendre le neurone consiste à exploiter une analyse en composantes principales de la distribution d'exemples. L'analyse en composantes principales est une méthode statisti- que qui permet de décrire un ensemble de grands N vecteurs y (points dans un espace à d dimensions) à l'aide d'un vecteur moyen J POUGET, E TESTU, Editeur Dunod ( 1982) p 167. Le cas simple de la figure 4 A représente une distribution 40 dans un espace à deux dimensions avec un rapport des écarts-type al/a 2 sensiblement égal à 3 Pour cette distribution on définit une moyenne et des composantes principales V 1 t V 2 selon des directions propres Dl, D 2 Si on classe les composantes principales par variances décroissantes, la première direction propre indique la direction selon laquelle la norme de (y" ) varie le plus avec l'exemple p Lorsqu'on dispose d'un ensemble d'exemples y attribués aux classes Ci, C 2,,Ck, auxquels on veut appliquer un séparateur linéaire (neurone) pour progresser dans la classification à k classes, il est avantageux de séparer les k classes en deux groupes disjoints G+/G de la façon suivante: i) on calcule la moyenne et la première composante principale V 1 de l'ensemble des exemples y en effectuant par exemple une analyse en composantes principales complète par calcul et diagonalisation de la matrice de covariance suivi du choix de la composante de variance maximum, ii) on calcule les centres de gravité correspondant à chaque classe C = E y c Nc C o E indique une sommation sur les exemples dont la classe est C C, Nc le nombre d'exemples de la classe C, iii) on regroupe les classes dont le centre de gravité vérifie " c ) Il > O dans G+, les autres dans G_. La méthode d'analyse en composantes principales est illustrée par la figure 4 B pour une distribution à deux dimensions et trois classes La distribution 40 comprend les classes C 1, C 2, C 3 ayant chacune une valeur moyenne 1, 2, 3 et un centre de gravité Hl, H 2, H 3 Selon i) le calcul de la moyenne et du premier vecteur principal détermine et el Selon ii) le calcul des centres de gravité associés aux classes détermine Hl, H 2, H 3 Le regroupement des classes selon iii) permet de répartir les trois classes en deux sous-groupes de classes à l'aide du séparateur 41. Dans ce cas la répartition des exemples en deux sous-groupes de classes effectue une répartition par rapport à l'axe passant par le centre de gravité de la distribution d'exemples perpendiculairement à une direction principale, ledit centre étant déterminé lors de l'analyse en composantes principales L'avantage essentiel de cette méthode par rapport à d'autres choix (sélection d'une classe par exemple) est que le séparateur linéaire sera plus équilibré c'est-à-dire qu'il séparera les exemples en deux sousensembles de population moins différentes. Les apprentissages effectués par les neurones afin de déterminer leurs coefficients synaptiques pour approcher au mieux les sous-groupes de classes désirés sont préférentiellement effectués selon l'algorithme Pocket utilisé par M MEZARD et J P NADAL dans "Learning in Feedforward Layered networks: the tiling algorithme J Phys A: Math. Gen 22 ( 1989) p 2191-2203 et décrit par S GALLANT "Optimal Linear Discriminantsn IEEE proc 8th Conf on Pattern Recognition, Paris ( 1986). Pour cela pour chaque exemple choisi au hasard on calcule le potentiel de sorties d'un neurone Si ce potentiel satisfait le critère de stabilité S> O on choisit un autre exemple Si ce potentiel ne satisfait pas le critère de stabilité (S inhomogène. Cet algorithme (tiling) a été conçu pour construire un réseau de neurones multicouches en ajoutant des neurones jusqu'à ce que le code représenté (+ /-; 1/0) par les unités de la couche en cours soit fidèle, c'est-à-dire que deux exemples de classes différentes n'aient pas le même code sur l'ensemble de la couche concernée Chaque couche est ainsi construite à partir des exemples de la couche précédente. La figure 5 représente l'organigramme de l'algorithme Pocket qui opère la séparation d'un groupe d'exemples en deux groupes. Pour un neurone donné on initialise ses coefficients synoptiques Cij à zéro et on initialise un critère d'erreurs maximum C Rm à une valeur très élevée (étape 400) On tire aléatoirement un exemple EX (étape 402) pour lequel on détermine (étape 404) une valeur de stabilité S telle que: N S =E C Y j= 0 ij' j o i est l'indice du neurone en cours d'analyse j est l'indice des neurones ou des entrées qui lui sont connectés Y est la composante j de l'exemple p présenté à l'entrée du neurone i. Cette stabilité S est testée (étape 406) Si elle est positive, la stabilité est suffisante et on choisit un autre exemple. Si cette stabilité S est négative ou nulle des coefficients synaptiques C'ij sont déterminés tel que C'ij (nouveau) = C'ij (ancien) + Yj (étape 408). Chaque nouveau coefficient synaptique C'1- ainsi déterminé doit satisfaire un critère d'erreurs CR (étape 410) qui détermine par exemple le nombre d'exemples pour lesquels la stabilité est du mauvais signe Si ce critère CR est inférieur à une valeur maximale C Rm du critère (étape 412), les coefficients synoptiques C'ij déterminés servent:à mettre à jour (étape 414) les coefficients synoptiques Cij préalablement mémorisés. De même la valeur maximale C Rm est mise à jour Tous les exemples sont ainsi successivement utilisés pour calculer puis éventuellement mettre à jour les coefficients synaptiques de ce neurone i A l'issue de cet apprentissage, la séparation opérée par ce neurone i est testée en déterminant pour un exemple d'un groupe donné le résultat obtenu (séparation en deux groupes de classes: +/-; 1/0) Si la séparation ne délivre pas des groupes de classes homogènes un autre neurone est ajouté dans la couche et l'algorithme Pocket est mis en oeuvre à nouveau de la même manière. L'invention concerne également un réseau de neurones muni de moyens mettant en oeuvre le procédé Le réseau comprend une unité de calcul qui détermine les états de sortie Vi des neurones à partir des potentiels d'entrée Vj selon: Vi= Cij * Vj o Cij sont les coefficients synoptiques qui relient le neurone i aux entrées j (ou neurone j) Cette unité de calcul opère selon les mécanismes connus de l'homme du métier décrits par exemple dans l'article de R P LIPPMANN déjà cité Un calculateur hote gère l'ensemble des opérations. Le réseau de neurones en couches peut être formé de couches successives ayant des neurones dont l'apprentissage est opéré selon le procédé décrit Il est également possible que le réseau de neurones soit formé d'une seule couche, obtenue selon le procédé décrit, dont les neurones agissent comme séparateurs dans l'espace des entrées Les états de sorties des neurones de cette couche peuvent alors être traités directement par une mémoire qui stocke les classes d'exemples en fonction des états binaires des neurones de ladite couche. REVENDICATIONS 1 Procédé de classification mis en oeuvre dans un réseau de neurones en couches, comprenant des étapes d'appren- tissage au cours desquelles au moins une couche est construite par addition de neurones successifs nécessaires pour opérer par dichotomies successives une classification d'exemples ré- partis par classes caractérisé en ce que pour créer au moins une couche à partir d'un groupe d'exemples répartis sur plus de deux classes, chaque neurone successif tend à séparer ses données d'entrée selon deux sous-groupes de classes prédéter- minés propres audit neurone selon une analyse en composantes principales de la distribution desdites données d'entrée soumises à l'apprentissage du neurone de la couche concernée. 2 Procédé selon la revendication 1 caractérisé en ce que pour séparer le groupe inhomogène d'exemples, l'appren- tissage comprend les étapes suivantes: A Introduction du groupe inhomogène d'exemples, B Répartition des exemples du groupe inhomogène en deux sous-groupes de classes basée sur une analyse en composantes principales, C Apprentissage d'un neurone père en calculant ses coefficients synoptiques pour qu'il tende à séparer le groupe d'exemples en deux sous-groupes d'exemples approchant le mieux possible la première répartition en deux sous-groupes de classes, D Test de l'homogénéité de chacun des deux sous-groupes d'exemples pour déterminer s'ils renferment ou non une seule classe-d'exemples, E Parmi lesdits sous-groupes d'exemples sélection d'un seul sous-groupe inhomogène, F Répartition des exemples du sous-groupe inhomogène en deux sous-groupes de classes basée sur une analyse en composantes principales, G Apprentissage d'un neurone suivant en calculant ses coefficients synaptiques pour qu'il tende à séparer le sous- groupe d'exemples inhomogène sélectionné en deux sous-groupes d'exemples approchant le mieux possible la répartition suivante en deux sous-groupes de classes, H Action dudit neurone suivant sur l'ensemble des sousgroupes inhomogènes d'exemples séparés par le neurone précédent pour générer de nouveaux sous-groupes d'exemples, I Test de l'homogénéité de chacun de ces nouveaux sous-groupes d'exemples générés, J Extraction des exemples appartenant à des sous-groupes inhomogènes d'exemples, K Poursuite à l'étape E sur les sous-groupes d'exemples inhomogènes restants jusqu'à l'obtention de sous-groupes homogènes formés de classes uniques. 3 Procédé selon la revendication 2 caractérisé en ce que le calcul des coefficients synaptiques met en oeuvre soit l'algorithme n Pocket", soit une règle d'apprentissage du type "Perceptron", soit une règle d'apprentissage de type "Hebb". 4 Réseau de neurones muni de moyens d'apprentissage caractérisé en ce qu'il comprend des moyens pour mettre en oeuvre le procédé selon une des revendications 1 à 3. Réseau de neurones selon la revendication 4 ca- ractérisé en ce qu'il comprend une mémoire qui stocke les classes d'exemples en fonction des états binaires des neurones de la première couche.