Artykuł szczegółowo dokumentuje, jak PyTorch oblicza gradienty w sieciach neuronowych inspirowanych fizyką (PINN) - sieci wymagające dwóch warstw różniczkowania jednocześnie. Pierwsza warstwa to obliczenie pochodnych fizyki poprzez sieć neuronową, druga to różniczkowanie funkcji straty względem parametrów sieci, przy czym sama strata zależy od obliczonych wcześniej pochodnych fizyki.
Na przykładzie prostej sieci multilayer perceptron o architekturze 1-3-3-1 i problemu różniczkowego y'(t) + y(t) = 0 z warunkiem początkowym y(0) = 1, autorzy śledzą całą procedurę obliczeń. Pokazują, jak w fazie forward propagacji buduje się graf obliczeniowy, jak reverse-mode backpropagation w jednym przebiegu oblicza wszystkie 22 gradienty parametrów, i w jaki sposób ustawienie create_graph=True w PyTorchu umożliwia prawidłowe różniczkowanie przez resztkę inspirowaną fizyką (residual).
Każda obliczona wartość adjointa - kluczowego elementu w algorytmie backpropagation - zostaje zweryfikowana wobec ręcznych obliczeń w pracy Tahimi. To połączenie framework czułości P/Q z iloczynami wektor-Jacobian, które stanowią serce silnika autograd PyTorcha. Takie szczegółowe wyjaśnienie jest ważne dla praktyków PINN, ponieważ zrozumienie mechanizmów automatycznego różniczkowania drugiego rzędu jest kluczowe do debugowania i optymalizacji tych specjalizowanych sieci neuronowych.