No Free Lunch
The theorem that no learning algorithm is best on all problems — averaged over every possible task, they all perform identically, which is why assumptions are the whole game.
When not to use it
- As a reason not to choose an algorithm. Real problems have structure; you usually can pick well using prior knowledge.
- To argue all models are equally good on a task. The theorem averages over all tasks, not your task, where methods differ enormously.
- As a claim about achievable performance. It's about averages over a hypothetical universe of problems, not a bound on what you can do on real data.
Reach for something else instead
- The bias-variance framing gives a more actionable account of why a given model over- or under-fits.
- Empirical benchmarking on your data answers the practical question the theorem deliberately refuses to.
- Inductive-bias analysis — asking what structure a method assumes — turns the theorem's lesson into a design tool.
Sources & further reading
- Wolpert & Macready (1997), No Free Lunch Theorems for Optimization — the optimisation formulation.
- Wolpert (1996), The Lack of A Priori Distinctions Between Learning Algorithms — the supervised-learning version.
- Shalev-Shwartz & Ben-David, Understanding Machine Learning — situates No Free Lunch within the necessity of inductive bias.
Primary sources, listed so you can check the claims on this page rather than take them on trust.
Where people go wrong
- Reading it as "you can't know which algorithm to use." You often can, because real problems aren't a uniform draw over all functions.
- Using it to justify treating all models as equal candidates. On a structured real task they are not.
- Forgetting the uniform-average assumption. That assumption — no prior knowledge — is doing all the work, and real problems violate it.