Reservoir Computing Networks belong to a group of machine learning techniques that project the input space non-linearly into a high-dimensional feature space, where the underlying task can be solved linearly. Popular variants of RCNs, e.g.\ Extreme Learning Machines (ELMs), Echo State Networks (ESNs) and Liquid State Machines (LSMs) are capable of solving complex tasks equivalently to widely used deep neural networks, but with a substantially simpler training paradigm based on linear regression. In this paper, we introduce the Python toolbox PyRCN (Python Reservoir Computing Networks) for optimizing, training and analyzing Reservoir Computing Networks (RCNs) on arbitrarily large datasets. The tool is based on widely-used scientific packages, such as numpy and scipy and complies with the scikit-learn interface specification. It provides a platform for educational and exploratory analyses of RCNs, as well as a framework to apply RCNs on complex tasks including sequence processing. With only a small number of basic components, the framework allows the implementation of a vast number of different RCN architectures. We provide extensive code examples on how to set up RCNs for a time series prediction and for a sequence classification task.
View on arXiv