This is the common most type of machine learning. Most ML problems that we encounter falls into this category.
As the name implies, a supervised learning algorithm is trained with input data along with some form of guidance that we can call labels.
In other words, a supervised learning algorithm maps the input data (or X in many textbooks) to output labels (y).
Labels are also known as targets and they acts as a description of the input data.
In general, there are 2 main kinds of supervised learning problems that are:
◆Classification: where the task is to identify a given category from a numerous categories or simply make choice between a number of categories.
Example of a classification problem: To identify if the incoming email is either spam or not based on the email contents.
◆Regression: where the goal is to predict a continuous value of something.
An example for this regression task is to predict the price of used car given its features such as brand, number of doors, number of sits, safety level, maintenance cost, etc...
Example of supervised learning algorithms:
◆Linear/logistic regression
◆Decision trees
◆Random forests
◆K-Nearest Neighbors(KNN)
◆Support vector machines(SVM) and
◆Neural networks (which can also be unsupervised).
With that said, there are other advanced tasks that don't directly fall into supervised learning, but they actually are.
Here are some:
◆Image captioning where the goal is to predict the caption of given an image.
◆Object detection where the goal is to recognize the object in image and draw the bounding box around it.
◆Image segmentation where the goal is to group the pixels that make up a particular objects in the image.
Some of those tasks can involves both classification and regression.
Take an example for object detection: it involves classification(recognizing the object among many other objects) and regression(predicting the coordinates of the objects in an image to make a bounding box).
2. Unsupervised learning
Supervised learning algorithms are trained with data and labels. Conversely, unsupervised learning algorithms are trained on unlabelled data.
Unsupervised learning algorithms are primarily used for clustering(such as K-Means), dimension reduction and data visualization(such as PCA, and t-SNE)
PCA: Principal Component Analysis
t-SNE: t-Distributed Stochastic Neighbor Embedding
3. Semi-supervised learning
Semi-supervised learning falls between supervised and unsupervised learning.
In semi-supervised learning, a small portion of training data is labelled while the rest of data points are not labelled.
Data labelling one of the most challenging things in machine learning. It's time consuming and expensive.
Semi-supervised learning reduce that bottleneck.
Semi-supervised learning is most notable in problems that involve working with massive datasets like internet image searches, image and audio recognition, and webpages classification.
4. Self-supervised learning
Self-supervised learning is one of the most exciting types of machine learning that is most applicable in computer vision and robotics.
While semi-supervised learning uses small portion of labelled data, self-supervised learning uses entire unlabelled data and it does not require manual annotations, removing the need of human in the process.
Quoting a great self supervised learning paper:
"Producing a dataset with good labels is expensive, while unlabeled data is being generated all the time. The motivation of self- supervised learning is to make use of the large amount of unlabeled data....
...The main idea of self-supervised learning is to generate the labels from unlabeled data, according to the structure or characteristics of the data itself, and then train on this unsupervised data in a supervised manner."
And here is a great quote about self-supervised learning by @ylecun:
"If intelligence is a cake, the bulk of the cake is self-supervised learning, the icing on the cake is supervised learning, and the cherry on the cake is reinforcement learning (RL).”
If you would like to learn more about self supervised learning, check out this awesome repo:
Reinforcement learning is a special type of machine learning that is most applicable in robotics.
In reinforcement learning, a learning system called agent can perceive the environment, perform some actions and get rewarded or penalized depending on the how it is performing.
The agent learns the best strategy (or policy) necessary for getting the most reward by itself.
For most us, we may not get the most of reinforcement learning due to limited resources and applicability, but it's a powerful thing for those can afford it.
Reinforcement learning holds some of the most historical moments about AI.
In 2016, @DeepMind AlphaGo a reinforcement learning system won Lee Sedol in Google DeepMind Challenge Match.
Go is a complex board game that requires intuition, creative and strategic thinking. And Lee was one of the best world class Go players.
The machine learning research community is very and very vibrant.
Here is what I mean...🧵🧵
In 1958, Frank Rosenblatt invented a perceptron, a very simple algorithm that would later turn out to be the core and origin of to days intelligent machines.
In essence, the perceptron is a simple binary classifier that can determine whether or not a given input belongs to a specific class.