Bidirectional associative memory

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.

Once the weights have been established, input into layer X presents the pattern in layer Y, and vice versa.

Thus, the weight matrix is calculated in both directions.

These are then transformed into the bipolar forms: From there, we calculate

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

" is the number of units in the X layer and "

[3] 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.

[1] The capacity can be increased above by sacrificing reliability (incorrect bits on the output).

To store a pattern, the energy function value for that pattern has to occupy a minimum point in the energy landscape.

The stability analysis of a BAM is based on the definition of Lyapunov function (energy function)

is presented to BAM, the neurons change states until a bi-directionally stable state

is reached, which Kosko proved to correspond to a local minimum of the energy function.

The discrete BAM is proved to converge to a stable state.

The Energy Function proposed by Kosko is

corresponds to Hopfield's auto-associative energy function.