GPT-PINN-Architektur
VBS-Seminar im Lawrence Livermore Lab
Brown CRUNCH Gruppenseminar
Seminar zur numerischen Analyse von Galerkin-ROMs
Das physikinformierte neuronale Netzwerk (PINN) hat sich als leistungsstarkes Werkzeug zur Erlangung numerischer Lösungen nichtlinearer partieller Differentialgleichungen (PDEs) erwiesen und nutzt dabei die Ausdruckskraft tiefer neuronaler Netzwerke und die Rechenleistung moderner heterogener Hardware. Allerdings ist sein Training immer noch zeitaufwändig, insbesondere in den Einstellungen mit mehreren Abfragen und Echtzeitsimulationen, und seine Parametrisierung ist oft übermäßig exzessiv. In diesem Artikel schlagen wir die Generative Pre-Trained PINN (GPT-PINN) vor, um beide Herausforderungen bei der Festlegung parametrischer PDEs zu mildern. GPT-PINN stellt ein brandneues Meta-Lernparadigma für parametrische Systeme dar. Da es sich um ein Netzwerk von Netzwerken handelt, ist sein äußeres/Meta-Netzwerk hyperreduziert, wobei nur eine verborgene Schicht eine deutlich reduzierte Anzahl von Neuronen aufweist. Darüber hinaus ist seine Aktivierungsfunktion an jedem versteckten Neuron eine (vollständige) PINN, die in einer sorgfältig ausgewählten Systemkonfiguration vorab trainiert wurde. Das Metanetzwerk „lernt“ adaptiv die parametrische Abhängigkeit des Systems und „vergrößert“ diese verborgene Schicht Neuron für Neuron. Indem es eine sehr kleine Anzahl von Netzwerken umfasst, die auf diesen Satz adaptiv ausgewählter Parameterwerte trainiert werden, ist das Metanetzwerk letztendlich in der Lage, Ersatzlösungen für das parametrische System über den gesamten Parameterbereich hinweg genau und effizient zu generieren.
1 University of Massachusetts Dartmouth, Fakultät für Mathematik, 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
Durch Kombinationen verschiedener Paketversionen wird der Code wahrscheinlich ohne oder mit geringen Änderungen ausgeführt.
Der Code wurde mit der Absicht implementiert, die Berechnung hauptsächlich auf der GPU durchzuführen. Die CPU-Berechnung kann durchgeführt werden, dauert jedoch viel länger.
Die Gleichungsdateien von Klein-Gordon, Allen-Cahn und Burgers sind derzeit verfügbar. Durch das Ausführen von KG_main.py
, B_main.py
oder AC_main.py
(mit den anderen Dateien im Ordner im jeweiligen Verzeichnis) wird mit dem Training der vollständigen PINN und GPT-PINN begonnen, wodurch die Größe der verborgenen GPT-PINN-Ebene vergrößert wird 1 bis 15 (Klein-Gordon) oder 9 (Burgers' und Allen-Cahn). Die endgültige GPT-PINN wird dann anhand verschiedener Parameter getestet und die Trainings- und Testergebnisse können mithilfe der Plotdateien ( KG_plotting.py
, B_plotting.py
oder AC_plotting.py
) visualisiert werden. Verschiedene Parameter innerhalb der PINN oder GPT-PINN können einfach in den Hauptdateien geändert werden. Standardmäßig wird die GPT-PINN, sobald die Gesamtzahl der Neuronen erreicht ist, erneut trainiert, um den größten Verlust zu ermitteln, der mit der endgültigen Anzahl der Neuronen erzielt wird. Dies geschieht, um weitere Informationen über den Endstatus der GPT-PINN bereitzustellen.
Klein-Gordon-Laufzeiten
Laufzeiten der Burger
Allen-Cahn-Laufzeiten
Nachfolgend finden Sie das Bibtex-Zitat:
@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}
}