Bidirectional associative memory (BAM) is a type of recurrent neural network. BAM was introduced by Bart Kosko in 1988.[1] There are two types of associative memory, auto-associative and hetero-associative. BAM is hetero-associative, meaning given a pattern it can return another pattern which is potentially of a different size. It is similar to the Hopfield network in that they are both forms of associative memory. However, Hopfield nets return patterns of the same size.
It is said to be bi-directional as it can respond to inputs from either the input or the output layer.[2]
A BAM contains two layers of neurons, which we shall denote X and Y. Layers X and Y are fully connected to each other. Once the weights have been established, input into layer X presents the pattern in layer Y, and vice versa.
The layers can be connected in both directions (bidirectional) with the result the weight matrix sent from the X layer to the Y layer is
W
WT
Imagine we wish to store two associations, A1:B1 and A2:B2.
These are then transformed into the bipolar forms:
From there, we calculate
M=\sum{
T | |
X | |
i |
Yi}
T | |
X | |
i |
M=\left[{\begin{array}{*{10}c} 2&0&0&-2\\ 0&-2&2&0\\ 2&0&0&-2\\ -2&0&0&2\\ 0&2&-2&0\\ -2&0&0&2\\ \end{array}}\right]
To retrieve the association A1, we multiply it by M to get (4, 2, -2, -4), which, when run through a threshold, yields (1, 1, 0, 0), which is B1.To find the reverse association, multiply this by the transpose of M.
The memory or storage capacity of BAM may be given as
min(m,n)
n
m
The internal matrix has n x p independent degrees of freedom, where n is the dimension of the first vector (6 in this example) and p is the dimension of the second vector (4). This allows the BAM to be able to reliably store and recall a total of up to min(n,p) independent vector pairs, or min(6,4) = 4 in this example. The capacity can be increased above by sacrificing reliability (incorrect bits on the output).
A pair
(A,B)
The stability analysis of a BAM is based on the definition of Lyapunov function (energy function)
E
(A,B)
(A,B)
(Af,Bf)
The Energy Function proposed by Kosko is
E(A,B)=-AMBT
A=B
E(A,B)=-AMAT