The Long Detour: A Narrative History of Machine Learning, 1943–2011

Two Founding Bets: Symbols and Connections

Machines That Learn to Play: Samuel's Checkers and Shannon's Chess

In March 1950, Claude Shannon published a short paper in the Philosophical Magazine proposing how a digital computer might be programmed to play chess: look some fixed number of moves ahead, score the resulting positions with a numerical evaluation function, and back the scores up through the tree of possible replies by an alternating maximize-minimize procedure. It was, at the time, a design on paper. The machines of 1950 could not spare the cycles to make it play a serious game, and Shannon's proposal sat alongside a handful of others — J. Kister, P. Stein, S. Ulam, W. Walden, and M. Wells published their own "Experiments in Chess" in the Journal of the ACM in April 1957; Alex Bernstein and M. de V. Roberts described a working chess program in Scientific American the following year; and Allen Newell, Cliff Shaw, and Herbert Simon published their own analysis of the combinatorial problem in 1958 — as evidence that chess had become, for a small circle of computer scientists, the definitional hard problem of machine intelligence. Arthur Samuel, an engineer at IBM, took the same look-ahead-and-evaluate scheme and pointed it at a simpler board.

Samuel gave his reasons in a 1959 IBM Journal paper that would become the founding document of machine learning as a named research program. Chess demanded too much apparatus before anything about learning could be studied; checkers, he wrote, was chosen because "the simplicity of its rules permits greater emphasis to be placed on learning techniques." He then set out, with the fussiness of a man defending an unfashionable choice, the five properties a task needed before it could serve as a learning laboratory at all: it had to be non-deterministic in practice, it needed a scorable goal, its rules had to be fixed and known, there had to be an existing body of expert play to measure progress against, and — not incidentally — it had to be a game ordinary people found interesting, since "the ability to have the program play against human opponents (or antagonists) adds spice to the study and, incidentally, provides a convincing demonstration for those who do not believe that machines can learn." The last criterion is the tell: in 1959, the burden of proof was still on the claim that a machine could learn anything at all.

Samuel was explicit that the reason checkers could not simply be solved outright was combinatorial, not a limitation of the particular machine on his desk. As he put it, "there exists no known algorithm which will guarantee a win or a draw in checkers," and the complete exploration of every possible path through a single game would involve on the order of 10^40 choices of moves, which even at three choices per millimicrosecond would still take on the order of 10^21 centuries to consider. This is worth pausing on, because it is one limit in this book that a faster computer does not remove. A 2026 datacenter is roughly a trillion times faster than an IBM 704, but a trillion-fold speedup applied to a number with forty zeros in it barely moves the exponent. Whatever eventually made checkers tractable, decades later, would have to be a change of method rather than of hardware — a reminder that the interesting failures in this history are rarely solved by waiting for Moore's Law.

Samuel himself named the fork in the road that gives this chapter its title. Before describing a single line of his checkers program, he paused to distinguish "two general approaches to the problem of machine learning." One, which he called the "Neural-Net Approach," dealt with "the possibility of inducing learned behavior into a randomly connected switching net (or its simulation on a digital computer) as a result of a reward-and-punishment routine." The other — the one he actually built — aimed "to produce the equivalent of a highly organized network which has been designed to learn only certain specific things." Samuel was candid about why he chose the second path: comparing the switching nets that could be built or simulated in 1959 against the neural nets used by animals, he judged that "we have a long way to go before we obtain practical devices," while a designed, reprogrammable structure was, in his words, capable of realization at the present time. Shannon's minimax proposal and Samuel's scoring polynomial were both, in this sense, bets on the same side of that fork: hand-designed evaluation functions, searched or refined by an engineer's judgment about what mattered on a board. The other bet — that intelligence might emerge from an undesigned net of simple switching units, adjusted by nothing more than reward and punishment — was not a dead letter in 1959. The year before, Frank Rosenblatt of the Cornell Aeronautical Laboratory had already given that bet a name and a mathematical treatment, proposing what he called the perceptron as a "probabilistic model for information storage and organization" that dispensed with any coded, one-to-one image of what it had seen, relying instead on a network of connections whose statistics did the remembering.

Self-Organizing Nets and the Cybernetic Dream

More than a decade before Samuel published his checkers paper and Rosenblatt named his perceptron, Warren McCulloch and Walter Pitts had already shown, in their 1943 logical calculus of nervous activity, that a network of idealized all-or-none neurons could in principle compute anything a Turing machine could compute. In 1949 McCulloch took that result to an audience of electrical engineers, describing the brain without embarrassment as a piece of apparatus: "The brain is a logical machine. Each of some ten billion relays has only two states: pulse or no pulse." The calculus he and Pitts had built was, he told them, no mere metaphor — "we proved that a nervous system — even without regeneration — could compute any logical consequence of its input or, in Turing's phrase, compute any computable number," a theorem he noted von Neumann was already using to teach the theory of digital machines generally. But the more radical claim in McCulloch's address was not that the brain computed; it was that it was never wired up by a designer in the first place, and stayed correct anyway through loops that held it near a goal state without anyone specifying the goal in a table of rules. "There are other closed paths within the central nervous system, through it and the body, and through both and the world which are negative feedbacks. Each of these serves to establish some state of the system. They respond to every deviation from the established state by returning the system toward that state, and this state is thus the goal, aim, or end of that operation." A system built of nothing but such loops, McCulloch suggested, might even be said to want something: "Any computing machine which can detect a discrepancy between what it calculated and its actual output may be said to have a will of its own." This was the cybernetic dream in its purest form — intelligence not programmed in but settled into, the way a thermostat settles on a temperature, and the ambition of an entire postwar research culture, of which Norbert Wiener's 1948 book had given the movement its name, was to show that perception, memory, and even purpose could be accounted for on exactly these terms.

Rosenblatt's 1958 paper in Psychological Review gave McCulloch's dream a name, a mechanism, and — unlike McCulloch's address — an explicit rejection of the "coded memory" alternative in which a network's wiring diagram could in principle be read like a photographic negative to recover what it had seen. Rosenblatt insisted instead that the central nervous system "simply acts as an intricate switching network, where retention takes the form of new connections, or pathways, between centers of activity," so that nothing about a stored memory could be found by inspecting any single connection. He was careful to place this claim in a lineage: "The position, elaborated by Hebb, Hayek, Uttley, and Ashby, in particular, upon which the theory of the perceptron is based" rested on five assumptions, the first of which discarded the engineer's blueprint altogether — "At birth, the construction of the most important networks is largely random, subject to a minimum number of genetic constraints" — and the fourth of which specified the only instruction the network would ever receive, that reinforcement "may facilitate or hinder whatever formation of connections is currently in progress." No categories were to be handed to the machine in advance; whatever concepts it arrived at were to be a property of "the physical organization of the perceiving system, an organization which evolves through interaction with a given environment." This is the fork Samuel would name the year after and set aside as impractical — already, in 1958, being built at the Cornell Aeronautical Laboratory by a psychologist willing to bet that reward and punishment applied to a randomly wired net could do the work that Samuel's polynomial and Shannon's evaluation function did by hand.

Mechanically, a perceptron was simple enough to draw on a napkin: a retina of sensory units (S-points) firing all-or-nothing onto an association layer (A-units) wired to the retina at random, and from there to a small set of response units (R-units) whose feedback connections made one response inhibit its rivals. Learning happened by adjusting a single scalar "value" attached to each A-unit — how strongly its pulses counted — according to whether the response it had helped produce turned out to be right or wrong. Critically, no one told the network what features to look for. As Rosenblatt put it, describing the more advanced versions of the scheme, "the experimenter does not force the system to respond in the desired fashion, but merely applies positive reinforcement when the response happens to be correct, and negative reinforcement when the response is wrong." The machine was supposed to discover its own basis for telling things apart. And this was not only a thought experiment: "Bivalent systems similar to those illustrated in Fig. 12 have been simulated in detail in a series of experiments with the IBM 704 computer at the Cornell Aeronautical Laboratory," Rosenblatt reported, with results that "borne out the theory in all of its main predictions." Here the book's recurring question can already be asked of 1958: the perceptrons run on the 704 were small-scale simulations by any later standard, and nothing stopped a bigger machine from simulating a bigger net. The ceiling Rosenblatt's program would eventually hit, as later chapters take up, was not going to be the size of the available computer at all.

Rosenblatt did not present this as a modest variation on the McCulloch-Pitts program; he presented it as a rival theory of mind. Where the logicians had built networks that computed prescribed functions, and where even Ashby and von Neumann had mainly asked how an imperfectly wired net could be made to realize a wiring diagram specified in advance, Rosenblatt wanted no wiring diagram at all: "these shortcomings are such that a mere refinement or improvement of the principles already suggested can never account for biological intelligence; a difference in principle is clearly indicated." The irony of the timing is worth sitting with, though it is an irony of proximity rather than of simultaneity. Samuel's checkers project was not new in 1958. By his own account he had "for some years devoted his spare time" to machine learning on games before writing any of this up, and the basic program was "quite similar to the program described by Strachey... in 1952" — Strachey's chess program, the point of comparison Samuel himself reached for. What had changed by the time he wrote it up was the machine: "the availability of a larger and faster machine (the IBM 704)... leads to a fairly interesting game." So Samuel had already weighed the neural-net option and set it aside years earlier, writing that comparing the switching nets then buildable against the neural nets used by animals, "we have a long way to go before we obtain practical devices" — and had picked instead a designed, reprogrammable evaluation function, "capable of realization at the present time." What 1958 actually brought was Rosenblatt's paper landing squarely in the same short window in which Samuel's own account of his choice was about to appear in print, in 1959 — close enough in time that the two positions read as a direct argument, even though Samuel's underlying bet had been made and tested years before Rosenblatt's. Both men were right about their own moment: Samuel's polynomial did play a passable game of checkers on an IBM 704, and Rosenblatt's randomly wired retina, learning only from reward and punishment, could indeed be made to separate simple patterns, but was nowhere close to a practical device for anything beyond the laboratory. The two bets — hand-designed search over hand-designed features, against an undesigned net shaped by nothing but statistics and reinforcement — would not be reconciled in this decade or the next. The following section turns to the third figure who entered this argument in the same years, not from engineering or from psychology but from the study of formal symbols, and who gave the first bet its most ambitious name: the physical symbol system.

The Physical Symbol System Hypothesis and Its Rivals

The same year Samuel chose checkers and the same year Rosenblatt named the perceptron, a third position was already staked out in the very same journal. Allen Newell, Cliff Shaw, and Herbert Simon published "Chess-Playing Programs and the Problem of Complexity" in the IBM Journal of Research and Development in October 1958 — a paper Samuel himself footnoted the following year as one of the handful of serious attempts at the problem. But Newell and Simon were not, even then, doing what Samuel and Rosenblatt were doing. Samuel's polynomial adjusted numerical weights against outcomes; Rosenblatt's perceptron adjusted connection strengths against reinforcement. Newell and Simon's programs manipulated lists of symbols — structures with names, naming other structures — searching through a space of possible move sequences the way a theorem prover searches through a space of possible proofs. Nothing in their machinery learned a value function from experience in Samuel's sense; the intelligence, such as it was, lived in the heuristics that pruned the search, and those heuristics were written in by hand. It would take until 1975, when Newell and Simon's ACM Turing Award lecture generalized the approach into an explicit thesis about the nature of mind, for the claim implicit in the 1958 chess paper to get its name and its full philosophical weight: what came to be called, and defended by generations of successors, the physical symbol system hypothesis.

A decade later, one of the approach's own rivals set down what that thesis actually claimed, in terms precise enough to fight over. "The symbolic paradigm in cognitive modeling has been articulated and defended by Newell and Simon (1976; Newell 1980), as well as by Fodor (1975; 1987), Pylyshyn (1984), and others," Paul Smolensky would write in 1988, describing the framework his own "subsymbolic paradigm" was built to displace, one in which "cognitive descriptions are built of entities that are symbols both in the semantic sense of referring to external objects and in the syntactic sense of being operated upon by symbol manipulation." The mind, on this view, was a discrete machine of the same general kind as the computer running it — its states language-like structures, its operations formal rules for rewriting them, its content answerable to the same referential semantics as an English sentence. As Smolensky put it, summarizing the assumption cognitive science had inherited before connectionism reopened the question, "the mind has been taken to be a machine for formal symbol manipulation, and the symbols manipulated have assumed essentially the same semantics as words of English." Nothing in this picture required a network shaped by statistics or reward; it required lists, pointers, and rules for combining them — exactly the "coded memory" that Rosenblatt, defending the opposite bet in 1958, had gone out of his way to reject.

What is worth noticing, thirty years on, is that the sharpest bill of particulars against the symbolic paradigm did not come from outside it but from a theorist trying to replace it, and that he wrote it as a numbered list of grievances rather than a philosophical objection. Smolensky's own catalog of what had gone wrong with programs built on the symbol-manipulation assumption reads, in retrospect, like a table of contents for the chapters that follow this one: "Actual AI systems built on hypothesis (4) seem too brittle, too inflexible, to model true human expertise," he wrote; "the process of articulating expert knowledge in rules seems impractical for many important domains (e.g., common sense)"; and finally, "hypothesis (4) has contributed essentially no insight into how knowledge is represented in the brain." Each complaint names a different failure. The first and second are about engineering practice — about what happens when a designed rule base meets a domain too large or too ill-defined to be exhaustively hand-coded, the exact difficulty the next chapter's expert systems would run into at industrial scale. The third is a claim about biological plausibility that has nothing to do with engineering at all. None of the three, notably, is a claim about processor speed or memory size.

That absence is the point. The two bets already on the table by 1958 — Samuel and Rosenblatt's — were both, in their different ways, throttled by the machines of the day: Samuel's search space grew combinatorially no matter how the checkerboard was scored, and Rosenblatt's randomly wired retina could only be made as large as an IBM 704 could simulate. Newell and Simon's symbol systems were not throttled in the same way. A rule interpreter walking a list of production rules is cheap to run compared to a numerical search over the weight space of a net, which is exactly why expert systems of the kind the next chapter follows — MYCIN, and the rule-based programs that came after it — could be built and sold on the ordinary minicomputers of the 1970s without anyone waiting for a faster machine. The physical symbol system hypothesis was never going to be refuted by Moore's Law, because it had never needed much hardware in the first place; its later troubles, brittleness and the difficulty of hand-coding common sense into rules, were troubles of representation, not of cycles. That is what makes it a genuine rival to the connectionist bet rather than merely an earlier and cruder version of it, and it is why the argument between them, opened in 1958 and reopened in earnest three decades later by Smolensky and by Jerry Fodor and Zenon Pylyshyn, belongs later in this volume as a dispute about the architecture of mind rather than the size of any particular computer. For now, the symbolic side had the running programs, the funding, and — after a Minnesota psychologist and mathematician's book on the limits of one-layer perceptrons appeared in 1969 — the field to itself. It is to what the symbolic bet built with that decade that the next chapter turns.

The Rule-Based Ascendancy: Expert Systems and the Knowledge Engineering Dream

MYCIN and the Certainty Factor Wars

Stanford's MYCIN, built through the mid-1970s by Edward Shortliffe under Bruce Buchanan's supervision to recommend antibiotic therapy for bacterial infections, was the program that gave the rule-based dream its founding technical problem: how should a machine weigh evidence it cannot enumerate exhaustively, for a physician who has neither the time nor the data for a rigorous statistical workup? Shortliffe and Buchanan stated the difficulty plainly. Clinical decisions, they wrote, involve "so few data and so much imperfect knowledge that a rigorous probabilistic analysis, the ideal standard by which to judge the rationality of a physician’s decision, is seldom possible." Physicians nevertheless reach decisions, using rules of thumb that are individually uncertain but collectively serviceable — and it was this ill-defined but evidently workable process, not the Bayesian calculus taught in decision-theory courses, that MYCIN was built to imitate. Rather than store a joint probability distribution over diseases and findings, which no one had the data to fill in, MYCIN stored its knowledge as production rules of the form IF evidence THEN hypothesis, each carrying a number an expert had supplied by introspection: a certainty factor, ranging from −1 to +1, meant to capture how much that single piece of evidence should change one's belief in the hypothesis it bore on.

The bookkeeping was deliberately simple. Each hypothesis carried a running measure of belief (MB) and measure of disbelief (MD), both starting at zero; every rule that fired nudged one or the other upward using a fixed combining formula, and the two were subtracted at the end to yield a net certainty factor. Shortliffe and Buchanan were candid that the numbers themselves came from nowhere more rigorous than clinical intuition: "our approach has been simply to ask the expert to rate the strength of the inference on a scale from 1 to 10." When a hypothesis such as the identity of an infecting organism accumulated enough certainty, and enough of the remaining probability mass could not be ruled out, MYCIN recommended therapy that covered every organism still in contention rather than betting everything on the single highest-scoring diagnosis. The authors did not claim to have improved on Bayes' theorem — only to have built a workable stand-in for it in a domain where statistical data were lacking, inverse probabilities were unknown, and evidence could plausibly be treated as independent once dependent findings were grouped by hand into single rules. On a few hundred simulated patients checked against a version of the model fed the true posterior probabilities, the approximation tracked the exact answer well except when evidence was strongly correlated — the same failure mode, unsurprisingly, that afflicts naive Bayes generally. And on real cases the early verdict was encouraging: with a limited rule set, they reported, MYCIN's advice was already judged similar to that of "the expert from whom the rules were acquired."

The certainty factor was never uncontested, and the fight over it split into two camps as soon as other groups tried to build on the same idea. One camp treated ad hoc combination as a necessary evil to be endured rather than justified. At SRI, Richard Duda, Peter Hart, and Nils Nilsson took a rival premise: that experts' rules could be attached not to a freestanding certainty factor but to genuine likelihood ratios, updated through the ordinary odds-form of Bayes' theorem, so that the machinery stayed inside probability theory rather than beside it. Their 1976 paper opened by naming what rule-based inference systems in general had settled for: existing systems, they wrote, relied on the fact that "typically, an ad hoc scoring function is used to combine the effects of collections of uncertain evidence acting through several inference rules on the same hypothesis," and their own purpose was "to describe a subjective Bayesian technique that can be used in place of ad hoc scoring functions in rule-based inference systems." Later in the same paper they compared their scheme directly against Shortliffe's, working out how MYCIN's own interpolation function related to the probabilities they were proposing to use instead — the two approaches to the same problem, side by side, in the same argument. Duda's likelihood-ratio formalism would go on to become the inferential engine of PROSPECTOR, the mineral-exploration expert system he helped build at SRI; a later probabilistic reappraisal of certainty factors would single PROSPECTOR out as "of special interest because Duda, one of its designers, noticed a similarity" between its likelihood ratios and MYCIN's certainty factors. The other camp went further and attacked the certainty factor on its own terms. In 1986 David Heckerman set out to give certainty factors a precise probabilistic reading and found, instead, that Shortliffe and Buchanan's original definition — certainty factor as the normalized change from prior to posterior probability — could not be reconciled with the combining formulas the program actually used to propagate evidence through a network of rules. As Heckerman put it in his summary, "it has been shown that the original definition of certainty factors is inconsistent with the combination functions and the associated desiderata." A rule that adjusted belief in one order could yield a different final answer than the same rule applied in another order; the arithmetic the program ran every day did not correspond, even approximately, to the definition its own creators had given for what that arithmetic was supposed to mean. Other critics reached the same place by other routes — J. B. Adams, in a 1976 paper, had already flagged specific failures of the original scheme, and a later survey of the belief-network literature would summarize the verdict bluntly: "later reasearch demonstrated that MYCIN's certainty-factor inference method is logically inconsistent."

What makes the episode worth dwelling on is what the inconsistency did not do: it did not stop MYCIN from working. Heckerman, having just finished demonstrating that the model's own logical foundations did not hold, turned the question around and asked why the system performed so well anyway. "MYCIN performs as well as experts in the field," he observed. "This suggests that detailed considerations of uncertainty are not critical to the system's performance." A sensitivity analysis by Cooper and Clancey, which he cites, had found that the program's diagnoses barely moved when many of its certainty factors were deliberately altered — the rule base was doing the real work of encoding medical knowledge, and the number attached to each rule was closer to a tie-breaker than a load-bearing probability. This is the detail that keeps the certainty-factor wars from being merely an argument about notation. Nothing about the inconsistency Heckerman found was a limitation of the machines this research ran on — Heckerman's own paper records only that its computing facilities were supplied by the SUMEX-AIM resource, a shared timesharing service NIH funded for exactly this kind of AI-in-medicine work. Whatever the underlying hardware, the certainty factor would have been exactly as inconsistent on a machine a million times faster, because the flaw was in the algebra of the combining rules, not in how quickly they could be evaluated. Faster hardware could not make non-associative combination associative, and no amount of additional compute would have supplied the large samples and the joint distributions that a fully rigorous Bayesian alternative required in the 1970s. What eventually displaced the certainty factor was not a bigger machine but a better piece of mathematics — the recognition, which the next chapters follow through INTERNIST-to-QMR and into Judea Pearl's belief networks, that a probability distribution over many variables could be factored along a graph of genuine conditional independencies, giving investigators axiomatic consistency without demanding the combinatorial explosion of a full joint table. Heckerman said as much himself, pointing to "Howard's influence diagrams" and "Pearl's Bayesian networks" as the direction future systems should take rather than continued patching of the certainty factor. The MYCIN debate, in other words, was never a story about waiting for Moore's Law to catch up; it was a story about which piece of mathematics the knowledge engineers should have reached for in the first place.

Probabilistic Reformulations: From INTERNIST to QMR

MYCIN had a rival built on the same continent for the same reason. At the University of Pittsburgh through the 1970s, Jack Myers, Harry Pople, and Randolph Miller built INTERNIST-1 to do for general internal medicine what MYCIN did for bacterial infection: encode an expert's differential-diagnosis skill so a machine could reproduce it. Internal medicine was a far larger target than antibiotic selection, and INTERNIST-1's authors ran into the same wall Shortliffe and Buchanan had already hit, for reasons that a 1978 review by Peter Szolovits and Stephen Pauker at MIT laid out with unusual precision. A textbook Bayesian diagnostic program, they showed, needs a conditional probability for every hypothesis against every possible sequence of test results — and the arithmetic of that requirement explodes almost immediately. For a toy case of only ten candidate diagnoses and five binary tests, they calculated, "the analysis requires 63,300 conditional probabili- ties"; assuming test order doesn't matter cut that to a still-unworkable 2,420. Only by further assuming that every test result is conditionally independent of every other, given the true diagnosis, does the number fall to something a knowledge base could plausibly hold — and that assumption, they stressed, is usually false in exactly the cases where diagnosis is hard, because anatomy and physiology tie findings together in ways a factored probability table cannot see. As they put it, summarizing the whole approach: "The failure of the pure probabilistic decision making schemes lies in their voracious demand for data." No one — not Pittsburgh, not Stanford, not any hospital's medical records department — had a data set from which to estimate the exponentially many joint probabilities a correct model would need. That was not a problem a faster machine could fix.

Faced with that wall, INTERNIST-1 did what MYCIN did: it built a scoring scheme that looked like probability without being probability. Each disease in its knowledge base carried a list of associated findings, and each finding-disease pair carried two hand-assessed numbers on a 0-to-5 scale — an "evoking strength," meant to capture how strongly the finding, if seen, points back to that disease, and a "frequency," meant to capture how often patients with that disease exhibit the finding. The frequency, Szolovits and Pauker noted, was "clearly analogous to the conditional probability" of the finding given the disease, and the evoking strength resembled a posterior probability with the population base rate folded silently in — but INTERNIST's own developers declined to call them probabilities, because the arithmetic that combined them across a case bore only a family resemblance to Bayes' rule. Diseases accumulated a running score from their evoking, matching, and explanatory relationships to the findings observed, much "analogous to the static evaluation of a board position in a chess-playing program," and a disease was pursued, questioned further, or ruled out according to thresholds on that score rather than a posterior probability. The scheme's deepest structural problem was one MYCIN never had to face at the same scale: real patients have more than one disease at a time, and a fully rigorous probabilistic treatment of multiple simultaneous diagnoses "requires the creation of independent hypotheses for every possible combination of diseases. That technique leads to a combinatorial explosion in the data collection requirements of the system and at the same time destroys the underlying view the practicing physician takes toward the patient." INTERNIST-1 dodged the explosion with a heuristic partitioning procedure — grouping competing diseases into problem areas and picking among them one area at a time — that worked well enough on single-disease teaching cases but strained visibly on the multi-disease patients that make up most of a real hospital ward.

INTERNIST-1 itself never escaped that partitioning heuristic, but its knowledge base outlived it. Miller, along with Fred Masarie and Jack Myers, spent the 1980s turning the same disease-finding associations into Quick Medical Reference, or QMR — a consultation and teaching tool built to run on ordinary hospital hardware rather than a research timesharing system. QMR kept INTERNIST's evoking strengths and frequencies essentially intact. It took a second Stanford-based group — Michael Shwe, Blackford Middleton, David Heckerman, Max Henrion, Eric Horvitz, Harold Lehmann, and Gregory Cooper — to do to the QMR knowledge base what Heckerman had already argued someone should do to MYCIN's certainty factors: replace the hand-built scoring arithmetic with an explicit probabilistic graphical model. Their 1991 reformulation, QMR-DT, recast the diseases and findings as nodes in a belief network, with diseases as parents and findings as their probabilistic children, fit from the same evoking-strength and frequency assessments wherever possible, supplemented by disease priors drawn from National Center for Health Statistics hospital-discharge records and by fitted leak probabilities for findings that could appear even absent any listed cause — "the current QMR-DT model uses the fitted leak probabilities from an assessment of findings of various types (history, physical, and laboratory tests)." Where the old INTERNIST scores had been closer to a tie-breaking heuristic than a load-bearing number, every quantity in QMR-DT was now, by construction, an actual conditional probability, and the query the system answered — the posterior probability of each disease given a set of positive and negative findings — was now, at least in principle, the same query Bayes' theorem would answer given the true joint distribution.

Getting the numbers right did not make them cheap to use. QMR-DT's disease nodes were not mutually exclusive the way the Pathfinder project's lymph-node pathology network could assume, and its network was not the kind of sparse, tree-like structure the Lauritzen-Spiegelhalter local-computation algorithms — the ones that would soon anchor Chapter 5 — could handle exactly. As the authors put it plainly, "the QMR-DT belief network, however, is not amenable to these types of exact algorithms." An exact algorithm did exist — Heckerman's "quickscore" — but its own inventors described its limits without euphemism: quickscore has "a computational time complexity that increases exponentially with the number of positive manifestations in a diagnostic case," and could "compute the posterior marginal probabilities for a case of approximately nine findings in about one minute on a Macintosh IIci." Real diagnostic cases the group wanted to test against had on the order of thirty findings, positive and negative combined — well past where quickscore's exponential curve becomes useless on any single machine, then or since, because the quantity being computed is a sum over an exponential number of disease subsets, not a computation that a faster clock rate shrinks down to size. So QMR-DT's authors did not wait for a bigger Macintosh. They replaced exact computation with Monte Carlo simulation — likelihood weighting sharpened by "importance sampling and self-importance sampling" — accepting an estimate that converges to the right posterior rather than a guaranteed exact one, and validating it against quickscore's exact answers only on the small cases where exact computation was still affordable. The moral repeats the one MYCIN had already taught: the ad hoc score could be replaced by real probability, as Duda and Heckerman had insisted it should be, but the belief network that replaced it inherited a second-order problem — the cost of the exact query itself — that no increase in raw computing power could make disappear, because the difficulty lived in the combinatorics of the sum, not in the speed of the arithmetic unit computing it.

Case-Based Reasoning as a Rival Program

MYCIN and INTERNIST were both, at bottom, compilers: the whole point of a knowledge-engineering interview was to squeeze a physician's judgment down into general rules or scored associations that a machine could apply to any patient, forever after, without the physician in the loop. A rival program took the opposite view — that the compiling step was the wrong idea, and that a machine should instead keep the physician's actual remembered patients, and reason by finding the one that looked like the new case in front of it. As Agnar Aamodt and Enric Plaza put it in their widely-cited overview of the field, "Case-based reasoning is a problem solving paradigm that in many respects is fundamentally different from other major AI approaches. Instead of relying solely on general knowledge of a problem domain, or making associations along generalized relationships between problem descriptors and conclusions, CBR is able to utilize the specific knowledge of previously experienced, concrete problem situations (cases). A new problem is solved by finding a similar past case, and reusing it in the new problem situation." The roots of the idea were psychological before they were computational. Roger Schank's theory of dynamic memory held that people reason by being reminded of earlier episodes, not by consulting a compiled rulebook, and Janet Kolodner, working in Schank's group at Yale, built one of the earliest programs to embody that theory: CYRUS, a question-answerer whose entire knowledge base was an organized memory of the travels and meetings of a former US Secretary of State, which it searched by reminding rather than by rule to answer questions about him. Where MYCIN's certainty factors and INTERNIST's evoking strengths had tried to distill a decade of clinical experience into a fixed table of numbers, CBR proposed to keep the decade of experience itself, unreduced, and search it anew every time.

By the early 1990s the field had accumulated enough systems — CYRUS, MEDIATOR, PERSUADER, CHEF, JULIA, CASEY, HYPO, PROTOS, GREBE — that Agnar Aamodt and Enric Plaza could distill them into a single generic process, one they called the CBR cycle and reduced to four verbs: a system must RETRIEVE the most similar case or cases, REUSE the information and knowledge in that case to solve the problem, REVISE the proposed solution, and RETAIN the parts of this experience likely to be useful for future problem solving. The order mattered: a new experience was folded back into the case base every time the cycle completed, so a working CBR system was, unlike a hand-tuned rulebook, a system that kept learning by simple accumulation. But the label covered real disagreement about how much general domain knowledge should surround the cases. Exemplar-based and instance-based approaches, descending from psychological work on how humans categorize concepts extensionally rather than by necessary-and-sufficient rules, kept cases as bare feature vectors with almost no surrounding theory; memory-based approaches emphasized the case base as a large associative memory, with past cases retrieved and evaluated sequentially or in parallel; the more knowledge-intensive systems — Bruce Porter's PROTOS, Edwina Rissland's HYPO for legal precedent, Phyllis Koton's CASEY for heart-failure diagnosis — wove cases together with an explicit causal or legal model, using the model to explain why a retrieved case was relevant and how its solution should be adapted rather than merely copied. In Europe the debate was fought out closer to the shop floor than the seminar room: Michael Richter's group at Kaiserslautern built PATDEX, embedded in the MOLTKE knowledge-acquisition workbench, to diagnose faults on CNC machining centers by retrieving similar past fault cases rather than by encoding a causal model of every machine tool a factory might own.

PATDEX's authors, Michael Richter and Stefan Wess, described their own contribution modestly: "PATDEX closes the gap between the general theoretical basis provided by similarity, uncertainty, rough sets and the associated techniques on the one hand and the requirements of real applications on the other." Earlier in the same conclusion they had written that PATDEX "is fully integrated in an overall view of knowledge acquisition and integration as well as learning" within the MOLTKE workbench for technical diagnosis. That modesty concealed the field's real difficulty. Every CBR system, whatever its knowledge-intensiveness, had to answer the same question at run time — which stored case is most similar to this one? — and answering it meant comparing the new case against however many cases the system had accumulated so far. A rule-based system like MYCIN paid its knowledge-engineering cost once, up front, in the interview room with the expert; after that, evaluating a rule was cheap and its cost did not grow with how much experience the system had encoded. A case-based system deferred the cost to query time and paid it again on every single query, in proportion to the size of the case base — a cost that a rule-based or decision-tree system, having thrown its training instances away once it compiled them into rules, simply did not carry.

David Aha, Dennis Kibler, and Marc Albert, working on the closely related family of instance-based learning algorithms that descended directly from the nearest-neighbor classifier, put the problem in blunt terms borrowed from Leo Breiman's group: derivatives of the nearest-neighbor algorithm "are computationally expensive classifiers since they save all training instances," and case-based reasoning inherited the same difficulty in a more general form, since, as they put it, CBR systems address several issues simultaneously, "the most frequent of which concerns the indexing and retrieval of cases in memory." This is the point at which the book's usual question has to be asked with some care. Summing over an exponentially large space of disease combinations, the difficulty that broke INTERNIST's Bayesian ambitions in the previous section, is a mathematical wall that no faster machine can remove, because the quantity being computed grows with the size of the hypothesis space regardless of clock speed. Searching a case base of accumulated experience for the single most similar prior case is a different kind of problem: its cost grows with the number of cases stored, not with any combinatorial blow-up in the structure of the domain, and it is exactly the kind of linear or near-linear scan that more memory and faster processors chip away at directly. Aha, Kibler, and Albert's own remedy, accordingly, was not a change of mathematics but an engineering compromise for machines that could not yet hold or search a growing case base cheaply: algorithms like IB2 that discarded most incoming instances and kept only those that had actually caused a misclassification, trading a little accuracy for a data structure small enough for a 1991 workstation to search in real time, an analysis that showed "the expected storage requirements are polynomial in the size of the target concept's boundary in the instance space." A rule-based system like MYCIN never had to make that trade, because it had already thrown its cases away at compile time; a case-based system had to choose, explicitly, how much of its memory it was willing to keep and search.

Case-based reasoning never displaced the rule-based expert system the way its early advocates hoped, and it never converged with the probabilistic reformulations of Chapter 2's second act either; instead it settled into a durable niche of its own, strongest in exactly the applications — legal precedent through HYPO and CABARET, technical fault diagnosis through PATDEX, and a scatter of further systems built on CYRUS's memory model, among them CHEF and JULIA — where a domain naturally hands its practitioners specific remembered episodes rather than a clean causal theory. Its more austere cousin fared better inside mainstream machine learning: instance-based learning, stripped of CBR's adaptation and explanation machinery down to similarity, classification, and storage-management functions alone, was absorbed wholesale into the nearest-neighbor tradition that this book's third volume treats as an everyday tool for small, low-compute data. What the case-based program leaves behind is not a solved problem but a clarified one. The knowledge-acquisition bottleneck that drove Feigenbaum's interviews and the combinatorial explosion that broke INTERNIST's Bayesian ambitions were both, in their different ways, permanent: no faster machine unwinds an exponential sum, and no faster machine makes a domain expert's tacit judgment easier to elicit in an afternoon. The retrieval cost that drove CBR's practitioners to prune, index, and parallelize their case bases was not permanent in the same sense — it was the ordinary cost of searching a growing pile of stored experience, the kind of cost a coming generation of cheaper memory and faster processors would, in fact, go on to shrink, long after the expert-systems industry that spawned both rival programs had itself been declared, prematurely, dead.

The Connectionist Counterattack: Backpropagation and Parallel Distributed Processing

Rediscovering the Gradient

The book that closed the 1960s on the connectionist bet was, on its own mathematical terms, narrow and correct. Marvin Minsky and Seymour Papert's 1969 Perceptrons showed that a single layer of Rosenblatt's threshold units — no hidden layer, no internal representation, just inputs wired directly to outputs — could not compute functions as simple as logical exclusive-or, because no linear boundary separates the true cases of XOR from the false ones. Adding a second layer of units between input and output would have dissolved the objection at once: a hidden layer can bend the decision surface into whatever shape the problem needs. But nobody in 1969 had a rule for training that hidden layer. The perceptron convergence procedure adjusted weights by comparing an output to a target; a unit buried in the middle of the network produced no output and had no target, only a share of the blame for an error computed two layers away. This was the credit-assignment problem, and until it had a solution the extra layers were free in principle and useless in practice. Minsky and Papert's book was read, not unreasonably, as a demonstration that the principle was empty, and funding that might have gone toward multilayer networks went instead toward the symbolic programs the previous chapter followed into industrial deployment. The mathematics needed to answer the book had, in fact, already been published the same year it appeared — just not in a place anyone building neural networks had reason to look.

The rule that solved the credit-assignment problem — propagate the output error backward through the network, layer by layer, apportioning blame to each hidden unit in proportion to its causal share, and descend the resulting gradient — was invented and lost at least four times before it stuck. Writing twenty years into the story, Robert Hecht-Nielsen laid out the genealogy plainly: "Backpropagation has a colorful history." The technique was first published in 1969 by the control theorists Bryson and Ho, solving an optimization problem with no stated connection to Rosenblatt's perceptrons, and then "independently rediscovered by Werbos in 1974," this time by a graduate student applying the same chain-rule argument to economic forecasting rather than to pattern recognition. Both versions sat unread by the community that needed them. Paul Werbos's dissertation went essentially unnoticed for over a decade; as Hecht-Nielsen put it, "Werbos' work was not widely appreciated until mid-1987, when it was found by Parker" — David Parker having reinvented the same procedure on his own in the mid-1980s, unaware that Werbos had gotten there first and Bryson and Ho a full five years before that. Even the original Bryson-Ho paper had itself been forgotten and buried in the control-theory literature: Hecht-Nielsen notes that it "was discovered in 1988 by le Cun" — a fourth figure in the story, but one who unearthed a lost precursor rather than rediscovering the technique independently. Credit for turning the idea into something the field actually used went to none of them individually: Hecht-Nielsen judged that credit for turning it into "a usable technique, as well as" carrying it "to a large audience, rests entirely with Rumelhart and the other members of the PDP group." Before their 1986 publication, he wrote, "backpropagation was unappreciated and obscure. Today, it is a mainstay of neurocomputing."

The procedure the PDP group popularized in 1986 was mechanically simple once someone had written it down: run an input forward through the layers to produce an output, compare that output to the desired one, and then run the error backward through the same connections, using the chain rule to convert a single scalar mismatch at the top into a specific correction for every weight beneath it. Hecht-Nielsen's own gloss on the two-sweep procedure captures why it felt, to people who had spent seventeen years without it, almost too easy: "each cycle consists of the inputs to the network “bubbling up” from the bottom to the top and then the errors “percolating down” from the top to the bottom." No new mathematics was required beyond differentiation and a sigmoid activation function smooth enough to differentiate; no hardware beyond an ordinary university timesharing terminal. What the method bought a multilayer network was the same thing the perceptron convergence procedure had bought a single layer in the 1950s — a guarantee that some direction in weight space made things better — with none of the guarantee that this direction led to the global optimum. That the resulting error surfaces could still misbehave was itself worth a paper: it was somewhat surprising when McInerney, Haines, Biafore, and Hecht-Nielsen discovered a local minimum (at a very high error level) in a backpropagation error surface in June 1988, and had to search deliberately to find an example, because by then most practitioners' informal experience was that backpropagation simply did not get stuck. One refinement was present from the start rather than added afterward: Rumelhart, Hinton, and Williams's own formulation already included a momentum term, a fraction of the previous step's weight change carried into the current one so that the update behaved like a damped particle rolling through the error surface rather than a point recomputing its direction from scratch at every step. The effect, as later analyses confirmed, was to average out the oscillation that plain steepest descent suffers in a long narrow valley while still accumulating movement along the valley's axis — and it let practitioners use a larger learning rate than gradient descent alone could tolerate without diverging.

It is worth asking, of this seventeen-year gap between Bryson and Ho's 1969 derivation and Rumelhart, Hinton, and Williams's 1986 paper, whether a faster machine would have closed it. It would not have. The arithmetic of backpropagation scales linearly in the number of connections; differentiating a chain of sigmoids and multiplying by an error term was well within the reach of the same timesharing machines running expert systems in the previous chapter, let alone a university computing center in 1974. Werbos derived and ran the algorithm on the computing available to a Harvard graduate student in the early 1970s; nothing about his dissertation waited on more cycles. What it waited on was an audience. A control theorist writing for other control theorists had no reason to mention Rosenblatt, and no one trying to revive Rosenblatt's program in the mid-1970s had reason to read a dissertation on economic forecasting or a textbook on applied optimal control. Meanwhile the one book that every neural-network researcher of the period had read, Minsky and Papert's, had made the case — correct for the single-layer machine it analyzed — that the whole approach was not worth the funding. The delay, in other words, was disciplinary and institutional rather than computational: three separate literatures had the same derivative sitting in them, and the field that needed it did not reconnect with any of the other two until Parker and le Cun stumbled onto pieces of it independently and the PDP group, in 1986, finally gave it a large enough audience, a catchy enough name, and enough worked examples that no one could mistake it for the discredited single-layer perceptron again. This is the case, recurring throughout this volume, in which the ceiling was never the machine.

Hopfield Nets, Boltzmann Machines, and Energy as Metaphor

Backpropagation gave connectionism a way to assign credit through hidden layers, but it said nothing about why a network should settle anywhere in particular. A second, independent tradition supplied that: physics. In 1982 John Hopfield had shown that a network of symmetric, binary threshold units, updated one at a time, always moves downhill on a single scalar quantity — an "energy" — until it reaches a local minimum. Content-addressable memory fell out of this observation almost for free: store a pattern by carving a valley for it in the energy landscape, and any noisy or partial cue that lands nearby will roll downhill into the stored memory. David Ackley, Geoffrey Hinton, and Terrence Sejnowski, writing in 1985, made the debt explicit. Describing their own network of stochastic units they noted that "the resulting structure is related to a system described by Hopfield (1982), and as in his system, each global state of the network can be assigned a single number called the 'energy' of that state," and that if the hardware units decide asynchronously with negligible transmission delay "the system always settles into a local energy minimum (Hopfield, 1982)." Energy was not a loose analogy borrowed for its poetry; it was a Lyapunov function, a guarantee that a decentralized, asynchronous system with no master clock would provably stop somewhere, and that where it stopped could be read off as a memory retrieved or a constraint satisfied.

The Fodor-Pylyshyn Challenge and Smolensky's Reply

Backpropagation and the Hopfield-Boltzmann physics gave connectionism new machinery. What it still lacked, in the eyes of its harshest critics, was a right to call itself a theory of mind at all. In 1988 the philosopher Jerry Fodor and the psychologist Zenon Pylyshyn published "Connectionism and Cognitive Architecture: A Critical Analysis," an argument aimed not at any particular network but at the entire program. Their claim, as Paul Smolensky later summarized it in the course of answering it, was that "mental states must have constituent structure" — that a thought is not an unstructured blob but is built, the way a sentence is built, out of recombinable parts. The evidence for this was systematicity: there is a difference between thinking that someone loves everyone and thinking that everyone is loved by someone or other, and a mind capable of entertaining one of these thoughts is, as a matter of brute psychological fact, capable of entertaining the other — because the two share constituents that can be systematically recombined. A theory of cognition, Fodor and Pylyshyn argued, has to explain why thought comes in these systematically related families, and the only known explanation is a classical one — symbols concatenated according to a syntax, the very "language of thought" architecture that connectionism had set out to replace. A network of distributed, superposed activations, on their reading, has no such combinatorial syntax; at best it can be wired up to *implement* one, in which case it is not a rival to the symbolic account of mind but a hardware detail underneath it.

Smolensky's considered answer came in his 1988 target article "On the Proper Treatment of Connectionism," and it was not the answer the challenge invited. He did not try to show that distributed networks secretly possess classical, concatenative constituent structure after all. He granted the demand and then relocated it. Fodor and Pylyshyn, he wrote, had argued that "mental states must have constituent structure," and the question was what "constituent" could mean for a pattern of activation smeared across hundreds of units rather than written as a string of symbols. To make the question concrete, Smolensky took up an example Zenon Pylyshyn himself had once offered in debate: that "the connectionist representation of coffee is the representation of cup with coffee minus the representation of cup without coffee" — subtract the container from the container-plus-contents and what remains is the network's symbol for coffee, extracted the way one might factor a variable out of an equation. Smolensky's move was to take the procedure seriously enough to run it twice. As he pointed out, "there is nothing sacred about starting with cup with coffee: why not start with can with coffee, tree with coffee, or man with coffee," and subtract accordingly. Carried out on any plausible distributed, featural representation, "each of these procedures produces quite a different result for 'the' connectionist representation of coffee." There is no single, context-free vector that the network is using as its coffee-symbol; there are many, one for each context it was extracted from. For a classical symbol this would be a contradiction — the whole point of a symbol token is that it is the same symbol wherever it appears. Smolensky concluded instead that connectionist constituents are real but graded: "these constituent subpatterns representing coffee in varying contexts are activity vectors that are not identical, but possess a rich structure of commonalities and" differences, "a family resemblance, one might say." He generalized the point into a direct contrast with the symbolic architecture Fodor and Pylyshyn were defending: "In the symbolic paradigm, the context of a symbol is manifest around it and consists of other symbols; in the subsymbolic paradigm, the context of a symbol is manifest inside it and consists of subsymbols." A classical symbol sits in context; a connectionist one absorbs it, so that the representation of coffee is subtly redrawn every time the surrounding pattern changes. This is not a rebuttal in the sense of denying Fodor and Pylyshyn's premise — Smolensky conceded that rigid, classical constituency does not hold in these networks. It is a bet that systematicity is a real but higher-level regularity, an approximately-true story told about a substrate that is, at the level activation vectors actually live at, "soft." Whether that bet pays off is a question about representation and inference, not about clock speed or memory: rerun the coffee-cup subtraction on a 2026 accelerator and the vectors still disagree with each other for exactly the reason Smolensky gave in 1988. The dispute between systematicity-as-classical-syntax and systematicity-as-family-resemblance is philosophical, and no faster hardware settles it.

Neural Networks Go to Work

Reading Zip Codes and Digits

Backpropagation's first sustained industrial application was not a laboratory demonstration but a piece of the U.S. Postal Service pipeline. In 1989, Yann LeCun and colleagues at Bell Labs — Boser, Denker, Henderson, Howard, Hubbard, and Jackel — trained a multilayer network to read the handwritten digits that Postal Service contractors had already segmented out of zip codes passing through the Buffalo, NY post office. The data base was modest by any later standard: "9298 segmented numerals digitized from handwritten zip codes," of which 7291 examples were used for training and 2007 for testing generalization. The digits had been "written by many different people, using a great variety of sizes, writing styles, and instruments, with widely varying amounts of care," and the authors were candid that "both the training set and the testing set contain numerous examples that are ambiguous, unclassifiable, or even misclassified." Nine thousand examples was not a number a 2011-era practitioner, let alone a 2026 one, would think twice about; the interesting constraint the authors faced was not how much data they had but how little, and their answer was architectural rather than computational.

The design principle LeCun's group followed was stated as a general rule for learning from scarce data: reduce the number of free parameters in the network as much as possible without overly reducing its computational power, on the theory that a specialized architecture yields "a reduced entropy" and "a reduced Vapnik-Chervonenkis dimensionality." The mechanism was weight sharing: groups of hidden units, arranged as "feature maps," were forced to apply the identical set of weights at every position in the input image, so that a detector for a stroke or curve learned once could fire anywhere on the digit rather than needing to be relearned at each location. The resulting network — three hidden layers, "1256 units, 64,660 connections, and 9760 independent parameters" — was a direct ancestor of the convolutional net, and the paper already uses the word: it describes the first two layers as "constrained to be convolutional" and calls the feature-map operation "a nonlinear subsampled convolution with a 5 by 5 kernel." What the paper does not yet do is name the whole architecture a "convolutional network" — that fuller nomenclature, and the LeNet label, would come in the group's later work. The constraint was doing exactly the job a bigger training set would otherwise have had to do: the authors reported that "various fully connected, unconstrained networks were also tried, but generalization performances were quite bad," while the constrained network reached 0.14% error on the training set and 5.0% on the test set after only 23 passes through the data. The lesson was not that computers were too weak for unconstrained networks — a fully connected one-hidden-layer alternative with 10,690 connections was perfectly easy to train — but that with only a few thousand labeled examples, an unconstrained network had more capacity than the data could pin down. That is a statement about statistics, not about clock speed, and it would still bind on a cluster of 2026 GPUs handed the same 9,298 digits.

The computational side of the experiment is almost anticlimactic to read now. "All simulations were performed using the backpropagation simulator SN... running on a SUN-4/260," an ordinary departmental workstation, and the whole network converged after "(167,693 pattern presentations)" — twenty-three passes through the training set, which the authors judged "extremely quick" and evidence "that backpropagation can be used on fairly large tasks with reasonable training times." The paper explicitly contrasts this with a cautionary precedent: Alexander Waibel's earlier speech-recognition network, with only "about 18,000 connections and 1800 free parameters," had needed "18 days on an Alliant mini-supercomputer," a training time so long that Waibel had been forced to build the network out of smaller, separately trained pieces just to make it tractable. LeCun's group did not need that workaround: "our training times were 'only' 3 days on a Sun workstation," they note, a sixfold reduction in wall-clock time next to Waibel's figure. But their point in citing the contrast was not a claim about relative machine speed — the paper does not attribute the difference to the Alliant versus the SUN-4/260, and offers no accounting for the reader to infer one. It is worth being precise about what does and does not explain the sixfold gap: Waibel's network was not an unconstrained fully connected net but a modular time-delay architecture, itself built from weight-sharing across time, assembled from smaller pieces trained separately to keep it tractable — and it had fewer free parameters (1,800) than LeCun's own constrained design (9,760), not more. Parameter count alone therefore cannot be the explanation for why LeCun's net trained faster; task, hardware, and architecture all differ between the two experiments, and the paper itself draws no such accounting. What LeCun's group avoided was Waibel's particular workaround — decomposing the network into separately trained modules — not a slower machine. The rejection curve they report — "12.1% for 1% classification error" on the remaining, non-rejected test patterns — reads today as a description of a usably deployed system, not a laboratory curiosity: a mail-sorting machine could route the 88% of digits the network was confident about and hand the rest to a human, which is exactly the compromise industrial OCR systems settled into for the next decade.

By 1998, when LeCun, Bottou, Bengio, and Haffner published their long survey "Gradient-Based Learning Applied to Document Recognition," the zip-code experiment had grown into a full research program and a shipped product. The digit benchmark itself had grown by an order of magnitude, and the paper used it to run a bake-off among nearly every trainable classifier then in circulation — linear classifiers, k-nearest neighbors, principal-component-plus-quadratic classifiers, several plain multilayer nets, tangent-distance matching, support vector machines, and a sequence of convolutional nets named LeNet-1 through LeNet-5. The results made a specific, quantitative case for architecture over brute-force memorization: "Boosted LeNet-4 performed best, achieving a score of 0.7%, closely followed by LeNet-5 at 0.8%," while Cortes and Vapnik's original support vector machine reached the same 1.1% error but at "a computational cost... very high: about 14 million multiply-adds per recognition." Only Burges's reduced-set variant, RS-SVM, closed that gap, matching the 1.1% figure "with a computational cost of only 650 000 multiply-adds per recognition, i.e., only about 60% more expensive than LeNet-5" — which implies LeNet-5 itself cost roughly 400,000 multiply-adds, and puts the original SVM, by that same arithmetic (the paper itself draws no such comparison), at something like thirty-five times LeNet-5's cost rather than the round "twenty times" one might guess from the headline 14-million figure alone. The k-nearest-neighbor classifier, by contrast, needed no training at all but paid for it at inference time and in storage: the authors judged that "cost-effective implementations of memory-based techniques are more elusive due to their enormous memory requirements and computational requirements." Training LeNet-5 itself was no longer a matter of hours — "this amounts to two-three days of CPU to train LeNet-5 on a Silicon Graphics Origin 2000 server using a single 200 MHz R10000 processor" — but the authors were explicit that this number mattered only to the designer, not to the deployed system, and that the underlying hardware trend was already erasing any argument from cost: "the rapid progress of mainstream computer technology renders those exotic technologies quickly obsolete." The paper's real punchline was commercial, not benchmark: LeNet-5 was, by publication, running inside NCR's check-reading products, and "it is reading millions of checks per month in several banks across the United States" — a neural network doing unglamorous production work on 1990s hardware, a full decade before anyone thought to put the same arithmetic on a GPU.

Hearing Phonemes: Time-Delay Networks and Speech

Zip codes sit still on a page; speech does not sit still at all, and that difference set the terms for the second industrial application of backpropagation. At Carnegie Mellon and ATR, Alex Waibel and collaborators — Toshiyuki Hanazawa, Kevin Lang, Geoffrey Hinton, Kiyohiro Shikano — built a network to discriminate spoken phonemes, and the paper that introduced it opens with a statement of what makes audio harder than a bitmap: a speech signal "is produced by moving the articulators towards target po- sitions that characterize a particular sound," and "since these articulatory mo- tions are subject to physical constraints, they commonly don't reach clean identifiable phonetic targets and hence describe trajectories or signatures rather than a sequence of well defined phonetic units." Worse, there was no reliable marker of when a phoneme began or ended, so pre-segmenting the signal before classification simply relocated the error: a suitable model, the authors argued, "should instead simply scan the input for useful acoustic clues and base its overall decision on the sequence and co-occurrence of a sufficient set of detected lower level clues," which "presumes the existence of translation invariant feature detectors." Their answer, the Time-Delay Neural Network, imported the same trick LeCun's group would later name convolution: a hidden unit's weights were duplicated across shifted copies of itself sliding through time, so that a detector for a formant transition, once learned, could fire whenever that transition occurred rather than needing to be relearned at every possible instant. Weight sharing across space became weight sharing across time.

The initial task was deliberately narrow — discriminating the three voiced stop consonants /b, d, g/ from isolated Japanese utterances — and the network was small: two hidden layers scanning a window of sixteen melscale spectral coefficients over fifteen ten-millisecond frames. But the result was the one that mattered for the argument connectionists were making against the field's incumbent technique. "Recognition experiments with three different male speakers showed that discrimination scores between 97.5% and 99.1% could be obtained," and crucially, "these scores compare favorably with those obtained using several standard implementations of Hidden Markov Model speech recognition algorithms" — the statistical technique that dominated commercial and research speech recognition throughout the period and for two decades afterward. A companion paper pushed accuracy further by replacing the ordinary mean-squared-error training objective with a "classification figure-of-merit" that rewarded any margin between the correct output and its competitors rather than driving every output toward an exact target; combined with a simple arbitration scheme pitting the two objectives' errors against each other, the enhancement yielded single-speaker /b, d, g/ rates "consistently exceed[ing] 98%" and a multi-speaker rate of 98.1% pooling three male speakers. None of this depended on unusual computing power — the networks had at most a few thousand weights — the gain came from where the error signal was pointed.

Three phonemes was one thing; a usable speech recognizer needed dozens. Waibel's group tried the obvious next step — training a single, larger network on all six stop consonants, /b, d, g, p, t, k/, instead of just the voiced three — and ran directly into a wall that had nothing to do with statistics and everything to do with the machine on their desks. Doubling the number of output categories roughly tripled the number of connections to be trained, and "even without increasing the number of training tokens in proportion to the number of connections, the complete /b,d,g,p,t,k/-net training run still required 18 days on a 4-processor Alliant supermini and had to be restarted several times be- fore an acceptable solution had been found. The original /b,d,g/-net, by comparison, took only three days." The authors' own diagnosis was blunt: "it is clear that learning time increases more than linearly with task size." That is a claim about wall-clock time on a specific machine, not about the underlying mathematics of the classification problem, and it is exactly the kind of limitation the book's central question is built to test — an eighteen-day run on a four-processor Alliant is a rounding error on a laptop three and a half decades later. But the researchers living inside 1989 could not wait three and a half decades, so they built around the wall instead of through it. Their fix was architectural: freeze the already-trained hidden layers of the separate /b,d,g/-net and /p,t,k/-net, add a handful of free "connectionist glue" units to let the two subnetworks discover the cross-category features neither had needed alone, and retrain only the small combination on top. Combination training this way took two days rather than eighteen, and "all-net fine tuning" over a few more hours nudged the merged network to 98.6% accuracy — matching or beating the monolithically trained net's 98.3%.

The same modular recipe scaled to the full consonant inventory of the database — eighteen categories built from six subcomponent nets (voiced and voiceless stops, nasals, sibilants, affricates, and liquids-and-glides) glued together with an additional interclass discrimination net trained to route an incoming token to the right subfamily before the subfamily net made the fine call. The composite system reached "consonant rec- ognition scores of 95.0 percent and 95.9 percent, respec- tively" before and after all-net fine tuning, and the paper set this against two Hidden Markov Model baselines built by the same laboratory: "the first (83.6 percent) shows the recognition per- formance of a relatively standard HMM," while a more heavily engineered "improved HMM" — using three separate codebooks and separate models for word-initial and word-medial phoneme position — closed most, though not all, of the gap. On the head-to-head comparison the authors were willing to make, "the TDNN yields significantly lower error rates [significant at p < 0.01 (chi square test)] when compared to this advanced HMM over an all-consonant recognition task." It was a genuine, statistically tested win for the connectionist architecture on the task it had been built for. But the authors immediately fenced the claim in: the two systems were not given identical information — the improved HMM used position labels the TDNN never saw — and "we would like to caution the reader... that an HMM's particular strength may very well lie in the inte- gration of phonetic-level estimates into words and sen- tences rather than in its ability to recognize phonemes." That caution proved prescient. Recognizing an isolated phoneme and recognizing a spoken sentence are different problems, and for the next two decades of commercial and research speech recognition, it was the Hidden Markov Model — not the time-delay network — that supplied the backbone doing the harder of the two jobs.

The Alliant runs were not an isolated inconvenience; they were symptomatic of a compute shortage the same Carnegie Mellon milieu was attacking from the hardware side. A companion project at the university built a special-purpose machine, the Warp systolic array, explicitly because "the application of neural networks to speech recognition... requires huge amounts of computing resources" — a ten-processor Warp, selling commercially through General Electric for "about $350,000," delivered a peak 100 million floating-point operations per second and cut the time to train the standard NETtalk text-to-speech benchmark from "about 8 minutes" on a Connection Machine CM-1 to "43.5 seconds," eleven times faster. Measured against a 2026 datacenter, none of these numbers — eighteen days on an Alliant, three days on a Sun, forty-three seconds on a quarter-million-dollar systolic array — describe a wall that still stands; they describe the specific, dissolvable friction of training networks on 1980s silicon. What has a longer half-life is the architectural answer the friction provoked: modular, incremental construction, in which small networks are trained separately and their frozen internal representations reused, anticipates the layer-freezing and transfer-learning habits that would become routine once training any single large network again became expensive — this time not because the processor was slow, but because the model itself had grown too large for one lab's budget. And despite the TDNN's real, well-documented wins on phoneme discrimination, it was the Hidden Markov Model — extended through the 1990s with exactly the kind of hybrid neural-statistical architectures the Multi-State TDNN's word-level dynamic time warping and per-speaker adaptation modules foreshadowed — that remained the working core of deployed speech recognition until the deep networks of the GPU era swept both aside at once.

Neural Networks in Finance, Control, and Industry

Zip codes and phonemes were benchmarks: bounded tasks with a labeled dataset, a rival technique already in commercial use, and a scoreboard everyone agreed to read. Once backpropagation left the benchmark and went looking for paying customers, the terrain got messier. Banks wanted to know which borrowers would default; automakers wanted a controller that could keep an engine idling smoothly without stalling; welding shops wanted to hold a bead of molten metal to a tolerance a physics-based model could not predict. None of these were problems anyone had built a shared corpus for. Each research group brought its own plant, its own bank's loan book, its own robot arm, and reported results that could not be stacked against a rival's the way a percentage on the NIST digit set could. The neural network literature that grew up around finance, control, and industrial process work in the late 1980s and early 1990s is accordingly less a single narrative than a set of case studies unified mainly by what each one discovered about the boundary between "the mathematics is hard" and "the machine is slow" — and, in more than one case, a boundary between "the machine is slow" and "the customer does not trust a black box."

Finance offered the oldest incumbent of all: Edward Altman's 1968 Z-score, a five-ratio linear discriminant function that had been the standard tool for predicting corporate bankruptcy for two decades. A wave of papers in the early 1990s set neural networks against it. Robert Lacher and colleagues at Florida State trained Scott Fahlman's Cascade-Correlation architecture — which grows its own hidden units during training rather than requiring the modeler to guess a fixed topology in advance — on the same five financial ratios Altman had used, arguing that "the MDA technique has limitations based on its assumptions of linear separability, multivariate normality, and independence of the predictive variable[s]" and that "a neural network, being free from such constraining assumptions, is able to achieve superior results." The claim was testable and, on their sample, true enough to publish. But the more consequential experiment happened not in a university lab but inside a working bank consortium.

The Centrale dei Bilanci, a consortium of the Bank of Italy and some seventy Italian credit institutions, had built exactly the kind of diagnostic tool Lacher's paper argued against: "the development of this System commenced in 1988 with the creation of an initial version based on a pair of linear discriminant functions," and by "1989, the System was distributed to half of the banks belonging to CB for actual application in credit analysis at their head offices" — a rare case in this literature of a statistical model actually running in production, screening real loan books rather than a held-out test set. When Edward Altman himself joined Italian researchers to test neural networks against the deployed discriminant system, the comparison ran the other way from Lacher's. The networks matched or slightly beat discriminant analysis on raw classification accuracy, but the authors' list of practical objections is a catalogue of two distinct kinds of complaint, one durable and one not. "The long processing time for completing the NN training phase, the need to carry out a large number of tests to identify the NN structure, as well as the trap of 'overfitting' can considerably limit the use of NNs" — a complaint about wall-clock time and search cost that a 2026 laptop, let alone a data center, erases without changing a single conclusion about the underlying finance. But the paper's other objection does not erase: "the resulting weights inherent in the system are not transparent and are sensitive to structural changes," so that "discriminant analysis proves to be a very effective tool that has the significant advantage for the financial analyst of making the underlying economic and financial model transparent and easy to interpret." A bank examiner who must explain to a regulator, or to a rejected borrower, why a loan was denied cannot accept "the network said so" as an answer regardless of how many GPUs computed it. The authors' own verdict — that "neural networks are not a clearly dominant mathematical technique compared to traditional" statistical techniques such as discriminant analysis — was a judgment about accountability, not about arithmetic, and it is the reason credit-scoring stayed substantially rule-based and linear long after training time stopped being anyone's bottleneck.

Control engineering gave neural networks a different kind of incumbent: not a statistical model but a plant that already had a working, if imperfect, physics-based controller. Gintaras Puskorius and Lee Feldkamp, working at Ford Motor Company's research laboratory, trained recurrent networks to control simulated automotive subsystems — active suspension, anti-lock braking, an engine idling far from its stable operating point — using the extended Kalman filter as a training algorithm rather than plain backpropagation, on the argument that it converged in far fewer presentations of data. The appeal of Kalman-filter training carried its own arithmetic penalty: an earlier least-squares formulation had shown fast learning per example, but "the training time per instance scales as the square of the number of weights in the network, thus rendering the algorithm impractical for many problems." Puskorius and Feldkamp's fix was structural rather than computational — a "decoupled" Kalman filter that pretends most weights do not interact with most other weights, trading a globally optimal update for one cheap enough to run at all, since the full filter's "computational complexity is O(N,M2) and its storage requirements are O(M2)" in the number of network outputs and weights. That is a real algorithmic tradeoff, but it is one whose sting is proportional to M2 on a machine with fixed cycles per second; scale the cycles up by six orders of magnitude, as the decades after 1994 would do, and the "impractical" full filter becomes merely expensive rather than forbidden. Tellingly, the paper's demonstrations — a cart-pole balancer, a simulated bioreactor, an idling engine model — were exercises in showing the training method could work at all, not reports of a system running inside an actual production vehicle: "we have shown that recurrent networks are easily trained for the control of automotive subsystems such as active suspension [22] and anti-lock braking [23]," phrased, like the rest of the paper, in the register of a feasibility study rather than a deployment record. Ford's own neurocontrol program remained, through the period this book covers, a demonstration that the training could be made fast enough on the hardware at hand — not a demonstration that a customer's car was, in fact, steered by one.

A third case study completes the triangle the section opened with: gas tungsten arc welding, where the tolerance a physics-based model could not predict was neither a borrower's creditworthiness nor an idling engine's fuel-air mixture but the literal geometry of a weld bead. The weld pool's dimensions — bead width, penetration depth, reinforcement height, cross-sectional area, together the "direct weld parameters" — depend on welding current, voltage, torch speed, and wire-feed rate (the "indirect weld parameters") through a mapping that is highly coupled and nonlinear, and that decades of heat-conduction physics had failed to capture with useful accuracy: model-versus-measurement errors as large as several hundred percent had been reported for the traditional physics-based models of the weld pool. Worse, the one quantity everyone most wanted to control was invisible to instruments: "many of the plant's outputs simply cannot be measured on-line," and specifically "the pool penetration is usually unknown on-line" — a depth buried in molten metal that no sensor on a 1989 welding line, or a 2026 one, can read without looking inside. Researchers modeling the process trained a feedforward network with tapped delay lines — backpropagation extended with a short memory of recent inputs and outputs — to learn the indirect-to-direct parameter mapping straight from data, bypassing the physics. The training data were thirty-one actual welds, each struck, cooled, then cut open and cross-sectioned, because the geometry the network was meant to predict could only be read off a ruined workpiece. A network of two hidden layers with eighteen units apiece — trivial by any later standard of scale — converged fastest without loss of accuracy on that sample. The authors then ran two distinct checks. First, an in-sample one: "once the neural network had been trained with the 31 welds, its performance on 11 randomly selected welds out of the training set was tested" — errors of roughly three to eight percent across the four geometric parameters, welds the network had already seen used to fit it. Second, the genuine test: "an additional 11 welds, not from the training set, were given to the network and its performance in predicting the DWPs from the IWPs of this new set of data was evaluated for comparison" — and on these truly held-out welds the per-parameter errors, set against their in-sample counterparts, told two different stories: bead width rose from 2.86% to 8.01% and penetration from 7.75% to 20.18%, several times worse out of sample, while reinforcement height actually fell from 7.13% to 3.97% and cross-sectional area held roughly steady, 6.72% against 7.10%. Two of the four geometric parameters degraded sharply on new welds; the other two did not — a split the paper's feasibility claim glossed over, but still a real gain, where it held, against a physics-based baseline that had been off by hundreds of percent. Yet the paper's own conclusion cast the result as a feasibility demonstration, not a finished tool: what remained was to test the network-based controller "in real-life circumstances," on an actual welding line rather than in the laboratory. Set beside credit scoring and engine control, welding sharpens the book's question rather than complicating it. The Ford network's binding cost was compute — a filter whose complexity scaled with the square of its weight count, a penalty six later orders of magnitude of clock speed would erase. The bank's binding cost was trust — a transparency requirement no amount of throughput touches. The welding network's binding cost was neither: it was the cost of manufacturing a single labeled example, which meant running a bead and destroying it to learn what the label had been. Thirty-one training welds were not a symptom of an underpowered 1989 workstation; they were a symptom of a ground truth that arrives one ruined weld at a time, at whatever rate a lab can strike arcs and section metal. A 2026 datacenter does not change that rate. Of the three boundaries this section has catalogued — computable-but-slow, accurate-but-opaque, and accurate-but-data-starved — only the first is a hardware story the intervening decades erased. The other two are why neural networks entered finance, control, and manufacturing within the same five years, and why none of the three fields simply handed its existing tools to the network and walked away.

The Statistical Turn: Bayesian Networks and Probabilistic AI

Local Computations on Graphical Structures

The exponential wall that Szolovits and Pauker had described for medical diagnosis was a special case of a more general fact about probability. A joint distribution over n binary variables has 2^n entries; to represent it honestly, in the absence of any independence assumption, is to write down a table whose size doubles with every variable added to the model. Expert-system builders in the 1970s had responded to that wall by retreating from probability altogether — MYCIN's certainty factors, CASNET's causal-associational network, INTERNIST's evoking strengths — each a scoring scheme that resembled Bayesian combination without submitting to its bookkeeping. Gregory Cooper, one of the physicians-turned-computer-scientists who had lived through that retreat at Pittsburgh and Stanford, later reconstructed the reasoning that drove it. Reflecting on the exhaustive Bayesian diagnostic programs of the 1960s, Gorry had written in the early 1970s that "although we cannot characterize precisely the methods used by experts, it is clear that these methods can accommodate the greater complexity of real clinical situations. The potential usefulness of exhaustive search as the primary decision procedure for the program, however, is open to question." The conclusion the field drew from that remark was that probability itself, not merely one program's implementation of it, could not scale to real domains — and for a decade research moved toward ad hoc representations precisely because no one had shown how to keep the axioms without keeping the exponential table.

The way out of the exponential table, when it came, came from a UCLA computer scientist who had spent the early 1980s thinking about how belief ought to move through a hierarchy of hypotheses rather than sit in one giant table. Judea Pearl, working with his student Jin Kim, showed in 1983 that if the dependency structure among variables could be drawn as a tree — or, more generally, as a "polytree" with no cycles when the arrows are stripped of direction — then updating every belief in the network in response to one piece of evidence did not require touching the joint distribution at all. It required only that each node exchange short messages with its immediate neighbors: a node receiving evidence recomputes its own belief and sends a revision factor to its parents and a distribution factor to its children, and each neighbor, on receipt, updates itself and relays a transformed message onward, never needing to know what happens more than one hop away. Pearl described the scheme, in a 1986 paper reworking it for tree-structured evidence, as message-passing between neighbors "as depicted in Fig. 1," governed by update rules he stated explicitly: an impacted node updates its own belief and "transmits messages to its neighbors," each descendant modifies its belief "by a factor," and each node passes to its own neighbors, in turn, only the small quantities the algorithm defines — never the full table. He captured the intuition with a physical metaphor: the scheme, he wrote, "perfectly conforms to the popular metaphor of storing a quantity of uncommitted mass" at the site of new evidence, distributing that mass to the rest of the network only as far, and only as fast, as the tree's edges allow it to travel. The computational payoff was not incremental. On a tree or polytree, belief updating that would naively cost a sum over exponentially many joint configurations instead cost time linear in the number of nodes, because the algorithm never constructed the joint distribution in the first place — it exploited the graph's own lack of cycles to confine every computation to a node and its immediate neighborhood.

The polytree algorithm's restriction to acyclic dependency graphs was not a technicality. Real domains — medicine chief among them — routinely produce networks in which a finding has two disease parents that themselves share an ancestor, closing a loop that breaks the neighbor-only message-passing scheme. The fix, worked out over the mid-1980s chiefly by the Danish statisticians Steffen Lauritzen and David Spiegelhalter and rendered into the widely used HUGIN system by Jensen and colleagues, was not to abandon local computation but to change what counted as local. Their algorithm first "moralizes" the directed graph — joining any two nodes with a common child, then dropping arrowheads — and then triangulates the resulting undirected graph, adding just enough edges that no cycle of four or more nodes lacks a chord across it. The triangulated graph's maximal cliques become the nodes of a new tree, a "join tree" or junction tree, built so that "every element which appears in more than one cluster appears in every cluster on the path between them." Message passing then proceeds exactly as in the polytree case, but between whole clusters of variables rather than single ones: each cluster combines its own local probability tables into a "potential function," and the algorithm — described independently by Lauritzen and Spiegelhalter, by Shafer and Shenoy, and folded by Shachter, Andersen, and Szolovits into a single "Clustering Algorithm" that showed the polytree method and Pearl's later loop-cutset conditioning to be special cases of it — passes potentials around the junction tree until every cluster's local table is consistent with the global joint distribution, again without ever writing that distribution down in full. Any acyclic graph, however tangled its moralized version, can in principle be triangulated and clustered this way; the construction that guarantees such a triangulation always exists, decomposing a graph into a unique minimal system of maximal prime subgraphs joined by clique separators, had in fact been worked out earlier in a different literature — graph theory applied to sparse matrix elimination and to log-linear models for contingency tables — and was carried into the belief-network setting essentially unchanged.

What the junction-tree construction could not do was make the clusters small. Triangulation always succeeds, but nothing bounds the size of the cliques it produces except the density of the original graph, and a cluster's potential table grows exponentially in the number of variables the cluster contains — so a densely connected network, moralized and triangulated, can hand the propagation algorithm a junction tree whose "local" computations are each, individually, as large as the exponential sum the whole apparatus was built to avoid. In 1990 Gregory Cooper made the underlying reason precise, rather than incidental to bad luck in graph structure. Reducing the Boolean satisfiability problem 3SAT to a belief-network query, he proved that "probabilistic inference using belief networks is NP-hard," and drew the moral for the field directly: "it seems unlikely that an exact algorithm can be developed to perform probabilistic inference efficiently over all classes of belief networks," so "research should be directed away from the search for a general, efficient probabilistic inference algorithm, and toward the design of efficient special-case, average-case, and approximation algorithms." This is the same wall Chapter 2 met from the other side, in the QMR-DT reformulation of INTERNIST's disease-finding network: an exact algorithm existed for singly-connected and modestly clustered networks, and it ran in milliseconds; the same algorithm applied to a network whose moralization refused to triangulate into small cliques cost time exponential in the number of uninstantiated variables, on a Macintosh IIci in 1991 and on any machine built since. No increase in clock speed shrinks an exponent — a datacenter forty years newer than Cooper's SUMEX-AIM computer at Stanford can run the same NP-hard query somewhat larger before the wall arrives, but the wall is a theorem about 3SAT, not a specification sheet, and it arrives at every scale of hardware in the same combinatorial place. The practical response, already visible in Cooper's 1990 paper and fully worked out by the QMR-DT team the following year, was to give up exactness for the networks that resisted small cliques: bounded approximation algorithms, and Monte Carlo simulation methods whose error shrinks with computation time but whose answer is never guaranteed exact. Probabilistic AI had solved the representational problem that drove the 1970s away from Bayes — the graphical structure factored the joint distribution and local computation propagated belief through it without ever writing that distribution down — but it had also rediscovered, in a sharper and more general form, exactly the wall the field thought it was escaping.

Learning the Structure of Belief

The junction-tree algorithms of the previous section solved a problem that presupposed its own hardest step: they propagated belief efficiently once a network's structure — which variables depended on which — was already given. Through the 1980s that structure had come from the same place MYCIN's rules had come from, an expert sitting with a knowledge engineer, sketching arrows on a whiteboard until the diagram matched their intuition. The method scaled the way manual knowledge engineering always scaled, which was badly: a network of even modest size demanded weeks of elicitation, and the elicited structure carried the expert's blind spots along with their expertise. By the end of the decade a database of recorded cases — patient records, sensor logs, experimental trials — was often easier to obtain than another hour of an expert's time, and the question became whether the arrows could be read off the data itself. The difficulty was not primarily statistical but combinatorial. The number of distinct directed acyclic graphs on n labeled nodes does not merely grow exponentially in n; Robinson's 1977 recurrence for that count, applied by Cooper and Herskovits to frame exactly this problem, gives 25 structures for three variables, 29,000 for five, and approximately 4.2 × 10^18 for ten — a number in the same range as the count of atoms in a grain of sand, reached before a network has as many variables as a short questionnaire. Exhaustive search over network structures, feasible for a handful of variables, was closed off long before any real domain's variable count was reached, for the same reason that summing a joint distribution over all instantiations of many binary variables was closed off: both are sums over a space that doubles, or worse than doubles, with every dimension added.

Gregory Cooper and Edward Herskovits, publishing in 1992 the method they had circulated the previous year, reframed structure discovery as a search over a posterior distribution rather than an exhaustive comparison. Given a database of cases, their formula computed P(Bs, D) — the joint probability of a candidate network structure and the observed data — in closed form under four explicit assumptions: that variables were discrete, that cases were independently sampled, that no data were missing, and that a Dirichlet prior governed the parameters. The formula let two structures be ranked against each other without touching the astronomical space of all structures at once, but ranking pairs still left the problem of which pairs to rank. Robinson's count made "an exhaustive enumeration of all network structures" what Cooper and Herskovits called it: "not feasible in most domains." Their answer was a greedy heuristic they named K2: given a fixed ordering of the variables — an assumption that quietly discharged the hardest part of the search, since it forbade any arc running backward through the list — the algorithm considered each node in turn and asked whether adding, from among its possible predecessors, the single parent that most increased P(Bs, D) was worth doing, repeating the step until "no single parent can increase the probability." The method was frankly a relative of the greedy induction already familiar from classification trees. Tested against 10,000 cases simulated from Beinlich's ALARM network, a 37-node model of anesthesia monitoring built as "an initial research prototype to model potential anesthesia problems in the operating room," K2 recovered the network's structure almost exactly — missing one weakly supported arc and adding one spurious one, which Cooper and Herskovits attributed directly to "the greedy nature of the K2 search algorithm" — and did so, they reported, in what "the total search time for the reconstruction was approximately 16 minutes and 38 seconds on a Macintosh II running LightSpeed Pascal, Version 2.0."

K2's fixed node ordering was doing more work than it looked like it was doing, and David Heckerman, Dan Geiger, and David Chickering made that work explicit in a 1995 paper that generalized Cooper and Herskovits's scoring formula into a family of "Bayesian scoring metrics" — including a likelihood-equivalent BDe metric that let a user's own hand-built expert network serve as an informative prior, so that a database of cases could be used, as they put it, to "correct" that prior knowledge rather than replace it outright. They also settled the question K2 had sidestepped by fiat. Restrict every node to at most one parent, and the highest-scoring structure can be found by a polynomial algorithm — Chow and Liu's 1968 tree-construction method was the classical instance. But allow a node two or more parents, the realistic case for any domain with genuine multi-cause structure, and the decision problem "k-LEARN" — does there exist a network structure, respecting the parent bound, whose score exceeds a given value — is NP-complete, a result the authors attributed to Höffgen's related proof for PAC learning and to Chickering's own 1995 extension showing the hardness survived even under the likelihood-equivalent BDe metric with a prior-equivalence constraint. K2's ordering assumption had been quietly buying its way around exactly this wall by ruling out most of the search space before scoring began, at the cost of trusting an ordering no algorithm could verify. Without that assumption, Heckerman, Geiger, and Chickering concluded, "it is appropriate to use heuristic search," and reviewed the same taxonomy the previous chapters had already met from other directions: greedy local search, iterated local search to escape local maxima, and simulated annealing. The published comparisons of these heuristics on the ALARM benchmark showed how much daylight separated an NP-complete search problem from any particular attempt to solve it: Spirtes, Glymour, and Scheines's constraint-based PC algorithm reconstructed ALARM from the same 10,000 cases with three arcs missing and two extra arcs added — five structural errors in all — in "about 6 minutes of computer time on a DecStation 3100," while an independently reported entropy-based search by Kutató, working from the identical database, needed "approximately 22.5 hours of computer time on a Macintosh II computer" to reach a somewhat more faithful structure, missing two arcs and adding two extra ones. Neither matched K2's own one missing and one spurious arc: the fastest of the three methods was also the least accurate, and the slowest was still not the most accurate — a difference of two orders of magnitude between machines built in the same era, running heuristics for the same NP-complete problem, on the same data.

The NP-completeness result Heckerman, Geiger, and Chickering had proved did not describe a machine that was too slow; it described a search space whose size was a property of the combinatorics of directed acyclic graphs, the same combinatorics Robinson had counted and Cooper and Herskovits had invoked to justify their greedy heuristic in the first place. A faster processor could search more of that space in a given hour, but the space itself did not shrink, and no processor built since — the workstations of the 1990s, the server farms of the 2000s, or a rack of accelerators today — changes the fact that finding the highest-scoring structure among networks with two or more parents per node is NP-complete. What changed, over the decade following K2, was not the machine attacked at the problem but the question asked of it. Nir Friedman and Daphne Koller, writing in 2003, argued that model selection — picking the single highest-scoring structure and treating it as the truth — was a poor fit to the actual state of the evidence in any domain of realistic size, since "in cases like this, where the amount of data is small relative to the size of the model, there are likely to be many models that explain the data reasonably well," so that a single winning network could change entirely if the same experiment were rerun on a fresh sample of the same size. Where a domain had enough data relative to its variable count this hardly mattered — a separate, later study, Heckerman, Meek, and Cooper's 1997 work, had already found, as Friedman and Koller reported it, that "the highest scoring model is orders of magnitude more likely than any other" in such settings — but the interesting domains, gene-expression networks with thousands of variables and a few hundred experiments among them, were exactly the ones where it mattered most. Friedman and Koller's answer was to stop searching for the single best structure and instead average over many of them, estimating the posterior probability that a given edge appeared at all by Markov chain Monte Carlo — not over the space of structures directly, which mixed poorly, but over the space of variable orderings, the same device K2 had fixed by assumption a decade earlier, now sampled rather than fixed. The move paid off empirically: their ordering-based chain "mixes much faster and more reliably than the chain over network structures," and "outperforms both MCMC over structures and the non-Bayesian bootstrap approach" Friedman had tried previously. The NP-completeness proof still stood — no dataset, no chain, no processor made the underlying counting problem tractable — but the field had, in effect, changed the question from which network generated this data to how confident to be in each piece of it, a retreat from certainty that the certainty-factor debates of chapter two would have recognized.

Certainty Factors Recast as Probability

Heckerman's 1986 paper did not stop at diagnosis. Having shown that Shortliffe and Buchanan's own definition of the certainty factor — the normalized swing from prior to posterior probability — could not be reconciled with the combining formulas MYCIN actually ran, he asked what other definition, if any, could be reconciled with them, and answered by inverting the whole project. Rather than defining CF in probabilistic terms and testing whether the combination rules preserved it, he proposed to make the combination rules and the intuitive properties they were meant to satisfy — commutativity, associativity, and the rest — into axioms, and to ask what quantity, if any, could satisfy them consistently. As he put it, "we propose to take the desiderata to be the defining axioms of certainty factors. Any quantity which satisfies the axioms will be called a certainty factor." Using a theorem from the algebra of functional equations, he then proved that the answer was narrow and, in retrospect, familiar: any certainty factor obeying the desiderata had to be some monotonic transformation of the likelihood ratio, since "monotonic transformations of the likelihood ratio X(H,E) = p(E|H)/p(E|~H) satisfy the desiderata" and no other family of functions could. This was not an isolated insight arrived at only in hindsight. Duda's PROSPECTOR, built for mineral-exploration reasoning at SRI, and an independent British system for gastroenterology, had already settled on the likelihood ratio or a transform of it as their combining currency without waiting for a proof; as Heckerman noted, "Both Duda [13] and Spiegelhalter [14] independently recognized a correspondence between the parallel combination function and the likelihood ratio X(H,E)." The certainty factor, read correctly, had never been a rival to probability theory. It was probability theory in a narrow special case, rediscovered piecemeal by several groups who had each set out to avoid probabilistic reasoning on pragmatic grounds and had each, without quite meaning to, rebuilt one corner of it.

That equivalence came with fine print, and the fine print was where the interesting content lay. Heckerman derived exactly which structural assumptions had to hold for certainty-factor propagation to correspond to genuine probabilistic updating rather than merely resembling it. Two conditions were needed together: the evidence bearing on a hypothesis had to be conditionally independent given that hypothesis and its negation, and — because sequential and parallel combination were defined by working outward from leaves toward a single root — the network carrying the rules had to branch only one way. As he summarized it, "if certainty factors are to be propagated in accordance with the desiderata, evidence must be conditionally independent given the hypothesis and its negation and the inference network must have a tree structure." A third condition sat underneath both: a certainty factor, defined as odds on a hypothesis versus its single negation, presupposed exactly two mutually exclusive and exhaustive outcomes, since anything richer made "its negation" a mixture of every remaining possibility and broke the independence assumption evidence by evidence. MYCIN satisfied none of the three. Its knowledge base reasoned about which of a dozen or more candidate organisms was causing an infection — the system, Heckerman noted, contained "sets of mutually exclusive and exhaustive hypotheses with more than two elements" — and its inference network let a single finding, such as a positive Gram stain, bear on several hypotheses at once, a configuration he called divergence. He proved that "any method for propagating uncertainty when there is divergence must be inconsistent with the axioms," which meant the inconsistency already on display in chapter two's certainty-factor wars was not an implementation slip that a cleverer combining formula could patch. It was the necessary consequence of using a tree-shaped bookkeeping trick on a domain that was not tree-shaped, applied to a set of hypotheses too numerous for the binary odds the trick had been built to carry.

The multiple-hypothesis problem went deeper than an awkward special case to be patched around. A companion piece in the same special issue, which Heckerman cited, proved that "multiple updating of a hypothesis is impossible whenever there are three or more mutually exclusive and exhaustive hypotheses and evidence is conditionally independent given each hypothesis and its negation" — not merely difficult, but impossible, for essentially the reason naive Bayes runs into trouble once a class variable takes more than two values and a whole simplex of competing beliefs is supposed to be updated from a single number per rule. Heckerman's own answer to what should replace the certainty factor pointed away from further repair and toward the machinery this chapter has already followed: "Howard's influence diagrams" and "Pearl's Bayesian networks," both of which relaxed exactly the assumption certainty factors could not survive without. Where MYCIN's tree forced every dependency into a single path from evidence to hypothesis, a belief network allowed dependencies and independencies to be represented exactly as they were, so that "the techniques allow a user to represent and manipulate a full joint probability distribution for some domain while potentially avoiding the usual combinatoric explosion by taking advantage of independencies when they exist." This is the same move chapter five has already traced twice over: Pearl's junction trees turning conditional independence into an exact and efficient propagation algorithm once a structure was given, and Cooper and Herskovits's K2 turning the question of where that structure came from into a search over a scored space of graphs. The certainty factor had tried to buy the benefits of both moves — efficient local combination, no need for a full joint table — without paying for either the independence structure or the axiomatic bookkeeping that made the efficiency legitimate. Bayesian networks paid for both explicitly, which is why they, and not a patched certainty factor, were what survived into the 1990s.

Seen from the vantage of Gregory Cooper's 1989 survey of belief-network research — Cooper being, by then, also one of the two authors of the K2 algorithm this chapter met in the previous section — the certainty factor's whole career looked like a single episode in a longer argument that predated MYCIN and outlived it. Expert-system builders since the 1970s had avoided probability for reasons Cooper listed as pragmatic rather than principled: concern that "probabilistic knowledge-bases require too many numbers," that inference "will take too long to solve problems using probabilities," and that a probabilistic system could not "explain its reasoning to users in an intuitive manner." Every one of those objections is a complaint about a machine, not about mathematics — and every one of them was, in the event, answered without a bigger machine. What answered the knowledge-acquisition complaint was the recognition, formalized by Heckerman's axioms and exploited by Cooper and Herskovits's structure-learning algorithms, that a domain's true dependency graph needs only as many numbers as it has genuine parent-child relationships, not one per pair of variables; what answered the inference complaint was the junction-tree machinery of the chapter's opening section, which computed exactly what certainty factors had only approximated — cheaply, on hardware no better than MYCIN's own, whenever the network's cliques stayed small, and by approximation rather than exact computation when they did not, a limit this chapter has already traced to the combinatorics of the graph rather than to any shortage of cycles. Belief networks, Cooper wrote, were "being explored as a means of addressing these key issues pragmatically" — pragmatically being the operative word, since the pragmatism Shortliffe and Buchanan had reached for in the 1970s and the pragmatism of Pearl's networks in the 1980s were answers to the identical practical worry, arrived at by opposite routes. The certainty factor took a shortcut around the mathematics and paid for it in silent inconsistency; the belief network did the mathematics honestly and found that, once independence was represented rather than assumed away, the shortcut was no longer necessary. Nothing about either outcome depended on how fast the machine underneath was. The certainty-factor wars, closed here, were a referendum on which formalism deserved the name of approximation — and the verdict, reached by proof rather than by a faster processor, went to probability.

The Kernel Insurgency: Vapnik and the Statistical Learning Theorists

A Theory of the Learnable

Chapter one left concept learning where Mitchell's version spaces had put it: a hypothesis was learned when it matched every training example the teacher supplied, and the open question was how to narrow the space of surviving candidates as fast as possible. Leslie Valiant's 1984 paper in Communications of the ACM, "A Theory of the Learnable," changed the question rather than answering the old one. Valiant proposed a formal framework to capture, in the language of computational complexity rather than of search, what it should mean for a machine to learn a concept from examples at all. As a paper written soon afterward to extend his result put it, "the essential idea consists of approximating an unknown 'concept' from a finite number of positive and negative 'examples' of the concept" — a geometric figure in the plane, say, learned from points known to lie inside or outside it. The examples were drawn at random from some fixed but unknown probability distribution, and the same distribution was used afterward to judge how well the concept had been learned; critically, "no assumptions are made about which particular distribution is used. That is, the learning is required to take place for every distribution." A hypothesis that fit the training points perfectly but failed on the distribution generating future points was not a success dressed up as a failure of luck — it was, in Valiant's accounting, simply not learning.

Valiant's criterion, as later commentators codified it, replaced Mitchell's demand for exact identification with a weaker and more honest pair of requirements. Haussler, in one of the first papers to carry the framework back into mainstream AI concept learning, wrote that "The salient feature of the Valiant framework is that it only requires that the learning algorithm produce a hypothesis that with high probability is a good" — approximate, that is, rather than exact — "approximation to the target concept. It does not demand that the learning algorithm identify the target concept exactly." Angluin had already given the criterion its lasting name — Haussler noted that Angluin "has called this framework "probably approximately correct" identification" — and the acronym stuck to the whole research program that followed. But probable approximate correctness was only half of Valiant's demand, and the half most often remembered. The framework scored every learning algorithm on two independent axes at once: "The first is sample complexity. This is the number of random examples needed to produce a hypothesis that with high probability has small error," evaluated in the worst case over every target concept and every probability distribution on the instance space; and "the second performance measure is computational complexity, which we take as the worst-case computation time required to produce a hypothesis from a sample of a given size." A concept class was learnable, in Valiant's strong sense, only if both quantities could be bounded by a polynomial — not merely finite, but growing no faster than some fixed power of the accuracy, the confidence, and the size of the problem. This second requirement is the one the rest of this chapter turns on, and it is worth pausing over exactly what kind of limit it is. A sample-complexity bound is a statement about how much information randomness can be expected to reveal; a computational-complexity bound is a statement about how much of that information can be extracted in polynomial time by any algorithm whatsoever, on any machine whatsoever. Unlike the certainty-factor bookkeeping of chapter five or the belief-network cliques before it, whose expense was measured against the DEC and Symbolics hardware of the day, Valiant's ceiling was stated over all algorithms and all future hardware at once. A finding that no polynomial-time algorithm can produce a consistent hypothesis for some concept class does not become false when the machine gets faster. It is a claim about the shape of the problem, not about the year of the computer running it.

Valiant's own 1984 paper left the size of the sample needed for distribution-free learning bounded only crudely, in terms of the raw count of hypotheses under consideration — fine for the finite Boolean concept classes he analyzed, useless for the continuous ones — geometric halfspaces, linear separators, anything indexed by real-valued parameters — that would come to matter most. The gap was closed within three years by Anselm Blumer, Andrzej Ehrenfeucht, David Haussler, and Manfred Warmuth, in a paper whose result a later survey of the framework called simply fundamental: "A fundamental paper was written by Blumer et al. which gave a characterization of learnability for the distribution-free framework in terms of a combinatorial parameter which measures the 'size' of a concept class." That combinatorial parameter was not new. It had been defined thirteen years earlier by Vladimir Vapnik and Alexey Chervonenkis, working in Moscow on the theory of pattern recognition, with no evident contact with the American theory-of-computing tradition that produced Valiant. Blumer, Ehrenfeucht, Haussler, and Warmuth's theorem was the proof that the two traditions had been converging on the same fact from opposite directions: "The major result of [Blumer et al.] states that a concept class is learnable for every distribution iff it has finite Vapnik-Chervonenkis (VC) dimension." Stated in full, "for any nontrivial, well-behaved concept class C, the following are equivalent: (i) The VC dimension of C is finite. (ii) C is learnable" — and, in the quantitative version of the same theorem, the sample size needed scales with the VC dimension itself, up to logarithmic factors, in both directions: enough examples and any hypothesis merely consistent with them is probably approximately correct; too few, and no algorithm, however cleverly it searches, can do better than chance. This was the moment the chapter's title describes as an insurgency rather than a discovery: an American complexity theorist's four-page note about learning Boolean formulas turned out to be the same mathematics as a Soviet statistician's decade of work on uniform convergence of empirical frequencies to probabilities, and the single number that measured "the size of a concept class" in one tradition was exactly the number that measured, in the other, how badly empirical risk could overfit. Neither line of work needed to wait for the other's hardware to improve. It needed only the joint paper that noticed they were the same theorem.

Valiant's polynomial-time requirement was not a formality. Blumer, Ehrenfeucht, Haussler, and Warmuth returned to it directly in a short 1987 paper that asked when the classical intuition behind Occam's razor — "given two explanations of the data, all other things being equal, the simpler explanation is preferable" — could be turned into a theorem rather than left as an aesthetic preference. Their answer was unconditional in one direction: any algorithm that reliably found a hypothesis of near-minimal complexity consistent with its sample, and did so in polynomial time, was automatically a polynomial learning algorithm in Valiant's sense, because short consistent hypotheses cannot afford to memorize noise and so generalize by a counting argument alone. What made the result bite was the other direction. Finding the minimal hypothesis is not, in general, something a faster machine can be counted on to do: "finding a minimum length DNF expression consistent with a sample of a Boolean function and finding a minimum size deterministic finite automaton consistent with positive and negative examples of a regular language are both NP-hard problems under standard encodings." Two of the most natural hypothesis languages available to a 1980s concept-learning system — Boolean formulas in disjunctive normal form, finite-state automata for regular languages — turned the razor itself into a search problem no better than thousands of others already known to resist every acceleration but an exponential one. The paper's own closing question named the stakes precisely, asking whether it could be shown that "these classes would not be polynomially learnable under standard encodings unless P = NP." That hypothesis has never been overturned, and nothing about the four decades of faster processors, larger memories, or eventually GPUs that followed bears on whether it will be. The rest of this chapter follows the response that Vladimir Vapnik had already been developing on the other side of the Cold War's scientific divide, and that would shortly meet Valiant's framework on the terrain the VC dimension had opened up: rather than search a discrete hypothesis space for the provably hardest object to find — the shortest formula, the smallest automaton — reformulate learning as an optimization over a continuous, convex space in which the analogue of simplicity could be found by descent rather than by combinatorial search. Structural risk minimization, and the maximum-margin hyperplane it would motivate, was that reformulation.

Structural Risk Minimization

The joint theorem of section one gave the VC dimension a second life as the number that told Valiant's theory of computation and Vapnik's theory of statistics they had been proving the same fact. But Vapnik had put a use to that number well before the joint theorem existed, and well before Valiant's 1984 paper: in the Soviet Union of the early 1970s, over a decade before "A Theory of the Learnable" and some fifteen years before Blumer, Ehrenfeucht, Haussler, and Warmuth's synthesis, Vapnik and Chervonenkis had already asked not merely whether a concept class could be learned at all, but how a learner with a fixed, finite sample should decide how much of that class's capacity it could afford to use. Writing decades later in a retrospective afterword to his own foundational monograph, Vapnik placed the idea alongside the two other restrictions on inductive freedom that statistical learning theory had by then assembled: classical regularization, which "controls the smoothness properties of the admissible set of functions," and his own later addition of structural risk minimization, "which controls the diversity of the set of admissible functions" — forbidding, in his words, "choosing an approximation to the desired function from too diverse a set of functions, that is, from the set of functions which can be falsified only using a large number of examples." The chronology he gave was blunt about priority: "the idea of using regularization to solve ill-posed problems was introduced in the mid-1960s," he wrote, but "structural risk minimization was introduced in the early 1970s," a full decade before the American complexity-theoretic tradition arrived at the same capacity concept from the opposite direction.

The mathematics that carried the idea forward, as a widely used tutorial on the resulting machines later summarized it, "grew out of considerations of under what circumstances, and how quickly, the mean of some empirical quantity converges uniformly" to its true value as sample size grows — the same uniform-convergence question Vapnik and Chervonenkis had been asking since the 1960s, now turned into a bound a working researcher could compute. For a learner choosing among functions f(x, α) to fit labeled data drawn from an unknown distribution, the tutorial explained, "There is a remarkable family of bounds governing the relation between the capacity of a learning machine and its performance": with high probability, the true error on future data — the "actual risk" — is bounded above by the error measured on the training sample plus a second term, computed from the VC dimension of the whole class of functions under consideration rather than from any particular one of them. The tutorial's own gloss on why this mattered is worth keeping in mind for its plainness: "A machine with too much capacity is like a botanist with a photographic memory who, when presented with a new tree, concludes that it is not a tree because it has a different number of leaves from anything she has seen before; a machine with too little capacity is like the botanist’s lazy brother, who declares that if it’s green, it’s a tree. Neither can generalize well." What made the bound useful rather than merely descriptive was its independence from the one thing no working statistician ever actually has: "remarkably, it is independent of P(x, y)," the true distribution generating the data. A learner cannot compute its own true risk, but it can compute this bound on it for any candidate hypothesis class, and by then taking that machine which minimizes the right hand side, "we are choosing that machine which gives the lowest upper bound on the actual risk." That — choosing not the hypothesis with the smallest measured error, but the hypothesis class whose combination of measured error and capacity penalty is smallest — is, the tutorial notes, "the essential idea of structural risk minimization."

Turning the bound into a procedure required one further step, because the VC dimension is an integer and cannot be dialed continuously the way a regularization parameter can. The tutorial's answer was to "introduce a “structure” by dividing the entire class of functions into nested subsets" — a sequence of hypothesis classes of strictly increasing capacity, each contained in the next, for which the VC dimension is known or at least bounded. Structural risk minimization proper is then a search over that ladder rather than over any single rung: "This can be done by simply training a series of machines, one for each subset, where for a given subset the goal of training is simply to minimize the empirical risk," after which the learner keeps not the machine with the lowest training error, and not the machine from the smallest class, but whichever rung minimizes the sum of the two competing terms in the bound. It is worth being as exact here as the book has tried to be everywhere else about which limits are which kind. The bound itself — that the true risk lies below the empirical risk plus a term computable from sample size and VC dimension alone, for every distribution, with a chosen confidence — is arithmetic once the VC dimension is known; it costs nothing to state and nothing to check, and no faster computer changes what it says. That is a limit of the same species as Valiant's polynomial-time criterion in the previous section: distribution-free, algorithm-free, timeless. But the apparatus built to act on it in the 1990s was not. Training "a series of machines" meant solving a separate quadratic program at every rung of the ladder, and the resulting classifiers carried their own era-bound complaint: Burges's tutorial, cataloguing the method's open problems in 1998, noted that although SVMs achieved good generalization, "they can be abysmally slow in test phase," each prediction requiring a kernel evaluation against every support vector retained from training. That slowness was never a fact about margins or VC dimension. It was a fact about how many floating-point operations a workstation of the period could complete before a classifier became too costly to deploy, and it is exactly the kind of limitation later chapters of this book track disappearing — reduced-set and online SVM methods narrowed it well before the GPU made the question moot for datasets of that era's size. The risk bound stayed exactly as tight either way.

Structural risk minimization told a learner what to optimize — the sum of empirical risk and a capacity penalty — but not how to build a nested ladder of hypothesis classes whose VC dimension could actually be computed cheaply enough to climb. The previous section's Occam's-razor paper had already shown one route closed: measuring capacity by the length of the shortest consistent hypothesis, in a language such as disjunctive normal form or finite automata, ran straight into an NP-hard search. Vapnik's route around that obstacle turned out to run through geometry rather than combinatorics. The tutorial's later sections examine a family it calls "gap tolerant classifiers," separating hyperplanes required to keep a margin of prescribed width around themselves, and show "how gap tolerant classifiers implement structural risk minimization": their VC dimension is provably bounded by a simple function of that margin and the diameter of the data, so that a wider margin is, by theorem rather than by analogy, a smaller and less capacious hypothesis class. This is why, the tutorial notes, understanding gap tolerant classifiers gives "some insight as to why maximizing the margin is so important" — margin width is a continuous, geometric stand-in for the integer-valued VC dimension, one that a convex quadratic program can search directly instead of enumerating discrete formulas or automata. The nested ladder of section 2.6 becomes, in this instantiation, a ladder indexed by margin instead of by hypothesis-language complexity, and climbing it becomes an optimization problem rather than a search problem. What Vapnik had been assembling since the early 1970s — capacity control as a third discipline alongside classical regularization — and what the joint theorem of the previous section had shown was the same mathematics as Valiant's polynomial learnability, now had a hypothesis class built to make it computable at scale: the maximum-margin hyperplane, and the support vector method built around it.

The Support Vector Method Arrives

The margin-indexed ladder of the previous section had a name and a birth year before it had a general-purpose machine to climb it. Vapnik's optimal hyperplane — the maximal-margin linear separator built from a small subset of the training data he called support vectors — dated to 1965, and its generalization bound, that the expected error is bounded by the expected fraction of the training set retained as support vectors, had been sitting unused outside the case of data that could be separated by a straight line without error. Two further ingredients, arriving from different directions over the following three decades, turned that restricted result into a general classifier. The first was computational: in 1992 Bernhard Boser, Isabelle Guyon, and Vapnik showed that the optimal hyperplane's dot-products between training vectors could be replaced by a nonlinear kernel function without ever explicitly constructing the high-dimensional feature space the kernel implicitly represented — the trick the previous chapter's machinery had been waiting for. The second arrived only with Corinna Cortes and Vapnik's 1995 paper itself: a "soft margin" that tolerated training points on the wrong side of the boundary, at a cost, rather than requiring perfect separability. Writing up the combination, Cortes and Vapnik described what they had built plainly: "we construct a new type of learning machine, the so-called support-vector network." By the time the paper's later sections extended the technique past the separable case, the claim had grown accordingly bold — that a reader should consider "the support-vector networks as a new class of learning machine, as powerful and universal as neural networks."

The soft margin was not a minor convenience. Real data, unlike the tidy separable clouds of the textbook figure, is rarely linearly separable even after a kernel has lifted it into a high-dimensional feature space, and the natural way to accommodate that — find the hyperplane that misclassifies as few training points as possible, then maximize the margin on the rest — turns out to be a search problem, not a convex one. Cortes and Vapnik said so without softening it: "the problem of constructing a hyperplane which minimizes the number of errors on the training set is in general NP-complete." That is a limit of the timeless kind this book has been tracking since Valiant — no faster machine, then or now, makes counting the minimum number of misclassified points over all possible hyperplanes anything other than combinatorial search. Their way around it was not a bigger computer but a change of objective: instead of counting errors, minimize the sum of how far each misclassified point falls short of the margin, a quantity convex in the separating hyperplane's parameters. That substitution turned an intractable search into a quadratic program — mathematics doing the work hardware could not. But the resulting quadratic program was itself large, one variable per training vector, and the second obstacle in the paper was purely a matter of what a workstation of 1995 could hold in memory: solving it "very efficiently" required an explicit workaround, which the paper spelled out as an algorithm rather than a theorem — "Divide the training data into a number of portions with a reasonable small number of training vectors in each portion," solve the quadratic program on the first portion, retain only its support vectors, fold in violations from the next portion, and repeat until the accumulating solution covers the whole training set. This "chunking" scheme is the clearest example in the chapter of the distinction the book keeps insisting on: the NP-completeness result binds forever; the chunking scheme binds only until someone has enough memory, or a better decomposition, to solve the full quadratic program in one pass — which is exactly what the SVM community spent the second half of the 1990s building.

Cortes and Vapnik did not leave the machine at the level of a proof of concept; they ran it against the same US Postal Service digit database that had already been used to benchmark classical methods, and set the results side by side in a single table. Human readers, on those digits, made 2.5 percent raw errors; a CART decision tree made 17 percent; C4.5 made 16 percent; the best two-layer neural network with an optimally tuned number of hidden units made 6.6 percent; LeNet1, a specially designed five-layer convolutional network built for exactly this task, made 5.1 percent. Support vector networks using polynomial kernels of degree two through seven, none of them designed with any knowledge of handwriting at all, made between 4.2 and 4.7 percent — beating every classical competitor and the special-purpose network alike. The detail that mattered most for the previous section's argument was not the accuracy but where the cost went as the kernel's implicit feature space grew: a degree-seven polynomial kernel on 256-pixel input images corresponds to a feature space of roughly 10^16 dimensions, yet the number of support vectors retained — the only thing the classifier's complexity actually depends on, as the paper's own footnote insisted, since "the complexity of the construction does not depend on the dimensionality of the feature space, but on the number of support vectors" — rose only from about 127 to 190 across that same range of degrees. The margin bound from the previous section was not a promise being kept on faith; it was being kept in a table of numbers, on real mail.

Cortes and Vapnik closed the paper with a second benchmark, and this one came with a clock attached. The NIST database — sixty thousand training digits, far larger than the Postal Service set — had been the subject of a benchmark study conducted over just 2 weeks, and the authors said plainly what that had cost them: the limited time frame enabled only the construction of 1 type of classifier, a fourth-degree polynomial kernel chosen from experience with the smaller Postal database rather than from any systematic search. It is the clearest instance in the chapter of a limit that is calendar-bound rather than mathematical: nothing in the theory of support vector machines forbids trying every kernel and every degree, only the two weeks the authors had before the benchmark closed. Even under that constraint, ten such classifiers combined reached 1.1% error on the test set, set against a linear classifier, a 3-nearest-neighbor classifier with all sixty thousand training points kept as prototypes, and two purpose-built convolutional networks, LeNet1 and LeNet4. Cortes and Vapnik gave the last word to the benchmark's own authors, quoting Bottou and colleagues' verdict on what the support vector network had done without ever seeing a digit as a digit: the support-vector network has excellent accuracy, which is most remarkable — unlike the other high performance classifiers, it does not include knowledge about the geometry of the problem, and would do just as well if the image pixels were encrypted e.g. by a fixed, random permutation. A method built in 1995 out of a 1965 hyperplane and a 1992 kernel trick, held back from a larger test only by two weeks of machine time, had already made the geometry of handwritten digits an assumption it no longer needed.

Committees of Weak Learners: The Ensemble Revolution

Boosting a Weak Learning Algorithm

Boosting began as a question about proof, not performance. Valiant's 1984 model of probably approximately correct (PAC) learning asked for algorithms that, given randomly drawn labeled examples, output a hypothesis correct on all but an arbitrarily small fraction of future cases, for any distribution over instances. Michael Kearns and Leslie Valiant then asked a narrower question: what if the learner is only required to do a little better than chance? A "weak" learning algorithm need only output, with high probability, a hypothesis that performs "slightly better (by an inverse polynomial) than random guessing" — say 51% instead of 50. Kearns and Valiant left open whether weak learnability was actually equivalent to strong learnability, and the question acquired a name of its own: the hypothesis boosting problem, since an equivalence proof would have to supply "a method for boosting the low accuracy of a weak learning algorithm's hypotheses." The obvious approach — run the weak learner many times and take a majority vote of the results — had already been shown wanting. As Schapire noted, "Kearns (1988), considering the hypothesis boosting problem, gives a convincing argument discrediting the natural approach of trying to boost the accuracy of a weak learning algorithm by running the procedure many times and taking the majority vote." And there was a positive reason to doubt an equivalence existed at all: Kearns and Valiant had shown that under the uniform distribution, monotone Boolean functions were weakly but not strongly learnable, so the two notions could diverge once the distribution was restricted. It did not seem implausible that they would diverge for arbitrary distributions too.

Robert Schapire settled the question in 1989, and the settlement was constructive rather than merely existential: "an explicit method is described for directly converting a weak learning algorithm into one that achieves arbitrary accuracy." The construction did not vote hypotheses drawn from the same distribution; it changed the distribution itself. "The construction uses filtering to modify the distribution of examples in such a way as to force the weak learning algorithm to focus on the harder-to-learn parts of the distribution." Concretely, the weak learner was called on three different induced distributions — the original data, a distribution filtered toward the first hypothesis's mistakes, and a distribution filtered onto the cases where the first two hypotheses disagreed — and the three resulting hypotheses were combined by majority vote into one with strictly smaller error than any weak learner alone. Because a single application only reduced error by a fixed factor, the scheme had to run recursively, wiring the majority-of-three procedure inside itself as its own subroutines to reach an arbitrarily small target error. Schapire's Theorem 1 delivered the equivalence outright: "A concept class C is weakly learnable if and only if it is strongly learnable." But the recursion had a cost the theory did not have to pay and practice could not avoid: each level tripled the number of hypotheses being combined, so driving the error down to a chosen epsilon meant a combined hypothesis whose size and evaluation time grew as the recursion deepened, and the scheme required knowing the weak learner's error bound in advance to decide how many levels to run. It was a proof that boosting was possible, not yet a tool anyone would run on a dataset.

Yoav Freund's 1990 "boost by majority" (BBM) replaced Schapire's recursion of three with a single pass that combined many weak hypotheses by straight majority vote, weighting the sampling of examples by a function of their running margin — how many of the hypotheses so far had gotten them right versus wrong — that was not simply monotonic in that margin. Examples missed by a bit more than average did get upweighted, much as AdaBoost would later upweight them; but past a point the weight turned over and fell again, because as the fixed number of rounds ran out it became less and less likely that an example missed by nearly every hypothesis so far would ever be rescued, and it was more efficient for the algorithm to give up on it and concentrate the weak learner's effort on examples still near the decision margin. That non-monotone, give-up-on-the-hopeless-cases behavior was itself a consequence of BBM's core rigidity — that it had been derived for a known, fixed number of rounds — and stood in contrast to the boosting algorithms that came after, which kept weighting hard examples ever more heavily for as long as they remained hard. It was, in a formal sense, the optimal way to combine hypotheses of a known, fixed error rate, and it did not blow up in size the way the recursive scheme did. But it bought that optimality at a price: "To use BBM one needs to pre-specify an upper bound 1/2 − γ on the error of the weak learner and a target error ϵ > 0." The algorithm had to be told in advance how weak the weak learner was and how accurate the final answer needed to be, and it ran for a number of rounds fixed by that bet before it started. If the weak learner's actual error drifted, or differed across rounds, or simply was not known ahead of time — which described most real base learners — BBM's guarantees did not transfer. Freund's method was, in this sense, considerably more efficient than Schapire's recursive one, and optimal in a formal sense against a known weak learner — but it inherited a version of the same practical drawback, only moved to a different parameter: where Schapire's scheme needed no advance knowledge of the weak learner's error but blew up in the number of hypotheses it composed, Freund's needed that error bounded and fixed in advance but combined hypotheses just once, by simple majority. Both were proofs of concept in the strictest sense: theoretical constructions, proved correct by oracle simulation and Chernoff-bound arguments, with no implementation and no experiment attached to either paper — not even on a toy problem. The first experiments with early boosting were left to a later, separate study, Drucker, Schapire, and Simard's application of a boosting algorithm to a real OCR task. Neither Schapire's recursive scheme nor Freund's BBM was, on its own, yet an algorithm one could hand an arbitrary base learner and a training set with no further tuning of parameters no researcher could know in advance.

The fix came from a different direction entirely: online prediction with expert advice. Freund and Schapire had been studying a gambler who "decides he will wager a fixed sum of money in every race" but apportions it among tipster friends "based on how well they are doing," hoping his season's winnings approach what he would have won backing the single luckiest friend in hindsight. Their algorithm for this problem, Hedge, updated a weight on each expert multiplicatively by its loss and provably tracked the best expert to within a bound logarithmic in the number of experts. Turning the gambler into a learner, they let each "expert" be a weak hypothesis and each round of the race be a call to the weak learning oracle on a reweighted training set — and the resulting algorithm needed no advance knowledge of the weak learner's error at all. "Unlike the previous boosting algorithms of Freund [10, 11] and Schapire [22], the new algorithm needs no prior knowledge of the accuracies of the weak hypotheses. Rather, it adapts to these accuracies and generates a weighted majority hypothesis in which the weight of each weak hypothesis is a function of its accuracy." They called it AdaBoost, "because, unlike previous algorithms, it adjusts adaptively to the errors of the weak hypotheses returned by WeakLearn." On each round it reweighted training examples toward the mistakes of the hypothesis just produced, then folded that hypothesis into a running weighted vote with a coefficient set by its own measured error — no recursion, no pre-committed error bound, no separate accounting for how many rounds remained. The training error of the combined classifier was proved to fall as exp(−2 Σt γt²), where γt is the tth hypothesis's edge over random guessing: consistently better than chance, even barely, and the bound collapses to zero exponentially in the number of rounds. A decade-old open question in learning theory had become, almost incidentally, a general-purpose training procedure that could be bolted onto any base classifier a working researcher already had on hand.

Bagging and the Randomized Forest

Where boosting reweighted a training set round by round, chasing whatever the previous hypothesis had missed, Leo Breiman's 1996 bagging took a cruder and more parallel route: draw many bootstrap replicates of the same training set — samples of size N drawn with replacement from the original N cases — fit the same unmodified learning procedure to each, and average the results, or let them vote. Breiman called it "bootstrap aggregating," bagging for short, and was explicit about when it would and would not help. "A critical factor in whether bagging will improve accuracy is the stability of the procedure for constructing" the predictor: "improvement will occur for unstable procedures where a small change in" the learning set "can result in large changes in" the fitted predictor. He had already catalogued which common methods were unstable in this sense — "neural nets, classification and regression trees, and subset selection in linear regression were unstable, while k-nearest neighbor methods were stable" — and the catalogue mattered more than any single number in his tables, because it converted bagging from a trick into a diagnosis: it told a practitioner which of the tools already on the shelf were worth bagging and which were not. Applied to classification trees over seven moderate-sized data sets, bagging cut test-set misclassification between 6 and 77 percent; applied to regression trees, it cut mean squared error between 21 and 46 percent. Applied to a stable method, the theory predicted no such gain, and none was claimed.

Bagging perturbed the data and left the tree-growing algorithm alone. A second lineage of ideas, converging through the 1990s, perturbed the algorithm instead. Tin Kam Ho's random subspace method grew each tree on a random subset of the available features rather than all of them; Thomas Dietterich's random split selection chose, at each node, uniformly among the K best candidate splits rather than always the single best; and Yali Amit and Donald Geman, working on handwritten character and shape recognition, defined an enormous — "virtually infinite" — family of geometric features and, at each node of each tree, searched only a random sample of them for the best split, relying on a large ensemble of such trees, weakly dependent on one another by construction, to recover what any single tree could not see. Breiman's 1996 bagging was, on this reading, simply the special case where the randomization fell on which training examples a tree saw rather than which features or splits it was allowed to consider. In his 2001 paper he named the whole family and gave it a single definition: for the kth tree "a random vector" — of resampled cases, of candidate features, of split choices — "is generated, independent of the past random vectors" but drawn from the same distribution each time, "and a tree is grown using the training set and" that vector. "A random forest is a classifier consisting of a collection of tree-structured classifiers" voting together, each shaped by its own draw of the randomizing vector. Breiman credited the character-recognition paper directly — Amit and Geman "define a large number of geometric features and search over a random selection of these for the best split at each node. This latter paper has been influential in my thinking" — and Ho's feature subsampling by name as well, folding two lines of applied pattern-recognition work and his own bagging into a single formal object.

Breiman could prove something about random forests that neither he nor anyone else could yet prove about AdaBoost: they could not be made to overfit by adding more trees. "As the number of trees increases, for almost surely all sequences" of the randomizing vector, the generalization error converges to a fixed limit rather than continuing to drift — a consequence of the strong law of large numbers applied across independent, identically distributed trees. "This result explains why random forests do not overfit as more trees are added, but produce a limiting value of the generalization error." What that limit was depended on exactly two quantities, generalizing Amit and Geman's earlier analysis: "the two ingredients involved in the generalization error for random forests are the strength of the individual classifiers in the forest, and the correlation between them" — strong trees and weakly correlated trees both push the bound down, and the randomizing vector is the dial that trades one against the other. And because each tree was grown on only the bootstrap cases drawn for it, the roughly one-third of cases left out — "out-of-bag" — could be run back down that tree to get a validation-quality error estimate without holding out any data or running a separate cross-validation at all. The other advantage was one no asymptotic theorem could have predicted: random forests were simply cheaper to grow than the ensembles AdaBoost built, because searching a random handful of features at each split, rather than all of them, throws most of the work away before it starts. "Growing random forests is many times faster than growing the trees based on all inputs needed in Adaboost"; the ratio of the two costs came out to "the ratio of RI compute time to the compute time of unpruned tree construction using all variables is F∗log2(N)/M," where F was the number of features sampled at a split, N the number of training cases, and M the total number of available features — an expression in the size of the problem, not in the machine it ran on. On the zip-code data, with F set to one, that ratio predicted roughly a fortyfold speedup, and the experiment bore it out almost exactly: "A Forest-RI run (F = 1) on the zip-code data takes 4.0 minutes on a 250 Mhz Macintosh to generate 100 trees compared to almost three hours for Adaboost." The three hours themselves are a period detail, gone the moment the trees are grown on anything faster than a 1999 desktop; the fortyfold ratio is not. It is an algorithmic property — a count of splits examined per node, not a wall-clock number — and it survives verbatim onto a 2026 cluster: forty times fewer feature-comparisons is forty times fewer feature-comparisons whatever the clock speed multiplying it. What the hardware erased was the three hours; what it could not erase was the reason bagged, feature-subsampled trees would still be the faster ensemble to grow today.

Breiman did not leave bagging and boosting as two unrelated tricks and stop there. He noticed that AdaBoost's reweighting scheme, for all that it looked like the opposite of randomization — deterministic, sequential, keyed to the exact history of past mistakes rather than to any random draw — behaved, late in training, like something a random forest could have produced. AdaBoost, as he put it, has no random elements and grows an ensemble of trees by successive reweightings of the training set, where the current weights depend on the past history of the ensemble's formation; but "just as a deterministic random number generator can give a good imitation of randomness, my belief is that in its later stages Adaboost is emulating a random forest." He devoted a section of the paper to the claim outright — "Conjecture: Adaboost is a random forest" — treating AdaBoost's adaptive reweighting as a pseudo-random generator for exactly the kind of weighted training sets a random forest would draw by explicit randomization. Whether or not the conjecture could be made rigorous, it named something true about where the ensemble idea had arrived by the end of the 1990s: two research programs that began from opposite premises — bagging's faith that averaging over noise stabilizes an already-good learner, boosting's proof that a provably weak learner could be forced to strength — had converged on the same object, a committee of trees differing from one another by some form of controlled perturbation, voting. The question the field turned to next was not which idea was right, but which forest, boosted or bagged or random, actually won on the data anyone had — the empirical reckoning taken up next.

The Empirical Comparisons and the Voting Classifier Debates

By the late 1990s the ensemble idea had outrun the evidence for it. AdaBoost, bagging, arc-x4, and randomized-split trees had each been announced with a handful of favorable data sets — Eric Bauer and Ron Kohavi's own survey of the field noted that Drucker and Cortes, and separately Quinlan, had "applied boosting to decision tree induction, observing both that error significantly decreases and that the generalization error does not degrade as more classifiers are combined" — but no one had run the methods side by side, on enough data, to say which reliably won and why. Bauer and Kohavi undertook the correction: a comparison of Bagging, AdaBoost, and Arc-x4 across "over a dozen datasets, none of which had fewer than 1000 instances and four of which had over 10,000 instances," fit to three base inducers — an unpruned decision-tree learner, a decision stump, and Naive Bayes — and evaluated not just for raw accuracy but decomposed, dataset by dataset, into bias and variance. Their conclusion resisted a single headline. Boosting was "generally better than Bagging, but not uniformly better," and on at least one real data set, adult, "none of the voting algorithms helped, even though we knew from the learning curve graphs that the Bayes optimal error was lower" — voting was not magic, and sometimes there was simply nothing left for it to extract. The decomposition, run for the first time on real rather than synthetic problems, gave the mechanism: "Bagging's error reduction in conjunction with MC4 is mostly due to variance reduction because MC4 is unstable and has high variance... Bagging had little effect on Naive-Bayes," which was already stable and low-variance, while "the boosting methods reduced both the bias and the variance" — a strictly larger effect than the variance story alone predicted. It was, in its own words, a "large-scale comparison" meant expressly as a corrective: "many previous papers have concentrated on a few datasets where the performance of Bagging and AdaBoost was stellar. We believe that this paper gives a more realistic view of the performance improvement one can expect."

Thomas Dietterich's follow-up comparison added his own randomized-split C4.5 as a third contender against bagging and AdaBoost, run across thirty-three data sets — a scale meant to settle, statistically, what smaller studies could only suggest. On clean data the ranking was fairly stable: "All three ensemble methods do well against C4.5 alone... C4.5 is never able to do better than any of the ensemble methods," and "Adaboosted C4.5 is generally doing as well as or better than Randomized C4.5," which in turn usually matched or beat bagging. But the finding that mattered most was not about which method won on well-behaved data; it was about what happened when the labels themselves were unreliable. Dietterich added synthetic classification noise — 5, 10, and 20 percent of labels flipped at random — to nine of the data sets and reran all three methods. The ranking inverted. "As we add noise to these problems, Randomized C4.5 and Adaboosted C4.5 lose some of their advantage over C4.5 while Bagged C4.5 gains advantage over C4.5. For example, with no noise, Adaboosted C4.5 beats C4.5 in 6 domains and ties in 3, whereas at 20% noise, Adaboosted C4.5 wins in only 3 domains and loses in 6!" Bagging moved the opposite direction, from beating plain C4.5 in four domains and tying in five to beating it in seven and tying in only two. The mechanism was legible in the algorithms themselves, not in any machine that ran them: AdaBoost's reweighting has no way to distinguish a training example that is genuinely hard from one that is simply mislabeled, and it responds to both by piling weight onto them round after round, chasing noise as diligently as signal. Bagging's uniform resampling has no such fixation — a mislabeled point gets no more attention than any other. "Classification noise destroys the effectiveness of Adaboost compared to the other two ensemble methods (and even compared to C4.5 alone in 6 domains)," Dietterich concluded, while "the best method in applications with large amounts of classification noise is Bagged C4.5." A κ-error diagram made the tradeoff visual: Adaboosted C4.5 produced trees with "a wide range of accuracies and degrees of agreement" — diverse but occasionally very wrong — while bagging gave "a very compact cloud of points," accurate but far less diverse. Nothing about this asymmetry depends on the century's compute; it is a property of what each algorithm optimizes for, and it binds exactly as hard on a data center's mislabeled web-scraped corpus as it did on Dietterich's UCI sets.

Underneath the horse-race comparisons sat a puzzle no one had explained: AdaBoost routinely drove its training error to zero and then kept improving on held-out data for hundreds more rounds, a pattern flatly at odds with the textbook expectation that a model perfectly fit to its training set should be overfitting it. Robert Schapire, Yoav Freund, Peter Bartlett, and Wee Sun Lee's 1998 "boosting the margin" supplied the explanation Breiman's variance account could not: what mattered was not the training error but the training margin — the gap between the vote given the correct label and the vote given the best-supported wrong one. Across every data set and every base learner they tried, "on every dataset, both boosting and bagging eventually achieve perfect or nearly perfect accuracy on the training sets... but the generalization error for boosting is better," and the margin distributions explained the gap: "for boosting, far fewer training examples have margin close to zero" than for bagging, even after both had stopped making training mistakes at all. The theory came with a direct challenge to Breiman's variance-reduction story. Breiman had argued boosting worked mainly by cutting variance, evidence drawn from its effectiveness on high-variance learners like C4.5 and CART; Schapire and coauthors ran boosting on data expressly built to embarrass that account. On one contrived seven-bit problem, a training set of size 500 gave bagging a generalization error of 5.6 percent — far short of the near-zero error the pure variance-reduction theory predicted, because bagged bootstrap samples were not behaving like truly independent draws — while "boosting, on the same data, achieved a test error of 0.6%." On a synthetic set called ringnorm, boosting cut a decision stump's overall error from 40.6 percent to 12.2 percent while its variance, by two separate published definitions, went up rather than down — "boosting is doing more than reducing variance."

The dispute did not end there. Leo Breiman himself, in "Prediction games and arcing algorithms," constructed an algorithm called arc-gv designed to converge provably to the largest possible minimum margin, then ran it against AdaBoost on data sets with tree classifiers of fixed complexity. "The surprise is that even though arc-gv produces lower values of top(c) than Adaboost, its test set error is higher" — an algorithm that achieved strictly better margins than AdaBoost, by the margin theory's own criterion, generalized worse. Breiman's own conclusion was a shrug dressed as a research program: "it seems that simply producing larger margins or lower tops while keeping the VC-dimension fixed does not imply lower generalization error." The empirical comparisons had settled which ensemble to run; the margin debate, a decade into boosting's life, had not settled why running it worked.

What should a reader in 2011, or 2026, take from a decade of horse races and margin disputes? Not a hardware story. Bauer and Kohavi were candid about the cost of their own correction to the literature: "We estimate that about 4,000 CPU hours (MIPS 195 MHz R10K) were used in this study. Such a study could not easily be done without those 32, 64, and 128 CPU Origin 2000s with dozens of gigabytes" of memory that Silicon Graphics had lent them. That figure would collapse to an afternoon on a single modern server rack, and a thousand-fold increase in available cycles would let anyone rerun the whole comparison, on far larger data, before lunch. But the two findings that actually mattered would not move. That AdaBoost's reweighting cannot tell a hard example from a mislabeled one, and so degrades relative to bagging exactly in proportion to how noisy the labels are, is a statement about what the reweighting rule optimizes — it holds whether the mislabeled points come from Dietterich's 20-percent synthetic flip or from a billion scraped and weakly-labeled web pages. And that arc-gv can be engineered to beat AdaBoost on the margin distribution and still lose on test error is a statement about the incompleteness of margin-based generalization bounds themselves, not about anyone's clock speed. The compute got cheap; the questions Bauer, Kohavi, Dietterich, Schapire, and Breiman were fighting over — which inductive bias a reweighting scheme actually encodes, and whether a clean statistical explanation for boosting's success even exists — were never questions a faster machine could settle.

Reinforcement Learning and the Behaviorist Thread

Temporal Differences

Reinforcement learning descends from a behaviorist question that has nothing to do with computers: how does a learner come to predict the future from a stream of ordinary experience, with no teacher standing by to supply the right answer at every step? Richard Sutton's 1988 paper "Learning to Predict by the Methods of Temporal Differences" gave that question its first rigorous machine-learning treatment, but the method it formalized was old. Arthur Samuel's checker player of 1959 had already used it, adjusting the evaluation of an earlier board position toward the evaluation of the position that followed it, without waiting to learn whether the game was eventually won. Sutton's contribution was to strip the idea out of Samuel's program, out of Holland's bucket brigade, out of his own earlier work with Andrew Barto and Charles Anderson on adaptive control, and treat it as a general procedure for prediction in its own right — one that could be stated, and proved, independently of any particular game or controller. As Sutton put it, the paradigm concerned "the problem of learning to predict, that is, of using past experience with an incompletely known system to predict its future behavior," and its central claim was that temporal-difference methods, driven by the change between successive predictions rather than by the gap between a prediction and a final outcome, were both cheaper to compute and faster to learn from than the conventional supervised alternative.

Sutton illustrated the distinction with a weatherman predicting Saturday's rain. The conventional, supervised approach waits for Saturday and then corrects every prediction made that week against the single observed outcome; "a TD approach, on the other hand, is to compare each day's prediction with that made on the following day," nudging Monday's forecast toward Tuesday's rather than toward the eventual fact of rain or shine. This was not merely a bookkeeping trick. Sutton proved that in the special case called TD(1), the temporal-difference update produces exactly the same total weight change over a sequence as the Widrow-Hoff delta rule from adaptive signal processing — the two methods are mathematically identical in their final effect, but TD(1) reaches it incrementally, day by day, without ever holding the whole week's data in memory at once. Between TD(1) and TD(0), which updates only from the very next prediction, lay a continuum indexed by a parameter he called lambda, the family he named TD(lambda): a set of procedures trading how far into the future a prediction looks for confirmation. The appeal was practical as much as theoretical. A method that could update as observations arrived, rather than storing a whole trajectory for a single end-of-sequence correction, promised to make learning tractable for problems — speech recognition, process monitoring, market prediction — where the "correct" label might not be known for a long time, if ever.

The mechanism was simple enough to state in a paragraph. For a linear predictor, the ordinary Widrow-Hoff delta rule waits until the outcome z of a sequence is known, then corrects every earlier prediction by an amount proportional to the final error z minus that prediction — which means "all observations and predictions made during a sequence must be remembered until its end." Sutton showed that this same total correction could be rewritten as a sum of one-step differences, each computed the moment it became available, with no need to carry the whole trajectory in memory. He called this rewritten form TD(1), proved it identical in its net effect to Widrow-Hoff (Theorem 1), and then generalized it into a one-parameter family, TD(lambda), that weighted corrections to earlier predictions by lambda raised to the number of steps back — lambda = 1 recovering the supervised-learning answer exactly, lambda = 0 updating only from the immediately following prediction and nothing further back. The saving was not abstract: "if M is the maximum possible length of a sequence, then under many circumstances [the incremental TD rule] will require only 1/Mth of the memory and speed" of the batch alternative. This is one of the few places in the reinforcement-learning literature where the argument for a method rests explicitly on what a machine of the period could hold in memory at once — and it is also, in Sutton's hands, an argument that survives that context, because the deeper claim was that TD(lambda) with lambda < 1 makes different, and often better, use of a fixed amount of experience, not merely a cheaper one.

Sutton tested the claim on a toy problem chosen for its transparency rather than its realism: "one of the simplest of dynamical systems, that which generates bounded random walks," a chain of seven states in which a walk starting in the middle state D moves left or right with equal probability until it falls off one end or the other. Because the true probability of right-side termination from each interior state can be computed exactly, the experiment could compare TD(lambda) at various settings, including TD(1) — the disguised Widrow-Hoff procedure — against the ideal answer, averaged over one hundred training sets of ten sequences apiece, presenting each training set repeatedly until the weights stopped changing. Under repeated presentations, Sutton found that "performance improved rapidly as [lambda] was reduced below 1 (the supervised-learning method) and was best at [lambda] = 0 (the extreme TD method)" — a result he called a direct contradiction of "conventional wisdom," since the Widrow-Hoff procedure is provably the one that minimizes RMS error on the training set itself. The resolution, as Sutton put it, was that "the Widrow-Hoff procedure only minimizes error on the training set; it does not necessarily minimize error for future experience" — it was linear TD(0), he showed, that converges to the maximum-likelihood estimate of the underlying Markov process, the estimate best suited to predicting data not yet seen. That distinction — between fitting the data one has and estimating the process that generated it — is direct evidence that abandoning the final outcome in favor of the very next prediction was not a computational compromise but, on this class of problem, a better estimator. Sutton backed the demonstration with two convergence theorems: linear TD(0) converges in expected value to the correct predictions for any absorbing Markov chain (Theorem 2), and, given a training set whose observation vectors are linearly independent, repeated presentation drives the TD(0) weight vector to the same asymptotic limit reached by the maximum-likelihood, Widrow-Hoff-based estimate (Theorem 3). These were proofs about an idealized linear predictor and an idealized repeated-presentation regime — the kind of guarantee that depends on the structure of the estimator, not on how many cycles a machine can spend computing it, and so the sort of result this book's central test leaves untouched.

The guarantees had limits, and finding them took the field the better part of a decade. Sutton's own proofs covered TD(0) and TD(1); for the intermediate cases, he and later Dayan showed convergence only "under a restrictive linear independence condition on the set of observation vectors," and it remained an open question what TD(lambda) converged to, for lambda strictly between 0 and 1, once the predictor could not represent the target function exactly. Dimitri Bertsekas closed part of that gap in 1995 with a deliberately constructed Markov chain in which a linear TD(lambda) with lambda less than 1 converges to a value with "a reversal of sign" relative to the true costs — TD(0), in his example, learns an approximation pointing the wrong way. The lesson was not that temporal-difference learning was broken; TD(1) still behaved exactly like a well-understood stochastic-gradient method, "supported by classical results on stochastic approximation." The lesson was that the bias introduced by bootstrapping off one's own earlier predictions, rather than off the eventual outcome, is a real statistical trade-off with cases where it fails outright — a limitation intrinsic to the mathematics of function approximation under an incomplete representation, and one that no increase in available computation removes. It was this same bootstrapping idea, applied not to prediction but to the choice of action, that Chris Watkins would formalize a few years after Sutton's paper as Q-learning — the subject of the section that follows.

Q-Learning and Its Convergence

Sutton's temporal-difference method solved the problem of prediction: how to learn, from a stream of experience, to estimate a value already implicit in the world — the probability of rain, the eventual score of a game in progress. It did not by itself solve the problem of control: how to choose, at each step, the action that leads to the best outcome, when the agent does not know in advance what reward or what next state any action will bring. That problem had been Christopher Watkins's target since his 1989 Cambridge thesis "Learning from Delayed Rewards," and the algorithm he devised there, Q-learning, took the bootstrapping idea in Sutton's TD(0) and applied it not to the value of a state but to the value of taking a particular action in that state. Watkins and Peter Dayan, formalizing the result for publication in 1992, described it plainly: "Q-learning (Watkins, 1989) is a form of model-free reinforcement learning. It can also be viewed as a method of asynchronous dynamic programming (DP)." An agent moving through a Markov environment maintains, for every state x and action a, an estimate Q(x,a) of the total discounted reward it can expect from taking a in x and acting optimally forever after. Each time it actually tries an action, observes the reward and the resulting state, it nudges Q(x,a) toward that reward plus the discounted value of the best action available in the new state — a one-step correction requiring no model of the environment's transition probabilities at all, only the experience of having acted. The appeal was structural rather than architectural: as the authors put it, "Q-learning is a primitive (Watkins, 1989) form of learning, but, as such, it can operate as the basis of far more sophisticated devices," and by 1992 the authors could already list five other groups — Barto and Singh, Sutton, Chapman and Kaelbling, Mahadevan and Connell, and Lin — who had hit on the same algorithm independently, plus, as they put it, "various industrial applications."

Watkins's 1989 thesis had outlined a proof that this procedure converges; three years later, with Peter Dayan, he published it properly. The argument runs by an ingenious detour: rather than analyze the real learning process directly, they construct an artificial "action-replay process," a card game built from the agent's actual sequence of episodes, in which replaying a past experience with probability equal to the learning rate at that step simulates the effect of the Q-update, and showing that this artificial process converges to the true optimal values is shown to entail that the real one does too. The theorem itself asks little of the world and much of the schedule: given bounded rewards and a sequence of learning rates that shrinks in the right way — its sum diverging so no state-action pair is ever frozen too early, the sum of its squares converging so the noise eventually dies down — Q-learning's table of estimates converges to the true optimal values with probability one, for every state and action, as the number of updates goes to infinity. But the theorem carries a condition easy to state and hard to satisfy: it requires that "the sequence of episodes that forms the basis of learning must include an infinite number of episodes for each starting state and action." Watkins and Dayan conceded that this "may be considered a strong condition on the way states and actions are selected," while insisting nothing weaker could work, since "no method could be guaranteed to find an optimal policy under weaker con[ditions]." Every state-action pair, in other words, has to be tried again and again, forever, or the guarantee simply does not apply to it — a demand that scales with the size of the state space itself, not with the speed of whatever machine is running the updates.

There was, however, a fine print buried in the setup itself, which Watkins and Dayan flagged without dwelling on: "this description assumes a look-up table representation for the Q,n(x, a)," and, they added, "Watkins (1989) shows that Q-learning may not converge correctly for other representations." A lookup table has one entry for every state-action pair, updated independently of every other; it is exactly this independence that makes the action-replay argument go through. But a lookup table also does not scale — not for lack of memory or clock speed, but because the number of entries it needs grows with the size of the state space, and most interesting control problems have state spaces that are continuous or combinatorially vast: a robot arm's joint angles, a backgammon board's configurations. The only way to make Q-learning tractable on such problems is to replace the table with a compact function approximator — a neural network or a set of basis functions — that generalizes across nearby states instead of storing each one separately. Leemon Baird's mid-1990s analysis of exactly this substitution found that the convergence guarantee did not travel with it: "A number of reinforcement learning algorithms have been developed that are guaranteed to converge to the optimal solution when used with lookup tables," he wrote, but "these algorithms can easily become unstable when implemented directly with a general function-approximation system." Lookup tables, as he put it, "typically do not scale well for high-dimensional MDPs with a continuum of states and actions (the curse of dimensionality)" — precisely why an approximator is needed — and yet "direct Q-learning or direct value iteration can fail to converge to an answer" once one is used. The problem was not that a bigger machine would take too long to find the fixed point; it was that for the direct combination of Q-learning with function approximation, no fixed point need exist, or the iteration could provably diverge, with the estimates growing without bound — in Baird's own worked example, every weight but one running off to positive infinity and the last to negative infinity — rather than settling anywhere. The action-replay proof depends on treating each table entry as its own accountable ledger; the moment updates to one entry are allowed to spill over into the estimate for another — which is the entire point of using an approximator to generalize — the accounting the proof relies on breaks down. That gap, between a convergence theorem proved for tables and a practice that from the mid-1990s onward had almost no choice but to use function approximation on any problem of real size, would define the field's arguments for a generation, and no increase in processor speed by itself would close it.

TD-Gammon and the Return of Self-Play

Gerald Tesauro's first backgammon program was not a self-player but a star pupil. Neurogammon 1.0, built in the late 1980s, trained a set of feedforward networks by ordinary back-propagation on records of human expert play, using what Tesauro called a "comparison paradigm": rather than scoring a single move in isolation, the network was shown two candidate final positions at once and told which one the expert preferred, so that each half of a symmetric architecture learned to compute a real-valued evaluation of a position on its own terms. The approach paid off spectacularly for a first attempt — at the First Computer Olympiad in London in August 1989, Neurogammon won the backgammon competition with a perfect record of five wins and no losses, becoming, in Tesauro's words, "the first learning program ever to win any tournament" in an established game of skill. But the victory came with an asterisk Tesauro did not hide. The move-selection networks had been trained on the games of a single human expert, and Tesauro called them "dangerously inbred" as a result. Expert data was also scarce, inconsistently scored, and could not comment on the moves it did not recommend. Tesauro's own conclusion pointed away from supervised imitation entirely: the most promising direction, he wrote, was "to abandon supervised learning altogether, and instead to learn by playing out a sequence of moves against an opponent and observing the outcome" — to let the program generate its own curriculum by playing itself.

In "Practical Issues in Temporal Difference Learning" (1992), Tesauro reported what happened when he took that suggestion literally and coupled Sutton's TD(λ) to backgammon self-play. A single network watched a game unfold move by move, its output at each step an estimate of White's probability of eventually winning; moves were chosen simply by picking whichever legal successor position the network scored highest, for whichever side was to move, and the weights were nudged after every move toward consistency with the network's own next prediction. Crucially, Tesauro stripped out the hand-engineered features that had done so much work in Neurogammon: the input was "simple encodings of the raw board information (the number of White or Black men at each location)" with no pre-computed features at all — a knowledge-free approach that started, in effect, as a random move selector and had to discover for itself whether backgammon could be learned at all. The result surprised him. Trained purely on the outcomes of its own games against Sun Microsystems's commercial Gammontool program, "it seems remarkable that the TD nets can learn on their own to play at a level substantially better than Gammontool," and, more striking still, the best zero-feature TD network beat Gammontool 66.2% of the time against only 59.4% for a network trained by supervised learning on the same massive human expert database — confirmed in a head-to-head match the TD net won 55% to 45%. Tested directly against Neurogammon 1.0, the reigning Computer Olympiad champion built entirely on hand-crafted features, the raw-board TD network fought it to a dead statistical heat, 50-50 over 10,000 games. Tesauro drew the moral plainly: the result "violates a widely held belief in computer games and machine learning research that significant levels of performance in game-playing programs" can only be achieved, the belief ran, through hand-crafted features in the evaluation function — yet apparently, as he put it, the hidden units of the TD net had discovered useful features through self-play on their own. Inspecting the learned weights, he could make out what looked like a race-oriented feature detector in one hidden unit and an attack-oriented one in another, patterns nobody had told the network to look for.

The feature-discovery result was bought with computer time, and Tesauro reported the bill without flinching. The training times needed to reach the reported levels of performance were on the order of 50,000 training games for the networks with 0 and 10 hidden units, 100,000 games for the 20-hidden-unit net, and 200,000 games for the 40-hidden-unit net — training games scaling roughly linearly with the number of weights in the network. Since the per-game simulation cost on a serial machine also scaled linearly with the number of weights, the two effects compounded: the total CPU time scaled quadratically with network size, so that "on an IBM RS/6000 workstation, the smallest network was trained in several hours, while the largest net required two weeks of simulation time." This is the hardware ceiling of TD-Gammon's era, and it is exactly the kind that a 2026 datacenter erases rather than merely eases: two weeks of a single RS/6000's cycles is a rounding error against a modern GPU cluster, and the quadratic wall Tesauro was already bumping into in 1992 — bigger nets meaning both more training games and slower games — is precisely the wall that decades of hardware scaling would go on to push back, move by move, for every deep network that came after. It stands in deliberate contrast to the limit examined earlier in this chapter: Baird's divergence example showed TD with function approximation could fail for reasons no faster processor would fix, because the failure was in the mathematics of bootstrapped updates, not in how long a run took. Tesauro's two weeks belonged to the other column — the column this book keeps a running tally of, because it is the one that closes.

Tesauro did not stop at parity with Neurogammon. Over the next two years he scaled the same recipe up: TD-Gammon 1.0 trained for 300,000 self-play games with 80 hidden units and one-ply move selection; TD-Gammon 2.0 traded some network size for search, dropping to 40 hidden units but adding a two-ply lookahead and 800,000 training games; TD-Gammon 2.1 combined the larger 80-unit network with two-ply search and 1.5 million training games. The results tracked the investment. Version 1.0 lost 13 points over a 51-game series against the strong players Bill Robertie, Malcolm Davis, and Paul Magriel; version 2.0, publicly exhibited at the 1992 World Cup of Backgammon, lost only 7 points over 38 games against a field of championship-caliber opponents; version 2.1, tested across 40 games against Robertie alone, lost the match by a single point, 40 to 39, after trailing for most of the session. Robertie's own published verdict, which Tesauro quoted in full, was that TD-Gammon had reached "a strong master level that is extremely close to equaling the world's best human players," so steady that "he thinks it would actually be the favorite against any human player in a long money-game session," and that the program was now "probably as good at backgammon as the grandmaster chess machine Deep Thought is at chess." It was, in its way, a return to where the story of learning machines had started four decades earlier: Arthur Samuel's checkers program had also improved by playing games and updating its own evaluation function from the outcome, without a human teacher supplying the correct answer at every move. What TD-Gammon added was Sutton's TD(λ) update rule and a network large enough to make the old idea sing. Yet Tesauro closed his report with a candor that undercuts any triumphalism: the method had "demonstrated favorable empirical behavior of TD(λ), such as good scaling behavior, despite the lack of theoretical guarantees," and he admitted plainly that "we are still largely ignorant as to why TD-Gammon is able to learn so well." His best guess was that the dice themselves did the work of exploration no engineer had to design in — that "the stochastic nature of the task is critical to the success of TD learning," the random rolls "stochastically forcing the system into regions of state space that the current evaluation function tries to avoid." Backgammon, in other words, may have worked not despite Baird's warning about function approximation breaking TD's guarantees, but because a game of pure skill would have offered the learner no such enforced excursions off its own beaten path — an empirical triumph resting, by its own discoverer's admission, on ground no one had yet mapped.

Evolution as Optimizer: Genetic and Swarm Algorithms

Genetic Algorithms Meet Neural Topology

By the late 1980s, two lineages of adaptive computation that had developed largely in isolation — Holland's genetic algorithms and the resurgent connectionist networks trained by backpropagation — began to be spliced together. The attraction was obvious on both sides. Neural network designers had no principled way to choose a topology: the number of hidden units, the pattern of connections, even whether a connection should exist at all, was set by hand-tuning and folklore. And reinforcement learning and control problems routinely arose in which no gradient was available at all — the network's error could not be differentiated because the only feedback was a scalar success signal arriving many steps after the decisions that caused it. Genetic algorithms, which required no derivative information and searched by selection and recombination over a population of candidate solutions, seemed a natural fit for exactly the settings where backpropagation could not be applied. As Whitley and his co-authors put it, introducing their own work on evolving pole-balancing controllers, "because genetic algorithms do not require or use derivative information, the most appropriate applications are problems where gradient information is unavailable or costly to obtain. Reinforcement learning is one example of such a domain."

The simplest marriage of the two paradigms left the architecture fixed and asked a genetic algorithm merely to find the connection weights, encoding each weight as a substring of bits or, later, as a single real number, and letting crossover and mutation search the resulting hyperspace in place of gradient descent. But a second, more ambitious program tried to evolve the topology itself — the number of hidden units and the pattern of connections among them — so that a network's structure, and not only its weights, emerged from selection rather than from a designer's guess. Dasgupta and McGregor's "Structured Genetic Algorithm" was typical of this second program: it built a chromosome with two tiers, a high-level string of bits that switched connections on or off to define a connectivity matrix, and a low-level string that encoded the weight and bias for each active connection, so that "no a priori assumptions about topology are needed and the only information required is the input and output characteristics of the task." A fitness function that combined training error with a penalty for infeasible or oversized structures was meant to reward compact networks that could still be trained to solve the problem, with the topology-defining genes held stable once a workable structure emerged so that only the weight genes continued to be explored. On toy problems — exclusive-or, a small encoder-decoder task — this pipeline reliably found small feedforward networks that solved the problem, evidence that the idea worked in miniature.

The topology-evolving program ran headlong into a difficulty that no amount of extra computing time could fix, because it was a property of the encoding, not a shortage of cycles. A neural network's function is invariant under relabeling its hidden units: a network that computes subfunction A in hidden node one and subfunction B in hidden node two behaves identically to one with the assignment reversed. But the genetic algorithm's chromosome sees these as different strings. Crossing over two parent networks that solve the same problem in different internal orders does not produce a better-than-average offspring — it produces an incoherent one, part of the wiring from each parent, matching neither. Whitley and his co-authors, who had used genetic algorithms to train fixed-topology networks for the classic pole-balancing task, named this the structural/functional mapping problem, and found that recombining two dissimilar-but-equally-good networks gave "inconsistent feedback to the genetic algorithm in the form of inconsistent hyperplane samples."

Xin Yao's group, building an architecture-and-weight co-evolution system called EPNet, gave the same phenomenon a different name — the "permutation problem (or competing conventions problem)" — and drew the natural conclusion: since crossover was the operator being defeated, EPNet simply stopped using it, relying instead on five mutation operators (adding and deleting nodes and connections, plus a hybrid gradient step) applied one at a time, because "the use of an EP algorithm avoids crossover operators which will not be effective due to the permutation problem."

Whitley's group reached a parallel accommodation from the opposite direction: rather than abandon recombination outright, they shrank the population, switched from binary to real-valued weight encoding, and raised the mutation rate until crossover's contribution became marginal, producing what they candidly called "a type of stochastic hill-climbing algorithm that we refer to as a genetic hill-climber." Both routes converged on the same admission — that the textbook genetic algorithm, built around crossover as its main engine of search, was the wrong tool for a search space riddled with equivalent-but-incompatible encodings of the same network, and that no faster machine would have made crossover work where the representation itself guaranteed it would not.

Whitley's group put numbers to the comparison, pitting their genetic hill-climber against a well-established connectionist rival — the adaptive heuristic critic (AHC), a temporal-difference reinforcement-learning method — on the standard benchmark of the era, cart-pole balancing. Learning stopped once a network could hold the pole up without a failure signal for "120,000 time steps (40 minutes of simulated time)," and both methods were "run out to a maximum of 45,000 trials" if they had not converged by then. On the narrow, 12-degree failure tolerance, AHC "learned a control strategy in 33 out of 50 attempts (66%)," with convergence fluctuating between 66% and 86% across different stopping criteria in further runs; the genetic algorithm's own convergence, by contrast, was reported by trial counts rather than a bare success rate. Those trial counts told a mixed story. At the 12-degree tolerance, the genetic algorithm (population 100) needed fewer trials on average to find a working controller than AHC — a best case of 886 trials and a mean of 3,579, against AHC's best of 3,182 and mean of 4,529. But at the looser 35-degree tolerance the ranking reversed: the genetic algorithm's mean climbed to 315 trials while AHC's fell to 196, so the gradient-based critic was now the faster learner. The genetic algorithm's edge, in other words, was concentrated on the harder problem, not the easier one — hardly the unambiguous verdict either camp might have wanted, and a reminder that "evolve it instead of differentiating it" was a viable technique rather than a dominant one. The authors themselves noted a further constraint on the method's growth: enlarging the population, the most obvious way to make the genetic search more thorough, ran directly against the structural/functional mapping problem described above, since a bigger population meant more distinct — and more mutually incompatible — internal wirings competing for recombination. Evolving topology alongside weights therefore remained boxed in by its own representation: no increase in population, generations, or machine speed could relax a constraint that came from what a chromosome was allowed to mean, not from how long it took to evaluate one. The fix, when it came a decade later, would not be more computation but a different encoding — one that tagged each gene with a marker of its evolutionary origin so that crossover could recognize which parts of two networks actually corresponded to each other. That idea, and the NeuroEvolution of Augmenting Topologies it produced, is the subject of the following section.

Particle Swarms and Ant Colonies

A second population-based metaphor arrived a year after the structural/functional mapping problem exposed the limits of crossover on neural chromosomes, and it sidestepped the difficulty entirely by discarding crossover altogether. In 1995 the social psychologist James Kennedy and Russell Eberhart, simulating the coordinated movement of a flock of birds or a school of fish in search of food, proposed an algorithm in which a population of candidate solutions — "particles" — moved through the space of a problem by a rule with no genetic operators at all. Each particle carried a position and a velocity; at every step its velocity was nudged toward two remembered points, the best position it had personally visited and the best position anyone in the swarm had found so far, and the particle then flew to its new position and evaluated the fitness there. As Shi and Eberhart described the mechanism in their own follow-up paper, "this algorithm is called particle swarm optimization (PSO) since it resembles a school of flying birds," and unlike a genetic algorithm's mutation and recombination, "Each particle adjusts its flying according to its own flying experience and its companions’ flying experience." There was no encoding to design, no crossover to defeat, and no population of chromosomes whose internal wiring could be scrambled by recombination — only a coordinate and a velocity, updated by simple arithmetic on two remembered points. The appeal, for exactly the derivative-free problems that had driven neuroevolution, was that PSO required nothing but a fitness function: it was reported to be "robust and fast in solving nonlinear" and non-differentiable, multi-modal problems, and — critically for the era's hardware — cheap. A run of a few dozen particles, each carrying only a position and velocity vector, fit easily in the memory of an ordinary desktop workstation.

The bare 1995 update rule, however, had an unadvertised failure mode: with nothing to restrain it, a particle's velocity could grow without bound, sending it flying past any optimum at ever-increasing speed. The fix, adopted within three years, was itself simple arithmetic: Shi and Eberhart added an "inertia weight" that scaled a particle's previous velocity before the pull toward the personal and global best positions was added in, and reported that a weight decreasing linearly "from about 0.9 to 0.4" over a run gave the best balance of early exploration and late convergence. A second lineage, running in parallel, showed instead that a "constriction factor" — a single multiplier derived algebraically from the two acceleration constants — could guarantee convergence outright. When Shi and Eberhart pitted the two fixes directly against each other on five standard nonlinear test functions in 2000, the constriction method converged faster on the simpler landscapes but proved erratic on the harder ones: on the Rastrigrin function it failed to reach the target error within ten thousand iterations on one run in twenty, and on the Griewank function the authors concluded plainly that "the inertia weight method appears more reliable." Watching the particles fly across the screen during these comparisons, one of the authors reported that the unconstrained constriction-factor swarm ranged so far from the search region that "it was like watching spacecraft explore the Milky Way Galaxy in order to find a target known to be in the Solar System" — an image that captures the whole character of this research program. The entire comparison, both benchmark functions and thirty-particle populations, ran to "the upper limit of one of the author's (RE's) patience" at ten thousand iterations — an afternoon's computing, not a bottleneck any faster machine would have relieved. What was being fought over was not scale but dynamics: how a swarm of a few dozen points should trade off remembering where it had been against chasing where the group currently believed the optimum was, a question of feedback and damping that no increase in clock speed could settle.

A third population metaphor, developed in parallel and later shown to belong to the same family of methods, took its inspiration not from vertebrate flocks but from insects. Marco Dorigo, in a 1992 doctoral thesis at the Politecnico di Milano, together with Vittorio Maniezzo and Alberto Colorni in an earlier technical report, proposed what they called Ant System, built on the observation that real ants find shortest paths between nest and food not by any individual's reasoning but through a chemical trail: each ant deposits pheromone as it walks, other ants are more likely to follow paths with more pheromone, and because shorter paths are completed — and therefore reinforced — more often per unit time, the colony's shared trail comes to mark out the shortest route with no ant ever having compared the two. This "indirect communication between the ants via pheromone trails" the field came to call stigmergy, and it converted a decentralized, purely local rule into a global search procedure: artificial ants, walking a graph and depositing artificial pheromone proportional to a solution's quality, could be made to solve combinatorial optimization problems that had nothing to do with foraging. The proof of concept — demonstrated on a toy graph with only two paths between a nest node and a food node, and later scaled to the traveling salesman problem — showed the same qualitative result in simulation as in the insect: with ten ants a colony's preference for the shorter path fluctuated noisily, but with a hundred ants the random fluctuations shrank and the colony converged reliably on the short path, exactly as the pheromone-reinforcement rule predicted. Like particle swarm optimization, the entire mechanism was arithmetic simple enough to run on the ordinary workstations of the early 1990s: a handful of pheromone values per edge, updated each generation by evaporation and reinforcement, was the whole of the algorithm's memory footprint.

Both metaphors eventually attracted a body of convergence theory that made explicit what kind of limitation they were up against. For Ant System's descendants, Walter Gutjahr gave the first proofs that a suitably defined ant colony algorithm converges with probability one to an optimal solution, and Dorigo and Thomas Stützle extended the argument to a broad class of algorithms — including Ant Colony System and the Max-Min Ant System — that impose a positive lower bound on every pheromone value, so that no edge's probability of being chosen is ever driven all the way to zero. But the guarantee came with a caveat the authors did not hide: the theory showed that "either infinite time or infinite space are required" for a stochastic optimization algorithm to converge to an optimal solution, and the existing convergence proofs for ant colony algorithms were no exception. A separate strand of the theory, developed by Christian Blum and Dorigo under the name of search bias, showed that the pheromone update could be actively misleading — a "second order deception" in which some solution components receive reinforcement more often than their rivals for reasons having nothing to do with solution quality, biasing the search away from the optimum over time regardless of how long it ran. Read against the question this book keeps asking of every limitation, these are not the complaints of researchers waiting for a faster machine. A convergence proof that requires an infinite run, or a search bias built into the reinforcement rule itself, is a property of the mathematics of stochastic sampling over a combinatorial space — it would survive intact on a 2026 datacenter exactly as it held on a 1996 Sun workstation. What the era's cheap, quickly-coded metaheuristics offered instead was breadth: unencumbered by gradients, chromosomes, or credit-assignment problems, particle swarms and ant colonies over the following decade were fitted to economic dispatch, vehicle routing, timetabling, and distribution-network reconfiguration — real engineering problems that a genetic algorithm's crossover, or a neural network's backpropagation, could not touch directly. It was this same appetite for a general-purpose, gradient-free search procedure, rather than any new supply of computing power, that would shortly be turned back on the neural network's own unsolved problem: not weights this time, but topology.

Evolving Neural Networks Through Augmenting Topologies

The decade of failed accommodations described above — Dasgupta and McGregor's structured chromosomes, Whitley's genetic hill-climber, Xin Yao's crossover-free EPNet — left the question of evolving neural topology in an awkward place. Everyone agreed that recombining two differently-wired networks tended to produce garbage, and everyone had responded by weakening or discarding crossover, the genetic algorithm's signature operator. By 2002, when Kenneth Stanley and Risto Miikkulainen of the University of Texas at Austin published "Evolving Neural Networks through Augmenting Topologies," a further, more basic doubt had also accumulated: even granting a working encoding, did evolving structure buy anything over simply evolving weights on a generously large fixed topology? Frédéric Gruau's Cellular Encoding had claimed the hardest pole-balancing benchmark of the day by evolving structure and weights together, but a fixed-topology rival called Enforced Subpopulations (ESP) then solved the identical task five times faster, merely by restarting with a random number of hidden units whenever search stalled — evidence, Stanley and Miikkulainen noted, that "later results suggested that structure was not necessary." Their paper set out to reverse that verdict, arguing that "if done right, evolving structure along with connection weights can significantly enhance the performance of NE," and identifying exactly three things that had to be done right at once: a genetic encoding that let disparate topologies cross over meaningfully, a way to protect a structural innovation long enough for its weights to be optimized before it was judged, and a search that began from minimal networks and grew them incrementally rather than pruning down from bloated ones.

The Empiricist Turn: Text, Web, and Recommendation

Text Categorization Comes of Age

Text categorization — sorting documents into predefined topic classes — is older than machine learning itself; rule-based indexing systems for scientific abstracts had been built by hand since the 1960s. What changed in the early 1990s was not the task but the tools brought to it, and Fabrizio Sebastiani's 2002 survey of the field is blunt about why the timing was what it was: "TC dates back to the early '60s, but only in the early '90s it became a major subfield of the information systems discipline, thanks to increased applicative interest and to the availability of more powerful hardware." Until the late 1980s the dominant approach in operational settings was knowledge engineering: a human expert, typically working with a system like Carnegie Group's Construe, hand-wrote logical rules that mapped surface features of a document — the presence of certain words, their proximity, their negation — onto a category label. Construe reportedly scored a .90 "breakeven" result on a subset of the Reuters newswire collection — a figure that, on its face, outperforms even the best classifiers built in the late 1990s by state-of-the-art learning techniques. But the comparison is not the head-to-head record it looks like: Sebastiani cautions that no other classifier was ever tested on that same subset, that it is unclear whether the subset was randomly chosen or favorable to the system, and — citing Yang's 1999 re-analysis — that the result cannot be taken to show these effectiveness levels "may be obtained in general." But building it required the same sustained expert labor that had made MYCIN and its rule-based cousins expensive to maintain, a chapter earlier in this book, and the rules did not transfer: a taxonomy built for financial newswire had to be rebuilt, category by category, for medical abstracts or web pages. The alternative that displaced it in the research community during the 1990s was inductive: hand a learning algorithm several thousand pre-classified documents and let it infer, from the statistics of word occurrence alone, what a category looked like.

The methods that competed for this ground in the 1990s were a mixed lineage: Rocchio's relevance-feedback rule, inherited wholesale from 1970s information retrieval; naive Bayes, in both its multivariate-Bernoulli and multinomial forms; k-nearest-neighbor classifiers; and C4.5-style decision trees, all trained on a document represented as nothing more than a bag of words, typically weighted by term frequency and inverse document frequency. Each treated the tens of thousands of distinct words in a corpus as a feature, which by the standards of the day's other classification problems — a few dozen clinical variables, a few hundred pixels — was an enormous, sparse, and almost entirely word-order-blind representation. It was Thorsten Joachims's 1998 study, later expanded into a book-length treatment, that argued this apparent liability was exactly what made support vector machines suited to the task. Joachims built an explicit model of text-classification tasks — high dimensionality, few irrelevant features, sparse document vectors, and a high level of redundancy among cues, so that many different subsets of words could each separately signal a category — and used it to derive sufficient conditions under which a wide-margin linear classifier would generalize well even without the feature-selection step that conventional methods needed to survive the dimensionality of the term space. This was a mathematical argument about why margin-based learning matched the geometry of text, not a claim that would evaporate with faster machines; it belongs in the same lineage as the structural risk minimization theory this book took up in the SVM insurgency. The machines of the moment still shaped what could be tested, though. Joachims's transductive SVM experiments on Reuters, WebKB, and Ohsumed — run on a Sun Ultra 10 with a 300MHz CPU — took, in his own tables, an average of 87 to 138 CPU-seconds per Reuters category with only seventeen labeled training documents, and climbed past 2,000 CPU-seconds per category on the Ohsumed medical abstracts; training time scaled roughly with the 1.5 power of the test-set size, a cost inherent to that particular label-switching heuristic rather than to margin maximization itself, and one a rack of 2020s cores would absorb without comment.

The clearest proof that the inductive approach had left the laboratory was email spam filtering. Ion Androutsopoulos and colleagues took the naive Bayes filter that Mehran Sahami and coauthors had proposed in 1998 and tested it, attribute by attribute, against the hand-built keyword patterns already shipping inside a commercial mail client. Their PU1 corpus — 481 spam messages and 618 legitimate ones drawn from one researcher's own mailbox — the spam collected over 22 months, the legitimate mail over three years — tokens replaced by anonymized numbers so the corpus could be released without exposing anyone's correspondence — let them compare a purely statistical classifier, selecting a few hundred words by mutual information, against Microsoft Outlook 2000's built-in filter, a set of "58 patterns, looking for particular keywords in the body or header fields of the messages." The keyword filter, tuned by hand, achieved 95.15% spam precision and 53.01% spam recall on the case-insensitive version; the naive Bayesian filter, trained automatically and requiring no manual rule engineering at all, beat it on most retained-attribute settings at every one of three cost thresholds the authors tried. The result echoed what Sahami's group had already reported: a system built by counting word frequencies in a training set could match or exceed years of hand-tuned pattern engineering, at a fraction of the maintenance cost — the same trade that had, a chapter earlier, undone the rule-based expert systems.

Two further strands rounded out the decade's picture. Ken Lang's NewsWeeder, built to filter Usenet news for individual readers, showed that the same statistics could be personalized: an MDL-based classifier trained on one user's ratings of thousands of articles reached 44% precision in the top decile of predicted-interesting articles, against 37% for a plain tf-idf baseline, on a task where the "categories" were nothing more stable than one person's taste. And a run of hypertext-categorization systems — Chakrabarti, Dom, and Indyk's HyperClass and the Bayesian link-exploiting method that Oh, Myaeng, and Lee built to compete with it — extended the bag-of-words model to documents connected by hyperlinks, using a neighbor's class label as evidence about a page's own topic. This was the first moment text categorization stopped treating a document as an isolated bag of words and started treating the web as a graph, a move that anticipates both the topic models and the link-based recommender systems taken up later in this chapter. By 2002, when Fabrizio Sebastiani surveyed the field for ACM Computing Surveys, the transformation was complete enough to state as settled fact: automated categorization had "reached effectiveness levels comparable to those of trained professionals," and had become, in his words, a proving ground for the wider machine-learning community, since "datasets consisting of hundreds of thousands of documents and characterized by tens of thousands of terms are widely available," making text classification "a good benchmark for checking whether a given learning technique can scale up to substantial sizes." Text categorization had come of age not because a new algorithm had been invented for it — Rocchio, Bayes, decision trees, and the perceptron all predated it by decades — but because sufficient digitized text, and sufficient cheap computation to run learning algorithms over it repeatedly, had finally arrived at the same moment. It was one of the first subfields in this book's story where the constraint binding progress was not the mathematics but the corpus.

Topic Models and Latent Semantics

Bag-of-words classifiers, the previous section's tools, treated documents as collections of interchangeable tokens; they had no way to see that "car" and "automobile" pointed at the same thing, or that "bank" meant one thing beside a river and another beside a ledger. Latent Semantic Analysis, introduced by Scott Deerwester and colleagues in 1990 and elaborated into a full cognitive theory by Thomas Landauer and Susan Dumais in 1997, proposed to fix this with linear algebra rather than a hand-built thesaurus: take a large term-by-document matrix of raw co-occurrence counts, run a singular value decomposition, and keep only the top few hundred singular values. Words that never appeared in the same document could still end up close together in the resulting space, because they had appeared alongside the same other words. Landauer and Dumais built their demonstration at a scale meant to answer whether the trick would work on a genuinely large vocabulary, not a toy example: singular value decomposition applied to 4.6 million words of text from Grolier's Academic American Encyclopedia, cast into a matrix of 30,473 columns (one per article-length text sample) by 60,768 rows (one per word type), compressed to roughly 300 dimensions. The theoretical move — that meaning could be recovered as latent structure in a matrix of surface co-occurrence, at a scale no one had previously attempted — was one they explicitly framed as a bet whose time had only now come: "Charles Osgood (1971) seems to have anticipated such a theoretical development when computational power eventually rose to the task, as it now has." That is the tell that this is a book about compute as much as about cognition — the idea is old, Osgood's semantic differential dates to the 1950s, and what changed by 1997 was not the mathematics of the SVD but the ability to run it on a 60,768-row matrix at all.

Actually computing a singular value decomposition at that size was, in 1997, a specialist undertaking, and Landauer and Dumais said so directly in the paper's methodological notes: "cookbook versions of SVD adequate for small (e.g., 100 X 100) matrices are available in several places... and a free software version (Berry, 1992) suitable for very large matrices such as the one used here to analyze an encyclopedia can currently be obtained from the World Wide Web." The offhand phrase "can currently be obtained" is doing real work — it marks large-matrix SVD as a recent and fragile capability, dependent on a particular piece of software from a particular numerical-linear-algebra group, downloadable rather than bundled with any statistics package a working researcher already had. The paper goes on to specify what running it actually required: with Berry's software and a "high-end Unix work-station with approximately 100 megabytes of RAM," matrices on the order of 50,000 by 50,000 could be decomposed, and university-affiliated researchers could obtain "a research-only license and complete software package for doing LSA by contacting Susan Dumais" directly. A hundred megabytes of RAM and a license mediated by personal request to one of the paper's own authors — that is not a mathematical limit on what SVD can do, it is 1997 hardware and software distribution, and it is exactly the kind of constraint this book keeps returning to: it does not bind a 2026 laptop, where a sparse SVD of a matrix two orders of magnitude larger runs as a single library call with no email to anyone required.

The next advance on LSA, Thomas Hofmann's 2001 Probabilistic Latent Semantic Analysis, is the cleanest case in this chapter of a limitation that was never about hardware at all. Hofmann's complaint about LSA was methodological: its use of the singular value decomposition amounted to fitting the term-document matrix under an implicit Gaussian noise model, "hard to justify in the context of count variables," and its linear vector space had no way to represent a genuinely polysemous word except as a blend of all its senses at once, since "the coordinates of a word in the latent space can be written as a linear superposition of the coordinates of the documents that contain the word" — a superposition, not a choice. Hofmann's fix was to replace the matrix factorization with an explicit generative story: pick a document, pick a latent "aspect" or topic conditioned on that document, then generate a word conditioned on the aspect, with the mixing distribution and the per-aspect word distributions fit by Expectation-Maximization rather than read off a decomposition. This bought two things LSA's algebra could not offer on its own terms — words could belong predominantly to one aspect in one document and another aspect in another, and because pLSA was "a proper generative data model," ordinary statistical tools such as cross-validation could be used to choose the number of aspects, something an SVD's singular values gave no principled way to do. Crucially, Hofmann was careful to note that none of this came at a computational premium over LSA: model fitting needed only "20–50 iterations" of EM, each costing O(R · K) operations where R is the number of nonzero entries in the co-occurrence matrix, so that, in Hofmann's words, the computation time of EM "has not been significantly worse than computing an SVD on the co-occurrence matrix." He demonstrated the model at a scale comparable to Landauer and Dumais's — the Topic Detection and Tracking corpus, "approximately 7 million word occurrences in 15863 documents," fit with 128 latent aspects. Here, in other words, is the contrast this section turns on: LSA's shortcomings relative to pLSA were mathematical, a mismatched noise model and an algebraic structure blind to polysemy, and no increase in compute would have closed that gap — a faster machine in 1990 would have given a faster wrong SVD, not a right one.

A different limitation, and a genuinely hardware-bound one, showed up when Peter Turney compared LSA against a much cruder statistic in 2001. Turney's PMI-IR scored synonym-recognition questions from the Test of English as a Foreign Language by querying AltaVista for how often two words co-occurred on the same web page and turning that into a pointwise mutual information estimate — no SVD, no latent dimensions, nothing but search-engine hit counts. It "obtains a score of 73.75% on the 80 TOEFL questions (59/80) and 74% on the 50 ESL questions," against the 64.4% Landauer and Dumais themselves reported for LSA on the same TOEFL set. Turney was candid about why the simpler method won: "It seems likely that PMI-IR achieves high performance by 'brute force', through the sheer size of the corpus of text that is indexed by AltaVista. It would be interesting to test this hypothesis. Although it might be a challenge to scale LSA up to this volume of text..." That sentence is this section's clearest instance of the book's central question, and the answer is unambiguous: yes, in 1999 it was a genuine challenge to run a singular value decomposition over a web-sized index that a commercial search engine's crawler had already built, and no, that constraint would not survive to the present. A distributed SVD or its randomized modern approximations now run routinely over corpora many times the size of AltaVista's 1999 index; the "brute force" advantage of raw web-scale counting over a compressed latent representation was never a mathematical advantage of counting over factorization, only a temporary asymmetry in whose infrastructure could reach the larger corpus. The same underlying idea — squeeze a sparse count matrix into latent factors and let similarity be read off in the compressed space — would resurface a few years later, restated by Hofmann himself, not for words and documents but for users and the items they rated, in a latent-class model built for collaborative filtering; the aspect model and the EM machinery migrated directly from topic discovery to the recommender systems taken up next in this chapter.

The Recommender Systems Boom

Before there was a Netflix Prize there was a much smaller, cruder question: given a matrix of who rated what, how should a system guess what a user would think of something they had not yet seen? The first working answer, developed across the 1990s, was memory-based collaborative filtering — find other users whose past ratings correlate with the active user's, and let their opinions of the new item stand in for a prediction. Thomas Hofmann, writing in 2004, placed the approach in its lineage plainly: "The latter includes [Goldberg et al. 1992], the GroupLens (and MovieLens) project [Resnik et al. 1994; Konstan et al. 1997], Ringo [Shardanand and Maes 1995] as well as a number of commercial systems, most notably the systems deployed at Amazon.com and CDNow.com." These systems worked, and by the mid-1990s they were running in production, but they carried two problems that would define the next fifteen years of research: they needed to find neighbors by comparing a user against every other user in the database at prediction time, and doing so accurately required enough overlapping ratings between any two users to make the comparison meaningful in the first place — a demand that got harder, not easier, as catalogs grew into the hundreds of thousands of items and any two users' rated sets grew correspondingly sparse. Whether that first problem was a fact about arithmetic or a fact about 1990s machines is the question this section follows through three answers to it — a probabilistic model, an industrial re-engineering, and a hundred-million-rating public contest — each of which treated "scale" a little differently.

Hofmann's own answer, carrying the aspect model and EM machinery over from the topic-discovery work discussed earlier in this chapter, made the scaling complaint explicit and specific rather than vague. Memory-based methods, he wrote, had four shortcomings, of which the third was squarely about computation rather than accuracy: they "do not scale well in terms of their resource requirements (memory and computer time), unless further approximations—like subsampling—are made." That is a genuine hardware complaint of the kind this book keeps tracking — not "the math cannot express this," but "the machine cannot afford this at the sizes people actually want." His fix, a latent-class model in which users and items are each generated from a shared set of hidden "aspects" fit by Expectation-Maximization, was tested on the EachMovie data set, which was itself a period artifact: "There are 1,623 items (movies) in this data set and 61,265 user profiles with a total of over 2.1 million ratings." A Digital Equipment Research Center project, not a web company, had done the work of assembling a two-million-rating corpus in the mid-1990s — DEC appearing here not as a supplier of the cycles a paper apologizes for needing, but as the source of the data itself. And once the aspect model was fit, running it was cheap: on "a standard PC with a 2GHZ CPU," a single EM step over all 61,265 users took about thirty seconds, with early stopping needing only thirty to forty such iterations. Twenty to two hundred latent states, a few dozen passes over the data, half an hour on a desktop — the actual computation, once the model was specified correctly, was trivial next to the assembling of the ratings matrix that fed it. This is the same shape of argument as the pLSA-versus-LSA contrast earlier in the chapter: the honest bottleneck in memory-based CF was an unavoidable one, comparing every user against every other user at prediction time, and a latent-variable model sidestepped it not by finding more compute but by refusing to need it in the first place.

A second answer to the same scaling complaint came not from a better probability model but from a change of index. Amazon.com's engineers, describing the item-to-item collaborative filtering algorithm the company had built into its production site, inverted the memory-based approach at its foundation: instead of comparing the active user against every other user to find neighbors, precompute a table of similar items for every item in the catalog, built once offline from the co-purchase and co-rating patterns across the whole user base, and then generate a user's recommendations by looking up the small number of items already known to be similar to the ones that user liked. The insight this exploited was that a catalog of items, however large, changes far more slowly than a user base of comparable size does — an item's neighbors are fairly stable over time, so the expensive step could be pushed offline and amortized, leaving only cheap table lookups at the moment a recommendation is actually needed. The payoff, in the authors' own summary, was exactly the property that had eluded memory-based systems as they grew: the algorithm requires "only subsecond processing time to generate online" recommendations, and it "is able to react immediately to changes in a user’s data, and makes compelling recommendations for all users regardless of the number of purchases and ratings." Note what kind of fix this is. Amazon's engineers did not wait for faster machines to make user-to-user comparison affordable at retail scale, and they did not need Hofmann's generative model either; they changed which quantity got recomputed at prediction time, trading a stable but large item-similarity table, built in batch, for a volatile and larger user-similarity computation that would have had to be run fresh for every request. It is an algorithmic answer to a problem the section's other two answers also treated as algorithmic rather than as a shortage of cycles — the recurring lesson of this chapter, that scaling recommender systems past a hardware wall over and over turned out to mean restructuring what got computed, not simply buying a bigger machine.

The largest public test of all this arrived in 2006, when Netflix turned the scaling question into a contest with a cash prize and an open data set. In the paper Yehuda Koren, Robert Bell, and Chris Volinsky wrote three years later, once their team had won, they described the release plainly: "the company released a training set of more than 100 million ratings spanning about 500,000" anonymous "customers and their ratings on more than 17,000 movies, each movie being rated on a scale of 1 to 5 stars." A hundred million ratings was roughly fifty times past Hofmann's 2.1-million-rating EachMovie set, and the response it drew was itself a datum about how the resource picture had changed since the DEC research lab of the 1990s: "more than 48,000 teams from 182 different countries have" downloaded the data, competing to beat Netflix's own algorithm at predicting held-out ratings. The authors' own team, BellKor, "took over the top spot in the competition in the summer of 2007, and won the 2007 Progress Prize with the best score at the time: 8.43 percent better than Netflix." What actually won, in the end, was matrix factorization — the same latent-factor idea as Hofmann's aspect model, now fit not by EM but by one of two much simpler optimizers. One of them had no institutional backing at all: "Simon Funk popularized a stochastic gradient descent optimization of Equation 2" in a blog post, "wherein the algorithm loops through all ratings in the training set," nudging each user and item vector a little after each single rating — an approach any competitor could run on their own laptop, and one that came from outside the recommender-systems research community entirely. The other optimizer, alternating least squares, was preferred instead when raw speed mattered less than the ability to spread the work across machines: "In ALS, the system computes each qi independently of the other item factors and computes each pu independently of the other user factors. This gives rise to potentially massive parallelization of the algorithm." Between them, Funk's single-machine gradient descent and BellKor's parallelizable ALS map the two ends of this section's argument. By 2006–2009, collaborative filtering at a hundred-million-rating scale was demonstrably not gated by access to a research lab's hardware — it ran well enough on a hobbyist's own computer to be competitive against corporate and university teams — and where parallel hardware helped, it was because the factorization's structure happened to decompose cleanly across machines, an opportunity to go faster, not a wall that had to be breached to get an answer at all. The pattern set by pLSA and by Amazon's item-to-item index held once more: the field kept discovering that what looked like a hardware ceiling was, again and again, a place where the computation had not yet been restructured.

Vision Without Understanding: Statistical Pattern Recognition

Eigenfaces and the Appearance-Based Turn

Face recognition had spent three decades as a features problem. Bledsoe's hand-fitted fiducial marks, the Bell Labs vector of subjective ratings like lip thickness and ear length, Kanade's automated but still landmark-driven system, Fischler and Elschlager's template-fitted "pictorial structures" — all of them assumed that a face was, computationally, the sum of its parts: eyes located, nose measured, distances and ratios tabulated. Lawrence Sirovich and Michael Kirby proposed something almost willfully naive by comparison. Treat a face image not as a diagram to be parsed but as a single point in an enormous vector space — one coordinate per pixel — and ask what a statistically representative set of such points looks like. Digitizing faces at modest resolution already fixed the scale of the problem: as they put it, "By taking a distinguishable digital picture of a human face, we are. in fact, determining an upper bound on the dimensionality of the set of all human faces, namely, the number of pixels in the picture." Their wager was that the true dimensionality was far lower than the pixel count, and that a face-specific coordinate system — the eigenvectors of the covariance matrix of a training ensemble of faces, which they called eigenpictures — would expose it. Working from a hundred digitized photographs of Brown University students and faculty, they found that a handful of these eigenpictures went a long way: "the first ten terms contain 82 percent of the variance, while by N = 50, we are up to 95 percent," and a crude Karhunen-Loève estimate put the effective dimensionality of the face set at around twenty-one. The result was less a recognition system than a compression scheme and a conjecture about the geometry of faces — but it planted the idea that would define appearance-based vision for the next decade: don't model the face, model the distribution of face images.

It was Matthew Turk and Alex Pentland, at the MIT Media Lab, who turned the Sirovich-Kirby compression trick into a recognition system and gave it a name that stuck: eigenfaces. Their 1991 paper is explicit that the appeal was as much practical as theoretical. Feature-point approaches had "proven difficult to extend to multiple views, and have often been quite fragile, requiring a good initial guess to guide them," while connectionist alternatives buried whatever they had learned "in the weights that makes it difficult to modify and evaluate parts of the approach." Eigenfaces offered a third way: project a face image onto a small basis of eigenvectors — computed, in an elegant piece of linear algebra, by diagonalizing an M-by-M matrix of training-image inner products (M being the number of training faces, typically a few dozen) rather than the intractable N²-by-N² pixel covariance matrix — and represent the face by the resulting handful of coefficients. Recognition became nearest-neighbor matching in a seven- or twenty-dimensional space instead of pixel-by-pixel comparison of 65,536-dimensional images. The paper's framing of "near-real-time" performance is worth pausing on precisely because it is a hardware claim rather than a mathematical one. Their working system, tracking and recognizing heads from live video, ran the recognition step in Lisp on a Sun 4 workstation: "The recognition currently takes about 400 msec running rather ineffi- ciently in Lisp on a Sun4, using face images of size 128 X 128. With some special-purpose hardware, the current version could run at close to frame rate (33 msec)." Nothing about eigenspace projection is intrinsically slow — it is a handful of dot products — and the gap between 400 milliseconds of interpreted Lisp and 33 milliseconds of dedicated silicon is exactly the kind of ceiling this book keeps finding: not a property of the mathematics, but of 1991 workstations running an inefficient interpreter. A 2026 laptop closes it without noticing.

Turk and Pentland tested the method's fragility as carefully as its speed, using a controlled database of 2,500 images of sixteen subjects in which lighting, head size, and orientation were varied one at a time against a fixed training set. The pattern that emerged would define the next fifteen years of appearance-based vision's research agenda: the system "achieved ap- proximately 96% correct classification averaged over lighting variation, 85% correct averaged over orientation variation, and 64% correct averaged over size variation." Small changes in illumination were nearly free; changes in scale were nearly fatal. That asymmetry is not an artifact of Turk and Pentland's particular database — a raw pixel vector is by construction acutely sensitive to any transformation, like scale or in-plane rotation, that fails to line up corresponding pixels across images, while it can be fairly tolerant of transformations, like modest illumination change, that shift intensities without displacing them. The eigenface idea proved general enough to migrate quickly beyond faces. Baback Moghaddam and Pentland reframed the eigenspace residual — the "distance-from-face-space" used for detection — as one term in a proper probability density, splitting the likelihood into a density over the retained principal subspace and an estimated density over everything discarded, so that eigenspace matching became maximum-likelihood estimation rather than ad hoc distance thresholding; they cite Murase and Nayar's contemporaneous extension of the same machinery to arbitrary three-dimensional objects, recovering identity and pose together by matching against a learned appearance manifold. Within a few years "eigenspace" had become a generic technique — for faces, for hands, for industrial parts on a turntable — rather than a face-specific trick, and view-based appearance modeling had displaced three-dimensional geometric modeling as the default strategy for object recognition research.

The asymmetry Turk and Pentland reported — illumination nearly free, scale nearly fatal — understated how severe the illumination problem actually was once anyone tested it systematically. Yael Adini, Yael Moses, and Shimon Ullman, working with a database in which lighting, viewpoint, and expression were each varied independently, compared 107 different image representations — raw gray levels, edge maps, banks of 2D Gabor-like filters, first- and second-order intensity derivatives, log transforms — asking a blunt question: across each representation, was the distance between two images of the same face under different lighting smaller than the distance between two different faces under matched lighting? For raw pixels the answer was total failure: comparing unprocessed images, "such a system will fail to recognize all the faces in the database—the miss-percentage is 100 percent," and "We have concluded that when comparing unprocessed images, the changes induced by illumination are larger than the" differences between individuals. Preprocessing helped but did not solve it: across all 107 operators, "the miss-percent for most of the operators considered was above 50 percent," and even the single best-performing filter still left a failure-rate above 40 percent. The conclusion the authors drew was structural, not incidental to their database: ideally "we would like the distances between images of different faces to be larger than the distances between images of the same face" — but none of the 107 representations tested had that property. No amount of edge-detection or filtering cleverness — nothing available to a feature-engineering approach — made illumination variation smaller than identity variation. The problem eigenfaces had glossed over as a modest accuracy hit was, examined directly, the dominant source of image variance.

Two responses to the Adini result defined the second half of the 1990s in appearance-based vision, and they pulled in opposite directions: one empirical, one exactly proved. Peter Hallinan attacked the problem the way Sirovich and Kirby had attacked face space itself — not by theorizing about reflectance but by photographing a face repeatedly under a densely sampled grid of light-source positions and running principal component analysis on the results. A handful of eigenpictures again went a long way: "Three eigenfaces suffices for centrally lit images and five for more extremely lit images," with the harder cases — light from extreme latitudes and longitudes relative to the face — the ones that resisted low-dimensional reconstruction. It was an empirical regularity, not a proof, and it left open whether five dimensions was a fact about faces, about lighting in general, or about Hallinan's particular lamp positions.

Peter Belhumeur and David Kriegman closed the gap Hallinan's photographs had left open, and closed it with a proof rather than another lamp position. Model a face as a convex surface with Lambertian reflectance — brightness at each point a function only of the angle between its surface normal and the light source, so that images from multiple point sources superpose linearly except where the surface shadows itself — and ask for the set of all images that surface can produce under every possible combination of light sources, at every strength and from every direction. Belhumeur and Kriegman proved that this set is a convex polyhedral cone in the n-pixel image space, and that "the dimension of this illumination cone equals the number of distinct surface normals." Better still, they showed "the cone for a particular object can be constructed from three properly chosen images": no need to sample a hemisphere of lighting positions, as Hallinan had done empirically. Three photographs, correctly chosen, characterize a face's appearance under every lighting condition it could ever be shown in, and the theorem explains why Hallinan's handful of eigenpictures worked at all: not because of anything peculiar to his lamp grid, but because the cone itself is expected to be nearly flat in most directions and to carry real extent in only a few. This is exactly the kind of finding the book has to weigh differently from a workstation's frame rate: the low dimensionality of face-under-lighting is not a computational shortcut waiting on faster hardware, it is a theorem about convex cones that a 2026 datacenter inherits unchanged along with every 1996 one. What does not survive unchanged is the idealization underneath it. Real faces are neither perfectly convex nor perfectly Lambertian, so cast shadows and specularities sit outside the model, and the authors concede that once self-shadowing and interreflection are added back in, "it remains an open question how the cone can be constructed from only three images." The mathematics of the cone is permanent; knowing when a face is close enough to the assumptions for the cone to apply was, and remains, an empirical question.

Markov Random Fields for Images

Eigenfaces treated an image as a single point in a vector space and asked what a representative sample of such points looked like — a global, linear-algebra move. A rival tradition, older and more piecemeal, treated an image as a lattice of pixels whose values were locally correlated with their neighbors, and asked what joint probability distribution over the whole lattice would make that local structure explicit. This was the Markov random field. Julian Besag's foundational work on lattice systems gave the formalism its statistical footing: an image is a realization of a random field in which the color at any pixel, conditioned on every other pixel, depends only on a small neighborhood around it, and the Hammersley-Clifford theorem guarantees that any such locally-specified field can be written as a global Gibbs distribution, a joint probability proportional to the exponential of a sum of "clique potentials" defined over small groups of neighboring pixels. As the FRAME paper later put it, plainly, "MRF models were popularized by Besag (1973) for modeling spatial interactions on lattice systems." The appeal was structural: instead of hand-designing a distance metric between images, as Turk and Pentland's eigenspace did, one specified a local rule and let the Hammersley-Clifford equivalence assemble it into a full generative model of what images (or scenes, or textures) ought to look like.

Stuart and Donald Geman turned this formalism into a program for image restoration and segmentation: model the true, unobserved scene as a Markov random field, model the observed image as that scene corrupted by noise, and combine the two through Bayes's theorem into a posterior distribution over possible scenes given the noisy data. The best estimate — the maximum a posteriori, or MAP, scene — is the mode of that posterior. Stated this way the problem sounds like ordinary optimization; the difficulty is the size of the search space. A single-column recursive Bayes smoothing algorithm proposed the same year made the blowup concrete: an exact recursive update over a binary scene requires storing and updating a distribution over every possible coloring of an entire column of the lattice, and the authors point out that even for a binary scene on a modest 64-by-64 lattice, each step of the exact recursion carries on the order of two to the sixty-fourth calculations and storage requirements — so many that, as they put it, drastic simplifications are necessary before the algorithm can run at all. This is not a complaint about a slow machine. Doubling the clock speed, or the number of cores, does nothing to a search space that grows as two to the number of pixels: the obstacle is combinatorial, and it would confront a 2026 datacenter exactly as it confronted a 1984 minicomputer. What the hardware year changes is how large a lattice you can afford to attack head-on, not whether the exponential wall is there.

Geman and Geman's own answer to the combinatorial wall was simulated annealing: a stochastic relaxation algorithm that perturbs the scene pixel by pixel according to a Metropolis-like rule, governed by a "temperature" that is lowered on a slow schedule, and that is provably guaranteed — if the schedule is slow enough — to converge to the true MAP estimate. The guarantee, however, bought its correctness with time. Two faster alternatives followed quickly and defined the practical menu for the next decade. Besag's Iterated Conditional Modes, or ICM, replaced global stochastic search with a deterministic greedy algorithm that visits each pixel and sets it to the locally most probable value given its neighbors, converging in finitely many passes to some local optimum, not necessarily the global one. Jose Marroquin, Sanjoy Mitter, and Tomaso Poggio's Maximizer of the Posterior Marginals, or MPM, took a third route, sampling the posterior and estimating each pixel's marginal mode rather than the joint mode. A textbook comparison of all three on the same test images made the tradeoff concrete in wall-clock terms: "Typical computation times on a SUN-4 are about 10 hours for simulated annealing, 3.7 minutes for MPM, and 6 seconds for ICM." Ten hours to six seconds is a hardware-shaped number — a 2026 machine erases the gap between annealing and ICM without anyone rewriting an equation, since none of the three algorithms is doing anything asymptotically different from what it did on a Sun-4. What a faster machine does not erase is the reason all three algorithms existed in the first place: exact MAP inference for a general MRF energy is, in the worst case, NP-hard, so some approximation — annealed, greedy, or marginal — remains necessary at any scale a real image can reach.

For the general MRF, annealing and its faster cousins were always approximations to a mode that no one could compute exactly. But in 1989 Greig, Porteous and Seheult showed that one important special case admits an exact solution after all. For a binary scene — black and white pixels only, energy built from pairwise interactions between neighbors — the posterior has exactly two to the n possible values, "and n may be of the order 256 x 256, making direct search for x infeasible." That much was the same combinatorial wall as before. Their move was to notice that this particular energy, restricted to two labels with attractive (submodular) neighbor interactions, has exactly the structure of a minimum-cut problem: build a capacitated network with a source and sink node standing for the two labels, an edge from source or sink to every pixel weighted by how strongly the data favors that label there, and an edge between every pair of neighboring pixels weighted by the cost of assigning them different labels. As they put it, "MAP estimation for binary images is reformulated as a minimum cut problem in a certain capacitated network, and the classic Ford-Fulkerson algorithm can then be used to find x exactly." Max-flow/min-cut, unlike simulated annealing, terminates in polynomial time with a certificate of optimality — not a schedule that promises convergence in the limit, but a finite algorithm that returns the true MAP estimate. Their experiments showed simulated annealing, run to practical stopping points, systematically over- or under-smoothed relative to this exact optimum. This is a permanent result, not a hardware-contingent one: it says that an entire subclass of MRF problems was never actually NP-hard, only miscategorized as intractable because the general case is. The same reduction, generalized to multiple labels and non-submodular energies over the following decade, became the graph-cuts machinery that would dominate computer vision segmentation and stereo long after this book's period closes — a reminder that some walls first taken for combinatorial turn out, on closer inspection of the special case at hand, not to be walls at all.

The other front on which MRFs were pressed into service was texture — not restoring a corrupted photograph but modeling what made a patch of grass, bark, or fabric look like itself. The problem traced back to Bela Julesz's conjecture that texture perception is governed by the co-occurrence statistics of intensities at small groups of pixels, "the so-called 'kth order' statistics." Cross and Jain gave this conjecture a Markov random field realization in 1983: auto-binomial and auto-normal models in which each pixel's conditional distribution given its neighbors was a simple logistic or Gaussian regression, with the joint field following by Hammersley-Clifford as before. These were genuine generative models of texture — you could sample from them and get plausible synthetic images — but their cliques were small, typically pairs, and so the statistics they could capture stopped early: real textures often needed higher-order or longer-range correlations that a pairwise auto-model, by construction, could not represent. Song-Chun Zhu, Ying Nian Wu and David Mumford's FRAME model, three decades on, fused the MRF tradition with the older filter-bank tradition of Gabor and wavelet texture analysis to lift this ceiling. Their argument was that a texture's identity is captured by the marginal histograms of its responses to a bank of filters, and they proved a result — that a distribution's density is exactly the maximum-entropy distribution consistent with any set of such marginals, so that "Theorem 2 transforms f(I) into a linear combination of its one dimensional marginal distributions" — that put a mathematical floor under the filter-bank intuition: matching filter-response histograms was not a heuristic but, in the limit of enough filters, provably sufficient to pin down the whole texture distribution. What this bought in principle it made pay for in practice. Fitting the maximum-entropy parameters required an inner loop of Gibbs sampling to estimate an intractable normalizing constant, repeated for every filter and every candidate feature; the authors report that for a modest 128-by-128 patch "the typical complexity is about 50 × 4 × 128 × 128 × 8 × 4 × 16 × 16 ≃ 27 billion arithmetic operators, and takes about one day to run on a Sun-20." That day is exactly the kind of number this book keeps separating out from its neighbors: it says nothing about whether matching marginals determines a texture — that is settled, permanently, by Theorem 2 — and everything about what a workstation in the early 1990s could grind through overnight. A cluster of 2026 GPUs would burn through the same 27 billion operations before the kettle boiled; the theorem they are evaluating would be exactly as true.

Set beside eigenfaces, the Markov random field looks like the road not taken and the road taken both at once. It gave vision something eigenspace methods never had: an actual joint probability distribution over images, licensing a real Bayesian estimator instead of a nearest-neighbor distance in a projected subspace. That gain came bundled with a permanent cost — inference in a general MRF is combinatorial in the number of pixels, and, outside special cases like the binary submodular energies Greig, Porteous and Seheult could route through a min-cut, no algorithm before or after the GPU could make that inference exact at scale. The field's whole practical history, from annealing through ICM and MPM to the graph-cuts era beyond this book's scope, is a record of trades against that one immovable fact, not attempts to abolish it. Faster hardware, then and now, only ever cheapened one side of the ledger: how quickly an approximation converges, how large a texture patch a filter bank could be fit to overnight. It never touched the other side — whether an exact answer was reachable at all — because that side was never a question about machines. By the time computer vision turned, in the 1990s and 2000s, toward discriminative classifiers that scored a window or a patch directly rather than modeling the whole scene's joint distribution, the pixel-level generative model built here had already drawn the line between what more computation could buy and what it could not; the next section picks up the discriminative alternative where this one leaves off.

Randomized Trees and the Object Detection Boom

The randomized tree had entered machine learning through a vision problem, not left one for it. Yali Amit and Donald Geman had built their splits by searching a random sample from an enormous pool of geometric shape features because no tree could afford to evaluate all of them at every node of every character-recognition tree — and Breiman's random forests, the ensemble ancestor of every classifier in this section, had been assembled explicitly on that precedent. What happened across the following decade was that the randomization Amit and Geman had reached for out of necessity turned out to be worth reaching for on principle. Pierre Geurts, Damien Ernst, and Louis Wehenkel's 2006 Extra-Trees pushed the idea to its logical extreme: rather than searching even a random handful of candidates for the single best cut-point at a node, choose the cut-point itself "totally or partially at random," independent of the training labels altogether, and let the ensemble average away whatever any one tree's arbitrary choice cost it. Their algorithm needed only two real parameters — how many attributes to consider at a split, and how large a node had to be before splitting stopped — and on twelve classification and twelve regression benchmarks it matched or beat both bagged trees and Breiman's forests while building its ensembles faster, because a tree that does not have to search for an optimal threshold has almost nothing left to compute. The mechanism generalized what Amit and Geman had done for shape recognition and Breiman had done for its formal footing: variance, not bias, was the disease of a single decision tree, and the cure was to stop asking any one tree to be right and to make many of them cheaply, differently wrong.

Geurts and his coauthors measured that cheapness on a machine that dates the paper as precisely as any timestamp could: "the system is implemented in C under Linux and runs on a Pentium 4 2.4GHz with 1GB of main memory." That machine is long gone, and the millisecond tables built on it are period furniture — what survives is the ratio in the next column over, Extra-Trees against Random Forests and against plain bagged trees on the same data, the same splits counted rather than timed. And the paper is explicit that the appeal was not confined to the tabular, UCI-style problems it benchmarked on: by 2006 the extremely randomized tree was already, in the authors' own words, a method of choice for "problems of very high dimensionality, like image classification problems," citing a 2004 paper by Raphaël Marée and colleagues that built whole-image classifiers out of ensembles of trees grown on randomly placed, randomly sized sub-windows of the image rather than on any single global feature vector. The randomized tree, in other words, had closed a loop: born to make shape recognition tractable, formalized into a general-purpose ensemble method, and then carried back into vision as a generic tool for exactly the kind of problem — too many possible local windows, too many possible features, no time to search all of them — that had motivated it in the first place.

Randomized ensembles were one answer to a problem the field had been circling since the mid-1990s: how to decide, for every rectangular window at every position and every scale in an image, whether a face or a car or a pedestrian was sitting inside it. Henry Schneiderman and Takeo Kanade's statistical detector, trained separately for each object orientation — frontal and profile faces, eight views of a car — reduced the decision at each window to a likelihood ratio test between "the statistics of the given object, P(image | object)" and the statistics of what they called the "non-object" class, approximated as a product of histograms over wavelet coefficients localized in space, frequency, and orientation, each histogram cheap enough to query by table lookup — "we retrieve probability by table look-up" — rather than by fitting a closed-form model with no closed-form solution. The arithmetic of scanning was unforgiving regardless of how the per-window decision was made: every position, every one of "4 octaves of candidate size," on every frame. Schneiderman and Kanade reported what that arithmetic cost in wall-clock terms on the hardware they had: "using this strategy to search a 320x240 image over 4 octaves of candidate size takes about 1 minute for faces and 5 minutes for cars," and a second, more optimized frontal-face detector, built on the same statistical scaffolding, brought that down to "about 5 seconds for a 320x240 image." Those numbers are exactly the kind the book has to set aside on their own terms — a twelvefold speedup on the face detector, bought by re-engineering a search strategy on a fixed piece of 2000-era silicon, says nothing durable about the underlying decision problem. What is durable is the shape of the problem itself: an image is not one classification, it is tens of thousands of them, one per candidate window, and every detector in this section — tree-based, histogram-based, kernel-based — was in the business of making each of those tens of thousands of decisions cheap enough that their sum was still affordable.

Anuj Mohan, Constantine Papageorgiou, and Tomaso Poggio's people detector, built the following year at MIT, arrived at the same scanning-window problem from the classifier-combination side of the ensemble literature rather than the tree-growing side, and made the kinship explicit. Instead of one support-vector classifier judging a whole 128-by-64 window as person or non-person, they trained four separate detectors — head and shoulders, lower body, left arm, right arm — each a quadratic-kernel SVM answering only for its own part, and combined the four scores with a second-stage classifier they called an "Adaptive Combination of Classifiers." A person, on this view, was not a single pattern but a vote among specialists, exactly the architecture chapter seven had already traced through bagging and boosting — and the authors said so directly, motivating their two-tier design by appeal to "hierarchical classification structures," singling out bagging and boosting by name as algorithms that "have been shown to increase the performance of certain classifiers for a variety of data sets," while noting that "the reasons why they work so well" remained, in 2001, "open to debate." Where components let the system down gracefully — a person's arm gone in shadow, a leg lost to clutter — a full-body detector like Papageorgiou and Poggio's earlier system had no such recourse, because it possessed, in Mohan and coauthors' words, "an implicit and fixed representation of the human form" that could not degrade one part while trusting the others. The specific numbers this system reported — 889 positive and 3,106 negative training examples, 796,904 windows classified across fifty test images — belong to a particular database assembled in Boston and Cambridge in the late 1990s and will never be run again; the architectural bet, that a hard whole-object decision should be factored into several easier part decisions and then recombined by a learned classifier rather than a hand-built rule, is the same bet random forests were making about splits and boosting was making about weak hypotheses, applied one level up, to the object itself.

Taken together, these three threads — the randomized tree pushed to its extreme and carried back into image classification, the histogram-based statistical detector scanning every window at every scale, the part-based classifier built explicitly on the logic of bagging and boosting — mark the point where the ensemble revolution of chapter seven stopped being a story about tables of misclassification rates on UCI datasets and became a story about cameras. None of it required new mathematics; Breiman's proof that random forests could not be made to overfit and Freund and Schapire's proof that a weak learner could be boosted to strength were both already a decade settled. What object detection needed, and what the 2000s supplied, was engineering: features cheap enough to compute at every one of tens of thousands of window positions, splits cheap enough to search or skip outright, classifiers structured so that a missing part or an occluded limb degraded a vote rather than crashing a monolithic decision. That the specific wall-clock numbers in this section — a minute per image, five seconds after optimization, a Pentium 4 at 2.4 gigahertz — read today like fossils is exactly the point the book keeps returning to: none of them are the reason this style of vision eventually gave way to another. The reason was that scanning a window with a shallow classifier, however cheaply, was still asking a hand-built architecture to do the discriminating a learned architecture would later do for itself. That reckoning belongs to the epilogue; what belongs here is the record that randomized trees and their disciplined statistical cousins were, on their own terms and against the hardware they had, already very good at finding faces, cars, and people in images the field had once thought too various to model at all.

Epilogue: On the Eve of the GPU

Best Practices, Not Breakthroughs

By the early 2000s, the machinery this volume has traced — kernel methods, boosting, graphical models, ensembles — was substantially in place. What the decade that followed produced was not a new mathematical idea of comparable size, but something quieter: a discipline turning its accumulated toolkit on itself, asking not "what else can we prove?" but "which of the things we already know how to do actually works best, and under what conditions?" The characteristic document of this period is not a new algorithm but the bake-off: a paper whose contribution is a table.

The clearest example is Rich Caruana and Alexandru Niculescu-Mizil's 2006 comparison of ten learning methods — SVMs, neural networks, logistic regression, naive Bayes, memory-based learning, random forests, decision trees, bagged trees, boosted trees, and boosted stumps — across eleven binary classification problems and eight performance metrics, training on the order of two thousand models per trial per problem to shake out the differences. Its conclusion reads as a verdict on the field as much as on any one algorithm: "The field has made substantial progress in the last decade. Learning methods such as boosting, random forests, bagging, and SVMs achieve excellent performance that would have been difficult to obtain just 15 years ago." But the paper's real news was procedural rather than algorithmic. Raw model outputs, it turned out, were often badly miscalibrated — boosted trees and SVMs push their predictions toward 0 and 1 even when the true probabilities are more moderate — and correcting for this mattered more than the choice of algorithm: "Calibration with either Platt's method or Isotonic Regression is remarkably effective at obtaining excellent performance on the probability metrics." Once calibration was applied uniformly, the ranking settled: "With excellent performance on all eight metrics, calibrated boosted trees were the best learning algorithm overall. Random forests are close second, followed by uncalibrated bagged trees, calibrated SVMs, and uncalibrated neural nets." Nothing here is a new theorem. It is a corrected scoreboard, and the correction — remember to calibrate before you compare — is the kind of finding a mature field produces about its own instruments rather than about the world.

Caruana and Niculescu-Mizil were candid about what the experiment cost them. With five-fold cross-validation across eleven datasets, eight metrics, and roughly two thousand model configurations per trial, they explain: "We would like to run more trials, but this is a very expensive set of experiments. Fortunately, even with only five trials we are able to discern interesting differences between methods." This is the book's test case in reverse. A 2026 cluster would not blink at re-running this study with fifty trials instead of five, or with every hyperparameter grid an order of magnitude finer — the computational limitation dissolves completely, as the hardware-bound limitations described throughout this book generally do. But notice what does not change when the compute constraint is lifted. More trials would narrow the error bars on the comparison; they would not produce a universal winner. The paper's own finding — that no algorithm dominates across all eight metrics and eleven problems — is not a symptom of having run too few trials: "there is significant variability across the problems and metrics. Even the best models sometimes perform poorly, and models with poor average performance occasionally perform exceptionally well." That is not a symptom of insufficient compute. It is a symptom of there being no such thing, mathematically, as an algorithm that is simply best.

The same lesson shows up wherever the 2000s literature tries to automate a choice that experts used to make by hand. Kernel methods (Chapter 6) had always required someone to pick a kernel — linear, polynomial, radial basis — by intuition and trial, and model-selection procedures of the sort Caruana surveyed were the field's answer: fold what used to be a graduate student's afternoon of cross-validation into a search over hyperparameters and let the bake-off decide. The move is characteristic of the decade: not a new representational power, but a new procedure for tuning an old one. There is a mathematical reason no bake-off, however large, was ever going to crown a single permanent winner, and it had been available since 1997: the no-free-lunch theorem for search and optimization. The original theorem states that any two algorithms have identical average performance across the full space of possible target functions; a sharpened version later gave necessary and sufficient conditions for the same equality to hold on a subset of that space — but the condition is narrow and combinatorial, not a generic closure property. The subset must be "closed under permutation" (c.u.p.): for every function it contains, every relabelling of the search points must be in it too. Igel and Toussaint showed why this rarely helps in practice. The fraction of subsets that are c.u.p. collapses toward zero as the search space grows, and the subsets a real problem actually hands you — bounded ruggedness, a cap on the number of local minima, a forbidden neighboring of the global max and min — are almost never c.u.p.: impose any such constraint and the permutations that would need to stay inside the set get excluded by the constraint itself. That is why they built a non-uniform extension instead, making the practical escape clause explicit: "Of course, in practice an algorithm need not perform well on all possible functions, but only on a subset that arises from the real-world problems at hand." Chapter 7 already showed Breiman, Schapire, and their critics fighting this out empirically in the margin-bounds debate of the late 1990s; by the 2000s the field had simply absorbed the conclusion as background knowledge. Caruana's ranking is not a violation of no-free-lunch — it is what no-free-lunch predicts once you fix a distribution of real-world problems and a handful of real-world metrics. Change the metric, change the dataset mix, and the ranking reshuffles; the paper says as much. No amount of 2026 compute removes this constraint, because it was never a constraint of compute. It is a theorem about search, and it does not care how many GPUs you have. Nothing in this chapter's exhibits, then, was waiting on faster hardware. What the field needed next was not a better bake-off but a different kind of problem — one where the old toolkit's careful, cross-validated, calibrated caution would be swept aside not by a new proof but by an old, unfashionable idea meeting a dataset and a machine finally large enough to let it work. That is where the next section begins.

The ImageNet Signal

Chapter eleven's final section left a promissory note: the object detectors of the 2000s — randomized trees, histogram-based statistical classifiers, part-based support vector machines, all scanning tens of thousands of windows per image — were already very good, on the hardware they had, at finding faces, cars, and people, but the reckoning over what eventually replaced them belonged to the epilogue. That reckoning turns out to hinge on a word repeated across nearly every paper in this story: scale. By 2006, Jianguo Zhang, Marcin Marszałek, Svetlana Lazebnik, and Cordelia Schmid had pushed the hand-engineered vision pipeline — Harris- and Laplacian-detected keypoints, SIFT and SPIN descriptors, Earth Mover's Distance and chi-squared kernels feeding a support vector machine — through the same disciplined bake-off this book's twelfth chapter has already diagnosed as the decade's characteristic move: nine databases, every combination of detector, descriptor, and kernel tried and ranked. They were candid about the frontier this left untouched: most prior work, they wrote, had been "small-scale and limited to one or two datasets." Their own study did not fully escape the limit it named — one texture set contributed twenty-five classes at forty images apiece, another ten classes at eighty-one images apiece, collections whose entire training corpus, summed across every class, would not fill a single category of the dataset about to arrive. The ceiling this pipeline was approaching was not a theorem about kernels or margins. It was the size of the box it had been tested in.

The people building the next generation of image datasets said so directly, and drew an analogy to a field two chapters back had already treated as a parallel case. Bryan Russell, Antonio Torralba, Kevin Murphy, and William Freeman, introducing LabelMe in 2008, wrote that "by analogy with the speech and language communities, history has shown that performance increases dramatically when more labeled training data is made available" — the same lesson chapter four's time-delay networks had drawn from continuous-speech corpora twenty years earlier, now applied to photographs of cluttered scenes rather than acoustic frames. What stood between the field and a dataset of that size was not an algorithmic gap but a logistical one: as the authors put it, "building a large dataset of annotated images with many objects is a costly and lengthy enterprise." LabelMe's answer was a web-based polygon-drawing tool that let any visitor annotate any image, credited contributors by name, and published every label the moment it was drawn — an experiment in whether crowdsourced labor could substitute for a research group's own hand. By the end of 2006 it had collected over a hundred thousand polygons across a few tens of thousands of images: a real advance on Caltech-101 or the PASCAL sets, and still orders of magnitude short of what a far larger, more systematically organized successor would assemble under a more ambitious name.

That collaboration, led by Fei-Fei Li, harvested candidate images from the web and filtered them through Amazon's Mechanical Turk rather than through unpaid volunteers, and the result dwarfed every dataset this book has so far described. In the words of Alex Krizhevsky, Ilya Sutskever, and Geoffrey Hinton, writing four years later, ImageNet "consists of over 15 million labeled high-resolution images in over 22,000 categories." Starting in 2010 it acquired an annual competition built around a fixed slice of that hierarchy: "ILSVRC uses a subset of ImageNet with roughly 1000 images in each of 1000 categories. In all, there are roughly 1.2 million training images, 50,000 validation images, and 150,000 testing images." A single category of the ImageNet Large-Scale Visual Recognition Challenge, in other words, held more labeled examples than the entire training corpus of a 2006 texture-and-object bake-off. The dataset that the field had been reasoning its way toward since LabelMe's crowdsourced polygons — bigger, because bigger was what the speech analogy demanded — had arrived, and it arrived with a standardized yearly scoreboard attached, ready-made for exactly the kind of comparison chapter twelve's first section had shown the decade loved.

What that scoreboard showed, once enough entrants had reported against it, was not a narrow win of the kind Caruana's bake-off had trained readers to expect, where calibration and averaging separated the top few algorithms by a point or two. Krizhevsky, Sutskever, and Hinton entered a convolutional network — eight learned layers, five of them convolutional, sixty million parameters — against the 2010 field and reported: "Our network achieves top-1 and top-5 test set error rates of 37.5% and 17.0%, respectively." Against that, the best the existing toolkit could produce was assembled from exactly the kind of hand-engineered features and ensembled classifiers this section has been tracing. The best performance during the 2010 competition itself came from a method that averaged "the predictions produced from six sparse-coding models trained on different features," reaching 47.1% and 28.2% error; the best published result since then came from an approach whose authors reported "the best published results are 45.7% and 25.7% with an approach that averages the predictions of two classifiers trained on Fisher Vectors (FVs) computed from two types of densely sampled features." Ten points of top-1 error, more than a third of the remaining mistakes, separated the convolutional network from the best that sparse coding and Fisher vectors — themselves respectable, hard-won descendants of the SIFT-and-kernel lineage traced above — could manage on the same fixed test set. Nothing about the architecture that produced that gap was new in 2012. Convolutional weight-sharing dated to Fukushima's neocognitron and LeCun's zip-code readers, both examined in earlier chapters of this book; backpropagation through such a network was older still. What had changed was not the mathematics of the classifier but the size of the dataset it was allowed to see.

The paper is unusually candid about why that dataset had not been allowed to work its effect sooner. Convolutional networks of this size, the authors wrote, "have still been prohibitively expensive to apply in large scale to" full-resolution images — until now: "Luckily, current GPUs, paired with a highly optimized implementation of 2D convolution, are powerful enough to facilitate the training of" networks that size, because "recent datasets such as ImageNet contain enough labeled examples to train such models without severe overfitting." The training run itself is reported with the same specificity this book has tried to extract from every chapter it touches: "Our network takes between 5 and 6 days to train on two GTX 580 3GB GPUs. All of our experiments suggest that our results can be improved simply by waiting for faster GPUs and bigger datasets to become available." That sentence is the one this whole book has been listening for. Every other limitation this volume has catalogued — the no-free-lunch theorem of the previous section, the margin bounds of chapter six, the intractability of exact inference in chapter five — was a wall that more computers would not move. This one was exactly the opposite kind of wall: a five-day training run on two consumer GPUs, waiting on a labeled dataset that had only existed for two years, using an architecture that had existed for two decades. Krizhevsky and Hinton said as much themselves, looking back at what had actually been missing: credit was owed to the pioneers "who spent many years developing the technology of CNNs, but the essential missing ingredient was supplied by" Fei-Fei Li and her collaborators, "who put a huge effort into producing a labeled dataset that was finally large enough to show what neural networks could really do." Not a theorem. A dataset, and a machine to run it on — arriving, in this book's terms, one section too late to belong to anything but the epilogue.

What the Detour Cost

Eleven chapters and one epilogue-section ago, this book opened with Arthur Samuel explaining why he had chosen checkers over chess: not because checkers was easy, but because it was a laboratory small enough to let him study learning at all. It closes by asking what, across the sixty-odd years between Samuel's IBM 701 and the two GTX 580s that trained the network in the previous section, the absence of a 2026 datacenter actually cost the field. The honest answer is not "decades of wasted effort." Almost nothing recounted in this volume was wasted; the kernel trick, the backpropagation derivative, the junction tree, the boosting proof, the convolutional weight-sharing scheme were all correct the day they were published and remain correct now. What the hardware ceiling cost was something narrower and more interesting: it repeatedly forced the field to solve a second, harder problem — how to make an idea work under a compute and data budget three to nine orders of magnitude smaller than the one its own theory assumed — before it was allowed to find out whether the first, easier problem it actually cared about had been solved. Sorting this book's exhibits into the two piles it has been building all along, chapter by chapter, is the last piece of business before the epilogue's final section.

One pile holds the walls no datacenter moves. Samuel's own reason for picking checkers over chess belongs here: there exists no known algorithm which will guarantee a win or a draw in checkers, and the game tree is too large by an exponent, not a constant factor, for brute enumeration ever to close. Chapter five's exact-inference machinery hit the same wall from the opposite direction: Gregory Cooper proved in 1990 that "probabilistic inference using belief networks is NP-hard," and drew the moral the field would spend the next decade absorbing — that "research should be directed away from the search for a general, efficient probabilistic inference algorithm, and toward the design of efficient special-case, average-case, and approximation algorithms." Chapter six's margin bounds, chapter seven's arc-gv result — a booster that produced larger margins than AdaBoost and still lost to it on test error, embarrassing the very theory the margin bounds were supposed to underwrite — this epilogue's own no-free-lunch theorem, chapter eight's Baird counterexample showing temporal-difference learning can diverge under function approximation for reasons that have nothing to do with how long the run takes — all of these are the same species of limit. Multiply the clock speed by a trillion and an NP-hard query gets solved somewhat larger before the wall arrives; the wall itself, being a theorem about the problem rather than a specification of the machine, does not move an inch. A field that spent real years on special-case algorithms, approximate inference, and margin-based generalization theory was not held back by its hardware in doing so. It was doing exactly the work its own mathematics said was left to do.

The other pile holds walls that did move, and it is worth reading the numbers off in a row, because no single chapter gave them to the reader all at once. Gerald Tesauro's TD-Gammon networks took, depending on size, "several hours" to "two weeks of simulation time" on an IBM RS/6000 — a bill that scaled quadratically with network size, because both the number of self-play games needed and the cost of simulating each game grew with the number of weights. That two-week figure is a rounding error against a modern cluster; the quadratic wall behind it is exactly the kind of wall decades of hardware scaling went on to push back, network by network, for every deep model that came after.

Yann LeCun's zip-code network trained in three days on an ordinary Sun workstation in 1989, a figure the paper offered mainly as a contrast with an earlier speech-recognition network built by Alexander Waibel, whose "training time was prohibitive (18 days on an Alliant mini-supercomputer)" and which had, for that reason alone, to be assembled out of smaller networks trained separately rather than as one piece. LeCun's group needed no such workaround: their own training times were "only" 3 days on a Sun workstation. The sixfold gap between the two numbers is not evidence that one machine was six times faster than the other — task, architecture, and hardware all differ, and the paper draws no such accounting — but the shape of the anecdote is the point: an entire design decision, decomposing a network into modules that could be trained within a feasible number of days, was dictated by a wall that later hardware simply removed.

The tally, then: the exact-inference wall, the no-free-lunch wall, the margin-bound wall, the Baird-counterexample wall stay standing regardless of what machine runs them, because they are theorems about the shape of the problem rather than complaints about the shape of the runtime; the TD-Gammon wall, the zip-code-network wall, the ImageNet wall came down, because they were complaints about the runtime and nothing else. What is easy to miss, reading the two piles side by side, is that the paper which finally broke the second kind of wall was still visibly built around a smaller one. Krizhevsky, Sutskever, and Hinton did not train their winning network on a machine large enough to hold it: "A single GTX 580 GPU has only 3GB of memory, which limits the maximum size of the networks that can be trained on it. It turns out that 1.2 million training examples are enough to train networks which are too big to fit on one GPU. Therefore we spread the net across two GPUs." That sentence could have been written, almost unchanged, about Waibel's speech network split across modules to fit within eighteen days, or about TD-Gammon's training run stretched over a quadratic-cost schedule because the workstation of 1992 could not be made to run faster. The instinct the whole detour trained into the field — when the hardware will not hold the idea whole, cut the idea into pieces that fit — did not end in 1989 or 2006. It ended, for this book's purposes, only when the pieces got large enough, and the machines briefly cheap enough, that the cutting stopped being visible in the result. The gap the field spent sixty years compensating for did not close because anyone solved it; it closed because two commodity GPUs in 2012 happened to be three to nine orders of magnitude larger than an IBM 701, an RS/6000, or a Sun workstation had ever been, and for one dataset, on one afternoon in a competition leaderboard, that finally turned out to be enough.

Two consequences follow, and they are the reason this history does not end here. First, because so much of what this volume has narrated was correct mathematics waiting on an adequate machine rather than a mistaken idea waiting on a correction, the derivations themselves are worth rerunning in full — not as antiquarian exercise but because a reader with a 2026 laptop can now finish, in minutes, experiments that their original authors could only gesture at. That rerunning is the second volume's business. Second, because most of this era's practitioners never had, and the vast majority of the world's data scientists still do not have, a cluster of GPUs to throw at a problem, the small-data and low-compute toolkit this volume watched the field build under duress — instance-based learning, decision trees, calibrated ensembles, case-based reasoning, kernel methods tuned by hand — was never a historical detour to be discarded once the ceiling lifted. It is a working toolbox, and it is the third volume's business to hand it back.

Colophon

This book was drafted, revised, and fact-checked by an event-sourced multi-agent system — an author, an adversarial critic, a planner, and an arbiter — working over a corpus of ~5,000 primary papers, directed and assembled by its human author. Nothing here rests on trust in the process: the process is published. Every sentence traces to logged reads of the primary sources; every quotation was machine-verified verbatim against the paper it cites; every number in an experimental rerun comes from an executed, independently reproduced computation; and the full construction record — the tape — replays to exactly this text.

Words176,659
Sections117
Construction events on the tape13,539
Executed experiments398
Critiques filed and resolved175

Preprint, text only — figures are forthcoming. Source, tape, lab, and harness: github.com/doInfinitely/long-detour.

Even the jacket keeps receipts: the cover concepts and the design transcript are in the repository, including the quote check that caught a mocked-up cover inventing archival telemetry. Jacket copy passes the same quote check as the prose.

remyochei.com · The Bracket Studio