The definitions for these two appear to be very similar, and frankly, I've been only using the term "active learning" the past couple of years. What is the actual difference between the two? Is one a subset of the other?
2 Answers
Active learning (AL) is a weakly supervised learning (WSL) technique where you can have both labelled and unlabelled data [1]. The main idea behind AL is that the learner (or learning algorithm) can query an "oracle" (e.g. a human) to label some unlabelled instances. AL is similar to semi-supervised learning (SSL), which is also a WSL technique, given that both deal with unlabelled and labeled data, but do that differently (i.e. SSL does not use an oracle).
Online learning are machine learning techniques that update the models as new data is collected or arrives sequentially, as opposed to batch learning (or offline learning), where you first collect a dataset of multiple instances and then you train a model once (although you can later update it when you update your dataset). Batch learning is currently the common way of training machine learning models, given that it avoids problems like the known catastrophic interference (aka catastrophic forgetting) problem, which can occur if you learn online. For example, neural networks are known to face this problem when learning online. There are incremental learning (aka lifelong learning) algorithms that attempt to address this catastrophic interference problem.
-
$\begingroup$ Ah, I had misunderstood what online learning was previously. If you are training on streaming data, is online learning the typical approach? $\endgroup$– DavidAug 24, 2020 at 20:48
-
$\begingroup$ @David Yes, I would say that you need online learning if you want to learn from a stream of data. Note that you should probably look into incremental learning algorithms, which are algorithms that somehow try to avoid the problems that naive online learning algorithms can incur. $\endgroup$– nbroAug 24, 2020 at 20:50
-
$\begingroup$ What do you think about online algorithms compared to boosting algorithms? It seems that boosting algorithms can also be used with streaming data as well. $\endgroup$– DavidAug 24, 2020 at 20:52
-
$\begingroup$ @David To be honest, I am not familiar with boosting algorithms, though I've heard of them many times. I just didn't yet have the opportunity to learn about them. I suggest that you ask a question on the site. Maybe someone can give you a more precise answer. Try to ask a specific question. $\endgroup$– nbroAug 24, 2020 at 20:54
As it is referred in the survey paper "Active Learning Literature Survey":
The key idea behind active learning is that a machine learning algorithm can achieve greater accuracy with fewer training labels if it is allowed to choose the data from which it learns. An active learner may pose queries, usually in the form of unlabeled data instances to be labeled by an oracle (e.g., a human annotator). Active learning is well-motivated in many modern machine learning problems, where unlabeled data may be abundant or easily obtained, but labels are difficult, time-consuming, or expensive to obtain.
Online learning uses data which become available in a sequential order. It's main goal is to update the best predictor for future data at each step.
So, online learning is a more general method of machine learning that is opposed to offline learning, or batch learning, where the whole dataset has already been generated and used for training / updating the model's parameters. Moreover, a common technique for training Machine Learning models is to first perform online learning, in order to acquire an adequate data size, and then perform offline learning on the whole dataset and finaly compare the results generated by the two learning processes.
On the other hand, active learning can be performed both with online learning[1] and offline learning, in order to reduce manual annotation effort during the annotation of training data for machine learning classifiers. That is, independently of how data have been generated and with what order, active learning should make the least queries, to an Oracle, needed for annotation of a subset of the data.