So, after seeing all the ads on “Machine Learning Workshops”, “Machine Learning Boot-camps”…and many many more, you finally got intrigued and decided to make hay while the sun is shining.
Well, my friend, you have come to the right place. In the next 10 mins, you’ll have all your answers and your curiosity would be 100x. I would be discussing machine learning, its types, applications, and limitations. You can also jump to specific sections if you would want to.
What is Machine Learning?
Suppose for a moment, I programmed a toy robot car to traverse the following path:
- Move Straight Ahead
- On Finding an intersection Turn Left and Move Straight
- When you find a right turn, Turn Right
Now, the car starts from a point and moves straight ahead. As soon as the car takes a left turn, it finds wild dogs that shatter the car apart 😱. Suppose, I bring back the car and start again. Do you think the car would not take the left turn and instead find another way from the intersection??
Exactly! No, it won’t! It would again go the same path to get shattered because it has been programmed to do so. But instead of the car, if you were given the same instructions. You would probably behave something like this…(assuming you are old enough to understand what wild dogs could do to you).
This is the whole idea behind building machine learning algorithms – to build machines that learn.
In a conventional system, we program the machines to do some tasks. But in Machine Learning, the system builds a mathematical model around data or in ML terms – “training data” to make decisions without being programmed to do so.
Some of the amazing examples of machine learning would include email filtering and credit card fraud detection etc. (which would take a huge codebase, if possible with conventionally programmed systems).
Machine Learning is actually a subset of Artificial Intelligence (Yes! They are different), which we will be discussing in further blogs.
📌 I have used a very easy example, so everyone (programmer or a non-programmer.) can understand the basic concept. Also, If you believe “Machine Learning is only for Programmers“. I’ll soon be writing a blog debunking this misconception.
The Concept Behind Machine Learning
Now if you have a question regarding “Why would someone actually build an ML model?“. That too, when we have conventional systems doing the job for us?” and I can assure you that “To make machines smarter” is not the answer.
The answer lies in the basics of why WE learn! It’s not to become smart or intelligent. Those are some of the implications we get by learning things but the basic idea is that of Generalization. We learn so that we can generalize from our experience and the same is the idea for machines.
For machines, when they generalize on the experiences from the training data, they perform almost accurately (theoretically) on any new or unseen examples/tasks. The system has to build a general model from the training data that makes it smart enough to give accurate predictions on the new data.
Am I late to Machine Learning?
I have seen so many people have this doubt, that I had to include it here! See, we have to understand a fact that no technology should be learned just because everyone is hyping about it. Rather if you are intrigued or it makes you wander in possibilities, IT IS WORTH LEARNING!!
Because real innovation starts when you start combining things. And to do that, you have to have an in-depth understanding of the technology.
And for those who don’t know, Arthur Samuel coined the term “Machine Learning” in 1959.
Yes! People have been researching it since 1959. So! You probably aren’t that late or ARE YOU? 😜
Prerequisites for Machine Learning
You don’t have to worry about having extraordinary skills in the topics mentioned below. But you have to have a basic understanding of the topics. From my current experience and problems I have encountered, I feel these are mostly the topics you should know before getting into machine learning :
- Linear Equations
- Graphs of Functions
- Some kind of programming experience (preferably Python/R). I know, I said even non-programmers can learn it and I stand by it. There are many AutoML platforms that one can learn which require almost no coding experience. But obviously to build core level products/software you need some kind of coding experience.
📌 Please note that i am not discouraging anyone to have an in-depth understanding of the topics. Rather, it is always a brownie point and helps in better understanding of the concept.
Types of Machine Learning Algorithms
Depending on the data and training approach used, machine learning is divided into three broad categories:
- Supervised Learning
- Unsupervised Learning
- Reinforcement Learning
There are some more approaches as well which are a part of machine learning but basically, do not fit in with the above categories like Recommender systems, etc.
Now, let us get an overview on each of the categories:
1. Supervised Learning
You can easily remember these categories / concepts if you simply understand and connect the individual meaning of the words.
Supervised – observe and direct the execution of a task or activity.
Learning – the acquisition of knowledge or skills through study, experience, or being taught.
They say it all. When a system (under observation) is given the example inputs and the corresponding output, and then directed to learn from the experience of that data, to come up with a mathematical model which portrays the relationship between input and output, we term it as Supervised Learning.
2. Unsupervised Learning
This one is actually quite similar to supervised learning, you just got to remove the supervision part. Okay! Almost similar?
So basically, when a system is given only the example inputs and left around to play with it to find hidden patterns or engineer features out of the data, we term it as Unsupervised Learning.
3. Reinforcement Learning
I still remember when I first started playing Mario, I used to suck at it. At some instant, I was falling into a hole and another instant a plant was eating me alive. But eventually, I got better at it (I mean I got PRO at it 😜). I am sure you must have had the same sort of experience with games or anything for that matter.
We get better with experience because we reinforce our learnings from our mistakes. We repeat the tasks with our mistakes in the mind until we either achieve our goal or give up.
Reinforcement learning is based on the same concept. The system is given a dynamic environment and a goal to achieve. Every time the system makes any action, it is given feedback in terms of a reward or penalty. The system tries to perform such actions that maximize the reward.
I have explained reinforcement learning in-depth here.
As I have already mentioned earlier, there are several other approaches that researchers have come up within machine learning. If you want to explore these machine learning approaches (which very few people talk about), head over to this blog.
Applications of Machine Learning
There is an extensive list of industries or companies which are using machine learning to grow their business. The list starts from simple applications like Handwriting recognition, Online advertising to complex applications like Anatomy, and DNA sequence classification. It can be used anywhere and everywhere, where we have a data lake. And we want to get a deeper understanding of the data to utilize it to solve a business problem.
Couple of examples from well known companies are:
- Netflix: In 2006, Netflix held the first “Netflix Prize” competition to build a recommender system which could outperform their recommender system by at least 10%. A joint team made up of researchers from AT&T Labs-Research in collaboration with the teams Big Chaos and Pragmatic Theory built an ensemble model to win the Grand Prize in 2009 for $1 million.
- Amazon: They use machine learning for many tasks like recommending products and user segmentation.
So, applications are many and the sky is the limit. Also, as this is still a research subject there are more and more findings that researchers dig out almost regularly. More of a reason for you to subscribe to our blog 😁
Limitations to Machine Learning
As it is rightly said that “Nothing is perfect in this world, everything has its pros and cons…”, so is the case with machine learning. Although it has turned out to be a game-changer in many fields, it has often failed to deliver the “expected” results.
There may be different reasons, some of which may include:
- Lack of suitable data
- Unable to access data
- Data bias
- Privacy problems
- Wrong tools and people
- Unrealistic expectations
- Evaluation Problems etc…
For example, In 2018, a pedestrian was killed by collision from a Uber’s self-driving car as it failed to detect the pedestrian. I do understand that what happened was a real disaster and really really sad. But failures give us the strength and awareness to do things the right way. And it should never be the reason to stop learning and building.
You can test your conceptual understanding of topics in this blog by attempting the below quiz.
Machine Learning Introduction Quiz
I hope you would have got all the answers to your questions. But in case you still have any doubts you can always exploit the comments section.
I think the most important step is to take action. And you have already won half the battle by completing this blog.
Next, I would suggest, you go through Supervised Learning and Unsupervised Learning. And if you already explored them, jump on to Linear Regression where I have written all about the most basic supervised machine learning algorithm and we code it from SCRATCH! (in python). I also cover an amazing project which will give a more hands-on feel.
🙏🏼 Until next time! Keep Learning and Keep Hustling!