Brevet FR2758899A1 — publié le 19980731

La présente invention concerne des réseaux neuraux et, plus spécifiquement, une sélection de termes dans des réseaux neuraux, holographiques et connexes. Pour tenter de remédier aux insuffisances des réseaux neuraux classiques, des réseaux neuraux holographiques ont été développés. Les réseaux neuraux holographiques incluent deux vecteurs et une matrice, qui sont tous constitués de nombres complexes. Les deux vecteurs incluent le vecteur S ou vecteur stimulus, de longueur n, et le vecteur R ou vecteur réponse, de longueur m. La matrice est la matrice X, de dimension n x m, qui décrit une application de S à R. Par rapport aux réseaux neuraux classiques, ces réseaux offrent plusieurs avantages en particulier un apprentissage et un discernement plus simples. De plus, alors que les réseaux neuraux classiques sont habituellement structurés pour s'approcher de quantités numériques, les réseaux neuraux holographiques sont bien adaptés à représenter des applications à valeurs continues. Malgré ces avantages comparatifs, les réseaux neuraux holographique du premier ordre sont limités quant à la complexité de l'application qui peut être encodée. Les raisons en sont (1) que la matrice X est d'une capacité finie pour contenir des encodages et (2) que l'encodage est incapable de représenter des relations complexes entre composants discrets du vecteur stimulus. On peut cependant remédier à ces inconvénients en prévoyant des termes d'ordres supérieurs dans le vecteur stimulus, un terme d'ordre supérieur étant défini comme le produit de deux termes initiaux d'entrée de premier ordre ou davantage. La génération de termes d'ordres supérieurs permet d'augmenter fortement la dimension de la matrice du réseau et donc sa capacité d'encodage. Il est par exemple possible d'engendrer, à partir de 10 termes distincts de premier ordre, 55 termes distincts de deuxième ordre et 220 termes distincts d'ordre de troisième ordre. Des termes d'ordres supérieurs représentent aussi des interactions entre des composants discrets de premier ordre et le vecteur stimulus, ce qui permet au réseau neural holographique de représenter de telles interactions d'une manière semblable à celle des réseaux neuraux classiques. Finalement, des termes d'ordres supérieurs tendent a être répartis, dans tout l'espace de phase, plus uniformément que des termes de premier ordre et ceci augmente aussi la capacité d'encodage. Compte tenu de la disponibilité de termes d'ordres supérieurs, la conception d'un réseau neural holographique est orientée vers la sélection des termes d'ordre supérieur qu'il y a lieu d'inclure dans le vecteur stimulus. Ce choix peut être extrêmement difficile et constitue un défi principal de conception dans la création de réseaux neuraux holographiques utilisables. C'est donc un but de la présente invention que de fournir un procédé de sélection de termes optimaux à inclure dans le vecteur stimulus d'un réseau neural holographique. C'est un autre but de la présente invention que de fournir un tel procédé qui incorpore un algorithme du type évolutif. Ces buts, ainsi que d'autres qui leur sont connexes, sont atteints par le procédé de sélection de termes de la présente invention, à utiliser dans un réseau neural holographique, caractérisé en ce qu'il comprend les étapes suivantes, exécutables par machine: créer une série de vecteurs stimuli, chaque vecteur stimulus comportant au moins un terme d'ordre supérieur; évaluer ladite série de vecteurs stimuli afin de déterminer une adaptation relative de chacun desdits vecteurs stimuli; sélectionner un sous-ensemble de la série des vecteurs stimuli sur la base de leur adaptation relative; modifier le contenu d'au moins l'un desdits vecteurs stimuli dudit sous-ensemble; et sélectionner un vecteur stimulus final dans ledit sous-ensemble modifié. Ladite étape de création peut inclure l'étape consistant à: créer une série de chromosomes qui représentent chacun l'un desdits vecteurs stimuli, chaque chromosome contenant une série de gènes indicatifs chacun d'un terme d'un vecteur stimulus correspondant et, dans ce cas, ladite étape de modification peut en particulier comprendre l'étape consistant à remplacer un gène d'au moins l'un desdits chromosomes. Ladite étape de sélection d'un sous-ensemble peut comprendre les étapes consistant à: éliminer de ladite série des vecteurs stimuli un vecteur stimulus qui est le moins adapté; et effectuer une duplication du vecteur le mieux adapté de la série des vecteurs stimuli. Ladite étape de modification peut comprendre l'étape consistant à: échanger entre elles des parties de deux vecteurs stimuli dudit sous-ensemble. Ladite étape de modification peut comprendre l'étape consistant à: remplacer par un nouveau terme un pourcentage prédéfini de termes de l'un desdits vecteurs stimuli dudit sous-ensemble. Le procédé peut comprendre en outre les étapes consistant à: répéter en séquence plusieurs fois lesdites étapes d'évaluation, de sélection de sous-ensemble et de modification, chacune desdites étapes ultérieures d'évaluation intervenant sur le sous-ensemble modifié engendré lors de la boucle précédente de mise en oeuvre de ces trois étapes, et, dans ce cas, ladite étape de sélection du vecteur stimulus final peut en particulier comprendre les étapes consistant à: arrêter, lors de l'apparition d'un événement prédéfini, la répétition séquentielle des étapes d'évaluation, de sélection de sous-ensemble et de modification; et sélectionner dans le dernier sous- ensemble modifié de vecteurs stimuli un vecteur stimulus dont l'adaptation relative est optimale. Ladite étape de sélection d'un vecteur stimulus final peut comprendre les étapes consistant à: réaliser, au moyen de données connues de stimulus et de réponses, un apprentissage d'un réseau neural holographique pour au moins deux vecteurs de ladite série des vecteurs stimuli dudit sous-ensemble modifié; engendrer pour chacun desdits deux vecteurs stimuli au moins une valeur qui indique la qualité de leur généralisation, pour des données connues de stimulus et de réponse; sélectionner comme vecteur stimulus final celui des deux vecteurs stimuli dont la qualité de généralisation est la meilleure et, dans ce cas, le procédé peut en particulier comprendre en outre l'étape consistant à engendrer un réseau holographique final: en réalisant, au moyen d'un premier ensemble de données connues de stimulus ou de réponses, un apprentissage d'un réseau neural holographique qui incorpore ledit vecteur de stimulus dont la généralisation est meilleure; en engendrant une valeur d'optimisation pour le réseau soumis à l'apprentissage à l'aide dudit premier ensemble; en réalisant, au moyen d'un deuxième ensemble de données connues de stimulus ou de réponses, un apprentissage d'un réseau neural holographique qui incorpore ledit vecteur de stimulus dont la généralisation est meilleure; en engendrant une valeur d'optimisation pour le réseau soumis à l'apprentissage à l'aide dudit deuxième ensemble; et. en sélectionnant comme réseau neural holographique final le réseau soumis à apprentissage au moyen dudit premier ensemble, lorsque la valeur d'optimisation dudit deuxième ensemble indique une généralisation moins bonne que la valeur d'optimisation dudit premier ensemble. Ces buts, avantages, particularités et configurations de la présente invention ainsi que d'autres ressortiront davantage à l'homme de l'art à la lecture de la description détaillée qui suit de l'invention, prise en conjonction avec le dessin, dans lequel la Fig. 1 est un schéma d'un réseau neural holographique qui incorpore une sélection de termes selon la présente invention; la Fig. 2 est un schéma fonctionnel de la relation entre un chromosome et un vecteur stimulus selon la présente invention; et la Fig. 3 est un schéma fonctionnel d'un dispositif électrique de mise en oeuvre du procédé de la présente invention. En se référant à la Fig. 1, il y est représenté un schéma fonctionnel d'un réseau neural holographique. Les termes d'entrée de premier ordre sont agencés en un réseau unidimensionnel 10 (appelé dans ce qui suit réseau 10 de premier ordre) et chaque terme est spécifié par un index séquentiel, 1 à j o j est le nombre de termes du premier ordre. Les termes d'entrée de premier ordre sont des points de données traités au préalable à partir desquels le réseau holographique tente de reconnaître une configuration. La configuration peut concerner l'un quelconque de nombreux domaines, par exemple des prévisions météorologiques, des prévisions de stock et de taux d'intérêt, une reconnaissance du visage, une reconnaissance vocale, une analyse aux rayons X et des interfaces ordinateur/utilisateur, etc. Un procédé de la présente invention, représenté par la référence numérique 20, intervient sur le réseau 10 pour créer des termes d'ordres supérieurs pour un vecteur stimulus 60 d'un réseau neural holographique 70. Le vecteur stimulus 60 est multiplié de manière connue par la matrice X 80 pour produire un vecteur de réponse 90. Le vecteur stimulus, la matrice X et le vecteur de réponse constituent le réseau neural holographique. La présente invention utilise un algorithme de type évolutif pour sélectionner des termes d'ordre supérieur à partir du réseau 10 de premier ordre. Des solutions potentielles, c'est-à-dire des combinaisons potentielles de termes d'ordres supérieurs, sont modélisées de préférence sous forme de chromosomes qui sont constitués de gènes, c'est-à-dire de termes sélectionnés d'ordres supérieurs, qui décrivent des éléments de la solution. Une correspondance est établie entre les chromosomes, qui peuvent être appelés collectivement le génotype, et la solution représentée par les chromosomes, qui peut être appelée le phénotype. L'invention fournit une fonction d'adaptation, destinée à évaluer le phénotype, et un procédé de sélection de parents, basé sur l'adaptation. De plus, des techniques de mise en concordance, de mutation et de propagation de chromosomes sont elles-aussi définies. On va maintenant donner une description de haut niveau d'un mode de réalisation préféré du processus évolutif d'optimisation de la présente invention: celui-ci comprend les étapes suivantes: Créer une population initiale de N chromosomes aléatoires représentant N solutions possibles. Initialiser à une valeur invalide le chromosome dit bestsolution, c'est-à-dire de solution optimale. effectuer en boucle les étapes suivantes Boucle { Evaluer chaque chromosome de la population quant à son aptitude; copier un chromosome comme chromosome de solution optimale si ce chromosome est plus apte que le chromosome de solution optimale actuel, ou si le chromosome de solution optimale actuel est invalide. Sélectionner un groupe, ou pool, de N chromosomes pour propagation en fonction de l'aptitude; représenter plus d'une fois dans le groupe les chromosomes les plus aptes, c'est-à-dire effectuer une duplication des chromosomes les plus aptes, et ne pas représenter les chromosomes les moins aptes, c'est-à- dire enlever les chromosomes les moins aptes. Sélectionner de façon aléatoire pour croisement ou, en d'autres termes, pour accouplement P paires de chromosomes du groupe. Pour chaque paire, engendrer deux nouveaux chromosomes en appliquant un opérateur de croisement. Pour chacun des N - 2P chromosomes restants du groupe, modifier un pourcentage prédéfini des chromosomes et des gènes qu'ils contiennent en appliquant un opérateur de mutation. Définir la nouvelle population comme constituée par les N chromosomes engendrés par les étapes précédentes de croisement et de mutation. ) Les trois paramètres spécifiés par l'utilisateur dans la description ci-dessus sont la dimension N de population, le nombre P de paires de chromosomes à sélectionner pour croisement, et le pourcentage de chromosomes et gènes qu'ils contiennent à soumettre à mutation. La valeur de N varie largement en fonction de l'application et elle est de préférence suffisamment grande pour favoriser l'entretien d'une certaine diversité. Un concepteur ou un utilisateur peut sélectionner N par des approximations successives basées sur des mesures de performance. La valeur de P et le pourcentage de modification varient d'une façon semblable à N. Le processus précédent est de préférence configuré de manière à rechercher continuellement la meilleure solution actuelle et à terminer à une certaine condition spécifiée par l'utilisateur, par exemple lorsqu'est dépassé un seuil de solution de qualité ou de calcul de temps. Ce sont des aspects de l'optimisation du vecteur stimulus que l'on va maintenant décrire de façon plus détaillée: une représentation génétique, puis une mesure de l'aptitude d'un chromosome, puis les opérateurs de croisement et de mutation, puis la génération du réseau final, et l'on exposera enfin une réalisation schématique de machine correspondant au procédé. C'est l'aspect de représentation génétique que l'on traitera d'abord en se référant à la Fig. 2 qui représente un schéma de la relation entre un chromosome et un vecteur stimulus selon la présente invention. Le réseau 10 de premier ordre est traité par une fonction 30, décrite ci-dessous, qui engendre des index de termes d'ordres plus élevés. Cette fonction combine d'une manière prédéfinie des index de termes de premier ordre du réseau 10 afin de créer des index de terme d'un ordre k, spécifié par l'utilisateur, représenté par la case 25. Par exemple, pour former un index de terme de deuxième ordre, la fonction 30 peut combiner les index des termes 2 et 17 de premier ordre. Pour un terme de troisième ordre, les index des termes 2, 17 et 32 de premier ordre peuvent être combinés par la fonction 30. Ainsi, la fonction 30 forme effectivement un groupe virtuel d'index de termes d'ordre k, dans lequel on peut prélever lorsqu'un nouvel index de terme est nécessaire, par exemple pour la formation de chromosomes, pour l'étape de l'opérateur de croisement qui effectue un remplacement par duplication, ou pendant une mutation, comme décrit ci-dessus. Un algorithme, décrit ci-dessous, de formation de chromosomes, forme un chromosome 40 qui est représentatif de l'un quelconque des N chromosomes décrits ici. Le chromosome 40 inclut une série de L gènes 45.0 à 45.L-1 et chaque gène contient un entier qui indexe de façon spéciale un terme d'ordre supérieur créé par la fonction 30. Le terme d'ordre supérieur indiqué par un gène du chromosome 40 est de préférence pourvu d'un emplacement correspondant dans le vecteur stimulus 70. Les termes du vecteur stimulus sont désignés par 70.0 à 70.L-1. En supposant qu'il existe j termes de stimulus de premier ordre, le nombre, appelé kterms dans ce qui suit, de termes possibles d'un ordre k-ième particulier est fourni par l'équation suivante: kterms = (j + k 1)! / k! (j - 1)! o k = ordre du terme. En énumérant les produits spéciaux possibles, un gène peut représenter un terme de k-ième ordre sous la forme d'un entier dans la plage de 0 à kterms. Le fragment de code suivant C++ représente un procédé itératif de la fonction 30 pour engendrer, à partir du réseau complexe 10 de longueur j qui contient des termes de premier ordre, le terme d'ordre k- ième pour le gène numéro q (o q c [0, kterms - 1]). Ce procédé itératif est appelé pour chacun des gènes 45 du chromosome 40. Le fragment de code, donné en C++, est directement transcrit en termes anglo-saxons dans c.e qui suit, en donnant d'une part les traductions des paragraphes qui sont encadrés par les sigles // et qui sont en anglais, et d'autre part les significations des termes suivants: complex signifie complexe, generate, engendrer; high, haut; order, ordre; term, terme; int, entier; result, résultat; offset, déport; count, compte; for, pour; if, si; break, interrompre; else, sinon; return= renvoyer. complex generate-highorder_term( complex *first order //Réseau de termes de premier ordre int q, // Valeur de gène dans plage [0, kterms - 1] int j, //Nombre de termes de premier ordre int k) // terme de k- ième ordre à engendrer // Ce procédé réalise une application à partir d'un sous-ensemble d'entiers vers un terme d'ordre supérieur créé à partir des termes donnés de premier ordre. Chaque numéro de gène, inclus dans la plage [0, kterms - 1] s'applique à un produit spécial de k des termes présents dans le vecteur de premier ordre de longueur j. // complex result = 1.0; //Initialiser à 1.0 réel int kelements = j; int offset = 0; int count = 1; int order = k; for (int i = 0; i ( result * = first order[offset] if (--order la longueur du vecteur stimulus qui détermine elle- même la capacité du réseau. Des critères généraux de détermination de la longueur de chromosome incluent le fait que le vecteur stimulus résultant ne doit être, ni court au point que le réseau se sature, ni long au point que le réseau résultant ne se généralise pas bien. Des techniques de sélection de longueur du vecteur stimulus sont connues dans l'art. Il faut aussi noter que la longueur du chromosome 40 peut être uniforme ou non uniforme, de longueurs fixes ou variées. Il faut noter aussi que les chromosomes peuvent contenir des termes, soit d'ordres variés, y compris des termes de premier ordre, soit d'ordre identique. On va maintenant donner une description de haut niveau de la génération d'un chromosome initial. En utilisant la fonction 30, engendrer de façon aléatoire L termes et assigner chacun d'eux à l'un des L emplacements de gènes du chromosome 40. Cette étape produit un chromosome qui peut encoder des index pour une combinaison quelconque de termes, c'est-à-dire une solution possible quelconque. Afin de faciliter une meilleure compréhension de la composition des chromosomes, on se servira de l'exemple suivant. Etant donné j = 200 entrées de premier ordre et un chromosome indexant totalement des termes du deuxième ordre (k = 2), le nombre, appelé kterms, de termes d'un ordre supérieur particulier auxquels la fonction 30 peut créer des index est (j + k - 1)! / k! (j - 1)! = (200 + 2 - 1)! / 2! (200 - 1)! = 201! / 2! 199! = 200 x 201/2 = 20100. Si la longueur souhaitée du chromosome est L = 50, l'étape précédente sélectionne de façon aléatoire 50 des 20100 kterms index pour former une configuration initiale d'un chromosome. Ce processus de formation est répété N fois pour former les N chromosomes initiaux. On va maintenant détailler la mesure de l'adaptation d'un chromosome. Dès lors qu'un chromosome 40 a été construit, il faut déterminer si les composants du vecteur stimulus qui y sont encodés sont bien adaptés à construire un réseau neural holographique qui encode précisément l'application de réponse au stimulus. En outre, il faut déterminer quel est celui des N chromosomes du groupe dont la performance est optimale. Cette détermination est de préférence effectuée en utilisant deux ensembles de données de stimulus et de réponse dans lesquels un vecteur de réponse attendu est conRu pour ses données correspondantes d'entrée de stimulus. Chaque ensemble formé des données d'entrée de stimulus et du vecteur de réponse correspondant est appelé dans la description qui suit une paire vectorielle stimulus-réponse. Les deux ensembles de données sont l'ensemble d'apprentissage et l'ensemble d'optimisation. Un utilisateur encode le réseau au moyen de la série des paires vectorielles stimulus- réponse de l'ensemble d'apprentissage et examine ensuite au moyen de l'ensemble d'optimisation la qualité de généralisation du réseau résultant. La capacité de généralisation observée est la mesure de l'aptitude. Un encodage est réalisé de la manière suivante. Des données d'entrée de stimulus sont traitées pour former les termes spécifiés par le chromosome en cours de test. Le vecteur stimulus correspondant est multiplié par la matrice X pour produire un vecteur réponse et la valeur de ce vecteur réponse est soustraite de sa valeur attendue pour produire une valeur de différence. La matrice X, dont la valeur initiale est zéro, est ensuite ajustée sur la base de la valeur de différence de façon que des multiplications ultérieures de vecteur stimulus, sujet du test, par la matrice X produisent approximativement le vecteur réponse attendu ou une valeur qui lui est associée, de manière connue. L'encodage est connu dans l'art et le processus d'encodage est effectué pour chaque paire vectorielle stimulus-réponse de l'ensemble d'apprentissage. L'ensemble d'optimisation est semblable à l'ensemble d'apprentissage en ce qu'il inclut une série de paires vectorielles connues stimulus-réponse. L'ensemble d'optimisation n'est cependant pas utilisé pour l'apprentissage du réseau mais pour tester la qualité de généralisation de la matrice. Le vecteur réponse engendré, que l'on appelle la "réponse de rappel" est comparé à sa valeur attendue et l'amplitude de cette différence est sauvegardé. La différence entre des paires vectorielles stimulus- réponse ultérieures, contenues dans l'ensemble d'optimisation, est additionnée à la valeur précédemment mémorisée pour obtenir une différence finale ou signal "SUM_ERROR", c'est-à-dire signal de la somme des erreurs. Ce signal peut être comparé à des signaux similaires provenant d'autres agencements de chromosomes afin de déterminer une aptitude relative. La somme des erreurs caractérise la capacité du réseau à généraliser à l'ensemble d'optimisation. Le procédé de calcul des mesures d'erreurs qui constituent la somme des erreurs est à la discrétion de l'utilisateur mais est généralement incluse à l'intérieur de critères connus. Par exemple, la mesure peut être simplement l'amplitude de la différence entre deux vecteurs complexes, la réponse de rappel et la réponse attendue, bien que cette mesure implique un risque qu'une erreur d'un terme du vecteur de réponse complexe puisse ne pas être, du tout, aussi significative qu'une grande erreur d'un autre terme. L'utilisateur peut obtenir une mesure d'erreur plus significative par un traitement ultérieur des deux sorties et un calcul d'un terme d'erreur basé sur la précision de la réponse après le traitement ultérieur. La somme des erreurs indique l'aptitude d'un réseau qui incorpore un vecteur stimulus soumis au test. Quand une somme des erreurs a été engendrée pour chacun des N chromosomes, les sommes d'erreurs collectives sont classées. Un ou plusieurs des chromosomes pour lesquels les valeurs des sommes des erreurs sont les moins favorables sont enlevés, tandis qu'une duplication est effectuée pour un ou plusieurs chromosomes pour lesquels les valeurs de sommes d'erreurs sont les plus favorables. Plusieurs duplications peuvent être effectuées pour des chromosomes pour lesquels les valeurs des sommes d'erreurs sont hautement favorables. Des enlèvements et des duplications de chromosomes sont effectués afin d'atteindre un nouveau groupe enrichi de N chromosomes. Dès lors que le groupe enrichi de N chromosomes est établi, il est souhaitable d'introduire de nouvelles combinaisons ou une nouvelle matière à ces chromosomes pour voir si la performance peut être améliorée. Ainsi, la composition des N chromosomes est modifiée avant une évaluation ultérieure. Selon un mode de réalisation préféré, cette modification est réalisée par un opérateur de croisement et un opérateur de mutation décrits ci-dessous. Le chromosome qui est le mieux adapté avant la modification est de préférence sauvegardé et est comparé aux chromosomes après modification, afin de s'assurer que la performance n'a pas été diminuée par les modifications. On va maintenant décrire un opérateur de croisement et un opérateur de mutation fournis par la présente invention. Bien que ces opérateurs s'appliquent, dans le mode de réalisation actuellement décrit, à des chromosomes de longueur fixe, contenant des termes du même ordre, l'homme de l'art doit comprendre, compte tenu des enseignements contenus ici, que les opérateurs pourraient être configurés pour s'appliquer à des chromosomes de longueurs variables ou à des termes d'ordres mélangés. L'opérateur de croisement fonctionne de préférence de la manière suivante. On sélectionne pour propagation P paires de N chromosomes, appelés parents. Pour chaque paire de parents: (1) un point de croisement est sélectionné de façon aléatoire, (2) des gènes après le point de croisement sont échangés, et (3) des gènes présentant une duplication sont remplacés par des gènes engendrés de façon aléatoire par la fonction 30. En ce qui concerne l'opérateur de mutation, un utilisateur spécifie, pour les chromosomes restants, un pourcentage à modifier. Des critères généraux de sélection de ce pourcentage incluent le fait que la mutation résultante doit être suffisante pour provoquer une modification mesurable, tout en n'étant pas suffisamment grande pour provoquer une instabilité. Une évidence empirique indique que ce but est atteint en sélectionnant pour mutation cinq pour cent du groupe de chromosomes de dimension N et en soumettant à mutation cinq pour cent des gènes contenus dans le groupe sélectionné de chromosomes, bien que la norme de cinq pour cent puisse varier selon l'application. Il faut également comprendre que le produit de l'opération de croisement peut être soumis à une mutation, pour augmenter et diversifier les solutions. Une description d'ordre élevé du processus de mutation inclut les trois étapes suivantes: sélectionner pour mutation un pourcentage prédéfini des N-2P chromosomes; enlever de façon aléatoire, dans les chromosomes sélectionnés, un pourcentage prédéfini de gènes; remplacer chaque gène enlevé par un gène engendré de façon aléatoire, à partir de la fonction 30. Alors que la présente invention inclut de préférence des opérateurs tant de croisement que de mutation, l'invention peut être mise en oeuvre en n'utilisant que l'un de ces opérateurs avec ou sans générateur(s) additionnel(s) de diversité. Bien qu'un opérateur de croisement et un opérateur de mutation soient décrits ici, il faut comprendre que d'autres procédés de génération et de propagation de diversité sont inclus dans la présente invention. Les étapes d'évaluation décrites ci-dessus, c'est-à-dire d'évaluation par l'ensemble d'apprentissage et l'ensemble d'optimisation, sont répétées pour ce groupe modifié de chromosomes, y compris le chromosome optimal précédent, pour déterminer une aptitude relative. S'il s'est produit un événement engendrant la terminaison du processus de développement de vecteur stimulus, c'est-à- dire de l'algorithme génétique, le chromosomele mieux adapté est sélectionné pour définir le vecteur stimulus du réseau neural holographique final. Si aucune terminaison n'est provoquée, les étapes séquentielles de sélection, de modification et d'évaluation sont continuées. On va maintenant décrire la génération du réseau final. L'algorithme génétique est terminé sur la base de certains critères spécifiés par l'utilisateur. Les critères possibles incluent, parmi d'autres critères, un temps de calcul, le fait qu'une solution optimale dépasse un certain niveau d'aptitude, et une convergence, c'est-à-dire le fait que la solution optimale n'est pas améliorée pendant un certain nombre de générations. Le résultat de l'algorithme est un chromosome qui représente le vecteur stimulus optimal d'ordre supérieur pour la construction d'un réseau neural holographique. Afin de créer le réseau holographique final, l'utilisateur fait appel à une procédure d'encodage et d'optimisation qui se termine lorsque la mesure de généralisation commence à se détériorer. Cette procédure d'encodage et d'optimisation fonctionne cde préférence de la manière suivante. Un réseau neural holographique qui inclut le vecteur stimulus sélectionné et une matrice X nulle est établi. Ce réseau est de préférence soumis à apprentissage et test, au moyen des mêmes ensembles de paires vectorielles stimulus-réponse et paires vectorielles stimulus-réponse d'optimisation que celles qui sont utilisées dans la procédure de mesure d'aptitude décrite précédemment. Une SUM_ERROR, c'est-à-dire une somme des erreurs, est produite de façon correspondante. Le réseau est soumis à un nouvel apprentissage et à un nouveau test au moyen des mêmes paires vectorielles stimulus-réponse pour engendrer une nouvelle somme des erreurs. Une évidence empirique indique qu'un nouvel apprentissage itératif du réseau au moyen du même ensemble d'apprentissage améliore la génération jusqu'à un certain nombre de nouveaux apprentissages, à la suite de quoi la généralisation se dégrade. Par conséquent, les processus de d'apprentissage et de test séquentiels renouvelés sont de préférence continués jusqu'à ce que la somme des erreurs suivante soit supérieure à celle du réseau précédent. A cet instant, le réseau précédent, c'est- à-dire celui dont la somme des erreurs était optimale, est récupéré et mis en oeuvre en tant que réseau neural holographique final. On va maintenant décrire brièvement une machine, qui est un dispositif électrique 110, de mise en oeuvre du procédé décrit ci-dessus, en se référant à la Fig. 3 qui représente un schéma fonctionnel de ce dispositif. Le dispositif peut prendre de nombreuses formes, y compris un ordinateur, un communicateur personnel, une commande électronique à utiliser à domicile, en voiture ou ailleurs, etc. Le dispositif inclut de préférence une unité de traitement 120 et une mémoire 130 pour exécuter les étapes décrites ci- dessus sous une forme exécutable par machine. Compte tenu des présents enseignements, écrire un programme pour accomplir ces étapes, par exemple en C++, ressortirait clairement à l'homme de l'art. Des données d'entrée pour le réseau 10 sont de préférence amenées par l'intermédiaire d'une entrée de données qui peut inclure un détecteur, un analyseur, un clavier, un modem/adaptateur pour télécharger des données ou d'autres instruments de réception des données entrées du réseau neural holographique. Un dispositif de sortie 150 fournit de préférence les données vectorielles de réponse dans un format reconnaissable par l'utilisateur. Le dispositif de sortie 150 peut inclure un moniteur, un dispositif de fabrication, un haut-parleur, un générateur de signaux, ou un autre dispositif de communication de la sortie d'un réseau neural holographique. Alors que l'invention a été décrite en connexion avec certains modes de réalisation spécifiques, on comprend qu'elle est susceptible d'autres modifications et c'est le but de la présente demande que de couvrir toutes variantes, utilisations ou adaptations de l'invention qui suivent, en général, les principes de l'invention et qui incluent des variantes, par rapport à la présente description, qui sont à l'intérieur de la pratique commune de l'art concerné par l'invention, qui peuvent être appliquées aux particularités essentielles exposées ci-dessus, et qui sont comprises à l'intérieur du cadre de l'invention et des limites des revendications annexées. REVENDICATIONS 1. Procédé de sélection de termes à utiliser dans un réseau neural holographique (70) pour reconnaître une configuration dans des données, caractérisé en ce qu'il comprend les étapes suivantes, exécutables par machine: créer une série de vecteurs stimuli (60), chaque vecteur stimulus comportant au moins un terme d'ordre supérieur; évaluer ladite série de vecteurs stimuli (60) afin de déterminer une adaptation relative de chacun desdits vecteurs stimuli; sélectionner un sous-ensemble de la série des vecteurs stimuli (60) sur la base de leur adaptation relative; modifier le contenu d'au moins l'un desdits vecteurs stimuli (60) dudit sous-ensemble; et sélectionner un vecteur stimulus final (60) dans ledit sous-ensemble modifié. 2. Procédé selon la revendication 1, caractérisé en ce que ladite étape de création inclut l'étape consistant à: créer une série de chromosomes (40) qui représentent chacun l'un desdits vecteurs stimuli (60) chaque chromosome contenant une série de gènes (45) indicatifs chacun d'un terme d'un vecteur stimulus correspondant. 3. Procédé selon la revendication 1, caractérisé en ce que ladite étape de sélection d'un sous-ensemble comprend les étapes consistant a: éliminer de ladite série des vecteurs stimuli un vecteur stimulus qui est le moins adapté; et effectuer une duplication du vecteur le mieux adapté de la série des vecteurs stimuli. 4. Procédé selon la revendication 1, caractérisé en ce que ladite étape de modification comprend l'étape consistant à: échanger entre elles des parties de deux vecteurs stimuli (60) dudit sous-ensemble. 5. Procédé selon la revendication 1, caractérisé en ce que ladite étape de modification comprend l'étape consistant à: remplacer par un nouveau terme un pourcentage prédéfini de termes de l'un desdits vecteurs stimuli (60) dudit sous-ensemble. 6. Procédé selon la revendication 2 caractérisé en ce que ladite étape de modification comprend l'étape consistant à remplacer un gène (45) d'au moins l'un desdits chromosomes (40). 7. Procédé selon la revendication 1 caractérisé en ce qu'il comprend en outre les étapes consistant à: répéter en séquence plusieurs fois lesdites étapes d'évaluation, de sélection de sous-ensemble et de modification, chacune desdites étapes ultérieures d'évaluation intervenant sur le sous-ensemble modifié engendré lors de la boucle précédente de mise en oeuvre de ces trois étapes. 8. Procédé selon la revendication 7 caractérisé en ce que ladite étape de sélection du vecteur stimulus final comprend les étapes consistant à: arrêter, lors de l'apparition d'un événement prédéfini, la répétition séquentielle des étapes d'évaluation, de sélection de sous-ensemble et de modification; et sélectionner dans le dernier sous-ensemble modifié de vecteurs stimuli un vecteur stimulus (60) dont l'adaptation relative est optimale. 9. Procédé selon la revendication 1 caractérisé en ce que ladite étape de sélection d'un vecteur stimulus final comprend les étapes consistant à: réaliser, au moyen de données connues de stimulus et de réponses, un apprentissage d'un réseau neural holographique (70) pour au moins deux vecteurs de ladite série des vecteurs stimuli dudit sous- ensemble modifié; engendrer pour chacun desdits deux vecteurs stimuli au moins une valeur qui indique la qualité de leur généralisation, pour des données connues de stimulus et de réponse; sélectionner comme vecteur stimulus final (60) celui des deux vecteurs stimuli dont la qualité de généralisation est la meilleure. 10. Procédé selon la revendication 9, caractérisé en ce qu'il comprend en outre l'étape consistant à engendrer un réseau holographique final: en réalisant, au moyen d'un premier ensemble de données connues de stimulus ou de réponses, un apprentissage d'un réseau neural holographique (70) qui incorpore ledit vecteur de stimulus (60) dont la généralisation est meilleure; en engendrant une valeur d'optimisation pour le réseau soumis à l'apprentissage à l'aide dudit premier ensemble; en réalisant, au moyen d'un deuxième ensemble de données connues de stimulus ou de réponses, un apprentissage d'un réseau neural holographique (70) qui incorpore ledit vecteur de stimulus (60) dont la généralisation est meilleure; en engendrant une valeur d'optimisation pour le réseau soumis à l'apprentissage à l'aide dudit deuxième ensemble; et en sélectionnant comme réseau neural holographique final le réseau soumis à apprentissage au moyen dudit premier ensemble, lorsque la valeur d'optimisation dudit deuxième ensemble indique une généralisation moins bonne que la valeur d'optimisation dudit premier ensemble.