
適応性のない非線形制約と効率的な正規化(Neuromancer)を備えたニューラルモジュールは、パラメトリック制約の最適化問題、物理学に基づいたシステム識別、およびパラメトリックモデルベースの最適制御を解決するためのオープンソース微分プログラミング(DP)ライブラリです。 NeuromancerはPytorchで書かれており、機械学習と科学的コンピューティングとエンドツーエンドの微分モデルと、事前知識と物理学に組み込まれたアルゴリズムを作成するための体系的な統合を可能にします。
建物の負荷予測でエネルギーシステムドメインの例を拡張します。短期の電力負荷予測(Panama Case Study)データセットを使用して、時系列モデリングと予測の使用を紹介します。変圧器モデル、(ニューラル)ブロックに追加された新しいブロック、およびその他の標準ブロックを使用して、予測キャパイブルを実証します。また、歴史的な気象データを利用して、エネルギー予測を支援します。
Kolmogorov-Arnold Networks(KANS)は、科学機械学習のための多層パーセプロン(MLPS)の代替として最近注目を集めています。ただし、Kansは、比較的小さなネットワークであっても、トレーニングに費用がかかる場合があります。 Kansのドメイン分解方法用のFBKANブロック(FBPINNS)を実装しました。
新しいコラブの例:
ロード予測
Kolgomorov-Arnoldネットワークを使用した関数近似
単に実行します
pip install neuromancer
手動インストールについては、インストールの指示を参照してください
広範なチュートリアルのセットは、Examplesフォルダーと以下のチュートリアルに記載されています。インタラクティブなノートブックバージョンの例は、Google Colabで入手できます!リポジトリをクローン化して環境をセットアップする前に、ニューロマンサー機能をテストします。
以下のノートブックでは、ニューロマンサーライブラリ、特にシンボリックプログラミングインターフェイスとノードクラスのコア抽象化を紹介します。
パート1:Pytorch vs Neuromancerの線形回帰。
パート2:ニューロマンサーの構文チュートリアル:変数、制約、および目的。
パート3:ニューロマンサーの構文チュートリアル:モジュール、ノード、およびシステムクラス。
ニューロマンサーを使用してパラメトリック制約の最適化問題を解決する方法の簡単な例。シンボリックプログラミングインターフェイス、ノードと変数、ブロック、スリムライブラリ、ペナルティロスクラスを活用します。
# Neuromancer syntax example for constrained optimization
import neuromancer as nm
import torch
# define neural architecture
func = nm . modules . blocks . MLP ( insize = 1 , outsize = 2 ,
linear_map = nm . slim . maps [ 'linear' ],
nonlin = torch . nn . ReLU , hsizes = [ 80 ] * 4 )
# wrap neural net into symbolic representation via the Node class: map(p) -> x
map = nm . system . Node ( func , [ 'p' ], [ 'x' ], name = 'map' )
# define decision variables
x = nm . constraint . variable ( "x" )[:, [ 0 ]]
y = nm . constraint . variable ( "x" )[:, [ 1 ]]
# problem parameters sampled in the dataset
p = nm . constraint . variable ( 'p' )
# define objective function
f = ( 1 - x ) ** 2 + ( y - x ** 2 ) ** 2
obj = f . minimize ( weight = 1.0 )
# define constraints
con_1 = 100. * ( x >= y )
con_2 = 100. * ( x ** 2 + y ** 2 <= p ** 2 )
# create penalty method-based loss function
loss = nm . loss . PenaltyLoss ( objectives = [ obj ], constraints = [ con_1 , con_2 ])
# construct differentiable constrained optimization problem
problem = nm . problem . Problem ( nodes = [ map ], loss = loss )ニューロマンサーは、さまざまな方法を使用して、さまざまなドメイン固有のモデリングと制御の問題に取り組むために構築されています。ここでは、建物のエネルギーシステムをモデル化および制御する方法と、負荷予測技術を適用する方法を示します。
メソッドの詳細については、以下の一般的なチュートリアルセクションを参照してください。
Neuromancerを使用すると、機械学習を活用してそのような問題の解決策を学習するための幅広いクラスのパラメトリック最適化問題を策定および解決できます。パラメトリックプログラミングの詳細
パート1:制約された最適化問題を解決することを学ぶ。
パート2:象徴的に制約のある最適化問題を解決することを学ぶ。
パート3:2D制約付き最適化問題のセットを解決することを学ぶ。
パート4:予測された勾配で制約された最適化問題を解決することを学ぶ。
パート5:Polytopic Everableセットに微分可能な投影のためにCVXPylayersを使用します。
パート6:オペレーターの分割レイヤーのメトリック学習で最適化することを学ぶ。
Neuromancerを使用すると、選択の制約と目的関数を条件として、ホワイト/グレー/ブラックボックスの動的システムの全範囲の制御ポリシーを学習できます。微分予測制御の詳細
Neuromancerは最新の方法で最新です。ここでは、強力なコルゴモロフ・アーノルドネットワークを紹介します。
ニューロマンサーは、システムの動作の測定された観測を考慮して、機械学習、以前の物理学およびドメイン知識を使用して、動的システムの数学的および違いモデルを構築することができます。ニューラル状態空間モデルとODEを介したシステムIDの詳細
NeuroMancerのシンボリックプログラミング設計は、PINNの解決に最適です。 PINNSの詳細
Neuromancerは、確率的動的システムを処理するためにTorchsdeと統合されています。 SDEの詳細
Pytorch Lightningを統合して、コードを合理化し、カスタムトレーニングロジックを有効にし、GPUとマルチGPUのセットアップをサポートし、大規模でメモリ集約型の学習タスクを処理しています。
ライブラリのドキュメントはオンラインで見つけることができます。ライブラリのコア機能をカバーする紹介ビデオもあります。
開発者の詳細については、開発者とユーザーガイドにアクセスしてください
オープンソースコミュニティからの貢献とフィードバックを歓迎します!
貢献、議論、問題に関する詳細については、コミュニティ開発ガイドラインをお読みください。
新機能を文書化するリリースノートを参照してください。
NeuromancerにはBSDライセンスが付いています。詳細については、ライセンスを参照してください。
@article{Neuromancer2023,
title={{NeuroMANCER : Neural Modules with Adaptive Nonlinear Constraints and Efficient Regularizations}},
author={Drgona, Jan and Tuor, Aaron and Koch, James and Shapiro, Madelyn and Jacob, Bruno and Vrabie, Draguna},
Url= {https://github.com/pnnl/neuromancer},
year={2023}
} アクティブコア開発者:Jan Drgona、Rahul Birmiwal、Bruno Jacob
注目すべき貢献者:アーロン・トゥール、マデリン・シャピロ、ジェームズ・コッホ、セス・ブラニー、ボ・タン、イーサン・キング、エリオット・スコムスキー、Zhao Chen、クリスチャン・モルドルップ・レガード
科学アドバイザー:Draguna Vrabie、Panos Stinis
以下のオープンソースの貢献:
contrib.rocksで作られています。
この研究は、科学(MARS)の人為的推論(MARS)およびデータモデルコンバージェンス(DMC)のイニシアチブのための数学によって部分的にサポートされていました。 Energy、Building Technologies Office「自律物理学中心の深い学習と建築運用の最適化による動的脱炭素化」および「費用対効果の高い微分微分予測制御による市場対応の建築エネルギー管理」プロジェクト。このプロジェクトは、マルチディデリティオペレーター学習(MOLUCQ)プロジェクト(プロジェクトNo. 81739)の不確実性定量化の下で、高度な科学コンピューティング研究プログラムである米国エネルギー省からもサポートされています。 PNNLは、契約番号DE-AC05-76RL0-1830に基づいて、バテル記念研究所が米国エネルギー省(DOE)で運営するマルチプログラム国立研究所です。