Utilisation de l'apprentissage automatique dans la dynamique des fluides computationnelle

9

Contexte:
Je n'ai créé qu'une seule solution numérique fonctionnelle pour 2d Navier-Stokes, pour un cours. C'était une solution pour l'écoulement de la cavité entraîné par le couvercle. Le cours a cependant discuté d'un certain nombre de schémas pour les discrétisations spatiales et les discrétisations temporelles. J'ai également suivi plus de cours de manipulation de symboles appliqués à NS.

Certaines des approches numériques pour gérer la conversion de l'équation analytique / symbolique de PDE en différence finie comprennent:

  • Euler FTFS, FTCS, BTCS
  • Relâché
  • Leapfrog Midpoint
  • Lax-Wendroff
  • MacCormack
  • grille décalée (la diffusion spatiale permet à l'information de se propager)
  • TVD

Pour moi, à l'époque, cela ressemblait à "insert-name trouve un schéma et cela fonctionne". Beaucoup d'entre eux datent d'avant l'époque du "silicium abondant". Ce sont toutes des approximations. Dans la limite ils. en théorie, conduire aux PDE.

Bien que la simulation numérique directe ( DNS ) soit amusante et que Reynolds Averaged Navier-Stokes ( RANS ) soit également amusant, ce sont les deux «points de terminaison» du continuum entre le calculable et représentatifs complets des phénomènes. Il existe plusieurs familles d'approches qui vivent à l'intérieur de celles-ci.

J'ai eu des professeurs de CFD dire, en conférence, que la plupart des solveurs CFD font de jolies images, mais pour la plupart, ces images ne représentent pas la réalité et qu'il peut être très difficile, et prendre beaucoup de travail, d'obtenir une solution de solveur qui représente la réalité.

La séquence de développement (si je comprends bien, non exhaustive) est la suivante:

  1. commencer par les équations régissant -> PDE
  2. déterminer votre discrétisation spatiale et temporelle -> grille et règles FD
  3. appliquer au domaine, y compris les conditions initiales et les conditions aux limites
  4. résoudre (beaucoup de variations sur l'inversion de matrice)
  5. effectuer des vérifications de réalité grossière, s'adapter à des solutions connues, etc.

  6. construire des modèles physiques plus simples dérivés des résultats analytiques

  7. les tester, analyser et évaluer
  8. itérer (revenir à l'étape 6, 3 ou 2)

Réflexions:
J'ai récemment travaillé avec des modèles CART, des arbres obliques, des forêts aléatoires et des arbres à gradient amélioré. Ils suivent des règles plus dérivées mathématiquement et les mathématiques déterminent la forme de l'arbre. Ils travaillent pour bien faire des formes discrétisées.

Bien que ces approches numériques créées par l'homme fonctionnent quelque peu, il existe un "vaudou" important pour relier leurs résultats aux phénomènes physiques qu'ils sont censés modéliser. Souvent, la simulation ne remplace pas substantiellement les tests et la vérification dans le monde réel. Il est facile d'utiliser le mauvais paramètre ou de ne pas tenir compte des variations de géométrie ou des paramètres d'application rencontrés dans le monde réel.

Des questions:

  • Existe-t-il une approche permettant à la nature du problème de définir
    la discrétisation appropriée, le schéma de différenciation spatiale et temporelle, les conditions initiales ou la solution?
  • Une solution haute définition couplée aux techniques d'apprentissage automatique peut-elle être utilisée pour créer un schéma de différenciation qui a des tailles de pas beaucoup plus grandes mais qui conserve la convergence, la précision, etc.
  • Tous ces schémas sont accessibles "humainement exploitables pour dériver" - ils ont une poignée d'éléments. Existe-t-il un schéma de différenciation avec des milliers d'éléments qui fait un meilleur travail? Comment est-il dérivé?

Remarque: Je poursuivrai avec les données empiriquement intialisées et empiriquement dérivées (par opposition à analytiquement) dans une question distincte.

MISE À JOUR:

  1. Utilisation de l'apprentissage en profondeur pour accélérer les écoulements de Boltzmann sur réseau. Gave ~ 9x accélération pour leur cas particulier

    Hennigh, O. (sous presse). Lat-Net: Simulations d'écoulement Boltzmann en réseau compressé utilisant des réseaux de neurones profonds. Extrait de: https://arxiv.org/pdf/1705.09036.pdf

    Repo avec du code (je pense):
    https://github.com/loliverhennigh/Phy-Net

  2. Environ 2 ordres de grandeur plus rapides que le GPU, 4 ordres de grandeur ou ~ O (10 000x) plus rapides que le CPU et le même matériel.

    Guo, X., Li, W. & Ioiro, F. Réseaux de neurones convolutionnels pour l'approximation d'écoulement stable. Extrait de: https://autodeskresearch.com/publications/convolutional-neural-networks-steady-flow-approximation

  3. D'autres qui se sont penchés sur le sujet il y a environ 20 ans:

    Muller, S., Milano, M. & Koumoutsakos P. Application d'algorithmes d'apprentissage automatique à la modélisation et à l'optimisation des flux. Centre for Turbulence Research Annual Research Briefs 1999 Extrait de: https://web.stanford.edu/group/ctr/ResBriefs99/petros.pdf

Mise à jour (2017):
Cela caractérise l'utilisation de méthodes non dégradées dans l'apprentissage profond, une arène qui a été exclusivement basée sur le gradient. Bien que l'implication directe de l'activité soit dans l'apprentissage en profondeur, cela suggère également que l'AG peut être utilisé comme équivalent pour résoudre un problème très difficile, très profond et très complexe au niveau cohérent ou supérieur aux méthodes basées sur la descente en gradient.

Dans le cadre de cette question, cela pourrait suggérer qu'une attaque basée sur l'apprentissage automatique à plus grande échelle pourrait permettre des «modèles» dans le temps et l'espace qui accélèrent considérablement la convergence des méthodes de domaine de gradient. L'article va jusqu'à dire que parfois aller dans le sens de la descente de gradient s'éloigne de la solution. Alors que dans tout problème avec les optima locaux ou les trajectoires pathologiques (la plupart des problèmes du monde réel à haute valeur en ont certains), on s'attend à ce que le gradient ne soit pas globalement informatif, il est toujours agréable de le quantifier et de le valider empiriquement tel qu'il était dans cet article et la capacité de «sauter le cap» sans nécessiter de «réduction de l'apprentissage» à mesure que vous obtenez une dynamique ou une sous-relaxation.

Mise à jour (2019):
Il semble que Google ait maintenant une pièce "comment trouver un meilleur solveur" du puzzle de l'IA. link Ceci fait partie de l'IA qui fait le solveur.

** Mise à jour (2020): ** Et maintenant, ils le font et le font bien ...
https://arxiv.org/pdf/1911.08655.pdf

On pourrait faire valoir qu'ils pourraient ensuite déconstruire leur NN pour déterminer la discrétisation réelle. J'aime particulièrement la figure 4.

EngrStudent
la source
5
Bienvenue sur Scicomp.SE! Votre question est un peu plus philosophique que d'habitude pour ce site, mais je n'ai pas pu résister à donner mes deux cents. Néanmoins, je pense qu'il y a là une question «difficile» qui vaut la peine: quand les méthodes de différences finies de très haut niveau en valent-elles la peine, et comment sont-elles dérivées et mises en œuvre dans la pratique? Je recommande soit de réécrire votre question pour la concentrer sur cet aspect (auquel cas je supprimerai volontiers ma réponse qui n'est plus pertinente), soit de la poser comme une nouvelle question (utilisez la case "posez votre propre question" dans la case jaune à en bas de la page).
Christian Clason
8
Je pense que le principal malentendu vient du fait que votre séquence est trop courte - il y a (au moins!) Une étape manquante au début: comment décider des équations gouvernantes. Si les résultats de la simulation ne correspondent pas aux phénomènes physiques (et que vos méthodes numériques sont correctes - cette partie est purement mathématique, il n'y a pas de vaudou, c'est juste ou faux), alors c'est là que vous devez revenir. Aucune ruse mathématique ne peut compenser des hypothèses de modélisation inappropriées.
Christian Clason
4
Ce n'est tout simplement pas vrai (selon ce que vous entendez exactement par «la réponse»). Vous créez un modèle (en partant des premiers principes ou en modifiant un existant), le résolvez à la précision souhaitée et comparez la sortie avec des observations expérimentales. S'ils sont d'accord, bien, écrivez un papier; sinon, revenez en arrière et affinez votre modèle. Rincez, répétez. C'est ainsi que fonctionne (n'importe quelle) science (la solution numérique lui est complètement accessoire).
Christian Clason
3
C'est exactement ce dont je parle - si vous trouvez que vous ne pouvez pas reproduire les mesures à moins que vous n'incluiez également dans votre modèle la conservation des volants (ou autre), alors c'est ce que vous faites. Comment pensez-vous que les cinq principes que vous avez énumérés ont été élaborés en premier lieu? C'est juste que la science moderne est devenue si compliquée que ce n'est plus une seule personne qui fait les mesures, essaie de trouver des modèles prédictifs, étudie leurs propriétés mathématiques, dérive des méthodes numériques pour leur solution et les fait fonctionner avec une efficacité raisonnable.
Christian Clason,
1
@EngrStudent n'est pas une réponse directe à votre deuxième question, mais nous avons travaillé sur l'amélioration des modèles RANS (vous pouvez utiliser un maillage plus grossier et un grand pas de temps), qui sont terriblement inexacts dans des flux complexes mais sont beaucoup moins chers que DNS. Nous utilisons une combinaison de problèmes inverses et de réseaux de neurones pour améliorer ces modèles à l'aide de données expérimentales. Jetez un œil à arxiv.org/abs/1608.03990 et ses références. Je ne pense pas qu'il soit possible d'ignorer complètement l'équation dominante et de maintenir un niveau de précision similaire (au moins à l'heure actuelle).
maverick

Réponses:

20

C'est une blague de longue date que CFD signifie «dynamique des fluides colorés». Néanmoins, il est utilisé - et utile - dans un large éventail d'applications. Je crois que votre mécontentement découle de la distinction insuffisante entre deux étapes interconnectées mais différentes: créer un modèle mathématique d'un processus physique et le résoudre numériquement. Permettez-moi de commenter un peu ces éléments:

  1. Aucun modèle mathématique (ou vraiment aucun) de la réalité physique n'est jamais correct ; au mieux, il est utile pour prédire les résultats des mesures dans un ensemble de circonstances très précisément délimité (mais, espérons-le, important). Cela inclut le fait qu'il doit être possible d'obtenir une telle prédiction compte tenu d'une configuration spécifique; c'est pourquoi nous avons toute une hiérarchie de modèles allant de la théorie des champs quantiques à la mécanique newtonienne. En particulier, les équations de Navier-Stokes ne décrivent pas l'écoulement des fluides, elles donnent une prédiction d'aspects spécifiques du comportement de certains fluides dans certaines conditions.

  2. Pour les modèles mathématiques plus compliqués (tels que les équations de Navier-Stokes), vous ne pouvez jamais obtenir une solution exacte (et donc une prédiction), mais seulement une approximation numérique. Ce n'est pas une si mauvaise chose que cela puisse paraître, car les mesures avec lesquelles vous souhaitez les comparer ne sont jamais exactes. Tout comme dans le choix des modèles, il y a un compromis entre précision et maniabilité - cela n'a aucun sens de dépenser du temps ou de l'argent pour obtenir une solution plus précise que nécessaire. À ce stade, il devient purement une question sur la façon d'approcher numériquement la solution (dans ce cas) d'une équation différentielle partielle, qui fait l'objet d'un champ mathématique entier: l'analyse numérique. Ce domaine vise à prouverestimation des erreurs pour certaines méthodes numériques (là encore, sous certaines conditions, explicitement spécifiées). Votre déclaration "insert-name trouve un schéma et il se trouve qu'il fonctionne", est extrêmement injuste - il devrait être "insert-name trouve un schéma et prouve qu'il fonctionne". De plus, ces schémas ne sont pas tirés de nulle part - ils sont dérivés de principes mathématiques bien compris.

    (Par exemple, les schémas de différences finies peuvent être dérivés en utilisant des approximations de Taylor d'un ordre donné. Il est certainement possible - et certaines personnes le font - d'obtenir des schémas de différences d'ordre très élevé et de les mettre en œuvre, mais il existe une loi des rendements décroissants : cela ne peut être automatisé que partiellement, et nécessite donc beaucoup d'efforts, et certaines conditions de plus en plus restrictives doivent être remplies pour en obtenir la plus grande précision correspondante. En outre, à un moment donné, il est préférable d'utiliser un schéma différent, tel que méthodes spectrales.)

Le thème commun ici est que les modèles et les schémas numériques sont livrés avec une gamme d'applicabilité, et il est important de choisir la bonne combinaison pour un objectif donné. C'est précisément pourquoi un informaticien doit connaître à la fois le domaine scientifique (pour savoir quel modèle est valide dans quelle situation) et les mathématiques (pour savoir quelle méthode est applicable à quel modèle et à quelle précision)! Ignorer ces étiquettes "utiliser uniquement comme dirigé" conduit à produire le genre de "conneries de calcul" (au sens technique de Harry Frankfurt) auquel vos professeurs de CFD ont fait référence.

Quant à savoir pourquoi utiliser un modèle de calcul lorsque vous avez un modèle physique (comme une soufflerie): L'une des raisons est que l'exécution d'un logiciel peut être beaucoup moins chère que la création d'un modèle et sa mise en soufflerie. De plus, ce n'est généralement pas un ou l'autre: Par exemple, lors de la conception d'une voiture ou d'un avion, vous exécutez des centaines ou des milliers de simulations pour affiner les choses, puis uniquement pour le (s) candidat (s) final (s) mettre un modèle dans le vent tunnel.


Mise à jour:

Utiliser l'apprentissage automatique au lieu de la simulation numérique, c'est comme dire "ne pas avoir de modèle, c'est mieux que d'avoir un modèle approximatif", ce avec quoi je doute que quiconque en dynamique des fluides (ou dans tout autre domaine) soit d'accord. Cela étant dit, il est certainement possible (et effectivement fait) d'utiliser l'apprentissage automatique pour sélectionner des «paramètres de géométrie ou d'application» inconnus en fonction de l'accord avec les données mesurées; cependant, ici aussi, les méthodes basées sur des modèles telles que la quantification de l'incertitude ou les problèmes inverses (bayésiens) fonctionnent généralement beaucoup mieux (et sont basées sur des principes mathématiques rigoureux). Sélection numérique des paramètres tels que la taille des pas ou l'ordre de la méthode utilisant l'apprentissage automatique sont également possibles en principe, mais je ne vois pas l'avantage car il existe une théorie mathématique qui vous indique précisément comment choisir ces paramètres en fonction de votre modèle (mathématique).

Mise à jour 2:

Le document auquel vous vous connectez concerne l'infographie , pas la science informatique : leur objectif n'est pas d'avoir une simulation précise (c'est-à-dire une solution numérique d'un modèle mathématique) d'un processus physique, mais quelque chose qui ressemble à un à l'œil nu. (un cas extrême de "dynamique des fluides colorés" ...) - c'est une question très différente. En particulier, il n'y a pas d' erreur liée à la sortie du réseau formé par rapport à la solution correspondante aux équations de Navier-Stokes, qui est un élément indispensable de toute méthode numérique.


(Et votre première question part d'une fausse prémisse: dans chaque approche, le problème détermine le modèle, le modèle détermine la discrétisation, la discrétisation détermine le solveur.)

Christian Clason
la source
Il y a projection dans l'espace des solutions, mais pas nécessairement vers «la» solution. Je suis rouillé en ce moment. L'idée est d'utiliser le système formé empiriquement pour limiter la région de la parcelle de solutions acceptables dans laquelle la projection se produit depuis ses limites d'origine jusqu'à être plus proche de la solution physique.
EngrStudent
2
Vous confondez à nouveau la carte et le territoire - un modèle mathématique (bien posé) a une solution unique (pour toutes les données). Cette solution, vous pouvez calculer avec une précision arbitraire (avec un effort croissant) en utilisant une méthode numérique (appropriée). Par contre, il n'y a pas de "solution physique", il n'y a que des mesures. Si ceux-ci ne sont pas d'accord avec la simulation dans l'exactitude des mesures et des chiffres, vous avez résolu le mauvais modèle et votre problème n'est pas celui de la science informatique, mais de la physique de base.
Christian Clason
4
Aussi, un commentaire: Une partie fondamentale de la science (et, en particulier, les mathématiques) est un langage technique très précis avec une signification fixe et sans ambiguïté - c'est la seule façon dont tout le monde peut être sûr de parler réellement de la même chose, quand de petites différences d'interprétation peuvent avoir un effet énorme. Ne pas s'en tenir à la terminologie communément acceptée et utiliser à la place des termes comme «région de la parcelle de solutions acceptables» rend très difficile de savoir ce que vous voulez dire. (Je peux seulement deviner que vous pourriez parler de quelque chose comme l'étalonnage du modèle, les problèmes inverses ou l'assimilation des données.)
Christian Clason
Une autre difficulté des expériences est qu'elles sont inévitablement biaisées par rapport à l'équipement utilisé. Une série d'expériences dans une installation n'est pas nécessairement concluante, c'est-à-dire que l'on peut s'attendre à ce que différentes souffleries donnent des résultats parfois sensiblement différents. La Conférence internationale sur les réservoirs de remorquage a abordé cette question avec une vaste série de tests dans plus de 50 réservoirs de remorquage à travers le monde. Voir: "ITTC Worldwide Series for Identifying Facility Biases - Technical Procedures". nmri.go.jp/turbulence/group/…
Lysistrata
un bon principe de base de l'auteur:in every approach, the problem determines the model, the model determines the discretization, the discretization determines the solver.
Sascha Gottfried
7

Je pense que vous mélangez quelques idées différentes qui sont source de confusion. Oui, il existe une grande variété de façons de discrétiser un problème donné. Le choix d'une manière appropriée peut ressembler à du «vaudou» lorsque vous apprenez ces choses en classe, mais lorsque les chercheurs les choisissent, ils le font en s'appuyant sur l'expérience combinée du domaine, telle que publiée dans la littérature. Par conséquent, ils font des choix beaucoup plus éclairés qu'un étudiant.

Question 1: Si vous résolvez un problème et que vous passez d'un schéma à un autre, votre temps d'exécution changera, les critères de convergence peuvent changer ou votre comportement asymptotique, mais un point très important est que votre solution convergée finale ne doit PAS changer . Si c'est le cas, vous devez soit affiner vos maillages, soit il y a un problème avec votre schéma numérique. Vous pouvez peut-être utiliser un algorithme d'optimisation pour créer vos schémas numériques et améliorer les performances pour une classe de problèmes spécifique, mais plusieurs fois les schémas dérivés de la main sont créés avec un comportement de convergence / asymptotique optimal prouvable mathématiquement pour le nombre de termes impliqués ou le type de maillage utilisé.

Maintenant, le paragraphe ci-dessus ne prend pas en compte des éléments tels que différents modèles de turbulence, qui sont différentes formulations / approximations mathématiques de la physique, et devraient donc avoir des solutions différentes. Ceux-ci sont à nouveau très étudiés dans la littérature, et je ne pense pas que les programmes soient au point de pouvoir examiner les phénomènes physiques et produire un modèle mathématique qui prédit correctement la réponse de systèmes physiques similaires.

Question 2: Oui, vous pouvez dériver un schéma qui utilise tout le maillage à la fois, en utilisant du code informatique pour le faire. Je me sens même en sécurité en disant que pour certains maillages, de tels codes existent et pourraient vous donner votre schéma en quelques heures (une fois que vous aurez trouvé le code). Le problème est que vous ne battrez jamais Nyquist. Il y a une limite à la taille des pas de temps que vous effectuez, en fonction de la fréquence maximale de la réponse de votre système, et une limite à la taille des cellules / éléments de maillage que vous pouvez avoir en fonction des fréquences spatiales de la solution.

Cela ne tient même pas compte du fait que souvent le travail de calcul impliqué dans l'utilisation d'un schéma plus complexe est souvent non linéaire et complexe. La plupart des étudiants apprennent les méthodes RK4 pour l'intégration du temps parce que lorsque vous commencez à utiliser des méthodes avec un ordre plus élevé que cela, vous obtenez plus d'évaluations de votre dérivé plus rapidement que vous ne gagnez d'ordres de votre méthode. Dans le domaine spatial, les méthodes d'ordre supérieur augmentent considérablement le remplissage de la matrice, vous avez donc besoin de moins de points de maillage, mais le travail que vous faites pour inverser la matrice clairsemée augmente considérablement, compensant au moins partiellement vos gains.

Je ne sais pas de quoi vous parlez à la question trois. Vous parlez de transformer des solutions proches d'un problème en de meilleures solutions? Si c'est le cas, je recommande une lecture légère sur multigrid. Si vous demandez à transformer des schémas numériques décents en schémas incroyables, je pense que le reste de ma réponse y touche au moins.

Godric Seer
la source