FR 2625347 A1 19890630 FR 8718044 A 19871223 Description "STRUCTURE DE RESEAU DE NEURONES ET CIRCUIT ET ARRANGEMENT DE RESEAUX DE NEURONES' L'invention concerne une structure de réseau de neurones permettant de déterminer des états nouveaux de M neu- rones en déterminant des produits des états de N neurones d'entrée par des vecteurs de N coefficients synaptiques d'en- trée, stockés dans une matrice, propres à chaque liaison des neurones entre eux. Les réseaux de neurones permettent de résoudre des problèmes qui sont très difficiles à traiter par des mé- thodes conventionnelles telles que celles utilisées par les calculateurs numériques. Les problèmes qui peuvent être trai- tés par les réseaux de neurones sont des problèmes de classi- fication, de reconnaissance de formes, de caractères, le trai- tement du signal de parole, le traitement d'images, l'optimi- sation combinatoire... Les méthodes conventionnelles utilisent des algo- rithmes souvent complexes alors que les réseaux de neurones traitent ces problèmes par apprentissage et par des phases itératives de résolution. Afin de résoudre ces types de problèmes avec les meilleures performances possibles, il est donc utile de conce- voir une structure qui implémente les réseaux de neurones avec la meilleure efficacité possible. Un réseau de neurones est un réseau d'automates élémentaires connectés entre eux.- A chaque itération les auto- mates effectuent la somme pondérée de l'état des neurones qui leur sont connectés. Cette somme est transformée par une fonc- tion généralement non linéaire (sigmoïde, seuil, etc...) afin de donner l'état du neurone considéré. La valeur qui pondère l'état des neurones connectés s'appelle un coefficient synap- tique. C'est un coefficient qui permet de configurer le réseau pour effectuer différentes fonctions. Une invention de ce genre est connue du document EP 0 242 110. Il y est décrit un réseau de neurones opérant en analogique. Il comprend une matrice en chaque point X, Y de laquelle existe une conductance possédant deux niveaux de con- duction, obtenue à l'aide d'une résistance qui est constituée lors de la réalisation de la matrice. Les colonnes sont réu- nies à des amplificateurs dont les sorties sont réunies aux lignes de la matrice. En chaque point de la matrice, le cou- rant est multiplié par la conductance en ce point puis tous les courants d'une même colonne sont ajoutés à l'aide de l'am- plificateur de colonne. Une telle matrice nécessite d'être programmée lors de sa réalisation. Elle est donc adaptée au traitement d'un problème particulier prévu à l'avance. L'opération qui consiste à placer soit une conductance d'une certaine valeur soit une conductance nulle (deux états seulement) est une opé- ration qui est définitive pour la matrice. Elle ne peut donc être utilisée pour des tâches nouvelles. Elle n'est donc pas reconfigurable. Elle ne possède pas de fonction non-linéaire programmable, car celle-ci est réalisée par la fonction de réponse des amplificateurs de sortie. Cette rigidité de fonc- tionnement ne permet pas à la structure de traiter certains problèmes et pour d'autres problèmes il est nécessaire de fai- re appel à un nombre élevé de neurones. Cette structure ne peut pas non plus s'adapter à une tâche nouvelle en déterminant elle-même ses coefficients synaptiques. Elle ne peut donc pas effectuer d'apprentissage, ce qui est indispensable pour certaines applications. La structure qui découle d'une telle matrice ana- logique ne peut pas non plus s'interfacer directement avec les calculateurs numériques conventionnels. Le problème principal posé est que les coeffi- cients synaptiques soient programmables plusieurs fois, avec des états de neurones codés sur 1 ou plusieurs bits, et utili- sant un choix déterminé de fonctions programmables ou un choix modifiable selon l'application. Pour cela l'invention telle que définie dans le préambule est remarquable en ce que la structure comprend: - une mémoire numérique programmable qui stocke les N.M coef- ficients synaptiques, codés sur p bits, de tous les M neu- rones, - une mémoire numérique d'états qui reçoit les états des N neurones d'entrée codés sur n bits, - N multiplieurs numériques qui déterminent, pour un neurone donné, choisi neurone après neurone parmi les M neurones, les produits de ses N coefficients synaptiques par les états de N neurones d'entrée, - un arbre d'additionneurs numériques qui détermine pour ce neurone donné la somme S de tous ces produits, - un organe de transcodage numérique qui applique à la somme S une fonction programmable et qui délivre des résultats qui permettent une remise à jour de l'état de ce neurone donné, - un circuit d'aiguillage et de séquencement qui délivre des signaux de commande et d'aiguillage des données. Préférentiellement les fonctions programmables sont non-linéaires. Un problème secondaire est que la structure pos- sède des moyens qui lui permettent d'effectuer son apprentis- sage en fonction de l'application envisagée. La solution de ce problème secondaire, pour que la structure opère en mode d'apprentissage, est que la mémoire numérique programmable est une mémoire vive RAM qui reçoit des coefficients synaptiques réactualisés en fonction des états. des M neurones. Préférentiellement les multiplieurs sont consti- tués de portes logiques ET. Un réseau de neurones est un réseau d'automates élémentaires connectés entre eux. Une disposition particulière Z625347 consiste à connecter un neurone à tous les autres neurones: on a alors un réseau dit pleinement connecté. Ce type de réseau est obtenu dans l'invention lorsque M=N, c'est-à-dire que les M neurones de sortie sont réintroduits pour devenir OS les N neurones d'entrée. Dans ce cas le nombre de neurones N en entrée et celui M de neurones en sortie sont égaux, les neurones étant pleinement connectés entre eux. Les neurones peuvent également être disposés en couches successives, les connexions existant seulement entre les couches successives: on a alors un réseau dit en couches. Ce type de réseau est obtenu dans l'invention lorsque, pour une première couche C, les N neurones d'entrée sont connectés à M' neurones de sortie, des derniers constituant les N' neu- rones d'entrée d'une seconde couche C+1 qui délivre M neurones de sortie. Un neurone est donc relié à d'autres neurones du réseau par des synapses auxquelles est affecté un coefficient synaptique. La structure va déterminer la somme S des contri- butions apportées à un neurone déterminé par l'état des neuro- nes qui lui sont reliés pondéré par chaque coefficient synap- tique. Préférentiellement la structure opère avec des coefficients synaptiques signés, l'arbre d'additionneurs com- prenant des additionneurs qui opèrent sur les bits de signe des N produits. Lorsque l'état d'un neurone est'codé sur 1 bit, la mémoire d'état possède N éléments de stockage, la détermi- nation de la somme S s'opérant sur un cycle de commande après la lecture des coefficients synaptiques. Lorsque l'état de chaque neurone est codé sur n bits,la mémoire d'état possède N.n éléments de stockage, cha- que état de neurones est lu à l'aide d'un sélecteur issu d'un groupe A de sélecteurs qui sélectionne successivement les n bits de l'état du neurone pour délivrer un signal EM qui entre dans un multiplieur à portes logiques ET, le groupe A de sé- lecteurs étant commandé par le circuit d'aiguillage et de sé- quencement par un signal SELA, l'arbre d'additionneurs compre- nant en sortie un additionneur et un accumulateur à décalage de sorte que la détermination de la somme S s'opère sur n cy- os05 cles de commande de décalage après la lecture des coefficients synaptiques en mémoire programmable. Mais il est également possible que les états de neurones étant codés en niveaux logiques K = +1/-1, les coef- ficients synaptiques sont lus en mémoire programmable tels qu'ils y sont stockés pour K = +1 ou en niveaux logiques in- versés pour K = -1 à l'aide de N commutateurs commandés par un signal SEL de sélection. Lorsque les états de neurones sont codés selon les valeurs logiques +1/-1 (respectivement en com- plément à 2 selon n-1 bits plus le signe), la phase d'appren- tissage peut nécessiter moins d'opérations que pour des états de neurone codés en valeurs logiques 0/1 (respectivement en entiers positifs sur n bits). Les états des neurones peuvent être codés en com- plément à 2, l'arbre d'additionneurs comprenant en sortie un additionneur/soustracteur et un accumulateur à décalage, l'o- pération soustraction' étant effectuée au moment o le bit de signe de l'état de neurone est sélectionné et si ce bit de si- gne représente une valeur négative. La structure peut aussi opérer avec chaque état de neurone codé en complément à 2 sans utiliser un soustrac- teur externe. Les coefficients synaptiques sont disposés en matrice avec un coefficient Cij pour la ligne j et la colon- ne i. On utilise préférentiellement des coefficients Cij si- gnés, car cela accroit les possibilités d'application de la structure. A un instant t l'état d'un neurone i est représenté par di(t). A un instant t+1 l'état du même neurone i sera représenté par di(t+1) tel que: di(t+1) = F(somme des Cij.dj(t)) avec i appartenant à [1,M] pour la sortie et j appartenant à [1,N] pour l'entrée. Donc chaque coefficient Cij d'un neurone i est multiplié par chaque état des N neurones auxquels le neurone i est connecté. La somme de tous ces produits est soumise à l'action d'une fonction F. Celle-ci est généralement une fonc- tion non-linéaire (seuil, sigmoïde,...), mais peut aussi être n'importe quel type de fonction. Le résultat obtenu permet de substituer un nouvel état à l'ancien état du neurone i. Les opérations se déroulent ainsi pour chaque état de neurones jusqu'à l'obtention d'une configuration nouvelle des états de neurones qui constitue le résultat final. Ceci constitue le mode appelé résolution mis en oeuvre par la structure. Les coefficients Cij restent inchangés dans le cadre d'une ap- plication donnée. Mais il est possible d'adapter la structure à d'autres applications en modifiant la matrice de coefficients synaptiques et le mode de connexion des neurones entre eux. Ceci peut s'effectuer en liaison ou non avec un changement de fonction appliquée par l'organe de transcodage. Ce changement - peut d'ailleurs être aisément effectué si cela est nécessaire au cours de l'application elle-même. L'organe de transcodage peut être une mémoire nu- mérique. L'organe de transcodage peut aussi être un auto- mate de calcul par exemple un micro-processeur. Celui-ci peut aussi mettre en oeuvre différents algorithmes qui servent à déterminer les coefficients synaptiques puis à les charger dans la mémoire numérique programmable en fonction de l'appli- cation envisagée. Il peut également participer à la gestion des commandes qui gouvernent le fonctionnement de la structu- re. Dans différentes variantes qui viennent d'être indiquées les coefficients synaptiques restent inchangés au cours d'une étape de résolution pour une application donnée et seuls les états de neurones sont déterminés. Les coefficients synaptiques peuvent être définitivement fixés s'il s'agit d'une mémoire morte ROM. Ils peuvent être chargés au début d'une application donnée s'il s'agit d'une mémoire vive RAM. Mais d'autres applications existent pour lesquel- les les coefficients Cij ne restent pas inchangés au cours de l'application. Ceci se présente dans les applications au cours desquelles il apparaît une étape dite d'apprentissage. Au dé- part la structure de réseau de neurones n'est pas adaptée à l'application envisagée. Elle doit apprendre à reconnaître les paramètres propres à l'application. Il peut s'agir par exemple de lui fournir en entrée une configuration de données type propre à l'application à partir de laquelle la structure va, par apprentissage, déterminer les coefficients synaptiques appropriés. Un automate externe tel qu'un micro-processeur fait fonctionner la structure pendant cette étape. Il peut s'agir aussi de fournir régulièrement à l'entrée de la structure, dans le cas d'une application don- née, des données réelles qui ont une propriété fonctionnelle commune. Ceci permet à un automate tel qu'un micro-processeur de contrôler la structure pour qu'elle converge dynamiquement vers des coefficients synaptiques propres à l'application. Pour cela la mémoire numérique programmable est une mémoire vive RAM qui reçoit des coefficients synaptiques réactualisés en fonction des états des M neurones afin que la structure opère en mode d'apprentissage. Certains éléments de la structure de neurones selon l'invention peuvent être regroupés pour constituer un circuit de neurones destiné à opérer dans une structure de réseau de neurones. Pour cela le circuit de neurones pour une struc- ture de réseau de neurones permet de déterminer des états nou- veaux de M neurones en déterminant des produits des états an- ciens de N neurones par M vecteurs de N coefficients synapti- ques d'entrée, propres à chaque liaison de neurones entre eux, stockés dans une matrice. Le circuit comprend - une mémoire numérique programmable qui stocke les N.M coef- ficients synaptiques, codés sur p bits, de tous les M neu- rones, - une mémoire numérique d'états qui reçoit les états des N neurones d'entrée codés sur n bits, - N multiplieurs numériques qui déterminent pour un neurone donné, choisi neurone après neurone parmi les M neurones, les produits de ses N coefficients synaptiques par les états de N neurones d'entrée, - un arbre d'additionneurs numériques qui détermine pour ce neurone donné la somme S de tous ces produits, - un séquenceur délivrant des signaux de commande, un organe de transcodage externe appliquant à la somme S une fonction programmable et qui délivre des résultats qui permet- tent une remise à jour de l'état de ce neurone donné. Dans ce cas l'organe de transcodage est externe. C'est par exemple une mémoire numérique ou un micro-processeur ou un automate. La mémoire numérique peut aussi être incorpo- rée au circuit de neurones soit sous la forme d'une mémoire morte ROM, dans ce cas la fonction est fixée, soit sous la forme d'une mémoire vive RAM et dans ce cas la fonction peut être modifiée. Un tel circuit a un fonctionnement asynchrone c'est-à-dire qu'il va avoir un comportement analogue à celui par exemple d'une mémoire conventionnelle. Il peut être casca- dé pour étendre les possibilités de traitement lorsque l'orga- ne de transcodage est externe au circuit. Ainsi il est possi- ble d'utiliser deux de ces circuits pour, par exemple, doubler soit le nombre de neurones soit le nombre de synapses. Les sorties des deux circuits sont additionnées éventuellement de façon externe et le résultat est introduit dans l'organe de transcodage. Plus généralement les circuits peuvent être grou- pés pour former un arrangement de réseaux de neurones compre- nant k circuits de neurones pouvant stocker k.N.M coefficients Z625347 synaptiques, organisé pour opérer le traitement de M neurones de k.N coefficients synaptiques ou de kM neurones de N coeffi- cients synaptiques ou d'autres combinaisons plus complexes. On peut ainsi obtenir un arrangement de k=k1.k2 circuits de neu- rones de k1.M neurones à k2.N coefficients synaptiques. Il est possible également que la structure et le circuit possèdent une double mémoire numérique d'états. Dans ce cas chaque nouvel état d'un neurone est stocké dans la deuxième mémoire jusqu'à ce que tous les nouveaux états de neurones aient été déterminés à l'aide de tous les anciens états. On effectue alors une remise à jour dite synchrone du réseau. Dans ce cas la remise à jour des états se fait à la fin d'une étape globale d'évaluation de tous les états de neu- rones et non pas état par état comme dans le cas o la mémoire numérique d'état est unique (remise à jour dite asynchrone). Le choix du mode synchrone ou asynchrone permet d'optimiser la dynamique du réseau. Ceci permet également de remettre à jour chaque neurone avec des cadences différentes les unes des autres, ce qui est utile pour traiter les données d'entrée variables dans le temps, par exemple en détection de mouve- ment. Dans le mode synchrone la structure comprend deux mémoires d'états de sorte que l'une stocke les états des neu- rones d'entrée et l'autre les états nouveaux de neurones, ces derniers états devenant ceux à prendre en compte lorsque le renouvellement de tous les états des neurones d'entrée a été effectué. L'invention sera mieux comprise à l'aide des figures suivantes données à titre d'exemples non liminatifs et qui représentent: figure 1: un schéma d'ensemble d'une structure de réseau de neurones dans le cadre d'une application de re- connaissance de caractères. figure 2: un schéma plus détaillé d'une partie de la structure. 262534t figure 3: un schéma d'un mode particulier de réalisation des multiplieurs et de la sélection des états des neurones stockés dans la mémoire d'états pour le cas o p=4 bits et n=4 bits. figure 4: un schéma du mode de lecture des coef- ficients synaptiques de niveau +1, -1. figures 5A, 5B, 5C, 5D: différents modes de sé- lection pour différentes configurations de codage des états de neurones. figures 6A, 6B: un exemple de codage afin d'ob- tenir un état de neurone final correspondant à la fonction OU- -exclusif des états de neurones d'entrée. figures 7A à 7G: un exemple de codage par champs des états de neurone afin d'effectuer la mise à jour de plu- sieurs informations en une seule opération. figures 8, 9, 10: différents arrangements asso- ciant plusieurs circuits de neurones. La figure 1 représente un schéma d'ensemble d'une structure de réseau de neurones 10 qui comprend un bloc 11 qui effectue les calculs proprement dits, un organe de transcodage 12 et un circuit d'aiguillage et de séquencement 13 qui déli- vre les signaux de commande et aiguille les données. En parti- culier ce circuit 13 est relié extérieurement à un automate 14 qui est par exemple un micro-processeur. Dans l'exemple repré- senté, le micro-processeur 14 reçoit des données d'un lecteur optique 15 qui lit les N éléments d'images des caractères sur un document d'entrée 16. Selon un premier mode de réalisation, la struc- ture de réseau de neurones opère à partir de coefficients sy- naptiques déterminés à l'avance. Dans une première étape ceux-ci peuvent être chargés soit dans une mémoire morte ROM lors de la fabrica- tion de la mémoire, soit dans une mémoire vive RAM lors de la programmation de la structure pour une application donnée qui peut bien sûr être modifiée par la suite. Dans ce second cas les coefficients synaptiques sont chargés dans la mémoire & partir du micro-processeur 14 par le bus de données 171. Les adresses i et j de la mémoire sont fournies par le bus d'adresses 172. Les échanges sont contrôlés par un signal de lecture/écriture 173 et par un bus de contrôle 174. Dans une seconde étape la structure 10 opère le traitement prévu à partir des coefficients synaptiques chargés (étape de résolution). Le microprocesseur 14 transmet les données du lecteur optique 15 au circuit 13. Ces données qui constituent des états de neurones passent également par le bus de données 171. Le bloc 11 de la structure effectue le traite- ment prévu (qui est détaillé ci-après) et délivre ses résul- tats sur le bus 175 à l'organe de transcodage 12 qui applique la fonction non-linéaire pour laquelle il est programmé. L'organe de transcodage délivre alors pour chaque neurone un nouvel état qui par le bus 171 est introduit dans le bloc 11 afin de réactualiser l'état de neurones qui y est mémorisé. Le signal de sélection 176 et le bus d'adresses 172 déterminent quel est le neurone à réactualiser. Lorsque tous les neurones ont ainsi été redéterminés, les nouveaux états de neurones transitent par le bus 171 pour être transmis au microprocesseur 14 à travers le circuit 13. Le résultat du traitement peut alors être visualisé sur un moniteur 18. Selon un second mode de réalisation, la structure peut opérer en mode d'apprentissage. Dans ce cas la mémoire numérique programmable est une mémoire vive RAM. Le micro-pro- cesseur 14 ne délivre plus lui-même les coefficients synapti- ques mais les calcule au cours de l'application elle-même. La structure de neurones doit ainsi apprendre à reconnaitre l'application. Par exemple si un signal complexe Si est formé d'une somme de deux signaux S2 et S3 pondérés par des coeffi- * cients a et b tels que S1=a.S2+b.S3, le circuit 13 peut mettre en oeuvre un programme qui exploite ces propriétés de cette somme pondérée de telle sorte que la structure de réseau de neurones peut apprendre à déterminer les signaux S2 et S3 qui la constituent. Il s'effectue donc tout d'abord une phase d'ap- prentissage au cours de laquelle les données issues du lec- teur optique 15 sont fournies au bloc 11 à l'aide du bus 171. Après l'application de la fonction non-linéaire par l'organe de transcodage 12, le résultat est réintroduit par le bus 171 dans le bloc 11. Le résultat est aussi traité par le micropro- cesseur 14 afin de modifier les coefficients synaptiques qui sont stockés dans le bloc 11. Cette étape est contrôlée par le circuit d'aiguillage et de séquencement 13 qui délivre les si- gnaux de commande nécessaires. Lorsque cette étape d'apprentissage est terminée, l'étape de résolution préalablement décrite se déroule dans laquelle sont calculés les états de neurones. La figure 2 représente un schéma d'une partie des éléments du bloc 11. Ce schéma comprend une mémoire numérique programmable 20 avec un bus d'adresses de ligne 1722 et un bus d'adresse de colonne 1721. La mémoire 20 stocke les coeffi- cients synaptiques Cij. Le nombre de lignes maximal est N et le nombre de colonnes maximal est M, ce qui représente un ré- seau de M neurones connectés à N neurones. Les états des neu- rones sont stockés dans N registres 211 à 21N de la mémoire d'état de neurones. Des multiplieurs 221 à 22N multiplient les coefficients synaptiques d'une colonne déterminée par les états des neurones stockés dans les N registres 2-11 à 21N. Les produits ainsi obtenus sont additionnés deux à deux dans un arbre d'additionneurs 23. Sur ce schéma le bus de données 171 est relié uniquement à la mémoire numérique d'états formée par l'ensemble des registres d'état 211 à 21N. Mais lorsque la mémoire numérique programmable 20 est une mémoire vive, elle est reliée aussi au bus 171 pour la programmation des coefficients synaptiques. On peut prévoir un bus séparé pour accéder rapidement aux coefficients synaptiques pour certaines applications, par exemple pour l'apprentissage à l'aide d'un automate externe. Z625347 La figure 3 représente un schéma d'un mode parti- culier de réalisation des multiplieurs et de la sélection des états de neurones. Sur ce schéma, à titre d'exemple, un état de neurones est codé sur n=4 bits. La mémoire numérique d'état contient donc N registres mémoire de n=4 bits, tel que les re- gistres 21k, 21k+1, connectés au bus 171. Les multiplieurs 31k, 31k+1 sont constitués ici par des portes logiques ET. Chaque multiplieur 31k, 31k+1 est réuni à une ligne de la mémoire programmable 20 par un bus 22k, 22k+1 qui contient autant de connexions que chaque coefficient synaptique possède de bits. Dans le cas de la figure 3 deux coefficients synapti- ques consécutifs C1 et C2 sont représentés codés sur p=4 bits. Dans ce cas un multiplieur 31k possède 4 portes logiques ET qui reçoivent chacune un des bits du coefficient synaptique C1. De même le multiplieur 31k+1 reçoit le coefficient sy- naptique C2. L'autre entrée de chaque porte logique ET reçoit une donnée EM fournie par un sélecteur 30k, 30k+1 qui pré- lève successivement en commencant par le bit de poids le moins significatif, chacun des bits de l'état du neurone du regis- tre mémoire 21k, 21k+1. Les sélecteurs 30k, 30k+1 sont contrôlés par un signal de sélection commun SELA délivré par le circuit d'aiguillage et de séquencement 13 (figure 1). Les sorties des portes ET sont additionnées entre elles selon leur poids binaire par un arbre d'additionneurs. Ainsi les addi- tionneurs 331 et 334 additionnent respectivement les bits de poids les plus faibles et ceux de poids le plus élevé. Un additionneur 335 opère comme l'additionneur 334 sur les mêmes données issues des multiplieurs 31k et 31k+1. La retenue qui sort de l'additionneur 334 est introduite dans l'addition- neur 335. Le calcul qui y est ainsi effectué prend toute sa signification avec des données signées. Dans la chaîne d'addi- tionneurs 331 à 335 la retenue délivrée par un additionneur est introduite dans l'additionneur suivant. La retenue d'en- trée re provient d'un additionneur précédent et la retenue de sortie rs entre dans un additionneur suivant. Pour chaque mot d'état de neurone et pour chaque étage de l'arbre, l'addi- tionneur associé au bit de poids le plus faible du mot a sa retenue d'entrée mise à zéro. Les sorties des additionneurs sont elles-mêmes additionnées deux à deux à l'aide de la totalité de l'arbre d'additionneurs. Le dernier additionneur 34 de l'arbre délivre un résultat sur la connexion 175. Dans l'exemple développé sur la figure 3, l'état d'un neurone est codé sur n bits. Dans ce cas pour chaque poids binaire des états de tous les neurones on obtient en sortie 175 un résultat. Les n résultats consécutifs sont in- troduits dans un additionneur 35 qui possède un registre d'ac- cumulation à décalage 36. Ce registre d'accumulation à décala- ge 36 est, par exemple, constitué d'un accumulateur et d'un registre à décalage. Ainsi le résultat en sortie du registre 36 est introduit dans l'additionneur 35, décalé et additionné avec les données de la sortie 175. Le résultat final est donc obtenu après n temps d'horloge H délivrés par le circuit d'ai- guillage et de séquencement 13 (figure 1). Ce résultat final est introduit dans l'organe de transcodage 12 qui délivre tous les. n temps d'horloge des données définissant un nouvel état de neurones qui est réintroduit dans le registre d'états cor- respondant. Le calcul se poursuit avec l'état de neurone sui- vant jusqu'à ce que tous les neurones aient été examinés. L'état des neurones étant codé sur n bits, la mé- moire d'états possède N.n éléments de stockage et le résultat pour un neurone est obtenu après n cycles de commande. L'ordre dans lequel est effectuée la sélection par les sélecteurs des bits d'un mot d'état de neurone est directement lié au type de codage du mot. Il peut donc être différent de celui considéré dans les exemples cités. Il est également possible qu'un re- gistre d'état de neurone de n bits code, par exemple, 2 neuro- nes de n/2 bits. La rapidité du traitement des données est ainsi accrue. Plus généralement, il est également possible qu'un registre d'état de neurone de n bits code q tranches de 26Z53 4 7 n/q bits. On a alors Nxq neurones d'entrée avec q colonnes dans la matrice des coefficients synaptiques pour un neurone de sortie donné. On obtient donc M/q neurones de sortie. Cela permet d'avoir un plus grand nombre de neurones d'entrée per- mettant une souplesse de configuration supplémentaire tout en utilisant pleinement tout le tableau de synapses du circuit. Mais l'état de neurones peut être codé sur 1 bit. Dans ce cas la mémoire d'état possède seulement N registres de 1 bit, chaque registre activant un multiplieur. Le résultat est alors obtenu après un cycle unique de commande. L'addi- tionneur 35 peut alors être supprimé pour une structure de réseau de neurones qui opère avec des états codés sur 1 bit. Les coefficients synaptiques C1 et C2 codés sur p bits sont multipliés par des valeurs O ou 1, mais peuvent également être multipliés par des valeurs -1 ou +1. La figure 4 représente un schéma permettant de générer de tels produits. La mémoire numérique programmable qui stocke les coefficients synaptiques Cij est constituée d'éléments mémoires tels que 401, 402, 403, 404. Chaque élément mémoire peut générer soit la valeur logique stockée soit la valeur logique inversée. Pour multiplier les coefficients synaptiques par des états de neurones de valeurs logiques +1/-1, on utilise des commuta- teurs 411 à 414 qui vont prélever les coefficients selon l'une ou l'autre des configurations possibles sous le contrôle d'un signal de sélection SEL. Celui-ci agit simultanément sur tous les commutateurs qui contrôlent chaque bit d'un même neurone. Ainsi sur la figure 4 un état de neurone codé sur 4 bits est représenté. Les données telles que C1 sont introduites sur les multiplieurs selon le schéma de la figure 3. Chaque fois que des signaux SEL sélectionnent des coefficients inversés, ils sont également appliqués aux en- trées de retenue des additionneurs de l'arbre qui sont asso- ciés, dans un mot d'état, au bit le moins significatif. Cette opération a pour but d'ajouter la valeur +1 à une donnée pour effectuer une addition signée en complément à 2. En contrôlant simultanément les signaux de sélec- tion SELA (figure 3) et SEL (figure 4), il est possible d'uti- liser des états de neurones codés différemment. Ceci est re- présenté sur les figures 5A, 5B, 5C, 5D. Sur la figure 5A, l'état du neurone est codé sur 1 bit. Le signal SEL est mis à l'état 0 et la mémoire program- mable délivre les coefficients synaptiques. Le signal SELA est déterminé pour donner au signal EM l'état du neurone de l'élé- ment mémoire 50 de la mémoire d'états. Dans ce cas l'état du neurone est codé en 0 ou 1. Sur la figure 5B, l'état du neurone est codé sur 4 bits non signés. Le signal SEL reste à 0 et le signal EM est formé successivement par tous les bits de l'état de neurone en commençant par le moins significatif (B1) et en finissant par le plus significatif (B4) sous le contrôle du signal SELA. Pour les exemples des figures 5A et 5B, le signal SEL étant mis à un état déterminé, il s'ensuit que les sélec- teurs et les commutateurs peuvent être supprimés pour une structure qui n'utiliserait que ces seules possibilités de co- dage. Sur la figure 5C, l'état du neurone est codé en complément à 2. Le signal SEL est à zéro lorsque les trois bits les moins significatifs sont sélectionnés et passent à un lorsque le bit le plus significatif est sélectionné et que ce- lui-ci est à 1. Le signal EM recopie successivement comme pré- cédemment tous les autres bits de l'état de neurone sous le contrôle du signal SELA. Dans ce cas chaque état de neurone est codé en complément à 2, la mémoire d'état possédant N.n éléments de stockage, un sélecteur d'un groupe A de N sélecteurs sélec- tionnant successivement les n bits (Bn... B1) en commencant par le bit le moins significatif B1, pour délivrer à chaque sélection un signal EM qui entre dans le multiplieur ET rela- tif à l'état de neurone, le groupe A de sélecteurs étant com- mandé par le circuit d'aiguillage et de séquencement à l'aide d'un signal SELA, chaque coefficient synaptique étant lu à l'aide d'un des N commutateurs commandés chacun par un signal SEL, les valeurs ou les niveaux logiques des signaux EM et SEL étant déterminés tel que le signal SEL recopie le bit de signe lorsque celui-ci est sélectionné et est à zéro lorsque les autres bits sont sélectionnés, et tel que le signal EM recopie tous les bits lorsque ceux-ci sont sélectionnés, l'arbre d'ad- ditionneurs comprenant en sortie un additionneur et un accumu- lateur à décalage de sorte que la détermination de la somme S s'opère sur n cycles de commande de décalages après la lecture des coefficients synaptiques en mémoire programmable. Sur la figure 5D, l'état du neurone est codé sur 4 bits en complément à deux. Dans ce cas le signal SEL est formé successivement par tous les bits d'état du neurone. Le signal EM est obtenu à l'aide d'une porte OU exclusif 51 qui reçoit d'une part le signal SEL et d'autre part chaque n-1 bits de l'état de neurone (signal EM1), la lecture de la mé- moire d'états par la voie du signal SEL et par la voie du si- gnal EM1 étant décalée d'un bit. La première donnée appliquée sur la voie EM1 étant l'état logique 0 tandis que celle appli- quée sur la voie SEL est le bit le moins significatif (B1) de l'état de neurone. On opère ainsi une multiplication signée suivant l'algorithme de Booth. Dans ce cas chaque état de neurones est codé sur n bits en complément à 2, le bit le plus significatif étant le bit de signe, la mémoire d'états possédant N.n éléments de stockage, chaque commutateur associé à chaque état de neurones étant contrôlé par un signal SEL issu d'un sélecteur d'un groupe B de sélecteurs qui sélectionne successivement le pre- mier puis jusqu'au nième bit de l'état de neurones corres- pondant en commencant par le bit le moins significatif, et simultanément chaque sélecteur d'un groupe A de sélecteurs sélectionnant successivement, décalé d'un bit par rapport au groupe B, une valeur logique 0 puis les (n-1)ième bits de l'état de neurones, chaque sortie EM1 du sélecteur du groupe A et chaque sortie SEL du sélecteur du groupe B entrant dans une porte logique OU exclusif qui délivre le signal EM appliqué sur les multi- plieurs à porte logique ET, le groupe A et le groupe B de sé- lecteurs étant commandés par le circuit d'aiguillage et de séquencement respectivement par les signaux SELA, SELB, l'ar- bre d'additionneurs comprenant en sortie un additionneur et un accumulateur à décalage de sorte que la détermination de la somme S s'opère sur n cycles de commande de décalages après la lecture des coefficients synaptiques en mémoire programmable. Le mode opératoire commun aux différents codages sur n bits des états de neurone est le suivant: - sélection d'une colonne de coefficients synaptiques, - sélection de tous les premiers bits des registres d'état de neurones, - réalisation de la somme des produits qui est mise dans un accumulateur et décalage vers la droite de cette somme. Deuxième phase: - sélection de la même colonne de coefficients synaptiques, - sélection de tous les deuxièmes bits des registres d'état de neurones, - réalisation de la somme des produits et accumulation avec la valeur précédemment décalée, - une fois cette addition faite, décalage à droite du résul- tat. L'opération se poursuit jusqu'à hime phase: - sélection de la même colonne de coefficients synaptiques, - sélection des nième bits de la mémoire d'état de neuro- nes, - réalisation de la somme des produits et accumulation-avec le résultat partiel précédent, - la somme résultante est appliquée à la table de transcodage qui donne le nouvel état du neurone correspondant à la co- lonne des coefficients synaptiques. n+lième Phase: - sélection dans la mémoire d'états de l'adresse du neurone considéré et mémorisation du résultat du transcodage, soit n bits. L'évaluation totale du réseau se fait en répétant ces n+lième cycles autant de fois qu'il y a de neurones dans le réseau. La structure de réseau de neurones selon l'inven- tion permet de modifier aisément la fonction programmable. De plus cette structure opérant en numérique, il est possible que la fonction programmable présente des allures qui ne peuvent être obtenues par la structure analogique de l'art antérieur. Un premier exemple est représenté par les figu- res 6A et 6B dans le cas o l'on désire obtenir un état de neurone final correspondant à la fonction OU-exclusif des états de neurones Vl et V2 codés en O ou 1 par l'application des fonctions programmables créneau. La figure 6A est le ré- seau de connexion et de coefficients synaptiques qui sont à établir avec une structure comme celle donnée par l'art anté- rieur pour obtenir un OU-exclusif. Il faut au moins cinq neu- rones répartis en trois couches de neurones: une première couche (Vl, V2), une deuxième couche (V3, V4) et une troisiè- me couche (V5). Avec des coefficients synaptiques tel que: C41 = C42 = 1, C31 = C32 = C53 = 2 et C54 = -2 on obtient l'état de neurone final V5 correspondant à la fonction OU- exclusif recherchée. La fonction F appliquée est alors: F = O si la somme des Cij.dj est inférieure à 2 - F = 1 si la somme des Cij.dj est supérieure ou égale à 2. - La figure 6B représente la réalisation de la même fonction OU-exclusif avec la structure de réseau de neurones selon l'invention. Il faut seulement trois neurones répartis en deux couches de neurones: une première couche (Vl, V2) et une deuxième couche (V3). La fonction appliquée est telle que F = 0 si la somme des Cij.dj est inférieure à 1 F = 1 si la somme des Cij.dj est supérieure ou égale à 1 et inférieure à 2 F = O si la somme des Cij.dj est supérieure ou égale à 2. Un deuxième exemple est représenté par les figu- res 7A à 7G. Ce'cas ne peut pas être traité par une structure analogique telle que celle de l'art antérieur avec le même nombre de neurones et de synapses. En effet dans cet exemple et selon l'invention il est possible de coder en plusieurs champs l'état de neurones de sortie pour représenter plusieurs informations et d'effectuer la mise à jour de l'état de neuro- ne, donc de plusieurs informations, dans une seule opération. L'exemple représente neuf neurones d'entrée Vll à V33 codés en 0 ou 1 connectés à un neurone de sortie V. Aux différentes connexions on associe les coefficients synaptiques suivants: de Vll à V coefficient Cll = 64 = 26 de V12 à V coefficient C12 = 16 = 24 de V13 à V coefficient C13 = 4 = 22 de V21 à V coefficient C21 = 1 de V22 à V coefficient C22 = 64 + 16 + 4 + 1 = 85 de V23 à V coefficient C23 = 1 de V31 à V coefficient C31 = 4 = 22 de V32 à V coefficient C32 = 16 = 24 de V33 à V coefficient C33 = 64 = 26 Ce type de codage correspond à un codage par champs. Une fonction F est alors appliquée au résultat obtenu pour l'état de neurone V telle que: F = 1 si la somme des Cij.dj = (2x1) + 85 (figure 7C) F = 2 si la somme des.Cij.dj = (2x4) + 85 (figure 7D) F = 3 si la somme des Cij.dj = (2x16) + 85 (figure 7E) F = 4 si la somme des Cij.dj = (2x64) + 85 (figure 7F) F = 0 dans les autres cas. La figure 7B représente une fenêtre d'analyse formée des 9 neurones précédents. Si on l'applique en chaque point du réseau représenté sur la figure 7G o figure la let- tre M il est alors possible de caractériser chaque point du réseau par la valeur de F. Le microprocesseur 14 (figure 1) peut alors effectuer le traitement de reconnaissance et le résultat peut être visualisé sur l'écran du moniteur 18. La structure de réseau de neurones qui est décri- te précemment peut être obtenue à pa#tir de blocs fonctionnels spécialement adaptés aux applications. Certains de ces blocs fonctionnels que l'on peut qualifier de standard ne sont pas exclusif d'une application donnée. D'autres au contraire sont plus spécifiquement liés à l'application, par exemple l'organe de transcodage. Il est donc souhaitable de pouvoir faire fonc- tionner des blocs fonctionnels standards avec des organes de transcodage différents. Dans ce but les blocs fonctionnels standards peu- vent être intégrés et constituer un circuit de neurones pour être utilisés dans une structure de neurones. L'organe de transcodage est alors externe. Bien évidemment si la diversité des exploitations de la structure n'est pas un critère déter- minant, l'organe de transcodage peut être mis à l'intérieur du circuit intégré. On a alors une structure de réseau de neuro- nes intégrée. Il est possible d'associer plusieurs de ces cir- cuits pour former des arrangements des réseaux de neurones plus complexes. La figure 8 représente un arrangement de qua- tre circuits 601, 602, 603, 604, ce qui permet de quadrupler la capacité de traitement d'un seul circuit en doublant d'une part le nombre de neurones et en doublant d'autre part le nom- bre de coefficients synaptiques réalisant ainsi un réseau pleinement connecté de 2N neurones. Un seul additionneur ex- terne 61 et un seul organe de transcodage externe 62 sont uti- lisés. La mise en parallèle de plusieurs circuits permet également d'accroître la précision sur les coefficients synap- tiques. Dans ce cas l'arrangement comprend au moins deux cir- cuits mis en parallèle afin d'opérer sur des coefficients sy- naptiques codés sur un nombre accru de bits. La figure 9 représente un arrangement analogue mais avec une vitesse de traitement deux fois plus rapide. Il faut utiliser deux additionneurs externes 611, 612 et deux or- ganes de transcodage 621 et 622. La figure 10 représente un arrangement de cir- cuits de neurones plus complexes o un premier groupe de cir- cuits de neurones 80 est connecté en couche à un deuxième cir- cuit de neurones 81. Il est aussi possible de construire des arrangements de réseaux de neurones complexes en utilisant à la fois des réseaux pleinement connectés et des réseaux con- nectés en couche. Revendications 1. Structure de réseau de neurones permettant de dé- terminer des états nouveaux de M neurones en déterminant des produits des états de N neurones d'entrée par des vecteurs de N coefficients synaptiques d'entrée, stockés dans une matrice, propres à chaque liaison des-neurones entre eux, caractérisée en ce que la structure comprend: - une mémoire numérique programmable qui stocke les N.M coef- ficients synaptiques, codés sur p bits, de tous les M neu- rones, - une mémoire numérique d'états qui reçoit les états des N neurones d'entrée codés sur n bits, - N multiplieurs numériques qui déterminent, pour un neurone donné, choisi neurone après neurone parmi les M neurones, les produits de ses N coefficients synaptiques par les états de N neurones d'entrée, - un arbre d'additionneurs numériques qui détermine pour ce neurone donné la somme S de tous ces produits, - un organe de transcodage numérique qui applique à la somme S une fonction programmable et qui délivre des résultats qui permettent une remise à jour de l'état de ce neurone donné, - un circuit d'aiguillage et de séquencement qui délivre des signaux de commande et d'aiguillage des données. 2. Structure selon la revendication 1, caractérisée en ce que la mémoire numérique programmable est une mémoire vive RAM qui reçoit des coefficients synaptiques réactualisés en fonction des états des M neurones afin que la structure opère en mode d'apprentissage. 3. Structure selon une des revendications 1 ou 2, caractérisée en ce que les N multiplieurs sont constitués par des portes logiques ET.. - 4. Structure selon la revendication 3, caractérisée en ce que l'état d'un neurone est codé sur n=1 bit, la mémoire d'état possédant N éléments de stockage, la détermination de la somme S s'opérant sur un cycle de commande après la lecture des coefficients synaptiques. 5. Structure selon la revendication 3, caractérisée en ce que l'état de chaque neurone est codé sur n bits, la mémoire d'état possédant N.n éléments de stockage, chaque état de neurones étant lu à l'aide d'un sélecteur issu d'un groupe A de sélecteurs qui sélectionne successivement les n bits de l'état du neurone pour délivrer un signal EM qui entre dans un multiplieur à portes logiques. ET, le groupe A de sélecteurs étant commandé par le circuit d'aiguillage et de séquencement par un signal SELA, l'arbre d'additionneurs comprenant en sor- tie un additionneur et un accumulateur à décalage de sorte que la détermination de la somme S s'opère sur n cycles de comman- de de décalage après la lecture des coefficients synaptiques en mémoire programmable. 6. Structure selon la revendication 5, caractérisée en ce qu'elle opère avec des coefficients synaptiques signés, l'arbre d'additionneurs comprenant des additionneurs qui opè- rent sur les bits de signe des N produits. 20. 7. Structure selon la revendication 6, caractérisée en ce que les états des neurones sont codés en complément à 2, l'arbre d'additionneurs comprenant en sortie un additionneur/ soustracteur et un accumulateur à décalage, l'opération 'sous- traction" étant effectuée au moment o le bit de signe de l'é- tat de neurone est sélectionné et si ce bit de signe représen- te une valeur négative. 8. Structure selon la revendication 3, caractérisé en ce que les états de neurones étant codés en niveaux logi- que K = +11-1, les coefficients synaptiques sont lus en mé- moire programmable tels qu'ils y sont stockés pour K = +1 ou en niveaux logiques inversés pour K = -1 à l'aide de N commu- tateurs commandés par un signal SEL de sélection. 9. Structure selon les revendications 6 et 8, carac- térisée en ce que chaque état de neurones est codé en complé- ment à.2, la mémoire d'état possédant N.n éléments de stocka- ge, un sélecteur d'un groupe A de N sélecteurs sélectionnant successivement les n bits (Bn.. B1) en commencant par le bit le moins significatif B1, pour délivrer à chaque sélection un signal EM qui entre dans le multiplieur ET relatif à l'état de neurone, le groupe A de sélecteurs étant commandé par le circuit d'aiguillage et de séquencement à l'aide d'un signal SELA, chaque coefficient synaptique étant lu à l'aide d'un des N commutateurs commandés chacun par un signal SEL, les valeurs ou les niveaux logiques des signaux EM et SEL étant déterminés tel que le signal SEL recopie le bit de signe lors- que celui-ci est sélectionné et est à zéro lorsque les autres bits sont sélectionnés, et tel que le signal EM recopie tous les bits lorsque ceux-ci sont sélectionnés, l'arbre d'addi- tionneurs comprenant en sortie un additionneur et un accumula- Â5 -teur à décalage de sorte que la détermination de la somme S s'opère sur n cycles de commande de décalages après la lecture des coefficients synaptiques en mémoire programmable. 10. Structure selon les revendications 6 et 8, carac- térisée en ce que chaque état de neurones est codé sur n bits en complément à 2, le bit le plus significatif étant le bit de signe, la mémoire d'état possédant N.n éléments de stockage, chaque commutateur associé à chaque état de neurones étant contrôlé par un signal SEL issu d'un sélecteur d'un groupe B de sélecteurs qui sélectionne successivement le premier puis jusqu'au nième bit de l'état de neurones correspondant en commencant par le bit le moins significatif, et simultanément chaque sélecteur d'un groupe A de sélecteurs sélectionnant successivement, décalé d'un bit par rapport au groupe B, une valeur logique 0 puis les (n- 1)ième bits de l'état de neurones, chaque sortie EM1 du sélecteur du groupe A et chaque sortie SEL du sélecteur du groupe B entrant dans une porte logique OU exclusif qui délivre le signal EM appliqué sur les multi- plieurs à porte logique ET, le groupe A et le groupe B de sé- lecteurs étant commandés par le circuit d'aiguillage et de séquencement respectivement par les signaux SELA, SELB, l'ar- bre d'additionneurs comprenant en sortie un additionneur et un accumulateur à décalage de sorte que la détermination de la somme S s'opère sur n cycles de commande de décalages après la lecture des coefficients synaptiques en mémoire programmable. 11. Structure selon une des revendications 1 à 10, caractérisée en ce que la structure comprend deux mémoires d'états de sorte que l'une stocke les états des neurones d'en- trée et l'autre les états nouveaux de neurones, ces derniers états devenant ceux à prendre en compte lorsque le renouvelle- ment de tous les états des neurones d'entrée a été effectué. 12. Structure selon une des revendications 1 à 10, caractérisée en ce que l'organe de transcodage est un automate de calcul. 13. Structure selon une des revendications 1 à 10, caractérisée en ce que l'organe de transcodage est une mémoire numérique. 14. Structure selon une des revendications 1 à 13, caractérisée en ce que le nombre de neurones N en entrée et celui M de neurones en sortie sont égaux, formant un réseau de neurones pleinement connectés. 15. Circuit de neurones pour une structure de réseau de neurones qui permet de déterminer des états nouveaux de M neurones en déterminant des produits des états de N neurones d'entrée par M vecteurs de N coefficients synaptiques d'en- trée, propres à chaque liaison de neurones entre eux, stockés dans une matrice, caractérisé en ce que le circuit comprend: - une mémoire numérique programmable qui stocke les N.M coef- ficients synaptiques, codés sur p bits, de tous les M neu- rones, - une mémoire numérique d'états qui reçoit les états des neu- rones d'entrée codés sur n bits, - N multiplieurs numériques qui déterminent pour un neurone donné, choisi neurone après neurone parmi les M neurones, les produits de ses N coefficients synaptiques par les états de N neurones d'entrée, - un arbre d'additionneurs numériques qui détermine pour ce neurone donné la somme S'de tous ces produits, - un séquenceur délivrant des signaux de commande, un organe de transcodage externe appliquant à la somme S une fonction programmable et qui délivre des résultats qui permet- tent une remise à jour de l'état de ce neurone donné. 16. Circuit selon la revendication 15, caractérisé en ce que la mémoire numérique programmable est une mémoire vive RAM qui reçoit des coefficients synaptiques réactualisés en fonction des états des M neurones afin que la structure opère en mode d'apprentissage. 17. Circuit selon une des revendications 15 ou 16, modifié en ce que l'organe de transcodage est une mémoire nu- mérique interne au circuit. 18. Arrangement de réseaux de neurones selon une des revendications 15 à 17, caractérisé en ce qu'il comprend k = kl.k2 circuits de neurones pouvant stocker k.N.M coefficients synaptiques organisés en k1.M neurones à k2.N coefficients synaptiques. 19. Arrangement de réseaux de neurones selon la re- vendication 18, caractérisé en ce qu'il comprend au moins deux circuits mis en parallèle afin d'opérer sur des coefficients synaptiques codés sur un nombre accru de bits.