Solomonoff induction is generally given as the correct way to penalise more complex hypotheses when calculating priors. A great introduction can be found here.
My question is, how is this actually calculated in practice?
As an example, say I have 2 hypotheses:
A. The probability distribution of the output is given by the same normal distribution for all inputs, with mean and standard deviation .
B. The probability distribution of the output is given by a normal distribution depending on an input with mean and standard deviation .
It is clear that hypothesis B is more complex (using an additional input [], having an additional parameter [] and requiring 2 additional operations to calculate) but how does one calculate the actual penalty that B should be given vs A?
The short answer is, you can’t. Solomonoff induction is not computable, and moreover depends on your model of computation. Asymptotically, the model of computation makes no difference, but for any finite set of examples, there is (for example) a universal Turing machine with short codes for those examples built in.
Practical methods of choosing among models use completely different methods. One collection of such methods is called regularization.
Well that explains why I was struggling to find anything online!
Thanks for the link, I’ve been going through some of the techniques.
Using AIC the penalty for each additional parameter is a factor of e. For BIC the equivalent is √n so the more samples the more penalised a complex model is. For large n the models diverge—are there principled methods for choosing which regularisation to use?
At this point I reveal that I just play a statistician on the net. I don’t know how people choose from among the many methods available. Is there a statistician in the house?
Solomonoff induction is not computable because its hypothesis space is infinite, but Bucky is only asking about a finite subset.
Solomonoff induction is uncomputable because it requires knowing the set of all programs that compute a given set of data. If you just have two hypotheses in front of you, “Solomonoff induction” is not quite the term, as strictly understood it is a method for extrapolating a given sequence of data, rather than choosing between two programs that would generate the data seen so far. But understanding it as referring to the general idea of assigning probabilities to programs by their length, these are still uncomputable if one considers only programs that are of minimal length in their equivalence class. And when you don’t make that requirement, the concepts of algorithmic complexity have little to say about the example.
In practice no one honestly computes the complexity of models in any of the fields I am familiar with, such as physics, bio, chem etc. Sometimes they count the number of parameters/degrees of freedom, like in your example. In reality there is a dearth of models that explain observations and predict something new, interesting and testable, so the issue rarely arises.
Minimum message length fitting uses an approximation of K-complexity and gets used sometimes when people want to fit weird curves in a sort of principled way. But “real” Solomonoff induction is about feeding literally all of your sensory data into the algorithm to get predictions for the future, not just fitting curves.
So I guess I’d say that it’s possible to approximate K-complexity and use that in your prior for curve fitting, and people sometimes do that. But that’s not necessarily going to be your best estimate, because your best estimate is going to take into account all of the data you’ve already seen, which becomes impossible very quickly (even if you just want a controlled approximation).