
Neuromancer V1.5.2
Los módulos neuronales con restricciones no lineales adaptativas y regularizaciones eficientes (Neuromancer) es una biblioteca de programación diferenciable de código abierto (DP) para resolver problemas de optimización limitados paramétricos, identificación del sistema informado por física y control óptimo basado en modelos paramétricos. Neuromancer está escrito en Pytorch y permite la integración sistemática del aprendizaje automático con computación científica para crear modelos y algoritmos diferenciables de extremo a extremo integrados con conocimiento previo y física.
Tabla de contenido
- Descripción general
- Características clave
- ¿Qué hay de nuevo en v1.5.2?
- Instalación
- Empezando
- Tutoriales
- Documentación y guías de usuario
Características clave
- Aprenda a modelar, aprender a controlar, aprender a optimizar : nuestra biblioteca está creada para proporcionar a los usuarios finales una multitud de herramientas para resolver el aprendizaje para optimizar (L2O), aprender a modelar (L2M) y aprender a controlar (L2C) tareas. Abordar la optimización paramétrica constituida avanzada, la dinámica de fluidos modelo utilizando redes neuronales informadas por física o aprender cómo controlar la temperatura del aire interior en los edificios para maximizar la eficiencia del edificio.
- La interfaz de programación simbólica hace que sea muy fácil definir el conocimiento previo de la física, el conocimiento del dominio y las limitaciones en los paradigmas de aprendizaje.
- Herramientas de aprendizaje integrales : acceda a una amplia gama de tutoriales y aplicaciones de ejemplo, desde la identificación básica del sistema hasta el control predictivo avanzado, lo que es fácil para los usuarios aprender y aplicar Neuromancer a problemas del mundo real.
- Métodos de vanguardia : Neuromancer está actualizado con métodos SOTA como Kolgomorov-Arnold Networks (Kans) para la aproximación de funciones, ecuaciones diferenciales ordinarias neuronales (nodos) e identificación dispersa de dinámica no lineal (SINDY) para aprender a modelar sistemas dinámicos, y diferentes capas de optimización de optimización para la seguridad en el aprendizaje de la seguridad y el aprendizaje del aprendizaje a los modelos.
¿Qué hay de nuevo en v1.5.2?
Capacidades de pronóstico de carga y transformadores
Expandimos nuestros ejemplos de dominio de sistemas de energía con pronósticos de carga para edificios. Mostramos el uso del modelado y el pronóstico de la serie temporal utilizando el conjunto de datos de pronóstico de carga de electricidad a corto plazo (Estudio de caso de Panamá). Demostramos capacidades de pronóstico utilizando un modelo de transformador, un nuevo bloque agregado a nuestros bloques (neuronales ).py, así como otros bloques estándar. También utilizamos datos meteorológicos históricos para ayudar en el pronóstico de energía.
Básis Finito Kolgomorov Arnold Networks
Kolmogorov-Arnold Networks (Kans) ha atraído la atención recientemente como una alternativa a los perceptrones multicapa (MLP) para el aprendizaje automático científico. Sin embargo, Kans puede ser costoso de entrenar, incluso para redes relativamente pequeñas. Hemos implementado un bloque FBKAN (FBPINN), para el método de descomposición de dominio para Kans que permite que varios Kans pequeños se entrenen en paralelo para dar soluciones precisas para problemas multiescala.
Nuevos ejemplos de colab:
Pronóstico de carga
Aproximación de la función con redes Kolgomorov-Arnold
Instalación
Simplemente ejecutar
Para la instalación manual, consulte las instrucciones de instalación
Empezando
Se puede encontrar un extenso conjunto de tutoriales en la carpeta de ejemplos y los tutoriales a continuación. ¡Las versiones interactivas de los ejemplos están disponibles en Google Colab! Pruebe la funcionalidad del neuromancer antes de clonar el repositorio y configurar un entorno.
Los cuadernos a continuación introducen las abstracciones centrales de la Biblioteca Neuromancer, en particular, nuestras clases de interfaz de programación simbólica y nodos.
Variables simbólicas, nodos, limitaciones, objetivos y clases de sistemas
Parte 1: Regresión lineal en Pytorch vs Neuromancer.
Parte 2: Tutorial de sintaxis del neuromancer: variables, restricciones y objetivos.
Parte 3: Tutorial de sintaxis del neuromancer: módulos, nodo y clase de sistema.
Ejemplo
Ejemplo rápido sobre cómo resolver el problema de optimización paramétrica restringida utilizando Neuromancer, aprovechando nuestra interfaz de programación simbólica, nodo y variable, bloques, biblioteca delgada y clases de 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 )Ejemplos de dominio
Neuromancer está construido para abordar una variedad de problemas de modelado y control específicos del dominio utilizando su variedad de métodos. Aquí mostramos cómo modelar y controlar los sistemas de energía de la construcción, así como aplicar técnicas de pronóstico de carga.
Para obtener una cobertura más profunda de nuestros métodos, consulte nuestra sección de tutoriales generales a continuación.
Sistemas de energía
- Aprender la construcción de la dinámica térmica utilizando ODES neurales
- Red de resistencia de dinámica de construcción multizonal con odas neuronales
- Dinámica de la ecuación de swing de aprendizaje usando ODES neurales
- Aprender a controlar la temperatura del aire interior en edificios
- Pronóstico de carga de energía para el sistema de manejo de aire de un edificio de oficinas con modelos MLP y CNN
- Pronóstico de carga de energía para la construcción con modelo Transformers
- Aprender a controlar el sistema de hyrdoelectricidad de almacenamiento bombeado
Tutoriales sobre métodos para modelar, optimización y control
Aprender a optimizar (L2O) Programación paramétrica
Neuromancer le permite formular y resolver una amplia clase de problemas de optimización paramétrica que aprovechan el aprendizaje automático para aprender las soluciones a tales problemas. Más información sobre la programación paramétrica
Parte 1: Aprendiendo a resolver un problema de optimización restringido.
Parte 2: Aprender a resolver un problema de optimización con restricciones cuadráticas.
Parte 3: Aprender a resolver un conjunto de problemas de optimización restringidos 2D.
Parte 4: Aprendiendo a resolver un problema de optimización restringido con el gradiente proyectado.
Parte 5: Uso de CVXPylayers para una proyección diferenciable en el conjunto factible politópico.
Parte 6: Aprender a optimizar con el aprendizaje métrico para las capas de división del operador.
Aprender a controlar (L2C)
Neuromancer le permite aprender políticas de control para un espectro completo de sistemas dinámicos blancos/grises/negros, sujeto a restricciones de elección y funciones objetivas. Más información sobre el control predictivo diferencial
- Parte 1: Aprender a estabilizar un sistema dinámico lineal.
- Parte 2: Aprender a estabilizar una ecuación diferencial no lineal.
- Parte 3: Aprender a controlar una ecuación diferencial no lineal.
- Parte 4: Modelo de ODE neural de aprendizaje y política de control para un sistema dinámico desconocido.
- Parte 5: Aprendizaje de la función neural de Lyapunov para un sistema dinámico no lineal.
Aproximación de función
Neuromancer está actualizado con los métodos de última generación. Aquí mostramos las poderosas redes Kolgomorov-Arnold más información sobre las redes Kolgomorov-Arnold
- Parte 1: Una comparación de Kans y FBKans en el aprendizaje de una función multiescala 1D con ruido
- Parte 2: Una comparación de Kans y FBKans en el aprendizaje de una función multiescala 2D con ruido
Operadores neuronales
Neuromancer permite que uno use el aprendizaje automático, la física previa y el conocimiento del dominio, para construir modelos matemáticos y diferentes de sistemas dinámicos dadas las observaciones medidas del comportamiento del sistema. Más información sobre ID del sistema a través de modelos de espacio de estado neuronal y ODES
- Parte 1: Ecuaciones diferenciales ordinarias neuronales (nodos)
- Parte 2: Estimación de parámetros del sistema ODE
- Parte 3: Ecuaciones diferenciales universales (UDES)
- Parte 4: Nodos con entradas exógenas
- Parte 5: Modelos espaciales de estado neural (NSSMS) con entradas exógenas
- Parte 6: Modelado de datos de la capacidad de resistencia (RC) ODES de red
- Parte 7: Operador de Deep Koopman
- Parte 8: Operador de Koopman profundo orientado al control
- Parte 9: Identificación escasa de la dinámica no lineal (Sindy)
Redes neuronales informadas por física (PINN)
El diseño de programación simbólica de Neuromancer es perfectamente adecuado para resolver pinns. Más información sobre pinns
- Parte 1: Ecuación de difusión
- Parte 2: ecuación de hamburguesas
- Parte 3: Ecuación de hamburguesas con estimación de parámetros (problema inverso)
- Parte 4: Ecuación de Laplace (estado estacionario)
- Parte 5: Péndulo amortiguado (Pinn apilado)
- Parte 6: ecuación de Navier-Stokes (flujo de cavidad impulsado por la tapa, estado estacionario, kan)
Ecuaciones diferenciales estocásticas (SDE)
Neuromancer se ha integrado con las antorchas para manejar sistemas dinámicos estocásticos. Más información sobre SDES
- LatentsDes: "Identificación del sistema" de procesos estocásticos utilizando las antorchas de Neuromancer X
Escalabilidad y personalización
Integración de Lightning de Pytorch
Tenemos un Lightning de Pytorch integrado para optimizar el código, habilitar la lógica de capacitación personalizada, admitir configuraciones de GPU y múltiples GPU, y manejar tareas de aprendizaje a gran escala e intensiva en memoria.
- Parte 1: Conceptos básicos de integración de Lightning.
- Parte 2: Características avanzadas de Lightning y soporte automático de GPU.
- Parte 4: Definición de la lógica de entrenamiento personalizado a través del código modularizado de Lightning.
Documentación y guías de usuario
La documentación para la biblioteca se puede encontrar en línea. También hay un video de introducción que cubre las características principales de la biblioteca.
Para obtener más información, incluidas las de los desarrolladores, visite nuestro desarrollador y guía del usuario
Información comunitaria
¡Agradecemos las contribuciones y los comentarios de la comunidad de código abierto!
Contribuciones, discusiones y problemas
Lea las pautas de desarrollo de la comunidad para obtener más información sobre contribuciones, discusiones y problemas.
Notas de lanzamiento
Consulte las notas de la versión que documentan nuevas funciones.
Licencia
Neuromancer viene con licencia BSD. Vea la licencia para obtener más detalles.
Publicaciones
- Bo Tang, Elias B. Khalil, Ján Drgoňa, Aprendiendo a optimizar para programación no lineal de entero mixto, ARXIV: 2410.11061, 2024
- John Viljoen, Wenceslao Shaw Cortez, Jan Drgona, Sebastian East, Masayoshi Tomizuka, Draguna Vrabie, Control predictivo diferenciable para la robótica: un enfoque de filtro de seguridad predictivo basado en datos, ARXIV: 2409.13817, 2024
- Jan Drgona, Aaron Tuor, Draguna Vrabie, aprendiendo políticas de control predictivo paramétricos diferenciables con garantías, transacciones IEEE en sistemas, hombre y cibernética: sistemas, 2024
- Renukanandan Tumu, Wenceslao Shaw Cortez, Ján Drgoňa, Draguna L. Vrabie, Sonja Glavaski, Control predictivo diferenciable para redes de carreteras urbanas a gran escala, ARXIV: 2406.10433, 2024, 2024, 2024
- Ethan King, James Kotary, Ferdinando Fioretto, Jan Drgona, Aprendizaje métrico para acelerar la convergencia de los métodos de división del operador para la programación paramétrica diferenciable, ARXIV: 2404.00882, 2024
- James Koch, Madelyn Shapiro, Himanshu Sharma, Draguna Vrabie, Jan Drgona, Ecuaciones algebraicas diferenciales neurales, ARXIV: 2403.12938, 2024
- Wenceslao Shaw Cortez, Jan Drgona, Draguna Vrabie, Mahantesh Halappanavar, un filtro de seguridad predictivo robusto y eficiente, ARXIV: 2311.08496, 2024
- Shrirang Abhyankar, Jan Drgona, Andrew August, Elliott Skomski, Aaron Tuor, modelado de carga dinámica neurofísica utilizando optimización paramétrica diferenciable, 2023 Reunión General de la Sociedad de Power & Energy Society IEEE (PESGM), 2023
- James Koch, Zhao Chen, Aaron Tuor, Jan Drgana, Draguna Vrabie, Inferencia estructural de sistemas dinámicos en red con ecuaciones diferenciales universales, ARXIV: 2207.04962, (2022)
- Ján DrGoňa, Sayak Mukherjee, Aaron Tuor, Mahantesh Halappanavar, Draguna Vrabie, Aprendiendo políticas de control predictivo diferenciable paramétricos estocásticos, Conferencia IFAC Rocond (2022)
- Sayak Mukherjee, Ján Drgoňa, Aaron Tuor, Mahantesh Halappanavar, Draguna Vrabie, Neural Lyapunov Control predictivo diferenciable, Conferencia IEEE sobre Decisión y Conferencia de Control 2022
- Wenceslao Shaw Cortez, Jan Drgona, Aaron Tuor, Mahantesh Halappanavar, Draguna Vrabie, Control predictivo diferenciable con garantías de seguridad: un enfoque de función de barrera de control, conferencia IEEE sobre decisión y Conferencia de control 2022 2022
- Ethan King, Jan Drgona, Aaron Tuor, Shrirang Abhyankar, Craig Bakker, Arnab Bhattacharya, Draguna Vrabie, Control predictivo diferenciable con sede en Koopman para el problema de despacho económico con conocimiento de la dinámica, 2022 Conferencia de Control Americana 2022 (ACC)
- Drgoňa, J., Tuor, AR, Chandan, V. y Vrabie, DL, Aprendizaje profundo con restricciones físicas de la dinámica térmica de construcción múltiple. Energía y edificios, 243, 110992, (2021)
- E. Skomski, S. Vasisht, C. Wight, A. Tuor, J. Drgoňa y D. Vrabie, "Modelos dinámicos neurales no lineales de bloque restringidos", 2021 American Control Conference (ACC), 2021, pp. 3993-4000, DOI: 10.23919/ACC50511.2021.9482930.
- Skomski, E., Drgoňa, J. y Tuor, A. (2021, mayo). Automatizar el descubrimiento de modelos espaciales de estado neuronal informados por física a través del aprendizaje y la evolución. En Learning for Dynamics and Control (pp. 980-991). PMLR.
- Drgoňa, J., Tuor, A., Skomski, E., Vasisht, S. y Vrabie, D. (2021). Aprendizaje profundo leyes de control predictivo diferenciable explícitos para edificios. IFAC-Papersonline, 54 (6), 14-19.
- Tuor, A., Drgona, J. y Vrabie, D. (2020). Ecuaciones diferenciales ordinarias neuronales restringidas con garantías de estabilidad. Preimpresión Arxiv Arxiv: 2004.10883.
- Drgona, Jan, et al. "Control predictivo diferenciable: una alternativa MPC para sistemas no lineales desconocidos que utilizan un aprendizaje profundo restringido". Journal of Process Control Volumen 116, agosto de 2022, páginas 80-92
- Drgona, J., Skomski, E., Vasisht, S., Tuor, A. y Vrabie, D. (2020). Sistemas dinámicos neurales profundos disipativos, en IEEE Open Journal of Control Systems, vol. 1, págs. 100-112, 2022
- Drgona, J., Tuor, A. y Vrabie, D., Aprendizaje de políticas de control predictivo diferenciable limitada con garantías, Arxiv Preprint ARXIV: 2004.11184, (2020)
Citar como
@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}
} Equipo de desarrollo
Desarrolladores de núcleo activo : Jan Drgona, Rahul Birmiwal, Bruno Jacob
Colaboradores notables : Aaron Tuor, Madelyn Shapiro, James Koch, Seth Briney, Bo Tang, Ethan King, Elliot Skomski, Zhao Chen, Christian Mødrup legaard
Asesores científicos : Draguna Vrabie, Panos Stinis
Contribuciones de código abierto hechas por:
Hecho con contribuciones.
Expresiones de gratitud
This research was partially supported by the Mathematics for Artificial Reasoning in Science (MARS) and Data Model Convergence (DMC) initiatives via the Laboratory Directed Research and Development (LDRD) investments at Pacific Northwest National Laboratory (PNNL), by the US Department of Energy, through the Office of Advanced Scientific Computing Research's “Data-Driven Decision Control for Complex Systems (DnC2S)” project, and through the Energy Efficiency and Energía renovable, la oficina de tecnologías de construcción bajo la "Descarbonización dinámica a través de un aprendizaje profundo y optimización de la construcción centrada en la física autónoma de las operaciones de construcción" y la "gestión de energía del edificio listos para el mercado por el control predictivo diferenciable rentable". Este proyecto también fue apoyado por el Departamento de Energía de EE. UU., Proyecto avanzado de investigación de computación científica, bajo la cuantificación de incertidumbre para el Proyecto de Aprendizaje del Operador de Multifidelidad (MOLUCQ) (Proyecto No. 81739). PNNL es un Laboratorio Nacional de Multi-Programa operado para el Departamento de Energía de los Estados Unidos (DOE) por Battelle Memorial Institute bajo el contrato No. DE-AC05-76RL0-1830.