Differentiating the Artificial Intelligence and Machine Learning
What is AI and what is ML? How do they differ? Often they are grouped together “we’re going to be using AI/ML”. They get used together so often I wonder how many people really make a distinction between them. Are they the same thing? If they’re different what is that difference? These are the questions that have been going through my mind over the last few years and I have spoken with a number of AI/ML specialists to get their views as well.
Many people give me a different answer to what they think AI and ML is, even those who work in the field. Also, to make things more confusing, it seems as though the definitions of these terms have changed over the years. When I did my PhD in AI in the late 90s we weren’t talking about ML at all. What people talk about now when they reference AI is not what I thought AI was in the late 90s.
So, here’s my definition 🙂
It can be summarised in one short sentence with 8 words:
“AI is the WHAT, ML is the HOW”.
Let me explain with an example.
Suppose someone decided they wanted to get a computer to convert text to speach. Here are a couple of different approaches that could be taken:
1. Manual/Explicit Programming
This involves manually writing every line of code (e.g. Python) to program in gramatical rules. For example, an approach where if you wanted to work out the sound of a letter you would look at the letter itself, as well as the 3 letters before it and after it because the sound of a letter often depends on the letters surrounding it. In effect the program would look at a group of 7 letters at a time and try and determine the sound of the middle letter.
Every gramatical rule could be manually programmed to handle the many different sounds that need to be made when converting text to speech. For example, the letter A might make a different sound if there is a letter E to letters after it compared with when there is no letter E after it. You might also need to program in a number of exceptions to these rules and you many even have a dictionary of special cases. With enough time and effort it’s possible to use this approach to solve the problem. Let’s say the end result is that the computer can convert text to speech with an accuracy of 98%.
2. Automatic/Implicit Programming
A completely different approach could be taken to solving this problem using say Neural Networks. This approach could take many thousands of examples of groups of 7 letters as inputs. The outputs will have also have been correctly defined (each output is the correct sound of the middle letter of each group of 7). This is what’s called a training set.
The neural network can then begin training on this training set data. During training the neural network will evolve to try to learn the patterns between the training data intputs and the training data outputs. If all goes well the neural network can learn this pattern very well. Let’s assume that when the neural network has finished training it is tested on groups of letters that it has never seen before (i.e. the test set) and that it also converts text to speech with an accuracy of 98%.
AI – The WHAT
A human can then observe either of these computers and notice that they are converting text to speech with the same accuracy. Bother computers are performing the same function. The WHAT is the same. I would argue that in both cases the computers are using AI.
ML – The HOW
However, I would argue that the second approach uses ML because the computer did not need to be explicitly programmed with every gramatical rule. In fact it doesn’t even know that it’s solving a gramatical program. All it’s doing is finding a relationship between inputs and outputs.
The Turing Test
The Turing test is also another example to consider. A simplified explanation of the Turing test is that a person (A) can chat via text to either another person (B) or another computer. If after 5 minutes the person is fooled into thinking that the computer is indeed person (B) then the Turing test has been passed by the computer. This is often referred to as a benchmark to determine if a computer is able to “think” to a sophisticated enough level (i.e. reached a certain level of AI).
However, I would argue that the Turing test is again talking about the WHAT (i.e. has the function of the computer been sophisticated enough to fool a human). There is nothing in the Turing test that mentions HOW that level of sophistication needs to be achieved. In other words, if someone could explicity write a clever enough program without using ML to fool a human then it would still pass the Turning test and thus still be regarded as AI.