Brevet FR2756073A1 — publié le 19980522

PROCEDE D'APPRENTISSAGE GENERANT DES RESEAUX DE NEURONES DE PETITES TAILLES POUR LA CLASSIFICATION DE DONNEES DESCRIPTION Domaine technique L'invention concerne un procédé d'apprentissage générant des réseaux de neurones destinés à la classification de données et construits suivant les besoins de la tâche à effectuer. Cette invention trouve des applications dans les domaines exploitant les réseaux de neurones et, en particulier, pour le diagnostic médical, la reconnaissance de formes ou encore la classification d'objets, ou de données comme des spectres, des signaux, etc. Etat de la technique Les réseaux de neurones, ou réseaux neuronaux, sont des systèmes qui effectuent, sur des informations numériques, des calculs inspirés du comportement des neurones physiologiques. Un réseau neuronal doit donc apprendre à réaliser les tâches que l'on désire lui faire effectuer par la suite. Pour cela, on utilise une base d'exemples, ou base d'apprentissage, qui contient une série d'exemples connus utilisés pour apprendre au réseau de neurones à effectuer les tâches qu'il devra reproduire, par la suite, avec des informations inconnues. Un réseau neuronal est composé d'un ensemble de neurones formels. Chaque neurone est une unité de calcul constituée d'au moins une entrée et une sortie correspondant à un état. A chaque instant, l'état de chaque neurone est communiqué aux autres neurones de l'ensemble. Les neurones sont, en effet, connectés les uns aux autres par des connexions qui ont chacune un poids synaptique. Le niveau total d'activation du neurone est égal à la somme des états de ses neurones d'entrée, pondérés chacun par le poids synaptique de la connexion correspondante. A chaque instant, ce niveau d'activation est utilisé par le neurone pour mettre à jour sa sortie. Le réseau neuronal peut être, en particulier, un réseau en couches ; dans ce cas, le réseau comporte une ou plusieurs couches de neurones connectées chacune à la couche précédente, la dernière étant la couche de sortie. Chaque configuration des entrées du réseau produit une représentation interne qui est utilisée par les couches suivantes pour, par exemple, classer l'état d'entrée. I1 existe actuellement plusieurs algorithmes d'apprentissage permettant d'effectuer une classification de données ou une reconnaissance de formes à partir de réseaux de neurones, comme cela est expliqué, par exemple, dans le document intitulé Introduction to the theory of neural computation de HERTZ, KROGH et PALMER, (1991), Adison-Wesley. Classiquement, les algorithmes permettent de fixer les paramètres du réseau, à savoir les valeurs des poids des connexions, le nombre de neurones utilisés dans le réseau, etc., en utilisant un certain nombre d'exemples connus de données à classer. Ces exemples constituent la base d'apprentissage. L'algorithme le plus couramment utilisé est l'algorithme de rétropropagation du gradient (appelé backpropagation en terme anglo-saxon). Un tel algorithme est décrit, par exemple, dans le document intitulé A learning scheme for asymmetric threshold networks - in Cognitiva, Y. LE CUN, CESTA-AFCET Ed., pages 559-604, (1985) . Cet algorithme consiste à minimiser une fonction de coût, associée à la qualité de la sortie du réseau. Cependant, cet algorithme a besoin de neurones dont les états sont représentés par des nombres réels, même pour des problèmes typiquement binaires, comme le problème de la classification selon deux classes. La rétropropagation du gradient exige, de plus, que l'on introduise, à priori, le nombre de neurones à utiliser ; or, il n'existe aucun critère théorique pour guider le choix de l'homme du métier dans cette détermination du nombre de neurones nécessaires. D'autres algorithmes, appelés algorithmes constructivistes ou adaptatifs , proposent d'adapter le nombre de neurones, dans le réseau, en fonction de la tâche à réaliser. De plus, certains de ces algorithmes n'utilisent que des neurones binaires, comme cela est décrit par exemple dans le document intitulé Learning in feed forward layered neural networks : the tiling algorithm , MEZARD et NADAL, J. PHYS. A22, pages 2 191-2 203, ainsi que dans le document intitulé Learning by activating neurons : a new approach to learning in neural neetworks , RUJAN et MARCHAND, complex Systems 3, (1989), page 229. L'inconvénient majeur de ces algorithmes est que la règle d'apprentissage au niveau de chaque neurone du réseau n' est pas performante, ce qui se traduit par des réseaux trop grands pour la tâche à résoudre et qui généralisent de façon médiocre. La performance d'un algorithme se mesure par la capacité de généralisation de l'algorithme, c'est-à-dire la capacité à prédire à quelle classe appartient une donnée qui n'est pas contenue dans la base d'apprentissage. Pratiquement, elle se mesure au moyen de l'erreur de généralisation qui est le pourcentage de données d'une base de test (comportant des exemples connus, mais indépendante de la base d'apprentissage) mal classées par le réseau dont les paramètres ont été déterminés par l'algorithme d'apprentissage. Un algorithme d'apprentissage performant pour un neurone est décrit dans le document intitulé Learning with temperature dependent algorithm de GORDON et GREMPEL, Europhysics letters, n" 29, pages 257 à 262, Janvier 1995, ainsi que dans le document intitulé Minimerror : perceptron learning rule that finds the optimal weights de GORDON et BERCHIER, ESANN'93, Bruxelles, M. VERLEYEN Ed., pages 105-110. Ces documents décrivent un algorithme, appelé Minimerror , qui permet d'apprendre des tâches de classification au moyen de neurones binaires. Cet algorithme a l'avantage d'avoir une convergence garantie et de bonnes performances numériques, c'est-à-dire une capacité de généralisation optimale. Par ailleurs, cet algorithme Minimerror a été associé à une autre règle d'apprentissage de type constructiviste, appelée Monoplane . Cet algorithme Monoplane est décrit dans l'article intitulé An evolutive architecture coupled with optimal perceptron learning for classification de TORRES-MORENO, PERETTO et CORDON, dans Esann'95, European symposium on artificial neural networks, Bruxelles, Avril 1995, pages 365 à 370. Cet algorithme Monoplane combine l'algorithme Minimerror avec une méthode pour générer des représentations internes. Cet algorithme Monoplane est de type incrémental, c'est-à-dire qu'il permet de construire un réseau de neurones à une couche cachée en ajoutant des neurones au fur et à mesure des besoins. I1 possède ainsi des performances supérieures à celles de tous les autres algorithmes, ce qui signifie que, pour une base d'exemples identique, utilisée par une série de différents algorithmes, cet algorithme Monoplane a montré des résultats meilleurs, c'est-à-dire une plus faible erreur de généralisation. Cependant, ces algorithmes Minimerror et Monoplane utilisent des neurones à fonction d'activation sigmoïdale qui permettent de faire uniquement des séparations linéaires. Un réseau réalisé à partir de tels neurones ne peut donc qu'établir des frontières planes (constituées d'hyperplans) entre domaines de classes différentes. Aussi, lorsque les frontières entre les classes sont courbes, ces réseaux font une approximation linéaire par morceaux, d'où une certaine imprécision et une nécessité d'introduire beaucoup de neurones. D'autres types d'algorithmes, au contraire, effectuent un pavage de l'espace avec des hypersphères qui sont représentées chacune par un neurone. Ces algorithmes, décrits par exemple dans COOPER, REILLY & ELBAUM (1988), Neural networks systems, an introduction for managers, decision-makers and strategists. NESTOR, Inc. Providence, RI 02906-USA, finissent, en général, avec un nombre très élevé de neurones, même lorsqu'ils comportent des opérations d'élagage. Ces algorithmes nécessitent donc trop de ressources, c'est-à-dire trop de neurones et de poids pour réaliser la tâche. Exposé de l'invention L'invention a justement pour but de remédier aux inconvénients des techniques proposées précédemment. A cette fin, elle propose un procédé d'apprentissage générant des réseaux de neurones de petites tailles construits suivant les besoins de la tâche à effectuer et présentant une généralisation performante. Ce procédé d'apprentissage est destiné au classement d'objets ou de données en deux classes séparées par des surfaces de séparation, soit quadratiques, soit linéaires et quadratiques. De façon plus précise, l'invention concerne un procédé pour apprendre, à partir d'une base d'exemples constituée de données d'entrée connues et de cibles correspondant à la classe de chacune de ces données d'entrée, à classer des objets en deux classes distinctes séparées par au moins une surface séparatrice de type quadratique ou de type quadratique et linéaire, ce procédé consistant à générer un réseau de neurones de type binaire, comportant chacun des paramètres descriptifs de la surface séparatrice qu'ils déterminent, ce réseau de neurones comportant des entrées de réseau ainsi qu' une couche de neurones cachés connectés à ces entrées et à un neurone de sortie du réseau caractérisé en ce qu'il comporte A) une étape d'initialisation consistant en Aa) un choix du type du premier neurone qu'on connecte aux entrées Ab) un apprentissage de la base d'exemples (Bo) par ce premier neurone, afin de déterminer les paramètres descriptifs d'une première surface séparatrice, relatifs à ce neurone Ac) une détermination du nombre d'erreurs d'apprentissage Ad) si ce nombre d'erreurs est nul, l'apprentissage est terminé et le premier neurone choisi en Aa) devient le neurone de sortie du réseau Ae) si ce nombre est non nul, les paramètres du premier neurone sont figés et ledit neurone devient le premier neurone (i=l) d'une couche de neurones cachés construite par B) une étape de construction de la couche cachée et de détermination du neurone de sortie du réseau comprenant B1) une adaptation de la couche de neurones cachés en fonction du classement à effectuer consistant à Bla) déterminer de nouvelles cibles pour la base d'exemples Bo en fonction des erreurs d'apprentissage du dernier neurone i appris, les entrées de la base d'exemples Bo complétées des nouvelles cibles constituant une nouvelle base d'exemples Bi ; Blb) incrémenter d'une unité le compteur de neurones cachés i, et connecter un nouveau neurone caché, i, d'un type choisi, sur les entrées du réseau et apprendre à classer la nouvelle base d'exemples (Bi) Blc) figer les paramètres de ce nouveau neurone i, les états des neurones cachés correspondant à chaque donnée d'entrée de la base d'exemples Bo constituant une représentation interne de cette donnée d'entrée B2) une validation de la couche de neurones cachés et une détermination du neurone de sortie du réseau. Selon un premier mode de réalisation de l'invention, les représentations internes des entrées de la base d'exemples constituent une base de représentations internes BRI(i) et l'étape B2) consiste à: B2a) introduire un neurone de sortie de type linéaire, connecter ce neurone de sortie aux neurones cachés, apprendre à ce neurone de sortie la classification de la base de représentations internes BRI(i) et déterminer le nombre d'erreurs d'apprentissage du neurone de sortie B2b) si ce nombre est nul, considérer que le réseau est construit et comporte une couche de i neurones cachés B2c) si ce nombre est non nul, considérer les erreurs d'apprentissage du neurone de sortie comme des erreurs du neurone précédent dans l'étape Bla), annihiler ce neurone de sortie et recommencer le traitement à partir de l'étape Bla) jusqu a ce que le nombre d'erreurs du neurone de sortie soit nul. Selon un deuxième mode de réalisation dans lequel les entrées du réseau sont binaires, le procédé comprend une étape B3) intermédiaire, effectuée entre les étapes B1) et B2) et consistant à B3a) déterminer le nombre d'erreurs d'apprentissage du neurone i B3b) si ce nombre est non nul, le traitement est réitéré à partir de l'étape B1) en considérant les erreurs de ce neurone comme des erreurs du neurone précédent pour créer la base d'apprentissage Bi ; B3c) si ce nombre est nul, considérer la couche de neurones cachés, ainsi construite comme potentiellement acceptable et effectuer l'étape B2). Selon un troisième mode de réalisation de l'invention, dans lequel les entrées du réseau sont binaires, les représentations internes des entrées de la base d'exemples constituent une base de représentations internes BRI(i) et l'étape B2), lorsqu'elle est réalisée après l'étape B3c) consiste à: B2d) introduire un neurone de sortie appelé pseudo-neurone, connecter ce pseudo-neurone à tous les neurones cachés dont les paramètres sont figés, calculer la sortie de ce pseudo-neurone comme étant sensiblement le produit des états des neurones cachés B2e) déterminer si le pseudo-neurone effectue un classement correct de tous les exemples de la base de représentations internes BRI(i) : B2f) si c' est le cas, l'apprentissage est considéré comme terminé et le réseau construit comporte une couche de i neurones cachés B2g) si ce n'est pas le cas, considérer les erreurs de classification du pseudo-neurone de sortie comme des erreurs du neurone précédent dans l'étape Bla, annihiler ce pseudo-neurone de sortie et recommencer le traitement à partir dë l'étape Bla) jusqu'à ce que le nombre d'erreurs du pseudo-neurone de sortie soit nul. Selon un mode de réalisation avantageux, le premier neurone choisi à l'étape Aa) peut être un neurone de type linéaire, les autres neurones étant non linéaires. Selon un autre mode de réalisation avantageux, tous les neurones cachés sont de type quadratique. Brève description des figures - La figure 1 représente schématiquement un réseau de neurones ayant une couche cachée - les figures 2A et 2B représentent le diagramme fonctionnel du procédé de l'invention avec un apprentissage du neurone de sortie, conforme au premier mode de réalisation de l'étape B2) de l'invention - les figures 3A et 3B représentent le diagramme fonctionnel du procédé de l'invention avec un apprentissage du neurone de sortie conforme au troisième mode de réalisation de l'invention. Exposé de modes de réalisation de l'invention L'invention propose un procédé d'apprentissage permettant d'apprendre à un réseau de neurones à classer des données en deux classes séparées par une surface non linéaire en utilisant des réseaux de neurones qui sont construits au fur et à mesure des besoins. Cette surface peut etre soit quadratique, soit en partie linéaire et en partie quadratique. Le réseau de neurones, selon l'invention, est construit à partir de perceptrons généralisés, ctest-à-dire de neurones de base, qui permettent de classer les données qu'ils reçoivent en entrées, selon deux classes. Plus précisément, un perceptron est un neurone qui reçoit N signaux d'entrées, caractérisant l'objet ou la donnée à traiter, et qui calcule une fonction de ces entrées, par exemple une somme pondérée ou une fonction quadratique ou bien une fonction logarithmique et donne, comme signal de sortie, le signe de ladite fonction. Suivant que les vecteurs représentatifs des données d'entrées (appelées indifféremment entrées ou données d'entrée ) se trouvent d'un côté ou de l'autre de la surface de séparation, la sortie du perceptron est 1 ou -1. Un tel perceptron est appelé classifieur linéaire si la fonction des entrées est la somme pondérée des entrées ; il ne peut alors classer que des données séparables par un hyperplan de normale w, c'est-à-dire par une surface séparatrice linéaire d'ordre 1. D'une façon générale, un perceptron généralisé est un neurone ; un perceptron linéaire est un neurone qui produit des surfaces de séparation linéaires ; un perceptron quadratique est un neurone qui produit des surfaces de séparation qui sont des fonctions quadratiques des entrées du réseau. Qu'il s'agisse de neurones ou de perceptrons, chacun représente une unité binaire. Le procédé de l'invention consiste donc, à partir d'un perceptron généralisé, à construire un réseau de neurones, de manière incrémentale, c' est-à-dire en augmentant le nombre de neurones nécessaires à la tâche que l'on souhaite faire effectuer à ce réseau de neurones. De façon plus précise, le procédé de l'invention consiste à augmenter le nombre de neurones dans une couche intermédiaire, appelée couche cachée , de manière à construire un réseau avec un nombre de neurones suffisant pour réaliser la tâche qui lui a été assignée, la classification de données. Lorsque l'ensemble des données à classer est linéairement séparable, on peut utiliser un perceptron linéaire. Au contraire, lorsque l'ensemble des données à classer n'est pas linéairement séparable, on peut utiliser des réseaux de neurones ayant des couches de neurones intermédiaires, appelées couches cachées , disposées entre les unités d'entrée et la sortie du réseau. Il est à noter, toutefois, que si le classement est purement séparable par une surface quadratique, un seul neurone suffit. Cependant, le nombre exact de neurones nécessaires, constituant cette couche cachée, n'est, à priori, pas connu. Le procédé de l'invention permet justement de construire un réseau avec au moins une couche de neurones cachés, au fur et à mesure des besoins, c' est-à-dire en augmentant le nombre des neurones constituant cette couche cachée, en fonction de l'ensemble de données à classer. Dans ce cas, le nombre de neurones du réseau augmente pendant le processus d'apprentissage. L'architecture finale du réseau et la taille du réseau sont définies par l'algorithme d'apprentissage et sont fonction de l'ensemble des exemples utilisés. Chaque neurone rajouté dans la couche cachée est donc un perceptron généralisé dont les poids doivent être appris, les poids de tous les autres neurones du réseau déjà construit restant gelés (c'est-à-dire sauvegardés en vue d'une utilisation ultérieure). Le procédé de l'invention consiste à construire un réseau de neurones avec au moins une couche cachée connectée aux unités d'entrées du réseau et avec un seul neurone de sortie connecté aux neurones de la dernière couche cachée. Dans la suite de la description, on considèrera le cas d'un réseau ayant une seule couche cachée, sachant que le procédé pour construire plusieurs couches cachées reprend, pour chaque couche cachée, le procédé utilisé pour construire un réseau à une seule couche cachée. Ainsi, au cours de l'apprentissage, le nombre de neurones de la couche cachée grandit, jusqu'à ce que le neurone de sortie du réseau classe correctement tout ou partie de l'ensemble d'apprentissage, c'est-à-dire des exemples de la base d'apprentissage. La quantité d'erreurs tolérables est déterminée par l'utilisateur. En fin d'apprentissage, les neurones de la couche cachée ont des poids Jk = (Jko,..., Jki,..., Jkn) avec O W = (WO, W1, .. . , Wk, . . . , WNH) avec 0 Sur la figure 1, on a représenté un exemple de réseau à une couche cachée. Sur cette figure, on a représenté, par des petits ronds, différents neurones du réseau. Les ronds pleins représentent les unités d'entrée du réseau ; ils sont notés ##i, Ioù u est le numéro de l'exemple ; les neurones de la couche cachée sont notés Gk t et leurs poids sont les vecteurs Jk ; et le neurone de sortie est noté ;8 avec des poids W. Si un exemple se présente à l'unité d'entrée du réseau, les états Gk des différents neurones de la couche cachée et la sortie du réseau #u sont donnés par les formules = = signe fk(Jk,4 avec 1 une somme pondérée une fonction quadratique une fonction logarithmique NH > et r'l = signe E Wk6k k=O avec pour tous les exemples et pour toutes les données à classer. Autrement dit, pour des exemples t > , le réseau utilisera une couche cachée constituée du neurone #0u et des neurones #iu à #NHu, dont les poids sont Jk, k étant le numéro du neurone caché et qui sont connectés au neurone de sortie #u dont les poids sont W. Les états #u = (#0u, #iu, ..., #NHu) constituent, en fait, la représentation interne des exemples tp utilisée par les neurones de la couche cachée du réseau. Le procédé selon l'invention consiste donc à définir une représentation interne pour chaque exemple et à apprendre la séparation des représentations internes par le neurone de sortie, en ajoutant, si besoin est, des neurones dans l'unique couche cachée. Pour produire la couche cachée, le procédé de l'invention commence par apprendre les sorties que l'on souhaite obtenir à un perceptron généralisé. Si le problème n'est pas séparable, il y aura forcément des erreurs d'apprentissage. Dans ce cas, les poids du perceptron seront gelés et ce perceptron deviendra le premier neurone de la couche cachée. Dans un mode de réalisation particulier, un deuxième neurone caché sera alors ajouté, qui devra apprendre une nouvelle classification des exemples destinée à corriger les erreurs d'apprentissage du neurone précédent, par exemple, une sortie -1 pour exemples bien appris par le neurone précédent, et +1 pour les autres. Tant qu'il reste des erreurs avec les exemples de la base d'apprentissage, le procédé peut être répété. Une fois que les exemples de la base d'apprentissage ont été appris, le neurone de sortie est connecté au neurone de la couche cachée. Le neurone de sortie doit apprendre à séparer les représentations internes des exemples de la base d'apprentissage. Si les représentations internes sont linéairement séparables, le procédé est terminé. Autrement, il faut augmenter la dimension de ces représentations internes, afin de les rendre séparables. Pour cela, on rajoute un neurone caché et on lui apprend les classements -1 pour les exemples correctement classés par le perceptron de sortie et +1 pour les autres, par exemple. Eventuellement, si cela est nécessaire, on continue à rajouter des neurones dans la couche cachée jusqu'à ce que le neurone de sortie soit capable de séparer tous les exemples de la base d'apprentissage. Un réseau de neurones à une seule couche cachée est ainsi construit. Les figures 2A et 2B représentent, par un schéma fonctionnel, le procédé décrit brièvement précédemment. La figure 2B représente, en particulier, le procédé de l'invention avec un premier mode d'apprentissage du neurone de sortie. Le procédé selon l'invention comporte deux grandes étapes, à savoir une étape A) d'initialisation et une étape B) d'apprentissage des neurones de la couche cachée et de détermination du neurone de sortie. L'étape A) d'initialisation consiste, tout d'abord, dans le choix d'un type de neurone (linéaire, quadratique, etc.), puis en l'apprentissage de la base d'apprentissage Bo, c'est-à-dire des entrées contenues dans cette base d'apprentissage BO avec leurs cibles associées afin de déterminer les paramètres descriptifs de la surface séparatrice relatifs à ce neurone. La base d'exemples Bo est constituée de données d'entrée (par exemple pour un diagnostic médical, ces données peuvent être la température, la tension artérielle, la profondeur de la tumeur, la taille de la cellule, etc.) et de cibles qui sont, pour chaque entrée la classe correspondante (par exemple, tumeur ou non tumeur, bénigne ou maligne, etc.). Les représentations internes que les i neurones cachés attribuent aux entrées de la base d'exemples Bo, avec les cibles correspondantes, constituent la base des représentations internes BRI(i), c' est-à-dire la base d'apprentissage du neurone de sortie connecté à ces i neurones cachés. L'état de l'ensemble des neurones cachés correspondant à chaque entrée de la base Bo constitue la représentation interne de ladite donnée d'entrée. On verra, par la suite, que le procédé de l'invention utilise des bases d'apprentissage successives Bi ; ces bases d'apprentissage B1 contiennent les mêmes exemples que la base Bo, mais avec des cibles différentes. La base B1 est identique à la base Bo, c'est-à-dire que le premier neurone doit apprendre à classer la base avec les cibles originales. Cette opération d'apprentissage de la base d'exemples B1, référencée 10, est effectuée pour le premier neurone du réseau. Lorsque cet apprentissage est effectué, une opération 11 de détermination du nombre d'erreurs d'apprentissage Nb est effectuée. Une opération 12 consiste ensuite à geler les paramètres du neurone de la surface séparatrice relatifs à ce neurone, c'est-à-dire descriptifs du type de surface et des poids J1. Ensuite, une vérification du nombre Nb est faite en 13 si le nombre d'erreurs d'apprentissage Nb est égal à 0, alors l'apprentissage est considéré comme terminé (bloc 14) si ce nombre d'erreurs Nb est non nul, alors le neurone est introduit comme premier neurone caché (i=1) dans une couche de neurones cachée (opération 15). Une étape d'apprentissage B) est ensuite effectuée ; elle consiste en l'apprentissage des exemples par des neurones cachés situés dans la couche cachée et par le neurone de sortie. Dans un premier mode de réalisation de l'invention, l'étape B) comporte une sous-étape B1 qui inclue elle-même une opération 16 de détermination de nouvelles cibles, dans laquelle i prend la valeur i+1, ce qui signifie qu'on détermine les cibles à apprendre au neurone suivant. Plus précisément, cette opération 16 consiste à déterminer de nouvelles cibles qui définissent la base d'exemples Bi, dans laquelle les exemples sont fonction des erreurs d'apprentissage du neurone précédent i-1. Les nouvelles cibles (ou classes cachées) sont calculées en choisissant une convention dans laquelle : si l'exemple est bien appris par le neurone précédent, on lui attribue une classe cachée égale par exemple à +1. Si l'exemple est mal appris par le neurone précédent, on lui attribue une classe cachée opposée égale à -1, dans ce cas. Toutefois, cette convention n' est qu'un exemple ; on peut aussi choisir la convention opposée. Selon l'invention, l'étape B1) comporte ensuite une opération 17, au cours de laquelle un nouveau neurone i, dont on a choisi le type, est connecté sur les unités d'entrées. Ce nouveau neurone i doit ensuite faire l'apprentissage de la base d'apprentissage Bi contenant les mêmes entrées que la base d'apprentissage Bo, mais comportant des cibles correspondant à une autre classification, c'est-à-dire à la base d'exemples Bi définie en 16. Cet apprentissage constitue l'opération 18 du procédé. Ensuite, lorsque cet apprentissage est effectué, les paramètres de ce nouveau neurone sont figés dans une opération 19. Selon le mode de réalisation préféré de l'invention, le procédé passe alors directement à la sous-étape B2). Selon un mode de réalisation de l'invention, le procédé comporte une sous-étape B3), réalisée entre les étapes B1) et B2) c'est ce dernier mode de réalisation qui est représenté sur la figure 3. Cette sous-étape B3) comporte une opération 20 de détermination du nombre d'erreurs d'apprentissage Nb est effectuée. Une vérification de cette valeur Nb est ensuite faite en 21 si ce nombre Nb est non nul, le procédé est réitéré après l'opération 15, c'est-à-dire au début de l'étape d'apprentissage du neurone caché si ce nombre Nb est nul, on continue en B2), une opération 23 est effectuée, qui consiste à connecter un neurone à tous les neurones de la couche cachée dont les paramètres sont figés. Il consiste ensuite en une opération 24 d'apprentissage, par ce neurone, de la base des représentations internes BRI constituée de façon à déterminer les paramètres de ce neurone. Le procédé consiste ensuite à déterminer le nombre d'erreurs d'apprentissage Nb (opération 25). Une vérification de ce nombre Nb est faite en 26 si Nb est nul, cachée, dont les paramètres sont figés. Ce pseudo-neurone a alors une sortie qui correspond sensiblement au produit des états des neurones cachés. Le procédé se poursuit par une opération 32 consistant à vérifier si le classement de la base des représentations internes BRI, par ce pseudo-neurone, est correct. Pour cela, on vérifie si le nombre Nb est nul (bloc 33). Si c'est le cas, l'apprentissage est terminé (bloc 34). Au contraire, si ce n'est pas le cas, le pseudo-neurone est annihilé (bloc 35) et le procédé est recommencé à partir du début de l'opération 16 de rajout d'un nouveau neurone caché en considérant, comme erreur d'apprentissage du neurone précédent i-1, les erreurs du pseudo-neurone qui vient d'être annihilé. L'apprentissage de chaque perceptron au sein du réseau de neurones, c'est-à-dire toutes les opérations d'apprentissage, de la base d'exemples Bo ou Bi de la base d'exemples BRI (opérations 10, 18 et 23), sont effectuées, par exemple, au moyen d'un procédé d'apprentissage d'un neurone destiné à classer des données selon deux classes séparées par une surface séparatrice d'ordre 1 ou 2 ; un tel procédé est décrit dans la demande de brevet déposée sous le numéro 96 11939. Il est à noter que, pour des raisons de simplicité, on a considéré, tout au long de la description, que les états des neurones binaires sont codés +1 ou -1. Toutefois, le procédé selon l'invention est applicable pour des états de neurones différents, par exemple, codés 0 ou 1, ou codés selon n'importe quel autre type de codage binaire. De plus, il est à noter que la sortie du pseudo-neurone dans le mode de réalisation de la figure 3B, est le produit des états des neurones cachés toutefois, cette sortie peut ne pas être le produit des états de neurones cachés ; il peut être, par exemple, remplacé par des fonctions logiques de parité ou par un OU-exclusif. Comme le comprendra l'homme de métier, l'invention peut s'appliquer à des réseaux plus complexes, comportant plusieurs couches de neurones cachés. L'homme du métier comprendra aussi qu'un réseau de neurones tel que celui qui vient d'être décrit peut permettre de classer des objets en un nombre de classes supérieur à deux ; pour cela, le réseau est associé à plusieurs autres réseaux de même type, chacun permettant de séparer une classe de toutes les autres. Pour choisir la classe attribuée à l'objet à classer, on peut, par exemple, utiliser comme critère de choix, celle qui a la plus grande somme pondérée sur le neurone de sortie du réseau correspondant. REVENDICATIONS 1. Procédé pour apprendre, à partir d'une base d'exemples constituée de données d'entrée connues et de cibles correspondant à la classe de chacune de ces données d'entrée, à classer des objets en deux classes distinctes séparées par au moins une surface séparatrice de type quadratique ou de type quadratique et linéaire, consistant à générer un réseau de neurones de type binaire comportant chacun des paramètres descriptifs de la surface séparatrice qu'ils déterminent, ce réseau de neurones comportant des entrées de réseau ainsi qu'une couche de neurones cachés connectés à ces entrées et à un neurone de sortie du réseau, caractérisé en ce qu'il comporte A) une étape d'initialisation consistant en Aa) un choix (9) du type du premier neurone qu'on connecte aux entrées Ab) un apprentissage (10) de la base d'exemples (Bo) par ce premier neurone, afin de déterminer les paramètres descriptifs d'une première surface séparatrice, relatifs à ce neurone ; Ac) une détermination (9) du nombre d'erreurs d'apprentissage Ad) si ce nombre d'erreurs est nul, l'apprentissage est terminé (14) et le premier neurone choisi en Aa) devient le neurone de sortie du réseau Ae) si ce nombre est non nul, les paramètres du premier neurone sont figés et ledit neurone devient le premier neurone (i = 1) d'une couche de neurones cachés (15) construite par B) une étape de construction de la couche cachée et de détermination du neurone de sortie du réseau comprenant B1) une adaptation de la couche de neurones cachés en fonction du classement à effectuer consistant à Bla) déterminer (16) de nouvelles cibles pour la base d'exemples (Bo) en fonction des erreurs d'apprentissage du dernier neurone (i) appris, les entrées de la base d'exemples (Bo) complétées des nouvelles cibles constituant une nouvelle base d'exemples (Bi) Blb) incrémenter d'une unité le compteur de neurones cachés i, et connecter (17) un nouveau neurone caché, i, d'un type choisi, sur les entrées du réseau et apprendre (18) à classer la nouvelle base d'exemples (Bi) Blc) figer (19) les paramètres de ce nouveau neurone (i), les états des neurones cachés correspondant à chaque donnée d'entrée de la base d'exemples (Bo) constituant une représentation interne de cette donnée d'entrée B2) une validation de la couche de neurones cachés et une détermination du neurone de sortie du réseau. 2. Procédé selon la revendication 1, caractérisé en ce que les représentations internes des entrées de la base d'exemples constituent une base de représentations internes BRI(i) et en ce que l'étape B2), consiste à B2a) introduire un neurone de sortie de type linéaire, connecter (23) ce neurone de sortie aux neurones cachés, apprendre (24) à ce neurone de sortie la classification de la base de représentations internes BRI(i) et déterminer (25) le nombre d'erreurs d'apprentissage du neurone de sortie B2b) si ce nombre est nul, considérer que le réseau est construit (28) et comporte une couche de (i) neurones cachés B2c) si ce nombre est non nul, considérer les erreurs d'apprentissage du neurone de sortie comme des erreurs du neurone précédent dans l'étape Bla), annihiler (27) ce neurone de sortie et recommencer le traitement à partir de l'étape Bla) jusqu a ce que le nombre d'erreurs du neurone de sortie soit nul. 3. Procédé selon l'une quelconque des revendications 1 ou 2, dans lequel les entrées du réseau sont binaires, caractérisé en ce qu'il comporte une étape intermédiaire B3), effectuée entre les étapes B1) et B2) et consistant à B3a) déterminer (20) le nombre d'erreurs d'apprentissage du neurone i B3b) si ce nombre est non nul, le traitement est réitéré à partir de l'étape B1) en considérant les erreurs de ce neurone comme des erreurs du neurone précédent pour créer la base d'apprentissage (Bi) B3c) si ce nombre est nul, considérer la couche de neurones cachés, ainsi construite comme potentiellement acceptable, et effectuer l'étape B2). 4. Procédé selon la revendication 3, caractérisé en ce que les représentations internes des d'entrées de la base d'exemples constituent une base de représentations internes (BR1(i)) et l'étape B2) consiste à B2d) introduire (30) un neurone de sortie appelé pseudo-neurone, connecter (31) ce pseudo-neurone à tous les neurones cachés dont les paramètres sont figés, calculer (32) la sortie de ce pseudo-neurone comme étant sensiblement le produit des états des neurones cachés B2e) déterminer (33) si le pseudo-neurone effectue un classement correct de tous les exemples de la base de représentations internes (BRI(i)) B2f) si c' est le cas, l'apprentissage est considéré comme terminé (34) et le réseau construit comporte une couche de (i) neurones cachés B2g) si ce n'est pas le cas, considérer les erreurs de classification du pseudo-neurone de sortie comme des erreurs du neurone précédent dans l'étape Bla), annihiler (35) ce pseudo-neurone de sortie et recommencer le traitement à partir de l'étape Bla) jusqu'à ce que le nombre d'erreurs du pseudo-neurone de sortie soit nul. 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le premier neurone choisi à l'étape Aa) est un neurone de type linéaire, les autres neurones étant non linéaires. 6. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que tous les neurones cachés sont de type quadratique.