World models that ignore human beliefs predict the wrong actions, new research shows
Back to Tutorials
aiTutorialbeginner

World models that ignore human beliefs predict the wrong actions, new research shows

August 22, 202620 views5 min read

Learn how to build a simple mental world model that demonstrates how human-like beliefs and intentions influence physical actions, inspired by recent research on AI world models.

Introduction

In this tutorial, you'll learn how to build a simple mental world model using Python and basic machine learning concepts. This tutorial is inspired by recent research showing that world models which consider human beliefs, intentions, and mental states perform better than traditional physics-only models. While we won't build a full-fledged AI like Sora or Genie, you'll understand the core principles of mental modeling and how to implement a basic version that considers both physical and mental states.

By the end of this tutorial, you'll have created a small simulation that shows how a character's mental state (like belief or intention) affects their physical actions in a simple environment.

Prerequisites

To follow along with this tutorial, you'll need:

  • A computer with Python installed (version 3.6 or higher)
  • Basic understanding of Python programming concepts
  • Optional: A text editor or IDE like VS Code or PyCharm

We'll use only built-in Python libraries, so no additional installations are required.

Step-by-Step Instructions

Step 1: Set Up Your Python Environment

First, create a new Python file called mental_world_model.py. Open it in your text editor. This file will contain all our code for this tutorial.

Step 2: Define the Basic Character Class

We'll start by creating a class to represent our character. This character will have both physical and mental attributes.

class Character:
    def __init__(self, name, position, belief, intention):
        self.name = name
        self.position = position  # Physical location
        self.belief = belief      # Mental state: what the character believes
        self.intention = intention  # Mental state: what the character wants to do

    def __str__(self):
        return f"{self.name}: Position {self.position}, Belief: {self.belief}, Intention: {self.intention}"

Why this step? This class defines the basic structure of our character, including both physical attributes (position) and mental states (belief and intention). This is the foundation of our mental world model.

Step 3: Create a Simple Environment

Next, we'll create a simple environment where our character can move around.

class Environment:
    def __init__(self, width, height):
        self.width = width
        self.height = height
        self.characters = []

    def add_character(self, character):
        self.characters.append(character)

    def update_character_position(self, character, new_position):
        character.position = new_position

    def get_character_by_name(self, name):
        for char in self.characters:
            if char.name == name:
                return char
        return None

Why this step? We're creating a basic environment where our characters can exist and move. This environment will help us visualize how mental states influence physical actions.

Step 4: Implement Mental State Influence on Actions

Now we'll create a function that demonstrates how a character's mental state affects their physical action.

def decide_action(character, environment):
    """Decide what action to take based on mental states"""
    # If the character believes the goal is in the north
    if character.belief == "north":
        print(f"{character.name} believes the goal is north.")
        return (character.position[0], character.position[1] - 1)
    # If the character believes the goal is east
    elif character.belief == "east":
        print(f"{character.name} believes the goal is east.")
        return (character.position[0] + 1, character.position[1])
    # If the character believes the goal is south
    elif character.belief == "south":
        print(f"{character.name} believes the goal is south.")
        return (character.position[0], character.position[1] + 1)
    # If the character believes the goal is west
    else:
        print(f"{character.name} believes the goal is west.")
        return (character.position[0] - 1, character.position[1])

Why this step? This function simulates how a character's mental state (belief) directly influences their physical action. This is the core idea behind mental world modeling: mental states affect behavior.

Step 5: Create a Simulation Loop

We'll now create a simulation that shows how our character moves based on their beliefs.

def run_simulation():
    # Create environment
    env = Environment(10, 10)
    
    # Create a character with initial mental and physical states
    char = Character("Alice", (5, 5), "north", "find treasure")
    env.add_character(char)
    
    print("Initial state:")
    print(char)
    
    # Simulate a few moves
    for i in range(3):
        print(f"\nStep {i+1}:")
        new_position = decide_action(char, env)
        env.update_character_position(char, new_position)
        print(f"New position: {char.position}")
        print(char)

Why this step? This loop runs a simulation showing how our character's belief (north) affects their movement. Each iteration shows how mental states influence physical actions over time.

Step 6: Run the Simulation

Finally, we'll add the code to actually run our simulation:

if __name__ == "__main__":
    run_simulation()

Why this step? This ensures that when you run the Python file, it will execute the simulation we've created. This is standard Python practice for modular code.

Step 7: Test Your Model

Save your file and run it in your terminal using:

python mental_world_model.py

You should see output showing how the character's belief influences their movement. Try changing the character's belief to "east", "south", or "west" to see how it affects their path.

Summary

In this tutorial, you've built a simple mental world model that demonstrates how human-like mental states (beliefs) can influence physical actions. While this is a very basic simulation, it shows the core principle behind the research mentioned in the article: that world models which include mental variables perform better than those that only consider physical states.

This model is not as complex as systems like Sora or Genie, but it illustrates how mental states can be integrated into world models. In real-world applications, you'd use more sophisticated methods like neural networks or probabilistic models to handle complex mental states and their interactions with physical environments.

Source: The Decoder

Related Articles