Machine Learning and Data Science are some of the most exciting areas in which people are attracted to make a career. As per several industrial surveys, the demand for jobs in these sectors is at its peak. Companies across every industry are collecting data in some form. For example, a vehicle company collects data about how their vehicle performs on the road and is devoted to making their customers' experience “the best”. At the same time, a milk farming company collects data of their sale and analyzes when their firm needs an extra amount of milk to serve their customers better.
Source: Eric Griffith blog
Similarly, every company talks about collecting data, analyzing it, extracting meaning, and finally building technologies around it. Each of these stages creates job opportunities like Data Analyst, Data Scientist, Machine Learning Engineer, and many more. Through this article, we will start our career-focused journey towards one of these emerging technologies: Machine Learning. Here, we will explore the most fundamental and first ideas about this technology.
So, let’s begin our journey towards knowing this beautiful technology and find the answers to the above questions.
Have we ever thought about how our brain works?
Let’s start from here itself!
Indeed, the brain is the most complex part of our body, and the knowledge about its working principle is still big research underway. But to understand it, let’s take one simplest example. Suppose we want to catch the ball coming towards us. What would be our first reaction? We will use our hands to catch it, right?
Let’s correlate this scenario in the format of input and output data. Our eyes sensed the incoming ball and sent the input signals to our brain. Brain received these signals, analyzed them, and finally generated the output reaction of moving our hands towards the coming ball to catch it.
To explain the same phenomena in biological terms, we can say that brain cells have perceptrons/receivers, named Dendrites, which receive the electrical signals as the input data from our sensory organs (Nose, Eyes, Skin, etc.). They analyze and respond to those signals by releasing reaction signals through the Axon terminals as the output data.
But would you be able to catch it in your childhood days?
In our childhood days, we might have faced difficulty in catching the balls. More and more, we practiced; our brains perfectly learned how to catch a ball. Similarly, there will be different sets of signals for any other task. The brain gives a matching set of output signals through axons when any known or similar set of inputs is received from dendrites. Saying more explicitly, it learns the mapping function from the input set to the output set.
This learning of mapping function through several experiences is known as intelligence in living things. But, what if some non-living things started doing the same?
Can we provide this same capability to our computers anyway?
That’s where this buzzword “Machine Learning” comes into the picture. Let’s move towards understanding it in detail.
We saw that human brains have a unique characteristic of learning from different experiences and evolving to do the best for similar experiences. Continuing the same example of catching the ball, suppose we want to make a Robot to catch the ball by providing him a human intelligence. Can you guess “how” we can do that?
We can write a function-based computer program that will take the ball's location as the input parameter and give us the output position to place our robot to catch the ball. This method can also be called traditional programming.
if ball position is X1: place robot at Y1 elif ball position is X2: place robot at Y2 elif ball position is X3: place robot at Y3 . . . So on....
We recorded some data instances for the ball positions and corresponding robot positions (placed manually) to catch the ball perfectly.
(X1, Y1), (X2, Y2), (X3, Y3), ..., (Xn, Yn)
Later, we asked our robot to predict its possible positions for the recorded ball positions one after the other. Let’s say we asked our robot to guess where it should be present to catch the ball, given the ball position is X1. Initially, the robot made very wrong guesses for its positions. Let’s say it guessed Y1' and the difference between Y1 and Y1' was very high.
But our robot did not lose hope. It learned from its mistakes and corrected the predictions for every recorded ball position (X1, X2, …, Xn). Continuously trying for all these instances, it achieved the intelligence and started predicting its correct or near-correct positions (Y1', Y2', …, Yn’).
This type of Computer Intelligence gained from learning via different recorded experiences is known as the Machine Learning.
Once this learning has been done, it can predict the robot's position for any similar ball positions that were not recorded earlier. Let’s say for Xn+1, it will be able to give some output Yn+1', and we will decide the success by outcome whether it caught the ball or not.
Let’s say our robot was nothing but just a tiny computer. Suppose we try to represent the process of traditional programming using a block diagram. In that case, we provide a program to our computer along with the input data of the position of the ball. Our computers executed that program for that input data and provided the corresponding robot position as output.
But in Machine Learning, we provided our computer some recorded experiences in the form of Ball position as input data and corresponding robot position as output data. Our computer somehow learns a way to convert Input data into output data. Or we can also say it discovered the program that we had to write explicitly in the traditional programming section. Isn’t it fascinating?
Once our computer learns this program, it will perform similar functionality as traditional programming for any newer ball position (we don’t know the corresponding robot position for this ball position). It will take the newer ball position as the input data and use the learned program to calculate the corresponding robot position. That’s Machine Learning for you.
Before moving forward, let’s define “Machine learning” formally.
Did you notice something similar between these two definitions?
In machine learning, we are not writing programs/functions. Instead, it is learning by itself based on the historical data, and that’s the core reason why both the definitions include the term “without explicit programming”.
Here computer takes Data and Output as its input parameters and tries to produce the best suitable function that maps Data to Outputs. The machine learns a mapping function that maps the input data to the output data using existing experiences (Similar to the brain’s functioning).
As true learners, we encourage readers to ask themselves just one question,
We already had traditional programming using which we could have written thousands of lines of code. Then why do we need Machine Learning in such a scenario? In the earlier example of ball catching robot, what if we cover all the cases of robot positions using if/else conditions, and the robot can catch balls perfectly. Then why ML? Think for a while!
To answer this, let’s get back to our previous example of ball catching robot. The positions that a robot can take are finite. This means it can be anywhere inside the defined arena where we perform this circus of robots catching the ball. So using if/else conditions, we could easily cover all the scenarios.
But what if we say that we have to code the self-driving car on the real road?
Will it be possible for someone to cover all the cases using traditional programming? Obviously not! The possibilities of scenarios can be infinite there. That’s where we need Machine Learning that can learn automatically for the different scenarios and modify the experience based on several new adventures.
Source: National Geographic
Source: Qt Documentation
Source: Netcore solutions
There can be many more such applications around us. If you can find some, please post in the comment section.
If we have to define the technology application term “Automation”, we could say, when human involvement is minimized. We generally take the help of machines by programming them.
So if a computer program is automation, then Machine Learning is automating the process of automation.
A breakthrough in machine learning would be worth ten Microsofts.
— Bill Gates, Former Chairman, Microsoft
Question 1: Why did someone term it “Machine Learning”?
Question 2: What makes traditional programs different from ML algorithms?
Question 3: How can ML algorithms help in cyber-security?
Question 4: Why can some applications not be hand programmed?
In this article, we learned about machine learning and traditional programming. We understood how machine learning mimics human brains with an exciting example of a robot catching the ball. We hope you enjoyed the article.
If you have any queries/doubts/feedback/other ideas, please comment below or write us at firstname.lastname@example.org.
In this blog, we will try to make our computers ready for machine learning practicals. There are various ways to make computer systems AI-enabled, but in this blog, we will try the most preferred and easy-to-use method, i.e., Python3 with Sublime Text 3. Overview of the blog: Installation Of Python3 on Windows, Linux & Mac, Installation of Sublime Text 3 on Windows, Linux & Mac, Installation of pip/pip3, Installation of Numpy, Scipy, Pandas, Installation of Machine Learning Framework, Installation of Deep-learning Framework, Installation of a Visualisation tool.
Subscribe to get free weekly content on data structure and algorithms, machine learning, system design, oops and math. enjoy learning!