Incremental learning, or online learning, is a branch of machine learning concerned with processing incoming data from a data stream — continuously and in real time — possibly given little to no knowledge of the distribution of the predictor variables, the sample size, aspects of the prediction or objective function (including adequate tuning parameter values), or whether the observations have labeled.
Incremental learning algorithms are flexible, efficient, and adaptive. The following characteristics distinguish incremental learning from traditional machine learning.
An incremental model is fit to data quickly and efficiently, which means it can adapt, in real time, to changes or drifts in the data distribution.
Because observation labels can be missing when corresponding predictor data is available, the algorithm must be able to generate predictions from the latest version of the model quickly, and defer training the model.
Because little information might be known about the population before incremental learning starts, the algorithm can be run with a cold start. For example, for classification problems, the class names might not be known until after the model processes observations. In cases when enough information is known before learning begins (for example, good estimates of linear model coefficients) such information can be specified to provide the model with a warm start.
Because observations can arrive in a stream, the sample size is likely unknown and possibly large, which makes data storage inefficient or impossible. Therefore, the algorithm must process observations when they are available and before the system discards them. This incremental learning characteristic makes hyperparameter tuning difficult or impossible.
In traditional machine learning, a batch of labeled data is available to perform cross-validation to estimate the generalization error and tune hyperparameters, infer the predictor variable distribution, and to fit the model. However, the resulting model must be retrained from scratch if underlying distributions drift or the model degrades. Although cross-validation to tune hyperparameters is difficult to accomplish in an incremental learning environment, incremental learning methods are flexible because they can adapt to distribution drift in real time, with predictive accuracy approaching that of a traditionally trained model as the model trains more data.
Suppose an incremental model is prepared to generate predictions and for its predictive performance to be measured. Given incoming chunks of observations, an incremental learning scheme processes data in real time and in any of the following ways, but usually in the specified order:
Evaluate Model: Track the predictive performance of the model when true labels are available, either on the incoming data only, over a sliding window of observations, or over the entire history of the model used for incremental learning.
Detect Drift: Check for structural breaks or distribution drift, for example, determine whether the distribution of any predictor variable has sufficiently changed.
Train Model: Update the model by training it on the incoming observations, when true labels are available or when the current model has sufficiently degraded.
Generate Predictions: Predict labels from the latest model.
The procedure is a special case of incremental learning, in which all incoming chunks are treated as test (hold out) sets. The procedure is called interleaved test-then-train or prequential evaluation [1].
If insufficient information exists for an incremental model to generate predictions, or you do not want to track the predictive performance of the model because it has not been trained enough, you can include optional initial step to find adequate values for hyperparameters (estimation period) and an initial training period before model evaluation (metrics warm-up period).
As an example of an incremental learning problem, consider a smart thermostat that automatically sets a temperature given the ambient temperature, relative humidity, time of day, and other measurements, and can learn the user's indoor temperature preferences. Suppose the manufacturer prepared the device by embedding a known model that describes the average person's preferences given the measurements. After installation, the device collects data every minute, and adjusts the temperature to its presets. The thermostat adjusts the embedded model, or retrains itself, based on the user's actions or inactions with the device. This cycle can continue indefinitely. If the thermostat has limited disk space to store historical data, it needs to retrain itself in real time. If the manufacturer did not prepare the device with a known model, the device retrains itself more often.
Statistics and Machine Learning Toolbox™ functionalities enable you to implement incremental learning for binary classification or regression using a linear model. The entry point model object for binary classification is incrementalClassificationLinear
, and for regression, the entry point model object is incrementalRegressionLinear
.
Properties of the incremental learning model object specify:
Data characteristics, such as the number of predictor variables NumPredictors
and their first and second moments Mu
and Sigma
Linear model characteristics, such as the learner type Learner
, linear coefficients Beta
, and intercept Bias
Training options, such as the objective solver Solver
and solver-specific hyperparameters such as the ridge penalty Lambda
for standard and average stochastic gradient descent (SGD and ASGD)
Model performance evaluation characteristics and options, such as whether the model is warm IsWarm
, which performance metrics to track Metrics
, and the latest values of the performance metrics.
Unlike other machine learning model objects, you can create either model by directly calling the object and specifying property values of options using name-value pair argument syntax — you do not need to fit a model to data to create one. This feature is convenient when you have little or no information about the data or model before training it. Depending on your specifications, the software can enforce estimation and metrics warm up periods, during which incremental fitting functions infer data characteristics and then trains the model for performance evaluation. Also, by default, the software solves the objective function using the adaptive scale-invariant solver, which does not require tuning and is insensitive to the predictor variable scales [2].
Alternatively, you can convert a traditionally trained model to either model by using the incrementalLearner
function. Convertible models include support vector machines (SVM) for both problems and linear regression models, for example, incrementalLearner
converts a trained linear classification model of type ClassificationLinear
to an incrementalClassificationLinear
object. By default, the software considers converted models prepared for all aspects of incremental learning (converted models are warm). incrementalLearner
carries over options available for incremental learning from the traditionally trained model being converted, for example, if the objective solver of the traditionally trained model is SGD, incrementalLearner
sets the incremental learning solver to SGD.
The incremental learning model object specifies all aspects of the incremental learning algorithm, from training and model evaluation preparation through training and model evaluation. To implement incremental learning, you pass the configured incremental learning model to an incremental fitting or model evaluation function. Statistics and Machine Learning Toolbox incremental learning functions offer two workflows that are well suited for prequential learning. For simplicity, the following workflow descriptions assume that the model is prepared to evaluate the model performance (the estimation period is satisfied and the model is warm).
Flexible Workflow — When a data chunk is available:
Compute cumulative and window model performance metrics by passing the data and current model to the updateMetrics
function. The data is treated as test (hold out) data because the model has not been trained on it yet. updateMetrics
overwrites the model performance stored in the model with the new values.
Optionally detect distribution drift or whether the model has degraded.
Train the model by passing the incoming data chunk and current model to the fit
function. The fit
function uses the specified solver to fit the model to the incoming data chunk, and it overwrites the current coefficients and bias with the new estimates.
The flexible workflow enables you to perform custom model and data quality assessments before deciding whether to train the model. All steps are optional, but call updateMetrics
before fit
when you plan to call both functions.
Succinct Workflow — When a data chunk is available, supply the incoming chunk and a configured incremental model to the updateMetricsAndFit
function. updateMetricsAndFit
always calls updateMetrics
immediately followed by fit
. The succinct workflow enables you to implement incremental learning with prequential evaluation easily when you plan to track the model performance and train the model on all incoming data chunks.
Once you create an incremental model object and decide on which workflow to use, write a loop that implements incremental learning:
Read a chunk of observations from a data stream, when the chunk is available.
Implement the flexible or succinct workflow. To perform incremental learning properly, overwrite the input model with the output model. For example:
% Flexible workflow Mdl = updateMetrics(Mdl,X,Y); % Insert optional code Mdl = fit(Mdl,X,Y); % Succinct workflow Mdl = updateMetrics(Mdl,X,Y);
loss
function. loss
returns the scalar loss; it does not adjust the model.Model configurations determine whether incremental learning functions train or evaluate model performance during each iteration; configurations can change as the functions process data. For more details, see Incremental Learning Periods.
Optionally:
Given incoming chunks of data, the actions incremental learning functions perform depend on the current configuration or state of the model. This figure shows the periods (consecutive groups of observations), during which incremental learning functions perform particular actions.
This table describes the actions incremental learning functions perform during each period.
Period | Associated Model Properties | Size (Number of Observations) | Actions |
---|---|---|---|
Estimation | EstimationPeriod | n1 | When required, fitting functions choose values for hyperparameters based on estimation period observations. Actions include the following:
|
Metrics Warm-up | MetricsWarmupPeriod | n2 – n1 | When property
|
Performance Evaluation j | Metrics and MetricsWindowSize | m |
|
fit
| loss
| predict
| updateMetrics
| updateMetricsAndFit