Arquitetura GPT-PINN
Seminário DDPS no Laboratório Lawrence Livermore
Seminário do Grupo Brown CRUNCH
Seminário de Análise Numérica de ROMs Galerkin
A Rede Neural Informada pela Física (PINN) provou ser uma ferramenta poderosa para obter soluções numéricas de equações diferenciais parciais (PDEs) não lineares, aproveitando a expressividade das redes neurais profundas e o poder computacional do hardware heterogêneo moderno. No entanto, seu treinamento ainda é demorado, especialmente nas configurações de multiconsulta e simulação em tempo real, e sua parametrização costuma ser excessiva. Neste artigo, propomos o PINN pré-treinado generativo (GPT-PINN) para mitigar ambos os desafios na configuração de PDEs paramétricos. GPT-PINN representa um novo paradigma de meta-aprendizagem para sistemas paramétricos. Como uma rede de redes, sua rede externa/meta-rede é hiper-reduzida, com apenas uma camada oculta tendo um número significativamente reduzido de neurônios. Além disso, sua função de ativação em cada neurônio oculto é um PINN (completo) pré-treinado em uma configuração de sistema criteriosamente selecionada. A meta-rede “aprende” adaptativamente a dependência paramétrica do sistema e “aumenta” essa camada oculta, um neurônio por vez. No final, ao abranger um número muito pequeno de redes treinadas neste conjunto de valores de parâmetros selecionados de forma adaptativa, a meta-rede é capaz de gerar soluções substitutas para o sistema paramétrico em todo o domínio de parâmetros com precisão e eficiência.
1 Universidade de Massachusetts Dartmouth, Departamento de Matemática, 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
Combinações de diferentes versões de pacotes provavelmente executarão o código com pouca ou nenhuma alteração.
O código foi implementado com a intenção de que a computação seja executada principalmente na GPU. O cálculo da CPU pode ser feito, mas levará muito mais tempo.
Os arquivos de equações de Klein-Gordon, Allen-Cahn e Burgers estão atualmente disponíveis. Executar KG_main.py
, B_main.py
ou AC_main.py
(com os demais arquivos na pasta localizada no respectivo diretório) iniciará o treinamento do PINN completo e do GPT-PINN, aumentando o tamanho da camada oculta do GPT-PINN de 1 a 15 (Klein-Gordon) ou 9 (Burgers' e Allen-Cahn). O GPT-PINN final é então testado em vários parâmetros e os resultados do treinamento e teste podem ser visualizados usando os arquivos de plotagem ( KG_plotting.py
, B_plotting.py
ou AC_plotting.py
). Vários parâmetros dentro do PINN ou GPT-PINN podem ser facilmente alterados nos arquivos principais. Como configuração padrão, uma vez atingido o número total de neurônios, o GPT-PINN é treinado mais uma vez para encontrar a maior perda obtida utilizando o número final de neurônios. Isso é feito para fornecer mais informações sobre o estado final do GPT-PINN.
Tempos de execução Klein-Gordon
Tempos de execução dos hambúrgueres
Tempos de execução de Allen-Cahn
Abaixo você pode encontrar a citação do 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}
}