Simulation d'environnements réalistes : réseaux de neurones pour la simulation de "splash"

Simulation d’environnements réalistes : réseaux de neurones pour la simulation de « splash »

Revenons plus en détails sur la modélisation de fluides évoquée dans un précédent article ! Je sais que j’en ai laissé beaucoup sur leur faim et j’en suis navré 😊 Les fluides c’est spectaculaire, ça fascine et on a envie de les simuler pour pouvoir jouer avec sans se mouiller. Mais comment peut-on simuler finement leurs comportements ?

Simulation d'environnements réalistes : réseaux de neurones pour la simulation de "splash"

Revenons aux bases, un peu de physique élémentaire ne fera pas de mal ! Quand on parle de fluides on parle à la fois des gaz et des liquides. Ces états de la matière sont plutôt désordonnés et contrairement à l’état solide, les positions relatives entre les particules sont susceptibles d’évoluer au cours du temps. Ce qui peut évidemment conduire au détachement de certains « morceaux » du fluide sous l’effet de contraintes extérieures.

Pour notre simulation nous voulons prendre en compte ce genre de détachements, qui sont aussi appelés « splash ». Pour générer un splash il faut apporter de l’énergie au fluide, les trajectoires des particules du splash sont balistiques et leurs vitesses, leurs directions, leurs formes sont difficiles à prédire. (Ceci est particulièrement vrai pour l’eau car leurs nombres de Reynolds et de Weber associés sont grands) 

Visualisation de "splash" à la surface de l'eau
Figure 1 : Visualisation de « splash » à la surface de l’eau

Le problème est que pour être précis sur les splash, il faut avoir une discrétisation de l’espace très fine. Or cela demande une grosse capacité de calculs. Les chercheurs de l’Université de Munich ont donc décidés d’utiliser un réseau de neurones pour classifier les volumes d’eau susceptibles de générer un splash pendant le prochain intervalle de temps Δ𝑇. Une fois classifiés, pour chaque volume d’eau où un splash se produit, un réseau de neurones permet de prédir la vitesse du splash. 

Détection des "splash" avant qu'ils ne se forment
Figure 2 : Détection des « splash » avant qu’ils ne se forment

  Construction du réseau de neurones de MLFLIP

Il y a donc un réseau de neurones classifieur qui prédit si un splash va se produire et un réseau de neurones qui détermine la vitesse du splash éventuel. Le premier réseau prend en entrée un vecteur décrivant le voisinage d’un point P de fluide, et ressort 0 ou 1. Si le réseau de neurones ressort 0 cela signifie qu’il prédit l’absence de splash et il ressort 1 lorsqu’il prédit la présence d’un splash.

Vous êtes en droit de vous demander pourquoi les informations au voisinage d’un volume de fluide sont pertinentes pour déterminer s’il va y avoir détachement ou non. Eh bien les physiciens se sont aperçus que les flux locaux proches de la surface d’un liquide sont un facteur clé pour le détachement de morceaux de fluides. Ce réseau de neurones a pour objectif d’approximer la fonction de splash lorsqu’il est correctement entraîné. La physique du splash est ainsi en quelque sorte encapsulée dans cette fonction.

Concentrons-nous maintenant sur le réseau de neurones s’occupant de la détermination de la vitesse d’un morceau de fluide s’étant détaché. Il s’avère que la vitesse de ce morceau de fluide suit une loi normale par rapport à la direction moyenne du fluide. Il suffit donc de trouver la loi normale associée à un splash en particulier. Pour cela il suffit de créer deux réseaux de neurones, un qui estime l’espérance de la loi normale du splash et l’autre pour estimer son écart type.

La vitesse du splash qui se détache suit une loi normale
Figure 3 : La vitesse du splash qui se détache suit une loi normale

Entraînement du réseau de neurones

Ces réseaux de neurones ont bien entendu besoin de données fiables pour être entrainés correctement. Les chercheurs ont décidés d’utiliser FLIP avec une résolution très fine pour générer les données d’entrainement du réseau. FLIP dénomme (par abus) un solveur numérique largement utilisé par les chercheurs et l’industrie du cinéma pour simuler des fluides (FLIP est très gourmand en ressources).

Pour l’entrainement du réseau classifieur, il faut repérer des volumes qui génèrent des splash pour cela un algorithme identifie les volumes d’eau inférieurs à un certain seuil fixé, et les catégorise comme « splash » s’ils n’étaient pas catégorisés comme « splash » au temps 𝑇_𝑎𝑐𝑡𝑢𝑒𝑙 − Δ𝑇. Ces exemples de splash ainsi que les conditions qui leurs ont donnés naissance, alimentent ensuite le réseau de neurones qui apprend ce qu’est un splash.

Données d'entrainement du réseau
Figure 4 : Données d’entrainement du réseau

Résultats 

MLFLIP est l’un des premiers algorithmes physiques mettant à profit les avancées dans le domaine des réseaux de neurones. Les chercheurs sont parvenus à faire apprendre à leurs modèles les mécanismes fondamentaux du splash et ont ouvert la voie à de nouveaux travaux utilisant les réseaux neuronaux pour apprendre des phénomènes physiques.

Exemple de résultats
Figure 5 : Exemple de résultats

Source : Liquid Splash Modeling with Neural Networks, Kiwon Um, Xiangyu Hu, and Nils Thuerey