No history yet

Architecture PINN experte

Transformer une EDP en fonction de perte

Au cœur des Réseaux Neuronaux Informés par la Physique (PINNs) se trouve une idée fondamentale : une équation aux dérivées partielles (EDP) peut être réinterprétée comme une composante d'une fonction de perte. Plutôt que de reposer uniquement sur les données, un PINN est entraîné à minimiser une fonction de perte composite qui intègre à la fois l'erreur par rapport aux données observées et un résidu physique.

Ce résidu représente à quel point la sortie du réseau neuronal viole les lois physiques sous-jacentes, comme celles décrites par les équations de Navier-Stokes ou de la chaleur. Le réseau, typiquement un Perceptron Multi-Couches (MLP), prend des coordonnées spatio-temporelles (par exemple, x,tx, t) en entrée et prédit la valeur d'une variable physique (u(x,t)u(x,t)) en sortie.

Les Réseaux Neuronaux Informés par la Physique (PINN) sont des réseaux neuronaux (NN) qui encodent des équations de modèle, comme les Équations aux Dérivées Partielles (EDP), en tant que composante du réseau neuronal lui-même.

La fonction de perte totale, LtotalL_{total}, est une somme pondérée de la perte des données, LdataL_{data}, et de la perte physique, LphysiqueL_{physique}.

Ltotal=λdataLdata+λphysiqueLphysiqueL_{total} = \lambda_{data} L_{data} + \lambda_{physique} L_{physique}
Lesson image

Différenciation automatique et contraintes souples

Pour calculer le résidu de l'EDP, nous avons besoin des dérivées de la sortie du réseau par rapport à ses entrées. C'est là que la différenciation automatique (AD) entre en jeu. Contrairement aux différences finies, qui introduisent des erreurs de discrétisation, l'AD calcule les dérivées de manière analytique et exacte en appliquant la règle de dérivation en chaîne à travers le graphe de calcul du réseau. Cela permet au PINN d'apprendre des solutions précises et continues, sans avoir besoin d'un maillage.

Les conditions aux limites et initiales sont également intégrées dans la fonction de perte comme des contraintes souples. Par exemple, pour une condition de Dirichlet, nous ajoutons un terme de perte qui pénalise les écarts entre la prédiction du réseau à la frontière et la valeur prescrite. De même, les sont traitées en pénalisant les écarts sur les dérivées à la frontière.

Cette approche transforme un problème d'EDP bien posé en un problème d'optimisation. Le but est de trouver les poids du réseau neuronal qui minimisent la fonction de perte composite, satisfaisant ainsi à la fois les données et la physique sous-jacente.

Mise en œuvre avec DeepXDE

Des bibliothèques comme simplifient considérablement la mise en œuvre des PINNs. Construite sur des frameworks comme PyTorch ou TensorFlow, DeepXDE fournit des abstractions de haut niveau pour définir la géométrie du domaine, l'EDP, les conditions aux limites et le modèle de réseau neuronal.

Voici un exemple conceptuel de la configuration de l'équation de la chaleur 1D, ut=αuxxu_t = \alpha u_{xx}, avec DeepXDE.

import deepxde as dde
import torch

# 1. Définir le domaine computationnel
geom = dde.geometry.Interval(-1, 1)
time = dde.geometry.TimeDomain(0, 1)
geomtime = dde.geometry.GeometryXTime(geom, time)

# 2. Définir la fonction de l'EDP
def pde(x, u):
    # dde.grad.jacobian calcule la dérivée première
    du_t = dde.grad.jacobian(u, x, i=0, j=1)
    # dde.grad.hessian calcule la dérivée seconde
    du_xx = dde.grad.hessian(u, x, i=0, j=0)
    alpha = 0.4
    return du_t - alpha * du_xx

# 3. Définir les conditions aux limites et initiales
ic = dde.icbc.IC(geomtime, lambda x: torch.sin(torch.pi * x[:, 0:1]), lambda _, on_initial: on_initial)
bc = dde.icbc.DirichletBC(geomtime, lambda x: 0, lambda _, on_boundary: on_boundary)

# 4. Créer le modèle
data = dde.data.TimePDE(geomtime, pde, [bc, ic], num_domain=2540, num_boundary=80, num_initial=160)
net = dde.nn.FNN([2] + [20] * 3 + [1], "tanh", "Glorot normal")
model = dde.Model(data, net)

# 5. Entraîner le modèle
model.compile("adam", lr=1e-3)
model.train(epochs=5000)

Dans cet exemple, DeepXDE utilise la différenciation automatique en coulisses pour calculer du_t et du_xx dans la fonction pde. L'utilisateur définit simplement l'équation symboliquement. Les conditions (IC et BC) sont ajoutées à une liste et le framework les combine dans la fonction de perte globale, qui est ensuite minimisée via la descente de gradient.

Quiz Questions 1/5

Quelle est l'idée fondamentale au cœur des Réseaux Neuronaux Informés par la Physique (PINNs) ?

Quiz Questions 2/5

La fonction de perte totale d'un PINN est une somme pondérée de la perte des données et de __________.

L'architecture PINN offre une approche puissante, sans maillage, pour résoudre des problèmes complexes régis par des EDP, en fusionnant la puissance d'approximation des réseaux neuronaux avec les contraintes fondamentales des lois physiques.