Acte 1

L'environnement

Avant d'entraîner un modèle à comprendre un monde, il faut créer ce monde — et le convertir en images. Car une machine ne voit pas des règles : elle voit des matrices de nombres.

Le principe

Chaque état du monde est une image

Le monde simulé est une grille de 10 × 10 cases. Elle contient un agent (le personnage), une boîte à pousser, une cible, et des murs sur tout le périmètre. Rien de plus.

Mais ce qui est important, c'est comment ce monde est représenté. À chaque instant, la grille est convertie en une matrice 10 × 10 de valeurs flottantes — exactement comme une image en niveaux de gris. C'est cette matrice que le modèle recevra en entrée.

Élément Valeur dans la matrice Couleur
Case vide 0.0 Blanc
Mur 0.2 Gris foncé
Cible 1.0 Vert
Agent 0.5 Bleu
Boîte 0.8 Rouge
Boîte sur cible 0.9 Orange
Agent sur cible 0.6 Violet

C'est une convention arbitraire, mais elle a du sens : les valeurs sont ordonnées, l'encodeur CNN peut les différencier par les filtres qu'il apprend. L'essentiel, c'est que tout état possible du monde est entièrement décrit par cette image — aucune information cachée.

Démo interactive

Jouez — et regardez ce que voit le modèle

Déplacez l'agent avec les flèches ou WASD. Poussez la boîte sur la cible . À droite, la matrice de valeurs flottantes se met à jour en temps réel : c'est exactement ce que l'encodeur recevra lors de l'entraînement.

Déplacez l'agent avec les flèches ou WASD

ou WASD

Ce que voit le modèle — matrice 10×10


          
0.2 mur   0.5 agent   0.8 boîte   1.0 cible   0.9 boîte/cible

La physique du monde

Cinq règles que le modèle devra apprendre

Ces règles ne sont jamais expliquées au modèle. Il devra les déduire en observant des milliers de paires (image avant, image après). C'est exactement ce que fait un enfant : pas de manuel, juste de l'observation.

Les données d'entraînement

20 000 images organisées par règle

Pour entraîner le world model, on a besoin de transitions : des triplets (image_t, action, image_t+1) qui montrent comment le monde évolue. La structure de ces données est fondamentale.

image_t
matrice 10×10
+
action
0, 1, 2 ou 3
image_t+1
matrice 10×10
=
un exemple
d'entraînement

Naïvement, on pourrait laisser l'agent se déplacer aléatoirement et enregistrer tout ce qui se passe. Mais l'exploration aléatoire sous-représente certaines règles : on verra rarement un agent pousser une boîte exactement contre un mur, ou une boîte verrouillée sur sa cible.

L'approche choisie ici est un dataset dirigé : on génère délibérément des milliers d'exemples de chaque règle physique. 5 catégories, 4 000 exemples chacune.

4 000
Mouvement libre
4 000
Agent bloqué par mur
4 000
Poussée valide
4 000
Boîte bloquée par mur
4 000
Boîte verrouillée sur cible
Total des transitions d'entraînement 20 000

Chaque triplet est sauvegardé sous forme de tableaux NumPy : observations.npy, actions.npy, next_obs.npy. Ces fichiers sont la matière première que l'entraînement consommera à l'Acte 2.

L'encodeur CNN recevra ces 20 000 images comme entrée. Il ne sait pas ce qu'est un « mur » ou une « boîte » — il voit des matrices de flottants. Ce qui compte, c'est que ces matrices contiennent tous les exemples nécessaires pour que le prédicteur puisse anticiper les changements.

Acte 2 — L'entraînement →