La mémoire associative bidirectionnelle (BAM) est un type de réseau de neurones récurrent introduit par Bart Kosko en 1988. C'est une forme de mémoire associative qui stocke des motifs de manière hétéro-associative, ce qui signifie que, étant donné un motif d'une couche, elle peut récupérer un motif correspondant d'une autre couche, potentiellement de taille différente. Cela contraste avec les mémoires auto-associatives comme le réseau de Hopfield, qui renvoient des motifs de même taille. La BAM est bidirectionnelle car elle peut répondre à des entrées provenant de la couche d'entrée ou de sortie, en utilisant la matrice de poids et sa transposée pour le rappel avant et arrière.
Topologie
Une BAM se compose de deux couches de neurones, notées X et Y, qui sont entièrement connectées entre elles. Une fois les poids établis, présenter une entrée à la couche X produit un motif dans la couche Y, et vice versa. Les connexions sont bidirectionnelles : la matrice de poids envoyée de la couche X à la couche Y est notée W, et la matrice de poids pour les signaux de Y à X est la transposée W^T. Ainsi, la matrice de poids est utilisée dans les deux directions, permettant un rappel symétrique.
Apprentissage
Pour stocker des associations, les motifs sont d'abord convertis en forme bipolaire (1 et -1). Par exemple, pour stocker deux associations A1:B1 et A2:B2, avec A1 = (1, 0, 1, 0, 1, 0) et B1 = (1, 1, 0, 0), les formes bipolaires sont X1 = (1, -1, 1, -1, 1, -1) et Y1 = (1, 1, -1, -1). De même, A2 = (1, 1, 1, 0, 0, 0) et B2 = (1, 0, 1, 0) deviennent X2 = (1, 1, 1, -1, -1, -1) et Y2 = (1, -1, 1, -1). La matrice de poids M est calculée comme la somme des produits externes de chaque paire : M = Σ X_i^T Y_i. Pour l'exemple, cela donne une matrice 6x4 avec des entrées telles que 2, 0, -2, etc., reflétant les corrélations entre les motifs d'entrée et de sortie.
Rappel
Pour récupérer une association, un motif d'entrée est multiplié par la matrice de poids. Par exemple, multiplier A1 (en forme bipolaire) par M donne (4, 2, -2, -4), ce qui, après application d'un seuil (les valeurs positives deviennent 1, les négatives deviennent 0), donne (1, 1, 0, 0), soit B1. L'association inverse est obtenue en multipliant le motif de sortie par la transposée de M, permettant le rappel de Y à X.
Capacité
La capacité de stockage d'une BAM est donnée par min(m, n), où n est le nombre d'unités dans la couche X et m est le nombre d'unités dans la couche Y. La matrice de poids interne a n x p degrés de liberté indépendants, où n est la dimension du premier vecteur (par exemple, 6) et p est la dimension du second vecteur (par exemple, 4). Cela permet à la BAM de stocker et de rappeler de manière fiable jusqu'à min(n, p) paires de vecteurs indépendantes ; dans l'exemple, min(6, 4) = 4. La capacité peut être augmentée au-delà de cela au prix de la fiabilité, introduisant des bits incorrects dans la sortie.
Stabilité
Une paire (A, B) définit l'état d'une BAM. Pour qu'un motif soit stocké, sa valeur de fonction d'énergie doit occuper un minimum dans le paysage énergétique. Kosko a proposé la fonction de Lyapunov (énergie) E(A, B) = -A M B^T pour le cas bidirectionnel. Lorsqu'un motif apparié est présenté, les neurones changent d'état jusqu'à ce qu'un état stable bidirectionnel (A_f, B_f) soit atteint, ce que Kosko a prouvé correspond à un minimum local de la fonction d'énergie. La BAM discrète est garantie de converger vers un état stable. Pour le cas particulier où A = B, la fonction d'énergie se réduit à E(A, A) = -A M A^T, ce qui correspond à la fonction d'énergie auto-associative du réseau de Hopfield.