Machine learning is a "buzzword" that can be found all over the Internet and other computer science platforms these days. Let me ask you a question, does being a buzzword give all the power in the universe to a single concept? If you ask me, I would say no. I think we can all agree on the fact that everything has its limitations and should not be extended beyond them for the best use cases.
Now before we discuss the types of machine learning problems, I would like to talk about the scenario where applying the machine learning algorithms is not suitable. If the problem you are trying to solve is a conventional one and can be solved using the simple hand-coded instruction, then why resort to the machine learning algorithms? As a programmer, the main focus should be to find the most efficient solution to a problem. There can be numerous ways to solve a problem, but only the most efficient one is finalized and deployed. Machine learning projects require a certain workflow and take an appreciable amount of effort as well, so it does not make any sense using the machine learning algorithms where a simple hand-coded instruction can work.
Types of Machine Learning Problems
1. Supervised Learning
In Supervised Learning, the programmer has access to data and labels(which correspond to the final results or conclusions). In this, the machine learning algorithm tries to use the data to predict its corresponding label. If it guesses the label wrong, the algorithm tries again as an act of correction and improvement. A supervised learning algorithm keeps trying in an attempt to get better at predicting the labels.
Supervised Learning can further be divided into two categories:
(i) Classification
A classification problem requires the algorithm to classify an entity based on certain attributes. Classification is binary if there are only two classes which generally consist of yes or no type of classification and it is multi-class if there exist more than two types of classes. A good example can be an algorithm that classifies whether a given patient with certain attributes regarding their cardiovascular health has heart disease or not.
(ii) Regression
A regression problem involves predicting a quantity(more specifically a number). A label can go up or down and can take any value based on the inputs. An example of a regression problem can be trying to predict the selling price of a car based on certain attributes like the interior design, the specification of alloys used, the capacity of the engine, the installed music system, and much more.
2. Unsupervised Learning
In Unsupervised Learning, the programmer has access to the data only. There are no labels, to begin with. The task here is to find the commonalities in the data and then cluster the data into certain groups. This process is also known as clustering. There are no labels, the machine learning algorithm finds patterns in the data itself and helps to make clusters of information that can be referred to as a group. A good example can be the real-life implementation of the music/show recommendations you get. Based on the clicks you make, you can be clustered into a certain group and then get recommendations.
3. Transfer Learning
Transfer Learning leverages what one machine learning model has learned in another machine learning. This can be understood with the help of an example. Let's say you want to train your model to predict a dog's breed based on an image. You can start by finding a machine learning model that can predict some other thing in an image let's say cars. You can fine-tune the model in order to suit your needs for the project. Although you can make your model from scratch as well, training a model from scratch requires a lot of computing power and time and plus if something is available on the Internet and can prove to be useful then why not use it and save yourself some effort and time.
4. Reinforcement Learning
Reinforcement learning involves having a computer perform some actions within a defined space and rewarding it for doing well and punishing it for doing poorly. We can't physically punish or reward the computer, but what we can do is maintain a score that gets an increment when the performance is good and as expected and gets a decrement when the performance is poor. The goal will be to attain a predefined good score. A good example of transfer learning can be to teach a computer how to play chess. Reinforcement learning is not as evolved as other types of machine learning problems and would probably find more real-world applications in the near future.
Don't forget to leave a like if you find it informative enough!