Use Constrained Grid Object Models for All Benchmark Experiments

Evaluate and finetune the GridObjectModels to work with all of our benchmark experiments with new hierarchical configs.

Most of our benchmark configs still rely on models that use the DisplacementGraphLM during learning. We have developed the constrained object model (GridObjectModel class), which has many notable advantages. For example, this learning module will likely be key to making progress in unsupervised learning, and so more accurately reflects a general learning module that can handle the challenges of learning in the real world.

One issue preventing a simple switch to the constrained object models in all of our benchmarks is that a key parameter of the GridObjectModel is the physical scale of the reference frame that it contains, and therefore the objects it can effectively model (max_size). This relates to how we believe cortical columns will have a preferred scale (e.g., smaller scales for columns in V1, and larger scales for columns in IT cortex, just as grid cells in entorhinal cortex have different spatial scales). However, as most of our configs rely on a single LM, we are limited in our ability to handle different scales in a way that a hierarchical visual cortex could. This is problematic, as the scale of objects in YCB can vary significantly, from the small dice, to large food packages.

A suggested approach is to change our core benchmarks configs to leverage a hierarchical Monty system. Some experimentation will likely be necessary, but something on the order of three stacked LMs with progressively increasing spatial scales will likely be sufficient. Ideally these would match the different scales we use in the hierarchical Monty specified in our compositional benchmarks, which already use the constrained object models (note that at the time of writing, these configs are still in flux).

With the above change, we should be able to maintain reasonable performance on our YCB benchmarks while using the GridObjectModel class. Note that this work may require examining the convergence dynamics of Monty (in particular the configured match_criterion), as for certain objects, only 1 LM in the hierarchy may have a high-quality model.

This update could work in concert with an improved exploration policy for the distant agent. Early tests with salience-based learning policies suggest that these naturally support sampling in a scale-invariant way. In particular, this policy will perform smaller saccades to explore a smaller object such as a dice, and larger saccades to explore an object like a cereal box; this is in contrast to the naive scan and surface-agent learning policies, which will sample many more points for a larger object.

Finally, this change could enable a significant simplification of the Monty code-base by removing the FeatureGraphLM and DisplacementGraphLM classes. Even if some elements of the latter are cherry-picked for the purpose of a hybrid node and edge-matching LM, this would still enable the removal of >1k lines of complex code. Note that such a change will require re-writing dozens of associated unit tests.




Help Us Make This Page Better

All our docs are open-source. If something is wrong or unclear, submit a PR to fix it!

Make a Contribution

Learn how to contribute to our docs


Did this page help you?