
具有自適應非線性約束和有效正常化(NeuroMancer)的神經模塊是一個開源可區分的編程(DP)庫,用於解決參數約束優化問題,物理知識的系統識別和基於參數模型的最佳最佳控制。 Neuromancer用Pytorch編寫,並允許將機器學習與科學計算系統整合,以創建嵌入了先驗知識和物理學的端到端可區分模型和算法。
我們通過建築物的負載預測擴展了能源系統域示例。我們展示了使用短期電力預測(巴拿馬案例研究)數據集使用時間序列建模和預測。我們使用變壓器模型表明了預測的可結算,這是我們(神經)塊和其他標準塊中添加的新塊。我們還利用歷史天氣數據來幫助預測能源。
Kolmogorov-Arnold Networks(KANS)最近引起了人們的注意,以替代科學機器學習的多層感知器(MLP)。但是,即使對於相對較小的網絡,堪薩斯州的訓練也可能很昂貴。我們已經實施了一個FBKAN塊(FBPINNS),用於針對KAN的域分解方法,該方法允許並行對幾個小型KAN進行培訓,以提供多尺度問題的準確解決方案。
新的COLAB示例:
負載預測
與Kolgomorov-Arnold網絡的功能近似
只需運行
pip install neuromancer
有關手動安裝,請參閱安裝說明
在示例文件夾和下面的教程中可以找到大量的教程。互動筆記本版本的示例版本可在Google Colab上找到!在克隆存儲庫並設置環境之前,請測試神經化功能。
下面的筆記本介紹了神經庫庫的核心抽象,特別是我們的符號編程接口和節點類。
第1部分:Pytorch與Neuromancer中的線性回歸。
第2部分:Neuromancer語法教程:變量,約束和目標。
第3部分:Neuromancer語法教程:模塊,節點和系統類。
快速示例如何使用Neuromancer解決參數約束優化問題,利用我們的符號編程接口,節點和變量,塊,纖細的庫和poniltyloss類。
# 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旨在使用其方法數組來解決各種特定領域的建模和控制問題。在這裡,我們將展示如何建模和控制建築能源系統以及應用負載預測技術。
有關我們方法的更深入的介紹,請參閱下面的一般教程部分。
NeuroMancer允許您制定和解決一類廣泛的參數優化問題,利用機器學習來學習解決這些問題的解決方案。有關參數編程的更多信息
第1部分:學會解決受約束的優化問題。
第2部分:學會解決一個四限制的優化問題。
第3部分:學習解決一組2D約束優化問題。
第4部分:學習解決預計梯度的約束優化問題。
第5部分:使用cvxpylayers將可區分投影放在多面有的可行集合上。
第6部分:學習通過計量學習對操作員分裂層進行優化。
NeuroMancer允許您學習全部白色/灰色/黑色盒動力學系統的控制策略,但要遵守選擇約束和目標功能。有關差分預測控制的更多信息
Neuromancer是最新的最新方法。在這裡,我們展示強大的Kolgomorov-Arnold網絡更多有關Kolgomorov-Arnold Networks的信息
神經化劑允許人們使用機器學習,事先的物理和域知識,構建動態系統的數學和差異模型,鑑於系統行為的測量值。通過神經狀態空間模型和ODE的更多信息有關係統ID的更多信息
Neuromancer的象徵性編程設計非常適合解決Pinns。有關PINNS的更多信息
神經劑量已與Torchsde集成以處理隨機動力學系統。有關SDE的更多信息
我們已經集成了Pytorch Lightning,以簡化代碼,啟用自定義培訓邏輯,支持GPU和Multi-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
著名貢獻者:亞倫·托爾(Aaron Tuor),瑪德琳·夏皮羅(Madelyn Shapiro),詹姆斯·科赫(James Koch),塞思·布里尼(Seth Briney),博·唐(Bo Tang),伊桑·金
科學顧問:Panos Stinis的Draguna Vrabie
開源捐款由以下方式做出:
用貢獻製成。
這項研究得到了科學(MARS)的人工推理數學的部分支持,以及通過實驗室的指示研究與發展(LDRD)投資(PNNL)的實驗室指示(LDRD)投資,由美國能源部通過高級科學計算機研究及復雜的系統(DN)的項目(DN)啟用,並通過美國能源部(PNNL)(PNNL)(PNNL)(DNNL)(DNNL)(DMC)。可再生能源,建築技術辦公室,“通過以自主物理為中心的深度學習和建築運營優化的動態脫碳化”和“通過具有成本效益的可區分預測性控制的推進市場準備就緒的建築能源管理”項目。該項目還得到了美國能源部高級科學計算研究計劃的支持,該計劃的不確定性量化了多重操作員學習(MOLUCQ)項目(項目號81739)。 PNNL是由Battelle Memorial Institute根據DE-AC05-76RL0-1830為美國能源部(DOE)運營的多個國家實驗室。