| Sparse Distributed Memory | ||||
| Matlab source code buildAddressSpace.m createMemory.m buildTestSet.m hamdist.m Matlab GUI 1 |
The Basic Idea of Distributed StoragePentti Kanerva, in Sparse Distributed Memory, conjectured, and proved, that if perfect retrieval of storage vectors is not required, then a sparse distributed storage system is a usable system for memory purposes. His paper outlines an implementation of a best match machine, which he believes simulates human memory to an extent. Neural address decoders are used to simulate a large address space using far less than conventional space.I decided to implement a sparse distributed storage system, albeit on smaller scale than his. Instead of length 1000 vectors, I used length 100 vectors. Instead of a million hard locations, I had in mind 100-200. I think the implementation is helpful, though, in seeing how distributed storage works, and if I had the space and time to do so, would easily be scalable. I implemented the algorithm and then turned it into a Matlab GUI. I had in mind the singular 100 length case, but I extended it to try to capture the idea more generally. The GUI must be run in Matlab, and I used version 6.5. For a short run through on using the program, see this short readme. A tarball of all the necessary Matlab files can be downloaded here. Links and ReferencesSparse Distributed Memory as a tool for Conscious Software Agents This is an interesting use of a Sparse Distributed Memory, a paper by Ashraf Anwar and Stan Franklin of Institute for Intelligent Systems,The University of Memphis. Using Genetic Algorithms for Sparse Distributed Memory Initialization by Ashraf Anwar, Stan Franklin, and Dipankar Dasgupta. This alerted me to the fact that randomizing hard locations is hard to do well, and that it makes a difference in how your Storage will work. Kanerva does not address this issue in his paper. Sparse Distributed Memory is a book by Pentti Kanerva. Most of the work done in this project was based on chapters 4-7 in this book.
|
A Matlab GUi |