Addressing this question from a computational point of view, research into machine learning has shed a lot of light on the questions concerning the prerequisites of learning. In particular, the *No Free Lunch Theorem* is the result of an attempt to quantify the amount of prior knowledge required for extracting information from data. This theorem is described as follows:

> "The No Free Lunch Theorem Of Optimization (NHI) is an impossibility
> theorem telling us that a general-purpose universal optimization
> strategy is impossible, and the only way one strategy can outperform
> another is if it is specialized to the structure of the specific
> problem under consideration." Yu-Chi Ho, *Simple explanation of the no
> free lunch theorem of optimization*

This might be formalized in logical notation as follows:

- Sxz = x is a strategy for a problem of type z
- P(x) = the performance of x
- Cxz = x is specialized to problems of type z

> ∀xyz[(Sxz & Syz & P(x) > P(y)) → Cxz]

From this, it's fairly easy to conclude the following:

> ∀xz[(~Cxz & Sxz & P(x) > 0) → ~Ǝy[Syz & P(y) = 0]]

**Translation:**  Without any prior knowledge of a given type of problem, if a strategy for that type can be expected to be successful, it must be assumed that there exists no strategy of the same type that consistently fails.

What's interesting about this is that the strategy in question is pitted against others of the same type that is not distinguished from it in any way. In other words, such strategies are generic applications, and the *No Free Lunch Theorem* teaches us that the expectation of success depends on the assumption that the particular type of problem in question must be solvable with equal probability by any generic application. Therefore, from a purely empirical perspective, it must be assumed that the initial stages of learning are of such a type that any generic strategy will have a greater than random chance of success. Otherwise, empiricism is false.

That's really a huge assumption to make when it's remembered that all machine learning programs have certain assumptions programmed into them. The designers of such systems don't expect the machine to learn, for example, that data contains information or that concepts can be extracted by comparisons and other logical operations. In other words, there is no such thing as a purely empirical AI program because they are always hard coded with some basic *a priori* knowledge. Consequently, it's unimaginable what such a generic strategy could possibly mean if it is supposed that it consists of none of the assumptions hard-coded into current machine-learning programs.

Consider the fact that machine learning programs are themselves specialized for a particular type of problem, viz. to those in which there is something to be learned. Therefore, they cannot be considered generic in the sense described, so a program which is generic would be one that is not specialized for learning at all. This idea can be formalized by specifying the type of problem as learning and applying it to another consequence of the *No Free Lunch Theorem*:

- n = learning

> ∀x[(~Cxn & Sxn & P(x) > 0) → ∀y[Syn → P(y) > 0]]

**Translation**: If a strategy for learning can be expected to be successful without presuming anything about the nature of learning, it must be assumed that *every* strategy not specialized for learning would be just as likely to succeed.

This would lead to the absurd conclusion that all algorithms would have to have a better than random chance of learning. Of course, that can't be the case, so any effective strategies must incorporate some prior knowledge about the nature of the problem. In other words, there's no such thing as a generic solution that can be expected to have anything better than purely random success. Any child born with such a system couldn't be expected to learn anything at all. Therefore, either the *No Free Lunch Theorem* is false or empiricism is false.