Echo State Networks variations
Deep ESN
ReservoirComputing.DeepESN — TypeDeepESN(train_data, in_size, res_size; kwargs...)Constructs a Deep Echo State Network (ESN) model for processing sequential data through a layered architecture of reservoirs. This constructor allows for the creation of a deep learning model that benefits from the dynamic memory and temporal processing capabilities of ESNs, enhanced by the depth provided by multiple reservoir layers.
Parameters
train_data: The training dataset used for the ESN. This should be structured as sequential data where applicable.in_size: The size of the input layer, i.e., the number of input units to the ESN.res_size: The size of each reservoir, i.e., the number of neurons in each hidden layer of the ESN.
Optional Keyword Arguments
depth: The number of reservoir layers in the Deep ESN. Default is 2.input_layer: A function or an array of functions to initialize the input matrices for each layer. Default isscaled_randfor each layer.bias: A function or an array of functions to initialize the bias vectors for each layer. Default iszeros32for each layer.reservoir: A function or an array of functions to initialize the reservoir matrices for each layer. Default isrand_sparsefor each layer.reservoir_driver: The driving system for the reservoir. Default is an RNN model.nla_type: The type of non-linear activation used in the reservoir. Default isNLADefault().states_type: Defines the type of states used in the ESN (e.g., standard states). Default isStandardStates().washout: The number of initial timesteps to be discarded in the ESN's training phase. Default is 0.rng: Random number generator used for initializing weights. Default isUtils.default_rng().matrix_type: The type of matrix used for storing the training data. Default is inferred fromtrain_data.
Example
train_data = rand(Float32, 3, 100)
# Create a DeepESN with specific parameters
deepESN = DeepESN(train_data, 3, 100; depth = 3, washout = 100)Hybrid ESN
ReservoirComputing.HybridESN — TypeHybridESN(model, train_data, in_size, res_size; kwargs...)Construct a Hybrid Echo State Network (ESN) model that integrates traditional Echo State Networks with a predefined knowledge model [Pathak2018].
Parameters
model: AKnowledgeModelinstance representing the knowledge-based model to be integrated with the ESN.train_data: The training dataset used for the ESN. This data can be preprocessed or raw data depending on the nature of the problem and the preprocessing steps considered.in_size: The size of the input layer, i.e., the number of input units to the ESN.res_size: The size of the reservoir, i.e., the number of neurons in the hidden layer of the ESN.
Optional Keyword Arguments
input_layer: A function to initialize the input matrix. Default isscaled_rand.reservoir: A function to initialize the reservoir matrix. Default isrand_sparse.bias: A function to initialize the bias vector. Default iszeros32.reservoir_driver: The driving system for the reservoir. Default is an RNN model.nla_type: The type of non-linear activation used in the reservoir. Default isNLADefault().states_type: Defines the type of states used in the ESN. Default isStandardStates().washout: The number of initial timesteps to be discarded in the ESN's training phase. Default is 0.rng: Random number generator used for initializing weights. Default isUtils.default_rng().T: The data type for the matrices (e.g.,Float32).matrix_type: The type of matrix used for storing the training data. Default is inferred fromtrain_data.
ReservoirComputing.KnowledgeModel — TypeKnowledgeModel(prior_model, u0, tspan, datasize)
Constructs a Hybrid variation of Echo State Networks (ESNs) [Pathak2018] integrating a knowledge-based model (prior_model) with ESNs.
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.
- Pathak2018Jaideep Pathak et al. "Hybrid Forecasting of Chaotic Processes: Using Machine Learning in Conjunction with a Knowledge-Based Model" (2018).
- Pathak2018Jaideep Pathak et al. "Hybrid Forecasting of Chaotic Processes: Using Machine Learning in Conjunction with a Knowledge-Based Model" (2018).