ReservorioPy (v0.3.12) ??
Código simple y flexible para arquitecturas de Reservoir Computing como Echo State Networks (ESN).
¡Noticias emocionantes! ¡Acabamos de lanzar una nueva herramienta beta basada en un modelo de lenguaje grande! ¡Puedes chatear con nuestro "ReservoirChat" y preguntar cualquier cosa sobre Reservoir Computing o codificación de reservorios! ? ¡No te lo pierdas, está disponible por tiempo limitado! ⏳ https://chat.reservoirpy.inria.fr
desde reservoriopy.nodes importar embalse, cresta, datos de entrada = entrada (input_dim = 1) embalse = embalse (100, lr = 0.3, sr = 1.1) lectura = cresta (cresta = 1e-6) esn = datos >> embalse >> pronóstico de lectura = esn.fit(X, y).run(serie temporal)
ReservoirPy es una biblioteca sencilla y fácil de usar basada en módulos científicos de Python. Proporciona una interfaz flexible para implementar arquitecturas eficientes de Reservoir Computing (RC) con un enfoque particular en Echo State Networks (ESN). Las funciones avanzadas de ReservoirPy permiten mejorar la eficiencia del tiempo de cálculo en una computadora portátil simple en comparación con la implementación básica de Python, con conjuntos de datos de cualquier tamaño.
Algunas de sus características son: capacitación en línea y fuera de línea , implementación paralela , cálculo de matrices dispersas , inicialización espectral rápida, reglas de aprendizaje avanzadas (por ejemplo, plasticidad intrínseca ), etc. También hace posible crear fácilmente arquitecturas complejas con múltiples depósitos (por ejemplo, depósitos profundos ). lecturas y circuitos de retroalimentación complejos . Además, se incluyen herramientas gráficas para explorar fácilmente los hiperparámetros con la ayuda de la biblioteca Hyperopt . Finalmente, incluye varios tutoriales que exploran arquitecturas exóticas y ejemplos de reproducción de artículos científicos.
Esta biblioteca funciona para Python 3.8 y superior.
Siga las actualizaciones y los nuevos lanzamientos de @reservoirpy en Twitter.
Consulte la documentación oficial de ReservoirPy para obtener más información sobre las características principales de ReservoirPy, su API y el proceso de instalación. O puede acceder directamente a la Guía del usuario con tutoriales.
instalación de pipa depósitopy
(Consulte a continuación opciones de instalación más avanzadas)
Paso 1: cargar el conjunto de datos
ReservoirPy viene con un práctico generador de datos capaz de crear series temporales sintéticas para tareas conocidas, como la previsión de series temporales de Mackey-Glass.
desde depositpy.datasets importe mackey_glassX = mackey_glass(n_timesteps=2000)
Paso 2: cree una red Echo State...
...o cualquier tipo de modelo que desees utilizar para resolver tu tarea. En este caso de uso simple, probaremos Echo State Networks (ESN), una de las arquitecturas más mínimas de máquinas Reservoir Computing.
Un ESN está hecho de un depósito , una red recurrente aleatoria que se utiliza para codificar nuestras entradas en un espacio de alta dimensión (no lineal), y una lectura , una simple capa de neuronas de retroalimentación encargada de leer la salida deseada. de las activaciones del embalse.
desde depositpy.nodes import Reservoir, Ridgereservoir = Reservoir(units=100, lr=0.3, sr=1.25)readout = Ridge(output_dim=1, ridge=1e-5)
Aquí obtenemos un depósito con 100 neuronas, un radio espectral de 1,25 y una tasa de fuga de 0,3 (puede obtener más información sobre estos hiperparámetros en el tutorial Comprender y optimizar los hiperparámetros). Aquí, nuestra capa de lectura es solo una unidad, de la que recibiremos conexiones de (todas las unidades del) depósito. Tenga en cuenta que solo se entrenan las conexiones de la capa de lectura. Esta es una de las piedras angulares de todas las técnicas de Computación de Yacimientos. En nuestro caso, entrenaremos estas conexiones mediante regresión lineal, con un coeficiente de regularización de 10 -5 .
Ahora, conectemos todo usando el operador >>
.
esn = depósito >> lectura
¡Eso es todo! Siguiente paso: colocar los pesos de lectura para realizar la tarea que queramos. Entrenaremos al ESN para que haga pronósticos un paso por delante de nuestras series temporales.
Paso 3: instale y ejecute el ESN
Entrenamos a nuestro ESN en los primeros 500 pasos de tiempo de la serie temporal, y se utilizan 100 pasos para calentar los estados del depósito.
esn.fit(X[:500], X[1:501], calentamiento=100)
Nuestro ESN ahora está capacitado y listo para usar. Ejecutémoslo en el resto de la serie temporal:
predicciones = esn.run(X[501:-1])
Como atajo, ¡ambas operaciones se pueden realizar en una sola línea!
predicciones = esn.fit(X[:500], X[1:501]).run(X[501:-1])
Evaluemos ahora sus actuaciones.
Paso 4: evaluar el ESN
de depositpy.observables import rmse, rsquareprint("RMSE:", rmse(X[502:], predicciones), "R^2 puntuación:", rsquare(X[502:], predicciones))
Ejecute y analice este archivo simple (en la carpeta "tutoriales/Ejemplos simples con Mackey-Glass") para ver un ejemplo completo de predicción de series temporales con ESN:
simple_example_MackeyGlass.py (usando la clase ESN)
Python simple_ejemplo_MackeyGlass.py
Si tiene problemas para probar algunos ejemplos, consulte los requisitos de paquetes extendidos en ReadTheDocs.
Para instalarlo, utilice uno de los siguientes comandos:
instalación de pipa depósitopy
o
depósito de instalación de pip == 0.3.12
Si desea ejecutar los cuadernos de Python de la carpeta de tutoriales , instale los paquetes en el archivo de requisitos (advertencia: esto puede degradar la versión de hyperopt instalada):
pip install -r tutoriales/requisitos.txt
Si desea utilizar la versión anterior 0.2.4, puede instalar ReservoirPy usando:
depósito de instalación de pip == 0.2.4
Si desea habilitar el hyper
y sus ayudantes de optimización de hiperparámetros usando hyperopt, use:
pip instalar depósitopy[hiper]
Vaya a la carpeta de tutoriales para ver tutoriales en Jupyter Notebooks.
Vaya a la carpeta de ejemplos para ver ejemplos y artículos con códigos, también en Jupyter Notebooks.
El tutorial para ReservoirPy (v0.2) se puede encontrar en este documento (Trouvain et al. 2020).
En este artículo se puede encontrar un tutorial rápido sobre cómo explorar hiperparámetros con ReservoirPy y Hyperopt (Trouvain et al. 2020).
Eche un vistazo a nuestros consejos y nuestro método para explorar hiperparámetros para yacimientos en nuestro artículo reciente: (Hinaut et al 2021) HTML HAL
Tutorial y Jupyter Notebook para exploración de hiperparámetros
Más información sobre hyperopt: Web oficial
Si desea que su artículo aparezca aquí, contáctenos (consulte el enlace de contacto a continuación).
Léger et al. (2024) Reservorios en evolución para el metaaprendizaje por refuerzo. Código PDF EvoAPPS 2024 HAL
Chaix-Eichel et al. (2022) Del aprendizaje implícito a las representaciones explícitas. preimpresión de arXiv arXiv:2204.02484. arXiv PDF
Trouvain & Hinaut (2021) Canary Song Decoder: transducción y segmentación implícita con ESN y LTSM. PDF HAL HTML de ICANN 2021
Pagliarini et al. (2021) Modelo sensoriomotor vocal canario con decodificador RNN y generador GAN de baja dimensión. ICDL 2021. HTML
Pagliarini et al. (2021) ¿Qué dice Canarias? GAN de baja dimensión aplicada al canto de los pájaros. Preimpresión HAL. PDF
¿Qué entusiasmo por mi nueva tarea? Sugerencias y búsqueda aleatoria de hiperparámetros de redes estatales de eco. PDF HAL HTML de ICANN 2021
Si tiene alguna pregunta sobre la biblioteca, abra un problema. Si tiene preguntas o comentarios más generales, puede contactarnos en Twitter o por correo electrónico a xavier dot hinaut the-famous-home-symbol inria dot fr.
Trouvain, N., Pedrelli, L., Dinh, TT, Hinaut, X. (2020) Reservoirpy: una biblioteca eficiente y fácil de usar para diseñar redes de estado de eco. En Conferencia internacional sobre redes neuronales artificiales (págs. 494-505). Springer, Cham. PDF HAL HTML
Si está utilizando ReservoirPy en su trabajo, cite nuestro paquete utilizando la siguiente entrada bibtex:
@incollection{Trouvain2020, doi = {10.1007/978-3-030-61616-8_40}, url = {https://doi.org/10.1007/978-3-030-61616-8_40}, year = {2020}, publisher = {Springer International Publishing}, pages = {494--505}, author = {Nathan Trouvain and Luca Pedrelli and Thanh Trung Dinh and Xavier Hinaut}, title = {{ReservoirPy}: An Efficient and User-Friendly Library to Design Echo State Networks}, booktitle = {Artificial Neural Networks and Machine Learning {textendash} {ICANN} 2020} }
Este paquete está desarrollado y respaldado por Inria en Burdeos, Francia, en el grupo Mnemosyne. Inria es un instituto francés de investigación en ciencias digitales (informática, matemáticas, robótica, ...).