What is Machine Learning?
Consider a situation where you want to purchase a particular soap. Obviously you want to purchase it as cheap as possible. So what do you do?
You compile a list of prices from different vendors, arrange them in ascending order and purchase from the first one.
We have 3 stores offering the soap at 3 different prices. What do you do?
Arrange them in ascending order
The answer is ₹ 12. Now, this is a problem that can be very easily solved using a computer program. There are many sorting algorithms available including Selection Sort, Bubble Sort, etc
How is Machine Learning different?
Now, consider an alternate problem. The problem of crossing a road.
We have always crossed roads, but can you actually define the process.
Go to the edge of the road and start looking to the right. If there is sufficient space then look towards the right and then proceed.
Watch this video of a man crossing a street
or that of a slightly more adventurous man.
Can we develop a computer programme that will decide the path to be taken by somebody wanting to cross a street?
Can we define it in terms of precise lengths, time intervals etc.
The answer is no.
But, people do cross streets and do it regularly with almost zero casualties.
Machine Learning can be used in developing a Chess playing computer program. Again it isn’t something that be defined as series of binary decisions, yes or no, true or false. Ask a grandmaster why he chose this particular move. He wouldn’t be able to give a very definite answer. He has learned that this is the correct move to make in this situation. Rather he feels that this could be best move.
Where is Machine Learning to be used?
Let us say we want to develop a Spam Detection system for an email application. How do we decide what is spam and what is not?
There is a person A who isn’t interested in films and gets an email from some film marketing company about new releases this weekend. Clearly, this is spam and we would send it to the spam folder. How will this be done? We will search for certain words, phrases like ‘new release’, ‘bumper opening of film’ etc and send all this to the spam folder.
However, there is a person B who has a deep and enduring interest in films so such types of email are not spam for him.
Clearly this situation cannot be handled in some easy binary logic fashion.
The program has to observe the email users activities for some time and learn from it. It is also possible that the user A might begin to develop an interest in films now. This means that the spam definitions have to change.
What type of a language is best suited for Machine Learning programming?
Machine Learning requires flexible and dynamic data structures and also complex numerical processing. Among all the currently available languages Python is the most suitable. If the data is to be stored in some database then it should be a non SQL database like MongoDB.