  As a family member of Recurrent Neural Networks and similar to
Long-Short-Term Memory cells, Echo State Networks (ESNs) are capable of solving
temporal tasks, but with a substantially easier training paradigm based on
linear regression. However, optimizing hyper-parameters and efficiently
implementing the training process might be somewhat overwhelming for the
first-time users of ESNs. This paper aims to facilitate the understanding of
ESNs in theory and practice. Treating ESNs as non-linear filters, we explain
the effect of the hyper-parameters using familiar concepts such as impulse
responses. Furthermore, the paper introduces the Python toolbox PyRCN (Python
Reservoir Computing Network) for developing, training and analyzing ESNs on
arbitrarily large datasets. The tool is based on widely-used scientific
packages, such as numpy and scipy and offers an interface to scikit-learn.
Example code and results for classification and regression tasks are provided.
