
具有自适应非线性约束和有效正常化(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)运营的多个国家实验室。