Machine Learning is the latest disruption in the Industry. This article will introduce you to what Machine Learning is and how it is impacting industry.
What is Machine Learning?
Machine Learning is a branch/subset of Artificial Intelligence that enables machines to execute jobs intelligently by using algorithms in software. Machine Learning deals with writing software that can learn from past experiences, in this case from past data, and training a Machine Learning model to predict future or unknown data. Just like humans learn from their past experiences, Machine Learning systems can learn from previous data and improve their performance.
Machine Learning is closely related to statistical analysis and data mining, which are the extraction of knowledge from provided information and making decisions based on that data.
Machine Learning has been described in various ways. Arthur Samuel says that Machine Learning is giving "computers the ability to learn without being explicitly programmed". Tom M. Mitchell goes on to define Machine Learning in more detail: "A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E".
The History of Machine Learning
In 1955, British mathematician Alan Turing was the first to raise the question of whether machines can think, effectively starting the history of Artificial Intelligence. Alan Turing is considered by many to be the father of Computer Science and Artificial intelligence.
In 1959, Arthur Samuel was the first to use the term "Machine Learning" while working at IBM. His Samuel checkers-playing program was the world’s first self-learning program and also the first demonstration of the concept of Artificial intelligence.
Over the last 65 years, many people have contributed to the growth of Machine Learning, especially the universities and scientists who have developed Machine Learning algorithms. Many companies such as Google, Amazon, and Microsoft have created their own Machine Learning platforms and there are a plethora of other open source Machine Learning toolkits, platforms, frameworks which aim to solve various specific problems.
Artificial Intelligence vs. Machine Learning
There tends to be some confusion around the terms Artificial Intelligence (AI) and Machine Learning (ML) with many using the terms interchangeably. The diagram below shows how Artificial Intelligence and Machine Learning are all related. As mentioned previously Machine Learning is subset of Artificial Intelligence, with Deep Learning being a further subset of Machine Learning.
The term Artificial Intelligence was first used by John McCarthy in 1956. Artificial Intelligence is typically defined as a system that can make decisions on its own without human assistance. Examples of Artificial Intelligence include speech recognition, language translation, and self-driving cars.
Andrew Ng, an Artificial Intelligence researcher, predicts that "If a typical person can do a mental task with less than one second of thought, we can probably automate it using Artificial Intelligence either now or soon."
Machine Learning is simply an implementation of Artificial Intelligence, defined as a self-learning piece of software that can make predictions based on previous data. Real-world examples include fraud detection, spam detection, Google Ads recommendations, and Chat Bots.
Here are some prominent recent events in the fields of Machine Learning and Artificial Intelligence which garnered attention in Industry:
- In 2011 IBM’s AI platform Watson defeated a human competitor at Jeopardy
- In 2011 Google’s deep neural network learned to discover and categorize objects
- In 2014 Facebook developed the Deep Face algorithm which could recognize and verify people in photos the way humans do
- In 2015 Amazon launched its own Machine Learning platform on Amazon Web Services
- In 2015 Microsoft launched its own Machine Learning platform with a web based studio to create Machine Learning projects using drag and drop functionality, democratizing Machine Learning
- In 2016 IBM Watson created a movie trailer for 20th Century Fox's AI thriller Morgan
- In August 2017 a new AI system based on Neural Networks was trained to write the first five chapters of the next book of the popular fantasy series Game of Thrones
As you can see the last few years has seen a substantial growth in the interest and investments in Machine Learning projects.
Why a surge of Machine Learning?
There are many factors driving the demand and interest in Machine Learning in the recent past. The demands of companies to make informed decisions and predictions based on the vast amount of data available to them has led many industries to recognize the value of Machine Learning. Machine Learning enables organizations to automate data analysis and decision-making which has traditionally been done manually by humans. These factors make a perfect case for organizations to adopt Machine Learning into their processes. In a way Big Data, Data Science, Data Analytics, Data Analysis, Data Mining, Machine Learning all are co-related.
Applications that use Machine Learning
Yes, you may unknowingly be using applications that were built with Machine Learning such as Gmail. Gmail Spam detection is a Machine Learning based approach that continuously makes improvements every time a user marks an email as spam, allowing Google to claim that their anti-spam Machine Learning model can detect and block 99% of spam. Many online shopping vendors implement product-recommendation algorithms that use Machine Learning models. These models utilize the history of what customers have previously bought to recommend new products to customers. There are many such instances where you are an unwitting user of an application that is leveraging Machine Learning to improve the application.
No industry seems to be untouched by the surge of Machine Learning. Most industries are now dabbling in Machine Learning and seeing how they can benefit from it, investing and betting heavily in their own Machine Learning projects. Here are few Industries that are using Machine Learning extensively:
- Auto industry with improving self-driving cars’ driving capabilities
- Manufacturing industry using advanced robotics
- Financial companies in detecting fraudulent transactions and loan risk-assessment
- Healthcare in diagnosis, prescription, and treatment using patient’s past data
- Retail industry to provide better product recommendations
- Customer support using Chat Bots based on Natural Language Processing (NLP)
- Legal domain to automate contract analysis and contract generation
How Machine Learning Works
Training data is fed into a Machine Learning algorithm that then gets trained to create a model. Once a model is created test data is fed into it to see how accurate the model behaves. If the model does not work as expected then additional training data is provided until the model meets the expected criteria. Once the model works as expected it is then fed real time data to predict a result. This process can be seen in the below diagram.
Generally, historical data is split into two sets with a certain ratio of data fed into the model as training data and the rest as test data.
Training Data
Training Data is a subset of the historical data that is used to train the Machine Learning model. The training data is fed into a Machine Learning algorithm to generate an initial Machine Learning model.
Test Data
Test Data, sometimes called Validation Data, is the other subset of the historical data. It is fed into the Machine Learning model to help determine the accuracy of the trained model in comparison to expected behavior.
Real-Time Data
Real-Time data comes into play when the Machine Learning model is deployed to production and real-life data flows into it. Once the training model is working as expected the model is published and real-time data is streamed into the model for predictions. In most cases, the Machine Learning model continues to learn from the real-time data streamed into it and its accuracy improves.
Machine Learning Models
A Machine Learning model is the piece of software that contains the statistical rules, data patterns, algorithms, and learning processes. The model acts like a black box that takes the incoming data and processes it to generate a certain prediction, output, or target value. The model is persisted in memory or disk for reuse and retraining as and when needed.
The model needs to be trained with quality data to get quality output. For example, we can train a model with human health parameter values and ask it to predict whether a specific person will get diabetes or not in the future. For this to work, the Machine Learning model would need thousands of patient health records to be able to discern what contributes to or predicts diabetes. Some of this patient data should contain patients who have diabetes so that the model can differentiate between those with and those without diabetes. You can see the real-world training data used in the above example in the following link: https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data
The term generally used in the industry for Machine Learning data is "dataset". There are many datasets made freely available for others to train their models with or for learning purposes. Below are some links to websites that provide public Machine Learning datasets for free.
UC Irvine Machine Learning Repository | http://archive.ics.uci.edu/ml/index.php |
UCI Knowledge Discovery in Databases Archive | http://kdd.ics.uci.edu/ |
Delve Datasets | http://www.cs.toronto.edu/~delve/data/datasets.html |
ChemDB Chemo informatics | http://cdb.ics.uci.edu/cgibin/LearningDatasetsWeb.py |
Oxford University | http://www.cs.ox.ac.uk/activities/machinelearning/applications.html |
Deep Learning Datasets | http://deeplearning.net/datasets/ |
List of public Datasets by Big ML | https://blog.bigml.com/list-of-public-data-sources-fit-for-machine-learning/ |
Public Datasets by MLData.org | http://mldata.org/ |
Machine Learning Algorithms
An algorithm is a sequence of instructions for solving a problem. Here is a simple explanation of an algorithm on how to reach a destination using a bus.
- Go to the bus stand
- Get into a bus once it arrives
- Buy the bus ticket
- Get off at the destination
A Machine Learning algorithm is not as simple as this bus algorithm. Machine Learning algorithms are complex pieces of code with multitudes of scientific and mathematical calculations working together to process data, identify patterns, and extract patterns within the data. These algorithms have been developed over years by data scientists, researchers, and premier universities. Today most of the Machine Learning providers are using the same algorithms packaged as libraries, frameworks, platforms, and toolkits.
You do not need to code your own Machine Learning algorithms as they are readily available as libraries, API’s, web services (Machine Learning as a Service, or MLAS) on many Machine Learning cloud platforms. You only need to consume these resources within your projects. There is even a marketplace of Machine Learning algorithms similar to the marketplaces of Android or iOS apps. One such marketplace is https://algorithmia.com/ which provides various categories of algorithms with different pricing models.
There are many types of Machine Learning algorithms but they are generally organized into categories according to their purpose, usage, and desired outcome of the algorithm. Common algorithm types include:
Supervised Learning algorithms
These are task-driven algorithms which take a labeled dataset as an input and search for patterns within the data to predict a target value. This is called supervised learning because the model’s learning is done via a training dataset that is monitored by the user until its prediction reaches a certain level of accuracy. The model using health parameters to predict whether a person will get diabetes in the future or not is an example of this algorithm.
Unsupervised Learning algorithms
These are data-driven algorithms with input data values that are not labeled and do not have a target variable for prediction. The goal of unsupervised learning for exploratory data analysis is to find hidden patterns or groups of data in clusters. The goal is to make complex data look simple and organized for easier analysis. An example of unsupervised learning would be segmenting the population into groups by demographic information for analysis.
Reinforcement Learning algorithms
These are algorithms where the algorithm can change its strategy to improve its learning capability and achieve the best result based on feedback from its environment. Every action has some impact on the environment and the environment provides feedback that guides the learning algorithm. These algorithms are not configured for explicit goals; they essentially work by trial and error learning. Self-driving cars that receive continuous signal information and improve their decision-making are a good example of Reinforcement Learning.
Machine Learning algorithms are further divided into sub categories which are mentioned in the diagram below.
Skills and Technology for Machine Learning Jobs
A good grasp of linear algebra, probability & statistics, algorithms, data structures, data analysis, and metrics/scoring are helpful skills when delving into Machine Learning. The following video series by professor Geoff Gordon covers the required math skills that are involved in developing for Machine Learning: https://www.youtube.com/user/professorgeoff/videos
Hands-on knowledge of Python will give a deeper understanding and insight behind the scenes of Machine Learning. Beginners can start introducing themselves with Machine Learning using the Scikit-Learn library (http://scikit-learn.org/stable/index.html). It is better to start with Python and a library like Scikit-Learn and then moving on to a ready-to-use Machine Learning platform like Google Machine Learning, Amazon Machine Learning, or Microsoft Azure Machine Learning. These platforms are all web-based and easy to integrate with other Machine Learning projects. Knime Studio (https://www.knime.com/) is an alternative which is a desktop-based, drag-and-drop Machine Learning studio popular with data scientists.
Here are few Popular Machine Learning Frameworks, Libraries, and Platforms
TensorFlow | https://www.tensorflow.org/ |
MLlib (Spark) | http://spark.apache.org/mllib/ |
Scikit-Learn | http://scikit-learn.org/stable/ |
Theano | http://deeplearning.net/software/theano/ |
Apache Singa | http://singa.apache.org/docs/overview.html |
Natural Language Toolkit | www.nltk.org |
Apache Mahout | https://github.com/apache/mahout |
Amazon Machine Learning | https://aws.amazon.com/machine-learning/ |
Microsoft Azure Machine Learning | https://studio.azureml.net/ |
IBM Watson Machine Learning | https://developer.ibm.com/clouddataservices/docs/ibm-watson-machine-learning/ |
Google Machine Learning | https://cloud.google.com/products/machine-learning/ |
Besides the general-purpose Machine Learning frameworks, libraries, and platforms, there are hundreds of problem-specific libraries available that address issues such as speech recognition, image recognition, natural language processing, deep learning, neural networks, data analysis, visualization, and computer vision.
Conclusion
Machine Learning is the buzzword of the season and will be for many to come. It has taken the Industry by storm and has proven to be a game changer in its many applications. The time has come for you to take a dive into the deep world of Machine Learning and Artificial Intelligence. It is time to hone up your skills, begin reading, and start doing some Machine Learning coding and bring a change to your career path.