FR 2685513 A1 19930625 FR 9115804 A 19911219 Méthode et dispositif de circuits pour transformer un signal numérique en un autre signal numérique, selon une fonction non linéaire et réseau neuronal utilisant une telle méthode. La présente invention concerne une méthode et un dispositif de circuits pour transformer un signal numérique en un autre signal numérique, selon une fonction non linéaire, particulièrement appropriée pour être utilisée de 5 façon répétée dans la réalisation de structures régulières, telles que des réseaux neuronaux. Comme il est connu, le problème de l'application d'une fonction non linéaire à un signal numérique, afin de le transformer en un autre signal ayant des caractéristiques10 différentes, se présente dans divers domaines des techniques, de l'électronique, et des solutions ont été trouvées, dépendant du domaine particulier, ainsi que d'exigences relatives à la vitesse, la précision ou la simplicité.15 Une technique connue consiste à utiliser un microcalculateur qui exécute la fonction désirée par voie analytique en appliquant un programme Une telle solution est très précise, demande peu de mémoire (pour l'enregistrement de la fonction elle même), mais, lorsque20 cette fonction varie, cela peut demander des structures d'exécution et de calcul compliquées et coûter du temps. Des méthodes basées sur l'utilisation de ce que l'on appellera des tables de conversion contenant des valeurs numériques de la fonction sont largement utilisées,25 spécialement lorsque la vitesse et la précision sont souhaitées en même temps Elles sont également répandues et largement utilisées dans les cas o le parcours analytique n'est pas défini, par exemple dans les systèmes électroniques de commande de vitesse, ou est trop complexe, par exemple dans les dispositifs de calcul de résidus ou de transformée de Fourier rapide (FFT): De l'article "High-resolution digital sinewave génération" paru dans ELECTRONIC LETTERS du 3 février 1983, vol 19, no 3, on peut conclure qu'il est une notion répandue que l'utilisation de tables de conversion rend possible d'atteindre un bon niveau de précision au seul coût de l'utilisation de mémoires de très grandes dimensions. 5 Une réduction des dimensions des tables de conversion, ainsi qu'il est décrit dans l'article sus-mentionné, peut- être obtenue par interpolation, par exemple au moyen de fonctions polynomiles, entre des valeurs qui y sont enregistrées, afin de calculer des valeurs intermédiaires:10 cela conduit malheureusement à des dépenses importantes en temps, calculs et structures. Lorsque la fonction non linéaire doit être appliquée à un signal variant dans le temps d'une façon continue et lente, cela peut être obtenue en enregistrant, dans la table15 de conversion, les différences entre des valeurs adjacentes de celle-ci. La solution proposée dans l'article sus-mentionné, basée sur le temps s'écoulant au cours des transitions entre niveaux adjacents, se réfère au même cas.20 La présente invention a pour objet une méthode pour transformer un signal numérique en un autre signal numérique, conformément à une fonction non linéaire, qui assure un bon niveau de précision, qui convient à une réalisation simple, rapide et peu onéreuse en ce qui25 concerne la mémoire nécessaire, et qui est utilisable à la fois pour des signaux électriques analogiques et numériques, ainsi qu'un dispositif de circuits appliquant cette méthode, sans souffrir des inconvénients de l'art antérieur. Cet objet est atteint par la méthode spécifiée dans la revendication 1 et par le dispositif de circuits spécifié dans la revendication 5; un réseau neuronal appliquant cette méthode est défini dans la revendication 11. Des caractéristiques avantageuses de l'invention sont énoncées dans les revendications dépendantes. L'invention est basée sur l'utilisation d'une table de conversion et sur l'idée d'y inclure des valeurs qui sont très distantes les unes des autres, ce qui réduit les dimensions de la table de conversion, et de calculer des valeurs intermédiaires en utilisant la valeur tabulée la plus proche et en ajoutant des éléments de correction,5 simples à calculer, dépendant de données contenues dans la table de conversion elle-même. L'invention sera décrite plus en détail dans ce qui suit en se référant aux dessins annexés dans lequel: la figure 1 représente un diagramme-bloc d'un dispositif de circuits agencé pour mettre en oeuvre la méthode de la présente invention, la figure 2 représente une couche d'un réseau neuronal dont les éléments utilisent ladite méthode pour transformer des signaux d'entrée.15 Le dispositif de circuits représenté à la figure 1, conçu pour transformer un signal numérique I en un autre signal numérique O conformément à une fonction non linéaire f, comprend les blocs suivants: un processeur PR arrangé pour lire le signal numérique I, pour le traiter selon la20 méthode de la présente invention, qui sera décrite ci-après, et pour engendrer en conséquence le signal numérique O; une mémoire MEM conçue pour contenir des valeurs numériques de paramètres caractéristiques de la fonction non linéaire f et une table de conversion LUT conçue pour contenir des valeurs25 numériques de la fonction non linéaire f et sur l'utilisation de laquelle est basée la méthode de la présente invention, de telles valeurs numériques sont lues par le processeur PR afin d'appliquer ladite méthode. Avant de décrire plus en détail la mise en oeuvre par circuits de ladite méthode, on va considérer son application en relation avec la fonction non linéaire f appelée "sigmoïde" O = f(I) = 1/( 1 +exp(-I)), étant donné l'application possible de l'invention dans le domaine des réseaux neuronaux; la méthode peut toutefois être étendue à toute fonction continue qui possède une dérivée première continue. La méthode utilise une table de conversion LUT contenant des valeurs numériques O j, j 6 O P, de ladite fonction f, prises à une distance régulière Delta, correspondant à des valeurs numériques Ij, j E O P, d'une variable indépendante La valeur P est la taille exprimée en nombre d'emplacements, de la table conversion, et elle est égale à 2 à la puissance ni Les valeurs numériques Oj de la fonction consistent en mots de N 2 bits. Si l'on suppose qu'une valeur numérique particulière. v I est lue par le processeur PR à un certain moment, l'objectif de la méthode est d'obtenir une valeur numérique so aussi proche que possible v O = f(v I) La valeur numérique15 s O coïncide avec v O seulement lorsque v I coïncide avec une valeur numérique tabulée Ij, et dans ce cas s O = v O = Oj. Dans un cas plus général o cela ne se produit pas, la méthode se déroule comme explicité ci-après. La valeur numérique n I correspond à un premier mots de N 3 bits A partir de ce premier mot, deux autres mots sont extraits: un deuxième mot j constitué par les ni bits les plus significatifs et un troisième mot d I constitué par les n 3-nl bits les moins significatifs restants. La table de conversion est adressée à l'aide du deuxième mot j et trois valeurs consécutives Oj, Oj+i, Oj+ 2 correspondant aux emplacements j j+l, j+ 2 en sont extraites. Ensuite, deux éléments de correction Ci et C 2 sont calculés selon les équations o O j+I Cl = d I et Delta C 2 = F * ( O 20 + o j -2 j+l j dans lesquelles Delta est égal à 2 à la puissance (n 3-nl). En relation avec le degré de précision désiré et la complexité des calculs, le facteur F peut être calculée selon l'une des équations suivantes F = d I * K/L F = M/N; La deuxième équation étant évidemment plus simple, mais moins précise. Les valeurs K et L sont expérimentales et varient comme varient la fonction non linéaire f et les nombres ni, N 2 et N 3 Les valeurs M et N sont aussi de ce type mais ne coïncident généralement pas avec les valeurs K et L. La valeur estimée so (comme indiqué, l'erreur est nulle dans de rares cas seulement) de la fonction non linéaire f, correspondant à la valeur v I, est calculée15 comme: s O = Oi + Cl C 2. Il a été indiqué que les valeurs K, L, M et N sont expérimentales; cela doit être entendu en ce que, avant d'appliquer la méthode, on a calculé, par des calculs20 analytiques ou par simulation à l'aide d'un calculateur, les valeurs de K, L, M et N qui minimisent l'erreur E se produisant du fait de l'application de méthode pour ladite fonction et représentée par: E = s O f(v I). On peut utiliser par exemple la technique bien connue de l'erreur quadratique moyenne. On se référera maintenant au dispositif de circuits représenté à la figure 1. Les opérations de calcul associés à la méthode décrite sont effectuées par le processeur PR qui lit, en tant que de besoin, les valeurs K, L, M et N dans une mémoire MEM et les valeurs tabulées Oj dans la table de conversion LUT Un tel processeur peut être réalisé, en fonction des exigences de temps et de coût, soit par un microprocesseur commandé par35 une mémoire de programme et une mémoire de données, ou par des circuits de logique distribuée. Les deux alternatives tirent avantage, en termes de temps et de complexité, de ce que, le choix des valeurs K, L, M et N et Delta étant relativement libre, les opérations mathématiques, plus onéreuses, sont réduites à deux 5 multiplications, l'une pour calculer le premier coefficient de correction et l'autre pour le second Le processeur PR doit évidemment effectuer aussi nombre d'additions, soustractions et décalages, mais ces opérations n'ont qu'un poids insignifiant comparées aux multiplications.10 Le processeur PR peut être soit du type fonctionnant en arithmétique à virgule flottante, soit, plus avantageusement, du type fonctionnant en arithmétique à virgule fixe, avec, bien sûr, un degré différent de précision.15 Bien entendu, ledit dispositif de circuits pourrait aussi être utilisé, par exemple, dans le domaine des mesures électroniques, en connexion avec un transducteur d'une quantité physique (pression, température, etc), comme élément rapide et précis de correction de linéarité Dans un tel cas, il serait nécessaire de prévoir une interface d'entrée II, conçue pour lire un signal analogique SI et engendrer en correspondance un signal numérique I, ainsi qu'une interface de sortie OI, conçue pour lire le signal numérique O et engendrer en correspondance un signal25 analogique SQ. L'interface d'entrée II peut, par exemple, consister en un circuit échantillonneur-bloqueur, un convertisseur A/N et une porte d'entrée, ou d'autres arrangements similaires bien connus dans le domaine des appareils de mesure30 numériques, et le signal numérique I consiste en une séquence d'échantillons équidistants, séparés et convertis en code numérique. L'interface de sortie OI peut, par exemple, être réalisée par une porte de sortie, un convertisseur N/A et un circuit de maintien, ou d'autres arrangements similaires bien connus de l'homme de métier. Finalement, il reste à dire que, selon les circonstances, tout ce dispositif peut avantageusement être intégré sur une puce. En se reportant maintenant à la figure 2, chaque élément de traitement PE représente un élément d'un réseau neuronal, appelé neurone, et est composé essentiellement du dispositif de circuits de la figure 1. Une vue générale simple et complète des réseaux neuronaux peut être trouvée dans la revue "COMPUTERS", de mars 1988, vol 21, na 3. Tous les neurones sont connectés entre eux par un bus commun CBUS Chaque neurone "i" calcule sa valeur de sortie Ui et transmet cette donnée à tous les autres neurones qui l'utiliseront comme entrée pour le calcul de la valeur15 numérique I de sa sortie au prochain instant suivant, selon l'équation connue: i =NN I =f( W* U) i-tl i i dans laquelle NN est le nombre de neurones de la couche; f est une fonction non linéaire, en particulier une "sigmoïde"; Wi sont les poids appelés sinaptiques, caractéristiques des réseaux neuronaux. Les poids sinaptiques peuvent avoir une valeur fixe ou variable selon une certaine règle d'apprentissage choisie par le concepteur du réseau et ils sont contenus dans une mémoire externe EMEM connectée au processeur PR via un bus30 local LBUS, qui peut ainsi les lire et, selon les circonstances, les modifier. De meilleures performances, en ce qui concerne la vitesse, la fiabilité, la consommation et l'encombrement peuvent être obtenues en intégrant le réseau neuronal entier35 sur une puce en utilisant les techniques d'intégration à grande échelle (VLSI). Ainsi, l'invention atteint complètement les objectifs indiqués précédemment En fait, avec une telle méthode et un tel dispositif de circuits on obtient l'application d'une fonction non linéaire à un signal électrique, numérique ou 5 analogique, avec un degré élevé de précision, en raison de la présence d'éléments de correction dans le calcul, et avec un mode de réalisation qui est simple et de fonctionnement rapide, du fait de tels éléments de correction, et peu coûteux en ce qui concerne la mémoire nécessaire, puisque10 l'utilisation de ces éléments de correction permet d'accroître la distance entre les valeurs tabulées de la fonction, ce qui signifie une limitation du nombre de valeurs qui doivent être enregistrées dans la table de conversion. REVENDICATIONS 1 Méthode pour transformer un signal numérique (I) en un autre signal numérique ( 0) selon une fonction non linéaire (f), cette méthode étant basée sur l'utilisation d'une table de conversion (LUT) contenant 2 N 1 valeurs numériques de ladite fonction non linéaire prises (f) à une distance constante (Delta), lesdites valeurs numériques correspondant à 2 N 1 mots, chacun composé de N 2 bits,10 caractérisée en ce qu'elle comprend les étapes consistant à: a) lire une valeur (v I) de ladite valeur numérique (I), ladite valeur (v I) correspondant à un premier mot composé de N 3 bits, et ladite distance constante (Delta) étant égale à 2 (n 3-nl), b) extraire dudit premier mot un deuxième mot (j) composé des nl bits les plus significatifs dudit premier mot, et un troisième mot (d I) composé des N 3-nl bits les moins significatifs dudit premier mot,20 c) adresser une table de conversion (LUT) à l'aide dudit deuxième mot (j) et lire trois valeurs numériques consécutives ( O j, Oj+l, O j+ 2) de ladite fonction non linéaire (f), et d) engendrer, en correspondance avec ladite valeur (v I), ledit autre signal numérique ( 0) dont la valeur (s O) est donnée par s O = O j + Cl C 2, expression dans laquelle C 1 et C 2 sont respectivement un premier et un deuxième élément de correction relié auxdites30 trois valeurs numériques consécutives (Oj, Oj+ 1, O j+ 2) de ladite fonction non linéaire (f) par les expressions suivantes: o -o j+ J C 1 = * d I et Delta C 2 = F t j+ 2 j+l j dans lesquelles la valeur de F dépend de ladite fonction non linéaire (f) et desdits nombres de bits ni, N 2 et N 3. 2 Méthode conforme à la revendication 1, caractérisée en ce que la valeur de F est donnée par K F = d I * expression dans laquelle les valeurs de K et L dépendent de ladite fonction non linéaire (f) et desdits nombres de bits10 ni, N 2 et N 3. 3 Méthode conforme à la revendication 1, caractérisée en ce que la valeur de F est donnée par: M F = _ N expression dans laquelle les valeurs de M et N dépendent de ladite fonction non linéaire et desdits nombres de bits ni, n 2 et N 3. 4 Méthode conforme à la revendication 2 ou 3, caractérisée en ce que lesdites valeurs de K et L ou M et N sont calculées par avance en minimisant l'expression: s O-f(v I) Dispositif de circuits pour la mise en oeuvre de la méthode définie dans les revendications 1 à 4, du type comprenant un processeur PR pour lire ledit signal numérique (I), le traiter et émettre en conséquence ledit autre signal numérique ( 0), et une table de conversion (LUT) connectée audit processeur (PR), caractérisé en ce qu'il comprend une mémoire (MEM) connectée audit processeur (PR) et capable de30 contenir lesdits valeurs de K et L ou M et N. 6 Dispositif de circuits conforme à la revendication , caractérisé en ce que ledit processeur (PR) comprend un microprocesseur commandé par un programme, une mémoire de programme et une mémoire de données. il 7 Dispositif de circuits conforme à la revendication , caractérisé en ce que ledit processeur est réalisé en circuits à logique distribuée. 8 Dispositif de circuits conforme à la revendication 5, caractérisé en ce que ledit processeur (PR) est du type fonctionnant en arithmétique à virgule flottante. 9 Dispositif de circuits conforme à la revendication , caractérisé en ce que ledit processeur (PR) est du type fonctionnant en arithmétique à virgule fixe. 10 Dispositif de circuits conforme à la revendication , caractérisé en ce qu'il est intégré sur une puce. 11 Réseau neuronal incluant une multiplicité de neurones, chacun d'eux consistant en un élément de traitement (PE), et un bus commun (CBUS) adapté pour15 interconnecter lesdits éléments de traitement (PE), chacun desdits élément de traitement (PE) comprenant a) des moyens de circuits capables de: lire des données (Vi) progressant le long dudit bus commun (CBUS) et venant d'éléments de traitement restants (PE), engendrer un signal numérique (I) donné par la somme de produits desdites données (Ui) avec des poids sinaptiques correspondants (Wi), et appliquer une fonction non linéaire (f), en particulier une sigmoïde, audit signal numérique (I) et le transformer en un autre signal numérique ( 0) ayant des caractéristiques différentes, lesdits moyens de circuit comprenant:. une table de conversion (LUT) contenant 2 N 1 valeurs numériques ( 01 /, Oni) de ladite fonction non linéaire (f) prises à une distance constante (Delta), lesdites valeurs numériques ( 01, Oni) correspondant à ni mots chacun d'eux composé de N 2 bits,. un processeur (PR), connecté à ladite table de conversion (LUT), adapté en particulier pour lire lesdits signaux numériques (I), exécuter un traitement sur eux et émettre en conséquence ledit autre signal numérique (O), ledit traitement étant accompli par les étapes de: i) lire une valeur (v I) dudit signal numérique (I), ladite valeur (v I) correspondant à un premier mot composé de N 3 bits, et ladite distance constante (Delta) étant égale à 2 (n 3 ni) ii) extraire dudit premier mot un deuxième mot (j) composé des ni bits les plus significatifs dudit premier mot, et un troisième mot (d I) composé des N 3-nl bits les10 moins significatifs dudit premier mot, iii) utiliser le deuxième mot (j) comme adresse pour lire dans la table de conversion (LUT) trois valeurs numériques consécutives (Oj, Oj+ 1, O j+ 2) de ladite fonction non linéaire (f),15 iv) émettre, en correspondance avec ladite valeur (v I), ledit signal numérique ( 0) dont la valeur (s O) est donnée par: s O = Oj + Cl C 2, expression dans laquelle Ci et C 2 sont respectivement un premier et un deuxième élément de correction reliés auxdites trois valeurs numériques consécutives ( O j, Oj+ 1, O j+ 2) de ladite fonction non linéaire par les expressions suivantes: o o j+ j Cl = d I Del ta C 2 F * j+ 2 j+l J dans lesquelles la valeur de F est donnée par une expression choisie entre les suivantes F = d I *K / L, F = M/ N, dans lesquelles les valeurs de K et L, M et N dépendent de ladite fonction non linéaire (f) et desdits nombres de bits nl, N 2, N 3 et une mémoire interne (MEM), connectée audit processeur (PR), capable de contenir les valeurs de K et L ou M et N. b) une mémoire externe (EMEM) capable de contenir les valeurs desdits poids sinaptiques (Wi), et c) un bus local (LBUS) pour interconnecter ladite mémoire externe (EMEM) et ledit processeur (PR). 12 Réseau neuronal conforme à la revendication 11, caractérisé en ce qu'il est intégrable sur une puce VLSI.