Sam Gentle.com

Goalpost optimisation

I recently wrote about a failure that was at least in part attributable to changing my goals on the fly. I've had flexible goals cause problems in the past too, and I've generally heard the advice that it's better to set clear goals in advance. But why is this the case? It seems like it would be good to be flexible, and indeed many situations do demand that you change your goals when they no longer make sense. However, there's definitely a limit to that flexibility, and nobody suggests changing your goals in real time.

I think the reason for this is that our brains are very good real-time optimisation machines. If you can give your brain a rapidly-changing output controlled by some set of inputs, it will optimise that output for you, no worries. And not necessarily one value, it's often possible to optimise over whole sets of outputs at once. The whole thing is really impressive. But, like any optimisation process, it can lead to weird results if you don't clearly specify the boundaries of the optimisation.

A perhaps apocryphal story I heard once involved a team using a computer optimisation process to design a particular circuit on an FPGA. The circuit the computer designed was smaller than the one designed by humans, but nobody could figure out how it worked. Anything they changed seemed to break it, and even changing to a different FPGA chip stopped it working. The running theory was that it was exploiting magnetic interference or physical quirks of the chip because nobody had thought to tell it not to do that.

In a similar way, I think it's easy for us to optimise too much. That's part of the reason creative constraints are so useful, because they stop us from trying to solve everything at once and make it easier to focus. But the other part is that sometimes you come up with a bad solution if you start going outside the bounds of the problem. The most optimal solution with no constraints might not actually be useful.

When you allow yourself to change your goals, you're letting moving the goalposts be one of the solutions you can have. And that's not automatically bad, but the easier it is to change your goals, the more your natural optimisation processes can use the goal as one of the inputs it can change. In the worst case, if changing your goals is easier than taking actions to achieve them, it will always be a clever optimisation to change the goal instead of the actions. That's not to say you'll always do that, but you'll be fighting against your optimisation process when you don't.

I suspect there's an important principle in there for optimisers in general: don't let the output feed back into the input. Otherwise your optimiser is just optimising itself, and presumably that ends with doing nothing at all.