Skip to content

Repositorio con el material para el taller sobre PINNs en MAPI-3 2024

License

Notifications You must be signed in to change notification settings

nicoguaro/pinns_mapi-3

Repository files navigation

Introducción a las redes neuronales informadas por la física

GitHub License: CC BY 4.0 Abrir en Binder Abrir en Colab DOI

Este repositorio contiene material sobre redes neuronales informadas por la física (PINNs, del inglés Physics-Informed Neural Newtorks) y está pensado para un minicurso en el marco del tercer Congreso Colombiano de Matemáticas Aplicadas e Industriales (MAPI-3).

Diapositivas: https://speakerdeck.com/manubastidas/curso-pinns-mapi3-2024.

Contenido

  1. Motivación
  2. Instalación
  3. Comprobando la instalación
  4. Referencias
  5. Licencia

Motivación

La modelación de fenómenos físicos mediante ecuaciones diferenciales parciales (EDP) es esencial en varias áreas de las matemáticas puras y aplicadas. Estos modelos describen cómo cambian ciertas cantidades físicas en el espacio y el tiempo, permitiendo abordar problemas cruciales como: predecir comportamientos, optimizar procesos y diseñar soluciones en campos como la química, la biología, la economía y la ingeniería. Dada la complejidad de muchos de estos problemas, encontrar soluciones exactas es a menudo imposible, lo que subraya la necesidad de métodos numéricos efectivos para aproximar las soluciones.

Aunque el análisis numérico clásico ofrece numerosas herramientas para aproximar soluciones de EDP, los recientes avances en la computación científica destacan la importancia de explorar nuevos métodos numéricos que amplíen las aplicaciones. Y además, como matemáticos, es crucial investigar y fortalecer la fundamentación de estos nuevos desarrollos. Por ejemplo, el teorema de aproximación universal establece que las redes neuronales pueden aproximar funciones continuas con gran precisión, abriendo nuevas posibilidades para la modelación matemática. Por otro lado, avances como la diferenciación automática (autodiff) permiten calcular derivadas de funciones complejas de manera precisa y eficiente, facilitando la integración de estos métodos en procesos de optimización y entrenamiento de modelos.

Las Physics-Informed Neural Networks (PINNs) son una clase emergente de redes neuronales que incorporan directamente las leyes físicas expresadas mediante EDP en el proceso de aprendizaje. A diferencia de las redes neuronales tradicionales, las PINN utilizan información física para guiar el entrenamiento, imponiendo las EDP como restricciones en la función de pérdida, lo que permite que las redes aprendan soluciones que respeten las leyes físicas subyacentes.

Este curso de teoría e implementación de PINN está diseñado para matemáticos interesados en desarrollar y aplicar métodos numéricos avanzados para resolver problemas descritos por EDP. Durante las dos sesiones, se introducirán los conceptos matemáticos y algorítmicos fundamentales para entender y utilizar PINN, combinando principios físicos con técnicas de aprendizaje automático para resolver problemas clásicos. Los participantes aprenderán a implementar estas metodologías utilizando software de código abierto, facilitando así la extensión del conocimiento adquirido a otros problemas en sus respectivas áreas de estudio. El curso estará organizado en dos partes, cada una compuesta por dos sesiones. En la primera parte, se cubrirán la formulación de problemas físicos mediante EDP y los fundamentos teóricos de las PINN. La segunda parte estará enfocada en la implementación práctica, utilizando herramientas de software y trabajando en ejemplos y ejercicios prácticos.

Instrucciones de Instalación

Recomendamos usar conda para instalar los paquetes necesarios para este tutorial.

Tenga en cuenta también que este tutorial está escrito para Python 3.X.

Cree un entorno conda usando el archivo pinn-tutorial.yml en la ruta del repositorio usando

conda env create -f environment.yml

Esto creará un entorno conda llamado "pinn-tutorial" con todos los paquetes requeridos.

Puedes activar el entorno con

conda activate pinn-tutorial

Comprobando la instalación

Después de la instalación puedes comprobar si todo está instalado.

python probar_instalacion.py

Para comprobar si todo funciona, ejecute las demostraciones con

python demo.py

Referencias

Existen muchos artículos científicos relacionados con PINNs. A continuación, compartimos 4 que pueden servir como punto de partida para el tópico.

Citation

Para citar este tutorial en publicaciones utilice

Manuela Bastidas Olivares, Nicolás Guarín-Zapata. (2024). nicoguaro/pinns_mapi-3: Tutorial de PINNs MAPI-3 v1.0 (v1.0). Zenodo. https://doi.org/10.5281/zenodo.11974585

Para citar en LaTex, puede utilizar:

@software{pinns_mapi-3,
  title = {Introducción a las redes neuronales informadas por la
  física},
  version = {1.0},
  author = {Bastidas Olivares, Manuela and Guarín-Zapata, Nicolás},
  year = 2024,
  keywords = {redes neuronales informadas por la física,
              ecuaciones diferenciales parciales, aprendizaje automático,
              physics-informed neural networks, partial differential equations,
              machine learning},
  abstract = {Este repositorio contiene materiasl sobre redes neuronales
  informadas por la física (PINNs, del inglés Physics-Informed Neural Newtorks)
  y está pensado para un   minicurso en el marco del tercer Congreso Colombiano
  de   Matemáticas Aplicadas e Industriales (MAPI-3).},
    
  url = {https://github.com/nicoguaro/pinns_mapi-3},
  doi = {https://doi.org/10.5281/zenodo.11974585}
}

Licencia

Todo el código está bajo licencia MIT y el contenido bajo licencia Creative Commons Attribute.

El contenido de este repositorio está bajo licencia bajo la Licencia Creative Commons Attribution 4.0, y el código fuente que acompaña al contenido tiene Licencia MIT.