In this blog I will tell you about Machine Learning: An Introduction
In classical or also called traditional programming. The input for the computer is first of all a set of rules, what to do per each case. It is the whole concept of programming.
Create an application program that will cover the needed task and use cases looking at all situations.
The programmer will study the needed task to be done and then write a set of rules to perform that task. Test it several times using different scenarios, evaluate the result and correct the hardcoded rules inside the program.
After you know programming the knowledge inside the program.
The second important input is the data that is representing something. In a chess game, the input data will be the move just performed by the other player.
Now based on the predefined programming rules the provided data will be analyzed and we will get some answers, some decisions.
In our example, it will be the next move to be performed by the computer, like moving the Queen to this new location.
While trying to win the game. This traditional approach has a major limitation. When the task is very complex and things are changing, the program will become very complex and also very hard to maintain.
We talked about the chess game but there are many examples of such complex tasks that traditional programming is not really working anymore. Let’s use another example,
to emphasize this concept which is very important.
Let’s talk about speech recognition.
If I will try to write a program that can identify only two words like “yes” and “no”, then I need to write a group of rules that can be used by the program to distinguish between those two words.
For example, the program can measure the duration of each word.
“Yes” is taking longer than “No”. Or maybe use this sound wave pitch level.
I need to manually find rules that can help the program to identify the right word.
This approach may be useful for identifying two words, yes and no, but what about identifying 100 different words.
What about ten thousand different words. It is becoming a scaling challenge.
It doesn’t make sense anymore to try approaching it with traditional programming and program by ourselves the logic on how to identify words. We need to consider a different approach.
And as you may guess, it’s about machine learning.
What if we can somehow, let a computer learn new knowledge by looking at the data.
Using the example of the chess game.
If the computer will win or lose a specific game by performing a group of steps. It can learn from that experience like a human player.
It will create a new set of rules that will help to win the next game and keep improving all the time.
From a programming perspective, it is a completely new approach, a new state of mind.
Take a look on this simple drawing that nicely represents this simple but very powerful new programming approach. Imagine, there is some machine learning black box that is supposed to perform a specific task, I’m calling that the black box because at this point I don’t know what is going inside that box, but I know two things: input and output of that box.
There is an expected input into the box and then some expected output from that box.
Now this machine learning black box is a little bit more special than other boxes.
We can provide it with examples of input and the related output and using this information it will learn.
It will extract patterns from the provided data and establish automatically some level of knowledge or rules that can be used to perform a specific task.
This process is called “training” and it is based on multiple types of mathematical algorithms. Something will be covered in the next section. Let’s say that the task of our machine learning black box is to receive as any input a picture file and identify if the object in that picture is a dog or a cat.
How can we teach or train this machine learning black box to identify such pictures automatically.
Well, if I will ask you to teach a small child.
If a picture is a dog or a cat then you probably take a nice book with many pictures of dogs and cats and present those examples to that little child.
This picture is a dog,
This picture is also a dog and this one is a cat. After showing that child some examples he or she will be able to identify a new picture of a dog or a cat they never saw before. Their brains created some patterns that help them to perform this task.
They learned. Now if we analog that to the world of machine learning we are actually doing the same thing.
We first need to teach the machine to identify some patterns in the data and then we will be able to use it to do something useful. This training or learning phase is expecting that someone will provide it with examples. In the same way, we show a little child a group of examples. To be more accurate, this is one type of machine learning called supervised learning which is very common. And there are additional options that will be discussed later in this training.