Brevet FR2695232A1 — publié le 19940304

Réseau neuronal à couches multiples à auto-apprentissage et son procédé d'apprentissage. La présente invention a trait à un réseau neuronal à couches multiples, et plus particulièrement à un réseau neuronal à couches multiples à auto-apprentissage et à son procédé d'apprentissage. Un réseau neuronal à couches multiples à appren- tissage effectue des fonctions désirées grâce au fait qu'un utilisateur mémorise les valeurs de poids de la synapse respective dans une mémoire extérieure pour effectuer un apprentissage En d'autres termes, l'utilisateur mémorise différentes valeurs de poids dans la mémoire selon des fonctions d'entrée et de sortie à utiliser pour permettre à la synapse respective d'avoir les différentes valeurs de poids correspondantes, accomplissant ainsi des fonctions désirées Ainsi, il est incommode que l'utilisateur mémorise les valeurs de poids présentées par la synapse du réseau neuronal à couches multiples dans la mémoire de manière à accomplir les fonctions désirées. Un buts de la présente invention est de proposer un réseau neuronal à couches multiples à auto-apprentissage dans lequel un utilisateur n'a pas besoin d'entrer des valeurs de poids apprises. Un autre but de la présente invention est de proposer un procédé d'apprentissage dans un réseau neuronal à couches multiples à auto-apprentissage. Selon la présente invention, il est prévu un réseau neuronal à couches multiples à auto-apprentissage, caractérisé en ce que des données d'entrée à N bits et des données de sortie à M bits désirées sont reçues, une valeur de poids de chaque synapse est réglée de manière à produire des données de sortie correspondant aux données d'entrée, et un auto-apprentissage est accompli tout en passant à une couche suivante. La présente invention a également pour objet un procédé d'apprentissage dans un réseau neuronal à couches multiples à auto-apprentissage comportant les étapes consistant à: (a) initialiser une valeur de poids de chaque synapse (b) recevoir des données d'entrée et des données de sortie désirées correspondant aux données d'entrée, (c) effectuer un apprentissage en recevant les données d'entrée; (d) comparer des données de sortie qui résultent de l'aprentissage du réseau neuronal à couches multiples aux données de sortie désirées, en générant ainsi une valeur d'erreur en cas de non concordance et en réglant une valeur de poids de chaque synapse, et en achevant l'apprentissage en cas de concordance; et (e) passer à une couche suivante pour répéter les étapes (b) à (d) lorsqu'un résultat désiré n'est pas obtenu même si l'apprentissage est effectué de façon répétitive un nombre prédéterminé de fois. La Figure 1 est un schéma synoptique d'un réseau neuronal à couches multiples à auto-apprentissage selon la présente invention. La Figure 2 est un schéma de circuit détaillé d'un mode de réalisation d'un groupe de synapses et d'un détecteur d'erreurs représentés sur la Figure 1. La Figure 3 est un organigramme explicatif d'un fonctionnement du circuit représenté sur les Figures 1 et 2. Un algorithme d'apprentissage sera tout d'abord décrit ci-après, avant d'expliquer un réseau neuronal à couches multiples à auto-apprentissage de la présente invention en référence aux dessins annexés. L'algorithme d'apprentissage de la présente invention doit satisfaire aux conditions suivantes. Une règle de perceptron modifiée est utilisée dans l'apprentissage du réseau neuronal Dans cette règle, une valeur de poids n'est pas successivement modifiée et une constante d'apprentissage est un. Une fonction d'activation est réalisée par un tampon, qui est un séparateur non programmable monopolaire non linéaire dont une sortie est un si le réseau est égal ou supérieur à zéro, tandis que la sortie est zéro si le réseau est inférieur à zéro Dans l'algorithme d'apprentis- sage de la présente invention, la fonction d'activation doit être proche d'un séparateur non programmable idéal. L'algorithme de la présente invention comporte les étapes suivantes. 1 Une valeur de poids de chaque synapse est initialisée à zéro Les nombres de configurations et de répétitions sont fixes. 2 Des données d'entrée et des données de sortie désirées correspondant aux données d'entrée sont appliquées et une sortie est calculée comme suit OUTPUT = sgn (W, Y) o W représente une valeur de poids, et Y représente une donnée d'entrée. 3 Les données de sortie qui ont été calculées au cours de l'étape 2 sont comparées à une donnée de sortie désirée, pour générer une valeur d'erreur comme suit: ERROR = d o o d représente une donnée de sortie désirée, et o représente les données de sortie calculées. 4 Si une erreur est générée, la valeur de poids est corrigée comme suit: W(t + 1) = W(t) + Y(d 0) o W représente une fonction de poids, et t représente une variable du temps Si l'entrée est un, la valeur de poids augmente ou diminue de un Si l'entrée n'est pas un, la valeur de poids n'est pas corrigée Les valeurs corrigées des valeurs de poids sont temporairement mémorisées durant le calcul de toutes les configurations d'entrée et ensuite entièrement corrigées. 5 Les étapes 2 à 4 sont répétées par rapport à toutes les entrées jusqu'à ce que l'apprentissage soit réussi Si l'apprentissage n'est pas réussi dans une première couche, l'étape 6 est effectuée. 6 La couche augmente pour effectuer les étapes 2 à 5. Le circuit selon la présente invention utilisant l'algorithme précité sera décrit ci-après. La Figure 1 est un schéma synoptique d'un réseau neuronal à couches multiples à auto-apprentissage selon la présente invention. Sur la Figure 1, un réseau neuronal 10 de première couche comporte des premier à m-ième groupes de synapses i, 12,, lm qui reçoit des signaux d'entrée IN 1, IN 2,, I Nn, et effectue un apprentissage selon les signaux d'entrée IN 1, IN 2,, I Nn, de manière à produire des signaux de sortie OUT 1, OUT 2,, OU Tm, et des premier à m-ième détecteurs d'erreurs 21, 22,, 2 m qui reçoivent les signaux de sortie OU Ti, OUT 2,, OU Tm du premier à m- ième groupes de synapses Il, I 2,, Im, et des signaux de sortie désirés DEOUT 1, DEOUT 2,, DEOU Tm pour détecter des erreurs et génèrent des signaux pour augmenter ou diminuer des valeurs de poids en réponse aux signaux d'erreurs détectés Un réseau neuronal de seconde couche 20 comporte des premier à m-ième groupes de synapses 31, 32, 3 m qui reçoit les signaux d'entrée I Ni, IN 2, I Nn, (m+l)-ième à ( 2 m)-ième groupes de synapses 41, 42,, 4 m qui sont connectés en série aux premier à m-ième groupes de synapses 31, 32,, 3 m et qui reçoit les signaux de sortie OU Ti, OUT 2,, OU Tm des premier à m-ième groupes de synapses li, 12,, lm, et des premier à m-ième détecteurs d'erreurs 51, 52,, 5 m qui reçoit les signaux de sortie OU Ti, OUT 2,, OU Tm des (m+l)-ième à ( 2 m)-ième groupes de synapses 4 i, 42,, 4 m et des signaux de sortie désirés DEOU Ti, DEOUT 2,, DEOU Tm pour détecter des erreurs, et ensuite génère des signaux pour augmenter ou diminuer des valeurs de poids en réponse aux signaux d'erreurs détectés. Egalement, en référence à la Figure 1, un nombre prédéterminé de couches dont chacune présente la même structure que celle du réseau neuronal de seconde couche 20 forme un réseau neuronal à couches multiples 1000, con- jointement avec les réseaux neuronaux de première couche et de seconde couche 10 et 20. Egalement, en référence à la Figure 1, un contrôleur 2000, pour commander le réseau neuronal à couches multiples , comporte un compteur de nombre de répétitions 30 pour apprendre de façon répétitive des configurations qui sont appliquées au réseau neuronal à couches multiples 100, un nombre prédéterminé de fois, un comparateur 40 qui compare le nombre de répétitions du compteur de nombre de répétitions 30 à un nombre de répétitions maximum d'entrée et ensuite remet à zéro le compteur de nombre de répétitions 30 pour effectuer un apprentissage dans une couche suivante lorsqu'un apprentissage répétitif est effectué selon un nombre de répétitions maximum d'entrée, un compteur de configurations 50 pour compter N éléments de configuration constituant une configuration lorsque le signal de sortie du comparateur 40 indique que l'appren- tissage n'est pas accompli par le nombre de répétitions maximum d'entrée, des moyens de mémoire 60 pour délivrer les configurations d'entrée au réseau neuronal à couches multiples 100 en réponse aux signaux de sortie du compteur de configurations 50, un compteur d'erreurs 70 pour compter combien d'erreurs sont générées en résultat de l'apprentis- sage des N éléments de configuration dans un réseau neuronal à couches multiples 100 et achevant l'apprentissage lorsque l'erreur n'est pas générée, et un compteur de couches 80 qui reçoit le signal de sortie du compteur de nombre de répétitions 30 et le signal de sortie du compteur d'erreurs 70 et augmente d'une couche pour poursuivre l'apprentissage lorsque l'erreur est générée même si l'apprentissage est effectué par le nombre de répétitions maximum d'entrée. Dans la structure de la Figure 1, les compteurs peuvent être constitués par un nombre prédéterminé de bascules, les moyens de mémoire sous la forme d'un dispositif de mémoire et le comparateur sous la forme d'un nombre prédéterminé de portes OU exclusif Egalement, la structure de la Figure 1 peut être réalisée dans une seule puce, permettant ainsi un apprentissage dans une seule puce. Le réseau neuronal à couches multiples à auto- apprentissage peut, par exemple, effectuer une opération d'une porte OU exclusif Dans ce cas, si quatre configura- tions d'entrée à deux bits et quatre configurations de sortie à un bit, et un nombre de répétitions sont fixés par l'utilisateur, le réseau neuronal à couches multiples à auto-apprentissage effectue un auto- apprentissage lui-même pour ainsi constituer un réseau neuronal pour effectuer une opération OU exclusif. La Figure 2 est un schéma de circuit détaillé d'un mode de réalisation d'un groupe de synapses et d'un détecteur d'erreurs représentés sur la Figure 1. Sur la Figure 2, un groupe de synapses 1 comporte des transistors PMOS de synapse 100 possédant des valeurs de poids différentes respectives, dont l'électrode de source de chacun est reliée à une tension d'alimentation et dont l'électrode de grille est reliée à une borne d'entrée de signal de commande, fonctionnant ainsi en tant que transis- tors NMOS de synapse excitateurs 101 dont l'électrode de drain de chacun est reliée à chaque électrode de drain de transistors PMOS de synapse 100, l'électrode de source est reliée à une tension de masse et l'électrode de grille est reliée à une borne d'entrée de signal de commande, fonctionnant ainsi en tant que portes NON ET de blocage 102 qui reçoivent un signal d'entrée IN et un signal de déclenchement EN et génèrent des premiers signaux de commande pour commander les électrodes de grille respectives de transistor PMOS de synapse 100, des portes ET 103 qui reçoivent le signal d'entrée IN et le signal de déclenche ment EN et génèrent des seconds signaux de commande pour commander les électrodes de grille respectives des transis tors NMOS de synapse 101, un premier compteur/décompteur 104 qui applique les signaux de sortie de celui-ci à des bornes d'entrée de portes NON ET respectives 102 pour aug- menter ou diminuer les valeurs de poids respectives des transistors NMOS de synapse 101. Le détecteur d'erreurs 2 comporte une porte ET 106 qui reçoit le signal d'entrée IN, les signaux de sortie A et B du compteur d'erreurs 70 et du compteur de nombre de répétitions 30, et une valeur d'erreur C générée lorsque le signal de sortie OU Tm des groupes de synapses n'est pas identique au signal de sortie désiré DEOU Tm en comparant le premier au second, de manière à être multiplié logique- ment et une porte ET 106 reçoit le signal de sortie désiré DEOU Tm et le signal de sortie de la porte ET 6, de manière à être logiquement multiplié, un inverseur 108 pour inverser le signal de sortie désiré, une porte ET 109 qui reçoit les signaux de sortie de l'inverseur 108 et de la porte ET 106, de manière à être multiplié logiquement, une porte NON OU 110 qui reçoit le bit de plus fort poids et le bit de plus faible poids du premier compteur/décompteur 104 de manière à être traité logiquement, une porte NON OU 112 qui reçoit le bit de plus fort poids et le bit de plus faible poids du second compteur/décompteur 105 de manière à être traité logiquement, une porte ET 114 qui reçoit le signal de sortie d'un inverseur 111 pour inverser le signal de sortie de la porte NON OU 110 et le signal de sortie de la porte ET 109 pour générer un signal de décomptage pour le premier compteur/décompteur 104, une porte ET 115 qui reçoit les signaux de sortie de la porte ET 107 et de la porte NON OU 112 pour générer un signal de comptage pour le premier compteur/décompteur 104, une porte ET 116 qui reçoit les signaux de sortie de la porte ET 109 et de la porte NON OU 110 pour générer un signal de comptage pour le second compteur/décompteur 105 et une porte ET 117 qui reçoit les signaux de sortie d'un inverseur 113 et d'une porte ET 107 pour générer un signal de décomptage pour le second compteur/décompteur 115. La Figure 3 est un organigramme explicatif du fonctionnement du circuit représenté sur les Figures 1 et 2. Au cours de l'étape 200, le système est initialisé Au cours de cette étape, les valeurs de poids de la synapse sont zéro, les configurations d'entrée et les confi- gurations de sortie ayant les m éléments de configuration, et le nombre de répétitions maximum d'entrée sont donnés. Au cours de l'étape 210, le compteur du nombre de répétitions 30 compte le nombre de répétitions et le comparateur 40 compare la répétition maximum d'entrée au signal de sortie du compteur de nombre de répétitions 30, pour vérifier s'ils sont tous deux identiques entre eux. Ensuite, si le signal de sortie du comparateur 40 indique que les deux signaux comparés ne sont pas identiques, le compteur de configurations 50 compte le nombre de configu- rations. Au cours de l'étape 220, les m éléments de confi- guration sont lus des moyens de mémoire 60 en succession en réponse au signal de sortie du compteur de configurations 50, de manière à être délivrés au réseau neuronal à couches multiples. Au cours de l'étape 230, le réseau neuronal de première couche reçoit le signal de sortie des moyens de mémoire pour effectuer un apprentissage. Au cours de l'étape 240, le détecteur d'erreur détecte si la valeur d'erreur obtenue en retranchant la valeur de configuration de sortie de la valeur de configuration de sortie désirée est égale à, supérieure à ou inférieure à zéro. Lorsque la valeur d'erreur est supérieure à zéro au cours de l'étape 240, l'apprentissage est effectué tandis que la valeur de poids du réseau neuronal de première couche est diminuée au cours de l'étape 250. Lorsque la valeur d'erreur est inférieure à zéro au cours de l'étape 240, l'apprentissage est effectué tandis que la valeur de poids du réseau neuronal de première couche est augmentée au cours de l'étape 260. Lorsque la valeur d'erreur est zéro au cours de l'étape 240, on évalue si le compteur de configurations 50 compte le nombre total des configurations au cours de l'étape 270. Si le compteur de configurations 50 ne compte pas le nombre total des configurations au cours de l'étape 270, le système passe à l'étape 210 pour compter encore le nombre des configurations. Lorsque le nombre total des configurations a été compté au cours de l'étape 270, on évalue si l'erreur totale est zéro après que toutes les configurations ont été apprises au cours de l'étape 280. Lorsque l'erreur totale n'est pas zéro au cours de l'étape 280, on évalue si le compteur du nombre de répé- titions 30 compte le nombre de répétitions maximum d'entrée au cours de l'étape 290. Lorsque le nombre de répétitions maximum d'entrée n'est pas compté au cours de l'étape 290, le nombre de répétitions est à nouveau compté au cours de l'étape 300. Lorsque le nombre de répétitions maximum d'entrée est compté au cours de l'étape 290, le système déplace l l'apprentissage du réseau neuronal de première couche au second réseau neuronal au cours des étapes 210 à 280, pour répéter les étapes 210 à 280. Lorsque la valeur d'erreur est zéro au cours de l'étape 280, l'apprentissage est achevé au cours de l'étape 320. Le réseau neuronal selon la présente invention peut être appliqué à une technologie dans le domaine de la reconnaissance telle que la reconnaissance de signes, la reconnaissance vocale. Le réseau neuronal à couches multiples à auto- apprentissage selon la présente invention peut effectuer un autoapprentissage dans une puce si l'utilisateur introduit uniquement les configurations d'entrée, les confi- gurations de sortie et le nombre de répétitions, constituant ainsi le réseau neuronal de manière à effectuer une fonction désirée. R E V E N D I C A T I O N S 1 Réseau neuronal à couches multiples à auto-appren- tissage, caractérisé en ce que des données d'entrée à N bits et des données de sortie désirées à M bits sont reçues, une valeur de poids de chaque synapse est réglée de manière à produire des données de sortie correspondant aux données d'entrée, et un auto-apprentissage est effectué tout en progressant à une couche suivante. 2 Réseau neuronal à couches multiples à auto-appren- tissage selon la revendication l,caractérisé en ce qu'il comporte: un premier réseau neuronal ( 10) qui reçoit lesdites données d'entrée à N bits correspondant aux bits respectifs desdites données de sortie à M bits pour effectuer un apprentissage et possède des groupes de synapse ( 11, 22,, lm) en nombre égal au nombre desdits bits de données d'entrée pour délivrer le résultat de l'apprentissage, des seconds à N-ièmes réseaux neuronaux ( 20) qui reçoivent lesdites données d'entrée à N bits et les signaux de sortie dudit premier réseau neuronal pour effectuer un apprentissage et possède des groupes de synapse ( 41, 42, , 4 mn) en nombre égal au nombre desdits bits de données de sortie correspondant auxdits bits de données d'entrée pour délivrer le résultat de l'apprentissage, des détecteurs d'erreurs ( 21, 22,, 2 m) qui reçoivent les signaux de sortie des groupes de synapse respectifs et évaluent si oui ou non le signal de sortie reçu est égal à un signal de sortie désiré, et qui sont relié auxdits groupes de synapse respectifs pour augmenter ou diminuer les valeurs de poids desdits groupes de synapse si le signal de sortie reçu n'est pas égal au signal de sortie désiré; et des moyens de commande ( 2000) qui délivrent les données d'entrée auxdits premier à Nièmes réseaux neuronaux pour répéter l'apprentissage d'un nombre de répétitions maximum d'entrée. 3 Réseau neuronal à couches multiples à auto-appren- tissage selon la revendication 1, caractérisé en ce qu'il peut être appris dans une puce. 4 Réseau neuronal à couches multiples à auto-appren- tissage selon la revendication 2, caractérisé en ce que lesdits moyens de commande ( 2000) comportent: un compteur de nombre de répétitions ( 30) pour compter le nombre de répétitions, un comparateur ( 40) compare si oui ou non le signal de sortie dudit compteur de nombre de répétitions est égal audit nombre de répétitions maximum d'entrée; un compteur de configurations ( 50) pour compter des configurations si un signal est délivré qui indique que le signal de sortie dudit comparateur n'est pas le nombre de répétitions maximum d'entrée; des moyens de mémoire ( 60) dans lesquels des configurations d'entrée sont mémorisées pour délivrer les configurations d'entrée correspondant au signal de sortie dudit compteur de configurations; un compteur d'erreurs ( 70) pour compter des erreurs lorsqu'au moins un parmi les groupes de synapse dudit réseau neuronal qui effectue ledit apprentissage génère les erreurs; et un compteur de couches ( 80) pour passer à une couche suivante pour effectuer un apprentissage lorsque le signal de sortie dudit compteur d'erreurs est un signal indiquant que l'erreur est générée et que le signal de sortie dudit compteur de nombre de répétitions est ledit nombre de répétitions maximum d'entrée. Réseau neuronal à couches multiples à auto-appren- tissage selon la revendication 2, caractérisé en ce qu'il comporte: des transistors MOS de synapse d'excitation ( 100) qui jouent le rôle d'excitateurs ayant un nombre prédéterminé de valeurs de poids différentes; et des transistors MOS de synapse de blocage ( 101) qui sont reliés auxdits transistors MOS de synapse d'exci- tation, et qui jouent le rôle de blocage ayant un nombre prédéterminé de valeurs de poids différentes. 6 Procédé d'apprentissage dans un réseau neuronal à couches multiples à auto-apprentissage caractérisé en ce que des données d'entrée à N bits et des données de sortie désirées à M bits sont reçues, une valeur de poids de chaque synapse est réglée de manière à délivrer des données de sortie correspondant aux données d'entrée, et un auto- apprentissage est effectué tout en passant à une couche suivante, ledit procédé comportant les étapes consistant : (a) initialiser une valeur de poids de chaque synapse (b) recevoir des données d'entrée et des données de sortie désirées correspondant aux données d'entrée; (c) effectuer un apprentissage en recevant les données d'entrée; (d) comparer les données de sortie qui résultent de l'apprentissage du réseau neuronal à couches multiples aux données de sortie désirées, en générant ainsi une valeur d'erreur en cas de non concordance et en réglant une valeur de poids de chaque synapse, et en achevant l'apprentissage en cas de concordance; et (e) passer à une couche suivante pour répéter les étapes (b) à (d) lorsqu'un résultat désiré n'est pas obtenu même lorsque l'apprentissage est effectué de façon répétitive d'un nombre prédéterminé de fois.