Abstract
We present a simple user-friendly library called ReservoirPy based on Python scientific modules. It provides a flexible interface to implement efficient Reservoir Computing (RC) architectures with a particular focus on Echo State Networks (ESN). Advanced features of ReservoirPy allow to improve up to \(87.9\%\) of computation time efficiency on a simple laptop compared to basic Python implementation. Overall, we provide tutorials for hyperparameters tuning, offline and online training, fast spectral initialization, parallel and sparse matrix computation on various tasks (MackeyGlass and audio recognition tasks). In particular, we provide graphical tools to easily explore hyperparameters using random search with the help of the hyperopt library.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
See for instance the minimal version of Mantas Lukoševičius saved at https://mantas.info/code/simple_esn or reproduced in examples directory of ReservoirPy: https://github.com/neuronalX/reservoirpy/tree/master/examples.
- 2.
Oger is no longer maintained; archived at https://github.com/neuronalX/Oger.
- 3.
See for instance https://github.com/topics/echo-state-networks.
References
Garofolo, J, et al.: Timit acoustic-phonetic continuous speech corpus. Linguistic Data Consortium LDC93S1 (1993)
Bergstra, J., Bengio, Y.: Random search for hyper-parameter optimization. J. Mach. Learn. Res. 13(Feb), 281–305 (2012)
Bergstra, J., Yamins, D., Cox, D.D.: Hyperopt: a Python library for optimizing the hyperparameters of machine learning algorithms. In: Proceedings of 12th SciPy Conference (2013)
Gallicchio, C., Micheli, A., Pedrelli, L.: Deep reservoir computing: a critical experimental analysis. Neurocomputing 268, 87–99 (2017)
Gallicchio, C., Micheli, A., Pedrelli, L.: Fast spectral radius initialization for recurrent neural networks. In: Oneto, L., Navarin, N., Sperduti, A., Anguita, D. (eds.) INNSBDDL 2019. PINNS, vol. 1, pp. 380–390. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-16841-4_39
Hinaut, X., Spranger, M.: Learning to parse grounded language using reservoir computing. In: IEEE ICDL-EpiRob, August 2019
Holzmann, G.: Efficient C++ library for analog reservoir computing neural networks (echo state networks). http://aureservoir.sourceforge.net (2007–2008)
Jaeger, H.: The “echo state” approach to analysing and training recurrent neural networks. Technical report 148, GNRCIT GMD, Bonn, Germany (2001)
Juven, A., Hinaut, X.: Cross-situational learning with reservoir computing for language acquisition modelling. In: IJCNN (2020)
Lukoševičius, M., Jaeger, H.: Reservoir computing approaches to recurrent neural network training. Comput. Sci. Rev. 3(3), 127–149 (2009)
Pedrelli, L., Hinaut, X.: Hierarchical-task reservoir for anytime POS tagging from continuous speech. In: IJCNN (2020)
Strock, A., Hinaut, X., Rougier, N.P.: A robust model of gated working memory. Neural Comput. 32(1), 153–181 (2020)
Sussillo, D., Abbott, L.: Generating coherent patterns of activity from chaotic neural networks. Neuron 63(4), 544–557 (2009)
Verstraeten, D., Schrauwen, B., d’Haene, M., Stroobandt, D.: An experimental unification of reservoir computing methods. Neural Netw. 20(3), 391–403 (2007)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Trouvain, N., Pedrelli, L., Dinh, T.T., Hinaut, X. (2020). ReservoirPy: An Efficient and User-Friendly Library to Design Echo State Networks. In: Farkaš, I., Masulli, P., Wermter, S. (eds) Artificial Neural Networks and Machine Learning – ICANN 2020. ICANN 2020. Lecture Notes in Computer Science(), vol 12397. Springer, Cham. https://doi.org/10.1007/978-3-030-61616-8_40
Download citation
DOI: https://doi.org/10.1007/978-3-030-61616-8_40
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-61615-1
Online ISBN: 978-3-030-61616-8
eBook Packages: Computer ScienceComputer Science (R0)