Blog: Seriously, What is Machine Learning? and When do you need it?
More often than not, people who ask what is Machine Learning and how to get into it get stricken by a template answer: GO LEARN ZILLION FIELDS IN MATHEMATICS FIRST without event getting the chance to understand machine learning beyond “Oh boy, it’s a machine that is learning to make predictions”.
disclaimer: mathematics is important but it’s not the first thing.
Surely mathematics is important, but if someone told me when I was 12 years old trying to learn C++ that I should quit and go learn linear algebra in order to become a programmer, probably I wouldn’t have even got the chance to know if programming is something I can learn professionally later in life.
Ever since we invented computers, it was based on a certain style of writing computer programs which is:
- Understanding the problem that we aim to write a program to solve.
- Build the logical structure of the solution and code it.
- Feed data to the program.
- Get desired output based on hard-coded logic.
This approach works very well up until a certain type of problems comes into play.
Look, programming is cool but in order to write a program that solves the problems we humans can solve but cannot describe exactly how we solve it, programming fails.
Experienced dermatologists can detect skin cancer, but they cannot describe exactly how they detect it, it’s just beyond their brain capabilities. it takes years of a practitioner to learn how to do it more accurately.
A car driver can seamlessly drive in a crowd or on a highway, but when you try to learn from them, all they say is that you should not care about surrounding people and only focus on your lane and other nonsense that you cannot describe to a computer.
To write a computer program that solves the problems we cannot describe we had to reverse how computer programs are being written.
So typically the machine learning process is as follows:
- Collecting the data about problems we can solve but cannot describe (This patient with this picture has skin cancer, the other one don’t)
- Reviewing and Cleaning the underlying data and making sure it aligns with our observations.
- Feed the data and the answers a program we call “Machine Learning Model”
- Get the desired computer program that solves the problem with a certain accuracy level.
So, we went from writing the logical structure of the program, to actually making the computer write the program for us because it’s way too complex for us.
When to do Machine Learning?
I think the answer is contained in the upper sections, but let me put it into clear words.
If you do have data about events that you cannot understand how it happened, machine learning is for you.
If you want to make predictions about future events using existing data, machine learning is for you.
But keep in mind, if doing machine learning is the objective, then probably machine learning isn’t the best thing for your problem. it has to come when the problem requires it not when it sounds sexy.
Oh, I don’t know, stay curious.