Unexpected (Impressive) Things I'm Learning About Monty

Being new to Monty, I set out to explore and learn about Monty from the inside by first running some existing experiments. I watched Monty resolve that the curve of a banana was not the curve of the bowl positioned before it. And Monty settled on its conclusion as to what it was (its Most Likely Hypothesis, MLH) fairly early and quickly.

I decided to test an hypothesis of my own that, being based on the principles found in the Thousand Brains Theory, Monty might exhibit some similar cognitive failures similar to those seen in humans. I set out to examine three classic psychological characteristics found in humans–predictable errors we all are prone to make under the right conditions. These are:

1. Confirmation Bias
2. Inattentional Blindness
3. Cognitive Dissonance

Ultimately, I was hoping to demonstrate that by adding language as a source of information for Monty, a way of sharing simulations as humans do when sharing meanings, Monty was also prone to the same shortfalls of cognitive judgment as we are. This would have many implications for how we use Monty as a trusted agent, as well as for possible insights into the mechanisms in humans that result in these and other cognitive mishaps.

That was my goal. I was excited. I was soon disappointed to discover that Monty seems quite resistant to these failings, try as I did to induce them. My method was not to mess with language at this stage. Instead, I started with the Global State Generator (GSG). I added some code as if a new source (from language) had planted a specific simulation in Monty.

My first test was to try “priming” Monty with the false idea that it was sensing a banana. I expected to observe certain delays in the arrival at the correct MLH. Could I rig it so that Monty would lean towards “banana” as the MLH over what its senses were telling it? With the GSG modified, I ran the “randrot_noise_10distinctobj_surf_agent” experiment. Monty thought the “meat can” was a banana for a fleeting second until its sensory input led to voting between the Learning Modules (LMs) that quickly ruled out “banana.” This attempt failed to induce some form of Confirmation Bias. I could not induce a bias in its judgment. It correctly saw the “meat can.”

I then tried inducing a kind of Inattentional Blindness–think of the experiment where radiologists were presented with CT scans of human lungs and tasked with finding cancerous nodules. 83% failed to notice the faint outline of a gorilla placed in the last few slides. For Monty, I turned up the volume on the “banana” (serving as the analog to focusing intently on the lung nodules) to +50 to simulate really focusing on the task. I had hoped that the presence of the “meat can” (the analog of the gorilla) would be missed in some measure. But no, the LM reached the correct assessment of the MLH being the “potted meat can” in 26 steps.

Finally, I tried inducing Cognitive Dissonance in Monty. I thought of the 1974 case of Indiana Congressman Earl Landgrebe, a staunch supporter of President Nixon, who, when confronted with the discovered facts of the incriminating White House tapes, said-- “Don’t confuse me with the facts. I’ve got a closed mind." (Forgive my old reference but I remember this as a canonical example of cognitive dissonance in the wild.) I tried presenting “bowl” features as it was also sensing the “meat can”-- a kind of inverse Landgrebe reaction in which the facts of the “meat can” would conflict with the erroneous reports of the “bowl.” Would Monty waffle between the two in a state of unresolved conflict? No. Monty exhibited no conflict at all and almost instantly settled on “meat can” as the MLH.

What I came to see was that, unlike humans, Monty doesn’t have a Thalamus to induce certain biases. It has no control mechanism (as I tried unsuccessfully to create) to mute sensory input to satisfy some Top-Down goal of detecting a banana where none exists. Monty’s judgments seem to be solely driven from the Bottom-Up starting with the sensors. Our bias in initially seeing a snake in the leaves that turns out to be a stick has evolutionary protective advantages that Monty does not have or need. Our “mistakes” in cognition are sometimes artifacts of a system evolved to be “fit enough” to survive. Our brain trades off pure accuracy (it’s most likely a stick") for safety (“it could be a snake”). Monty will move and sense to confirm it’s a stick every time. Monty is fearless in that way. Maybe it’s the lack of such evolutionarily rooted phenomenal experiences that makes Monty such an objective observer.

I’ll admit to being disappointed I couldn’t trick Monty in the ways I thought I could. But, doing this much has made me appreciate the resilient architecture of Monty even more. There’s a “Wisdom of the Crowd” aspect to Monty that runs quite deep and is hard to defeat. That makes Monty even more interesting to study and maybe work on. Monty’s objectivity and resilience to the effects of noise and extraneous information, makes it a new kind of Truth Seeker, a hard realist, that’s different from humans, and certainly different from other AIs that lack spatial grounding. As such, I found that Monty is hard to bribe and hard to make accept counterfactual claims about the world it senses.

Like I said at the outset, I’m new to Monty. I have a lot to learn. But I already have a new appreciation for the team that has built this early version of Monty. By choosing not to emulate the human brain in all facets, you have made both a practical and a wise choice. Consider where air travel would be today if engineers and designers had persisted (as some tried to do) in making wings that flapped like birds.

5 Likes

Thank you for the kind words, @Bryce_Bate. We think Monty will be very resilient to adversarial conditions. :mechanical_arm:

These were interesting experiments to run! Our position is that humans also don’t have these kinds of problems in areas of the cortex that have significant direct sensory input. A thought experiment we use quite often is identifying objects inside a box with just your hand. If, in the box, your fingers move from a cup to a basketball, you quickly realize that you’re now on a basketball. Even if you were only touching each object with a small sensory patch, the hypothesis you have will switch rapidly. While we wouldn’t expect all these higher-level human biases in lower sensory regions, we would expect Monty to be vulnerable to some of the same optical illusions humans are - those might be fun to try out. :hourglass_not_done:

That said, it might help if you shared your code to see what you’re changing - the Goal State Generator does not modify the inputs to the columns, it essentially computes the action output of a column, so playing with it won’t affect anything of the input to a column. Since we don’t have top-down connections yet, you would have to directly modify the hypothesis space of an LM to do this. So setting self.evidence for one of the hypotheses higher at the start. We would expect that this would slow down recognition or even make it converge on the wrong object if it is set high enough and the distractor object is similar.

We think that the kinds of human psychological errors and biases you mentioned might stem from not having the grounding of direct sensory input. If someone learns the concept of democracy, there are no modalities that directly sense that, you’re in essence building an understanding based on a hierarchy of other models that you could directly sense. A democracy is built of humans (directly sensed) and institutions (not directly sensed). Institutions are built of humans and buildings (directly sensed) and policies (not directly sensed) and so on. Because there is less direct real-world stimulus for these abstract concepts, this is where biases and cognitive mistakes arise. @jhawkins talks about this being an important consideration for human cognition in the “False Beliefs” section of his book A Thousand Brains.

As we add abstract thought, language and reasoning capabilities to Monty, we may be able to start showing similar kinds of biases and how to prevent them in Thousand Brains Systems.

To the comment on there being no Thalamus in Monty: Conceptually, the role we propose for the Thalamus in the “Hierarchy or Heterarchy?” paper (reference frame transforms - see below for link) is implemented within each learning module. This follows our principle that Monty has to have the derived properties of the neocortex (and associated structures), but we don’t necessarily want to implement them in the same way that biology has been forced to.

“Hierarchy or Heterarchy? A Theory of Long-Range Connections for the Sensorimotor Brain”. You can read the plain language explainer here which also has links to the paper, and a video where @viviane walks through these important additions to the Thousand Brains Theory.

4 Likes

So much to learn. Thanks @brainwaves for taking the time to explain a bit more and to share further sources.

Several key things I believe I’ve learned from this:

  1. Abstract or higher-order concepts like democracy, whose representation is not directly connected to sensory input, may be more susceptible to cognitive mistakes.

  2. Monty does not yet have Top-Down connections to the LMs.

  3. Monty’s LMs each has (or will have) its own Thalamus. This means the gatekeeping function is localized and not a central “gain control.”

Small wonder my attempts at “priming” had little or no effect. They really weren’t connected in the way I thought they were. Here’s what I modified (guided rightly or wrongly by Gemini in this effort). I edited the GSG’s get_goal_state method like this:

def get_goal_state(self, current_hypotheses, sensors):
“”"
This is where the ‘Banana’ bias (+50) got injected
into the evidence tally.
“”"

# --- INJECTION START ---
# Manually boosting the 'evidence' for the target object 
# was intended to simulate a Top-Down prime/bias.
target_object = "banana_01" 

for hypothesis in current_hypotheses:
    if hypothesis.object_id == target_object:
        # We add +50 to the evidence tally to "stuff the ballot box"
        hypothesis.evidence += 50.0 
# --- INJECTION END ---

I think I now understand why that approach didn’t work. First, the GSG “essentially computes the action output of a column” not the input to it. In addition, by localizing the ‘Thalamic’ gatekeeping function within each LM rather than having a central relay, the overall system seems much more resistant to, what I’ll call, “voting irregularities.” This arrangement seems to favor a fairer, more independent vote involving all senses than one in which the ballot box has been stuffed from a central source.

While I still may not be saying it correctly (certainly not understanding it as well as others), I think my goal of finding potential correlates of human cognitive error in Monty is still worth pursuing in the project, maybe just not right now. I think it is still worth asking, “To what extent does human cognitive fallibility, driven in large measure by evolutionary changes that favored the ‘most fit’, manifest themselves in principles that find their way to the Monty implementation?”

I recognize that the gap between that answer and me saying to myself, “Whoo-hoo! I got it to run!” is huge. I know it’s not efficient, but I like working both ends like that. Otherwise, I’ll forget why the work was important to begin with.

1 Like