TorchPhysics - Eine Deep-Learning-Bibliothek für Differentialgleichungen
Differentialgleichungen treten in so gut wie allen physikalischen Zusammenhängen auf und müssen in den verschiedensten Anwendungsgebieten mittels numerischer Simulation gelöst werden. Klassische Verfahren, wie die Finite-Elemente-Methode, haben sich dabei für eine Vielzahl an Problemen bewährt.
Einige Differentialgleichungen lassen sich jedoch mit klassischen Verfahren nur mit großem Aufwand lösen, da sie beispielsweise Nichtlinearitäten oder Multiskalencharakter aufweisen. In den letzten Jahren wurde eine Vielzahl von Deep-Learning-Ansätzen entwickelt, die diese Probleme umgehen oder vereinfachen sollen. Dabei können neuronale Netze unter anderem eingesetzt werden, um eine kontinuierliche Darstellung der Lösungsfunktion zu finden. Die Verfahren reichen vom Bestimmen einer einzelnen starken oder schwachen Lösung über das Lernen vollständiger Differentialoperatoren bis hin zur Lösung von Parameteridentifikations- oder inversen Problemen.
Auch wenn in der Literatur viele Anwendungen dieser Ansätze zu finden sind, so sind diese häufig auf spezifische
Probleme zugeschnitten und in verschiedenen Umgebungen implementiert. Ziel dieses Projekts ist es, ein Software-Paket zu erschaffen, welches verschiedene Deep-Learning-Ansätze für Differentialgleichungen vereint, um deren Anwendung, Vergleich und Erweiterung zu ermöglichen. Dabei liegt der Fokus auf einer intuitive, flexiblen und modularen Code-Struktur.
Bei TorchPhysics handelt es sich um eine Python-Bibliothek, welche auf dem Deep-Learning-Framework PyTorch basiert.
Aktuell kann TorchPhysics verwendet werden, um mit drei verschiedenen Ansätzen
- gewöhnliche und partielle Differentialgleichungen zu lösen
- Parameterabhängigkeiten von Lösungen zu lernen
- inverse Probleme zu lösen.
Ein besonderer Fokus liegt dabei auf dem flexiblen und effizienten Erzeugen von Trainingspunkten in einfach zu konstruierenden Gleichungsgebieten. Dazu werden mehrere Methoden für Konstruktion und Import von Gebieten zur Verfügung gestellt. In diesen Gebieten und auf deren Rand können dann in verschiedenen Verteilungen Punkte generiert werden, wie sie bei allen der implementierten Methoden zur Optimierung benötigt werden. Dieser Baustein liefert die Basis für eine stetige Erweiterung von TorchPhysics.
Das Projekt wird in Kooperation mit der Robert Bosch GmbH bearbeitet und ist im Rahmen eines Modellierungsseminars entstanden.
Link zur Bibliothek: https://torchphysics.readthedocs.io/en/latest/index.html
Link zum GitHub: https://github.com/boschresearch/torchphysics