ReservoirPy (v0.3.12) ??
Echo State Networks (ESN) などの Reservoir Computing アーキテクチャ用のシンプルで柔軟なコード。
エキサイティングなニュース!大規模言語モデルに基づいた新しいベータ ツールをリリースしました。 「ReservoirChat」でチャットして、Reservoir Computing やコーディング リザーバーについて何でも質問できます。 ?期間限定なのでお見逃しなく! ⏳ https://chat.reservoirpy.inria.fr
from 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(時系列)
ReservoirPy は、Python 科学モジュールに基づくシンプルで使いやすいライブラリです。特にエコー ステート ネットワーク(ESN) に重点を置いた効率的なリザーバー コンピューティング (RC) アーキテクチャを実装するための柔軟なインターフェイスを提供します。 ReservoirPy の高度な機能により、あらゆるサイズのデータセットを使用する場合、基本的な Python 実装と比較して、単純なラップトップでの計算時間の効率を向上させることができます。
その機能の一部は、オフラインおよびオンライン トレーニング、並列実装、疎行列計算、高速スペクトル初期化、高度な学習ルール(例:固有可塑性) などです。また、複数のリザーバー (例:深いリザーバー)を備えた複雑なアーキテクチャを簡単に作成することも可能になります。読み出し、および複雑なフィードバック ループ。さらに、 hyperoptライブラリを使用してハイパーパラメータを簡単に探索できるグラフィカル ツールが含まれています。最後に、エキゾチックなアーキテクチャを探索するいくつかのチュートリアルと科学論文の複製の例が含まれています。
このライブラリはPython 3.8以降で動作します。
Twitter で @reservoirpy の最新情報や新リリースをフォローしてください。
ReservoirPy の主な機能、その API、およびインストール プロセスの詳細については、ReservoirPy の公式ドキュメントを参照してください。または、チュートリアルを含むユーザー ガイドに直接アクセスすることもできます。
pip install reservoirpy
(より高度なインストール オプションについては、以下を参照してください)
ステップ 1: データセットをロードする
ReservoirPy には、Mackey-Glass 時系列予測などのよく知られたタスク用の合成時系列を作成できる便利なデータ ジェネレーターが付属しています。
reservoirpy.datasets からインポート mackey_glassX = mackey_glass(n_timesteps=2000)
ステップ 2: エコー状態ネットワークを作成する...
...またはタスクを解決するために使用したいあらゆる種類のモデル。この単純な使用例では、Reservoir Computing マシンの最も最小限のアーキテクチャの 1 つである Echo State Networks (ESN) を試します。
ESN は、高次元 (非線形) 空間で入力をエンコードするために使用されるランダム再帰ネットワークであるリザーバーと、目的の出力の読み出しを担当するニューロンの単純なフィードフォワード層であるリードアウトで構成されます。リザーバーの活性化から。
from reservoirpy.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 のリザーバーを取得します (これらのハイパーパラメーターの詳細については、チュートリアル「ハイパーパラメーターの理解と最適化」を参照してください)。ここで、読み出し層は単なる単一ユニットであり、リザーバ (のすべてのユニット) からの接続を受け取ります。読み出し層接続のみがトレーニングされることに注意してください。これは、すべての Reservoir Computing 技術の基礎の 1 つです。私たちのケースでは、正則化係数 10 -5を使用して線形回帰を使用してこれらの接続をトレーニングします。
それでは、 >>
演算子を使用してすべてを接続しましょう。
esn = リザーバー >> 読み出し
それでおしまい!次のステップ: 必要なタスクを実行するために読み出しの重みを適合させます。私たちは、時系列の一歩先を予測できるように ESN をトレーニングします。
ステップ 3: ESN を適合させて実行する
時系列の最初の 500 タイムステップで ESN をトレーニングし、100 ステップは貯留層の状態をウォームアップするために使用します。
esn.fit(X[:500], X[1:501], ウォームアップ=100)
ESN はトレーニングされ、使用できるようになりました。時系列の残りの部分で実行してみましょう。
予測 = esn.run(X[501:-1])
ショートカットとして、両方の操作を 1 行で実行できます。
予測 = esn.fit(X[:500], X[1:501]).run(X[501:-1])
では、その性能を評価してみましょう。
ステップ 4: ESN を評価する
reservoirpy.observables から import rmse, rsquareprint("RMSE:", rmse(X[502:], 予測), "R^2 スコア:", rsquare(X[502:], 予測))
この単純なファイル (「tutorials/Simple Examples with Mackey-Glass」フォルダー内) を実行して分析し、ESN を使用した時系列予測の完全な例を確認します。
simple_example_MackeyGlass.py (ESN クラスを使用)
Python simple_example_MackeyGlass.py
いくつかの例のテストで問題が発生した場合は、ReadTheDocs で拡張パッケージの要件を参照してください。
インストールするには、次のコマンドのいずれかを使用します。
pip install reservoirpy
または
pip install reservoirpy==0.3.12
チュートリアルフォルダーの Python ノートブックを実行する場合は、要件ファイルにパッケージをインストールします (警告: これにより、インストールされている hyperopt のバージョンがダウングレードされる可能性があります)。
pip install -r チュートリアル/requirements.txt
以前のバージョン 0.2.4 を使用したい場合は、以下を使用して ReservoirPy をインストールできます。
pip install reservoirpy==0.2.4
hyperopt を使用してhyper
パッケージとそのハイパーパラメータ最適化ヘルパーを有効にする場合は、次を使用します。
pip install reservoirpy[ハイパー]
Jupyter Notebook のチュートリアルのチュートリアル フォルダーに移動します。
コードを含むサンプルと論文については、同じく Jupyter Notebook のサンプル フォルダーに移動します。
ReservoirPy (v0.2) のチュートリアルは、この論文にあります (Trouvain et al. 2020)。
ReservoirPy と Hyperopt を使用してハイパーパラメータを探索する方法に関する簡単なチュートリアルは、この論文にあります (Trouvain et al. 2020)。
最近の論文 (Hinaut et al 2021) HTML HAL で、貯留層のハイパーパラメーターを探索するための私たちのアドバイスと方法をご覧ください。
ハイパーパラメータ探索のためのチュートリアルと Jupyter Notebook
hyperopt の詳細: 公式ウェブサイト
あなたの論文をここに掲載したい場合は、当社までご連絡ください(下記の連絡先リンクを参照)。
レジェら。 (2024) メタ強化学習の進化する貯蔵所。 EvoAPPS 2024 HAL PDF コード
Chaix-Eichel et al. (2022) 暗黙的な学習から明示的な表現へ。 arXiv プレプリント arXiv:2204.02484。 arXiv PDF
Trovain & Hideau (2021) Canary Song Decoder: ESN と LTSM による変換と暗黙的セグメンテーション。 ICANN 2021 HTML HAL PDF
パリアリーニら。 (2021) RNN デコーダーと低次元 GAN ジェネレーターを備えた Canary 音声感覚運動モデル。 ICDL 2021.HTML
パリアリーニら。 (2021) カナリアは何と言っていますか?鳥の鳴き声に低次元 GAN を適用。 HALのプレプリント。ハル PDF
私の新しい仕事に対する誇大広告はどれですか? Echo State Networks ハイパーパラメータのヒントとランダム検索。 ICANN 2021 HTML HAL PDF
ライブラリに関する質問がある場合は、問題を開いてください。さらに一般的な質問やフィードバックがある場合は、twitter または電子メールで xavier dot hinaut the-popular-home-symbol inria dot fr までご連絡ください。
Trouvain, N.、Pedrelli, L.、Dinh, TT、Hinaut, X. (2020) Reservoirpy: エコー状態ネットワークを設計するための効率的でユーザーフレンドリーなライブラリ。人工ニューラルネットワークに関する国際会議にて (pp. 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} }
このパッケージは、フランスのボルドーにある Mnemosyne グループの Inria によって開発およびサポートされています。 Inria は、フランスのデジタル サイエンス (コンピューター サイエンス、数学、ロボット工学など) の研究所です。