Layman's Introduction to Machine Learning
Tags: beginners, machinelearning
Published: 2021-08-03 05:01:01

"**Machine Learning**" when first heard, sounds very fancy. But is actually more subtle when it comes to understanding the concept.

Well for most of the people, the first impression that pops up in head when they hear about machine learning is one, lots of complicated math problems & two lots of code, and then they just drop the topic then and there.

So, this will be your layman's introduction to Machine Learning. I will try to answer your "What is it?", "How does it work?", & "Why to use it?"  in the simplest and shortest way possible.


## What is it?
In order to understand what is `Machine Learning`, let's take a moment to understand what is **`Traditional Programming`**.

> Traditional Programming refers to any manually created program that uses input data and runs on a computer to produce the output.

Meaning, in Traditional Programming we write some instructions/rules(code) that takes a certain input from the user, processes it and give a certain output. This process can be represented like this...

![traditional.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1623822767760/IZxgANXUn.png)

Now, if compare traditional programming with Machine Learning, it will look something like this...

![ml.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1623823489272/taWbI0_wN.png)

Putting it in words, we provide our machine with some inputs and sample outputs, then you let the machine figure out the rules by itself. Makes sense!?

Now to give you a definition of Machine Learning, it would go something like this...

> Arthur Samuel(1959): "Machine Learning is the field of study that gives computers the ability to learn without being explicitly programmed."

I hope this definition makes sense now. But how does the Machine figure out the rules by itself !? Let's keep that as a topic for next time. For now, consider it as Magic 😉


## How does it work?
Now that we know what is Machine Learning, and how it is different from the Traditional Programming, let's see how it works!

Machine Learning works on a core principle of working with numbers, and finding different **patterns** within those numbers. In order to find these patterns, various `machine learning algorithms` are used. The only job of these algorithms is to find underlying patterns from the given set of input and predict the output within an acceptable range.

Linear Regression, Logistic Regression, Decision Tree etc. are examples of a few machine learning algorithms. Choosing the right algorithm for you machine learning model depends on the type of problem you want to solve.

In short, Machine learning works on various algorithms. Those algorithms help in finding the underlying patterns in the given data. Those patterns help in predicting the output. And the algorithm you choose depends on the type of problem you are solving.

## Why to use it?
The one thing to understand here is that machine learning is **NOT** a necessity, but a **FEATURE**. Traditional Programming is also referred to as `software 1.0`, whereas Machine Learning as `software 2.0`. *Software 1.0 can exists without software 2.0*.
And this exactly what is written in the [Google's Handbook for Machine Learning](https://developers.google.com/machine-learning/guides/rules-of-ml).

> Rule #1: Don’t be afraid to launch a product without machine learning

The first priority while building any software product is giving to the functioning of the software. Once the software is up and running machine learning can be applied to make that software smarter. Smarter in the sense of not needing to be explicitly told what to do. Help it figure out the things by itself.

Some applications of machine learning are self driving cars, image and speech recognition, sales prediction etc. Now let's look at self driving cars, and try to understand how machine learning plays it's parts in the process.

Say you want to build a self driving car, then your first order in business is to make sure that your system is able to control all the parts and mechanics of your car. It is able to accelerate and decelerate when needed, make turns, turn on blinkers etc. Now making all this possible you will have to write hundreds of thousands of lines of code, including all the traffic rules and also instructions like if there's a person or object lying on the road stop the car, slow down while taking turns, follow traffic signals, maintain lane and such 1000's more, and yet there's a greater chance you might miss some of them. Now if you were designing a car that runs in your house's driveway, this would be ideal. But what if you want it to drive it in your locality, or your city, you will have to write a much bigger program, and whilst you finish coding all that stuff, there'll be cars flying around you 😅

Here comes the role of Machine Learning. Now do we use our machine learning model to code for us? or do we teach it how to adopt to it's surroundings and act accordingly?

Obviously the Second option, If we create a model and feed it with tons of data of what to do when a person is walking on the road, how to follow a stop sign, a signal etc. we won't require to hard code everything. It will take the input, learning from it and update itself. This eliminates the need of manually defining all the rules, but instead let the machine do it's job and all that is left for us is to supervise and analyze the results. And who doesn't love supervising someone 🤭

That's it for now. I hope it was easy to understand. If you liked my blog please make sure to share it with your friends. You can follow me on [twitter](https://twitter.com/pritkalariya) for more updates. Until then, keep coding 👨‍💻


Thank you 😊