
적응 형 비선형 제약 및 효율적인 규칙화 (Neuromancer)를 갖는 신경 모듈은 파라 메트릭 제약 최적화 문제, 물리 정보 시스템 식별 및 파라 메트릭 모델 기반 최적 제어를 해결하기위한 오픈 소스 차별화 가능한 프로그래밍 (DP) 라이브러리입니다. Neuromancer는 Pytorch로 작성되었으며 사전 지식 및 물리학이 포함 된 엔드 투 엔드 차별화 가능한 모델 및 알고리즘을 생성하기위한 과학 컴퓨팅과 기계 학습을 체계적으로 통합 할 수 있습니다.
우리는 건물에 대한 부하 예측으로 에너지 시스템 도메인 예제를 확장합니다. 우리는 단기 전기 부하 예측 (파나마 사례 연구) 데이터 세트를 사용하여 시계열 모델링 및 예측 사용을 보여줍니다. 우리는 트랜스포머 모델, (신경) 블록에 추가 된 새로운 블록 및 기타 표준 블록을 사용하여 예측 용량을 보여줍니다. 또한 역사적 날씨 데이터를 활용하여 에너지 예측을 돕습니다.
Kolmogorov-Arnold Networks (KANS)는 최근 과학 기계 학습을위한 다층 퍼셉 트론 (MLP)의 대안으로 주목을 끌었습니다. 그러나 캔자는 비교적 작은 네트워크의 경우에도 훈련하는 데 비용이 많이들 수 있습니다. 우리는 캔자들을위한 도메인 분해 방법을위한 FBKAN 블록 (FBPINNS)을 구현하여 여러 소규모 캔자가 다중 스케일 문제에 대한 정확한 솔루션을 제공하기 위해 동시에 교육을받을 수 있도록합니다.
새로운 colab 예제 :
로드 예측
Kolgomorov-arnold 네트워크를 사용한 기능 근사치
단순히 실행됩니다
pip install neuromancer
수동 설치는 설치 지침을 참조하십시오
광범위한 튜토리얼 세트는 예제 폴더와 아래의 자습서에서 찾을 수 있습니다. 대화식 노트북 버전의 예제는 Google Colab에서 제공됩니다! 리포지토리를 복제하고 환경을 설정하기 전에 Neuromancer 기능을 테스트하십시오.
아래의 노트북은 뉴로맨서 라이브러리의 핵심 추상화, 특히 상징적 프로그래밍 인터페이스 및 노드 클래스의 핵심 추상화를 소개합니다.
1 부 : Pytorch 대 신경 향상의 선형 회귀.
2 부 : Neuromancer Syntax Tutorial : 변수, 제약 및 목표.
3 부 : Neuromancer Syntax Tutorial : 모듈, 노드 및 시스템 클래스.
Neuromancer를 사용하여 파라 메트릭 제한 최적화 문제를 해결하는 방법에 대한 빠른 예, 기호 프로그래밍 인터페이스, 노드 및 가변, 블록, 슬림 라이브러리 및 페널티 슬로스 클래스 활용.
# 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 부 : 2 차적으로 제한된 최적화 문제를 해결하는 법 학습.
파트 3 : 2D 제약 최적화 문제를 해결하는 법을 배웁니다.
파트 4 : 예상 기울기로 제한된 최적화 문제를 해결하는 법 학습.
파트 5 : 다색 실행 가능한 세트에 대한 차별화 가능한 투영을 위해 cvxpylayers를 사용합니다.
6 부 : 운영자 분할 레이어를위한 메트릭 학습으로 최적화하는 법 학습.
Neuromancer를 사용하면 선택 제약 및 객관적인 기능에 따라 흰색/회색/블랙 박스 동적 시스템의 전체 스펙트럼에 대한 제어 정책을 배울 수 있습니다. 차등 예측 제어에 대한 자세한 정보
Neuromancer는 최신 방법을 가지고 있습니다. 여기서 우리는 강력한 kolgomorov-arnold 네트워크를 보여줍니다.
Neuromancer를 사용하면 기계 학습, 사전 물리학 및 도메인 지식을 사용하여 시스템 동작의 측정 된 관찰에 따라 동적 시스템의 수학적 및 차별화 된 모델을 구성 할 수 있습니다. 신경 상태 공간 모델 및 ODE를 통한 시스템 ID에 대한 자세한 정보
Neuromancer의 상징적 프로그래밍 디자인은 Pinn을 해결하는 데 완벽하게 적합합니다. PINN에 대한 자세한 내용
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
주목할만한 기고자 : Aaron Tuor, Madelyn Shapiro, James Koch, Seth Briney, Bo Tang, Ethan King, Elliot Skomski, Zhao Chen, Christian Møldrup Legaard
과학 고문 : Draguna Vrabie, Panos Stinis
오픈 소스 기부금 :
Contrib.rocks로 만들어졌습니다.
이 연구는 과학 (MARS) 및 데이터 모델 수렴 (DMC) 이니셔티브 (DMC)의 실험실 지시 연구 개발 (LDRD) 투자를 통해 미국 에너지 국의 PNNL (Pacific Scientific Computing Research)의“DNC2)에 대한 사무실 (DNC2)을 통한 DNC 2 (DNC2) 및 RENER PROJERTION (DNC2) 및 RENER PROJERTION (DNC2) 및 RENER PROJECT (DNC2)의 수학에 의해 부분적으로 뒷받침되었습니다. 에너지, 건축 기술 사무소“자율 물리학 중심 딥 러닝 및 건물 운영 최적화를 통한 역동적 인 탈탄화”및“비용 효율적인 차별화 가능한 예측 제어에 의한 시장 준비가 된 건물 에너지 관리 발전”프로젝트. 이 프로젝트는 또한 MOLUCQ (Multifidelity Operator Learning) 프로젝트 (프로젝트 번호 81739)에 대한 불확실성 정량화하에 미국 에너지 부서의 고급 과학 컴퓨팅 연구 프로그램에서 지원되었습니다. PNNL은 계약 번호 DE-AC05-76RL0-1830에 따라 Battelle Memorial Institute에서 미국 에너지 부 (DOE)를 위해 운영되는 다중 프로그램 국립 연구소입니다.