Hier werden die Ergebnisse der Testrechnungen für das Physics-Informed Neural Network (PINN) dargestellt und kurz analysiert.
Ergebnisse der PINN-Auswertung, Programm evaluate
Die Testdaten wurden im Bereich von \(0\) bis \(2\pi\) generiert, also mit dem Trainingsintervall übereinstimmend.
$$
x_i = \frac{i \, 2 \pi}{N}, \qquad i=0,\ldots, N .
$$
Das folgende Diagramm zeigt die Auswertung des PINN ( net->forward(x)
) im Vergleich zur tatsächlichen \(\sin(x)\)-Funktion.
![Testrechnungen : Auswertung](https://gwr-mbh.de/wp-content/uploads/2024/07/data-1-1024x768.png)
Die beiden Kurven liegen praktisch übereinander, der Fehler ist von der Größenordnung \(\mathcal{O}(10^{-3})\). Das ist eine bemerkenswert präzise Approximation der \(\sin(x)\)-Funktion. Jedoch ist eine Zunahme des Fehlers gegen Ende des Intervalls zu beobachten.
![Testrechnungen : Fehler (PINN(x) - sin(x))-Funktion](https://gwr-mbh.de/wp-content/uploads/2024/07/error-1-1024x768.png)
Auswertung über das Trainingsintervall hinaus
Die folgende Auswertung zeigt das Verhalten des PINN außerhalb des Trainingsintervalls \(0\) bis \(2\pi\). Wie in den Diagrammen zu sehen ist, nimmt der Fehler außerhalb des Trainingsintervalls stark zu, was die Verwendung des PINN für \(x > 2\pi\) unbrauchbar macht. Es sieht so aus, als folge der Funktionsverlauf der Aktivierungsfunktion \(\tanh\).
![Testrechnungen Fehler e(x) = PINN - sin(x)](https://gwr-mbh.de/wp-content/uploads/2024/07/error-2-1024x768.png)
Training mit Berücksichtigung der Periodizität
Wir fügen nun Wissen über die gesuchte Funktion hinzu und fordern Periodizität. Dies führt zur Erweiterung des Funktionals:
$$
\mathcal{L}_{\text{total}} = \mathcal{L}_{\text{standard}} + \frac{1}{2K} \sum_{k=1}^{K} \frac{1}{N} \sum_{i=1}^{N} \left(\hat{y}(x_i + k \cdot 2\pi) – \hat{y}_i\right)^2
$$
Mit dem Wert \( K=2 \) sind die Trainingsdaten aus dem Bereich \(I = [0, 6\pi]\). Die Approximation ist in \( I \) wieder sehr gut.
![Testrechnungen](https://gwr-mbh.de/wp-content/uploads/2024/07/data-3-1024x702.png)
![Fehler](https://gwr-mbh.de/wp-content/uploads/2024/07/error-3-1024x702.png)
Sobald allerdings das Intervall verlassen wird, steigt der Fehler stark an und die PINN-Funktion wird wieder unbrauchbar.
![Auswertung](https://gwr-mbh.de/wp-content/uploads/2024/07/data-4-1024x702.png)
Frequenz-Prinzip
Das Frequenz-Prinzip [1][2][3] (auch F-Prinzip) besagt, dass neuronale Netze dazu neigen, niederfrequente Komponenten eines Signals schneller zu lernen als hochfrequente Komponenten. Das bedeutet, dass während des Trainings die glatten, langsamen Veränderungen im Signal zuerst erfasst werden, während die detaillierteren, schnelleren Veränderungen länger dauern. Genau das beobachten wir auch, wenn wir statt \(\sin(x)\) die höherfrequenten Funktionen \(\sin(k \, x)\) mit \(k=2,3,4,8\) approximieren. Das Training benötigt mehr Iterationsschritte, je größer \(k\) ist.
Funktion | Iterationen bis Verlust \( < 10^{-5}\) |
---|---|
sin(x) | 10200 |
sin(2x) | 10900 |
sin(3x) | 41200 |
sin(4x) | 51600 |
sin(8x) | > 100000 |
Konvergenz des Trainings in Abhängigkeit der Frequenz \(k\)
![Konvergenzgeschwindigkeit in der Trainingsphase](https://gwr-mbh.de/wp-content/uploads/2024/07/F-Prinzip-1-1024x595.png)
Quellen
- (2019): Frequency Principle: Fourier Analysis Sheds Light on Deep Neural Networks. In: arXiv preprint arXiv:1901.06523, 2019.
- (2021): Learning nonlinear operators via DeepONet based on the universal approximation theorem of operators. In: Nature Machine Intelligence, Bd. 3, Nr. 3, S. 218–229, 2021.
- (2019): Theory of the Frequency Principle for General Deep Neural Networks. 2019.