These minimalist self-contained source codes in different programming languages demonstrate the simplicity and power of implementing and applying Echo State Networks “from scratch”. This is arguably the simplest form of recurrent neural network learning. The source codes are intended for education and instruction, but can also be easily adapted for practical purposes.
As a demo, they learn to predict Mackey-Glass chaotic time series (delay=17) with a remarkable accuracy. The data needed for the code are available here: MackeyGlass_t17.txt (or .zip, needs unpacking).
- Julia: minimalESN.jl.
Requires Julia (tested on versions 1.0.5 and 1.4.2) with Plots plotting library (multiple output backends available). They are all free.
- Matlab or Octave: minimalESN.m.
Requires Matlab (tested on versions R2008b, R2014b, and R2016a) or Octave (tested on version 4.0.0). Octave is free.
- Scientific Python: minimalESN.py.
Requires Python (tested on versions 2.7.17, 3.5.4, 3.7.4, and 3.8.3) with general scientific libraries: NumPy, SciPy (optional), and Matplotlib. They are all free.
- R programming language: minimalESN.r.
Requires R programming environment (tested on versions 2.15.1 and 4.0.2). It’s free.
The program codes above are distributed under a friendly MIT license.
If you want to learn more about applying Echo State Networks take a look at my free book chapter
A practical guide to applying echo state networks Book Section
In: Grégoire Montavon; Geneviève B. Orr; Klaus-Robert Müller (Ed.): Neural Networks: Tricks of the Trade, 2nd Edition, vol. 7700, pp. 659-686, Springer, 2012, ISBN: 978-3-642-35288-1, (simple source code samples available).