L’utilisation de l’apprentissage machine dans la simulation de la mécanique des fluides

L’utilisation de l’apprentissage machine dans la simulation de la mécanique des fluides
Actu IA

La mécanique des fluides (forme liquide ou gazeuse) est un domaine largement étudié en physique. Dans ce domaine, l’équation de Navier-Stokes est la plus importante car elle sert à décrire le mouvement des fluides. Ainsi, une seule équation permet aussi bien de simuler un écoulement d’eau d’un robinet que calculer la trajectoire de l’air. D’autres équations sont également importantes (notamment celle d’Euler) mais nous allons nous focaliser sur Navier-Stokes par cohérence avec l’expérience proposée.

Navier-Stokes, un problème complexe :

Si l’équation de Navier-Stokes modélise le comportement des fluides, sa résolution n’est pas des plus simples. Cela vient du fait qu’elle est non linéaire, suivant les milieux d’observations, les turbulences (exemple: passage d’un avion lors d’un calcul de trajectoire d’un courant d’air) rendent les calculs quasi-impossibles.

Les simulations des mouvements des fluides :

Pour pallier à cette difficulté, les scientifiques ont choisi de prendre des approximations de résolutions de cette équation. Il en existe plusieurs, suivant les contraintes posées en besoin de fiabilité ou de temps de calcul. Cela ne permet pas d’avoir une modélisation qui reflète exactement la réalité, mais en reste assez proche pour que les solutions soient exploitables, notamment pour faire des simulations.

Les simulations utilisent donc la génération de millions de particules sur lesquelles elles appliquent des approximations de Navier-Stokes pour calculer le mouvement de chacune des particules.

Et l’apprentissage machine dans tout ça ?

Il peut intervenir sur plusieurs applications, tel que la prédiction de mouvement, l’augmentation du réalisme des simulations, etc… Pour cet article, nous allons nous focaliser sur un point en particulier, la prédiction de mouvement.

Quelle utilité me diriez-vous, puisque l’on sait déjà simuler de tels mouvements ?

Nous avons vu que les simulations étaient confrontées à deux problèmes majeurs, la précision et le temps de calcul. Pour cet article nous allons voir comment l’apprentissage machine peut aider à réduire le temps de calcul.

La grande question est : Quelles données faut-il passer à mon modèle pour qu’il puisse apprendre les préceptes de la mécanique des fluides, et ainsi, prédire plus ou moins correctement les mouvements des fluides.

Précédemment nous avons vu que les simulations génèrent des millions de « particules » possédant chacune une position et une vélocité (vitesse + direction) par rapport à un contexte. Cela nous donne un vecteur modélisant l’état d’une particule dans un milieu.

Grace aux données des simulations, nous avons pour chaque particule, un vecteur assez riche en information modélisant les données essentielles pour chaque instant de la simulation et permettant de prédire l’état de la particule à la prochaine étape.

Le but va donc être, de passer en entrée du modèle un vecteur pour une particule à un instant t, et le modèle devra prédire en sortie le vecteur pour l’instant t+1.

L’expérience proposée est la suivante :

  1. On génère plusieurs simulations via l’algorithme de résolution « PBF ». On récupère un échantillon (4%) des particules sur 12 images de chaque simulation, soit 100 millions d’exemples.
  2. On choisit un modèle de type foret de régression, avec 20 de profondeur maximale.
  3. On pré-entraine ce modèle, 4 jours sur un cluster de 10 ordinateurs.
  4. On le teste avec les données en entrée t et les données en sortie qui doivent correspondre au t+1 de la simulation utilisant « PBF ».
  5. On récupère maintenant toutes les particules de 300 images sur toutes les simulations, soit 60 milliards d’exemples.
  6. On ré-entraine le modèle, 8h sur le même cluster d’ordinateurs.
  7. Le modèle est maintenant prêt à prédire les mouvements des particules.

Les résultats :

resultats_1

Bien que les résultats ne soient pas extrêmement fidèles à la référence, l’œil humain adhère toujours à la cohérence de la simulation. Par contre, le temps de calcul nécessaire à considérablement diminué !

Temps d’exécution :

Méthode
 
Simulation PBF
 
Forêt de régression
CPU
 
70.2 s
 
2.2 s
GPU
 
5.25 s
 
24.08 ms

Quelques millisecondes pour générer une étape de la simulation, cela permet de faire des simulations en temps réel ! Et c’est en cela que l’apprentissage machine devient extrêmement intéressant.

Les limites :

Plusieurs limites sont notables dans ce procédé. Premièrement, la nécessité d’avoir déjà un outil permettant de générer une simulation.

Un temps d’entrainement relativement long pour l’apprentissage.

Mais surtout, mathématiquement parlant, une simulation se base sur une approximation de Navier-Stokes, et le modèle fait une approximation de cette simulation. Nous avons donc une approximation d’approximation, ce qui nous éloigne assez de la réalité du phénomène.

Synthèse :

resultats_2

Type de problème : Régression, apprentissage supervisé.

Modèle utilisé : Foret de régression, 20 de profondeur maximale.

Entrainement : 1) 100 millions d’exemples, 4 jours sur un cluster de 10 ordinateurs. 2) 60 milliards d’exemples, 8h sur le même cluster.

Test : Comparaison aux données renvoyées par la simulation.

Résultat : Relativement éloigné de la valeur de référence, mais temps de calcul extrêmement réduit. Le résultat reste tout de même exploitable.

Conclusion :

Le modèle a appris les bases de la mécanique des fluides, assez fidèlement pour qu’une simulation semble réaliste pour l’œil humain. La principale utilité est la réduction du temps d’exécution (de plusieurs secondes à quelques millisecondes) qui permet de faire de la simulation en temps réel et/ou de faire des simulations sur de bien plus grandes échelles.

 

Ressources :

L’ubor Ladicky & al 2015