Bidirectional Associative Memory (BAM) is a supervised learning model in Artificial Neural Network. This is hetero-associative memory, for an input pattern, it returns another pattern which is potentially of a different size. This phenomenon is very similar to the human brain. Human memory is necessarily associative. It uses a chain of mental associations to recover a lost memory like associations of faces with names, in exam questions with answers, etc.
In such memory associations for one type of object with another, a Recurrent Neural Network (RNN) is needed to receive a pattern of one set of neurons as an input and generate a related, but different, output pattern of another set of neurons.
Why BAM is required?
The main objective to introduce such a network model is to store hetero-associative pattern pairs.
This is used to retrieve a pattern given a noisy or incomplete pattern.
When BAM accepts an input of n-dimensional vector X from set A then the model recalls m-dimensional vector Y from set B. Similarly when Y is treated as input, the BAM recalls X.
- Storage (Learning): In this learning step of BAM, weight matrix is calculated between M pairs of patterns (fundamental memories) are stored in the synaptic weights of the network following the equation
- Testing: We have to check that the BAM recalls perfectly for corresponding and recalls for corresponding . Using,
All pairs should be recalled accordingly.
- Retrieval: For an unknown vector X (a corrupted or incomplete version of a pattern from set A or B) to the BAM and retrieve a previously stored association:
- Initialize the BAM:
- Calculate the BAM output at iteration :
- Update the input vector :
- Repeat the iteration until convergence, when input and output remain unchanged.
- Initialize the BAM:
Limitations of BAM:
- Storage capacity of the BAM: In the BAM, stored number of associations should not be exceeded the number of neurons in the smaller layer.
- Incorrect convergence: Always the closest association may not be produced by BAM.
- ANN - Bidirectional Associative Memory (BAM) Learning Algorithm
- Bidirectional Associative Memory (BAM) Implementation from Scratch
- Introduction to ANN | Set 4 (Network Architectures)
- Heart Disease Prediction using ANN
- Difference between ANN, CNN and RNN
- ANN - Implementation of Self Organizing Neural Network (SONN) from Scratch
- ANN - Self Organizing Neural Network (SONN)
- ANN - Self Organizing Neural Network (SONN) Learning Algorithm
- Deep Learning | Introduction to Long Short Term Memory
- Long Short Term Memory Networks Explanation
- Text Generation using Recurrent Long Short Term Memory Network
- RPA Life Cycle
- Difference between Text Mining and Natural Language Processing
- Python - Bamboolib for Pandas
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.