Apprentissage automatique fondé sur la physique
Découvrir des équations à partir de données (SINDy), encoder des EDP dans une fonction de perte (PINNs), et dompter un sillage tourbillonnaire par renforcement — un tour d'horizon du mariage entre ML et physique.
Pourquoi injecter de la physique dans le ML ?
L'apprentissage profond « pur » suppose des données abondantes et bon marché. En science et en ingénierie, c'est rarement le cas : une simulation aux éléments finis d'un écoulement turbulent coûte des heures de calcul haute performance, et une campagne expérimentale se compte en semaines. En revanche, on dispose d'un atout que la vision par ordinateur n'a pas : des siècles de lois physiques — conservation de la masse, de la quantité de mouvement, de l'énergie, symétries, invariances.
L'apprentissage automatique fondé sur la physique (physics-based / physics-informed ML) exploite ces lois comme biais inductifs : elles contraignent l'espace des hypothèses, réduisent la quantité de données nécessaire et produisent des modèles qui généralisent hors de l'échantillon d'entraînement. Trois stratégies dominent :
- Découvrir la physique à partir de données — régression parcimonieuse sur une bibliothèque de termes (SINDy) ;
- Imposer la physique pendant l'entraînement — résidu d'EDP dans la fonction de perte (PINNs) ;
- Exploiter la structure du système — décompositions modales (POD, DMD), opérateur de Koopman, modèles réduits pour la commande et le RL.
SINDy : découvrir les équations du mouvement
Supposons qu'on mesure une trajectoire \(\mathbf{x}(t) \in \mathbb{R}^n\) d'un système \(\dot{\mathbf{x}} = f(\mathbf{x})\) inconnu. L'idée de SINDy (Sparse Identification of Nonlinear Dynamics) : si \(f\) ne contient que quelques termes parmi une bibliothèque de candidats \(\Theta(\mathbf{X}) = [\,1,\ \mathbf{x},\ \mathbf{x}^2,\ \mathbf{x}\otimes\mathbf{x},\ \sin \mathbf{x},\ \ldots\,]\), alors identifier la dynamique revient à une régression parcimonieuse : \[\dot{\mathbf{X}} \approx \Theta(\mathbf{X})\,\Xi, \qquad \Xi = \arg\min_{\Xi'} \big\|\dot{\mathbf{X}} - \Theta(\mathbf{X})\,\Xi'\big\|_2^2 + \lambda \|\Xi'\|_0.\] En pratique, on résout par moindres carrés seuillés : régression, mise à zéro des petits coefficients, répétition. Le résultat n'est pas une boîte noire mais une équation lisible.
PINNs : la physique comme régularisation
Un réseau de neurones informé par la physique (PINN) approxime la solution \(u(x,t)\) d'une EDP \(\mathcal{N}[u] = 0\) par un réseau \(u_\theta\), entraîné en minimisant une perte composite : \[\mathcal{L}(\theta) = \underbrace{\frac{1}{N_d}\sum_{i} \big|u_\theta(x_i, t_i) - u_i\big|^2}_{\text{données \& conditions}} \;+\; \underbrace{\frac{\lambda}{N_r}\sum_{j} \big|\mathcal{N}[u_\theta](x_j, t_j)\big|^2}_{\text{résidu de l'EDP}}.\] Le second terme est évalué par différentiation automatique — le même moteur qui calcule les gradients de l'entraînement fournit \(\partial_t u_\theta\), \(\partial_{xx} u_\theta\), etc., sans maillage. La physique agit comme un régularisateur : même avec très peu de points de mesure, la solution est « tirée » vers la variété des solutions admissibles.
Modèles d'ordre réduit : POD, DMD, Koopman
Un champ de vitesse discrétisé vit en dimension \(10^5\) à \(10^8\), mais sa dynamique se déploie souvent sur une variété de basse dimension. La POD (décomposition orthogonale aux valeurs propres, i.e. la SVD des instantanés) extrait les modes énergétiquement dominants \(\Phi\), et une projection de Galerkin des équations de Navier–Stokes sur \(\Phi\) donne un système d'EDO de petite taille — assez rapide pour la commande en temps réel.
La DMD cherche plutôt le meilleur opérateur linéaire \(A\) tel que \(\mathbf{x}_{k+1} \approx A\,\mathbf{x}_k\) : chaque mode possède une fréquence et un taux de croissance propres — idéal pour isoler la fréquence de détachement tourbillonnaire d'un sillage. Elle s'interprète comme une approximation de dimension finie de l'opérateur de Koopman \(\mathcal{K}\), qui rend la dynamique linéaire en agissant sur les observables : \(\mathcal{K}g(\mathbf{x}) = g(F(\mathbf{x}))\). Trouver de bonnes coordonnées koopmaniennes — éventuellement par autoencodeur — c'est ramener un problème non linéaire dans le royaume où LQR, Kalman et toute la théorie linéaire s'appliquent.
| Méthode | Objet appris | Force | Limite |
|---|---|---|---|
| SINDy | EDO symbolique parcimonieuse | Interprétabilité | Choix de la bibliothèque |
| PINN | Solution \(u_\theta(x,t)\) d'une EDP | Peu de données, sans maillage | Entraînement délicat |
| POD–Galerkin | Base modale + EDO réduite | Rapidité, ancrage physique | Fragile hors régime |
| DMD / Koopman | Opérateur linéaire d'évolution | Analyse spectrale, prévision | Dynamiques fortement non linéaires |
| RL (HydroGym) | Politique de contrôle \(\pi_\theta\) | Sans modèle, non linéaire | Coût des simulations |
Cas d'étude : contrôle d'écoulements avec HydroGym
Le banc d'essai canonique du contrôle d'écoulements est le sillage de cylindre. Au-delà d'un nombre de Reynolds critique (\(\mathrm{Re} \approx 47\)), l'écoulement devient instable et une allée tourbillonnaire de von Kármán se détache périodiquement, augmentant la traînée et générant des vibrations. Le problème de contrôle : agir (par rotation du cylindre ou jets de soufflage/aspiration) à partir de quelques capteurs de pression pour stabiliser le sillage.
C'est précisément un MDP — état partiel, actions continues, récompense = réduction de traînée — et c'est là qu'intervient HydroGym : une plateforme qui expose des dizaines d'environnements de mécanique des fluides (cylindre, pinball fluidique, cavité, marche descendante, profils NACA, couches limites turbulentes) derrière l'interface standard Gymnasium, avec plusieurs solveurs (éléments finis Firedrake, Boltzmann sur réseau, éléments spectraux, solveurs différentiables JAX) et un couplage MPI pour le HPC. On peut donc brancher PPO ou SAC de Stable-Baselines3 sur une simulation Navier–Stokes comme on le ferait sur CartPole.
Squelette d'entraînement, fidèle à l'API du projet :
# Contrôle du sillage de cylindre : interface Gymnasium standard
import gymnasium as gym
import hydrogym
from stable_baselines3 import PPO
env = gym.make("HGym/Cylinder-medium-v0") # Navier–Stokes, Re = 100
model = PPO("MlpPolicy", env, gamma=0.99)
model.learn(total_timesteps=500_000) # récompense ≈ −(traînée + pénalité d'actionnement)
obs, info = env.reset()
for _ in range(1000):
action, _ = model.predict(obs) # rotation du cylindre / jets
obs, reward, terminated, truncated, info = env.step(action)
Synthèse et perspectives
Le ML fondé sur la physique n'oppose pas données et équations : il les compose. SINDy transforme des trajectoires en lois ; les PINNs transforment des lois en régularisation ; les modèles réduits transforment des champs géants en dynamiques maniables ; le RL referme la boucle en agissant sur le système. Les mêmes outils s'exportent bien au-delà des fluides — épidémiologie, finance (où les EDP de type Black–Scholes jouent le rôle de Navier–Stokes), hydrologie ou agronomie de précision.
Pour la partie renforcement de cette histoire — équations de Bellman, Q-learning, gradients de politique — voir l'article compagnon sur l'apprentissage par renforcement.