What is Machine Learning?
Machine learning is the science and art of programming computers so that they can learn from data.
Some more definitions :
Machine learning is the field of study that gives the computer 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 it's performance on T, as measured by P, improves with experience E.
~ Tom Mitchell, 1997
Types of Machine Learning
Supervised Machine Learning
Unsupervised Machine Learning
1. Supervised Machine learning
As the name suggests, we need to have supervision on the method to get the algorithm working. The supervised learning techniques need the training data along with their labels to train the machine.
for example, A typical task of supervised learning is "Spam classifier" in Emails. In this case, we need labels(Spam/not spam) of different training data(Emails).
Some of the most important learning algorithms in a supervised learning technique are:
Support Vector Machine (SVM)
Decision Tree and Random Forest
Artificial Neural Network(ANN)
2. Unsupervised Machine learning
In the unsupervised learning technique, we have unlabeled training data. The system tried to learn without any supervision. In this case, we use clustering techniques to determine which class data belongs to.
for example, say you have different colored balls and the data is plotted on coordinates and the machine observes how near one color is from another(from a euclidian distance) and for the nearer the colors the same colored clusters will be made.
Some of the most important learning algorithms in an unsupervised learning technique are:
Hierarchical Cluster Analysis (HCA)
Visualization and Dimensionality Reduction
Principal Component Analysis (PCA)
Locally Linear Embedding (LLE)
t-distributed Stochastic Neighbor Embedding (t-SNE)
In this technique, we are strengthening the machine's ability to automate by giving penalties and rewards to the machine, the same way we teach a child to do a certain task.
A little more technical way of explaining RL is, the learning system is called an agent. The agent then observes the environment, do certain kinds of actions and on that basis, it will be rewarded or penalized (In mathematical term, giving some positive and negative numerical values). After certain iterations, it will start learning what is the optimal way of doing certain things and the optimal (best) strategy it follows is called policy and in the end, the policy will decide what actions it must choose when giving a situation.
Some of the most important learning algorithms in reinforcement learning techniques are given in this BLOG.
Batch Learning V/S Online Learning
Batch learning does not have the capacity of learning incrementally. Now it means that the machine must be trained using all the available data. It is very tedious, takes lots of time and compute resources and therefore it is generally done offline.
If we train the system with total available data and in production, it runs with the limited knowledge then it is not called a robust model because for certain jobs data is always updating and therefore if the model is not changed according to data then the model will be outdated.
for example, if the model is trained in certain spam/not-spam email data, it will classify those emails whose data it is trained upon but what if there is a different pattern of spam emails, then it cannot be robust to filter those emails correctly.
Fortunately, there is a better technique that can learn incrementally.
Online learning is the sweet solution of Batch Learning, Yeah, you guessed it correct(if you guessed). It uses mini-batches of whole data and the mini-batches are fed to the model incrementally. It helps us reduce time consumption, compute consumption and most importantly as the data comes it is fed to the model which prevents us to train the model from scratch when new data arrives.
Online learning is a boon for the systems that receive data in a continuous flow, for example, Dynamic pricing of online items, Stock price prediction.
Instance-Based Learning V/S Model-Based Learning
Machine Learning systems can be categorized into one more way, that is, the way they generalize. The game of Machine Learning is all about the generalization of the model(mathematical function) so that it can give good predictions on unseen data on which it is not trained upon, agreed? It is fine to achieve good performance on training data, but it is insufficient; the main objective is to attain good performance in the new instances as well.
The most basic form of learning is by mugging up the data.
for example, if this technique is applied to a spam filter, it would just flag all the emails that are identical to the emails that have already been flagged by users. We can say it is not the worst condition but it is also certainly not the best either.
It uses certain similarity measures to by-heart the data. A basic similarity measure between two emails can be the count of words to judge whether the email is spam or not. If an email contains more then a certain threshold of words, it can be classified as a spam email.
This technique of by-hearting the training data is called instance-based learning.
The other way to generalize the prediction is to create a model on these example data and then use that model to predict future instances.
for example, if you are curious about if money makes people happy, you can download the data of Better Life Index data from the OECD’s website and stats about GDP per capita from the IMF’s website, then you can join both the tables which will look something like this:
and if you plot it on coordinates, you will see something like this:
Do you see a trend here?
As the country's GDP per capita increases, life satisfaction also increases.
So you decide to model life satisfaction as a linear function of GDP per capita. This step is called model selection. You selected a linear model of life satisfaction.
Main Challenges of Machine Learning
Insufficient Quantity of Data
Non-representative Training Data
Poor-Quality of Data
Overfitting of the Training Data
Underfitting of the Training Data
Author's Note: I am sorry for not being regular on blogging. I will be regular on it from now. Please Like, share and subscribe to the feeds to get an update on the new blog.
Thank you so much for the love and support on my previous Blog (Magical cloak with python and OpenCV).
To know more about me and my life, follow me on Instagram: INSTAGRAM