Sparse distributed memory (SDM) is a mathematical model of human long-term memory introduced by Pentti Kanerva in 1988 while he was at NASA Ames Research Center. This memory exhibits behaviors, both in theory and in experiment, that resemble those previously unapproached by machines – e.g., rapid recognition of faces or odors, discovery of new connections between seemingly unrelated ideas, etc. Sparse distributed memory is used for storing and retrieving large amounts ( 2 1000 {\displaystyle 2^{1000}} bits) of information without focusing on the accuracy but on similarity of information. There are some recent applications in robot navigation and experience-based robot manipulation.
General principle It is a generalized random-access memory (RAM) for long (e.g., 1,000 bit) binary words. These words serve as both addresses to and data for the memory. The main attribute of the memory is sensitivity to similarity. This means that a word can be read back not only by giving the original write address but also by giving one close to it, as measured by the number of mismatched bits (i.e., the Hamming distance between memory addresses). SDM implements transformation from logical space to physical space using distributed data representation and storage, similarly to encoding processes in human memory. A value corresponding to a logical address is stored into many physical addresses. This way of storing is robust and not deterministic. A memory cell is not addressed directly. If input data (logical addresses) are partially damaged at all, we can still get correct output data. The theory of the memory is mathematically complete and has been verified by computer simulation. It arose from the observation that the distances between points of a high-dimensional space resemble the proximity relations between concepts in human memory. The theory is also practical in that memories based on it can be implemented with conventional random-access memory elements.
Definition Human memory has a tendency to congregate memories based on similarities between them (although they may not be related), such as "firetrucks are red and apples are red". Sparse distributed memory is a mathematical representation of human memory, and uses high-dimensional space to help model the large amounts of memory that mimics that of the human neural network. An important property of such high dimensional spaces is that two randomly chosen vectors are relatively far away from each other, meaning that they are uncorrelated. SDM can be considered a realization of locality-sensitive hashing. The underlying idea behind a SDM is the mapping of a huge binary memory onto a smaller set of physical locations, so-called hard locations. As a general guideline, those hard locations should be uniformly distributed in the virtual space, to mimic the existence of the larger virtual space as accurately as possible. Every datum is stored distributed by a set of hard locations, and retrieved by averaging those locations. Therefore, recall may not be perfect, accuracy depending on the saturation of the memory. Kanerva's proposal is based on four basic ideas:
The Boolean space { 0 , 1 } n {\displaystyle \{0,1\}^{n}} , or 2 n {\displaystyle 2^{n}} points in 10 0 < n < 10 5 {\displaystyle 10^{0}<n<10^{5}} dimensions, exhibits properties which are similar to humans' intuitive notions of relationships between the concepts. This means that it makes sense to store data as points of the mentioned space where each memory item is stored as an n-bit vector. Neurons with n inputs can be used as address decoders of a random-access memory Unifying principle: data stored into the memory can be used as addresses to the same memory. Distance between two points is a measure of similarity between two memory items. The closer the points, the more similar the stored vectors. Time can be traced in the memory as a function of where the data are stored, if the data are organized as sequences of events.
The binary space N
The SDM works with n-dimensional vectors with binary components. Depending on the context, the vectors are called points, patterns, addresses, words, memory items, data, or events. This section is mostly about the properties of the vector space N = { 0 , 1 } n {\displaystyle \{0,1\}^{n}} . Let n be number of dimensions of the space. The number of points, or possible memory items, is then 2 n {\displaystyle 2^{n}} . We will denote this number by N and will use N and 2 n {\displaystyle 2^{n}} to stand also for the space itself. Concepts Related to the space N: { 0 , 1 } n {\displaystyle \{0,1\}^{n}}
… excerpt ends here. Continue reading the full article.


