Monday, October 19, 2015

The Master Algorithm

Computers and the algorithms they run are precise, perfect, meticulously programmed, and austere. That’s the idea, anyway. But there’s a burgeoning, alternative model of programming and computation that sidesteps the limitations of the classic model, embracing uncertainty, variability, self-correction, and overall messiness. It’s called machine learning, and it’s impacted fields as diverse as facial recognition, movie recommendations, real-time trading, and cancer research—as well as all manner of zany experiments, like Google’s image-warping Deep Dream. Yet even within computer science, machine learning is notably opaque. In his new book The Master Algorithm, Pedro Domingos covers the growing prominence of machine learning in close but accessible detail. Domingos’ book is a nontechnical introduction to the subject, but even if it still seems daunting, it’s important to understand how machine learning works, the many forms it can take, and how it’s taking on problems that give traditional computing a great deal of trouble. Machine learning won’t bring us a utopian singularity or a dystopian Skynet, but it will inform an increasing amount of technology in the decades to come.

While machine learning originated as a subfield of artificial intelligence—the area of computer science dedicated to creating humanlike intelligence in computers—it’s expanded beyond the boundaries of A.I. into data science and expert systems. But machine learning is fundamentally different from much of what we think of as programming. When we think of a computer program (or the algorithm a program implements), we generally think of a human engineer giving a set of instructions to a computer, telling it how to handle certain inputs that will generate certain outputs. The state maintained by the program changes over time—a Web browser keeps track of which pages it’s displaying and responds to user input by (ideally) reacting in a determinate and predictable fashion—but the logic of the program is essentially described by the code written by the human. Machine learning, in many of its forms, is about building programs that themselves build programs. But these machine-generated programs—neural networks, Bayesian belief networks, evolutionary algorithms—are nothing like human-generated algorithms. Instead of being programmed, they are “trained” by their designers through an iterative process of providing positive and negative feedback on the results they give. They are difficult (sometimes impossible) to understand, tricky to debug, and harder to control. Yet it is precisely for these reasons that they offer the potential for far more “intelligent” behavior than traditional approaches to algorithms and A.I.

Domingos’ book is, to the best of my knowledge, the first general history of the machine-learning field. He covers the alternate paradigms that gave rise to machine learning in the middle of the 20thcentury, the “connectionism” field’s fall from grace in the 1960s, and its eventual resurrection and surpassing of traditional A.I. paradigms in the 1980s to the present. Domingos divides the field into five contemporary machine-learning paradigms—evolutionary algorithms, connectionism and neural networks, symbolism, Bayes networks, and analogical reasoning—which he imagines being unified in one future “master algorithm” capable of learning nearly anything.

None of these five paradigms admits to easy explanation. Take, for example, the neural networks that gave us Google’s Deep Dream—that thing you’ve seen that turns everyday photos into horrorscapes of eyeballs and puppy heads—as well as a surprisingly successful image-recognition algorithm that learned to recognize cat faces without any supervision. They consist of math-intensive calculations of thousands of interacting “neurons,” each with conditioned weights that determine when they “fire” outputs to other connected neurons. As these networks receive data on whether they are generating good results or not, they update their weights with the goal of improving the results. The feedback may not immediately fix a wrong answer. With enough wrong answers, though, the weights will change to skew away from that range of wrong answers. It’s this sort of indirect, probabilistic control that characterizes much of machine learning.

The question, then, is why one would want to generate opaque and unpredictable networks rather than writing strict, effective programs oneself. The answer, as Domingos told me, is that “complete control over the details of the algorithm doesn’t scale.” There are three related aspects to machine learning that mitigate this problem:

(1) It uses probabilities rather than the true/false binary.
(2) Humans accept a loss of control and precision over the details of the algorithm.
(3) The algorithm is refined and modified through a feedback process.

These three factors make for a significant change from the traditional programming paradigm (the one which I myself inhabited as a software engineer). Machine learning creates systems that are less under our direct control but that—ideally—can respond to their own mistakes and update their internal states to improve gradually over time. Again, this is a contrast to traditional programming, where bugs are things to be ferreted out before release. Machine-learning algorithms are very rarely perfect and have succeeded best in cases where there’s a high degree of fault tolerance, such as search results or movie recommendations. Even if 20 percent of the results are noise, the result is still more “intelligent” than one might expect.

by David Auerbach, Slate | Read more:
Image: Lisa Larson-Walker. Images by Ultima_Gaina/Thinkstock and Akritasa/Wikimedia Commons