Brevet FR2845503A1 — publié le 20040409

AUTOMATE D'ETATS FINIS MODELISANT UN NEURONE BIOLOGIQUE La présente invention concerne un automate destiné à être utilisé comme bloc de construction logique, et en particulier un automate convenant à une utilisation dans une architecture neuronale. L'informatique moderne doit beaucoup de sa structure logique à John Von Neumann qui, entre parenthèses, a émis l'hypothèse que des circuits aussi complexes que le système nerveux humain ne seraient jamais réalisés. La structure logique qui envahit le 10 monde informatique s'appuie sur un parmi deux modèles. Le premier modèle est un simple modèle d'état par tout ou rien. En commençant avec des tubes à vide et en évoluant jusqu'aux transistors actuels, l'élément est soit passant, soit bloqué. Des uns et des zéros peuvent 15 être affectés à l'un ou l'autre état suivant besoin, en cohérence dans le circuit. Des éléments multiples peuvent être assemblés pour former des portes. La porte réagit à une entrée selon sa nature et fournit une sortie ouverte ou fermée. Des portes typiques 20 comprennent des circuits ET, OU, OU exclusif, NON, ou équivalents. Bien qu'utile pour concevoir des circuits, cette sorte de logique n'est pas favorable à la création d'automates capables de prises de décision inférentielles. Le deuxième modèle a été dérivé de l'étude de cellules nerveuses et s'appuie sur une logique des seuils. La logique des seuils implique qu'il y ait une porte, et lorsque des entrées de cette porte satisfont ou excèdent le seuil, la porte est déclenchée et une sortie est générée. Bien que fonctionnels pour modéliser simplement le comportement du potentiel d'action de la cellule nerveuse, ces modèles ne sont pas capables d'émuler complètement le comportement de 5 la cellule nerveuse biologique. En outre, une seule porte logique à seuil ne peut pas réaliser une fonction OU exclusive. L'absence de procédures de synthèse limite l'adaptation de cette logique aux procédures modernes de conception logique. Des tentatives pour 10 utiliser l'un ou l'autre de ces modèles afin de créer des automates utiles sur la base de la signalisation neuronale ont échoué. Ces échecs vont au delà de la création d'automates utiles. La logique des seuils, telle qu'appliquée aux 15 réseaux neuronaux, a conduit à des circuits de réseaux neuronaux dont la dynamique n'est ni contrôlable, ni observable en raison de la nature analogique des composants. Spécifiquement, du fait que les systèmes analogiques soient des systèmes à flux continu, un 20 observateur ne peut pas dire exactement s'il se passe quelque chose et quand cela se produit. Les portes à seuil ne réussissent pas en outre à modéliser avec succès les mécanismes inhibiteurs dans les cellules nerveuses humaines. Jusqu'alors, la recherche moderne en neurobiologie a contribué à mieux comprendre la signalisation des cellules nerveuses et à découvrir de vastes complexités dans les organisations synaptiques. A cet effet, des structures élaborées dans des connexions synoptiques 30 chimiques avec contacts étendus entre les cellules ont été également observées. La perception qu'un axone se termine sur un synapse unique a par conséquent été revue. A ce jour, il n'existe pas de circuit logique basé sur la communication électrochimique entre les cellules. Un automate peut être construit de manière numérique, modélisé sur la capacité qu'ont les cellules nerveuses à fonctionner à une pluralité d'états électrochimiques discrets. L'automate de la présente invention peut comprendre une pluralité d'entrées. Pour 10 que l'automate soit mieux adapté à représenter des dispositions synaptiques plus complexes que celles modélisées par la logique des seuils, ces entrées peuvent être chacune pondérées indépendamment les unes des autres, ou des poids peuvent être affectés aux 15 combinaisons d'entrées, reflétant aussi le phénomène biologique du couplage entre les terminaisons présynaptiques. Ces entrées pondérées sont introduites dans une unité de calcul d'états. Une sortie est générée par l'unité de calcul d'états. La sortie est 20 simultanément réintroduite dans un ordinateur de pondération conjointement avec les entrées de l'automate. L'ordinateur de pondération à son tour vérifie de manière dynamique les poids affectés à chaque entrée ou combinaison d'entrées. Une horloge 25 numérique pilote les entrées, l'unité de calcul d'états et l'ordinateur de pondération. La sortie de l'automate est ainsi une valeur numérique ayant plus de deux niveaux d'état qui reflète plus étroitement la communication électrochimique entre 30 les neurones biologiques. Avec cet automate comme bloc de construction, on peut construire des architectures neuronales plus évoluées. La figure 1 représente un graphique de courants synaptiques à différents potentiels de repos de membrane dans une cellule nerveuse; la figure 2 représente une version schématique d'une synapse de nerf biologique; et la figure 3 représente l'automate de la présente invention. L'étude de la neurophysiologie révèle que les cellules nerveuses communiquent entre elles à de nombreux niveaux. La forme la plus évidente de communication est par l'intermédiaire d'un potentiel d'action se composant d'un signal électrique dans une 15 cellule nerveuse. Un stimulus suffisant est appliqué à la cellule nerveuse, le potentiel d'action est émis par l'axone de la cellule nerveuse. Ce type de signal est principalement utilisé pour une signalisation à grande distance. Par exemple, un tel signal peut être utilisé 20 des neurones moteurs jusqu'au système nerveux central. C'est sur cette sorte de communication que des portes logiques à seuil ont été modélisées. Bien que des permutations existent dans les portes logiques à seuil telles qu'une porte à seuil linéaire composée et une 25 porte à seuil sigmode, de telles portes à seuil sont de nature analogique et ne présentent pas une pluralité d'états discrets. En outre, les réseaux neuronaux construits selon ces sortes de neurones électriques ne réussissent pas encore à montrer la capacité à penser 30 de manière déductive. Une autre forme de communication neuronale, ignorée en grand partie par les partisans de l'intelligence artificielle et de la construction d'automates, est la communication électrochimique par 5 les synapses. Une description succincte de ce phénomène biologique s'impose. Les cellules nerveuses présentent un potentiel électrique naturel par rapport à leur environnement, appelé potentiel de repos. Presque toutes les cellules nerveuses sont négatives 10 intérieurement, et présentent des potentiels de repos dans la plage de - 20 à - 100 mV, avec un potentiel typique de - 70 mV environ. Des informations peuvent être transmises entre les cellules par des variations du potentiel de la cellule. De telles variations du 15 potentiel sont obtenues par la présence ou l'absence de neurotransmetteurs qui interviennent sur l'action de la pompe à sodium et la diffusion de potassium à travers la membrane cellulaire. Des variations de potentiels résultent en un passage de courant entre les cellules. 20 La "quantité" d'informations transmises entre les cellules est reflétée dans la grandeur étalonnée du potentiel postsynaptique. Du fait que les neurones dans la région cérébrale sont si minuscules, avec un corps de quelques microns de diamètre, et proches les uns des 25 autres avec des axones de quelques dizaines de microns de longueur, ils n'utilisent pas de potentiels d'action pour transmettre des informations, mais plutôt des courants qui varient en grandeur selon la force du stimulus d'entrée qui leur a donné naissance. La figure 30 1 représente plusieurs courants synaptiques pour différents potentiels de membrane. Notez que ces courants diminuent dans le temps et représentent un passage de courant infime entre les cellules par suite de la modification des potentiels. Cependant, cette sorte de transmission n'a jamais été capturée par la 5 conception de réseaux neuronaux ou d'automates parce qu'il n'y a pas eu de bon modèle avec lequel cette transmission aurait pu être émulée. Des recherches ont montré que les neurotransmetteurs qui effectuaient la modification du 10 potentiel de la cellule postsynaptique étaient libérés en quanta discrets par les terminaisons présynaptiques d'autres cellules. En outre, on a constaté que les variations du potentiel de repos de la cellule postsynaptique étaient à des états discrets 15 (échelonnés) par suite des quanta discrets des neurotransmetteurs qui traversaient la membrane de la cellule postsynaptique. La sortie de la cellule ne peut plus être interprétée comme vraie ou fausse, mais plutôt comme une quantité avec laquelle il faut 20 compter. La nature quantique discrète de la libération des neurotransmetteurs et le potentiel postsynaptique échelonné résultant se prêtent à la modélisation numérique. Pour une meilleure compréhension de ce phénomène 25 biologique, une synapse et la cellule postsynaptique sont représentées sur la figure 2. Une jonction synaptique 10 comprend une synapse 12, plusieurs terminaisons présynaptiques 14, 16 et une cellule postsynaptique 30. Les terminaisons présynaptiques 30 peuvent être des terminaisons présynaptiques d'inhibition 14 ou des terminaisons présynaptiques d'excitation 16. En outre, les terminaisons présynaptiques d'excitation 16 peuvent être inhibées par un inhibiteur de terminaisons présynaptiques 18. Cette activité représente un accouplement entre les 5 entrées. Les terminaisons présynaptiques 14, 16 libèrent des quanta de neurotransmetteurs 20 dans la synapse 12 qui les transmet à la cellule postsynaptique 30. En outre, la fonction de la terminaison synoptique d'inhibition 18 (um) est de réduire ou de bloquer la 10 sortie de la terminaison présynaptique 16 (um1). Les terminaisons présynaptiques d'excitation 16 libèrent des neurotransmetteurs qui accroissent le potentiel de repos dans la cellule postsynaptique 30 et les terminaisons présynaptiques d'inhibition 14 libèrent 15 des neurotransmetteurs qui réduisent le potentiel de repos dans la cellule postsynaptique 30. La combinaison des deux terminaisons d'excitation et d'inhibition résulte en un potentiel échelonné. Chaque terminaison présynaptique 14, 16, 18, représentées par um, peut 20 être à un ou zéro. Une valeur de un signifie que la terminaison en question est conductrice. Inversement, une valeur de zéro signifie que la terminaison en question n'est pas conductrice. La cellule postsynaptique 30 comprend une membrane 25 cellulaire 32, un axone 36, et une pluralité de branches de connexion 38. L'introduction des neurotransmetteurs 20 à travers la membrane cellulaire 32 de la cellule postsynaptique 30 provoque une réaction électrochimique qui modifie le potentiel de la 30 membrane cellulaire 32. Les variations de potentiel résultantes 34 se propagent par l'axone 36 jusqu'aux branches de connexion 38 o les neurotransmetteurs peuvent être à nouveau libérés à travers une autre synapse (non représentée). Sur la figure 2, Ep représente le potentiel de repos normal de la cellule 5 30. Ew est l'équivalent de l'énergie électrochimique transportée par les quanta des neurotransmetteurs 20 libérés par toutes les terminaisons présynaptiques 14, 16, soit d'excitation, soit d'inhibition. Lorsque ces quanta de neurotransmetteurs pénètrent dans la membrane 10 32 avec une énergie égale à EW2, un déplacement d'ions survient qui donne naissance à une impulsion d'amplitude de potentiel Ep+l mesurable en fonction du courant et de la tension. Ainsi, EP+1 peut être exprimé comme suit (1) Ep+l = Ep + Ew La présente invention réside dans la capacité de modéliser la transmission électrochimique présentée par 20 les cellules comme décrit selon la figure 2. Référence est faite à la figure 3, sur laquelle la structure d'un automate 100 de la présente invention est représentée. L'automate 100 comprend une pluralité d'entrées 102, une unité de stockage de poids 104, une unité de calcul 25 d'états 106, une unité de calcul de poids 108, et une sortie 110. Une horloge 112 peut délivrer un signal d'horloge d'un point extérieur à l'automate 100. Il peut y avoir jusqu'à m entrées 102, indiquées sur la figure 3 par um, 0 différents comme stimulus. Pour modéliser efficacement l'accouplement entre les entrées, l'unité de stockage de poids 104 contient jusqu'à 2m éléments de pondération Wi, 0 membrane cellulaire o l'interaction électrochimique a lieu. L'unité de calcul d'états 106 génère une sortie à la sortie 110. La sortie 110 représente un ensemble 5 fini de terminaisons de sortie de l'unité de calcul d'états 106, chacune prenant des valeurs zéro ou un. Ceci représente le potentiel de repos numérisé de l'automate 100. Ceci peut être une valeur numérique de n bits. n peut être affecté arbitrairement et est 10 déterminé par le nombre de niveaux d'état que l'automate peut délivrer. Cette valeur peut être introduite telle quelle, ou codée (pour émuler le calcul numérique du courant) avant d'être appliquée à un autre automate 100. La sortie de l'unité de calcul 15 d'états 106 représente EP+1 et l'équation 1 ci-dessus est la source de cette sortie. L'unité de calcul de poids 108 reçoit les entrées 102 avant la pondération et reçoit aussi la sortie de l'unité de calcul d'états 106. L'unité de calcul de 20 poids 108 peut évaluer E, avant son introduction dans l'unité de calcul d'états 106. Finalement, l'unité de calcul de poids 108 peut spécifier quels sont les poids Wi, placés dans l'unité de stockage de poids 104. Normalement, l'unité de calcul de poids 108 calcule 25 tout d'abord les poids, sans doute arbitrairement, et les stocke dans l'unité de stockage de poids 104. L'unité de calcul de poids 108 met à jour les poids pendant l'apprentissage, comme décrit ci-dessous, ou suivant besoin pour modifier la sortie sur la sortie 30 110 afin de tomber dans une plage de niveaux d'état prédéfinis comme souhaité. L'horloge 112 force l'automate 100 à agir comme un système d'horloge discret. L'horloge 112 est connectée aux entrées 102, à l'unité de calcul d'états 106, et à l'unité de calcul de poids 108. L'horloge 112 a une 5 période At qui correspond à la période de temps dont l'unité de calcul d'états 106 a besoin pour calculer la sortie Ep+1 à partir des entrées pondérées Ew. Par exemple, si un ensemble d'entrées est reçu aux entrées 102 à l'instant to, l'unité de calcul d'états 106 10 délivre un signal à la sortie 110 à l'instant to + At. L'horloge 112 force la synchronisation de l'automate 100. En particulier, lorsque l'horloge 112 transmet une impulsion, un nouveau réseau d'entrées fj(ui) est présenté aux entrées 102, pondéré dans l'unité de 15 stockage de poids 104, et introduit dans l'unité de calcul d'états 106. la réception de cette nouvelle entrée, un nouveau niveau d'état est généré par l'unité de calcul d'états 106 selon une fonction de transition d'état qui combine les équations (1) et (2) et est 20 définie comme suit: (3) Ep(t + At) = h[Ep(t), W(t), u(t)] Cette architecture de calcul permet une sortie qui 25 est structurée comme un ensemble de niveaux d'états discrets à polarité positive et négative, analogue aux variations de potentiel de membrane qui surviennent pendant l'excitation et l'inhibition d'une cellule nerveuse. Un stimulus d'entrée externe étant une 30 combinaison d'entrées d'excitation et d'inhibition de l'ensemble ui, cause l'apparition d'un état quelconque dans l'ensemble. Alors que le stimulus d'entrée est appliqué avec des réseaux variables, l'automate 100 délivre un niveau d'état différent à partir de l'ensemble disponible. Cette sortie, définie entre le 5 temps t et le temps t+n'At à l'issue d'un certain nombre de n' motifs d'entrée différents (noter que n' n'a aucune relation avec n susmentionné), représente la trajectoire d'état de l'automate 100 tout comme la membrane de la cellule délivre un train d'impulsions de 10 différentes amplitudes. En conséquence, pour un nombre m de terminaisons d'entrée et de sortie, il peut y avoir jusqu'à 2m états différents dans la trajectoire d'état de sortie. Chaque trajectoire d'état représente une réponse temporelle de l'état interne de l'automate 15 100. Dans l'étude des réseaux neuronaux, on sait bien fournir une fonction d'apprentissage qui apprend au réseau neuronal à réagir, c'est-à-dire, à délivrer une sortie désirée à des entrés données. Il en est de même 20 de la présente invention. L'automate 100 est dit être en mode d'apprentissage lorsqu'il exécute la fonction suivante: (1.4) wj = g[fj(ui), Ep, Ep+l] 25 Cette fonction d'apprentissage peut être un algorithme d'apprentissage de correction d'erreur, un algorithme d'apprentissage à base de mémoire, un algorithme d'apprentissage de Hebbiau, un algorithme 30 d'apprentissage concurrent, ou même un algorithme d'apprentissage de Boltzmann suivant besoin ou comme souhaité. Pendant le processus d'apprentissage, les poids peuvent être modifiés de façon discrète. En outre, comme il s'agit d'un système discret, l'ensemble d'états peut être retracé pour observer comment le système est arrivé à l'état final. Si l'automate 100 est configuré pour ne pas revenir à son état de repos d'origine comme le fait une cellule biologique normale, le neurone peut donc aussi synthétiser des automates Mealy et Moore. Dans une 10 telle configuration, le dernier Ep+1 reste l'état activé jusqu'à ce qu'il soit modifié par un nouveau réseau d'entrées reçu aux entrées 102. L'architecture de l'automate 100, comme représenté sur la figure 3, peut être organisée à l'aide d'un 15 ASIC. En alternative, elle peut être également organisée à l'aide d'un microprocesseur, d'un microcontrôleur, d'un dispositif logique programmable (PLD), d'un PLD complexe (CPLD), d'une unité arithmétique et logique programmable (ALU), d'un réseau 20 de portes programmables par l'utilisateur (FPGA) ou équivalent suivant besoin ou comme souhaité. L'unité de stockage de poids 104 peut être organisée à l'aide de RAM statique ou dynamique. En alternative, elle peut être organisée avec des mémoires flash, ROM, EPROM, 25 EEPROM, ou équivalent suivant besoin ou comme souhaité. Comme encore une autre alternative, l'automate complet 100 peut être modélisé avec un logiciel exécuté par un microprocesseur alimenté de manière appropriée. La présente invention convient mieux pour 30 modéliser un changement de comportement de cellules nerveuses que le modèle à seuil précédent. En tant que telle, la présente invention constitue un bloc de construction approprié pour une architecture de systèmes nerveux artificiels. L'automate 100, désigné ici par neuro-automate, représente un modèle de niveau 5 supérieur de logique réalisé comme un système temporel discret. Ainsi, plusieurs automates 100 peuvent être assemblés, communiquant potentiellement entre eux, avec des couches d'automates 100 en cascade pour construire des filtres adaptatifs, exécuter un traitement logique 10 et de signaux (comme le font les cellules du cerveau), et équivalent, suivant besoin ou comme souhaité. La présente invention peut être aussi utilisée pour synthétiser une machine d'état algorithmique (une machine d'état qui exécute une séquence d'états selon 15 un algorithme prédéfini). La relation entrée-sortie de la machine d'état n'est plus exprimée en fonction d'expressions combinatoires. la place, les transitions d'état sont exprimées en fonction d'expressions temporelles discrètes. Ceci s'avère 20 supérieur aux expressions booléennes et aux expressions de logique des seuils en raison de la nature analytique des mathématiques discrètes. La présente invention peut être, naturellement, réalisée selon d'autres voies spécifiques que celles 25 énoncées ici sans s'écarter du domaine et des caractéristiques essentielles de l'invention. Les présents modes de réalisation sont donc à interpréter dans tous les aspects comme étant explicatifs et non restrictifs et tous les changements entrant dans le 30 sens et le domaine d'équivalence des revendications annexées sont destinés à y être inclus. REVENDICATIONS 1. Automate (100), comprenant une pluralité d'entrées, chacune étant capable de prendre un état parmi deux possibles; une unité de stockage de poids (104) connectée fonctionnellement auxdites entrées; une unité de calcul d'états connectée fonctionnellement à ladite unité de stockage de poids (104) et ayant une sortie; et une horloge (112) connectée fonctionnellement 10 auxdites entrées et à ladite unité de calcul d'états et pilotant de manière synchrone lesdites entrées et ladite unité de calcul d'états; lesdites entrées formant une pluralité de motifs; ladite unité de stockage de poids (104) appliquant 15 des poids sélectionnés à des motifs différents de ladite pluralité de motifs; ladite unité de calcul d'états recevant le motif pondéré d'entrées de l'unité de stockage de poids (104) pour calculer un nouveau niveau d'état à la sortie 20 (110) , ladite sortie (110) étant à un état parmi un nombre prédéterminé d'états possibles supérieur à deux et exprimé comme une valeur numérique. 2. Automate (100) selon la revendication 1, dans lequel ladite horloge a une période comparable à une 25 longueur de temps exigée pour produire une sortie dans l'unité de calcul d'états à partir d'un ensemble d'entrées donné. 3. Automate selon la revendication 1, comprenant en outre une unité de calcul de poids pour déterminer de manière dynamique les poids dans l'unité de stockage de poids (104). 4. Automate (100) selon la revendication 3, dans lequel ladite unité de calcul de poids est pilotée de 5 manière synchrone par ladite horloge avec lesdites entrées et ladite unité de calcul d'états. 5. Automate (100) selon la revendication 3, dans lequel ladite unité de calcul de poids utilise une fonction d'apprentissage pour déterminer les poids dans 10 l'unité de stockage de poids (104) sur la base d'une entrée et d'une sortie données. 6. Automate (100) selon la revendication 3, dans lequel ladite unité de calcul de poids reçoit la sortie de ladite unité de calcul d'états pour sélectionner des 15 poids de ladite unité de stockage de poids (104). 7. Automate (100) selon la revendication 1, dans lequel différents motifs de ladite pluralité de motifs modélisent le comportement d'accouplement entre entrées. 8. Méthode pour commander un automate (100), comprenant: la fourniture d'une pluralité d'entrées, chacune pouvant être dans un état parmi deux possibles, ladite pluralité d'entrées pouvant former une pluralité de 25 motifs différents; la pondération d'un motif d'entrées donné; le calcul d'une sortie numérique, ladite sortie étant dans un état parmi un nombre prédéterminé d'états possibles supérieur à deux et exprimé sous forme de 30 valeur numérique; et l'utilisation d'une horloge (112) pour piloter de manière synchrone les entrées et la sortie. 9. Méthode selon la revendication 8, comprenant l'apprentissage dudit automate (100) avec une fonction d'apprentissage. 10. Automate (100), comprenant une pluralité de m entrées, chacune pouvant prendre un état parmi deux possibles; une unité de stockage de poids (104) stockant 2' 10 poids, ladite unité de stockage de poids (104) recevant un motif sélectionné desdites entrées, et pondérant ledit motif d'entrées sélectionné; une unité de calcul d'états recevant lesdites entrées pondérées et générant une sortie correspondant 15 à un état parmi un nombre prédéterminé supérieur à deux d'états possibles et exprimé sous forme de valeur numérique; une unité de calcul de poids recevant ladite sortie et lesdites entrées et déterminant les poids à 20 placer dans ladite unité de stockage de poids (104); et une horloge (112) pilotant de manière synchrone lesdites entrées, ladite unité de calcul d'états, et ladite unité de calcul de poids. 11. Automate (100) selon la revendication 10, dans lequel ladite horloge (112) comprend une période équivalente à une longueur de temps exigée par ladite unité de calcul d'états pour déterminer ladite sortie après réception desdites entrées pondérées. 12. Automate (100) selon la revendication 10, dans lequel ladite unité de calcul de poids apprend quels sont les poids à stocker dans ladite unité de stockage de poids (104) sur la base d'un motif donné d'entrées et de sorties selon une fonction d'apprentissage. 13. Réseau neuronal temporel discret, comprenant 5 une pluralité d'automates comme décrits dans la revendication 10. 14. Automate (100), comprenant une pluralité de m entrées ui pouvant être assemblées en 2m motifs selon une fonction fj(ui), o j 10 est compris entre 1 et 2m; une unité de stockage de poids (104) comprenant 2m poids w, sélectivement affectées à différents motifs desdits 2m motifs, ladite unité de stockage de poids (104) délivrant une sortie E, = [wj *fj(ui)]; i une unité de calcul d'états recevant Ew et calculant une sortie Ep+l = Ew + Ep, o EP représente un état initial, ladite sortie correspondant à un état parmi un nombre prédéterminé supérieur à deux d'états possibles et exprimé sous forme de valeur numérique; une unité de calcul de poids déterminant de manière sélective les poids wj à stocker dans ladite unité de stockage de poids (104); et une horloge (112) pilotant de manière synchrone ladite unité de calcul de poids, lesdites entrées, et 25 ladite unité de calcul d'états. 15. Automate (100) selon la revendication 14, dans lequel ladite unité de calcul de poids apprend selon une fonction d'apprentissage. 16. Automate (100) selon la revendication 15, dans lequel ladite unité de calcul d'états possède initialement une sortie de Ep. 17. Automate (100) selon la revendication 16, dans 5 lequel ladite fonction d'apprentissage est une fonction de fj(ui), Ep, et Ep+i. 18. Automate (100) comprenant une unité de calcul de poids dont la fonction est de calculer des poids d'entrée pour produire une sortie de l'automate égale à 10 l[wj *fj(ui)] et stocker lesdits poids d'entrée dans j une unité de stockage de poids (104), o wj représente des poids et fj(ui) représente une fonction d'entrées.