To update the model after forming \(\mathcal {D}^{t}_{nov}\)  at time \(t\) , we perform experience replay [1]} by relying on a replay memory buffer that stores a subset of the observed data after learning each task and before starting learning a subsequent task. Let \(\mathcal {D}^{t}_{buf}\)  denote the data points stored in the memory buffer (see Figure REF ). At each batch of optimization, we include samples from both \(\mathcal {D}^{t}_{nov}\)  and \(\mathcal {D}^{t}_{buf}\)  in the data batch to update the model. As a result, the model learns to identify novel attacks while retaining the learned knowledge about the past tasks. The only remaining challenge in our framework is a strategy for selecting the samples to be stored in the buffer.
