Using column confidence(s) to generate an "id" SDR

I noticed one of the issues discussed is how to generate a meaningful SDR to be used as an identifier for an “object”.

Here I propose a simple method which is equivalent with voting and also does not require it.
Let’s assume there are 1000 LMs which instead of attempting to guess “What object I am looking at?”, each column is doing its best to predict its own experience stream(*), based on its own local perspective on the newest past sequence of (sensory, motion output, SDR-ID) tuples. Where SDR-ID is just the instant proposal for a “general” SDR.

Then instead of broadcasting “I see SDR-ID x” or “I see SDR-ID y” it predicts a single scalar value (e.g. between 0 and 1) with 0 being “My last predictions totally suck” and 1 the oposite “I made perfect predictions”.

And the current “general” SDR-ID is simply built up from taking the top 30 (out of 1000) best predictive LMs

I assume (hope actually) that after a few iterations the ID stabilizes and that represents the vote “This is what we, as a collective, actually see”.

The reason for this is each LM is assumed to have a limited learning capacity(**), hence their local, narrow expertise should both overlap and be sufficiently spread out such as a collective they “cover” a model of the world.

Notes:
*) experience stream is just the series ->observation->action->observation->… each LM is exposed to and generates.
Further thinking about, it might be useful to encode a “global action” SDR which encodes the past action and is broadcasted as a synthetic description of “what we as a collective did”.
**) The only meaningful reason to have a collective of LMs is to have each learn a partial expertise/perspective about the world in order to save resources and be able to parallelize computation. But each, in certain circumstances, might perform better at “predicting” than most others.

1 Like

Hey @blimpyway, would you mind clarifying for me what you mean by:

…current “general” SDR-ID is simply built up from taking the top 30 (out of 1000) best predictive LMs

I’m interpreting this as something like:
mug_sdr = [0, 1, 0, 0, 0, 1] (active bits at 1 and 5)

And each LM outputs some confidence score for mug_sdr, so we have 1000-dim real-valued vector between [0, 1]. From here, what do you mean by taking the top 30 best predictive LMs? And how can this be aggregated or constructed into an SDR-ID?

1 Like

Sorry for not being clear.
It is a quite different architecture.

  • there-s a layer of several “learners” with the purpose to signal to the higher layer a common, educated opinion regarding “what is this .. thing we-re looking at now?” . I’ll use “learner” instead of LM in order to avoid confusion, they-re quite different beasts, what is similar with monty is that each learner has its own input and they collectively output (not by voting) a SDR which will be further interpreted as “ID of what we are looking at”
  • Each learner owns a “sensor” which sends its owner some limited information about the outside world, and they collectively propose an output “motion” which will most likely alter the sensor information in the following time step.
  • Each learner is implemented as a time series predictor (think TM of HTM) and the information they share with each other is their private anomaly value. Or confidence value which is opposite of anomaly.
  • Unlike monty they do not broadcast laterally their opinion on said object ID, they share their own current confidence value. So each learner’s lateral input (besides sensory input) is a SDR deterministically derived from all learners confidence values. e.g. if there are 1000 learners the laterally broadcasted SDR could be simply generated by top 30 values of 1000.

And that’s about it. No graphs, no supervised training.

Of course one might expect a series of issues with this approach, most obvious one is “what about objects, how do we know whether the object we-re looking at is a cup or a duck?”

First of, that can be implemented in various ways in other layers or modules, e.g. by training a classifier against the generated SDRs
But more important is that it addresses a more fundamental question: In absence of supervision, a kid comes to its own conclusion about what is an object even before naming it. Somehow “objects” in their world become obvious during an unsupervised exploration sometimes called playing. What is the essence of this mechanism that populates a child’s mind with “objects”?

And the bet here is that all objects emerge as “islands of familiarity”.

The followup question is what does an “island of familiarity” means more exactly? It means the “agent” is in a state in which, based on the recent experience (input->action->input->action stream) they can make a reliable prediction of future (action->input) experience stream. e.g. with eyes closed, one knows their hand is touching an elephant’s belly, they have reliable expectations about what their hand will feel when it makes various movements in space and even about what their eyes will see when they will open.

space frame graphs, composition (bike is made of wheels+fork+pedals+frame), etc.. are carts emerging on higher/abstract layers. Predictability of experiencing stream is the horse which both pulls and (together with other mechanisms) creates these “carts”.

1 Like