Heater Playground
The room on the left is a simulation with constants you choose and the model never sees. Record some logs from it, train the four-weight model from the world models series on them, and the chart on the right shows how well it predicts a room outside the training range, next to the hand-written guess from the 101 post. Switch to the room with a door and the model gets a private field, from the 104 post, and the chart shows it working out a door the log never mentioned.
1. The room
These are the constants the model is not told. The hand-written guess from the 101 post assumes a leak rate of 0.10 and a heater power of 1.5.
Someone opens the door about once every 25 steps and leaves it open for about 8. The logger never records it. Bring the open-door leak down towards the closed one and the door gets harder to hear.
2. Record logs
Press Record. A thermostat with a random setpoint runs the heater in rooms with outside temperatures between 2 and 12 degrees, and every state, action and next state is written down.3. Train
| four-weight model | learned | true |
|---|---|---|
| room | 0 | -0.07 |
| outside | 0 | 0.07 |
| heater | 0 | 1.2 |
| bias | 0 | 0 |
| latent model, act | observe | ||
|---|---|---|---|
| room | 0 | field | 0 |
| outside | 0 | room | 0 |
| heater | 0 | outside | 0 |
| bias | 0 | heater | 0 |
| field × room | 0 | change | 0 |
| field × outside | 0 | bias | 0 |
| field × bias | 0 |
4. A room it has never seen
Pick conditions outside the training range and watch the three predictions diverge. The real room includes draughts, so it jitters; the models do not.
The simulator, the training loops and the models are the code from Learning the Heater From Its Own Logs and Latent State Is the Fields You Never Logged, the third and fourth code posts in the world models series. Four weights and gradient descent for the sealed room; thirteen weights, one private field and the same gradient descent run backwards through each episode for the room with the door. Everything runs in your browser.