Neurithmic Systems
Finding the Fundamental Cortical Algorithm of Intelligence

Classification of Noisy Weizmann EDGE snippets

We created noisy versions of our edge versions of the Weizmann snippets and tested the ability of the model to correctly classify the noisy versions, having been trained (single-trial) only on the orginals. We trained on the 90 originals and tested on the 90 40% noisy snippets (example pair shown below); so this is a "train != test" condition. G (familiarity) values averaged 67% averaged over all mac activations across all frames of all episodes.  This corresponded to very high (likely over 95%) trace similarity between the memory trace of the original snippet and its 40% noisy version.  Snippet length ranged from 12 to 29 frames (ave.~20)].   Classification accuracy was 98% (88 out of 90).


What's going on here? How does classification work in Sparsey?

Sparsey assigns sparse distributed codes (SDCs) to represent each successive frame, as it experiences the (preprocessd) video input stream. It assigns each code based on the spatiotemporal similarity of the current input to all previously experienced spatiotemporal inputs. We refer to any particular spatiotemporal input as a "moment". Sparsey's power lies in the fact that it evaluates the similarity to all previously experienced input moments simultaneously (in the sense of algorithmic parallelism, not machine parallelism), i.e., in time that remains constant no matter how many moments are experienced (learned). We can think of each moment as a point in very high-dimensional space. Sparsey's code selection algorithm (CSA), which operates (usually in a simplified mode) during recognition, will reactivate the same SDC assigned to a learning moment if the recognition moment is within a hypersphere centered on the point corresponding to the learning moment. The radius of the sphere is a function of model parameters and can be dynamically changed from one moment to the next during learning and recognition. The frames of the non-noisy training snippet (above left) had about 230 pixels active (out of 10,080). The frames of the 40% noisy snippet (above right) had the same numbers of active pixels but 40% of those pixels were changed with respect to the corresponding non-noisy frame. The fact that each noisy moment is mapped into the same code as the non-noisy moment means that the parameters of this particular run were such that the hypersphere around the point corresponding to each learned moment has a radius of at least 40% of 230, i.e., 92 pixels.

In this particular example, we applied noise by randomly turning off an on-pixel and turning on an off-pixel witin a pixel or two of the original. However, since every mac in this model had the entire 10,080-pixel input surface as its receptive field, we would have gotten the same result if we had "moved" 40% of the on-pixels anywhere on the input surface (i.e., salt and pepper noise), or if we had applied virtually any other kind of more structured noise (i.e., substituting whole 40% portions of one frame into another). This is because the CSA evaluates similarity on wholesale magnitude of overlap. That is, when a Sparsey mac evaluates similarity to previously experienced (and thus, stored) input moments, it is blind to the specifics of the current input (though not, to the temporal context of the current input).

This example is purely to describe a particular type of invariance exhibited by a single Sparsey mac. It uses a model with only one internal level of macs, and all of the those macs "see" the entire input surface. This is not architecture that an realistic Sparsey model would have. As can be seen on most of the other pages on this site, hierarchical design is essential to the global concept of operations of Sparsey. That is, there will be multiple levels, and the macs on each level will "see" different, though overlapping, portions of the field below them (which for higher levels, means portions of the subjacent field of macs).