ReservoirPy (v0.3.12) ??
Kode sederhana dan fleksibel untuk arsitektur Reservoir Computing seperti Echo State Networks (ESN).
Berita Menarik! Kami baru saja meluncurkan alat beta baru berdasarkan Model Bahasa Besar! Anda dapat mengobrol dengan "ReservoirChat" kami dan menanyakan apa saja tentang Reservoir Computing atau coding reservoir! ? Jangan sampai ketinggalan, ini tersedia dalam waktu terbatas! ⏳ https://chat.reservoirpy.inria.fr
dari 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(deretan waktu)
ReservoirPy adalah perpustakaan sederhana yang mudah digunakan berdasarkan modul ilmiah Python. Ini menyediakan antarmuka yang fleksibel untuk mengimplementasikan arsitektur Reservoir Computing (RC) yang efisien dengan fokus khusus pada Echo State Networks (ESN). Fitur-fitur canggih dari ReservoirPy memungkinkan peningkatan efisiensi waktu komputasi pada laptop sederhana dibandingkan dengan implementasi dasar Python, dengan kumpulan data dalam berbagai ukuran.
Beberapa fiturnya adalah: pelatihan offline dan online , implementasi paralel , komputasi matriks renggang , inisialisasi spektral cepat, aturan pembelajaran tingkat lanjut (misalnya Plastisitas Intrinsik ) dll. Hal ini juga memungkinkan untuk dengan mudah membuat arsitektur kompleks dengan banyak reservoir (misalnya reservoir dalam ), pembacaan, dan putaran umpan balik yang kompleks . Selain itu, alat grafis disertakan untuk menjelajahi hyperparameter dengan mudah dengan bantuan perpustakaan hyperopt . Terakhir, mencakup beberapa tutorial yang mengeksplorasi arsitektur eksotis dan contoh reproduksi makalah ilmiah.
Pustaka ini berfungsi untuk Python 3.8 dan lebih tinggi.
Ikuti pembaruan @reservoirpy dan rilis baru di Twitter.
Lihat dokumentasi resmi ReservoirPy untuk mempelajari lebih lanjut tentang fitur utama ReservoirPy, API-nya, dan proses instalasi. Atau Anda dapat mengakses langsung Panduan Pengguna dengan tutorial.
pip instal reservoirpy
(Lihat di bawah untuk opsi instalasi lebih lanjut)
Langkah 1: Muat kumpulan data
ReservoirPy hadir dengan beberapa generator data praktis yang mampu membuat deret waktu sintetis untuk tugas-tugas terkenal seperti perkiraan deret waktu Mackey-Glass.
dari reservoirpy.datasets impor mackey_glassX = mackey_glass(n_timesteps=2000)
Langkah 2: Buat Jaringan Negara Gema...
...atau model apa pun yang ingin Anda gunakan untuk menyelesaikan tugas Anda. Dalam kasus penggunaan sederhana ini, kami akan mencoba Echo State Networks (ESNs), salah satu arsitektur mesin Reservoir Computing yang paling minimal.
ESN terbuat dari reservoir , jaringan berulang acak yang digunakan untuk menyandikan masukan kita dalam ruang berdimensi tinggi (non-linier), dan pembacaan , lapisan neuron umpan maju sederhana yang bertugas membacakan keluaran yang diinginkan. dari aktivasi reservoir.
dari reservoirpy.nodes mengimpor Reservoir, Ridgereservoir = Reservoir(unit=100, lr=0.3, sr=1.25)readout = Ridge(output_dim=1, ridge=1e-5)
Di sini kita memperoleh reservoir dengan 100 neuron, radius spektral 1,25, dan laju kebocoran 0,3 (Anda dapat mempelajari lebih lanjut tentang hyperparameter ini melalui tutorial Memahami dan mengoptimalkan hyperparameter). Di sini, lapisan pembacaan kita hanyalah satu unit, di mana kita akan menerima koneksi dari (semua unit) reservoir. Perhatikan bahwa hanya koneksi lapisan pembacaan yang dilatih. Ini adalah salah satu landasan dari semua teknik Reservoir Computing. Dalam kasus kami, kami akan melatih koneksi ini menggunakan regresi linier, dengan koefisien regularisasi 10 -5 .
Sekarang, mari kita sambungkan semuanya menggunakan operator >>
.
esn = reservoir >> pembacaan
Itu saja! Langkah selanjutnya: sesuaikan bobot pembacaan untuk melakukan tugas yang kita inginkan. Kami akan melatih ESN untuk membuat prakiraan rangkaian waktu kami selangkah lebih maju.
Langkah 3: Pasang dan jalankan ESN
Kami melatih ESN kami pada 500 langkah waktu pertama dari rangkaian waktu, dengan 100 langkah digunakan untuk menghangatkan status reservoir.
esn.fit(X[:500], X[1:501], pemanasan=100)
ESN kami sekarang sudah terlatih dan siap digunakan. Mari kita jalankan pada sisa rangkaian waktu:
prediksi = esn.run(X[501:-1])
Singkatnya, kedua operasi dapat dilakukan hanya dalam satu baris!
prediksi = esn.fit(X[:500], X[1:501]).run(X[501:-1])
Sekarang mari kita evaluasi kinerjanya.
Langkah 4: Evaluasi ESN
dari reservoirpy.observables import rmse, rsquareprint("RMSE:", rmse(X[502:], prediksi), "Skor R^2:", rsquare(X[502:], prediksi))
Jalankan dan analisis file sederhana ini (di folder "tutorial/Contoh Sederhana dengan Mackey-Glass") untuk melihat contoh lengkap prediksi deret waktu dengan ESN:
simple_example_MackeyGlass.py (menggunakan kelas ESN)
python simple_example_MackeyGlass.py
Jika Anda mengalami masalah saat menguji beberapa contoh, lihat persyaratan paket tambahan di ReadTheDocs.
Untuk menginstalnya, gunakan salah satu perintah berikut:
pip instal reservoirpy
atau
pip instal reservoirpy==0.3.12
Jika Anda ingin menjalankan Notebook Python dari folder tutorial , instal paket di file persyaratan (peringatan: ini dapat menurunkan versi hyperopt yang diinstal):
instalasi pip -r tutorial/persyaratan.txt
Jika Anda ingin menggunakan versi sebelumnya 0.2.4, Anda dapat menginstal ReservoirPy menggunakan:
pip instal reservoirpy==0.2.4
Jika Anda ingin mengaktifkan paket hyper
dan pembantu pengoptimalan hyperparameternya menggunakan hyperopt, gunakan:
pip install reservoirpy[hiper]
Buka folder tutorial untuk tutorial di Jupyter Notebooks.
Buka folder contoh untuk contoh dan makalah dengan kode, juga di Jupyter Notebooks.
Tutorial ReservoirPy (v0.2) dapat ditemukan di Makalah ini (Trouvain et al. 2020).
Tutorial singkat tentang cara menjelajahi hyperparameter dengan ReservoirPy dan Hyperopt dapat ditemukan di makalah ini (Trouvain et al. 2020).
Lihatlah saran dan metode kami untuk mengeksplorasi hyperparameter untuk reservoir di makalah terbaru kami: (Hinaut dkk 2021) HTML HAL
Tutorial dan Notebook Jupyter untuk eksplorasi hyper-parameter
Info lebih lanjut tentang hyperopt: Situs web resmi
Jika Anda ingin makalah Anda muncul di sini, silakan hubungi kami (lihat tautan kontak di bawah).
Leger dkk. (2024) Waduk yang Berkembang untuk Pembelajaran Penguatan Meta. Kode PDF HAL EvoAPPS 2024
Chaix-Eichel dkk. (2022) Dari pembelajaran implisit ke representasi eksplisit. arXiv pracetak arXiv:2204.02484. arXiv PDF
Trouvain & Hinaut (2021) Decoder Lagu Canary: Transduksi dan Segmentasi Implisit dengan ESN dan LTSM. ICANN 2021 HTML HAL PDF
Pagliarini dkk. (2021) Model Sensorimotor Vokal Kenari dengan Dekoder RNN dan Generator GAN Dimensi Rendah. ICDL 2021.HTML
Pagliarini dkk. (2021) Apa Kata Burung Kenari? GAN Dimensi Rendah Diterapkan pada Kicau Burung. Pracetak HAL. HAL PDF
Hype yang Mana untuk Tugas Baru Saya? Petunjuk dan Pencarian Acak untuk Hyperparameter Echo State Networks. ICANN 2021 HTML HAL PDF
Jika Anda memiliki pertanyaan mengenai perpustakaan, silakan buka Masalah. Jika Anda memiliki pertanyaan atau masukan yang lebih umum, Anda dapat menghubungi kami di twitter atau melalui email ke xavier dot hinaut simbol-rumah-terkenal inria dot fr.
Trouvain, N., Pedrelli, L., Dinh, TT, Hinaut, X. (2020) Reservoirpy: perpustakaan yang efisien dan mudah digunakan untuk merancang jaringan keadaan gema. Dalam Konferensi Internasional tentang Jaringan Syaraf Tiruan (hlm. 494-505). Pegas, Cham. HTML HAL PDF
Jika Anda menggunakan ReservoirPy dalam pekerjaan Anda, harap kutip paket kami menggunakan entri bibtex berikut:
@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} }
Paket ini dikembangkan dan didukung oleh Inria di Bordeaux, Perancis dalam grup Mnemosyne. Inria adalah Institut Penelitian Perancis dalam Ilmu Digital (Ilmu Komputer, Matematika, Robotika, ...).