Machine learning is a branch of artificial intelligence that provides systems with the ability to learn without being explicitly programmed. The system learns from data and improves itself without human intervention. Machine learning has gained traction in recent years due to emergence of big data and advancement in computing power. The concept of machine learning was coined back in 1959 by Samuel Arthur as “the ability to learn without being explicitly programmed”. It evolved from pattern recognition and computational learning theory fields in artificial intelligence. The premise behind machine learning is to build algorithms that can learn from data and make accurate predictions. In this post we are going to introduce ourselves to machine learning one of the widely applied field of AI. This post forms a series of posts that will focus practical application of machine learning and theoretical understanding behind the machine learning concepts.
Introduction to Machine Learning
Machine learning is one of the trending and evolving field in computing since the past few years. Its power comes when dealing with computing tasks that are hard to solve using traditional algorithms. Tasks related to computer vision, speech recognition, fraud detection, email filtering and many other cannot be solved efficiently using usual computing algorithms hence machine learning plays an integral roles in solving such problems. Perhaps the most important thing to note is understand which kind of problems can be solved by machine learning algorithms and which one are best fit for machine learning algorithms. It does not make sense to use machine learning to find the area of a circle while it makes more sense to predict who will be the nest president of America or to detect fraud in banks using machine learning. Whereas machine learning is an overrated field the actual effort required is enormous and takes a long time to perfect the machine learning concepts. Machine learning is a field that is build from computer science and mathematics.
Machine Learning and Artificial Intelligence
It is important to note that all machine learning is Artificial Intelligence (AI) while not all AI is machine learning. AI comprises of other subsets such as symbolic logic. Machine learning and AI is usually used interchangeable but though they focus on the same end goal there is a significant difference between these two terms. Whereas machine learning focuses on accuracy artificial intelligence focuses on making applications smarter. Machine learning heavily leverages statistical methods. Artificial intelligence is broader and machine learning is just a subset of AI. Machine learning is a way of achieving AI since to achieve some of the AI tasks without machine learning approaches the alternative is to write a software with millions of lines of code which will work but the effort and time used to produce even small output is very huge.
Machine Learning Applications
On daily basis we encounter machine learning enabled systems but since the application of machine learning has become pervasive we can’t know if we are interacting with such systems. Machine learning has been widely applied across many fields. Here are some of the major applications of the machine learning.
- Medical diagnosis
- Computational biology
- Natural language processing
- Automotive and manufacturing
- Computer vision
- Time series forecasting
Types of Machine Learning
Machine learning algorithms are broadly categorized into two categories; the Supervised and Unsupervised machine learning algorithms. Between supervised and unsupervised algorithms there lies the Semi-supervised and Reinforcement algorithms. Supervised machine learning uses data that has been labeled to learn from it in a process called training then uses the trained model to make prediction. The major categories of supervised learning is the classification algorithms which is applied in discrete predictive problems. Classification algorithms include Support vector machine, Naive Bayes and more. Another supervised algorithms is the Regression algorithms that is applied to problems with continuous responses. Regression algorithms include Linear Regression, Descision Tree among others.
Semi-supervised learning is a type of machine learning where some of the data is labeled and some unlabeled. Semi-supervised algorithms include Neural network. Reinforcement learning is a type of machine learning algorithms where the agent/algorithm is rewarded for its action. The main Reinforcement learning falls under reward maximization. The common algorithms for Reinforcement is Neural Network. This enables the algorithm to improve over time. Unsupervised learning is a broader type of machine learning that is used in data that is not labeled. The Unsupervised algorithms finds hidden patterns and insights from the data. The mostly used unsupervised algorithms fall under the clustering, dimensionality reduction and recommendation. Some of the unsupervised algorithms include k-means, mean-shift clustering among others.
Machine Learning Algorithms
There are tons of machine learning algorithms that are used in different use cases. The bellow diagram summarizes some of the algorithms. Inspired by MathWorks.
Deep learning has revolutionized the era of machine learning because of its power to solve almost any machine learning problem. Deep learning algorithms comprises of multiple layers of abstraction with ability to model non-linear tasks. Deep learning architectures include deep neural networks, deep belief networks, recurrent neural networks, convolution neural networks and many more. Deep learning research is heavily championed by big companies such as Google, Facebook, Microsoft and Amazon just to state a few.
Tools For Implementing Machine Learning
Developing machine learning applications is becoming easier and better with the new tools that are being developed. However, deep knowledge in machine learning is integral in successful implementation of machine learning problems. Bellow are some of the common and mostly used machine learning tools;
Here are the open source tools;
- Weka / MOA
Bellow are the proprietary ones;
- Amazon Machine Learning
- Microsoft Azure Machine Learning
- IBM Data Science Experience
- Google Prediction API
- Oracle Data Mining
- Oracle AI Platform Cloud Service
- IBM SPSS Modeler
And the list goes on….
Steps in Machine Learning
Machine learning follows a structured methodology in order to get good results. Bellow are the machine learning steps inspired from towardsdatascience . However, I have added the first step which involves identifying the problem and the objective of the task.
- Problem definition
- Gathering data
- Data preparation
- Model creation
- Model training
- Model evaluation
- Hyperparameter tunning
In this post we have just looked at what is machine learning in a nutshell and few concepts that encompasses it. There are tons of important pieces that we haven’t mentioned here. Machine learning has become pervasive and we usually interact with it in our daily basis. Machine learning is a branch of artificial intelligence and is one of the fastest growing and widely applied branch of artificial intelligence. Machine learning provides a way of applying artificial intelligence. It heavily leverages statistics and other mathematical concepts. The most important element when using and applying machine learning algorithms is understanding the problem to solve and selecting appropriate algorithms.
We have looked at the overview of machine learning. In this series of posts we are going to practically solve real world machine learning problems using various machine learning algorithms with the commonly used tools and libraries. This series of posts assumes that you are familiar with Python, NumPy, Pandas and Matplotlib. You can visit my previous post to learn about NumPy, Pandas and Matplotlib.