Brevet FR2691821A1 — publié le 19931203

Réseau neuronal couches multiples programmable. La présente invention a trait à un réseau neuronal, et plus particulièrement à un réseau neuronal à couches mul- tiples. Généralement, un réseau neuronal à couches multiples est conçu pour établir un poids de synapse appris pour chaque synapse, en vue d'effectuer une fonction envisagée. Ainsi, le réseauneuronal à couches multiples peut effectuer uniquement une fonction, ce qui empêche la réalisation d'un système de reconnaissance utilisant un réseau neuronal à couches multiples. Par conséquent, un des buts de la présente invention est de proposer un réseau neuronal à couches multiples programmable avec lequel un utilisateur peut accomplir des fonctions multiples en utilisant un seul réseau neuronal à couches multiples. Pour atteindre ce but, on prévoit un réseau neuronal à couches multiples programmable comportant des moyens de mémorisation de poids pour mémoriser le poids de chaque synapse en vue d'effectuer une fonction envisagée ; des moyens d'interface pour transmettre la valeur de poids mémorisée dans les moyens de mémoire à chaque synapse et un réseau neuronal à couches multiples programmé pour recevoir le poids des moyens de mémorisation de poids et pour délivrer un signal de sortie envisagé. Le but précité et les avantages de la présente invention ressortiront mieux de la description détaillée d'un mode de réalisation préféré de celle-ci en référence -aux dessins annexés sur lesquels la Figure 1 est un schéma synoptique d'un mode de réalisation d'un réseau neuronal à couches multiples de la présente invention, qui est programmable par l'utilisateur et composé de synapses à 8 bits la Figure 2 représente un comparateur neuronal à 8 bits utilisé dans la Figure 1 la Figure 3 représente une porte NON ET à quatre entrées à 8 bits utilisée dans le réseau neuronal représenté sur la Figure I la Figure 4 représente une bascule D à 8 bits utilisée dans le réseau neuronal représenté sur la Figure 1; la Figure 5 représente un décodeur de colonne 5 par 32 utilisé sur la Figure 1 ; et la Figure 6 représente un décodeur de rangée 6 par 64 utilisé dans le réseau neuronal représenté sur la Figure 1. En référence à la Figure 1, le réseau neuronal à couches multiples programmable comporte une mémoire 10 pour mémoriser le poids d'un résultat appris et transmettre des poids mémorisés (D0-D8) à chaque synapse, un générateur d'adresses 20 pour générer des adresses correspondantes (A0-A10) de la mémoire 10, un décodeur d'adresses de colonne 6 par 64 30 pour recevoir et décoder le signal de sortie du générateur d'adresses 20 pour générer un signal d'adresse de colonne, un décodeur d'adresses de rangée 5 par 32 40 pour recevoir et décoder le signal de sortie du générateur d'adresses 20 pour générer un signal d'adresse de rangée, un réseau neuronal à couches multiples 50 constitué d'un réseau de synapses qui sont sélectionnées par le décodeur d'adresses de rangée 30 et le décodeur d'adresses de colonne 40 et possèdent les poids mémorisés dans la mémoire 10 et des neurones 60 pour délivrer les valeurs de sortie des synapses. Les synapses possèdent chacune une porte NON OU 70 pour recevoir les signaux de sortie du décodeur d'adresses de colonne 6 par 64 30 et du décodeur d'adresses de rangée 5 par 32 40, une bascule D 80 actionnée en réponse au signal de sortie de la porte NON OU 70 et pour mémoriser les poids mémorisés dans la mémoire 10 (le bit de plus fort poids Q8 de la bascule D 80 étant un bit de signe pour mémoriser le signe des données et les bits restants étant désignés par bits d'amplitude), des portes NON ET 90 pour délivrer le signal mémorisé dans la bascule D 80 en réponse au cas lorsque des données sont entrées, un signal de déclenchement et le bit de signe sont chacun "0", des portes ET 100 pour délivrer le signal mémorisé dans la bascule D 80 en réponse au cas d'entrée de données, le signal de déclenchement et le signal de bit de signe sont chacun "1", un transistor PMOS de synapse 110 déclenché par le signal de sortie des portes NON ET 90, et un transistor NMOS de synapse 120 déclenché par le signal de sortie des portes ET 100. La configuration qui précède est apte à relier des réseaux neuronaux à couches multiples à 8 bits multiples ainsi que des réseaux neuronaux uniques. De plus, lorsque le circuit est intégré sur une puce, d'autres circuits (en plus de la puce de circuit neuronal à couches multiples) pourraient être prévus extérieurement. Le réseau neuronal à couches multiples de la présente invention fonctionne comme suit. Première étape : des poids obtenus par apprentissage sont mémorisés dans la mémoire 10 correspondant à l'adresse sélectionnée par le générateur d'adresses 20 en réponse à un signal de sélection de puce et un signal de déclenchement d'écriture. Seconde étape : les données mémorisées dans la mémoire 10 répondant à un signal de déclenchement de lecture et correspondant à l'adresse sélectionnée par le signal de sortie du générateur d'adresses 20, est verrouillé dans la bascule D 80. Simultanément, le signal de sortie du générateur d'adresses 20 est appliqué au décodeur d'adresses de rangée 40 et au décodeur d'adresses de colonne 30, et est ensuite décodé pour sélectionner une synapse. Troisième étape : si le signal de sortie du décodeur d'adresses de rangée 40 et du décodeur d'adresses de colonne 30 est présent, les données mémorisées dans la bascule D 80 sont délivrées. Simultanément, les portes NON ET 90 et les portes ET 100 reçoivent des données d'entrée et un signal de déclenchement pour valider leurs sorties de sorte que le transistor PMOS de synapse 110 et le transistor NMOS de synapse 120 peuvent avoir les poids appropriés. De la sorte, le réseau neuronal à couches multiples programmable est réalisé. En référence à la Figure 2, dans un transistor NMOS de synapse, les électrodes de drain du transistor PMOS de synapse (sPMOS) et du transistor NMOS de synapse (sNMOS) qui ont respectivement les amplitudes de 1, 2, 4, 8, 16, 32, 64 et 128, sont reliées en commun. L'électrode de source de chaque transistor PMOS de synapse est reliée à la tension d'alimentation (Vcc) et son électrode de grille reçoit un premier signal d'entrée IlI8. L'électrode de source du transistor NMOS de synapse est reliée à la masse et son électrode de porte reçoit un second signal d'entrée I 1T'8. Le signal de sortie des électrodes de drain est délivré par l'intermédiaire d'un noeud commun à travers un neurone 150. En référence à la Figure 3, dans les huit portes NON ET à quatre entrées pour recevoir des données à 8 bits en réponse à un signal d'entrée IN, un signal de déclenchement EN et des données de bit de signe, étant donné que le signal d'entrée IN, le signal de déclenchement EN et les données de bit de signe sont à des niveaux logiques "bas", lorsque les données appliquées aux portes NON ET est un niveau logique "bas", les données de sortie sont à un niveau "haut", et lorsque les données appliquées aux portes NON ET sont à un niveau logique "haut", les données de sortie se trouvent à un niveau logique "bas". En référence à la Figure 4, chaque bit de la bascule D à 8 bits comporte un inverseur 200 pour inverser un signal de commande, un inverseur 201 pour inverser le signal de sortie de l'inverseur 200, des portes CMOS 202 commandées par les signaux de sortie des inverseurs 200 et 201 et pour transmettre un signal d'entrée (D), des portes NON ET 203 pour recevoir le signal de sortie des portes de transmission CMOS 202 et un signal de restauration (CD), des inverseurs 204 pour inverser le signal de sortie des portes NON ET 203, et des portes de transmission CMOS 205 pour transmettre le signal de sortie des portes de transmission CMOS 202 en réponse au signal de sortie des inverseurs 200 et 201, de manière à verrouiller et à délivrer un signal (QN) en réponse aux données d'entrée. En référence à la Figure 5, le décodeur d'adresses de colonne 5 par 32 est composé de 5 portes NON ET d'entrée pour recevoir cinq signaux d'adresses (A0-A4) et cinq signaux d'adresse inversés et valider uniquement l'un de ceux-ci pour le délivrer. En référence à la Figure 6, le décodeur d'adresses de rangée 6 par 64 est composé de portes NON ET à 6 entrées pour recevoir six signaux d'adresse (A5-A10) et six signaux d'adresse inversés et valider uniquement l'un de ceux-ci pour le délivrer. Pour la bascule et les décodeurs, des puces d'utilisation générale peuvent être utilisées. Selon des caractéristiques particulières de l'invention - les transistors PMOS et NMOS de synapse (110 et respectivement 120) sont composés de transistors PMOS et NMOS multiples qui rendent les poids positifs et respectivement négatifs, - les transistors PMOS et NMOS de synapse possédent une pluralité de grilles de longueurs différentes formées sur un transistor. Par conséquent, la présente invention possède certains avantages : en premier lieu, la présente invention peut être de préférence utilisée dans un circuit de reconnaissance de la voix ou de reconnaissance de caractère ; et en second lieu, la présente invention peut être programmée pour accomplir une fonction d'entrée/sortie envisagée quelconque. REVENDICATIONS 1. Réseau neuronal à couches multiples programmable, caractérisé en ce qu'il comporte des moyens de mémorisation de poids pour mémoriser le poids de chaque synapse pour exécuter une fonction envisagée des moyens d'interface (30, 40) pour transmettre la valeur de poids mémorisée dans lesdits moyens de mémorisation à chaque synapse ; et un réseau neuronal à couches multiples (50) programmé pour recevoir le poids desdits moyens de mémorisation de poids et pour délivrer un signal de sortie voulu. 2. Réseau neuronal à ocuches multiples selon la revendication 1, caractérisé en ce que lesdits moyens de mémoire comportent un compteur de désignation d'adresses (20) pour désigner les adresses desdits moyens de mémoire ; et une mémoire de lecture/écriture (10) pour recevoir le poids d'entrée de l'extérieur conformément à l'adresse désignée par ledit compteur. 3. Réseau neuronal à couches multiples selon. la revendication 1, caractérisé en ce que lesdits moyens d'interface (30 et 40) comportent un décodeur de désignation d'adresses de rangée (40) pour désigner des adresses de rangée dudit réseau neuronal à couches multiples ; et un décodeur de désignation d'adresses de colonne (30) pour désigner des adresses de colonne dudit réseau neuronal à couches multiples. 4. Réseau neuronal à couches multiples programmable selon la revendication 3, caractérisé en ce qu'une cellule correspondant à chaque adresse dudit réseau neuronal à cou ches multiples comporte un transistor PMOS de synapse (110) composé de transistors PMOS multiples qui rendent positifs les poids un transistor NMOS de synapse (120) composé de transistors NMOS multiples qui rendent négatifs les poids une bascule (80) pour recevoir les données de poids mémorisées dans ladite mémoire conformément à une horloge appliquée répondant au signal de sortie desdits moyens d'interface (30 et 40) ; et des portes (90 et 100) pour transmettre les poids mémorisés dans ladite bascule audit transistor PMOS de synapse et audit transistor NMOS de synapse en réponse à un signal de déclenchement extérieur et à des données d'entrée. 5. Réseau neuronal à couches multiples programmable selon la revendication 4, caractérisé en ce que ledit transistor PMOS de synapse possède une pluralité de grilles de longueurs différentes formées sur un transistor. 6. Réseau neuronal à couches multiples programmable selon la revendication 4, caractérisé en ce que ledit transistor NMOS de synapse possède une pluralité de grilles de longueurs différentes formées sur un transistor.