Una red de estado de eco (echo state network o ESN en inglés)[1][2] es un tipo de computador de reservoir que utiliza una red neuronal recurrente con una capa oculta conectada dispersamente (con una conectividad típica del 1%). La conectividad y los pesos de las neuronas ocultas son fijos y se asignan aleatoriamente. Los pesos de las neuronas de salida pueden aprenderse para que la red pueda producir o reproducir patrones temporales específicos. El principal interés de esta red es que, aunque su comportamiento es no lineal, los únicos pesos que se modifican durante el entrenamiento son los de las sinapsis que conectan las neuronas ocultas con las neuronas de salida. Así, la función de error es cuadrática con respecto al vector de parámetros y puede diferenciarse fácilmente a un sistema lineal.
Alternativamente, se puede considerar una formulación bayesiana no paramétrica de la capa de salida, bajo la cual: (i) se impone una distribución a priori sobre los pesos de salida; y (ii) los pesos de salida se marginan en el contexto de la generación de predicciones, dados los datos de entrenamiento. Esta idea ha sido demostrada mediante el uso de distribuciones a priori gaussianas,[3] con lo que se obtiene un modelo de proceso gaussiano con función kernel impulsada por ESN. Se ha demostrado que esta solución supera a las ESN con conjuntos de pesos entrenables (finitos) en varias pruebas comparativas.
Algunas implementaciones de ESN disponibles públicamente son: (i) aureservoir: una biblioteca C++ eficiente para varios tipos de redes de estados de eco con enlaces python/numpy; y (ii) Matlab code: un matlab eficiente para una red de estados de eco, (iii) ReservoirComputing.jl: una implementación eficiente basada en Julia de varios tipos de redes de estados de eco, y (iv) pyESN: redes de estados de eco simples en Python.