Machine Learning

Prof. Richard Feynman is one of my idols. I am always impressed by the way he explains seemingly vague terms in a very simple words. Recently, I was listening to his lectures about Introduction to computers where he has explained the essential building blocks of a computer in a very simple and easy to understand words. Feynman compares computers to a really stupid and dumb file clerks in any office, who can only pick files from one place and put it in another place. The only difference between a file clerk and a computer is that computers are very very fast at doing dumb things. Human have achieved miracles by building abstractions on the top of this dumb but fast things. In fact, computer is a digital device, which in its very simple form can do nothing more than determining high voltage and low voltage or 1s and 0s. However, by combining different integrated circuits, it can perform such operations in a tremendously fast speed, which is ever increasing. We can create any instructions from the very basic computer operation (deciding between high and low voltage) and feed them to computers to make then work whatever we want. These instructions are called computer programs. Hence the traditional computing ideas can be summed up as follows:

“Feed input values and instructions to get the desired output. ”

Machine learning is slightly different concept, in the sense that computers do not need to be completely instructed to perform certain tasks. In other words, “machine learning is a field of science, which studies algorithms and techniques to allow computers perform tasks without being explicitly programmed.” Computers are provided with training data sets, which contains inputs and outputs (in case of supervised learning) and some algorithms from which they understand the patterns and create their own predictions out of it.

Arthur Samuel , an American pioneer in the field of artificial intelligence and gaming, was the first person who coined the term “Machine learning” in 1959. He also wrote a “Checkers-playing computer program”, which allowed a computer to learn by itself to play the game based on training data. This was also one of the earliest demonstration of artificial intelligence capabilities in computers.

When computers can understand the trends and patterns based on the training sets (input data + output data), the traditional computing approaches that we have been dealing with is going to change considerably. Computers are no more dumb and 100% instructional but they can create their own programs and patterns, which is proved to outperform smartest human brains on tasks like prediction, solving problems and playing very difficult games such as Go and Chess. We just need to provide them with suitable algorithms and training data. Like the children of animals, who learn by observing different outward circumstances and surroundings, computers also learn from different input data and relevant algorithms. Algorithms are like the rules given to computers on how to process and understand the input (training) data. Machine learning idea can be summed up as follows:

“Feed training sets (input + output) to recognize desired pattern/program/function. ”

The figure below shows the difference between traditional computing and the machine learning approaches.

Earliest challenges in the field of machine learning was to determine effective and faster ways to make computers operate on these algorithms, because most of the algorithms require very time consuming computations like finding the derivatives of a function. But, the advancement in hardware technology with emergence of powerful and very fast processing capabilities, has avoided all these computing limitations in the past few years. Thus, machine learning has emerged as one of the hottest areas in research and industry. There are a tremendous amount of practical and ground breaking applications of machine learning in every areas of our life, from business and banking, health and consumer goods, agriculture and social behavior to industry and manufacturing and many more.

Broadly, machine learning tasks have been categorized as follows based on the available training data:

  • Supervised Learning
  • Semi-Supervised learning
  • Unsupervised Learning
  • Reinforcement Learning