
Modul saraf dengan kendala nonlinier adaptif dan regularisasi efisien (Neuromancer) adalah perpustakaan pemrograman yang dapat dibedakan dengan sumber terbuka (DP) untuk menyelesaikan masalah optimasi terbatas parametrik, identifikasi sistem yang diubah fisika, dan kontrol optimal berbasis model parametrik. Neuromancer ditulis dalam Pytorch dan memungkinkan integrasi sistematis pembelajaran mesin dengan komputasi ilmiah untuk membuat model dan algoritma yang dapat diferensiasi ujung ke ujung yang tertanam dengan pengetahuan dan fisika sebelumnya.
Kami memperluas contoh domain sistem energi kami dengan perkiraan beban untuk bangunan. Kami memamerkan penggunaan pemodelan dan peramalan seri-waktu menggunakan dataset perkiraan beban listrik jangka pendek (Panama Study). Kami mendemonstrasikan kapa peramalan menggunakan model transformator, blok baru yang ditambahkan ke blok (saraf) kami, serta blok standar lainnya. Kami juga menggunakan data cuaca historis untuk membantu peramalan energi.
Jaringan Kolmogorov-Arnold (KAN) telah menarik perhatian baru-baru ini sebagai alternatif untuk multilayer perceptrons (MLP) untuk pembelajaran mesin ilmiah. Namun, Kans bisa mahal untuk dilatih, bahkan untuk jaringan yang relatif kecil. Kami telah menerapkan blok FBKAN (FBPINNS), untuk metode dekomposisi domain untuk KAN yang memungkinkan beberapa KAN kecil dilatih secara paralel untuk memberikan solusi yang akurat untuk masalah multiskala.
Contoh Colab Baru:
Memuat peramalan
Perkiraan fungsi dengan jaringan Kolgomorov-Arnold
Cukup jalankan
pip install neuromancer
Untuk instalasi manual, silakan lihat instruksi instalasi
Satu set tutorial yang luas dapat ditemukan di folder Contoh dan tutorial di bawah ini. Versi notebook interaktif dari contoh tersedia di Google Colab! Uji fungsionalitas neuromancer sebelum mengkloning repositori dan menyiapkan lingkungan.
Notebook di bawah ini memperkenalkan abstraksi inti dari Perpustakaan Neuromancer, khususnya, antarmuka pemrograman simbolik kami dan kelas -kelas simpul.
Bagian 1: Regresi linier di Pytorch vs Neuromancer.
Bagian 2: Tutorial Sintaks Neuromancer: Variabel, Kendala, dan Tujuan.
Bagian 3: Tutorial Sintaks Neuromancer: Modul, Node, dan Kelas Sistem.
Contoh cepat untuk cara memecahkan masalah optimisasi terbatas parametrik menggunakan neuromancer, memanfaatkan antarmuka pemrograman simbolik kami, node dan variabel, blok, perpustakaan ramping, dan kelas penaltyloss.
# 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 dibangun untuk menangani berbagai pemodelan spesifik domain dan masalah kontrol menggunakan berbagai metode. Di sini kami menunjukkan cara memodelkan dan mengontrol sistem energi bangunan, serta menerapkan teknik peramalan beban.
Untuk cakupan yang lebih mendalam tentang metode kami, silakan lihat bagian tutorial umum kami di bawah ini.
Neuromancer memungkinkan Anda untuk merumuskan dan memecahkan kelas luas masalah optimasi parametrik yang memanfaatkan pembelajaran mesin untuk mempelajari solusi untuk masalah tersebut. Informasi lebih lanjut tentang pemrograman parametrik
Bagian 1: Belajar memecahkan masalah optimasi yang terbatas.
Bagian 2: Belajar memecahkan masalah optimisasi yang dibatasi secara kuadratik.
Bagian 3: Belajar memecahkan serangkaian masalah optimisasi 2D terbatas.
Bagian 4: Belajar memecahkan masalah optimasi yang terbatas dengan gradien yang diproyeksikan.
Bagian 5: Menggunakan CVXPylayers untuk proyeksi yang dapat dibedakan ke set layak polytopic.
Bagian 6: Belajar mengoptimalkan dengan pembelajaran metrik untuk lapisan pemisahan operator.
Neuromancer memungkinkan Anda mempelajari kebijakan kontrol untuk spektrum penuh sistem dinamis putih/abu-abu/hitam, tunduk pada batasan pilihan dan fungsi objektif. Informasi lebih lanjut tentang kontrol prediktif diferensial
Neuromancer mutakhir dengan metode canggih. Di sini kami menampilkan Jaringan Kolgomorov-Arnold yang kuat informasi lebih lanjut tentang Jaringan Kolgomorov-Arnold
Neuromancer memungkinkan seseorang untuk menggunakan pembelajaran mesin, fisika sebelumnya dan pengetahuan domain, untuk membangun model matematika dan diferensiab dari sistem dinamis mengingat pengamatan yang diukur dari perilaku sistem. Informasi lebih lanjut tentang ID sistem melalui model ruang angkasa saraf dan odes
Desain pemrograman simbolik Neuromancer sangat cocok untuk menyelesaikan pinns. Informasi lebih lanjut tentang pinns
Neuromancer telah diintegrasikan dengan Torchsde untuk menangani sistem dinamis stokastik. Informasi lebih lanjut tentang SDES
Kami telah mengintegrasikan Pytorch Lightning untuk merampingkan kode, mengaktifkan logika pelatihan khusus, mendukung GPU dan pengaturan multi-GPU, dan menangani tugas pembelajaran skala besar, intensif memori.
Dokumentasi untuk perpustakaan dapat ditemukan online. Ada juga video pengantar yang mencakup fitur inti perpustakaan.
Untuk informasi lebih lanjut, termasuk yang untuk pengembang, silakan kunjungi pengembang dan panduan pengguna kami
Kami menyambut kontribusi dan umpan balik dari komunitas open-source!
Harap baca pedoman pengembangan masyarakat untuk informasi lebih lanjut tentang kontribusi, diskusi, dan masalah.
Lihat catatan rilis yang mendokumentasikan fitur baru.
Neuromancer hadir dengan lisensi BSD. Lihat lisensi untuk perincian lebih lanjut.
@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}
} Pengembang Inti Aktif : Jan Drgona, Rahul Birmiwal, Bruno Jacob
Kontributor terkenal : Aaron Tuor, Madelyn Shapiro, James Koch, Seth Briney, Bo Tang, Ethan King, Elliot Skomski, Zhao Chen, Christian Møldrup Legaard
Penasihat Ilmiah : Draguna Vrabie, Panos Stinis
Kontribusi open-source yang dibuat oleh:
Dibuat dengan contrib.rocks.
Penelitian ini sebagian didukung oleh inisiatif matematika untuk penalaran buatan dalam sains (MARS) dan inisiatif Model Data Convergence (DMC) melalui Investasi Penelitian dan Pengembangan Laboratorium (LDRD) di Pacific Northwest National Laboratory (PNNL), Departemen Komplisi Data US, Kompleks Kompleks Komputasi Lanjutan Kompleks Komputasi Advanced Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computing Computer Kantor Energi, Teknologi Bangunan di bawah “Dekarbonisasi Dinamis Melalui Pembelajaran Deep yang Berpusat pada Fisika Otonomi dan Optimalisasi Operasi Bangunan” dan “Manajemen Energi Bangunan yang Bersiap Pasar yang Memajukan dengan Proyek Kontrol Prediktif yang Dapat Diferensial Biaya”. Proyek ini juga didukung dari Departemen Energi AS, Program Penelitian Komputasi Ilmiah Lanjutan, di bawah Kuantifikasi Ketidakpastian untuk Proyek Pembelajaran Operator Multifidelity (MULUCQ) (Proyek No. 81739). PNNL adalah laboratorium nasional multi-program yang dioperasikan untuk Departemen Energi AS (DOE) oleh Battelle Memorial Institute berdasarkan Kontrak No. DE-AC05-76RL0-1830.