So a colleague of mine recently asked me the question “What is the difference between all these buzz words I keep hearing such as machine learning, deep learning etc”. I asked him to elaborate on which concepts he was most confused and he told me that the differences between Artificial Intelligence (AI), Machine learning (ML), Deep Learning and Reinforcement Learning confused him the most. In this article, I will explain the similarities and differences between these key concepts. I will try to keep this overview as non-technical as possible so as to not confuse since deeply technical articles are plentiful on the internet. I am hoping that I have not sacrificed too much technical depth for the sake of understanding.
Artificial Intelligence (AI)
Artificial intelligence deals with the branch of computer science and all types of computer code that allows a computer to mimic human behavior. The concept of artificial intelligence is perhaps as old as computing itself and even the very basic function of adding two numbers together and showing the result can be described in this broad category (a human can do that too). In this field of computing, any code that allows a computer to “act” like a human is considered AI. This also means that any explicit programming that includes if-else conditions and decision trees that allows a computer to make decision based on a given set of choices is considered AI. AI is the broadest super-set and all further concepts discussed below are subsumed in AI. Next comes machine learning.
Machine Learning (ML)
Machine learning is a subset of artificial intelligence in which statistical learning methods and algorithms are used to create models that allow a computer to perform tasks (such as prediction or data analysis) without needing to be explicitly programmed. In this sphere, the computer is never really “programmed” but fed data and based on the data fed to the computer, the computer is then able to make predictions on any future data it sees. For example, if an ML algorithm is fed data regarding the prices of houses and certain factors those prices depend on (square footage, number of rooms, year built, location etc), when the computer is given a new house and is also given the value of the factors upon which the price depends, the computer can predict a value for the price of the house based on the data it was provided previously.
Deep learning refers to a subset of machine learning algorithms that are computationally intensive to train but are better at predictive ability and more complex tasks such as image recognition than other ML algorithms. . Usually (but not always) the deeper an algorithm learns and the more data is fed to a deep learning algorithm, the better it becomes at performing the task in question. These algorithms and their popular implementations include image and face recognition. Classic ML algorithms tend to reach an upper limit to their predictive ability where deep learning algorithms continue to perform better and better based on increases in available data. A good rule of thumb you can utilize is that as more data becomes available, a deep learning learning algorithm becomes better at the task at hand.
In order to understand reinforcement learning, we must first understand the that there are three paradigms of machine learning; supervised learning, unsupervised learning and reinforcement learning. In supervised learning, the outcome/expected result is known and the prediction being sought is fed to the machine learning algorithm (for example the price of houses is known in the example above). In unsupervised learning, the outcomes / value being sought is unknown and the ML algorithm is used to classify / cluster the data in a way that can reveal some insights. For example, if we don’t know house prices but feed teh data to a ML algorithm, the unsupervised algorithm might classify houses in the three categories based on thier square footage (apartment, town-house, single-family).
In reinforcement learning, the algorithm learns by attempting to maximize a reward and minimizing a penalty for certain action. For example while learning to play a game, losing a life would have a penalty while scoring a point would have a reward. In reinforcement learning, the computer learns by performing the task repeatedly, learning from the outcomes of the process and then readjusting itself based on the outcome. In this paradigm, the algorithm trains itself without needing data or any input from humans other than being told which rewards and penalties are associated with which task.
There you have it folks. Any confusion still? Do you currently use any techniques in your organization? Let me know in the comments below.