The Glossary says:
Sparse Distributed Representation (SDR)
A binary vector with significantly more 0 bits than 1 bits. Significant overlap between the bit assignments in different SDRs captures similarity in representational space (e.g., similar features).
However, this definition seems somewhat over-specific. As ChatGPT says:
Synaptic Strength (Analog Component) – The amount of neurotransmitter released and the receptor response at the dendrite can vary, affecting the strength of the signal.
and
Neurotransmitter Type and Receptor Response – Different neurotransmitters and receptor types can modify the effect of a synapse, influencing the neuron’s response in more complex ways.
So, biological SDR’s can take advantage of more than one bit of information per synapse. In Monty, SDRs could use vectors of multiple-bit fields to achieve a similar result.
For example, “Significant overlap” could be assessed by calculating the cosine similarity of the vectors (i.e., multiplying corresponding fields and summing the result). Indeed, checking for “significant overlap between the bit assignments in different SDRs” seems like a special case of a cosine similarity test.
Of course, this begs the question of what data should be represented in the fields. Since we don’t know what information will be most useful, I’d suggest throwing lots of data elements into the mix and asking Monty’s SDR mechanism(s) to find interesting coincidences. Here are some possibilities for data elements:
- body-centric location of the originating sensors
- recognized features (e.g., color: green)
- when the information was initially received
- which sensors and modules were involved
- which of the modules’ “input ports” were used
For each data element, we might:
- generate a unique ID (e.g., URI, URL, UUID)
- calculate several hash functions on each ID
- bump the field indexed by each hashed ID
- calculate cosine similarity for pairs of vectors
In summary, the biological SDR seems somewhat tied to the fine granularity of nerves, dendrites, etc. Monty’s granularity is much coarser, being tied to (input ports on) cortical columns. So, using multi-bit fields might provide a more “analog” response, yielding better results in some cases…