Machine Learning with Python for everyone – Mark E.Fenner

From time to time, people trot out a tired claim that computers can “only do what they are told to do.” The claim is taken to mean that computers can only do what their programmers know how to do and can explain to the computer. This claim is false. Computers can perform tasks that their programmers cannot explain to them. Computers can solve tasks that their programmers do not understand. W e will break down this paradox with an example of a computer program that learns.

I’ll start by discussing one of the oldest – if not the oldest known – examples of a programmed machine-learning system. I’ve turned this into a story, but it is rooted in historical facts. Arthur Samuel w a working for IBM in the 1950s and he had an interesting problem. He had to test the big computing machines that w r coming off the assembly line to make sure transistors didn’t blow up when you turned a machine on and ran a program – people don’t like smoke in their workplace. Now, Samuel quickly got bored with running simple toy programs and, like many computing enthusiasts, he turned his attention towards games. He built a computer program that let him play checkers against himself. That w a fun for a while: he tested IBM’s computers b y playing checkers. But, as is often the case, he got bored playing two-person games solo. His mind began to consider the possibility of getting a good game of checkers against a computer opponent. Problem was, he wasn’t good enough at checkers to explain good checkers strategies to a computer!

Samuel came up with the idea of having the computer learn how to play checkers. He set up scenarios where the computer could make moves and evaluate the costs and benefits of those moves. At first, the computer w a bad, very bad. But eventually, the program started making progress. It w a slow going. Suddenly, Samuel had a great two-for-one idea: he decided to let one computer play another and take himself out of the loop. Because the computers could make moves much faster than Samuel could enter his moves – let alone think about them – the result w a many more cycles of “make a move and evaluate the outcome” per minute and hour and day.

Here is the amazing part. It didn’t take very long for the computer opponent to be able to consistently beat Samuel. The computer became a better checkers player than its programmer! How on earth could this happen, if “computers can only do what they are told to do”? The answer to this riddle comes when w analyze what the computer was told to do. What Samuel told the computer to do w a not the play-checkers task; it w a the learn-to-play-checkers task. Yes, we just went all meta on you. Meta is what happens when y o u take a picture of someone taking a picture (of someone else). Meta is what happens when a sentence refers to itself; the next sentence is an example. This sentence has five words. When w access the meta level, we step outside the box we wer playing in and w e get an entirely new perspective on the world. Learning to play checkers – atask that develops skill at another task – is a meta task. It lets us move beyond a limiting interpretation of the statement, computers can only do what they are told. Computers do what they are told, but they can be told to develop a capability. Computers can be told to learn.