52
$\begingroup$

What is the difference between offline and online learning? Is it just a matter of learning over the entire dataset (offline) vs. learning incrementally (one instance at a time)? What are examples of algorithms used in both?

$\endgroup$
0

3 Answers 3

49
$\begingroup$

Online learning means that you are doing it as the data comes in. Offline means that you have a static dataset.

So, for online learning, you (typically) have more data, but you have time constraints. Another wrinkle that can affect online learning is that your concepts might change through time.

Let's say you want to build a classifier to recognize spam. You can acquire a large corpus of e-mail, label it, and train a classifier on it. This would be offline learning. Or, you can take all the e-mail coming into your system, and continuously update your classifier (labels may be a bit tricky). This would be online learning.

$\endgroup$
4
  • 10
    $\begingroup$ Yes, and a slight clarification is that online learning algorithms, at least as studied in Machine Learning, mostly make the assumption that your ability to store examples is very limited compared to the size of the data set. In the most limiting case, you only get to see one example at a time, and then you have to forget it after you've used it to update your classifier. $\endgroup$
    – Harlan
    Jul 29, 2010 at 14:14
  • 1
    $\begingroup$ Is if possible to train using offline learning then after deployment start training online? why does it have to be one or the other? $\endgroup$
    – haneulkim
    Apr 22, 2021 at 1:28
  • $\begingroup$ I second @haneulkim 's question. $\endgroup$
    – roy
    Aug 31, 2021 at 4:11
  • $\begingroup$ @haneulkim of course you may decide which way to train, or even use both. However, in the case of online training you need to make sure you avoid catastrophic forgetting because your model can't revisit previous data points, but keeps updating its weights on each new sample. If you manage to do that, your model does continuous learning. $\endgroup$
    – Benji
    Feb 8 at 15:02
20
$\begingroup$

The term "online" is overloaded, and therefore causes confusion in the domain of machine learning.

The opposite of "online" is batch learning. In batch learning, the learning algorithm updates its parameters after consuming the whole batch, whereas in online learning, the algorithm updates its parameters after learning from 1 training instance. Mini batch learning is the halfway point between batch learning on one end and online learning on the other extreme.

Also, "when" the data comes in, or whether it is capable of being stored or not, is orthogonal to online or batch learning.

Online learning is deemed to be slower to converge to a minima , when compared to batch learning. However, in cases where the entire dataset doesn't fit in memory, using online learning is an acceptable tradeoff.

$\endgroup$
3
  • $\begingroup$ I don't think this is true. What you describe is the optimization algorithm stochastic (or online) gradient descent that can be used for both online or offline problem settings. $\endgroup$
    – danijar
    Jun 9, 2016 at 18:02
  • $\begingroup$ I believe the "as data comes in" refers to online and offline algorithms en.wikipedia.org/wiki/Online_algorithm I feel that OPs defn for online learning clearly makes this distinction. Online Algos -> process as data comes in. Online learning -> update underlying model progressively during training. $\endgroup$
    – gokul_uf
    Apr 17, 2018 at 20:03
  • $\begingroup$ So the way we work with OpenAI gym and Andrej's popular code on Pong, is it offline or online learning? Because here, we are collecting batches of data to train the model but they are generated real-time. $\endgroup$ Jul 25, 2021 at 7:20
7
$\begingroup$

Online learning (also called incremental learning): we consider a single presentation of the examples. In this case, each example is used sequentially in a manner as prescribed by the learning algorithm, and then thrown away. The weight changes made at a given stage depend specifically only on the (current) example being presented and possibly on the current state of the model. It is the natural procedure for time varying rules where the examples might not be available at all at once.

Offline learning: the weight changes depend on the whole (training) dataset, defining a global cost function. The examples are used repeatedly until minimization of this cost function is achieved.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.