Arquitectura GPT-PINN
Seminario DDPS en el Laboratorio Lawrence Livermore
Seminario del Grupo Brown CRUNCH
Seminario Análisis Numérico de ROMs Galerkin
La red neuronal informada por la física (PINN) ha demostrado ser una poderosa herramienta para obtener soluciones numéricas de ecuaciones diferenciales parciales (PDE) no lineales aprovechando la expresividad de las redes neuronales profundas y la potencia informática del hardware heterogéneo moderno. Sin embargo, su entrenamiento todavía requiere mucho tiempo, especialmente en entornos de simulación en tiempo real y consultas múltiples, y su parametrización a menudo es excesiva. En este artículo, proponemos el PINN generativo preentrenado (GPT-PINN) para mitigar ambos desafíos en el establecimiento de PDE paramétricas. GPT-PINN representa un nuevo paradigma de metaaprendizaje para sistemas paramétricos. Como red de redes, su metared externa está hiperreducida y solo una capa oculta tiene un número significativamente reducido de neuronas. Además, su función de activación en cada neurona oculta es un PINN (completo) previamente entrenado en una configuración del sistema cuidadosamente seleccionada. La metared "aprende" de forma adaptativa la dependencia paramétrica del sistema y "hace crecer" esta capa oculta, una neurona a la vez. Al final, al abarcar una cantidad muy pequeña de redes entrenadas en este conjunto de valores de parámetros seleccionados de forma adaptativa, la metared es capaz de generar soluciones sustitutas para el sistema paramétrico en todo el dominio de parámetros de manera precisa y eficiente.
1 Universidad de Massachusetts Dartmouth, Departamento de Matemáticas, North Dartmouth, MA
KG/B:
Python = 3.11.4
NumPy = 1.24.3
PyTorch = 2.1.2+cu121
Matplotlib = 3.7.1
AC:
Python = 3.9.12
NumPy = 1.24.3
PyTorch = 2.3.1+cu118
TensorFlow = 2.10.0
Matplotlib = 3.9.0
Es probable que las combinaciones de diferentes versiones de paquetes ejecuten el código con pocos o ningún cambio.
El código se implementó con la intención de que el cálculo se realizara principalmente en la GPU. Se puede realizar el cálculo de la CPU, pero llevará mucho más tiempo.
Los archivos de ecuaciones de Klein-Gordon, Allen-Cahn y Burgers están disponibles actualmente. Al ejecutar KG_main.py
, B_main.py
o AC_main.py
(con los otros archivos en la carpeta ubicada en el directorio respectivo) comenzará el entrenamiento del PINN completo y GPT-PINN, aumentando el tamaño de la capa oculta GPT-PINN de 1 a 15 (Klein-Gordon) o 9 (Burgers' y Allen-Cahn). Luego, el GPT-PINN final se prueba en varios parámetros y los resultados del entrenamiento y las pruebas se pueden visualizar utilizando los archivos de trazado ( KG_plotting.py
, B_plotting.py
o AC_plotting.py
). Varios parámetros dentro del PINN o GPT-PINN se pueden cambiar fácilmente en los archivos principales. Como configuración predeterminada, una vez que se alcanza el número total de neuronas, el GPT-PINN se entrena una vez más para encontrar la mayor pérdida obtenida utilizando el número final de neuronas. Esto se hace para brindar más información sobre el estado final del GPT-PINN.
Tiempos de ejecución de Klein-Gordon
Tiempos de ejecución de las hamburguesas
Tiempos de ejecución de Allen-Cahn
A continuación puede encontrar la cita Bibtex:
@article{chen2024gpt,
title={GPT-PINN: Generative Pre-Trained Physics-Informed Neural Networks toward non-intrusive Meta-learning of parametric PDEs},
author={Chen, Yanlai and Koohy, Shawn},
journal={Finite Elements in Analysis and Design},
volume={228},
pages={104047},
year={2024},
publisher={Elsevier}
}