Page 1
John Wetters
Autoassociative Memory performance with and without
pseudoinverse weight matrix
Objective
Develop a Matlab program to demonstrate a neural network autoassociative
memory. Show the importance of using the pseudoinverse in reducing cross
correlation matrix errors. Show the performance of the autoassociative
memory in noise. The results are contained in the Matlab file
assoc_mem_demo.m
Theory
Autoassociative memory is used in pattern recognition to store and recall a
set of patterns even if the input vector has been corrupted by noise. For
autoassociative memory the target vector t equals the input vector p. The
weight matrix W is then
T
TTT
TTttttttW **...**
332211
�����
Equation 1
where T is a matrix made up of the target vectors and
T
T
is the transpose of
the target matrix.
To recover the stored pattern from the noisy input we use the symmetrical
hard limit function at –1 and 1, hardlims provided in the neural network
toolbox. If you don’t have the neural network toolbox it is easy to make you
own function, just make a function who’s output is limited to –1 and 1. The
output of the function a, is the hardlims function of
noise
tW *
)*(lim
noise
tWsharda �
Equation 2
We can then calculate the number of errors of the target vector vs. the
recovered vector a by calculating
�
�� aterror
.