FR 2690772 A1 19931105 FR 9205283 A 19920429 DESCRIPTION PROCESSEUR NEURONAL MUNI DE MOYENS POUR CALCULER UNE NORME OU UNE DISTANCE L'invention concerne un processeur neuronal comprenant des moyens de calcul de type neuronal qui extraient une racine d'une quantité X, ladite racine constituant soit une norme d'une donnée, soit une distance entre des données. Les processeurs neuronaux trouvent leurs applications dans les problèmes de classification en particulier pour la reconnaissance de forme, de caractères, le traitement du signal de la parole, le traitement d'images, la compression de l'information Les données d'entrée peuvent ainsi constituer, par exemple, des données de luminance, de chrominance, de dénombrement, des mesures d'angles en reconnaissance de forme, des densités spectrales à différentes fréquences en analyse fréquentielle de signaux ou plus communément des amplitudes de signaux électriques. Les processeurs neuronaux sont constitués d'automates non-linéaires généralement connectés entre eux par des synapses auxquelles sont affectés des coefficients synaptiques Ils permettent de traiter des problèmes qui le sont difficilement par les ordinateurs séquentiels classiques. Les deux types de processeurs les plus répandus comportent: soit des réseaux pleinement connectés dits de Hopfield soit des réseaux en couches: les neurones sont regroupés en couches successives, chaque neurone est connecté à tous les neurones de la couche suivante, l'information passant de la couche d'entrée aux couches suivantes (couches cachées) jusqu'à la couche de sortie. Ces systèmes sont capables d'apprendre par l'exemple ou de s'autoorganiser Les temps de calcul très longs sur ordinateur séquentiel peuvent se réduire considérablement en parallélisant les opérations qui comprennent des phases d'apprentissage et des phases de résolution. Pour effectuer un traitement neuronal de résolution, les processeurs neuronaux doivent au préalable apprendre à l'effectuer Cette phase appelée apprentissage fait appel à des exemples Pour de nombreux algorithmes, les résultats que l'on doit obtenir en sortie avec ces exemples sont généralement connus à l'avance Dans un premier temps le processeur neuronal qui n'est pas encore adapté à la tâche prévue, va délivrer des résultats erronés. On détermine alors une erreur entre les résultats obtenus et ceux que l'on aurait dû obtenir et, à partir d'un critère d'adaptation, on modifie les coefficients synaptiques pour permettre au processeur neuronal d'apprendre l'exemple choisi Cette étape est réitérée sur le lot d'exemples considérés comme nécessaires à un apprentissage satisfaisant. Les algorithmes d'apprentissage se répartissent en deux classes: les apprentissages locaux, o la modification d'un coefficient synaptique Ci, reliant un neurone j à un neurone i ne dépend que de l'information localisée sur les neurones i et j, les apprentissages non-locaux, o elle dépend d'informations situées dans tout le réseau Ce dernier apprentissage est par exemple celui de la rétropropagation de l'erreur dans des réseaux en couches. Des informations sur divers types de réseaux de neurones peuvent par exemple être trouvées dans l'article de R P LIPPMANN, "An introduction to computing with neural nets' IEEE ASSP Magazine Avril 1987, p 4 à 22. Pour mettre en oeuvre certaines de ces étapes de fonctionnement d'un processeur neuronal, il peut être nécessaire de calculer des distances entre des données représentées par des vecteurs ou de calculer des normes de vecteurs C'est par exemple le cas pour mettre en oeuvre certains algorithmes d'apprentissage Il apparaît intéressant que ce soit le processeur neuronal lui-même qui soit chargé d'effectuer cette étape de calcul de norme ou de distance. Indépendamment de l'exécution de tâches de type neuronal (résolution, apprentissage), le processeur neuronal peut également être considéré comme un dispositif de traitement de données numériques effectuant uniquement des calculs de normes ou de distances. On connaît un article intitulé: "Neural Computation of arithmetic fonctions" de K Y SIV et J BRUCK Proc IEEE, vol 78, n O 10, Octobre 1990, pages 1669 1675. En fait, cet article se limite à évoquer l'intérêt qu'il y a à calculer des racines carrées à l'aide d'un réseau de neurones, mais rien n'est dit sur la façon selon laquelle le réseau de neurones doit être programmé. Le but de l'invention est de concevoir un processeur neuronal qui puisse être programmé pour calculer des normes ou des distances en effectuant un calcul de racine Q Il est souhaitable de ne mettre en oeuvre qu'un minimum de moyens matériels opérant sur un nombre réduit de cycles de calcul Les moyens de calcul doivent pouvoir être aisément reconfigurables pour s'adapter à des données d'entrée variées et la précision de calcul doit pouvoir être prédéterminée Il est souhaitable que ceci soit obtenu en modifiant le moins possible l'architecture du processeur neuronal. Ce but est atteint à l'aide d'un processeur neuronal pour lequel lesdits moyens de calcul sont programmés pour mettre en oeuvre: au moins un neurone qui calcule par récurrence une suite de contributions AQ, = qi B' qui forment ensemble une expression de la racine Q dans une base arithmétique B, et au moins un neurone qui met à jour par récurrence une racine partielle QP en totalisant lesdites contributions A Qi pour délivrer la racine Q. Ainsi avantageusement, il est possible de choisir la dimension de la base B, donc le nombre de contributions A Qi à calculer et aussi le nombre de neurones, pour obtenir une vitesse d'exécution plus ou moins élevée pour le calcul de la racine Q On peut ainsi privilégier soit une vitesse élevée avec des moyens matériels multiples soit des moyens matériels réduits avec une vitesse d'exécution plus réduite Ce fonctionnement par récurrence permet de réduire beaucoup le matériel nécessaire aux calculs. Une racine Q peut être exprimée dans une base B quelconque par: n Q = N qi Bl =+ q + qi Bi * + q 1 B' + q IO O I=-m +q_, 1 + q - Le choix de la dimension de la base et celui de la valeur de m permet de prédéterminer la précision du calcul Pour obtenir Q à une unité près, il suffit de se limiter aux termes allant de q B' à q O B O La valeur Q est alors la partie entière de la racine exacte de X La donnée X doit être positive. Selon l'invention, on détermine par récurrence tous les termes qi B', -m si en, en commençant par le terme le plus élevé q B' Ces termes sont déterminés dans la base B qui peut être quelconque Le choix de la base B détermine la manière selon laquelle l'architecture du processeur neuronal est mise en oeuvre. La dimension B de la base B étant choisie, pour le calcul de chaque terme qi B' on détermine chaque valeur qi, et pour cela on calcule plusieurs termes j B' pour lesquels les valeurs j encadrent la valeur qi à déterminer Avec une base de dimension B, les valeurs de j sont comprises entre O et B-1 La valeur O ne nécessitant pas de calcul, ces termes sont déterminés pour 1 e j B-1 Le fonctionnement du processeur neuronal va ainsi nécessiter soit au maximum B-1 neurones ou groupes de neurones fonctionnant en parallèle soit au minimum 1 neurone opérant successivement sur B-1 étapes de calcul Des situations intermédiaires peuvent être également mises en oeuvre Une vitesse d'exécution élevée est par exemple obtenue en faisant fonctionner B-1 neurones ou groupes de neurones en parallèle avec une grande dimension pour la base B Une vitesse d'exécution plus lente peut être obtenue soit en faisant fonctionner un nombre limité de neurones sur plusieurs étapes consécutives soit en choisissant une dimension réduite pour la base B. Un processeur neuronal est fondamentalement constitué de mémoires stockant des états de neurones Vi, de mémoires stockant des coefficients synaptiques Cij, d'unités calculant des sommes pondérées E Ci- Vi, et d'unités appliquant des fonctions non- linéaires de transfert auxdites sommes pondérées pour délivrer des états de neurones Vi Ces derniers constituent les résultats des opérations effectuées, c'est-à-dire des résultats de normes ou de distances dans le cadre de l'invention. Selon l'invention lesdites mémoires et lesdites unités sont programmées par des valeurs initiales, certaines étant permanentes et d'autres étant régulièrement mises à jour pour effectuer les calculs de racine A chaque cycle du calcul, on détermine une racine partielle QP et éventuellement un reste partiel RP qui sont mis à jour A la fin du calcul, la dernière racine partielle QP constitue la racine finale Q et RP constitue le reste final A chaque cycle, les résultats obtenus sont donc recyclés pour le cycle suivant. Selon une mise en oeuvre, on met en oeuvre uniquement la racine partielle QP sans calculer le reste partiel RP Dans ce cas, la racine partielle QP étant initialement nulle, lesdits moyens de calcul sont programmés, en vue du calcul d'une racine de degré d, pour: a calculer une pluralité de quantités S Di = X (Q Pi+ 1 + j Bid) ( 1) ladite pluralité résultant d'un nombre B-1 d'opérations effectuées par au moins un neurone pour j variant de 1 à B- 1, i étant un nombre entier initialement égal à un nombre maximal prédéterminé, b déterminer une valeur j = q 1 qui vérifie sign (S Di) >sign (SD,+ 1) avec SD, 2 0, SDB parallèle et partiellement récurrent. Selon la dimension de la base B choisie, les calculs des contributions A Qi peuvent être réalisés par au minimum un seul neurone qui effectue soit les étapes a, b et c soit les étapes a, b, avec au minimum un seul autre neurone pour cumuler les contributions A Qi successives au cours respectivement soit de l'étape d soit des étapes c et d. Pour le calcul d'une racine carrée (d = 2), les équations ( 1), ( 2), ( 3) et ( 4) deviennent respectivement: S Dj = X (Q Pi+l + j B')2 ( 1 ') R Pl = R Pi, A Qi ( 2 Q Pi, + A Qi) ( 2 ') R Pl = R Pi A Qi ( 2 Q Pl A Qi) ( 3 ') S Dj = R Pi+ j Bl ( 2 Q Pi+ 1 + j Bi) ( 4 ') En opérant avec une base B de dimension 2, le calcul de la racine peut être effectué par seulement 2 neurones. Les opérations de calcul de norme ou de distance qui ont été indiquées précédemment apparaissent généralement à l'issu de certaines étapes de traitement neuronal concernant des phases de résolution et/ou d'apprentissage Il est donc possible d'utiliser des neurones du processeur neuronal pour effectuer un tel calcul à un moment donné et pour effectuer à un autre moment des étapes de traitement neuronal proprement dit Il n'est donc pas nécessaire que le processeur neuronal dispose de neurones affectés spécifiquement aux opérations de calcul de racine Cette situation est néanmoins possible, le processeur neuronal étant alors utilisé uniquement pour des calculs de racines. En outre, il est possible que la quantité X dont on veut extraire une racine ne soit pas fournie directement au processeur neuronal, mais indirectement sous la forme de composantes de vecteurs Dans ce cas, le processeur neuronal doit préalablement calculer la/les quantités X à partir desdites composantes des vecteurs Les extrémités dudit vecteur peuvent également être représentées par deux vecteurs On peut ainsi calculer des distances entre ces deux vecteurs Dans le cas du calcul de norme, le processeur neuronal est en outre programmé pour calculer ladite quandité X de sorte qu'elle égale la somme des puissances de degré d de chacune desdites composantes. Dans le cas du calcul de distance, le processeur neuronal est en outre programmé pour calculer, pour des vecteurs pris deux à deux, ladite quantité X de sorte qu'elle égale la somme des puissances de degré d des différences desdites composantes de même ordre. Ces différents aspects de l'invention et d'autres encore seront apparents et élucidés à partir des modes de réalisation décrits ci-après. L'invention sera mieux comprise à l'aide des figures suivantes, données à titre d'exemples non limitatifs, qui représentent: Figure 1: un schéma d'une architecture connue de processeur neuronal. Figure 2: une représentation schématique A d'un neurone dépourvu d'un moyen d'application d'une fonction non-linéaire, une représentation schématique B d'un neurone muni d'un moyen d'application d'une fonction non-linéaire F, une représentation schématique C analogue à A avec des entrées Z'1 et Z'2 supplémentaires et une courbe D représentant une fonction non- linéaire F. Figure 3: un schéma d'une première mise en oeuvre des moyens de calcul pour le calcul d'une racine et d'un reste selon l'invention. Figure 4: un schéma d'un premier mode de réalisation pour un calcul des contributions A Qi mettant en oeuvre une racine partielle QP et un reste partiel RP. Figure 5: un schéma d'un second mode de réalisation pour un calcul des contributions A Qi mettant en oeuvre une racine partielle QP et un reste partiel RP. Figure 6: un schéma d'une seconde mise en oeuvre des moyens de calcul pour un calcul d'une racine Q et d'un reste R en calculant A Qi à partir des racines partielles QP. Figure 7: un schéma d'une mise en oeuvre à trois neurones, pour un calcul d'une racine Q et d'un reste R, mise en oeuvre spécifique à B = 2 et d = 2. Figure 8 un schéma d'une mise en oeuvre à deux neurones, pour un calcul d'une racine Q mise en oeuvre spécifique à B = 2 et d = 2. Figure 9: un schéma d'une unité pour un calcul de termes de type 2 ki dans le cas o la base B a une dimension du type 2 k. La Figure 1 représente un schéma simplifié d'une architecture connue de processeur neuronal 10 Des moyens d'entrée INP 13 (par exemple des registres d'entrée ou des bornes d'entrée), fournissent des données d'entrée 9 à une unité de traitement 11 qui reçoit également des coefficients synaptiques Ci, stockés dans des moyens de stockage 12 Un coefficient synaptique Ci, caractérise le poids de la synapse qui connecte un neurone source j à un neurone destination i L'unité de traitement 11 reçoit également des états de neurones stockés dans des moyens de stockage 14 Lorsqu'un neurone opère en tant que neurone source, son état est référencé par V, et lorsqu'il opère en tant que neurone destination, son état est référencé par Vi Pour chaque neurone destination, l'unité de traitement 11 opère des calculs: PO Ti = S cj v, L'unité de traitement 11 effectue la sommation sur tous les neurones source d'indice j et fournit en sortie (connexion 8) le potentiel neuronal PO Ti du neurone destination i Ce potentiel neuronal PO Ti est soumis à l'action d'une fonction non-linéaire NLF qui fournit le nouvel état de neurone Vi du neurone destination i Ce nouvel état Vi est utilisé pour mettre à jour les moyens de stockage 14 et le processus continue pour d'autres neurones Les moyens d'application 15 de la fonction non-linéaire NLF sont représentés extérieurs au processeur neuronal 10 Cette figure 1 est seulement illustrative de l'architecture car ces moyens d'application 15 peuvent également être placés à l'intérieur du processeur neuronal 10 Ils peuvent également concerner une partie seulement des neurones Un calculateur hôte 16 gère l'ensemble des mécanismes mis en oeuvre Il délivre les coefficients synaptiques Cij et les données d'entrées 9 et reçoit des données de sortie sous forme d'états de neurones Vi afin d'effectuer les calculs de racines Par souci de simplification, d'autres organes ont été omis: des moyens de contrôle, des moyens d'apprentissage, Fondamentalement, un processeur neuronal délivre des données et reçoit des données sous forme d'états de neurones Ces données se rapportent à des grandeurs physiques Une grandeur physique est transformée en signaux électriques représentant par exemple un nombre qui dénombre une population d'objets ou représentant par exemple une grandeur lumineuse déterminant une luminance ou une fréquence déterminant une périodicité d'un phénomène ou tout autre grandeur physique Par exemple, le processeur neuronal peut être utilisé pour trier, dans une groupe d'éléments, des éléments de classes différentes A, B, C Le processeur neuronal dénombre alors le nombre d'éléments appartenant à chaque classe A, B, C Des états de neurones calculés permettent de dénombrer ces différentes classes Les données ne sont pas toujours dimensionnées pour être introduites telles quelles dans le processeur neuronal Au cours de certains traitements, par exemple pour l'apprentissage, il peut être nécessaire que les données d'entrée soient exprimées par rapport à une norme pour que le traitement puisse être poursuivi L'invention se propose de déterminer cette norme Il est ensuite possible par exemple de normaliser toutes les données en faisant que la donnée maximale ne dépasse pas cette norme Il peut d'ailleurs s'agir de données issues d'une origine externe au processeur neuronal. L'invention met en oeuvre trois types de neurones Un premier type de neurone (Figure 2-A), qui opère en sommateur, est démuni de moyens pour appliquer une fonction non-linéaire F Il comprend, fondamentalement, des moyens pour stocker deux coefficients synaptiques C 1, C 2 qui sont respectivement multipliés par des valeurs d'entrée Z 1 et Z 2 pour former des produits Z 1 Cl et Z 2.C 2 Ces produits sont additionnés dans un sommateur E qui délivre une valeur de sortie Z telle que Z = Z* Cl + Z 2 * C 2 - Un second type de neurone (Figure 2-B), qui opère en organe de test, comprend les mêmes éléments que ceux du premier type, avec en plus des moyens 20 (par exemple un comparateur) pour appliquer une fonction non-linéaire F La sortie du neurone délivre ainsi une valeur Z telle que: z = F (zl Ci + Z 2-C 2) Un troisième type de neurone (figure 2-C) est muni d'un nombre double d'entrées par rapport à celui de la figure 2- A A un coefficient, par exemple Cl, sont alors associées deux entrées Z 1 et Z'1 On peut ainsi calculer des produits tels que C, Zl Z'1 Avec deux couples d'entrées, le neurone de la figure 2-C permet de déterminer: Z = C 1 Z 1 Z'1 + C 2 Z 2 Z'2. Le sommateur peut être suivi d'un organe d'application d'une fonction non-linéaire comme pour la figure 2-B Le nombre d'entrées ou de couple d'entrées, (Z 1, Z'1 >) (Z 2, Z'2) peut être supérieur à 2. La fonction non-linéaire F a une représentation fournie par la Figure 2-D Les moyens 20 (Figure 2-B) ont une entrée e qui reçoit le signal de sortie du sommateur E, signal qui est comparé à il une valeur nulle Lorsque cette entrée e reçoit d'une part des signaux négatifs ou d'autre part des signaux positifs, les moyens 20 délivrent une sortie valant respectivement v 2 ou + v 1 Dans la majeure partie des modes de réalisation décrits ci-après les valeurs + vl J/-v 2 peuvent être égales à 1/0, j/O, Bi/O. Première mise en oeuvre avec d = 2 La Figure 3 représente schématiquement une mise en oeuvre des moyens de calculs qui sont programmés pour calculer une racine de degré d = 2 Des moyens 30 calculent successivement les contributions A Qi = qi Bl à partir d'un reste partiel RP et d'un quotient partiel QP Initialement QP = O et RP = X Chaque contribution A Qi sert à mettre à jour RP et QP selon: Q Pl = Q Pi+ 1 + A Qi et R Pl = R Pi+lA Qi ( 2 Q Pi+ 11 + A Qi) o i est un nombre entier qui décroît à partir d'une valeur maximale imax Ces mises à jour mettent en oeuvre un neurone NQ du premier type décrit et un neurone NR du premier ou du troisième type décrit avec 3 entrées Chaque neurone est rebouclé sur lui-même pour opérer en accumulateur Ce fonctionnement en boucle nécessite que chaque neurone NQ, NR soit suivi respectivement d'un registre RQ, RR qui stocke le résultat pendant un cycle élémentaire de calcul Le registre RQ est initialisé à zéro, le registre RR est initialisé à X et les coefficients synaptiques des deux neurones sont programmés. Les valeurs des paramètres Z 1, C 1, Z 2, C 2 sont indiquées sur le tableau I A pour le neurone NQ. Z 1 C 1 Z 2 C 2 NQ Q Pi+ 1 1 A Qi i TABLEAU IA Pour le neurone NR, il est possible d'utiliser: soit un neurone du ler type, avec une troisième entrée Z 3 et un troisième coefficient C 3, ce neurone étant programmé selon le tableau IB (Figure 3): zl Cl Z 2 C 2 z 3 C 3 NR R Pi+ 1 1 A Qi - 2 Q Pi+ 1 A Qi -A Qi R Pi+ 1 1 Qpi+i -2 A Qi A Qi -A Qi TABLEAU l B soit un neurone du 3 ème type (avec 3 entrées) qui est programmé selon le tableau IC. Z 1 Z'1 Cl Z 2 Z'2 C 2 Z 3 Z'3 C 3 NR R Pi+ 1 1 A Qi Q Pi 1 2 A Qi A Qi 1 TABLEAU IC Détermination des contributions A Qi avec d = 2 Premier mode de réalisation La Figure 4 représente un premier mode de réalisation des moyens 30 pour la première mise en oeuvre Dans le cas général, la base dans laquelle la racine Q est exprimée a une dimension B. Selon l'invention préférentiellement, on utilise une couche de B-1 neurones N Aj ( 1 e j j = O Ces neurones NA, reçoivent tous Z 1 = R Pi+ 1, Z 2, et Z 3 = Q Pi+ 1- Ils sont programmés pour déterminer les quantités S Dj dont la valeur dépend de l'indice j du rang du neurone dans la couche Les termes S Dj constituent les potentiels neuronaux POT des neurones. Pour calculer les quantités S Dj, les neurones NA doivent être programmés La détermination du terme j.Bi ( 2 Q Pi+ 1 + j Bi) peut donner lieu à plusieurs combinaisons Les paramètres Z 1, C 1, Z 2, C 2, Z 3, C 3 des neurones N Aj peuvent être programmés selon le tableau II qui indique à titre d'exemple deux combinaisons: z 1 c 1 z 2 z 3 c 3 N Aj R Pi+l 1 1 j 2 B 2 i Q Pi+l 2 j B' R Pi+ 1 1 B 2 i j 2 Q Pi+l 2 j B' TABLEAU II Toutes ces quantités S Dj sont testées pour déterminer leur signe et pour en déduire l'indice j = qi de la plus faible quantité S Dj positive ou nulle Pour mettre en oeuvre des tests, on utilise des neurones N Aj du second type décrit précédemment, c'est- à-dire comprenant chacun un moyen d'application d'une fonction non- linéaire F aux potentiels neuronaux POT Cette fonction F peut être une fonction F 1 définie par: F 1 (S Dj) = Dj =1 lorsque S Dj 2 O F 1 (S Dj) = Dj = O lorsque S Dj TABLEAU III Pour obtenir que les sorties des neurones N Bj délivrent directement l'indice j de chaque neurone N Bj dans la couche (lorsque Di é Dj+l), on utilise des neurones du second type munis de moyens d'application d'une fonction F 2 ayant une réponse: Ej = O lorsque e 5 O Ej = j lorsque e > O. Une troisième couche est formée par un neurone à multi- entrées NC du premier type, chacune des entrées étant programmée selon le tableau IV z ci NC E Bl TABLEAU IV Selon une variante de ce premier mode de réalisation, il est possible que les coefficients C 3 du neurone NC soient programmés à la valeur 1 dans la mesure o les moyens d'application de la fonction non-linéaire F des neurones NB, opèrent avec une fonction F 3 telle que: Ej = 0 lorsque e O Ej = j B' lorsque e > 0. Les tableaux I à IV indiquent différents types de valeurs: des coefficients fixes, par exemple 1, -1, qui sont chargés au moment o le processeur neuronal est utilisé pour des tâches de calcul de norme ou de distance en liaison avec la dimension de la base B, des valeurs égales à X, qui dépendent des données mises en oeuvre et qui sont chargées pour chaque nouvelle donnée X, des coefficients contenant des termes Bl qui sont modifiés à chaque cycle récurrent Ces coefficients multiples de B' sont chargés au début de chaque cycle en commençant par les coefficients Bl les plus élevés Ils sont gérés par le calculateur hôte La valeur de i est limitée par une valeur maximale imax qui détermine la capacité de traitement du processeur neuronal dans la base B considérée Il est possible de prévoir un processeur neuronal ayant une architecture figée avec une base B déterminée (donc un nombre B-1 de neurones NA,, NB,) avec une valeur imax prédéterminée. Il est également possible de prévoir que l'utilisateur choisisse la dimension de la base B et choisisse la valeur imax en fonction des capacités matérielles du processeur neuronal et programme les coefficients, en conséquence Ces choix sont à opérer selon les valeurs X mises en oeuvre. A titre d'exemple, dans le cas o X est un nombre entier tel que O É X 2 ' 1, on peut choisir pour ion le plus petit entier tel que int 22 r 1 contributions Bl correspondant à des entrées D = 1. Selon une variante de ce second mode de réalisation, il est possible que les coefficients Cj du neurone NC soient programmées à la valeur 1 dans la mesure o les moyens d'application de la fonction non-linéaire F des neurones N Ai opèrent avec une fonction F 4 telle que: F 4 (S Dj) = Dj = B' lorsque S Dj 2 O F 4 (S Dj) = Dj = O lorsque S Dj Deuxième mise en oeuvre avec d = 2 La figure 6 représente schématiquementune deuxième mise en oeuvre dans le cas d = 2 Un neurone NR est présent comme dans la première mise en oeuvre, et il permet de disposer du reste final à la fin du calcul Toutefois, le bloc 30 utilise maintenant uniquement le quotient partiel QP pour calculer A Qi Alors, à chacune des structures (Figures 4, 5) présentées pour la première mise en oeuvre correspond une structure qui lui est identique, hormis pour les neurones N Ai intervenant dans le calcul de A Qi En effet, les termes SD, calculés sont différents, SD 1 = X (Q Pil + j. Bi)2 Pour ce calcul, on peut utiliser des neurones NA du troisième type à 4 entrées et munis d'une fonction non-linéaire F 1 et les programmer par exemple selon le tableau V: Z 1 Z 1 C 1 Z 2 Z 2 C 2 Z 3 Zi 3 C 3 Z 4 Z'4 C 4 X 1 1 Q Pi + Q Pi, -1 Q Pi+l B| -2 j Bl Bl -j| TABLEAU V Il est possible de réduire le nombre d'entrées des neurones en changeant la programmation et la structure, par exemple en remplaçant chaque neurone NA, par plusieurs neurones placés en cascade. Pour la détermination de A Qi, on utilise préférentiellement une structure déduite du second mode de réalisation (Figure 5) présenté pour la première mise en oeuvre. Il est possible d'utiliser des neurones N Aj ayant une fonction nonlinéaire F 4, en modifiant en conséquence les coefficients des autres neurones. Troisième mise en oeuvre avec d = 2 (première famille) Une troisième mise en oeuvre correspond au cas o on ne désire pas déterminer le reste R On supprime alors le neurone NR et le registre RR de la Figure 6 Le seul résultat déterminé est la racine finale L'intérêt de cette troisième mise en oeuvre est que le calcul de RP peut être ignoré si RP n'est pas exploité. Les schémas correspondant à une première famille de cette troisième mise en oeuvre sont identiques à ceux décrits pour la seconde mise en oeuvre (Figure 6) sauf qu'ils ne contiennent pas le neurone NR et le registre RR. Pour la détermination de A Qi, on utilise préférentiellement une structure analogue à celle de la Figure 5, déduite de celle-ci dans son application à la deuxième mise en oeuvre. Troisième mise en oeuvre avec d = 2 (deuxième famille) Toujours dans le cadre de cette troisième mise en oeuvre, il est possible d'en déduire des variantes obtenues en fusionnant le neurone NC (moyens 30) avec le neurone NQ Ceci est obtenu en: supprimant le neurone NC qui recevait auparavant des entrées VP égales à E, ou D, suivant le mode de réalisation, et qui avait des coefficients Ci tous égaux à 1 ou à B' suivant le cas considéré, puis en remplaçant le neurone NQ par une neurone du premier type à B entrées, programmés suivant le tableau VI dans lequel les V, et Ci correspondent à l'ancien neurone NC Z 1 | C Z 2 à ZB C 2 à CB NA Q Pi+T Vi ci TABLEAU VI L'avantage de cette variante est que la structure comporte une couche de moins que précédemment. Mise en oeuvre spécifique à B = 2 avec d = 2 Un cas intéressant par la simplicité des moyens matériels mis en oeuvre correspond au cas o la base B a une dimension 2 Dans ce cas, la détermination des contributions qi B' ne nécessite qu'un seul neurone La Figure 7 représente un exemple de réalisation qui met en oeuvre des déterminations de racines partielles QP et de restes partiels RP Trois neurones NA, NR, NQ sont suffisants pour déterminer la racine Q et le reste R Les neurones NQ (ler type) et NR ( 1 er ou 3 ème type) sont suivis respectivement des registres de stockage RQ et RR La programmation des paramètres Z, C du neurone NA ( 2 ème type) est effectuée selon le tableau II avec j = 1 La fonction non-linéaire F, appliquée aux données issues du sommateur de NA, peut être faite comme préalablement selon les fonctions F ou F 4 Dans le cas de la fonction F 4, les paramètres Z, C des neurones NQ et NR peuvent être programmés selon les tableaux IA, IB, IC en remplaçant A Qi par SNA qui est alors égal à A Qi Dans le cas de la fonction F 1, les paramètres Z C du neurone NQ peuvent être programmés selon le tableau VIIA, avec SNA égal à qi. z 1 CI 1 Z 2 2 NQ Q Pi+l 1 SNA 2 i TABLEAU VIIA Pour le neurone NR, il est possible d'utiliser: soit un neurone du ler type avec une troisième entrée Z 3 et un troisième coefficient C 3, ce neurone étant programmé selon le tableau VIIB (Figure 7): Z 1 Ci Z 2 C 2 Z 3 C 3 NR R Pi+l 1 SNA -2 i+l Q Pi, SNA 221SNA R Pi+ 1 1 Q Pi+ 1 -2 i+l SNA SNA 22 iSNA TABLEAU VIIB soit un neurone du 3 ème type (avec 3 entrées) qui est programmé selon le tableau VIIC: Z 1 Z 1 C 1 Z 2 z 2 C 2 Z 3 Z'3 C 3 NR R Pi+ 1 1 1 SNA Q Pl + 1 2 i+' SNA SNA 22 i TABLEAU VIIC En opérant toujours avec une base de dimension égale à 2, il est encore possible, selon le schéma de la Figure 8, de réduire à deux neurones la complexité des moyens matériels Dans ce cas, une détermination des restes partiels n'est pas mise en oeuvre. Les paramètres du neurone NA sont les mêmes que ceux du tableau V avec j = 1 Les moyens d'application peuvent également mettre en oeuvre les fonctions F 1 ou F 4 déjà décrites Dans le cas de la fonction F 4, les paramètres Z et C du neurone NQ peuvent être programmés selon le tableau IA en remplaçant A Qi par SNA (= A Qi). Dans le cas de la fonction F 1, les paramètres Z et C du neurone NQ peuvent être programmés selon le tableau VIIA avec SNA = qi. Mise en oeuvre avec d auelconaue Il est possible de généraliser pour d quelconque, les mises en oeuvre exposées précédemment pour d = 2 Il suffit que chaque neurone N Aj soit remplacé par un groupe de plusieurs neurones du 3 ème type mis en cascade permettant de calculer au total des produits de degré d Dans ce cas, dans chaque groupe de neurone N Aj, seul le dernier neurone du groupe est muni d'une fonction non- linéaire Un groupe de neurones N Aj calcule une quantité: S Dj = X (Q Pi+l + j Bi)d ou S Dj = R Pi+l + (Q Pi+l)d (Q Pi+l + j B)d selon la mise en oeuvre. Les quantités S Dj sont ensuite transformées en Dj par les fonctions non-linéaires. Dans les mises en oeuvre o on calcule le reste partiel RP, le neurone NR est également remplacé par un groupe de neurones du 3 ème type mis en cascade Le reste partiel est alors mis à jour selon: R Pl = R Pi+l + (Qpi+l)d (Q Pi+l + A Qi)d ou R Pl = R Pi+ 11 + (Q Pl A Qi)d (Qpi)d selon la mise en oeuvre. Cas o B = 2 k Lorsque la dimension de la base peut être écrite sous la forme B = 2 k, o k est un nombre entier, il est possible d'utiliser une unité qui calcule par récurrence certaines valeurs o interviennent des valeurs Bi C'est par exemple le cas avec les valeurs j Bi La Figure 9 représente un tel module 80 comprenant un registre à décalage 82 à k positions suivi d'un registre 84 qui peut être initialisé par une valeur d'initialisation 2 kimax La sortie du registre 84 délivre des coefficients Bl = 2 ki qui sont également réintroduits à l'entrée du registre à décalage 82 En décalant à chaque fois la donnée d'entrée de k positions, il est possible de la diviser par un facteur 2 k et calculer ainsi tous les coefficients Bl successifs pour la mise en oeuvre des méthodes décrites Ce module 80 peut être utilisé pour déterminer des paramètres Z et/ou C. Dépassements Le processeur neuronal doit stocker différents paramètres Z, C, différentes données d'entrées, X et des résultats QP, RP Pour cela, le processeur neuronal dispose d'une capacité de traitement qui dépend des capacités maximales des registres et des mémoires. Dans le cas général, si la capacité des registres d'états de neurones et des mémoires de coefficients synaptiques permet de stocker des mots signés de (r+l) bits, il est alors possible de traiter par exemple des données X telles que 0 X e 2 '-1 o X est un nombre entier Néanmoins, lorsque les coefficients synaptiques sont à stocker sous la forme j Bi, les capacités de stockage en nombre de bits par donnée et/ou coefficient sont à considérer L'homme du métier pourra donc être conduit à choisir l'un ou l'autre des modes de programmation donnés, par exemple dans les tableaux II ou V, en fonction de la taille des registres et des mémoires disponibles dans le processeur neuronal. L'invention peut être utilisée pour traiter des données X représentées par des nombres entiers ou quelconques. Les différentes mises en oeuvre prennent toute leur importance lors de l'utilisation effective du processeur En effet, suivant la variante considérée: le nombre de neurones est plus ou moins élevé, des entrées Z "supplémentaires", par exemple égales à B' ou à un multiple de cette valeur, sont ou ne sont pas nécessaires, les coefficients synoptiques sont fixes ou variables au cours d'une ou plusieurs extractions de racine, les fonctions de transfert des comparateurs sont fixes ou variables au cours d'une extraction de racine, des variables externes ou internes au fonctionnement apparaissent comme états de neurones ou comme coefficients synaptiques, et si les registres respectifs n'ont pas la même taille les valeurs maximales acceptables pour ces variables sont plus ou moins élevées c'est-à-dire, que les problèmes de dépassement doivent être traités différemment. REVENDICATIONS 1 Processeur neuronal comprenant des moyens de calcul de type neuronal qui extraient une racine Q d'une quantité X, ladite racine constituant soit une norme d'une donnée soit une distance entre des données, caractérisé en ce que lesdits moyens de calcul sont programmés pour mettre en oeuvre: au moins un neurone qui calcule par récurrence une suite de contributions A Qi = qi B' qui forment ensemble une expression de la racine Q dans une base arithmétique B, et au moins un neurone qui met à jour par récurrence une racine partielle QP en totalisant lesdites contributions AQ 1 pour délivrer la racine Q. 2 Processeur selon la revendication 1 caractérisé en ce que la racine partielle QP étant initialement nulle, lesdits moyens de calcul sont programmés, en vue du calcul d'une racine de degré d, pour: a calculer une pluralité de quantités S Di = X (Q Pi 1 + j B)d ladite pluralité résultant d'un nombre B-1 d'opérations effectuées par au moins un neurone pour j variant de 1 à B-1, i étant un nombre entier initialement égal à un nombre maximal prédéterminé, b déterminer une valeur j = qi qui vérifie sign (SD 5) > sign (S Dj+ 1) avec SD, 2 O, SDB 3 Processeur selon la revendication 2 caractérisé en ce que les moyens-de calcul sont programmés pour calculer en outre un reste partiel R Pl = X (Q Pi)d, le reste partiel initialement égal à X, étant mis à jour par récurrence tel que: R Pl =R Pi+l + (Q Pi+ 1) (Q Pi+l + A Qi) ou R Pl = R Pi+l + (Q Pla Qi)d(Q Pi) d- 4 Processeur selon la revendication 3 caractérisé en ce que les moyens de calculs sont programmés pour calculer en outre une pluralité de quantités SD 1 = R Pi+l + (Qpi+ 1)d (Qpi+l + j Bi)d. Processeur selon une des revendications 2 à 4 caractérisé en ce que plusieurs groupes d'au moins un neurone se partagent la réalisation des B-1 opérations. 6 Processeur selon une des revendications 2 à 4 caractérisé en ce que les phases c et/ou d sont réalisées par au moins un neurone. 7 Processeur selon la revendication 2 caractérisé en ce que pour B = 2, le processeur neuronal opère avec 2 neurones, un premier neurone (NA) mettant en oeuvre les phases a, b et c et un second neurone (NQ) mettant en oeuvre la phase d. 8 Processeur selon la revendication 2 caractérisé en ce que pour B = 2, le processeur neuronal opère avec 2 neurones, un premier neurone (NA) mettant en oeuvre les phases a, b et un second neurone (NQ) mettant en oeuvre les phases c et d. 9 Processeur selon la revendication 3 ou 4 caractérisé en ce que pour B = 2, le processeur neuronal opère avec 3 neurones, un premier neurone (NA) mettant en oeuvre les phases a, b et c et un second neurone (NQ) et un troisième neurone (NR) mettant en oeuvre les mises à jour respectivement du quotient partiel et du reste partiel. Processeur selon la revendication 3 ou 4 caractérisé en ce que pour B = 2, le processeur neuronal opère avec 3 neurones, un premier neurone (NA) mettant en oeuvre les phases a, b et un second neurone (NQ) et un troisième neurone (NR) mettant en oeuvre la phase c et les mises à jour respectivement du quotient partiel et du reste partiel. 11 Processeur selon une des revendications 2 à 10 caractérisé en ce-que les moyens de calcul sont programmés pour calculer une racine carrée en calculant un reste partiel R Pl le reste partiel, initialement égal à X, étant mis à jour par récurrence tel que: R Pl = R Pi+l A Qj ( 2 Q Pj 1 + + AQJ) ou R Pl = R Pi+ 1A Qi ( 2 Q PlA Qi) 12 Processeur selon la revendication 11 caractérisé en ce que les moyens de calcul sont programmés pour calculer en outre une pluralité de quantités SD, = R Pi+l j B' ( 2 Q Pi 1 + j B'). 13 Processeur selon une des revendications 1 à 12 caractérisé en ce que lesdits moyens de calcul sont programmables pour effectuer à un moment un calcul de racine et, à un autre moment, pour effectuer des tâches neuronales de résolution et/ou d'apprentissage. 14 Processeur selon une des revendications 1 à 13 caractérisé en ce que le processeur neuronal reçoit des composantes d'un vecteur, le processeur neuronal étant en outre programmé pour calculer ladite quantité X de sorte qu'elle égale la somme des puissances de degré d de chacune desdites composantes. Processeur selon une des revendications 1 à 13 caractérisé en ce que le processeur neuronal reçoit des composantes de vecteurs, le processeur neuronal étant en outre programmé pour calculer, pour des vecteurs pris deux à deux, ladite quantité X de sorte qu'elle égale la somme des puissances de degré d des différences desdites composantes de même ordre.