ReservoirPy (v0.3.12) ??
Einfacher und flexibler Code für Reservoir Computing-Architekturen wie Echo State Networks (ESN).
Spannende Neuigkeiten! Wir haben gerade ein neues Beta-Tool gestartet, das auf einem großen Sprachmodell basiert! Sie können mit unserem „ReservoirChat“ chatten und alles zum Thema Reservoir Computing oder Codierung von Reservoirs fragen! ? Verpassen Sie es nicht, es ist nur für begrenzte Zeit verfügbar! ⏳ https://chat.reservoirpy.inria.fr
aus Reservoirpy.nodes Import Reservoir, Ridge, Inputdata = Input(input_dim=1)reservoir = Reservoir(100, lr=0.3, sr=1.1)readout = Ridge(ridge=1e-6)esn = data >> Reservoir >> readoutforecast = esn.fit(X, y).run(timeseries)
ReservoirPy ist eine einfache, benutzerfreundliche Bibliothek, die auf wissenschaftlichen Python-Modulen basiert. Es bietet eine flexible Schnittstelle zur Implementierung effizienter Reservoir Computing (RC)-Architekturen mit besonderem Schwerpunkt auf Echo State Networks (ESN). Die erweiterten Funktionen von ReservoirPy ermöglichen eine Verbesserung der Rechenzeiteffizienz auf einem einfachen Laptop im Vergleich zur einfachen Python-Implementierung bei Datensätzen jeder Größe.
Einige seiner Funktionen sind: Offline- und Online-Training , parallele Implementierung , Berechnung dünn besetzter Matrizen , schnelle spektrale Initialisierung, erweiterte Lernregeln (z. B. intrinsische Plastizität ) usw. Es ermöglicht auch die einfache Erstellung komplexer Architekturen mit mehreren Reservoirs (z. B. tiefe Reservoirs ). Auslesungen und komplexe Rückkopplungsschleifen . Darüber hinaus sind grafische Tools enthalten, mit denen Hyperparameter mithilfe der Hyperopt -Bibliothek einfach untersucht werden können. Schließlich enthält es mehrere Tutorials zur Erkundung exotischer Architekturen und Beispiele für die Reproduktion wissenschaftlicher Arbeiten.
Diese Bibliothek funktioniert für Python 3.8 und höher.
Verfolgen Sie die Updates und Neuerscheinungen von @reservoirpy auf Twitter.
Weitere Informationen zu den Hauptfunktionen von ReservoirPy, seiner API und dem Installationsprozess finden Sie in der offiziellen Dokumentation von ReservoirPy. Oder Sie können direkt auf das Benutzerhandbuch mit Tutorials zugreifen.
Pip Reservoirpy installieren
(Weitere erweiterte Installationsoptionen finden Sie weiter unten.)
Schritt 1: Laden Sie den Datensatz
ReservoirPy verfügt über einen praktischen Datengenerator, der synthetische Zeitreihen für bekannte Aufgaben wie die Mackey-Glass-Zeitreihenvorhersage erstellen kann.
aus Reservoirpy.datasets import mackey_glassX = mackey_glass(n_timesteps=2000)
Schritt 2: Erstellen Sie ein Echo State-Netzwerk ...
...oder jede Art von Modell, das Sie zur Lösung Ihrer Aufgabe verwenden möchten. In diesem einfachen Anwendungsfall werden wir Echo State Networks (ESNs) ausprobieren, eine der minimalsten Architekturen von Reservoir Computing-Maschinen.
Ein ESN besteht aus einem Reservoir , einem zufällig wiederkehrenden Netzwerk, das zum Codieren unserer Eingaben in einem hochdimensionalen (nichtlinearen) Raum verwendet wird, und einem Readout , einer einfachen Feed-Forward-Schicht von Neuronen, die für das Auslesen der gewünschten Ausgabe verantwortlich sind aus den Aktivierungen des Reservoirs.
aus Reservoirpy.nodes Import Reservoir, Ridgereservoir = Reservoir(units=100, lr=0.3, sr=1.25)readout = Ridge(output_dim=1, ridge=1e-5)
Wir erhalten hier ein Reservoir mit 100 Neuronen, einem Spektralradius von 1,25 und einer Leckrate von 0,3 (mehr über diese Hyperparameter erfahren Sie im Tutorial „Hyperparameter verstehen und optimieren“). Hier ist unsere Ausleseschicht nur eine einzelne Einheit, sodass wir Verbindungen von (allen Einheiten) des Reservoirs erhalten. Beachten Sie, dass nur die Ausleseschichtverbindungen trainiert werden. Dies ist einer der Grundpfeiler aller Reservoir-Computing-Techniken. In unserem Fall trainieren wir diese Verbindungen mithilfe der linearen Regression mit einem Regularisierungskoeffizienten von 10 -5 .
Nun verbinden wir alles mit dem Operator >>
.
esn = Reservoir >> Anzeige
Das ist es! Nächster Schritt: Passen Sie die Auslesegewichte an, um die gewünschte Aufgabe auszuführen. Wir werden das ESN darin trainieren, Vorhersagen unserer Zeitreihen im Voraus zu treffen.
Schritt 3: Passen Sie das ESN an und führen Sie es aus
Wir trainieren unser ESN in den ersten 500 Zeitschritten der Zeitreihe, wobei 100 Schritte zum Aufwärmen der Reservoirzustände verwendet werden.
esn.fit(X[:500], X[1:501], warmup=100)
Unser ESN ist jetzt trainiert und einsatzbereit. Lassen Sie es uns auf den Rest der Zeitreihe anwenden:
Vorhersagen = esn.run(X[501:-1])
Als Abkürzung können beide Operationen in nur einer Zeile ausgeführt werden!
Vorhersagen = esn.fit(X[:500], X[1:501]).run(X[501:-1])
Lassen Sie uns nun seine Leistungen bewerten.
Schritt 4: Bewerten Sie den ESN
aus Reservoirpy.observables importieren rmse, rsquareprint("RMSE:", rmse(X[502:], Vorhersagen), "R^2 Score:", rsquare(X[502:], Vorhersagen))
Führen Sie diese einfache Datei aus und analysieren Sie sie (im Ordner „Tutorials/Einfache Beispiele mit Mackey-Glass“), um ein vollständiges Beispiel für die Zeitreihenvorhersage mit ESNs anzuzeigen:
simple_example_MackeyGlass.py (unter Verwendung der ESN-Klasse)
Python simple_example_MackeyGlass.py
Wenn Sie Probleme beim Testen einiger Beispiele haben, schauen Sie sich die Anforderungen für erweiterte Pakete in ReadTheDocs an.
Um es zu installieren, verwenden Sie einen der folgenden Befehle:
Pip Reservoirpy installieren
oder
pip install Reservoirpy==0.3.12
Wenn Sie die Python-Notizbücher im Ordner „Tutorials“ ausführen möchten, installieren Sie die Pakete in der Anforderungsdatei (Warnung: Dies kann zu einem Downgrade der installierten Hyperopt-Version führen):
pip install -r Tutorials/Requirements.txt
Wenn Sie die Vorgängerversion 0.2.4 verwenden möchten, können Sie ReservoirPy installieren mit:
pip install Reservoirpy==0.2.4
Wenn Sie das hyper
und seine Hyperparameter-Optimierungshelfer mit hyperopt aktivieren möchten, verwenden Sie:
pip install Reservoirpy[Hyper]
Gehen Sie zum Tutorial-Ordner für Tutorials in Jupyter Notebooks.
Gehen Sie zum Beispielordner für Beispiele und Artikel mit Codes, auch in Jupyter Notebooks.
Eine Anleitung für ReservoirPy (v0.2) finden Sie in diesem Artikel (Trouvain et al. 2020).
Eine kurze Anleitung zum Erkunden von Hyperparametern mit ReservoirPy und Hyperopt finden Sie in diesem Artikel (Trouvain et al. 2020).
Werfen Sie einen Blick auf unsere Ratschläge und unsere Methode zur Erforschung von Hyperparametern für Reservoirs in unserem aktuellen Artikel: (Hinaut et al 2021) HTML HAL
Tutorial und Jupyter Notebook zur Erkundung von Hyperparametern
Weitere Informationen zu Hyperopt: Offizielle Website
Wenn Sie möchten, dass Ihre Arbeit hier erscheint, kontaktieren Sie uns bitte (siehe Kontaktlink unten).
Leger et al. (2024) Evolving Reservoirs for Meta Reinforcement Learning. EvoAPPS 2024 HAL PDF-Code
Chaix-Eichel et al. (2022) Vom impliziten Lernen zu expliziten Darstellungen. arXiv-Vorabdruck arXiv:2204.02484. arXiv PDF
Trouvain & Hinaut (2021) Canary Song Decoder: Transduktion und implizite Segmentierung mit ESNs und LTSMs. ICANN 2021 HTML HAL PDF
Pagliarini et al. (2021) Canary Vocal Sensomotor Model mit RNN-Decoder und niedrigdimensionalem GAN-Generator. ICDL 2021. HTML
Pagliarini et al. (2021) Was sagt der Kanarienvogel? Niedrigdimensionales GAN angewendet auf Vogelgesang. HAL-Vorabdruck. HAL PDF
Welcher Hype für meine neue Aufgabe? Hinweise und zufällige Suche nach Echo State Networks-Hyperparametern. ICANN 2021 HTML HAL PDF
Wenn Sie eine Frage zur Bibliothek haben, öffnen Sie bitte eine Ausgabe. Wenn Sie allgemeinere Fragen oder Feedback haben, können Sie uns auf Twitter oder per E-Mail an Xavier Dot Hinaut The-Famous-Home-Symbol Inria Dot Fr kontaktieren.
Trouvain, N., Pedrelli, L., Dinh, TT, Hinaut, X. (2020) Reservoirpy: eine effiziente und benutzerfreundliche Bibliothek zum Entwerfen von Echo-State-Netzwerken. In International Conference on Artificial Neural Networks (S. 494-505). Springer, Cham. HTML-HAL-PDF
Wenn Sie ReservoirPy in Ihrer Arbeit verwenden, zitieren Sie bitte unser Paket mit dem folgenden Bibtex-Eintrag:
@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} }
Dieses Paket wird von Inria in Bordeaux, Frankreich, in der Mnemosyne-Gruppe entwickelt und unterstützt. Inria ist ein französisches Forschungsinstitut für digitale Wissenschaften (Informatik, Mathematik, Robotik, ...).