If anything is unclear or you have other questions, please send me mail.
In ~mclennan/pub/594/A-L.dta you will finding a data file containing 12 training pairs:
In this project you will explore the linear associator using this training data. Much of this project can be done without programming if you use software packages like matlab to compute matrix products, SVDs etc. I have indicated where you need to do some programming. Even in these cases, you can use off-the-self subroutines for matrix multiplication etc.
First, normalize the input patterns (but not the target patterns).
a) Compute the covariance matrix C of your (normalized) inputs and attach a printout.
b) Use MatLab [X,S,Y] = svd(C), or another software package, to compute the singular value decomposition of the input covariance matrix, and attach a list of the singular values. [You can use these in (3) to pick a learning rate for the Delta Rule.]
a) Use the Outer Product Rule to compute an associative matrix (weight matrix) for the entire data set.
b) Evaluate the memory's accuracy on each of the training patterns. Report both sum-of-squares error and number of bits in error (using 0.5 as a threshold for distinguishing 0 outputs from 1 outputs).
Actually, you can use any consistent rule (e.g. any fixed threshold) you like. The simplest rule is to interpret any value > 0.5 as 1, since that would be the effect of passing the output through a logistic signoid.
c) Does your memory seem to work better on certain inputs than others? Are there certain pairs of inputs it is more likely to confuse or mix?
d) What does the input covariance matrix [computed in (1a)] tell you about the input patterns?
a) Implement the Batch Delta Rule and use your program to compute an associative matrix for the data. Attach a graph of sum-of-squares error versus iteration.
b) Repeat parts (b-d) of (1) for the resulting memory, and compare the performance of the Batch Delta Rule with the Outer Product Rule.
a) Use MatLab [A,S,B]= svd(P) to compute the SVD of your input matrix.
b) Use (a) to compute P+, the pseudo-inverse of the input matrix, and M = QP+, the optimal linear associator matrix.
c) Compare the performance of this matrix with those given by the Delta Rules in (3) and (4). As usual, consider both sum-of-squares error and incorrect bits.