FR 2964222 A1 20120302 FR 1056760 A 20100825 Dispositif d'apprentissage et de décodage de messages, mettant en oeuvre un réseau de neurones, procédés d'apprentissage et de décodage et programmes d'ordinateur correspondants. 1. domaine de l'invention Le domaine de l'invention est celui des réseaux de neurones. Plus précisément, l'invention concerne la mise en oeuvre de réseaux de neurones, et en particulier l'apprentissage de tels réseaux et le décodage à l'aide de tels réseaux, notamment pour la reconnaissance de messages ou la discrimination entre messages appris et messages non appris. 2. art antérieur 2.1 intelligence artificielle Depuis un demi-siècle, précisément depuis la fameuse conférence de Dartmouth en 1956 organisée à l'initiative de John McCarthy, l'intelligence artificielle et ses applications potentielles suscitent l'intérêt de nombreux scientifiques. Cependant, à part quelques succès modestes de réalisation matérielle (réseaux de neurones formels, réseaux de Hopfield, perceptrons, logique floue, automates évolués), l'ambition de l'intelligence artificielle s'est essentiellement reportée sur la conception de systèmes dits experts, c'est-à-dire de logiciels capables de reproduire des décisions qu'un expert humain pourrait prendre sur un problème limité, avec un jeu de critères restreint et dans un contexte bien circonscrit. Et l'expression "intelligence artificielle" s'est démodée au profit de celle de "sciences cognitives", dont l'outil principal reste le classique ordinateur, dont l'architecture et le fonctionnement sont, comme chacun le sait, très éloignés de ceux du cerveau. Malgré tous les efforts accomplis ces vingt dernières années dans l'exploration du réseau neural biologique, grâce à des procédés de plus en plus sophistiqués (électro-encéphalographie, imagerie par résonance magnétique, ...), le cerveau reste, du point de vue du traitement de l'information, terra incognita. 2.2 réseau de Hopfield Le codage dans les réseaux de neurones peut notamment être abordé par le biais des mémoires associatives de Hopfield (voir par exemple : John J. Hopfield (2007) Hopfield network. Scholarpedia, 2(5):1977), lesquelles sont très simples à construire et constituent une référence du domaine. Un réseau de Hopfield, dont un exemple est donné en figure 1 (cas d'un réseau de Hopfield classique à n = 8 neurones), est porté par un graphe non 10 orienté complet à n sommets (neurones) et sans boucles. Le graphe comporte donc n(n -1) = 28 liaisons et la liaison bidirectionnelle entre les sommets i et j est 2 caractérisée par un poids (synaptique) Ce poids résulte de l'apprentissage de M messages de n valeurs binaires antipodales (± 1), chaque valeur dm (i = 1...n) du e message (m = 1...M) correspondant à une même valeur du i1ème neurone. wi 15 est donné par : Al m w.. w_ d" dm j M m=1 __j et peut prendre P = M + 1 valeurs. La remémoration d'un message particulier, à partir d'une partie de son contenu, s'effectue à travers le processus itératif décrit par les relations suivantes, 20 où vp est la valeur de sortie du ieme neurone après la p'eme itération : n vf = +1 Si wu v 1 > 0 j=1 n vf =-1 Si ;Vp 1 Rodemich, and S. S. Venkatesh, dans "The capacity of the Hopfield associative memory," IEEE Trans. Inform. Theory, vol. IT-33, pp. 461-482, 1987. Cette borne M. est relativement faible, et limite l'intérêt des réseaux de Hopfield et leurs applications. Par exemple, avec 1900 neurones, et donc 1,8.106 connexions binaires, un réseau de Hopfield est capable d'acquérir et de se remémorer uniquement environ 250 messages de 1900 bits. 4. objectifs de l'invention L'invention a notamment pour objectif de pallier ces inconvénients de l'état de l'art. Plus précisément, un objectif de l'invention est de fournir, selon au moins 15 un mode de réalisation, une technique permettant d'augmenter simplement et efficacement la diversité d'apprentissage d'un réseau de neurones. Un autre objectif de l'invention, selon au moins un mode de réalisation, est de fournir une telle technique, offrant un pouvoir de remémoration élevé, notamment en présence d'effacement. 20 L'invention a également pour objectif, selon au moins un mode de réalisation, de fournir une telle technique, présentant une grande capacité de discrimination, entre des messages valides (appris) et des messages non valides. 5. caractéristiques principales de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à 25 l'aide d'un dispositif de décodage de messages, mettant en oeuvre un réseau de neurones comprenant un ensemble de neurones, dits fanaux. Selon l'invention, ce dispositif met en oeuvre des moyens d'apprentissage dudit réseau de neurones, comprenant : - des moyens de découpage d'un message à apprendre en B sous-messages à 30 apprendre, B supérieur ou égal à deux ; - des moyens d'activation d'au moins un fanal pour chacun desdits sous-messages à apprendre, lesdits fanaux étant distribués en blocs comprenant chacun un nombre prédéterminé de fanaux, chaque bloc de fanaux étant affecté au traitement d'un sous-message, chaque fanal étant associé à une occurrence spécifique dudit sous-message, et des moyens de décodage d'un message à décoder, comprenant : - des moyens de découpage du message à décoder en B sous-messages à décoder ; - des moyens d'allumage de fanaux associés respectivement auxdits sous- messages à décoder, dans les blocs correspondants ; - des moyens d'association, audit message à décoder, d'un message décodé, en fonction desdits fanaux allumés. Ainsi, l'invention repose notamment sur un apprentissage parcimonieux, simplifiant les traitements et offrant une forte capacité de mémorisation. Selon au moins un mode de réalisation, lesdits fanaux sont des neurones binaires, pouvant prendre uniquement deux états, un état allumé et un état éteint. Le traitement est ainsi particulièrement simple, par rapport aux réseaux de neurones à valeurs réelles, ou pondérées. Dans ce cas, avantageusement, lesdits moyens d'activation activent un 20 unique fanal dans l'état allumé dans chaque bloc, pour un sous-message à apprendre, tous les autres fanaux dudit bloc étant dans l'état éteint. L'apprentissage et le décodage sont alors très simples, et fiables, puisque dans chaque bloc, un seul fanal est allumé, pour un message donné. Selon au moins un mode de réalisation, lesdits moyens d'apprentissage 25 comprennent des moyens de création de connexions entre fanaux, activant, pour un message à apprendre, des connexions entre les fanaux allumés de chacun desdits blocs. Avantageusement, toujours dans le but de simplifier les traitements, lesdites connexions sont des connexions binaires, pouvant prendre uniquement un 30 état connecté et un état déconnecté. Selon au moins un mode de réalisation, lesdits messages présentent une longueur k = BK, où B est le nombre de blocs, et K la longueur d'un sous-message, chaque bloc comprenant l = 2K fanaux. Par ailleurs, selon un aspect particulier de l'invention, lesdits moyens 5 d'association peuvent mettre en oeuvre un décodage à maximum de vraisemblance. Cette approche, connue dans le domaine des technologies de l'information, permet d'obtenir de bons résultats de décodage, en combinaison avec le codage parcimonieux proposé. 10 Ainsi, lesdits moyens de décodage peuvent comprendre des moyens de décodage local, pour chacun desdits blocs, activant dans l'état allumé au moins un fanal le plus vraisemblable, dans ledit bloc, en fonction du sous-message à décoder correspondant, et délivrant un sous-message décodé en fonction des connexions activées entre lesdits fanaux dans l'état allumé. 15 Lesdits moyens de décodage peuvent également comprendre des moyens de décodage global, assurant une fonction de passage de message, en tenant compte de l'ensemble des fanaux dans l'état allumé. Dans ce cas notamment, lesdits moyens de décodage peuvent mettre en oeuvre un décodage itératif, assurant au moins deux itérations du traitement 20 effectué par lesdits moyens de décodage local. Selon un autre aspect particulier d'au moins un mode de réalisation, lesdits moyens d'association mettent en oeuvre des neurones de traitement, organisés de façon à déterminer la valeur maximum d'au moins deux valeurs soumises en entrée. 25 On dispose ainsi d'une implémentation neurale, qui peut par exemple être mise en oeuvre sous la forme d'au moins un module de base constitué de six neurones à seuil nul et à valeurs de sortie 0 ou 1, comprenant : - un premier neurone apte à recevoir une première valeur A ; - un deuxième neurone apte à recevoir une seconde valeur B, au moins l'une 30 desdites première valeur A et seconde valeur B étant positive ou nulle ; - un troisième neurone, connecté au premier neurone par une connexion de poids 0,5 et au deuxième neurone par une connexion de poids 0,5 ; - un quatrième neurone, connecté au premier neurone par une connexion de poids 0,5 et au deuxième neurone par une connexion de poids - 0,5 ; - un cinquième neurone, connecté au premier neurone par une connexion de poids -0,5 et au deuxième neurone par une connexion de poids 0,5 ; - un sixième neurone, connecté aux troisième, quatrième et cinquième neurones par des connexions de poids 1, et délivrant la valeur maximum entre les valeurs A et B. Un tel dispositif peut notamment être réalisé sous la forme d'au moins un circuit intégré. Il peut également être un, ou être implanté en tout ou partie dans, un ordinateur. L'invention concerne également un procédé d'apprentissage du réseau de neurones d'un dispositif tel que décrit ci-dessus. Un tel procédé d'apprentissage comprend une phase d'apprentissage comprenant les étapes suivantes, pour un message à apprendre : - découpage dudit message à apprendre en B sous-messages à apprendre, B supérieur ou égal à deux ; - activation d'au moins un fanal pour chacun desdits sous-messages à apprendre, lesdits fanaux étant distribués en blocs comprenant chacun un nombre prédéterminé de fanaux, chaque bloc de fanaux étant affecté au traitement d'un sous-message, chaque fanal étant associé à une occurrence spécifique dudit sous-message. Ce procédé d'apprentissage peut également comprendre une étape de : - création de connexions entre fanaux, activant, pour un message à apprendre, des connexions entre les fanaux allumés de chacun desdits blocs. Préférentiellement, dans ce cas, une connexion entre deux fanaux possédant la valeur 1 conserve cette valeur. On utilise donc que des valeurs binaires. L'invention concerne également un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, comprenant des instructions de code de programme pour l'exécution de ce procédé d'apprentissage, lorsqu'il est exécuté sur un ordinateur. L'invention concerne encore un procédé de décodage d'un message à décoder, à l'aide d'un dispositif tel que décrit ci-dessus, et comprenant les étapes suivantes : (a) réception d'un message à décoder ; (b) découpage dudit message à décoder en B sous-messages à décoder ; (c) association, audit message à décoder, d'un message décodé, en fonction des fanaux allumés correspondant auxdits sous-messages à décoder. Ladite étape (c) peut ainsi comprendre, pour chacun desdits sous-messages à décoder, et pour chaque bloc de fanaux correspondant, les sous-étapes de : (cl) initialisation, par activation dans l'état allumé d'au moins un fanal correspondant au sous-message traité, et extinction de tous les autres fanaux dudit bloc ; (c2) recherche d'au moins un fanal le plus vraisemblable, parmi l'ensemble des fanaux dudit bloc ; (c3) activation dans l'état allumé dudit au moins un fanal le plus vraisemblable, et extinction de tous les autres fanaux dudit bloc ; et une étape de : (c4) détermination du message décodé correspondant au message à décoder, par combinaison des sous-messages désignés par les fanaux dans l'état 25 allumé. Lorsqu'une approche itérative est souhaitable, le procédé peut comprendre en outre une étape : (d) de passage de messages entre les B blocs, adaptant les valeurs des fanaux pour une réintroduction dans l'étape (c2), 30 lesdites étapes (c2) à (c4) étant ensuite réitérées. Dans ce cas, lors d'une réitération, l'étape (c2) peut tenir compte des informations délivrées par l'étape (c4) et des informations prises en compte lors d'au moins une itération précédente. On introduit ainsi un effet mémoire. Notamment, lesdites informations prises en compte lors d'au moins une itération précédente peuvent être pondérées à l'aide d'un coefficient d'effet mémoire y. Par ailleurs, selon un autre aspect, dans l'étape (c3), un fanal le plus vraisemblable peut, dans certains modes de réalisation, ne pas être activé si sa valeur est inférieure à un seuil prédéterminé G. Ce seuillage permet, si nécessaire, d'éviter l'allumage d'un fanal pour lequel le doute est fort (même s'il est le plus vraisemblable en théorie). L'invention peut trouver de nombreuses applications, dans différents domaines. Ainsi, notamment, le décodage peut délivrer, pour un message à décoder : - un message décodé correspondant au message à décoder, de façon à assurer une fonction de mémoire associative ; ou - une information binaire, indiquant si le message à décoder est ou non un message déjà appris par ledit réseau de neurones, de façon à assurer une fonction de discriminateur. L'invention concerne également un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution de ce procédé de décodage, lorsqu'il est exécuté sur un ordinateur. 6. liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel de l'invention, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : - - 5 - - - 10 - 15 - - 20 - 25 - - 30 7. la figure 1, commentée en préambule, présente un exemple d'un réseau de Hopfield à 8 neurones ; la figure 2 illustre le principe de la diversité d'apprentissage, dans un mode de réalisation simplifié mettant en oeuvre quatre blocs ; la figure 3 est une autre représentation d'un réseau à adressage réparti de quatre blocs ; la figure 4 présente un graphe biparti de décodage de quatre mots, ou sous-messages, à l'aide des réseaux des figures 2 ou 3 ; la figure 5 est un exemple de réalisation neurale de la fonction maximum de deux nombres dont l'un au moins est positif ou nul ; la figure 6 est un exemple de réalisation neurale, à partir du principe de la figure 5, de la sélection de la grandeur maximale parmi un nombre égal à une puissance de 2 de valeurs dont l'une au moins est positive ou nulle ; la figure 7 illustre un réseau complet à quatre blocs, mettant en oeuvre le schéma de la figure 5 ; la figure 8 présente le taux d'erreurs de lecture (après une seule itération) de M messages de k = 36 bits par un réseau de B = 4 blocs de 1 = 512 neurones, lorsqu'un des blocs ne reçoit aucune information, ainsi que la densité du réseau ; la figure 9 présente le taux d'erreurs de lecture (après 4 itérations) de M messages de k = 64 bits par un réseau de B = 8 blocs de 1 = 256 neurones, lorsque la moitié des blocs ne reçoit aucune information, ainsi que la densité du réseau ; la figure 10 présente le taux de rejet, après une seule itération, d'un message quelconque lorsque M messages de k = 36 bits ont été appris par un réseau de B = 8 blocs de 1 = 512 neurones ; la figure 11 illustre schématiquement une mise en oeuvre d'un décodage selon l'invention. description d'un mode de réalisation 7.1 introduction L'invention s'appuie sur des aspects développés dans le domaine de la théorie de l'information, dont les développements ont été pendant longtemps suscités et captés par les besoins des télécommunications, en perpétuelle demande d'améliorations. Des avancées considérables ont ainsi été obtenues dans l'écriture de l'information, sa compression, sa protection, son transport et son interprétation. En particulier, ces dernières années ont vu l'émergence de nouveaux procédés de traitement de l'information qui s'appuient sur des échanges probabilistes à l'intérieur de machines pluricellulaires. Chaque cellule est conçue pour traiter un problème de manière localement optimale et c'est l'échange d'informations (des probabilités ou des logarithmes de probabilité) entre les cellules qui conduit à un résultat globalement optimal. Le turbo-décodage a ouvert la voie à ce type d'approche (voir par exemple C. Berrou, A. Glavieux and P. Thitimajshima, "Near Shannon limit error- correcting coding and decoding: turbo-codes", Proc. of IEEE ICC '93, Geneva, pp. 1064-1070, May 1993. Voir aussi : Sylvie Kerouédan and Claude Berrou (2010), Scholarpedia, 5(4):6496). Le turbo-décodage a été reconnu comme une instance du principe très général de propagation de croyance (« belief propagation » en anglais ; voir par exemple R. J. McEliece, D. J. C. MacKay and J.-F. Cheng, "Turbo decoding as an instance of Pearl's 'belief propagation' algorithm", IEEE Journal on Selected Areas in Commun., vol. 16, no. 2, pp. 140-152, Feb. 1998), lequel a trouvé par la suite une autre application importante dans le décodage des codes « Low Density Parity Check» (LDPC, voir par exemple R. G. Gallager, "Low-density parity-check codes", IRE Trans. Inform. Theory, Vol. IT-8, pp. 21-28, Jan. 1962). Les inventeurs ont observé que l'on pouvait tenter d'adapter les développements effectués dans ces domaines à l'utilisation des réseaux de neurones, en termes de structure distribuée, séparabilité des informations, résistance au bruit, résilience, etc. 7.2 parcimonie Selon un aspect de l'invention, on augmente la diversité d'apprentissage grâce à la parcimonie (en tant que traduction de l'anglais sparsity). Ce principe de parcimonie peut être mis en oeuvre aussi bien sur la longueur des messages à mémoriser (k La figure 2 illustre schématiquement une tel réseau, pour B = 4 blocs 21 à 24 de longueur 1, chacun adressé par un message partiel 25 de x = log2(1) bits, est ainsi caractérisé par les paramètres suivants : n : nombre total de neurones fanaux 25 de valeurs (0,1) B : nombre de blocs x : longueur du message d'entrée pour chaque bloc 1 = nIB = 2K : taille de bloc k = BK : longueur des messages d'entrée du réseau Par ailleurs, les neurones fanaux sont de valeurs notées {ubJ} (b = 1...B, j = 1...1) binaires (0,1). Les fanaux des différents blocs sont reliés entre eux par des connexions de valeurs binaires (0,1) notées wblIlb2Iz . Il n'y a aucune connexion à l'intérieur d'un même bloc. Les connexions, ou liaisons, 27 définissent ainsi une image physique du message considéré. La figure 3 présente une autre représentation du réseau de la figure 2. 7.4 Apprentissage L'apprentissage de M messages de longueur BK s'effectue en deux étapes : - 1- sélection d'un neurone fanal parmi 1, pour chacun des B blocs. La façon dont cette sélection s'effectue est détaillée dans la section 4.2.1. On notera que chaque bloc possède suffisamment de fanaux pour représenter tous les sous-messages possibles (1 = 2K). (B -1)B - 2- activation (i.e. mise à 1) des 2 connexions entre les neurones fanaux représentatifs du message. Certaines de ces connexions pouvaient déjà exister avant l'apprentissage de ce message particulier ; dans ce cas, ces connexions restent à la valeur 1. Ainsi, après l'apprentissage de M messages, les poids des connexions ont pris la valeur : M ( m m l) wb bz~z = min ub ubz z , m=1 bl xb2 25 (5) Le réseau est donc purement binaire : connexion (1) ou non connexion (0) entre deux neurones fanaux et l'apprentissage est incrémental. L'acquisition d'un nouveau message revient simplement à ajouter des connexions au réseau existant et aucune normalisation n'est nécessaire. Selon l'argument développé en préambule, le nombre total de connexions (B -1)n2 étant 2B avec P = 2 niveaux possibles, la borne supérieure de diversité d'apprentissage de messages de longueur k = Blog2( ) est : M = (B-1)n2 max 2B2 loge (B) Par exemple, avec les valeurs n = 2048 et B =4, on obtient Mm,, = 42000. Pour n = 8192, la borne est de l'ordre de 600000. Après l'apprentissage de M messages, la densité d du réseau (c'est-à-dire la proportion de connexions de valeur 1) est : d=1-(1-1)M (7) Si M « 12, cette densité est proche de Mll2. Le réseau réalise donc une distribution de codes locaux parcimonieux (un seul neurone actif parmi 1). On peut noter que la notion de code local parcimonieux dans les sciences cognitives n'est pas nouvelle en soi (voir notamment Peter Foldiak, Dominik Endres (2008) Sparse coding. Scholarpedia, 3(1):2984), mais la façon dont ces codes sont ici associés et la manière dont le décodage global est effectué, comme proposé ci-après, apparaissent nouvelles et non évidentes. 7.5 Décodage Le décodage du réseau fait localement appel à un décodage à maximum de vraisemblance pour chacun des B blocs, lequel est détaillé dans la section 7.5.1, et à un décodage global à passage de messages que l'on trouvera expliqué dans la section 7.5.2. (6) 7.5.1 Décodage local à maximum de vraisemblance Le mode de réalisation décrit ci-après est mis en oeuvre dans un contexte de traitement itératif (ce qui n'est pas obligatoire, au moins dans certaines applications). Ce décodage s'appuie sur un graphe biparti binaire complet dont un exemple est donné dans la figure 4, pour 4 mots de code de 6 bits : +1-1-1-1-1+1, +1-1+1-1+1-1, +1+1-1-1+1+1, -1+1+1-1-1-1. Les traits pleins correspondent à une valeur +1, les tirets à -1. Aux données reçues, de valeurs {xi} (i = 1...x) réelles dans le cas le plus général, on associe x neurones de valeurs réelles {yi}. De l'autre côté du graphe, 1 neurones dits "neurones fanaux", de valeurs {uj} (j = 1... 1) binaires (0,1), représentent les 1 mots de code possibles. Les arcs du graphe tij sont de valeur ± 1. Le processus de décodage itératif peut être donné par les équations suivantes : Initialisation : y° = 0 (i = 1...x) Yi = xi (8) Pour l'itération p (1 p pi.) : K zp = tj(Yf +YYip 1) (1=1 -1) (9) i =1 Zmax = maX p (10) Zf p = 1 si z' = Z et si z' max max > 6 u p = 0 sinon = l P Vi tijuj j=1 yip = 1 si vip > 0 yip = -1 si vip o est le seuil d'activation des neurones fanaux. Pour réaliser un véritable décodage à maximum de vraisemblance, 6 doit être égal à -oc. En fonction du contexte, on peut donner à G des valeurs finies, c'est-à-dire imposer aux neurones fanaux une limite basse d'activité. Par exemple, en prenant 6 = 0 et dans la situation où toutes les données d'entrée sont effacées, la condition Zmax > 0 de (11) maintient tous les neuraux fanaux à la valeur nulle. Cet algorithme peut donc réaliser une sorte de décodage à sortie pondérée, apte à considérer des messages totalement ou partiellement effacés. 7.5.2 Décodage global du réseau Le décodage du réseau à codage réparti (incluant les décodages locaux) s'appuie sur l'algorithme suivant, où {dbi} (b = 1...B, i = 1...x) est le vecteur d'entrée/sortie et {tij} est le graphe biparti (-1,1) reliant, pour chacun des blocs, les données d'entrée aux neurones fanaux (cf. 7.51) : K zbj = ~tjdb; (b = 1...B, j = 1...1) (15) j =1 Zb,max = maX bj f (16) ubj = 1 si Zbj = Zb,max et si Zb,max > 6 ubj = 0 sinon (17) Vbj bjb, j,ub, j, + Yubj (18) Vb,max = max CbJ f (19) ubj = 1 si Vbj = Vb,max et si Vb,max > 6 ubj = 0 sinon (20) = t=Jubj i=1 (b = 1...B, i = 1...x) (21) db~ En répétant le traitement, entre les équations (18) et (20), le processus peut devenir itératif. La nécessité des itérations n'est pas toujours avérée. Cela peut être un bénéfice lorsque le réseau est utilisé en tant que mémoire associative, avec des effacements nombreux ou des erreurs dans les données d'entrée {dbj et/ou lorsque B est grand. Si le réseau est appelé à réaliser une fonction de reconnaissance du type go/no go (reconnaissance d'un message appris/rejet d'un message non appris), un seul passage suffit. De la même manière que dans la relation (9), le paramètre y utilisé dans (18) est un coefficient qui introduit un effet mémoire, que l'on prendra égal à 1 dans la suite. Cet effet mémoire garantit qu'un message appris, s'il est présenté à l'entrée du réseau sans aucune altération, est toujours reconnu. La totalité des valeurs binaires de sortie (relation (21)) est alors égale aux données d'entrée. 7.5.3 présentation simplifiée du décodage La figure 11 résume et généralise, de façon simplifiée, le procédé de décodage de l'invention, selon un mode de réalisation particulier. Ce procédé comprend tout d'abord une étape (a) de réception d'un message 111 à traiter. Ce message 111 est constitué généralement d'un ensemble de valeurs réelles (représentatives, a priori, des bits constituant le message d'origine, qu'il faut reconnaître, et qui a pu être dégradé, par exemple suite à une transmission dans un canal perturbé). Dans une étape (b), le message 111 est découpé en B sous-messages SM1 à SMB. Chaque sous-message SMi correspond à un des B blocs du réseau de neurones, et est traité pour un décodage local 112i correspondant (appelé étape (c)) Cette étape (c) comprend tout d'abord une étape d'initialisation (cl), dans laquelle on active (passage à l'état allumé) le fanal correspondant au sous-message délivré par l'étape (b). Tous les autres fanaux du bloc concerné sont éteints. Dans certains cas cependant, il est possible que plusieurs fanaux soient allumés simultanément. On procède ensuite, dans une étape (c2) à la rechercher du fanal le plus vraisemblable, par exemple à l'aide des équations présentées ci-dessus. Dans une étape (c3), on procède à l'activation de ce fanal le plus vraisemblable, et à l'extinction des autres fanaux. A nouveau, dans certaines situations, plusieurs fanaux peuvent être les plus vraisemblables, et rester activés. On obtient ainsi, pour chaque bloc, une décision i, permettant la reconstruction (c4) d'un message décodé. Lorsqu'une ou plusieurs itérations sont souhaitées, une étape (d) de décodage global assure le passage des décisions relatives au message décodé, de façon qu'elles soient ré-introduites (113) dans les décodages locaux, au niveau de l'étape (c2). Les étapes (c2) à (c4) sont alors répétées. Dans le cas de ré-itérations, et comme expliqué plus haut, un effet mémoire peut être introduit, pour tenir compte des décisions prises lors d'au 15 moins une itération précédente. 7.6 Implémentation neurale de la recherche d'un maximum Une façon d'implémenter la fonction « maximum » dans un réseau neural se déduit de l'équivalence suivante, pour deux nombres A et B quelconques : max(A,B)= A A2B (14) 20 En utilisant des neurones à seuil nul, comme dans les équations (2), mais à valeurs de sortie (0,1) au lieu de (-1,1), l'équivalence (14) peut être réalisée par le circuit de la figure 5, sous condition que l'une au moins des deux entrées soit positive ou nulle. Ce circuit comprend donc : 25 - un premier neurone 51 apte à recevoir une première valeur A ; - un deuxième neurone 52 apte à recevoir une seconde valeur B, au moins l'une desdites première valeur A et seconde valeur B étant positive ou nulle ; - un troisième neurone 53, connecté au premier neurone par une connexion 30 de poids 0,5 et au deuxième neurone par une connexion de poids 0,5 ; - un quatrième neurone 54, connecté au premier neurone par une connexion de poids 0,5 et au deuxième neurone par une connexion de poids - 0,5 ; - un cinquième neurone 55, connecté au premier neurone par une connexion de poids -0,5 et au deuxième neurone par une connexion de poids 0,5 ; - un sixième neurone, 56 connecté aux troisième, quatrième et cinquième neurones par des connexions de poids 1, et délivrant la valeur maximum entre les valeurs A et B. Le circuit de la figure 6 élargit la recherche et la sélection du maximum à un nombre 1 de grandeurs {z,} à comparer égal à une puissance de 2. Au moins l'une de ces grandeurs est positive ou nulle et la succession des couches de comparateurs identiques à celui de la figure 4 conduit à la sélection de max{z;}. A ce maximum, est soustraite la valeur 1 et le résultat est renvoyé vers les neurones de la première couche en tant qu'entrée négative. Grâce à ce retour, seuls les neurones dont les entrées sont à la valeur maximale restent actifs (sortie égale à 1). La figure 7 illustre un exemple de réseau de neurones complet, utilisant cette structure, toujours dans le cas de quatre blocs 71 à 74. 7.6 Exemples d'applications 7.6.1 Réseau neural à codage réparti en tant que mémoire associative Supposons que l'on efface les entrées d'un des blocs et que les autres B - 1 autres blocs soient adressés sans erreurs. Alors, selon les équations (18) à (20) et après une itération, la probabilité que le neurone fanal représentant correctement le bloc effacé soit le seul activé est : I; = -dB-»-1 (22) Par ailleurs, la probabilité qu'aucun des autres blocs ne voit son neurone fanal se modifier est : y' = dB-2) (23) si l'effet mémoire n'est pas utilisé (y = 0) et vaut 1 dans le cas contraire. En supposant que l'effet mémoire est utilisé, la probabilité d'erreur dans le recouvrement du message entier est : Pe, =1- =1-(1-dB-')1-' soit encore, d'après (7) : / / B-1 \1-1 Pel =1- 1- 1-1- 1 (24) / / Pour de petites valeurs de M (M « 12) et pour l » 1, Pe l est bien estimée M B-1 »,1 G ~ h Plus généralement, lorsque Beff B~r PB.rr =1- 1- 1-1-z (26) / / Pour M « 12 et 1» 1, 1 é B f est bien estimée par : Al Beff y Bf lBef( L2 ) (27) La figure 8 fournit le résultat de simulations effectuées (une seule itération) sur un réseau de 4 blocs de 512 neurones fanaux (k = 4x = 36 bits), lorsqu'un des blocs ne reçoit aucune information. Plus précisément cette figure 10 présente : - le taux d'erreurs de lecture 81 (après une seule itération) de M messages de k = 36 bits par un réseau de B = 4 blocs de 1 = 512 neurones, lorsqu'un des blocs ne reçoit aucune information ; - la densité du réseau 82 (relation (7)). Le taux d'erreur acceptable dépend bien sûr de l'application. S'il s'agit de concevoir des machines intelligentes bio-inspirées, un taux d'erreur de 0,1 peut 25 convenir. On peut vérifier, à partir de (27) et en se fixant un taux d'erreurs par : (25)20 Pe,B = Po , avec une moitié de blocs effacés (Beff = B12), que le nombre de blocs B0 qui maximise la quantité de messages appris est : 1 1 n Bopt = nint log 2P (28) (logarithme naturel) La figure 9 donne le résultat de simulations effectuées (avec 4 itérations au maximum) sur un réseau de 8 blocs de 256 neurones fanaux (k = 8x = 64 bits), lorsque la moitié des sous-messages est effacée. Plus précisément, cette figure 11 montre : - le taux d'erreurs de lecture 91 (après 4 itérations) de M messages de k = 64 bits par un réseau de B = 8 blocs de 1 = 256 neurones, lorsque la moitié des blocs ne reçoit aucune information. On observe, par rapport à la courbe de la figure 10, que la pente est plus prononcée parce que le nombre de blocs (8 au lieu de 4) est plus grand (cf. relations (26) et (27)) ; - la densité du réseau 92 (relation (7)). Une telle machine d'environ 2000 neurones (soit grosso modo la complexité d'une colonne néocorticale), avec 1,8 106 connexions binaires, peut donc apprendre et retrouver presque sûrement jusqu'à 15000 messages quelconques de 64 bits à moitié effacés. Bien sûr, à la complexité du réseau qui relie les neurones fanaux entre eux, il faut ajouter celle des décodeurs locaux chargés de déterminer les maxima d'activité et de relier fanaux et sous-messages. Toutefois, ces décodeurs locaux, de connexions établies une fois pour toutes et bien moins nombreuses que celles du réseau principal, n'interviennent pas dans le dénombrement des connexions informationnelles. Par comparaison, en disposant du même nombre de connexions informationnelles, un réseau de Hopfield est capable d'acquérir et de se remémorer environ 250 messages de 1900 bits. Les connexions y sont représentées sur 8 bits, au lieu de 1 dans le cas du réseau à codage réparti, objet de l'invention. Le gain en diversité d'apprentissage est donc de l'ordre de 60 et l'efficacité de mémorisation (i.e. le rapport entre la capacité de mémorisation et la quantité d'information nécessaire au stockage des messages) passe de 3,3 10.2 pour le réseau de Hopfield à 53,3 10.2 pour le réseau à codage réparti. 7.6.2 Réseau neural à codage réparti en tant que discriminateur Une autre application possible du réseau parcimonieux est la classification. Nous considérons ici un problème simple de discrimination entre messages appris et messages non appris. Soit un réseau qui a appris un certain nombre de messages et auquel on soumet un message tiré au hasard (il y en a 2k possibles, beaucoup plus que de messages appris). Soit Pe la probabilité après une itération qu'un des neurones fanaux activés ait c connexions avec les B-1 autres fanaux activés par ce faux message (c REVENDICATIONS1. Dispositif d'apprentissage et de décodage de messages, mettant en oeuvre un réseau de neurones comprenant un ensemble de neurones, dits fanaux, caractérisé en ce qu'il met en oeuvre des moyens d'apprentissage dudit réseau de neurones, comprenant : - des moyens de découpage d'un message à apprendre en B sous-messages à apprendre, B supérieur ou égal à deux ; - des moyens d'activation d'au moins un fanal pour chacun desdits sous-messages à apprendre, lesdits fanaux étant distribués en blocs comprenant chacun un nombre prédéterminé de fanaux, chaque bloc de fanaux étant affecté au traitement d'un sous-message, chaque fanal étant associé à une occurrence spécifique dudit sous-message, et des moyens de décodage d'un message à décoder, comprenant : - des moyens de découpage du message à décoder en B sous-messages à 15 décoder ; - des moyens d'allumage de fanaux associés respectivement auxdits sous-messages à décoder, dans les blocs correspondants ; - des moyens d'association, audit message à décoder, d'un message décodé, en fonction desdits fanaux allumés. 20 2. Dispositif selon la revendication 1, caractérisé en ce que lesdits fanaux sont des neurones binaires, pouvant prendre uniquement deux états, un état allumé et un état éteint. 3. Dispositif selon la revendication 2, caractérisé en ce que lesdits moyens d'activation activent un unique fanal dans l'état allumé dans chaque bloc, pour un 25 sous-message à apprendre, tous les autres fanaux dudit bloc étant dans l'état éteint. 4. Dispositif selon la revendication 3, caractérisé en ce que lesdits moyens d'apprentissage comprennent des moyens de création de connexions entre fanaux, activant, pour un message à apprendre, des connexions entre les fanaux allumés 30 de chacun desdits blocs. 5. Dispositif selon la revendication 4, caractérisé en ce que lesdites connexions sont des connexions binaires, pouvant prendre uniquement un état connecté et un état déconnecté. 6. Dispositif selon l'une quelconque des revendications 1 à 5, caractérisé en ce que lesdits messages présentent une longueur k = BK, où B est le nombre de blocs, et K la longueur d'un sous-message, chaque bloc comprenant l = 2K fanaux. 7. Dispositif selon l'une quelconque des revendications 1 à 6, caractérisé en ce que lesdits moyens d'association mettent en oeuvre un décodage à maximum de vraisemblance. 8. Dispositif selon la revendication 7, caractérisé en ce que lesdits moyens de décodage comprennent des moyens de décodage local, pour chacun desdits blocs, activant dans l'état allumé au moins un fanal le plus vraisemblable, dans ledit bloc, en fonction du sous-message à décoder correspondant, et délivrant un sous-message décodé en fonction des connexions activées entre 15 lesdits fanaux dans l'état allumé. 9. Dispositif selon la revendication 8, caractérisé en ce que lesdits moyens de décodage comprennent des moyens de décodage global, assurant une fonction de passage de message, en tenant compte de l'ensemble des fanaux dans l'état allumé. 20 10. Dispositif selon l'une quelconque des revendications 7 à 9, caractérisé en ce que lesdits moyens de décodage mettent en oeuvre un décodage itératif, assurant au moins deux itérations du traitement effectué par lesdits moyens de décodage local. 11. Dispositif selon l'une quelconque des revendications 1 à 10, caractérisé en 25 ce que lesdits moyens d'association mettent en oeuvre des neurones de traitement, organisés de façon à déterminer la valeur maximum d'au moins deux valeurs soumises en entrée. 12. Dispositif selon la revendication 11, caractérisé en ce que lesdits neurones de traitement comprennent au moins un module de base constitué de six neurones 30 à seuil nul et à valeurs de sortie 0 ou 1, comprenant :- un premier neurone apte à recevoir une première valeur A ; - un deuxième neurone apte à recevoir une seconde valeur B, au moins l'une desdites première valeur A et seconde valeur B étant positive ou nulle ; - un troisième neurone, connecté au premier neurone par une connexion de poids 0,5 et au deuxième neurone par une connexion de poids 0,5 ; - un quatrième neurone, connecté au premier neurone par une connexion de poids 0,5 et au deuxième neurone par une connexion de poids - 0,5 ; - un cinquième neurone, connecté au premier neurone par une connexion de poids -0,5 et au deuxième neurone par une connexion de poids 0,5 ; - un sixième neurone, connecté aux troisième, quatrième et cinquième neurones par des connexions de poids 1, et délivrant la valeur maximum entre les valeurs A et B. 13. Dispositif selon l'une quelconque des revendications 1 à 12, caractérisé en ce qu'il est réalisé sous la forme d'au moins un circuit intégré. 14. Procédé d'apprentissage du réseau de neurones d'un dispositif selon l'une quelconque des revendications 1 à 13, caractérisé en ce qu'il comprend une phase d'apprentissage comprenant les étapes suivantes, pour un message à apprendre : - découpage dudit message à apprendre en B sous-messages à apprendre, B supérieur ou égal à deux ; - activation d'au moins un fanal pour chacun desdits sous-messages à apprendre, lesdits fanaux étant distribués en blocs comprenant chacun un nombre prédéterminé de fanaux, chaque bloc de fanaux étant affecté au traitement d'un sous-message, chaque fanal étant associé à une occurrence spécifique dudit sous-message. 15. Procédé d'apprentissage selon la revendication 14, caractérisé en ce qu'il comprend une étape de : - création de connexions entre fanaux, activant, pour un message à apprendre, des connexions entre les fanaux allumés de chacun desdits blocs. 16. Procédé d'apprentissage selon la revendication 15, caractérisé en ce que, dans ladite étape d'activation, une connexion entre deux fanaux possédant la valeur 1 conserve cette valeur. 17. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution du procédé d'apprentissage selon l'une au moins des revendications 14 à 16, lorsqu'il est exécuté sur un ordinateur. 18. Procédé de décodage d'un message à décoder, à l'aide d'un dispositif selon l'une quelconque des revendications 1 à 13, caractérisé en ce qu'il comprend les étapes suivantes : (a) réception d'un message à décoder ; (b) découpage dudit message à décoder en B sous-messages à décoder ; (c) association, audit message à décoder, d'un message décodé, en fonction des fanaux allumés correspondant auxdits sous-messages à décoder. 19. Procédé de décodage selon la revendication 18, caractérisé en ce que ladite étape (c) comprend, pour chacun desdits sous-messages à décoder, et pour chaque bloc de fanaux correspondant, les sous-étapes de : (cl) initialisation, par activation dans l'état allumé d'au moins un fanal correspondant au sous-message traité, et extinction de tous les autres fanaux dudit bloc ; (c2) recherche d'au moins un fanal le plus vraisemblable, parmi l'ensemble des fanaux dudit bloc ; (c3) activation dans l'état allumé dudit au moins un fanal le plus vraisemblable, et extinction de tous les autres fanaux dudit bloc ; et une étape de : (c4) détermination du message décodé correspondant au message à décoder, par combinaison des sous-messages désignés par les fanaux dans l'état allumé. 20. Procédé de décodage selon la revendication 19, caractérisé en ce qu'il comprend une étape : (d) de passage de messages entre les B blocs, adaptant les valeurs des fanaux pour une réintroduction dans l'étape (c2), lesdites étapes (c2) à (c4) étant ensuite réitérées. 21. Procédé de décodage selon la revendication 20, caractérisé en ce que, lors d'une réitération, l'étape (c2) tient compte des informations délivrées par l'étape (c4) et des informations prises en compte lors d'au moins une itération précédente. 22. Procédé de décodage selon la revendication 21, caractérisé en ce que lesdites informations prises en compte lors d'au moins une itération précédente sont pondérées à l'aide d'un coefficient d'effet mémoire y. 23. Procédé de décodage selon l'une quelconque des revendications 19 à 22, caractérisé en ce que, dans l'étape (c3), un fanal le plus vraisemblable n'est pas 15 activé si sa valeur est inférieure à un seuil prédéterminé G. 24. Procédé de décodage selon l'une quelconque des revendications 18 à 23, caractérisé en ce qu'il délivre, pour un message à décoder : - un message décodé correspondant au message à décoder, de façon à assurer une fonction de mémoire associative ; ou 20 - une information binaire, indiquant si le message à décoder est ou non un message déjà appris par ledit réseau de neurones, de façon à assurer une fonction de discriminateur. 25. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable 25 par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution du procédé de décodage selon l'une au moins des revendications 18 à 23, lorsqu'il est exécuté sur un ordinateur.