Wednesday, January 23, 2008

The Cybernetic Perspective

In the original sense, "cybernetics" means optimal use of information in decisionmaking.

It emerges that to develop a statistics of information requires a change of perspective from the simple one where developing the model is informed by the system under study to one where the model and the system under study are two components of a larger system. The Wiener filter and its descendant the Kalman filter are the best known examples of this approach but it is more general.

I believe this use of the word "model" is not entirely coincident with the software engineering sense as in "model-driven development" though it does mesh more or less well with "Model-View-Controller". In our world the View is relatively trivial and usually done offline as postprocessing; it's the utter absence of the Controller that troubles me.

(Update: That last is really a stretch on second thought. Probably more sellable is the idea that the M in MVC corresponds to system state (variables) and the C corresponds to executable code (statements). In the end the word "model" is just as much a source of confusion as ever.)

Anyway I think the cybernetic perspective has value in getting climate modeling unstuck.


David B. Benson said...

Yes! Start from the viewpoint of information.

I work fitfully on detrmining which of two hypotheses H and K best fit some data. I currently use a naive Bayes factor method, which has the advantage of giving me a quantitative estimate of how much better H fits the data than K does.

I need to go further in studing maximum entropy methods (which are right next door to the Bayes factor method).

ac said...

Indeed that word 'model' means different things to different people. In the molecular modelling world it tends to be used to describe the mathematical model of the system, quite independent of any particular implementation in code.

In MVC, I've always thought of the model as being a kind of aggregate of the system state, the governing equations and the solver, and the controller being the interface that calls the model into being, initialises it, and tells it how to iterate.

In this sense the model is entirely modular, so that multiple controllers can drive instances of the model.