Java implement code:
https://github.com/Andy-Gong/machine-learning-algorithm/tree/master/src/main/java/algorithms/BAMNN
Bidirectional Associative Memory NeuralNetwork
Summary
- A bidirectional associative memory stores a set of pattern associations by summing bipolar correlation matrices (an n by m outer product matrix for each pattern to be stored).
- The architecture of the net consists of two layers of neurons, connected by directional weighted connection paths.
- The net iterates, sending signals back and forth between the two layers until all neurons reach equilibrium (i.e., until each neuron's activation remains constant for several steps).
- Because the weights are bidirectional and the algorithm alternates between updating the activations for each layer, we shall refer to the layers as the X-layer and the Y-layer (rather than the input and output layers).