ReservoirPy (v0.3.12) ??
Простой и гибкий код для архитектур резервуарных вычислений, таких как Echo State Networks (ESN).
Захватывающие новости! Мы только что запустили новый бета-инструмент, основанный на большой языковой модели! Вы можете пообщаться в нашем «ReservoirChat» и задать любые вопросы о резервуарных вычислениях или кодировании резервуаров! ? Не пропустите, оно доступно ограниченное время! ⏳ https://chat.reservoirpy.inria.fr
из резервуараpy.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 >> резервуар >> readoutforecast = esn.fit(X, y).run(таймсерия)
ReservoirPy — это простая и удобная библиотека, основанная на научных модулях Python. Он обеспечивает гибкий интерфейс для реализации эффективных архитектур резервуарных вычислений (RC) с особым акцентом на сети состояний эхо-сигнала (ESN). Расширенные функции ReservoirPy позволяют повысить эффективность вычислений на простом ноутбуке по сравнению с базовой реализацией Python с наборами данных любого размера.
Некоторые из его особенностей: автономное и онлайн-обучение , параллельная реализация , вычисление разреженной матрицы , быстрая спектральная инициализация, расширенные правила обучения (например, внутренняя пластичность ) и т. д. Это также позволяет легко создавать сложные архитектуры с несколькими резервуарами (например, глубокими резервуарами ), показания и сложные петли обратной связи . Кроме того, включены графические инструменты, позволяющие легко исследовать гиперпараметры с помощью библиотеки Hyperopt . Наконец, он включает в себя несколько руководств, посвященных экзотической архитектуре и примерам воспроизведения научных работ.
Эта библиотека работает для Python 3.8 и выше.
Следите за обновлениями и новыми выпусками @reservoirpy в Твиттере.
См. официальную документацию ReservoirPy, чтобы узнать больше об основных функциях ReservoirPy, его API и процессе установки. Или вы можете получить прямой доступ к руководству пользователя с учебными пособиями.
pip установить резервуар
(Более расширенные варианты установки см. ниже)
Шаг 1. Загрузите набор данных
ReservoirPy поставляется с удобным генератором данных, способным создавать синтетические временные ряды для широко известных задач, таких как прогнозирование временных рядов Макки-Гласса.
из резервуараpy.datasets import mackey_glassX = mackey_glass(n_timesteps=2000)
Шаг 2. Создайте сеть состояний эха...
...или любую модель, которую вы хотите использовать для решения своей задачи. В этом простом примере использования мы попробуем сети состояний эха (ESN), одну из самых минимальных архитектур машин резервуарных вычислений.
ESN состоит из резервуара , случайной рекуррентной сети, используемой для кодирования наших входных данных в многомерном (нелинейном) пространстве, и устройства считывания , простого слоя нейронов прямой связи, отвечающего за считывание желаемого результата. от активаций резервуара.
из резервуара-резервуара.nodes import Reservoir, Ridgereservoir = Reservoir(units=100, lr=0.3, sr=1.25)readout = Ridge(output_dim=1, ridge=1e-5)
Здесь мы получаем резервуар со 100 нейронами, спектральным радиусом 1,25 и скоростью утечки 0,3 (вы можете узнать больше об этих гиперпараметрах, пройдя руководство «Понимание и оптимизация гиперпараметров»). Здесь наш слой считывания представляет собой всего лишь одну единицу, к которой мы будем получать соединения от (всех единиц) резервуара. Обратите внимание, что обучаются только соединения уровня считывания. Это один из краеугольных камней всех методов расчета резервуаров. В нашем случае мы будем обучать эти связи с помощью линейной регрессии с коэффициентом регуляризации 10 -5 .
Теперь давайте соединим все с помощью оператора >>
.
esn = резервуар >> показания
Вот и все! Следующий шаг: подогнать веса показаний для выполнения желаемой задачи. Мы научим ESN делать прогнозы наших временных рядов на шаг вперед.
Шаг 3. Установите и запустите ESN.
Мы обучаем наш ESN на первых 500 временных шагах временного ряда, причем 100 шагов используются для прогрева состояний резервуара.
esn.fit(X[:500], X[1:501], разминка=100)
Наш ESN теперь обучен и готов к использованию. Давайте запустим его на оставшейся части таймсерии:
прогнозы = esn.run(X[501:-1])
В качестве ярлыка обе операции можно выполнить всего в одной строке!
прогнозы = esn.fit(X[:500], X[1:501]).run(X[501:-1])
Давайте теперь оценим его действия.
Шаг 4. Оцените ESN
из резервуараpy.observables import rmse, rsquareprint("RMSE:", rmse(X[502:], предсказания), "R^2 Оценка:", rsquare(X[502:], предсказания))
Запустите и проанализируйте этот простой файл (в папке «учебники/Простые примеры с Mackey-Glass»), чтобы увидеть полный пример прогнозирования временных рядов с помощью ESN:
simple_example_MackeyGlass.py (с использованием класса ESN)
python simple_example_MackeyGlass.py
Если у вас возникли проблемы с тестированием некоторых примеров, ознакомьтесь с требованиями к расширенным пакетам в ReadTheDocs.
Чтобы установить его, используйте одну из следующих команд:
pip установить резервуар
или
pip установить резервуарpy==0.3.12
Если вы хотите запустить блокноты Python из папки учебных пособий , установите пакеты в файле требований (предупреждение: это может привести к понижению установленной версии Hyperopt):
pip install -r учебники/requirements.txt
Если вы хотите использовать предыдущую версию 0.2.4, вы можете установить ReservoirPy, используя:
pip установить резервуарpy == 0.2.4
Если вы хотите включить hyper
и его помощники по оптимизации гиперпараметров с помощью Hyperopt, используйте:
pip install резервуарpy [гипер]
Перейдите в папку учебных пособий для учебных пособий в блокнотах Jupyter.
Перейдите в папку примеров, чтобы найти примеры и статьи с кодами, также в Jupyter Notebooks.
Учебное пособие по ReservoirPy (v0.2) можно найти в этой статье (Trouvain et al. 2020).
Краткое руководство о том, как исследовать гиперпараметры с помощью ReservoirPy и Hyperopt, можно найти в этой статье (Trouvain et al. 2020).
Ознакомьтесь с нашими советами и методом исследования гиперпараметров резервуаров в нашей недавней статье: (Hinaut et al 2021) HTML HAL
Учебное пособие и блокнот Jupyter для исследования гиперпараметров
Дополнительная информация о Hyperopt: Официальный сайт.
Если вы хотите, чтобы ваша статья появилась здесь, свяжитесь с нами (см. контактную ссылку ниже).
Леже и др. (2024) Развивающиеся резервуары для обучения с метаподкреплением. PDF-код EvoAPPS 2024 HAL
Шай-Эйхель и др. (2022) От неявного обучения к явным представлениям. Препринт arXiv arXiv:2204.02484. arXiv PDF
Трувен и Хинаут (2021) Декодер канареечных песен: трансдукция и неявная сегментация с помощью ESN и LTSM. ICANN 2021 HTML HAL PDF
Пальярини и др. (2021) Канарская вокальная сенсомоторная модель с декодером RNN и низкоразмерным генератором GAN. МЦДЛ 2021. HTML
Пальярини и др. (2021) Что говорит Канарейка? Низкомерный GAN в применении к Birdsong. Препринт HAL. ХАЛ PDF
Какая реклама для моей новой задачи? Подсказки и случайный поиск гиперпараметров сетей состояния эха. ICANN 2021 HTML HAL PDF
Если у вас есть вопрос относительно библиотеки, пожалуйста, откройте вопрос. Если у вас есть более общие вопросы или отзывы, вы можете связаться с нами в Твиттере или по электронной почте xavier dot hinaut the-famous-home-symbol inria dot fr.
Трувен, Н., Педрелли, Л., Дин, Т.Т., Хинаут, X. (2020) Reservoirpy: эффективная и удобная библиотека для проектирования сетей эхо-состояний. На Международной конференции по искусственным нейронным сетям (стр. 494-505). Спрингер, Чам. HTML HAL PDF
Если вы используете ReservoirPy в своей работе, укажите наш пакет, используя следующую запись 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} }
Этот пакет разработан и поддерживается компанией Inria в Бордо, Франция, в группе Mnemosyne. Inria — французский научно-исследовательский институт цифровых наук (информатика, математика, робототехника и т. д.).