Learning Monty: Q&A on Reference Frames, Objects, and Code Experiments

Hello everyone!

If you like running experiments with Monty and studying the code, this post might be for you. While the task roadmap provides a clear picture of what’s next for system development, it can sometimes feel a bit technical since it requires a lot of broad context.

Learning Monty and preparing to make real contributions takes time, but you can already make a difference just by sharing what you’ve learned so far. I am a beginner and there are still a few concepts I’m trying to wrap my head around, and I’d be incredibly grateful if you could help clarify them (which I’m sure would help other newcomers, too!).

Here are a few questions on my mind:

  • Object Individuation: What does Monty use as an individuation criterion? In other words, what actually counts as an “object”?

  • Reference Frames: When is a new reference frame created? Is it when the old one no longer fits the incoming data?

  • Dimensions: What is a “dimension” in Monty, and can new ones be added?

  • Sensorimotor & Geometry: How does Monty recognize objects regardless of their position and orientation? Does it apply geometric transformations to them, and can these transformations be learned?

  • Manipulation vs. Observation: Are the models Monty builds designed to facilitate object manipulation, or are they purely observational?

If any of these questions are too broad or vague, please let me know! Thanks in advance for any insights.

1 Like

Hi @SafinVladislav, these are good questions.

Object Individuation: What does Monty use as an individuation criterion? In other words, what actually counts as an “object”?

Conceptually, Monty treats an object as a collection of features at locations in a common reference frame. Operationally, during pretraining/learning we currently present objects in isolation, so the learning setup supplies the initial object boundary, i.e. observations from an episode are used to learn one object model. During inference, this assumption is not required as burst sampling lets Monty update its hypotheses when incoming observations shift from one object to another.

Reference Frames: When is a new reference frame created? Is it when the old one no longer fits the incoming data?

I think you have the right idea. As Monty moves over an object, it accumulates evidence for hypotheses over the object models already in memory. When no stored model remains a possible explanation of the observations, Monty reports a no_match and creates a new object model (which has its own object-centric reference frame). If an existing model remains a plausible match, Monty associates the observations with that model’s reference frame rather than creating a new one. During learning, those observations can then update and extend the existing model.

Dimensions: What is a “dimension” in Monty, and can new ones be added?

Hm, I’m not sure what you mean exactly by “dimension”, but two different things come to my mind:

  1. A spatial dimension in which movement occurs (current Monty expects movement in 3D Euclidean space)

  2. A space of features, in which a Monty’s sensor module can extract.

Would you mind clarifying what you mean in this question?

Sensorimotor & Geometry: How does Monty recognize objects regardless of their position and orientation? Does it apply geometric transformations to them, and can these transformations be learned?

As I mentioned in the first answer, an object in Monty is a collection of features at locations. During recognition, Monty maintains a list of hypotheses about both the object identity and pose. As Monty moves, it measures a displacement in the common body/world frame. For each of its hypotheses, it rotates that displacement and the sensed feature pose into the learned model’s reference frame, then checks whether the stored features and incoming observations match. Depending on how well (or not well) these match, Monty increments (or decrements) evidence for each hypothesis. The docs on Evidence Based Learning Module explains more about hypothesis and evidence updates.

This process continues until only one hypothesis is left (where Monty has recognized the object and its pose) or some other terminal conditions are met. The rules for applying rotations and translations are currently explicit geometric operations, not learned functions. The transformations are described mathematically in our DMC paper and the Reference Frame Transformation page goes into details of how poses and movements are mapped between frames.

Manipulation vs. Observation: Are the models Monty builds designed to facilitate object manipulation, or are they purely observational?

Yes! The learned models of Monty are designed to facilitate object manipulation and not just observation. Since they encode an object’s features in a structured reference frame, they can be used to predict observations and guide actions toward particular locations or features. For example, we have a hypothesis-driven action policy, which uses learned models to choose informative movements for faster object recognition. We are also actively exploring how to use these same learned models to generate goals and interact with the objects (this playlist has recordings of discussions related to your question).

1 Like

Hello, @hlee!

Thank you for your answers! They explain the workings of Monty clearly, and I will certainly think them through.

If you have a minute, you can entertain yourself by answering one or two of the following questions (they might be quite abstract and far-fetched, or perhaps they are not aligned with the project’s current goals):

For example, in the real world, we can consider a single thing (like a chair) either as one object or as a collection of separate parts (legs, seat, backrest, etc.). Or, for example, we see a book (that we have never seen before) on a table and recognize them as two objects (not one). But when we look at the table from a distance, we may not even notice the book. How could Monty do that (in the future)?

How flexible are stored representations (what kinds of changes to an object can they tolerate)? Does Monty know what classes of objects are (two objects of one class can be very different—like a tiny pine and a giant oak—yet both are trees)?

I just meant that the brain creates lots of dimensions (like the length of birds’ necks). There are lots of other examples: color, size, smoothness, weight, temperature, etc. How could Monty represent (and create) them?

What would happen if I took a metal rod, for example, and bent it? Would it still be recognized as a rod?

Hi @SafinVladislav, we’re at an in-person focus week right now, so there will be a short delay in reply. We’ll start looking into your questions next week. Thank you for your patience!

1 Like

Of course, whatever works best for you.