FR 2658337 A1 19910816 FR 9001529 A 19900209 DESCRIPTION "PROCEDE D'APPRENTISSAGE D'UN RESEAU DE NEURONES HIERARCHISE ET RESEAU DE NEURONES HIERARCHISE". L'invention concerne un procédé de classifica- tion mis en oeuvre dans un réseau de neurones, comprenant des étapes d'apprentissage au cours desquelles le réseau de neuro- nes détermine des coefficients synoptiques pour classifier un groupe d'exemples répartis sur plusieurs 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 synapses auxquelles sont affectés des coefficients synaptiques Ils permettent de traiter des problèmes qui le sont difficilement 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) jusqu'à 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'exém- 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 "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 Cependant en mode d'exploitation ces réseaux ne sont pas optimaux en termes de temps de calcul car il faut mettre à jour tous les neurones systématiquement. Ils ne sont pas optimaux non plus en compacité car il faut faire appel à un nombre de neurones beaucoup plus élevé que le nombre de neurones théorique De plus dans le cas de problèmes évolutifs il est nécessaire de recommencer la to- talité de l'apprentissage lorsque les paramètres d'entrée ne sont que faiblement modifiés par exemple lorsque dans un pro- blème de classification on ajoute une classe aux classes déjà apprises. Le problème posé est donc de concevoir une archi- tecture de réseaux de neurones qui traite des problèmes de classification à multiclasses et qui soit plus compacte que les architectures en couches connues Il est demandé à cette architecture d'opérer très rapidement Il est également demandé à cette architecture d'être plus souple que les architectures connues et d'être aisément évolutive. La solution consiste en un procédé de classifica- tion dans lequel l'apprentissage comprend les étapes suivan- tes: A Répartition des classes relatives aux exemples à clas- ser suivant deux sous-groupes de classes, B Calcul des coefficients synaptiques d'un neurone pour qu'il tende à séparer le groupe d'exemples en deux sous-groupes d'exemples approchant le mieux possible la répartition suivant lesdits deux sous-groupes de classes, C Test de l'homogénéité des sous-groupes d'exemples séparés pour déterminer s'ils renferment une classe unique, D Séparation de chaque sous-groupe d'exemples inhomogène en reprenant le procédé à l'étape A, en opérant pour chaque sous-groupe d'exemples inhomogène avec un neurone successeur jusqu'à ce que les nouveaux sous-groupes d'exemples séparés correspondent tous à un sous-groupe de classe homogène. Ce procédé se rapporte à un réseau de neurones hiérarchique o la mise à jour des coefficients synaptiques suit un chemin dans un arbre de décision Avec un réseau de neurones organisé en arbre tous les neurones opèrent dans l'espace des entrées L'architecture qui s'en déduit est très compacte Les durées d'apprentissage sont très réduites car l'architecture peut être très proche de l'architecture optimale selon le choix des sous- classes prédéterminées souhaitées traitées par le neurone. En phase d'exécution, les durées d'exécution sont également très réduites car pour une classe donnée elles mettent en oeuvre uniquement les neurones nécessaires à la séparation de ladite classe. Pour effectuer l'apprentissage on calcule les coefficients synoptiques d'un neurone père pour séparer un groupe M d'exemples en vue d'isoler un sous-groupe de classes particulier P dans le groupe d'exemples M. Lorsque par exemple le groupe M d'exemples couvre les classes A, B, C, D, la séparation peut consister à isoler à l'intérieur d'un sous-groupe M+ une des classes par exemple la classe B Dans ce cas le sous-groupe complémentaire M est constitué des autres classes A, C, D. Il est également possible pour chacune des classes A, B, C, -D de déterminer préalablement un critère d'erreurs sur l'aptitude du neurone à l'isoler puis de sélec- tionner la classe ayant le critère d'erreurs le plus petit pour mettre en oeuvre le procédé. Cette séparation des exemples en deux sous-grou- pesr opérée par un neurone, peut également être effectuée pour tendre à 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 groupes en rela- tion avec le centre de gravité de la distribution d'exemples. La classe particulière que le neurone doit sépa- rer peut être également déterminée à partir d'apprentissages antérieurs opérés sur des réseaux en couches Dans cette si- tuation un tel réseau de neurones en couches a adapté ses coefficients synoptiques à la base d'exemples multiclasses La première couche qui opère sur les potentiels d'entrée agit comme un séparateur de classes On peut ainsi sélectionner dans cette première couche le neurone qui opère une séparation la plus rapprochée de la répartition particulière souhaitée. Dans ce cas les coefficients synaptiques initiaux du neurone sont déterminés à partir d'un réseau de neurones en couches en y sélectionnant les coefficients synaptiques d'un neurone qui sépare une classe approchant au mieux ladite classe particu- lière. Au lieu d'isoler une classe prédéterminée on peut vouloir opérer une répartition différente par exemple équili- brer la population des exemples dans les deux groupes d'exem- ples séparés par le séparateur Ce sont alors les coefficients synoptiques du neurone séparateur le mieux adapté du réseau de neurone en couches qui seront utilisés pour entreprendre l'ap- prentissage du neurone concerné de l'arbre. Avantageusement on exploite ainsi les résultats satisfaisants obtenus dans une architecture précédente pour construire une architecture en arbre plus compacte plus rapide et plus performante. La séparation dans le groupe M+ de la classe par- ticuliè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 ou l'autre de ces groupes est homo- gène, la séparation de ce groupe est achevée Si l'un ou l'autre de ces groupes est inhomogène, pour chaque groupe on génère un neurone successeur qui sépare le groupe inhomogène en deux nouveaux groupes Pour cela le procédé calcule des: coefficients synoptiques pour ce neurone successeur qui opère cette séparation selon un critère de dichotomie Cette sépara- tion opère sur les exemples d'entrée qui ont généré le groupe inhomogène concerné Cette procédure de dichotomie des exem- ples et de génération de neurone successeur est itérée sur les générations successives. 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 m Perceptrons" qui réactualise les coefficients synoptiques à 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. Ainsi pour effectuer l'apprentissage d'un neurone quelconque le calcul de ses coefficients synaptiques met en oeuvre soit l'algorithme *Pocket' soit une règle d'apprentis- sage 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 "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 selon une architecture en arbre puis il est utilisé pour opérer des tâches de classification Les branches de l'arbre sont alors parcourues en fonction de leur construction Le neurone suc- cesseur dépend du résultat délivré par un neurone précédent. Il est donc nécessaire qu'une mémoire permette de parcourir l'arbre en fonction du résultat obtenu en sortie de chaque neurone Pour cela le réseau de neurones est muni d'une mémoi- re qui stocke un dictionnaire d'adresses qui, selon le résul- tat obtenu sur un neurone quelconque, met en oeuvre un neurone suivant selon une organisation en arbre La sélection des exemples traités par chaque neurone pouvant être différente pour chaque neurone en fonction du résultat du neurone précé- dent, le réseau de neurones comprend des moyens qui permettent de sélectionner les exemples à traiter par chaque neurone successeur. L'invention sera mieux comprise à l'aide des fi- gures suivantes données à titre d'exemples non limitatifs et qui représentent: Figures 1 A, l B: une représentation dans l'espace des entrées du mode d'action des séparateurs dans une base d'exem- ples à trois classes A, B, C et la structure d'arbre qui lui correspond, Figure 2: un organigramme relatif à un arbre de neurones qui indique le mécanisme de séparation des classes et les sous-groupes d'exemples concernés. Figure 3: une représentation de la séparation des exem- ples. Figures 4 A, 4 C: deux représentations de deux exemples de répartition des classes, Figure 4 B: une représentation des composantes principales d'une distribution, Figure 5: un exemple d'algorithme constitué par l'algori- thme Pocket permettant d'opérer la séparation entre deux grou- pes de classes, Figure 6: un schéma d'un réseau de neurones organisé en arbre de neurones. La figure 1 A est une représentation dans l'espace des entrées du mode d'action des séparateurs. La situation traitée comporte 3 classes A, B, C réparties sur un groupe d'exemples. Sur cette figure, le séparateur 1 sépare l'espace en deux parties: la partie supérieure comprend un premier sous-groupe d'exemples (classes A, B) et la partie inférieure comprend un second sous-groupe d'exemples (classes A, B, C). Le séparateur successeur 2 isole la classe A d'une part et les autres sous-groupes d'exemples (classes A, B) d'autre part. Il faut ajouter ensuite les séparateurs 4 puis 6 opérant sur le premier sous-groupe d'exemples pour opérer la séparation complète des classes A et B. De même pour le second sous-groupe d'exemples, après l'action du séparateur 1, si l'on souhaite séparer un exemple représenté par le symbole X (classe C) il faut faire intervenir dans l'ordre par exemple les séparateurs 3, 5, 7, 9. Ces mêmes résultats sont représentés sous forme d'arbre sur la figure 1 B o les mêmes chiffres représentent les neurones (séparateurs) qui opèrent la séparation Le neu- rone père est le neurone 1 les autres étant des neurones suc- cesseurs Ainsi dans la situation représentée la séparation complète des trois classes nécessite neuf neurones Le parcours de l'arbre pour isoler le symbole X de la classe C est représenté en traits gras sur la figure 1 B. La figure 2 représente un organigramme relatif à une structure en arbre 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 si- multanément à déterminer le nombre de neurones nécessaires: pour accomplir cette tâche Il s'agit donc également de déter- miner 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 clas- ses à 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 synoptiques d'un neurone père Nl 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-grou- pes 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 une classe C (G+ = C) dans un groupe d'exemples qui comprend plusieurs classes A, B, C, D Le sous- groupe de classes G est alors foermé 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-. Les classes A, B, C, D n'étant pas a priori linéairement séparables, le sous-groupe M ainsi séparé peut comprendre lui aussi des éléments de classe C D'autres répartitions plus complexes peuvent être soumises à l'action du neurone père comme cela est exposé plus loin. Les exemples générant les sous-groupes d'exemples M+ et M sont ensuite 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, KI). 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 sur ce groupe d'exemples inhomogène, étape 224 (respectivement étape 214). Pour cela on opère une répartition du sousgroupe d'exemples M+ en deux sous-groupes de classes selon le même mécanisme de répartition décrit à l'étape 202 en opérant sur le nombre de classes restant dans le sous-groupe d'exemples M+ Puis on ajoute un neurone successeur N 2 (respectivement N 3) et un mécanisme analogue de dichotomie est opéré A la sortie du neurone successeur, N 2 par exemple, on obtient ainsi les S g S e Mé 2 les sous-groupes d'exemples M+ et M qui sont eux-mêmes testés (étapes 240, 260) en ce qui concerne leur homogénéité pour déterminer s'ils isolent ou non des classes d'exemples (classes K 2, K 4) (étapes 242, 262) Un processus identique s'opère à la sortie du neurone successeur N 3 (étapes 250, 230, 252, 232) Le procédé selon l'invention s'achève 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 nombre de neurones et leurs coefficients synoptiques 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 classification. 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 Nl (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 le sous-groupe d'exemples M+ est homogène et contient une classe unique On suppose également que le sous-groupe d'exemples M est inhomogène Le neurone successeur N 3 (trait gras) sépare M en deux sous-groupes 3 3 3 d'exemples M+ et M- Le sous-groupe M est homogène et le sous-groupe M+ est inhomogène Ce dernier est séparé par le neurone successeur N 5 (trait gras) en deux sous-groupes 5 d'exemples M+ et M qui sont homogènes dans la situation représentée Le procédé de classification est alors terminé et le réseau de neurones en arbre peut être utilisé pour opérer des classifications sur d'autres groupes de données Sur la figure 3 la colonne I indique le groupe M ou les sous-groupes i 3 d'exemples M-, M+ sur lesquels opère la séparation réalisée par le neurone successeur concerné c'est-à-dire après extraction des groupes ou sous-groupes homogènes séparés par le groupe ou sous-groupe précédent. Le neurone père tend à séparer les exemples en deux sous-groupes d'exemples proches de la répartition prédéfinie. Un premier exemple de répartition des classes en deux sous-groupes de classes a déjà été décrit isolant une classe particulière des autres classes formant entre elles l'ensemble des classes d'exemples. La figure 4 A constitue une représentation d'un groupe M d'exemples 40 formé des classes C 1, C 2 et C 3 La limite de la classe Ci est formée par la courbe 30 Le calcul des coefficients synoptiques du neurone va consister à isoler au mieux la classe Cl et à placer un séparateur formé ici par la droite 31. Un second exemple de répartition peut consister à calculer préalablement un critère d'erreurs pour chacune des classes d'exemples On définit alors un critère d'erreurs évaluant la meilleure répartition C'est la classe particulière ainsi isolée par cette meilleure répartition qui est sélectionnée pour effectuer l'apprentissage de chaque neurone donc pour déterminer ses coefficients synoptiques. Le premier et le second exemple de répartition peuvent conduire à des arbres de grande taille (grand nombre de neurones) et de grande profondeur (grand nombre de neurones à mettre à jour) ce qui peut constituer un handicap Pour cette raison on peut leur préférer d'autres types de séparation. Un troisième exemple de répartition vers laquelle doit tendre le neurone peut consister à 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 + 1 p moyen J POUGET, E TESTU, Editeur Dunod ( 1982) p 167. Le cas simple de la figure 4 B 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, V 2 selon des directions propres DI, 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 semble 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 Vl 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 dans G+ les classes dont le centre de gravité vérifie ( C- ) V 1 > O et les autres classes dans G-. La méthode d'analyse en composantes principales est illustrée par la figure 4 C 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 l, 2, 3 et un centre de gravité HI, H 2, H 3 Selon i) le calcul de la moyenne et du premier vecteur principal détermine et Vl Selon ii) le calcul des centres de gravité associés aux classes détermine Hl, H 2, H 3 Le regroupement des class:es 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. Un quatrième exemple de répartition peut consister à exploiter des résultats déjà connus sur un réseau de neurones en couches En effet un tel réseau de neurones qui a déjà subi un apprentissage pour l'adapter à une tâche identique ou semblable possède des coefficients synaptiques déjà déterminés La couche d'entrée d'un tel réseau de neurones en couches comprend des neurones qui opèrent également une fonction de séparateur Sur le groupe d'exemples M à traiter il est ainsi possible de déterminer sur cette couche d'entrée le neurone opérant la séparation en deux sousgroupes qui soit la plus proche de la répartition souhaitée. Ces quatre exemples de répartition mise en oeuvre par les neurones ne constituent pas une liste limitative et d'autres choix peuvent être opérés selon l'invention. Les apprentissages effectués par les neurones afin de déterminer leurs coefficients synoptiques 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 algorithm" J Phys A: Math. Gen 22 ( 1989) p 2191-2203 et décrit par S GALLANT u O ptimal Linear Discriminants" 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> 0) on choisit un autre exemple Si ce potentiel ne satisfait pas le critère de stabilité (S jusqu'à ce que l'on ait une couche à un seul neurone. 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 synaptiques 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 i S=E C Y j=O 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,u 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) + Y; (étape 408). Chaque nouveau coefficient synaptique C'ij 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 synaptiques 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 synoptiques 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. Cet algorithme ne peut différencier que deux types de groupes de classes + / (ou 1/0) obtenus en sortie du neurone Il ne peut donc pas opérer directement sur des exemples d'apprentissage répartis sur un plus grand nombre de classes A, B, C, D L'invention concerne également un réseau de neurones organisé en arbre dont une représentation schématique est fournie par la figure 6 Le réseau comprend une unité de calcul 500 qui détermine les états de sortie Vi des neurones à partir des potentiels d'entrée Vj selon Vi = E Cij Vj o Cij sont les coefficients synaptiques qui relient le neurone i aux entrées j (ou neurone j). Cette unité de calcul 500 opère selon les mécanismes connus de l'homme du métier décrit par exemple dans l'article de R P LIPPMANN déjà cité. Lors de l'apprentissage d'un neurone quelconque son neurone successeur sera différent selon le résultat délivré par ce neurone quelconque Pour utiliser le réseau de neurones, il est donc nécessaire de déterminer le neurone successeur selon le résultat délivré par le neurone quelconque Pour cela une mémoire d'adresses 504 peut recevoir une adresse correspondant audit résultat et délivrer en retour une adresse de neurone successeur. Lors de l'étape d'apprentissage proprement dite les neurones sont créés comme cela a été préalablement défini, l'ordre de succession des neurones successeurs est ainsi déterminé et la mémoire 504 est chargée Ainsi le réseau de neurones est muni d'une mémoire qui stocke un dictionnaire d'adresses qui, selon le résultat obtenu sur un neurone quelconque, met en oeuvre un neurone suivant selon une organisation en arbre L'adressage de n'importe quelle branche de l'arbre est ainsi réalisé rapidement avec peu de matériel. Une mémoire de classes 506 stocke les classes séparées par l'arbre de neurones. Lors de l'étape d'exploitation du réseau de neurones en arbre, la mémoire est adressée par les résultats délivrés par les neurones et fournit en retour l'adresse des N neurones successeurs Cet échange s'effectue à travers un calculateur hote 502 qui gère l'ensemble des échanges des différentes unités entre elles. Lorsqu'une extrémité d'une branche de l'arbre est atteinte la classe correspondante est lue dans la mémoire de classes ( 506) Avantageusement cela permet d'opérer rapidement une détermination des classes homogènes d'exemples Les exemples sont stockés dans une mémoire d'exemples 508 Une mémoire 510 d'allocation des exemples permet de sélectionner les sousgroupes d'exemples qui doivent être traités par un neurone déterminé. REVENDICATIONS 1 Procédé de classification mis en oeuvre dans 7 un réseau de neurones, comprenant des étapes d'apprentissage au cours desquelles le réseau de neurones détermine des coeffi- cients synaptiques pour classifier un groupe d'exemples répar- tis sur plusieurs classes, caractérisé en ce que l'apprentis- sage comprend les étapes suivantes: A Répartition des classes relatives aux exemples à clas- ser suivant deux sous-groupes de classes, B Calcul des coefficients synaptiques d'un neurone pour qu'il tende à séparer le groupe d'exemples en deux sous-grou- pes d'exemples approchant le mieux possible la répartition suivant lesdits deux sous-groupes de classes, C Test de l'homogénéité des sous-groupes d'exemples sépa- rés pour déterminer s'ils renferment une classe unique, D Séparation de chaque sous-groupe d'exemples inhomogène en reprenant le procédé à l'étape A, en opérant pour chaque sous-groupe d'exemples inhomogène avec un neurone successeur jusqu'à ce que les nouveaux sous-groupes d'exemples séparés correspondent tous à un sous-groupe de classe homogène. 2 Procédé selon la revendication 1 caractérisé en ce que la répartition des classes en deux sous-groupes de classes isole une classe particulière des autres classes for- mant entre elles l'ensemble des classes d'exemples. 3 Procédé selon la revendication 2 caractérisé en ce que la classe particulière est déterminée en calculant préalablement un critère d'erreurs pour chacune des classes d'exemples et en sélectionnant la classe ayant le critère d'erreurs le plus petit. 4 Procédé selon la revendication 1 caractérisé en ce que la répartition des classes est obtenue en sélection- nant une répartition déjà opérée par un réseau de neurones en couches. Procédé selon la revendication 1 caractérisé en 5 ce que 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, pér- pendiculairement à une direction principale, ledit centre étant déterminé par une analyse en composantes principales. 6 Procédé selon la revendication 4 caractérisé en ce que les coefficients synoptiques initiaux du neurone sont déterminés à partir d'un réseau de neurones en couches en y sélectionnant les coefficients synoptiques d'un neurone qui sépare une classe approchant au mieux ladite classe particu- lière. 7 Procédé selon une des revendications 1 à 5 carac- térisé en ce que le calcul des coefficients synoptiques met en oeuvre soit l'algorithme "Pocket" soit une règle d'appren- tissage de type "Perceptron" soit une règle d'apprentissage de type "Hebb". 8 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 à 7. 9 Réseau de neurones selon la revendication 8 ca- ractérisé en ce qu'il est muni d'une mémoire qui stocke un dictionnaire d'adresses qui, selon le résultat obtenu sur un neurone quelconque, met en oeuvre un neurone suivant selon une organisation en arbre. 10 Réseau de neurones selon les revendications 8 ou 9 caractérisé en ce qu'il comprend une mémoire stockant les classes d'exemples correspondant aux extrémités des branches de l'arbre.