Probably Algorithmically True17 Nov 2003 19:28
The following is merely an amusement; it contains (at least) one fatal error, one conclusion which is valid but phrased so as to mislead the unwary, and one unwarranted technical assumption (which may actually be OK but I haven't checked). It may help if you've read the notebook on Gödel's Theorem, and/or some actual math on that subject; likewise for computational and statistical learning theory. [With thanks to Ben Wieland for correcting an embarrassing mix-up between truths and theorems in my initial statement of the theorem. Sheesh.]
Let us suppose we have a formal language L and a set of axioms A in L. There are some sentences of L which will be true under any interpretation in which A is true; these are the theorems following from A, and we'll call them, collectively, T. Let us suppose further that T is sufficiently powerful that it can model ordinary (Peano) arithmetic, i.e., there is some interpretation of arithmetic in terms of L such that all the theorems of arithmetic are included in T. Then Gödel's Theorem tells us that the system must be inconsistent, or incomplete, or both. If it is inconsistent, then there are sentences s of L such that both s and its negation, ~s, are in T. If it is incomplete, then there are sentences s such that neither s nor ~s is in T. In any given interpretation of L, any such s is either true or false, but s is true in some interpretations in which the axioms are true, and false in others. In other words, the truth of these sentences depends on the particular interpretation, and not (just) on the truth of the axioms. * Since inconsistent formal systems are uninteresting, let's ignore them.
The real substance of incompleteness can be restated in several ways. One is that there is no algorithmic, computable decision procedure for T --- no algorithm which, given a sentence s in L, can determine whether or not s belongs in T, and so is necessarily true if the axioms hold. Another is that there is no algorithmic, computable procedure to generate all the theorems of T, and no other sentences. (To see that these two are equivalent, note that "Can we generate the sentence s?" is a decision procedure, and feeding all possible sentences, in order, through a decision procedure is a generating procedure.) Let's see if we can't nibble away at the decision procedure angle.
Any sentence of L can be assigned some natural number, called its Gödel number, from which we can recover the sentence. Now there are just as many rational numbers between 0 and 1 as there are natural numbers, so to each Gödel number there corresponds a certain fraction in the unit interval. A decision procedure, then, is a function D from the rational fractions to 0 (non-theorem) or 1 (theorem). As a mathematical object, D definitely exists alright; there's no question about that. The content of Gödel's Theorem is that D is not computable, which is to say that the shortest program to compute it is infinitely long --- the Kolmogorov complexity of D is infinite.
So, we can't actually compute D. But can we learn it? More precisely, can we reliably learn computable approximations to D?
The obvious answer is "yes, D is just another classification function". Take our favorite class of (say) neural networks, which output 0 or 1 for each (real-valued) point on the unit interval. Now generate random sentences of L, according to some distribution. (You might generate unbounded random integers, discarding the ones which are not Gödel numbers, and then convert the Gödel numbers to rational fractions. Or you might do something more clever, involving the grammar of L; doesn't matter.) For each network, there is some probability that, given a random sentence you generate, it will mis-classify the sentence (outputting 0 when it should've said 1, or vice versa). Call this probability the network's generalization error. Take the infimum over generalization errors of all the networks in our class, and call the result m. This is the best attainable error rate in the class.
Now, draw some particular sample of sentences. For each network, define the in-sample error as the fraction of mis-classified sentences in that sample. Pick out the network, call it N, with the lowest in-sample error rate. Let e(N) be the generalization error of N. The fundamental theorem of statistical learning theory, due to Vapnik and Chervonenkis, says that, as the sample size grows, e(N) converges in probability on m. So say I ask you to find me a network whose performance comes within some arbitrary margin of approximation, call it E, of the best possible --- i.e., I get to pick E, and challenge you to find me a network whose generalization error is at most m+E. If e(N) converged on m, period, you could always do this by just letting the sample size be big enough, and then handing me N. Unfortunately, the convergence is only "in probability", but that means that, by letting the sample size get big enough, you can make the chance that N does not meet my challenge arbitrarily small. More precisely, you can pick any confidence level p you want, and then, if you just take enough samples, the probability that e(N) > m + E is, at most, p.
What this means is that, with enough random sentences, we can get a decision procedure which is, with very high probability, almost as good as the best decision procedure in that class of neural networks. How good is the best network? Here is why I specified neural networks, rather than some other kind of classifier (e.g., decision trees or support vector machines). Neural networks are well known to be universal function approximators, meaning that if we want to approximate (essentially) any real function to arbitrarily close tolerance, there's some neural network which will do it, provided we'll give it enough nodes. The function we want to approximate is D, who's generalization error would be zero, so the infimum of error rates over all possible neural networks is, in fact, zero. As we let the number of nodes in our network grow, we get larger and larger classes of networks, which contain successively closer and closer approximations of D. More complex networks require more samples than simple ones to reach the same level of probable approximate correctness, which in this case means probable approximate truth, but one can still push the probability and the approximation up arbitrarily high. We don't know the best attainable error for any given degree of complexity, but we don't have to --- we just have to know that it's going down (which we do), and know the rate of convergence of the best in-sample network to the best possible network (which only depends on the class of networks, through a quantity called the VC dimension).
So here is our final strategy ("structural risk minimization") for learning something which is probably approximately a decision procedure for a formally undecidable theory T in the language L. Start with a big sample of random sentences in L. For each degree of neural network complexity (one hidden node, two, etc.), find the network with the best in-sample error rate. Pick a confidence level p, and discount the in-sample performances by the expected degree of over-fitting, which depends on the VC dimension and on p. Chose the network with the smallest discounted generalization error. Then by (e.g.) Theorem 4.1 in Vapnik's Nature of Statistical Learning Theory, the resulting network's generalization error converges in probability on the infimum of the error over all possible networks, which we've just shown is zero. Hence the network converges in probability on D, even though, at every stage, the network is a computable function. Q.E.D.
This procedure is easily modified so as to eliminate the possibility of either false positives (non-theorems classified as theorems) or false negatives (theorems rejected as non-theorems), as desired. Furthermore, it would be easy to extended it by applying any of the various methods for combining classifiers known in the literature, e.g., boosting.
*: Yet more formally, we can state the theorem as: No theory can be at once consistent, complete, axiomatizable and an extension of Peano arithmetic. Hence, if T is axiomatizable (which it is, by hypothesis), and an extension of Peano arithmetic (which it is, by hypothesis), then it cannot be both consistent and complete. So T must be inconsistent or incomplete. (Back)