Teaching Computers to Think: The Dynamic World of Machine Learning
Over the past decade, both the academic world and industry have shown increasing interest in machine learning. This subfield of artificial intelligence focuses on crafting computer programs that can autonomously learn from data to execute specific tasks.
Although many think it is a recently emerged field, the history of machine learning goes back to the 50s. Arthur Samuel, one of the pioneers of AI research, coined the term for the first time in 1959. Here is how Arthur Samuel defined machine learning:
Field of study that gives computers the ability to learn without being explicitly programmed.
According to this definition, machine learning systems need not be explicitly programmed. Let's make this clear with an example. Suppose your friend Emma, who is by chance an excellent chess player, asks for your help to build an intelligent chess-playing computer program. You and Emma can take two different approaches here:
You can ask Emma to share with you all her chess skills, namely, her knowledge of actions and decisions in different states of the game. After that, you can somehow embed all that information into a computer program using the "if, else" routines. For example:
After that, the program can act in a specific situation by referring to the most relevant "if, else" to that situation. This is how explicit programming works. I suppose you can imagine how laborious this can be for you and Emma! There will be endless state/action pairs that Emma should tell you about, which you should embed; otherwise, your program fails in some situations.
However, there is another way you guys can take to build the program. You can watch Emma playing chess many times with different opponents and keep a record of every state/action that has happened in those games. Then, feed all that information to a flexible system, hoping that it could somehow use the data to learn how to play chess by looking at how Emma has played. If such a system exists, it might even be able to learn from Emma's mistakes even to be a better player than Emma. In this way, the system has learned how to play chess without you explicitly telling it how to do so.
Which approach would you and Emma prefer, and why? Each of them has its pros and cons, but the important thing is that the second one depicts how things work in machine learning. Taking the latter approach would result in a professional chess-playing program that could even win Emma in a fair match (so, don't get surprised if she didn't like it). You may have noticed that I used the word "learn" while describing the second approach. Let's see what Tom Mitchell, one of the leaders of AI research, says about learning in 1997:
A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
Let's review a simple problem to understand this definition better. Suppose your friend John has given you several pairs of values, (2, 5), (3, 7), (1, 3), (4, 9), and asked you if you could guess the second half of a new pair, like (4, ?), by looking at the other pairs. Since you are into computers just as much as I am, you decide to solve the problem by building a computer program. This program should be able to take the first number in a pair and guess the second one only after giving it a bunch of examples like the ones John gave you. Occasionally, you check the ratio of correct guesses to all guesses of the program to see how accurate they are. Here is how T, P, and E are defined for this problem according to Mitchell's definition:
- T: predicting the other half of the pair using the first half
- P: the ratio of correct predictions to all predictions
- E: examples of pairs
Your program first needs to somehow discover the logic between the first and the second numbers of the pairs and then apply the same logic to predict the unknown second half of a new pair.
Machine learning is the process in which your program finds the logic between the first and the second half of the pairs.
If your program could increase its accuracy as we give him more examples of the pairs, we say it is learning. In other words, the program has learned from the experience we have given it.
Doesn't this learning procedure remind you of something? If you think about it, this is very similar to how we humans learn. When we are born, we know almost nothing. But we learn how to crawl, walk, talk, and so much more while growing up observing our parents and the world around us. We learn through experience. For more insights about machine learning, get involved in our specialized Fundamentals of Machine Learning Online Training.