La mémoire distribuée éparse ( SDM ) est un modèle mathématique de la mémoire à long terme humaine introduit par Pentti Kanerva en 1988 alors qu'il travaillait au centre de recherche Ames de la NASA .
Cette mémoire présente des comportements, tant en théorie qu'en expérience, qui ressemblent à ceux qu'aucune machine n'avait auparavant approchés – par exemple, la reconnaissance rapide des visages ou des odeurs, la découverte de nouvelles connexions entre des idées apparemment sans rapport, etc. La mémoire distribuée clairsemée est utilisée pour stocker et récupérer de grandes quantités (
Principe général
Il s'agit d'une mémoire vive (RAM) généralisée pour les mots binaires longs (par exemple, 1 000 bits). Ces mots servent à la fois d'adresses et de données. La principale caractéristique de cette mémoire est sa sensibilité à la similarité. Cela signifie qu'un mot peut être relu non seulement en fournissant son adresse d'écriture d'origine, mais aussi en fournissant une adresse très proche, mesurée par le nombre de bits différents (c'est-à-dire la distance de Hamming entre les adresses mémoire ).
Le SDM met en œuvre la transformation de l'espace logique vers l'espace physique grâce à une représentation et un stockage distribués des données, à l'instar des processus d'encodage de la mémoire humaine. Une valeur correspondant à une adresse logique est stockée dans plusieurs adresses physiques. Ce mode de stockage est robuste et non déterministe. Une cellule mémoire n'est pas adressée directement. Si les données d'entrée (adresses logiques) sont partiellement endommagées, il est toujours possible d'obtenir des données de sortie correctes.
La théorie de la mémoire est mathématiquement complète et a été vérifiée par simulation informatique . Elle repose sur l'observation que les distances entre les points d'un espace de grande dimension ressemblent aux relations de proximité entre les concepts dans la mémoire humaine. Cette théorie est également pratique, car les mémoires qui en découlent peuvent être implémentées avec des éléments de mémoire vive classiques .
Définition
La mémoire humaine tend à regrouper les souvenirs en fonction de leurs similarités (même sans lien apparent), comme « les camions de pompiers sont rouges et les pommes sont rouges » . La mémoire distribuée clairsemée (SDM) est une représentation mathématique de la mémoire humaine. Elle utilise un espace de grande dimension pour modéliser les vastes quantités de données, à l'image du réseau neuronal humain . Une propriété importante de ces espaces de grande dimension est que deux vecteurs choisis aléatoirement sont relativement éloignés l'un de l'autre, c'est-à-dire non corrélés La SDM peut être considérée comme une implémentation du hachage sensible à la localité .
L'idée fondamentale d'un SDM (Structured Data Management) est de mapper une vaste mémoire binaire sur un ensemble plus restreint d'emplacements physiques, appelés emplacements physiques . En règle générale, ces emplacements physiques doivent être uniformément répartis dans l' espace virtuel afin de reproduire au mieux l'existence de l'espace virtuel global. Chaque donnée est stockée de manière distribuée sur un ensemble d'emplacements physiques, puis récupérée en calculant la moyenne de ces emplacements. Par conséquent, la précision de la récupération peut ne pas être parfaite, en fonction de la saturation de la mémoire.
La proposition de Kanerva repose sur quatre idées fondamentales :
- L'espace booléen
- Les neurones à n entrées peuvent être utilisés comme décodeurs d'adresse d'une mémoire à accès aléatoire
- Principe unificateur : les données stockées en mémoire peuvent servir d’adresses à cette même zone mémoire. La distance entre deux points mesure la similarité entre deux éléments en mémoire. Plus les points sont proches, plus les vecteurs stockés sont similaires.
- Le temps peut être retracé dans la mémoire en fonction de l'endroit où les données sont stockées, si celles-ci sont organisées sous forme de séquences d'événements.
L'espace binaire N
En tant que réseau neuronal
Le SDM peut être considéré soit comme une extension adressable par contenu d'une mémoire vive (RAM) classique, soit comme un type particulier de réseau neuronal à propagation avant à trois couches . Les principales modifications apportées par le SDM à la RAM sont :
- Le SDM calcule les distances de Hamming entre l'adresse de référence et chaque adresse de localisation. Pour chaque distance inférieure ou égale au rayon donné, la localisation correspondante est sélectionnée.
- La mémoire est représentée par des compteurs (où n est le nombre d'emplacements et m est la longueur des données d'entrée) au lieu d'éléments de stockage à un seul bit.
- L'écriture dans la mémoire, au lieu de l'écrasement, se fait comme suit :
- Si le i-bit des données d'entrée est égal à 1, les compteurs correspondants (compteurs situés aux emplacements (lignes) sélectionnés et dans la i-ème colonne) sont incrémentés.
- Si le i-bit des données d'entrée est 0, les compteurs correspondants sont décrémentés.
- La lecture (ou le rappel) en mémoire est similaire :
- Le contenu des emplacements sélectionnés est additionné par colonne.
- Chaque somme est seuillée. Si la somme est supérieure ou égale au seuil, le bit de sortie correspondant est mis à 1 ; sinon, il est mis à 0. Notez que les seuils peuvent être nuls si les vecteurs d'entrée d'apprentissage sont presque orthogonaux.
Modèle neuronal
Voici une description simplifiée d' un neurone : un neurone possède un corps cellulaire doté de deux types de prolongements : les dendrites et l' axone . Il reçoit des signaux d'entrée provenant d'autres neurones via ses dendrites, les intègre (les somme) et génère son propre signal de sortie (électrique) qu'il transmet aux neurones extérieurs via son axone. Les points de contact électrique entre les neurones sont appelés synapses .
Lorsqu'un neurone génère un signal, il est activé et, après cette activation, il doit récupérer avant de pouvoir être activé à nouveau. L'importance relative d'une synapse dans l'activation du neurone est appelée poids synaptique (ou coefficient d'entrée ). Il existe deux types de synapses : les synapses excitatrices , qui déclenchent l' activation du neurone, et les synapses inhibitrices, qui l'inhibent. Le neurone est soit excitateur, soit inhibiteur, selon le type de synapses que forme son axone.
Un neurone s'active lorsque la somme des entrées dépasse un seuil spécifique . Plus ce seuil est élevé, plus il est important que les synapses excitatrices reçoivent des entrées tandis que les synapses inhibitrices n'en reçoivent pas. L'activation effective d'un neurone ayant récupéré dépend de la quantité d'entrées excitatrices reçues (au-delà du seuil) et d'une quantité d'entrées inhibitrices suffisante reçue au cours d'une période donnée.
Le modèle formel du neurone repose sur des hypothèses simplificatrices supplémentaires. Un neurone à n entrées est modélisé par une fonction de seuil linéaire.\{0,1\ comme suit :
Pour
La somme pondérée des entrées à l'instant t est définie par
La sortie du neurone à l'instant t est alors définie comme une fonction booléenne : =c,\\0&{ ext{sinon }}.\end{cases
Où F<sub> t</sub> = 1 signifie que le neurone s'active à l'instant t et F <sub>t</sub> = 0 qu'il ne s'active pas ; autrement dit, pour qu'un neurone s'active, la somme pondérée doit atteindre ou dépasser le seuil. Les entrées excitatrices augmentent cette somme et les entrées inhibitrices la diminuent.
Le neurone comme décodeur d'adresse
La thèse clé de Kanerva est que certains neurones pourraient avoir leurs coefficients d'entrée et leurs seuils fixés tout au long de la vie d'un organisme et utilisés comme décodeurs d'adresse où le n -tuple de coefficients d'entrée (le modèle auquel les neurones répondent le plus facilement) détermine l' adresse mémoire de n bits, et le seuil contrôle la taille de la région des modèles d'adresse similaires auxquels le neurone répond.
Ce mécanisme est complémentaire aux synapses ou poids ajustables d'un réseau neuronal ( apprentissage par convergence du perceptron ), car ce mécanisme d'accès fixe constitue un cadre de référence permanent permettant de sélectionner les synapses où l'information est stockée et à partir desquelles elle est récupérée dans des circonstances données. De plus, un encodage de la situation présente sert d'adresse.
L'adresse a d'un neurone avec des coefficients d'entrée w où
0,\\0&{ ext{si }}w_{i}<0.\end{cases (en supposant que les poids soient non nuls)
La somme pondérée maximale
Et la somme pondérée minimale
Lorsque le seuil c est dans la plage
emplacement de la mémoire
SDM est conçu pour gérer des modèles d'adresses qui couvrent un espace d'adressage énorme (de l'ordre de
Chaque emplacement difficile est associé à deux éléments :
- une adresse physique fixe, qui est l'adresse N-bits de l'emplacement
- Une zone de contenu de largeur M bits, pouvant accumuler plusieurs séquences de données de M bits écrites à cet emplacement. Cette zone de contenu n'est pas fixe ; elle est modifiée par les séquences de données écrites en mémoire.
Dans SDM, un mot peut être stocké en mémoire en l'écrivant dans un emplacement mémoire libre et en fournissant simultanément à cet emplacement le décodeur d'adresse approprié. Un neurone, faisant office de décodeur d'adresse, sélectionne un emplacement en fonction de la similarité de son adresse avec l'indice de récupération. Contrairement aux machines de Turing classiques, SDM tire parti du calcul parallèle grâce aux décodeurs d'adresse . Le simple fait d'accéder à la mémoire est considéré comme un calcul, dont la quantité augmente avec la taille de la mémoire.
Modèle d'adresse
Un vecteur de N bits utilisé pour l'écriture et la lecture en mémoire. Le modèle d'adresse est une description codée d'un état environnemental (par exemple, N = 256).
Modèle de données
Un vecteur de M bits qui constitue l'objet des opérations d'écriture et de lecture. À l'instar du modèle d'adresse, il s'agit d'une description codée d'un état environnemental (par exemple, M = 256).
En écrivant
L'écriture est l'opération consistant à stocker un motif de données en mémoire à l'aide d'un motif d'adresses spécifique. Lors d'une écriture, les données transmises à la mémoire comprennent un motif d'adresses et un motif de données. Le motif d'adresses permet de sélectionner les emplacements mémoire dont les adresses physiques se situent à une distance inférieure à un certain seuil autour de ce motif. Le motif de données est ensuite stocké dans chacun des emplacements sélectionnés.
En lisant
La lecture consiste à extraire des données de la mémoire à l'aide d'un motif d'adresses spécifique. Lors d'une lecture, ce motif d'adresses permet de sélectionner un certain nombre d' emplacements mémoire (comme lors d'une écriture). Le contenu de ces emplacements est ensuite additionné bit à bit et un seuil est appliqué pour obtenir une donnée de M bits. Cette donnée constitue le résultat de la lecture.
Chaînes d'aiguilles
Tous les éléments sont liés dans une liste unique (ou tableau) de pointeurs vers des emplacements mémoire et sont stockés en RAM. Chaque adresse du tableau pointe vers une ligne individuelle en mémoire. Cette ligne est ensuite renvoyée si elle est similaire à d'autres lignes. Les neurones sont utilisés comme décodeurs et encodeurs d'adresses, à l'instar des neurones du cerveau, et renvoient les éléments du tableau qui correspondent ou sont similaires.
Distance critique
Le modèle de mémoire de Kanerva introduit la notion de point critique : avant ce point, un élément précédemment stocké peut être facilement récupéré ; au-delà, il ne peut plus l’être. Kanerva a calculé méthodiquement ce point pour un ensemble particulier de paramètres (fixes). La distance critique correspondante d’une mémoire distribuée clairsemée peut être approximativement évaluée en minimisant l’équation suivante, sous la restriction
Où:
Interprétation probabiliste
Un système de mémoire associative utilisant des représentations distribuées et parcimonieuses peut être réinterprété comme un échantillonneur d'importance , une méthode de Monte Carlo d'approximation de l'inférence bayésienne . Le SDM peut être considéré comme une approximation de Monte Carlo d'une intégrale de probabilité conditionnelle multidimensionnelle . Le SDM produira des réponses acceptables à partir d'un ensemble d'apprentissage lorsque cette approximation est valide, c'est-à-dire lorsque l'ensemble d'apprentissage contient suffisamment de données pour fournir de bonnes estimations des probabilités conjointes sous-jacentes et qu'il existe suffisamment d'échantillons de Monte Carlo pour obtenir une estimation précise de l'intégrale
plausibilité biologique
Le codage parcimonieux pourrait être une stratégie générale des systèmes neuronaux pour augmenter la capacité de mémoire. Pour s'adapter à leur environnement, les animaux doivent apprendre quels stimuli sont associés à des récompenses ou des punitions et distinguer ces stimuli renforcés de stimuli similaires mais non pertinents. Une telle tâche nécessite la mise en œuvre de mémoires associatives spécifiques aux stimuli , dans lesquelles seuls quelques neurones d'une population répondent à un stimulus donné et chaque neurone ne répond qu'à quelques stimuli parmi tous les stimuli possibles.
Les travaux théoriques de Kanerva sur la représentation parcimonieuse (SDM) suggèrent que le codage parcimonieux accroît la capacité de la mémoire associative en réduisant le chevauchement entre les représentations. Expérimentalement, des représentations parcimonieuses d'informations sensorielles ont été observées dans de nombreux systèmes, notamment la vision , l'audition , le toucher et l'olfaction . Cependant, malgré les preuves croissantes d'un codage parcimonieux généralisé et les arguments théoriques justifiant son importance, il manquait jusqu'à récemment une démonstration que ce codage améliore la spécificité des stimuli de la mémoire associative.
Des progrès ont été réalisés en 2014 par le laboratoire de Gero Miesenböck à l' Université d'Oxford , grâce à l'analyse du système olfactif de la drosophile . Chez la drosophile, le codage olfactif parcimonieux par les cellules de Kenyon du corps pédonculé est supposé générer un grand nombre de sites précis pour le stockage des souvenirs olfactifs spécifiques. Lin et al. ont démontré que cette parcimonie est contrôlée par un circuit de rétroaction négative entre les cellules de Kenyon et le neurone GABAergique latéral antérieur apparié (APL). L'activation et le blocage systématiques de chaque branche de ce circuit de rétroaction montrent que les cellules de Kenyon activent les neurones APL et que ces derniers inhibent les cellules de Kenyon. La perturbation de la boucle de rétroaction cellules de Kenyon-APL diminue la parcimonie des réponses olfactives des cellules de Kenyon, augmente les corrélations entre les odeurs et empêche les mouches d'apprendre à discriminer les odeurs similaires, mais pas les odeurs dissemblables. Ces résultats suggèrent que l'inhibition par rétroaction supprime l'activité des cellules de Kenyon afin de maintenir un codage olfactif clairsemé et décorrélé, et donc la spécificité olfactive des souvenirs. Une publication de 2017 dans Science a montré que le circuit olfactif de la mouche met en œuvre une version améliorée du hachage binaire sensible à la localité via des projections aléatoires et clairsemées.
Applications
Dans les applications de mémoire, les mots sont des motifs de caractéristiques. Certaines caractéristiques sont produites par un système sensoriel, d'autres contrôlent un système moteur. Il existe un motif courant (par exemple, de 1 000 bits), qui correspond au contenu actuel du point focal du système . Les capteurs alimentent ce point focal, les moteurs sont pilotés par celui-ci et l'accès à la mémoire se fait via ce dernier.
Ce qui se passe dans le monde – l’expérience « subjective » du système – est représenté en interne par une séquence de motifs dans le champ de vision. La mémoire stocke cette séquence et peut la recréer ultérieurement dans ce même champ si elle est sollicitée par un motif similaire à un motif déjà rencontré. Ainsi, la mémoire apprend à prédire les événements à venir. Ce type de mémoire trouverait de nombreuses applications dans les systèmes traitant des informations du monde réel en temps réel.
Les applications comprennent la vision ( détection et identification d'objets dans une scène et anticipation des scènes suivantes ), la robotique , la détection et la vérification de signaux , ainsi que l'apprentissage et le contrôle adaptatifs . Sur le plan théorique, le fonctionnement de la mémoire peut nous aider à comprendre la mémoire et l'apprentissage chez l'homme et l'animal.
Recherche du meilleur match
SDM peut être appliqué au problème de la recherche de la meilleure correspondance à un mot test dans un ensemble de données de mots stockés. ou, en d'autres termes, au problème de recherche du plus proche voisin .
Considérons une mémoire comportant N emplacements où
Pour enregistrer les données en mémoire, commencez par configurer
Trouver la meilleure correspondance pour un mot de test z implique de placer z dans le registre d'adresses et de trouver la distance minimale d pour laquelle il existe un emplacement occupé. On peut commencer la recherche en définissant
Avec des mots de 100 bits, 2<sup> 100</sup> emplacements seraient nécessaires, soit une mémoire extrêmement volumineuse. Cependant, si nous construisons la mémoire au fur et à mesure du stockage des mots de l' ensemble de données, un seul emplacement (et un seul décodeur d'adresse) est requis pour chaque mot. Aucun emplacement inoccupé n'a besoin d'être utilisé. Ceci illustre le principe de parcimonie en SDM.
Reconnaissance vocale
La mémoire de reconnaissance vocale (SDM) peut être appliquée à la transcription de la parole , l'apprentissage consistant à « écouter » un vaste corpus de langue parlée . Deux problèmes majeurs liés à la parole naturelle sont la détection des frontières entre les mots et l'adaptation aux différents locuteurs. La mémoire doit être capable de gérer ces deux problèmes. Premièrement, elle stocke des séquences de motifs sous forme de chaînes de pointeurs. Lors de l'apprentissage – par l'écoute de la parole – elle construit une structure probabiliste avec une fréquence de ramification maximale aux frontières des mots. Lors de la transcription de la parole, ces points de ramification sont détectés et tendent à segmenter le flux en mots. Deuxièmement, la sensibilité de la mémoire à la similarité constitue son mécanisme d'adaptation aux différents locuteurs – et aux variations de la voix d'un même locuteur.
« Prendre conscience de l'oubli »
À l'Université de Memphis, Uma Ramamurthy, Sidney K. D'Mello et Stan Franklin ont créé une version modifiée du système de mémoire distribuée clairsemée qui représente la « réalisation de l'oubli ». Ce système utilise une équation de décroissance pour mieux illustrer les interférences dans les données. Le système de mémoire distribuée clairsemée répartit chaque motif sur environ un centième des emplacements,
Deux exemples possibles de dégradation de cette mémoire distribuée clairsemée modifiée sont présentés.
Mécanisme de décroissance exponentielle :
Mécanisme de décroissance sigmoïde à translation négative :
Dans la fonction de décroissance exponentielle, la valeur de a tend vers zéro plus rapidement lorsque x augmente, et a est une constante (généralement comprise entre 3 et 9) et c est un compteur. Pour la fonction sigmoïde translatée négative , la décroissance est similaire à celle de la fonction de décroissance exponentielle lorsque a est supérieur à 4.
Lorsque le graphique tend vers 0, il représente la façon dont le souvenir est oublié grâce à des mécanismes de dégradation.
mémoire distribuée clairsemée génétique
Ashraf Anwar, Stan Franklin et Dipankar Dasgupta de l'Université de Memphis ont proposé un modèle d'initialisation SDM utilisant des algorithmes génétiques et la programmation génétique (1999).
La mémoire génétique utilise un algorithme génétique et une mémoire distribuée clairsemée comme un réseau neuronal pseudo-artificiel. Son utilisation a été envisagée pour la création de vie artificielle.
Prédiction statistique
La SDM a été appliquée à la prédiction statistique , c'est-à-dire à l'association de vecteurs d'état perceptif extrêmement grands à des événements futurs. Dans des conditions de quasi-saturation ou de surcapacité, où le comportement de mémoire associative du modèle est altéré, le traitement effectué par celui-ci peut être interprété comme celui d'un prédicteur statistique et chaque compteur de données dans une SDM peut être vu comme une estimation indépendante de la probabilité conditionnelle qu'une fonction binaire f soit égale à l'ensemble d'activation défini par l'adresse mémoire du compteur.
intelligence artificielle générale
- Symboles vectoriels binaires C (CBVS) : comprend une implémentation SDM en C dans le cadre d’une l’Université de technologie de Luleå : http://pendicular.net/cbvs.php le 25/09/2015 sur la Wayback Machine
- CommonSense ToolKit (CSTK) pour le traitement des données de capteurs en temps réel développé à l' Université de Lancaster comprend l'implémentation de SDM en C++ : https://cstk.sourceforge.net/
- Implémentation Julia par Brian Hayes : https://github.com/bit-player/sdm-julia
- LIDA (Learning Intelligent Distribution Agent), développé par le laboratoire de Stan Franklin à l' Université de Memphis, inclut une implémentation de SDM en Java : http://ccrg.cs.memphis.edu/framework.html
- Implémentation Python : https://github.com/msbrogli/sdm
- Implémentation en Python et OpenCL : https://github.com/msbrogli/sdm-framework
- Implémentation APL
- Implémentation LISP pour la machine de connexion
- Implémentation FPGA
- L'implémentation matérielle originale développée par la NASA
- Une implémentation en C réalisée à l'Institut de recherche en informatique avancée de la NASA Ames