Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 52 additions & 18 deletions docs/src/index.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,49 @@
# ReservoirComputing.jl

ReservoirComputing.jl is a versatile and user-friendly Julia package designed for the implementation of advanced Reservoir Computing models, such as Echo State Networks (ESNs). Central to Reservoir Computing is the expansion of input data into a higher-dimensional space, leveraging regression techniques for effective model training. This approach bears resemblance to kernel methods, offering a unique perspective in machine learning. ReservoirComputing.jl offers a modular design, ensuring both ease of use for newcomers and flexibility for advanced users, establishing it as a key tool for innovative computing solutions.
ReservoirComputing.jl is a versatile and user-friendly Julia package designed
for the implementation of Reservoir Computing models, such as Echo State Networks (ESNs).
Reservoir Computing expands the input data into a higher-dimensional
space, leveraging regression techniques for effective model training.
This approach can be thought as a kernel method with an explicit kernel trick.

!!! info "Introductory material"

This library assumes some basic knowledge of Reservoir Computing. For a good introduction, we suggest the following papers: the first two are the seminal papers about ESN and LSM, the others are in-depth review papers that should cover all the needed information. For the majority of the algorithms implemented in this library we cited in the documentation the original work introducing them. If you ever are in doubt about a method or a function just type `? function` in the Julia REPL to read the relevant notes.
This library assumes some basic knowledge of Reservoir Computing.
For a good introduction, we suggest the following papers:
the first two are the seminal papers about ESN and liquid state machines,
the others are in-depth review papers that should cover all the needed
information. For the majority of the algorithms implemented in this library
we cited in the documentation the original work introducing them.
If you ever are in doubt about a method or a function just type `? function`
in the Julia REPL to read the relevant notes.

- Jaeger, Herbert: The “echo state” approach to analyzing and training recurrent neural networks-with an erratum note.
- Maass W, Natschläger T, Markram H: Real-time computing without stable states: a new framework for neural computation based on perturbations.
- Lukoševičius, Mantas: A practical guide to applying echo state networks." Neural networks: Tricks of the trade.
- Lukoševičius, Mantas, and Herbert Jaeger: Reservoir computing approaches to recurrent neural network training.
- Jaeger, Herbert: The “echo state” approach to analyzing and training
recurrent neural networks-with an erratum note.
- Maass W, Natschläger T, Markram H: Real-time computing without
stable states: a new framework for neural computation based on
perturbations.
- Lukoševičius, Mantas: A practical guide to applying echo state networks.
Neural networks: Tricks of the trade.
- Lukoševičius, Mantas, and Herbert Jaeger: Reservoir computing approaches
to recurrent neural network training.

!!! info "Performance tip"

For faster computations on the CPU it is suggested to add `using MKL` to the script. For clarity's sake this library will not be indicated under every example in the documentation.
For faster computations on the CPU it is suggested to add `using MKL`
to the script. For clarity's sake this library will not be indicated
under every example in the documentation.

## Installation

To install ReservoirComputing.jl, ensure you have Julia version 1.6 or higher. Follow these steps:
To install ReservoirComputing.jl, ensure you have Julia version 1.10 or higher.
Follow these steps:

1. Open the Julia command line.
2. Enter the Pkg REPL mode by pressing ].
3. Type add ReservoirComputing and press Enter.
3. Type `add ReservoirComputing` and press Enter.

For a more customized installation or to contribute to the package, consider cloning the repository:
For a more customized installation or to contribute to the package,
consider cloning the repository:

```julia
using Pkg
Expand All @@ -34,20 +54,34 @@ or `dev` the package.

## Features Overview

- **Multiple Training Algorithms**: Supports Ridge Regression, Linear Models, and LIBSVM regression methods for Reservoir Computing models.
- **Diverse Prediction Methods**: Offers both generative and predictive methods for Reservoir Computing predictions.
- **Modifiable Training and Prediction**: Allows modifications in Reservoir Computing states, such as state extension, padding, and combination methods.
- **Non-linear Algorithm Options**: Includes options for non-linear modifications in algorithms.
- **Echo State Networks (ESNs)**: Features various input layers, reservoirs, and methods for driving ESN reservoir states.
- **Cellular Automata-Based Reservoir Computing**: Introduces models based on one-dimensional Cellular Automata for Reservoir Computing.
- **Multiple Training Algorithms**: Supports Ridge Regression, Linear Models,
and LIBSVM regression methods for Reservoir Computing models.
- **Diverse Prediction Methods**: Offers both generative and predictive methods
for Reservoir Computing predictions.
- **Modifiable Training and Prediction**: Allows modifications in Reservoir
Computing states, such as state extension, padding, and combination methods.
- **Non-linear Algorithm Options**: Includes options for non-linear
modifications in algorithms.
- **Echo State Networks (ESNs)**: Features various input layers, reservoirs,
and methods for driving ESN reservoir states.
- **Cellular Automata-Based Reservoir Computing**: Introduces models based
on one-dimensional Cellular Automata for Reservoir Computing.

## Contributing

Contributions to ReservoirComputing.jl are highly encouraged and appreciated. Whether it's through implementing new RC model variations, enhancing documentation, adding examples, or any improvement, your contribution is valuable. We welcome posts of relevant papers or ideas in the issues section. For deeper insights into the library's functionality, the API section in the documentation is a great resource. For any queries not suited for issues, please reach out to the lead developers via Slack or email.
Contributions to ReservoirComputing.jl are highly encouraged and appreciated.
Whether it's through implementing new RC model variations,
enhancing documentation, adding examples, or any improvement,
your contribution is valuable.
We welcome posts of relevant papers or ideas in the issues section.
For deeper insights into the library's functionality, the API section in the
documentation is a great resource. For any queries not suited for issues,
please reach out to the lead developers via Slack or email.

## Citing

If you use ReservoirComputing.jl in your work, we kindly ask you to cite it. Here is the BibTeX entry for your convenience:
If you use ReservoirComputing.jl in your work, we kindly ask you to cite it.
Here is the BibTeX entry for your convenience:

```bibtex
@article{JMLR:v23:22-0611,
Expand Down
Loading