Incremental Learning
Incremental learning, or online learning, involves processing incoming data from a data stream, possibly given little to no knowledge of the distribution of the predictor variables, aspects of the objective function, and whether the observations are labeled. Incremental learning is often used in on-device learning applications, where models are trained on low-power edge devices using locally generated streaming data. Incremental learning problems contrast with traditional machine learning methods, in which enough labeled data is available to fit to a model, perform cross-validation to tune hyperparameters, and infer the predictor distribution characteristics.
Incremental learning requires a configured incremental model. You can create
and configure most incremental models directly by calling an object, for example
incrementalRegressionLinear, or you can convert a supported,
traditionally trained model to an incremental learner by using
incrementalLearner. After configuring a model and
setting up a data stream, you can fit the incremental model to the incoming
chunks of data, track the predictive performance of the model, or perform both
actions simultaneously.
For more details, see Incremental Learning Overview.
Statistics and Machine Learning Toolbox™ also provides functions that allow you to:
Normalize streaming data incrementally, by creating a normalizer model using
incrementalNormalizer, and updating the model using the incrementalfitfunction. Usefitortransformto return normalized data.Compute the principal component coefficients and variances of streaming data incrementally, by creating a principal component analysis (PCA) model using
incrementalPCA, and updating the model using the incrementalfitfunction. Usefitortransformto return principal component scores.Monitor for drift incrementally in concept data, such as regression loss, by creating a drift detector using
incrementalConceptDriftDetector. After setting up a data stream, update the drift detector and check for any drift usingdetectdrift.
For more information, see the reference pages.
Blocks
| IncrementalRegressionLinear Predict | Predict responses using incremental linear regression model (Since R2023b) |
| IncrementalRegressionLinear Fit | Fit incremental linear regression model (Since R2023b) |
| IncrementalRegressionKernel Fit | Fit incremental kernel regression model (Since R2024b) |
| IncrementalRegressionKernel Predict | Predict responses using incremental kernel regression model (Since R2024b) |
| Detect Drift | Update drift detector states and drift status with new data (Since R2024b) |
| Update Metrics | Update performance metrics in incremental learning model given new data (Since R2023b) |
Functions
Objects
Topics
- Incremental Learning Overview
Discover fundamental concepts about incremental learning, including incremental learning objects, functions, and workflows.
- Configure Incremental Learning Model
Prepare an incremental learning model for incremental performance evaluation and training on a data stream.
- Implement Incremental Learning for Regression Using Succinct Workflow
Use the succinct workflow to implement incremental learning for linear regression with prequential evaluation.
- Implement Incremental Learning for Regression Using Flexible Workflow
Use a flexible workflow to implement incremental learning for linear regression with prequential evaluation.
- Initialize Incremental Learning Model from SVM Regression Model Trained in Regression Learner
Train a linear SVM regression model using the Regression Learner app, and then initialize an incremental model for regression using the estimated coefficients.