In addition to the standard ESN model, there are variations that allow for deeper customization of the underlying model. Currently, there are two available variations: Default and Hybrid. These variations provide different ways to configure the ESN. Here's the documentation for the variations:
The Default struct specifies the use of the standard model in Echo State Networks (ESNs). It requires no parameters and is used when no specific variations or customizations of the ESN model are needed. This struct is ideal for straightforward applications where the default ESN settings are sufficient.
Constructs a Hybrid variation of Echo State Networks (ESNs) integrating a knowledge-based model (prior_model) with ESNs for advanced training and prediction in chaotic systems.
Parameters
prior_model: A knowledge-based model function for integration with ESNs.
u0: Initial conditions for the model.
tspan: Time span as a tuple, indicating the duration for model operation.
datasize: The size of the data to be processed.
Returns
A Hybrid struct instance representing the combined ESN and knowledge-based model.
This method is effective for chaotic processes as highlighted in [Pathak].
Reference: [Pathak]: Jaideep Pathak et al. "Hybrid Forecasting of Chaotic Processes: Using Machine Learning in Conjunction with a Knowledge-Based Model" (2018).
The Hybrid variation is the most complex option and offers additional customization. Note that more variations may be added in the future to provide even greater flexibility.
To train an ESN model, you can use the train function. It takes the ESN model, training data, and other optional parameters as input and returns a trained model. Here's the documentation for the train function:
In addition to the standard ESN model, there are variations that allow for deeper customization of the underlying model. Currently, there are two available variations: Default and Hybrid. These variations provide different ways to configure the ESN. Here's the documentation for the variations:
The Default struct specifies the use of the standard model in Echo State Networks (ESNs). It requires no parameters and is used when no specific variations or customizations of the ESN model are needed. This struct is ideal for straightforward applications where the default ESN settings are sufficient.
Constructs a Hybrid variation of Echo State Networks (ESNs) integrating a knowledge-based model (prior_model) with ESNs for advanced training and prediction in chaotic systems.
Parameters
prior_model: A knowledge-based model function for integration with ESNs.
u0: Initial conditions for the model.
tspan: Time span as a tuple, indicating the duration for model operation.
datasize: The size of the data to be processed.
Returns
A Hybrid struct instance representing the combined ESN and knowledge-based model.
This method is effective for chaotic processes as highlighted in [Pathak].
Reference: [Pathak]: Jaideep Pathak et al. "Hybrid Forecasting of Chaotic Processes: Using Machine Learning in Conjunction with a Knowledge-Based Model" (2018).
The Hybrid variation is the most complex option and offers additional customization. Note that more variations may be added in the future to provide even greater flexibility.
To train an ESN model, you can use the train function. It takes the ESN model, training data, and other optional parameters as input and returns a trained model. Here's the documentation for the train function:
Trains an Echo State Network (ESN) using the provided target data and a specified training method.
Parameters
esn::AbstractEchoStateNetwork: The ESN instance to be trained.
target_data: Supervised training data for the ESN.
training_method: The method for training the ESN (default: StandardRidge(0.0)).
Returns
The trained ESN model. Its type and structure depend on training_method and the ESN's implementation.
Returns
The trained ESN model. The exact type and structure of the return value depends on the training_method and the specific ESN implementation.
using ReservoirComputing
# Initialize an ESN instance and target data
esn = ESN(train_data, reservoir=RandSparseReservoir(200), washout=10)
@@ -13,4 +13,4 @@
trained_esn = train(esn, target_data)
# Train the ESN using a custom training method
-trained_esn = train(esn, target_data, training_method=StandardRidge(1.0))
Notes
When using a Hybrid variation, the function extends the state matrix with data from the physical model included in the variation.
The training is handled by a lower-level _train function which takes the new state matrix and performs the actual training using the specified training_method.