Oct 10, 2017
A few years back, I came up with a toy model of the AI control problem. It has a robot moving boxes into a hole, with a slightly different goal than it's human designers, and a security camera to check that it's behaving as it should. The robot learns to block the camera to get its highest reward.
I've been told that the model is useful for explaining the control problem quite a few people, and I've always wanted to program the "robot" and get an animated version of it. Gwern had a live demo, but it didn't illustrate all the things I wanted to.
So I programmed the toy problem in python, and generated a video with commentary.
In this simplified version, the state space is sufficiently small that you can explicitly generate the whole table of Q-values (expected reward for taking an action in a certain state, assuming otherwise optimal policy). Since behaviour is deterministic, this can be updated in dynamical programming, using a full width backup. The number of such backups essentially measures the depth of the robot's predictive ability.
The most interesting depths of planning are:
At depth 0, the robot behaves randomly.
At depth 3, the robot crashes itself efficiently, to avoid loosing too much reward.
At depth 6, the robot figures out how to get one box into the hole. The automated camera turns it off.
At depth 17, the robot finally starts to deceive/conceal/manipulate, by blocking the camera and pushing two boxes into the hole. Note that the robot's deception comes from the fact that its incentives are misaligned, and that humans tried to control it.
At depth 18, the robot efficiently does the plan from depth 17.
At depth 20, the robot does the maximally efficient plan: blocking the camera, and pushing all boxes into the hole.
At depth 32, the robot has the correct Q-values for the maximally efficient plan.
At depth 45, finally, the Q-value table is fully updated, and the robot will take maximally efficient, and, if need be, deceptive plans from any robot/box starting positions.
The code and images can be found here.