What is Machine Learning ?
Machine Learning is the field of study that gives computers the ability to learn without being explicitly programmed. (Arthur Samuel, 1959)
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, improved with experience E. (Tom Mitchell, 1997)
The second definition by Tom Mitchell is more technical and is helpful to understand what Machine Learning does. Let's consider the example of Spam email filter. A spam filter analyzes email and classifies them into either spam or not spam. The examples that Spam Filter will use to train the model is called "Training Set". Each training example is called "Training Instance" or "Sample". In this example the task (T) is to flag any new email, the experience E is the training data, and the performance measure P could be the ratio of correct classified email.
In traditional application we will have a huge list of if-else-if condition or some kind of rule engine running on the list of phrases like "free", "amazing", "award", "4U" etc. Our program will scan the content of the email and match it with these words. If these words are present in the email program will flag the email as spam.
Let's consider a scenario where Spammer identifies that if emails have phrase "4U", spam filter is marking email as spam and they update the phrase to "for U". To fix this we need to revisit our application and update rules to include phrase "for U" as well. This is very simple scenario there can be more complicated scenarios that could lead to frequent release of rules for application or frequent update of application code.
If our Spam filter is built using Machine Learning, it will automatically learn which words and phrases are spam by detecting patterns of words. If spammer changes the phrase "4U" to "for U", spam filter will automatically detect the pattern by analyzing user feedback.
Owner of Machine Learning Algorithms can inspect to see what their system have learned so far. For our example of Spam email filter, it can be inspected to view the list of words or combination of words that is believes to be spam. This is helpful in having better understanding of problem. Using Machine Learning technique to dig into huge amount of data and identify patterns is called Data Mining.
Applications of Machine learning
- Auto classification of products on a production line. (Convolution Neural Network)
- Summarizing long documentary (Natural Language Processing)
- Revenue forecasting based on performance metrics. (Linear Regression, SVM, Artificial Neural Network)
- Flag comments real time. (Natural Language Processing)
- Classify pages , emails or news. (Natural Language Processing)
- Detecting tumors. (Convolutional Neural Network)
- Making application react to voice commands.
- Detecting fraud in Financial institutions like credit card fraud. (Anomaly Detection)
- Product recommendation based on past purchases. (Artificial Neural Network)
Machine Learning is used for:
- Rule based application. Machine learning algorithms is more simpler and better performant for application that requires long list of rules.
- Application that continuously evaluate new set of data (fluctuating data).
- Getting insights into complex problem.