FR 2641097 A1 19900629 FR 8817109 A 19881223 DESCRIPTION CIRCUIT INTEGRE NEUROMIMETIQUE AVEC DES MOYENS D'APPRENTIS- SAGE" L'invention concerne un circuit intégré neuromi- métique comprenant: - une mémoire M de coefficients synaptiques Cij, - une mémoire d'états de neurones, - des moyens de résolution pour déterminer des états de neuro- nes de sortie i à partir des états de neurones d'entrée j, - des moyens d'apprentissage pour déterminer des nouveaux coefficients synaptiques Cij en effectuant des phases d'ap- prentissage de type local. Elle concerne également une structure de réseau de neurones munie d'un automate de traitement opérant avec un tel circuit neuromimétique. Une invention de ce genre est connue du document A fully digital CMOS integrated feedback network including the learning process' M. WEINFELD, G. DREYFUS, A. JOHANNET, L. PERSONNAZ, Neural Networks for computing. SNOWBIRD. UTAH 6-9 Avril 1988. Il s'agit d'un circuit intégré qui met en oeuvre des phases de résolution et des phases d'apprentissage exploi- tant la règle d'apprentissage de Widrow-Hoff. Ce circuit est conçu avec un parallélisme sur les états de neurones de sortie i avec un mécanisme de circulation des informations qui est effectué sur l'indice j relatif aux états des neurones d'en- trée j. Il découle de ceci que l'on ne peut pas isoler un traitement particulier sur un neurone donné. Ce circuit ne peut donc opérer qu'avec un nombre restreint de règles d'ap- prentissage. Le problème posé par l'invention est de réaliser un circuit intégré neuromimétique, destiné à être utilisé dans une structure de réseau de neurones munie d'un automate de traitement, qui puisse opérer à grande vitesse en opérant simultanément la remise à jour de tous les coefficients synap- tiques d'un neurone de sortie i donné et qui puisse également mettre en oeuvre la plupart des règles d'apprentissage afin que le circuit puisse être exploité pour résoudre de nombreux problèmes qu'ont à traiter les structures de réseaux de neuro- nes. La solution à ce problème posé consiste en ce que, pour un neurone de sortie i donné, les moyens d'appren- tissage opèrent simultanément en parallèle sur chacun des coefficients synaptiques, lus en mémoire, qui caractérisent les synapses qui relient les neurones d'entrée j convergeant vers un neurone de sortie i et pour cela les moyens d'appren- tissage comprennent: - des moyens pour faire agir une fonction d'apprentissage sur des paramètres formés par les états de neurones Vj et par un élément de correction Si, propre à chaque neurone de sortie i afin de déterminer si une modification est à apporter à chaque coefficient synaptique et le signe de cette modifica- tion, - et des incrémenteurs-décrémenteurs qui déterminent en paral- lèle les nouveaux coefficients synaptiques Cij à partir du signe des modifications et d'une valeur de correction Ai qui est relative à ce neurone de sortie i et qui est commune à tous les neurones d'entrée j qui y convergent, o Ai est une valeur de correction liée soit à l'état des neu- rones d'entrée j, soit à l'état du neurone de sortie i, soit à une fonction combinant ces deux types d'états qui est détermi- née soit par le circuit lui-même, soit transmise par l'automa- te de traitement, et o Si est soit l'état d'un neurone d'entrée j, soit l'état du neurone de sortie i donné, soit des états qui sont des fonctions de ces deux types d'états et qui sont transmises par l'automate. En phase dite 'de résolution", le circuit neuro- mimétique va sélectionner dans la mémoire M tous les coeffi- cients synaptiques Cij d'un neurone de sortie i donné et les multiplier par les états Vj des neurones d'entrée j et effec- tuer la somme de tous ces produits tel que N jl Cij.Vj. N étant le nombre total de neurones d'entrée qui influencent le neurone de sortie i. Les coefficients synaptiques Cij sortent en pa- rallèle de la mémoire M, entrent chacun dans un incrémenteur/ décrémenteur, dont la sortie entre dans un organe de calcul formé par exemple de multiplieurs et d'un arbre d'addition- neurs. Le résultat est extrait du circuit et transmis à l'au- tomate de traitement qui fait agir sur ce résultat une fonc- tion non-linéaire. Cette fonction non-linéaire peut également être appliquée au résultat par l'organe de calcul lui-même, avant d'être transmis à l'automate de traitement. Les états des neurones d'entrée j à traiter peuvent être fournis soit par l'automate de traitement soit par le monde extérieur. En phase dite 'd'apprentissage', les incrémenteurs/décrémenteurs reçoivent des signaux de commande afin d'opérer, soit une in- crémentation soit une décrémentation, soit aucune modification du coefficient synaptique concerné. Ces signaux de commande proviennent des moyens faisant agir la fonction d'apprentissa- ge qui délivrent à chaque incrémenteur/décrémenteur un signal sur deux bits pour coder les commandes précédentes. Les fonctions d'apprentissage vont tenir compte des états Vj des neurones d'entrée j et d'un élément de cor- rection Si, propre à chaque neurone de sortie i. Les moyens faisant agir la fonction d'apprentissage sont formés d'élé- ments d'apprentissage en nombre égal au nombre d'incrémen- teurs/décrémenteurs et donc de coefficients synaptiques Cij à traiter simultanément. Chacun de ces éléments d'apprentissage reçoit un état Vj et l'élément de correction Si qui l'un et l'autre peuvent être codés sur un ou plusieurs bits. Ces élé- ments d'apprentissage peuvent être formés soit de portes logi- que ET soit des portes logiques OU-exclusif soit une combinai- son de portes opérant une fonction complexe. Ils peuvent éga- 26410 97 lement être formés de multiplexeurs à quatre entrées qui sé- lectionnent soit la valeur logique 1, soit la valeur logique 0 soit au moins un bit d'état de neurone Vj ou de l'élément dé correction Si, soit leur complément. Les incrémenteurs/décrémenteurs reçoivent ces si- gnaux de commande ainsi qu'une valeur de correction Ai commune à tous et qui est spécifique du neurone de sortie i traité à un instant donné. Ainsi chaque incrémenteur va indépendamment de l'autre soit incrémenter d'une valeur Ai le coefficient sy- naptique, soit le décrémenter d'une valeur Ai, soit ne rien modifier. Cette valeur de correction Ai est transmise au cir- cuit par l'automate de traitement. Mais elle peut également être déterminée par le circuit lui-même dans un circuit de correction. Cette valeur de correction Ai est préférentielle- ment un entier pour donner au coefficient synaptique la préci- sion requise. Les opérations d'incrémentation/décrémentation peuvent être effectuées sur plusieurs cycles consécutifs pour opérer avec des états de neurones codés sur plusieurs bits. En effet chaque élément d'apprentissage peut recevoir des états Vj et un élément de correction Si codés sur plusieurs bits. Il est aussi possible en effectuant plusieurs cycles consécutifs d'effectuer des opérations de multiplication Vj.Si avec un choix adéquat des Ai fournis à chaque cycle. Un organe de sé- lection peut permettre de donner à l'élément de correction Si soit l'état d'un neurone d'entrée j, soit l'état du neurone de sortie i donné, soit des états qui sont une fonction de ces deux types d'états et qui sont transmis par l'automate de traitement. Les incrémenteurs/décrémenteurs peuvent en outre présenter chacun une fonction de mémorisation afin de libérer la mémoire de coefficients synaptiques pour qu'elle effectue d'autres tâches. L'invention sera mieux comprise à l'aide des fi- gures suivantes données à titre d'exemple non limitatif qui représentent: figure 1: un schéma du circuit neuromimétique 2 641097 selon l'invention. figure 2: un schéma d'un autre mode de réalisa- tion des fonctions d'apprentissage. Le circuit neuromimétique 10 est réuni à un auto- mate de traitement 50 afin de constituer une structure de ré- seau de neurones. La mémoire 11 de coefficients synaptiques Cij délivre en parallèle sur j les coefficients synaptiques Cij (bus 191 à 19N) relatifs à un même neurone de sortie i donné. Les coefficients synaptiques arrivent sur des incrémen- teurs/décrémenteurs 12 qui délivrent leurs coefficients à un organe de calcul 13. Celui-ci comprend par exemple des multi- plieurs pour effectuer les multiplications Cij.Vj et un arbre d'additionneurs pour effectuer la somme de toutes ces multi- plications. Le résultat apparait sur la connexion 14 pour être délivré à l'automate de traitement 50 qui fait agir sur ce ré- sultat une fonction non-linéaire. Cette fonction peut 'étre ef- fectuée dans l'organe de calcul 13 lui-même. Les états Vj de neurones d'entrée j sont stockés dans une mémoire d'état de neurones 15 qui les reçoit de l'au- tomate de traitement 50 ou de l'extérieur (connexion 25) et les délivre à l'organe de calcul 13. La mémoire d'états de neurones 15 peut recevoir, de l'automate de traitement, des états de correction au cours de phase d'apprentissage. Les moyens 16 pour faire agir des fonctions d'apprentissage sont formées des éléments d'apprentissage 161, 162,...., 16N lorsqu'il y a N neurones d'entrée j à traiter. Chaque élément d'apprentissage reçoit un état Vj et l'élément de correction Si issu d'un registre de correction 17. Chaque élément d'ap- prentissage délivre une donnée numérique codée sur deux bits à chaque incrémenteur/décrémenteur pour qu'il effectue soit une incrémentation, soit une décrémentation soit aucune opéra- tion. Le registre de correction 17 est chargé par l'élément de correction Si qui peut avoir plusieurs origines. Il peut être chargé soit par un des états Vj des neurones d'entrée j, soit par un état Vi des neurones de sortie i, soit par une fonction de ces deux types d'états et qui lui arrive par l'automate de de traitement 50. 26410 97 Les incrémenteurs/décrémenteurs 12 reçoivent éga- lement tous une même valeur de correction Ai qui est utilisée pour modifier ou non les anciennes valeurs Cij pour déterminer des nouvelles valeurs Cij selon l'expression: Cij(nouveau) = Cij(ancien) + Ai.F(Si). Cette valeur de correction Ai peut provenir soit de l'automate de traitement 50 soit d'un circuit de correction 18 qui fait agir une fonction de correction F sur l'élément de correction Si. Les éléments d'apprentissage 161... 16N sont par exemple soit des portes logiques ET soit de portes logi- ques OU-exclusif soit une combinaison de portes opérant une fonction complexe. Il est également possible selon la figure 2 de faire effectuer la fonction d'apprentissage elle-même par un circuit commun qui délivre des commandes communes à des multiplexeurs qui traitent chacun des états de neurones d'en- trée Vj. Dans ce cas les différents éléments d'apprentissage 161... 16N se partagent un circuit 20. Par exemple, l'élément d'apprentissage 161 de la figure 1 est alors formé sur la figure 2 des multiplexeurs 21, 22 et 23. Le multiplexeur 23 lit un bit de l'état VI dans la mémoire 15. Il délivre successivement tous les bits de V1 contrôlé par la commande S. Si VI est codé sur un bit le mul- tiplexeur 23 n'existe pas. Les multiplexeurs 21 et 22 reçoi- vent bit après bit l'état V1 (connexion 24). Ils peuvent sé- lectionner soit l'état logique 1, soit l'état logique zéro, soit l'état V1, soit l'état complémentaire de VI (inverseur 26). Les multiplexeurs 21 et 22 sont commandés par le circuit qui met en oeuvre la fonction d'apprentissage choisie, par exemple des fonctions ET, OU-exclusif ou des fonctions complexes. Le circuit 20 est par exemple un réseau à logique programmée (PLA) ou une RAM. Les multiplexeurs 22 et 21 ont des commandes distinctes et délivrent en sortie respectivement les signaux +/- pour l'incrémentation/décrémentation et les signaux OP/NOP pour déterminer si l'opération est à effectuer ou non. 264109? Les incrémenteurs-décrémenteurs peuvent comprendre des moyens pour éviter le dépassement au cours des - opérations. Par exemple un coefficient synaptique peut prendre en cas de dépassement soit la valeur maximale soit la valeur minimale permise par le circuit. Les incrémenteurs/décrémenteurs peuvent être cascadables d'un circuit à l'autre afin d'utiliser des coefficients synaptiques codés sur un nombre de bits accru. Pour cela chaque incrémenteur/décrémenteur possède une entrée pour une retenue d'entrée et une sortie pour une retenue de sortie permettant soit de reconfigurer le circuit soit de cascader plusieurs circuits pour étendre les possibilités de traitement à un nombre accru de neurones. A titre d'exemple un algorithme d'apprentissage que peut mettre en oeuvre le circuit selon l'invention est ce- lui dit du recouvrement minimal de prototypes (voir à ce sujet V. KRAUTH et M. MEZARD J. Phys A 20 (1987) L745-L752). Le but est alors de réaliser une mémoire associative pour laquelle le réseau associe en sortie le prototype présenté à l'entrée. Ce- ci peut être appliqué à la correction d'erreurs. L'apprentis- sage est itératif et procède indépendamment sur les neurones i de sortie. Pour un neurone de sortie i donné, on présente un prototype EY (o. est l'indice du prototype et j celui du neurone) à l'entrée du circuit qui opère alors en phase de ré- solution. Le circuit calcule h'h = E Cij.E" 1i j Lorsque tous les prototypes ont été présentés, on choisit le prototype d'indice v tel que hv est inférieur à hi pour tout p. Le circuit fonctionne alors en phase d'apprentis- sage en modifiant les coefficients synaptiques relatifs au neurone de sortie i selon l'expression: Cij (nouveau) = Cij (ancien) + vi.,v 26 4 109t L'élément de correction est donc donné par: Sj = Eu et l'incrément par: Ai = i Cette procédure est itérée jusqu'à ce que les sommes hi soient toutes supérieures à un critère Z, pour tous les prototypes p et tous les neurones de sortie i. Il est à noter que cet algorithme a des perfor- mances optimales pour ce type de réseaux. 26 4 10 97 REVENDICATIONS 1. Pour une structure de réseau de neurones munie d'un automate de traitement, circuit intégré neuromimétique comprenant: - une mémoire M de coefficients synaptiques Cij, - une mémoire d'états de neurones, - des moyens de résolution pour déterminer des états de neuro- nes de sortie i à partir des états de neurones d'entrée j, - des moyens d'apprentissage pour déterminer des nouveaux coefficients synaptiques Cij en effectuant des phases d'ap- prentissage de type local, caractérisé en ce que, pour un neurone de sortie i donné, les moyens d'apprentissage opèrent simultanément en parallèle sur chacun des coefficients synaptiques, lus en mémoire, qui caractérisent les synapses qui relient les neurones d'entrée j convergeant vers un neurone de sortie i et pour cela les moyens d'apprentissage comprennent: - des moyens pour faire agir une fonction d'apprentissage sur des paramètres formés par les états de neurones Vj et par un élément de correction Si, propre à chaque neurone de sortie i afin de déterminer si une modification est à apporter à chaque coefficient synaptique et le signe de cette modifica- tion, - et des incrémenteurs-décrémenteurs qui déterminent en paral- lèle les nouveaux coefficients synaptiques Cij à partir du signe des modifications et d'une valeur de correction Ai qui est relative à ce neurone de sortie i et qui est commune à tous les neurones d'entrée j qui y convergent, o Ai est une valeur de correction liée soit à l'état des neu- rones d'entrée j, soit à l'état du neurone de sortie i, soit à une fonction combinant ces deux types d'états qui est détermi- née soit par le circuit lui-même, soit transmise par l'automa- te de traitement, et o Si est soit l'état d'un neurone d'entrée j, soit l'état du neurone de sortie i donné, soit des états qui sont des fonctions de ces deux types d'états et qui sont transmises par l'automate. 26 410 9 2., Circuit selon la revendication 1, caractérisé en ce que les moyens pour appliquer les fonctions d'apprentissage sont soit des portes logiques ET soit des portes logiques OU-exclusif soit une combinaison de portes opérant une fonc- tion complexe. 3. Circuit selon la revendication 2, caractérisé en ce que les moyens pour appliquer les fonctions d'apprentissage comprennent des multiplexeurs à quatre entrées qui sélection- nent soit la valeur logique 1, soit la valeur logique O soit au moins un bit d'état de neurone Vj ou de l'élément de cor- rection Si, soit leur complément. 4. Circuit selon une des revendications 1 à 3, ca, ractérisé en ce que les opérations d'incrémentation/décrémen- tation s'effectuent sur plusieurs cycles consécutifs pour opé- rer avec des états de neurones codés sur plusieurs bits. 5. Circuit selon la revendication 4, caractérisé en ce que lesdites opérations effectuent des opérations de multi- plications. 6. Circuit selon une des revendications 1 à 5 carac- térisé en ce que les incrémenteurs/décrémenteurs possèdent chacun une fonction de mémorisation. 7. Circuit selon une des revendications' 1 à 6 carac- térisé en ce qu'il comprend un registre de correction qui re- çoit l'élément de correction Si. 8. Circuit selon une des revendications 1 à 7 carac- térisé en ce qu'il comprend un circuit de correction qui fait agir une fonction de correction F sur l'élément de correction Si pour générer la valeur de correction Ai. 9. Circuit selon une des revendications 1 à 8 carac- térisé en ce que chaque incrémenteur/décrémenteur possède une entrée pour une retenue d'entrée et une sortie pour une rete- nue de sortie permettant soit de reconfigurer le circuit soit de cascader plusieurs circuits pour étendre les possibilités de traitement à un nombre accru de neurones. 10. Structure de réseau de neurones caractérisé en ce qu'elle comprend un circuit neuromimétique selon une des re- vendications 1 à 9 et un automate de traitement.