Uso dell'apprendimento automatico nella fluidodinamica computazionale


9

Contesto:
per un corso ho creato solo una soluzione numerica funzionante a 2d Navier-Stokes. Era una soluzione per il flusso di cavità guidato dal coperchio. Il corso, tuttavia, ha discusso una serie di schemi per discretizzazioni spaziali e discretizzazioni temporali. Ho anche seguito altri corsi di manipolazione dei simboli applicati a NS.

Alcuni degli approcci numerici per gestire la conversione dell'equazione analitica / simbolica dalla PDE alla differenza finita includono:

  • Euler FTFS, FTCS, BTCS
  • negligente
  • Midpoint Leapfrog
  • Lax-Wendroff
  • MacCormack
  • griglia offset (la diffusione spaziale consente la diffusione delle informazioni)
  • TVD

A me, all'epoca, sembravano "inserire-name trova uno schema e sembra funzionare". Molti di questi risalivano a prima del "abbondante silicio". Sono tutte approssimazioni. Nel limite loro. in teoria, portare alla PDE.

Mentre la simulazione numerica diretta ( DNS ) è divertente e Reynolds Averaged Navier-Stokes ( RANS ) è anche divertente, sono i due "punti finali" del continuum tra trattabili dal punto di vista computazionale e che rappresentano pienamente i fenomeni. Esistono più famiglie di approcci che vivono al loro interno.

Durante la lezione, i professori di CFD hanno detto che la maggior parte dei solutori di CFD fanno belle foto, ma per la maggior parte, quelle immagini non rappresentano la realtà e che può essere molto difficile e richiedere molto lavoro, per ottenere una soluzione risolutiva che rappresenta la realtà.

La sequenza di sviluppo (a quanto ho capito, non esaustiva) è:

  1. inizia con le equazioni di governo -> PDE
  2. determinare la discretizzazione spaziale e temporale -> griglia e regole FD
  3. si applicano al dominio comprese le condizioni iniziali e le condizioni al contorno
  4. risolvere (molte varianti sull'inversione della matrice)
  5. eseguire controlli di realtà grossolana, adattarsi a soluzioni note, ecc.

  6. costruire alcuni modelli fisici più semplici derivati ​​da risultati analitici

  7. testarli, analizzare e valutare
  8. iterare (tornare al passaggio 6, 3 o 2)

Pensieri: di
recente ho lavorato con modelli CART, alberi obliqui, foreste casuali e alberi a gradiente. Seguono regole derivate più matematicamente e la matematica guida la forma dell'albero. Lavorano per rendere bene le forme discretizzate.

Sebbene questi approcci numerici creati dall'uomo funzionino in qualche modo, esiste un ampio "voodoo" necessario per collegare i loro risultati ai fenomeni fisici che dovrebbero modellare. Spesso la simulazione non sostituisce sostanzialmente i test e le verifiche del mondo reale. È facile usare il parametro sbagliato o non tenere conto della variazione della geometria o dei parametri dell'applicazione vissuti nel mondo reale.

Domande:

  • C'è stato qualche approccio per consentire alla natura del problema di definire
    la discretizzazione appropriata, lo schema di differenziazione spaziale e temporale, le condizioni iniziali o la soluzione?
  • È possibile utilizzare una soluzione ad alta definizione abbinata alle tecniche di apprendimento automatico per creare uno schema di differenziazione che ha dimensioni di gradino molto più grandi ma conserva convergenza, precisione e simili?
  • Tutti questi schemi sono accessibili "umanamente trattabili per derivare" - hanno una manciata di elementi. Esiste uno schema di differenziazione con migliaia di elementi che fa un lavoro migliore? Come viene derivato?

Nota: seguirò empiricamente intializzato e empiricamente derivato (al contrario di analiticamente) in una domanda separata.

AGGIORNARE:

  1. Uso dell'apprendimento profondo per accelerare i flussi di Boltzmann reticolari. Ha dato ~ 9x speedup per il loro caso particolare

    Hennigh, O. (in corso di stampa). Lat-Net: simulazioni di flusso di Boltzmann reticolare compresso che utilizzano reti neurali profonde. Estratto da: https://arxiv.org/pdf/1705.09036.pdf

    Repo con codice (penso):
    https://github.com/loliverhennigh/Phy-Net

  2. Circa 2 ordini di grandezza più veloce della GPU, 4 ordini di grandezza o ~ O (10.000x) più veloce della CPU e dello stesso hardware.

    Guo, X., Li, W. & Ioiro, F. Reti neurali convoluzionali per l'approssimazione del flusso costante. Estratto da: https://autodeskresearch.com/publications/convolutional-neural-networks-steady-flow-approximation

  3. Altri che hanno esaminato l'argomento circa 20 anni fa:

    Muller, S., Milano, M. & Koumoutsakos P. Applicazione di algoritmi di machine learning per la modellazione e l'ottimizzazione del flusso. Briefs di ricerca annuale del Center for Turbulence Research 1999 Estratto da: https://web.stanford.edu/group/ctr/ResBriefs99/petros.pdf

Aggiornamento (2017):
questo caratterizza l'uso di metodi senza gradiente nell'apprendimento profondo, un'arena che è stata esclusivamente basata sul gradiente. Mentre l'implicazione diretta dell'attività è nell'apprendimento profondo, suggerisce anche che GA può essere usato come equivalente nel risolvere un problema molto duro, molto profondo, molto complesso a livello coerente o superiore ai metodi basati sulla discesa del gradiente.

Nell'ambito di questa domanda, potrebbe suggerire che un attacco su larga scala basato sull'apprendimento automatico potrebbe consentire "modelli" nel tempo e nello spazio che accelerano sostanzialmente la convergenza dei metodi del dominio gradiente. L'articolo si spinge fino a dire che a volte andando nella direzione della discesa gradiente si allontana dalla soluzione. Mentre in qualsiasi problema con optima locale o traiettorie patologiche (la maggior parte dei problemi del mondo reale hanno alcuni di questi) ci si aspetta che il gradiente non sia informativo a livello globale, è comunque bello averlo quantificato e validato empiricamente com'era in questo documento e la capacità di "saltare il limite" senza richiedere "riduzione dell'apprendimento" mentre si prende slancio o sotto rilassamento.

Aggiornamento (2019):
sembra che Google abbia ora un contributo "come trovare un risolutore migliore" del puzzle AI. link Questa è una parte del fare in modo che l'IA faccia il risolutore.

** Aggiornamento (2020): ** E ora lo stanno facendo e lo stanno facendo bene ...
https://arxiv.org/pdf/1911.08655.pdf

Si potrebbe sostenere che potrebbero quindi decostruire il loro NN per determinare la discretizzazione effettiva. Mi piace particolarmente la figura 4.


5
Benvenuto in Scicomp.SE! La tua domanda è un po 'più filosofica del solito per questo sito, ma non ho resistito a dare i miei due centesimi. Tuttavia, penso che ci sia una domanda "difficile" che valga la pena: quando valgono i metodi di differenza finita di ordine molto elevato e come vengono derivati ​​e implementati nella pratica? Consiglio di riscrivere la tua domanda per focalizzarla su questo aspetto (nel qual caso eliminerò felicemente la mia risposta non più pertinente), oppure di farla come una nuova domanda (usa il "fai la tua domanda" nella casella gialla in la parte inferiore della pagina).
Christian Clason,

8
Penso che il principale malinteso derivi dal fatto che la sequenza è troppo breve: all'inizio c'è (almeno!) Un passo mancante: come decidere sulle equazioni di governo. Se i risultati della simulazione non concordano con i fenomeni fisici (e i tuoi metodi numerici sono corretti - questa parte è matematica pura, non c'è voodoo, è giusto o sbagliato), allora è qui che devi tornare indietro. Nessuna quantità di inganno matematico può compensare ipotesi di modellazione inadeguate.
Christian Clason,

4
Questo non è vero (dipende da cosa intendi esattamente per "la risposta"). Si crea un modello (partendo dai primi principi o modificandone uno esistente), si risolve con l'accuratezza desiderata e si confronta l'output con osservazioni sperimentali. Se sono d'accordo, va bene, scrivi un documento; in caso contrario, tornare indietro e perfezionare il modello. Risciacqua, ripeti. Questo è il modo in cui (qualsiasi) scienza funziona (la soluzione numerica è completamente incidentale).
Christian Clason,

3
Questo è esattamente ciò di cui sto parlando: se scopri che non puoi riprodurre le misurazioni a meno che tu non includa anche nel tuo modello la conservazione dei wuffles (o qualsiasi altra cosa), allora è quello che fai. Come pensi che i cinque principi che hai elencato siano stati inventati in primo luogo? È solo che la scienza moderna è diventata così complicata che non è più una singola persona a fare le misurazioni, a cercare modelli predittivi, a studiare le loro proprietà matematiche, a ricavare metodi numerici per la loro soluzione e a farli funzionare a ragionevole efficienza.
Christian Clason,

1
@EngrStudent non è una risposta diretta alla tua seconda domanda, ma abbiamo lavorato per migliorare i modelli RANS (puoi usare mesh più grossolane e tempi lunghi), che sono terribilmente inaccurati in flussi complessi ma sono molto più economici del DNS. Usiamo una combinazione di problema inverso e rete neurale per migliorare questi modelli usando dati sperimentali. Dai un'occhiata a arxiv.org/abs/1608.03990 e ai riferimenti lì. Non penso che sia possibile ignorare completamente l'equazione di governo e mantenere un livello di precisione simile (almeno al momento attuale).
Maverick,

Risposte:


20

È uno scherzo di lunga data che CFD sta per "dinamica dei fluidi colorata". Tuttavia, viene utilizzato - e utile - in una vasta gamma di applicazioni. Credo che il tuo malcontento derivi dal non distinguere sufficientemente tra due passaggi interconnessi ma diversi: creare un modello matematico di un processo fisico e risolverlo numericamente. Vorrei commentare un po 'questi:

  1. Nessun modello matematico (o realmente, nessuno) della realtà fisica è mai corretto ; nella migliore delle ipotesi è utile per prevedere i risultati delle misurazioni in una serie di circostanze ben delimitate (ma si spera grandi). Ciò include il fatto che deve essere possibile ottenere tale previsione data una configurazione specifica; questo è il motivo per cui abbiamo un'intera gerarchia di modelli dalla teoria dei campi quantistici alla meccanica newtoniana. In particolare, le equazioni di Navier-Stokes non descrivono il flusso del fluido, ma forniscono una previsione di aspetti specifici del comportamento di determinati fluidi in determinate condizioni.

  2. Per i modelli matematici più complicati (come le equazioni di Navier-Stokes), non è mai possibile ottenere una soluzione esatta (e quindi una previsione), ma solo un'approssimazione numerica. Questa non è una brutta cosa come sembra, dal momento che le misurazioni con cui vuoi confrontarle non sono mai esatte. Proprio come nella scelta dei modelli, esiste un compromesso tra precisione e tracciabilità: non ha senso spendere tempo o denaro per ottenere una soluzione più accurata del necessario. A questo punto, diventa puramente una domanda su come approssimare numericamente la soluzione di (in questo caso) un'equazione differenziale parziale, che è l'oggetto di un intero campo matematico: l'analisi numerica. Questo campo riguarda la dimostrazionestime di errore per determinati metodi numerici (di nuovo, a determinate condizioni, esplicitamente specificate). La tua affermazione "insert-name trova uno schema e sembra funzionare", è gravemente ingiusta - dovrebbe essere "insert-name trova uno schema e dimostra che funziona". Inoltre, questi schemi non vengono estratti dal nulla, ma derivano da principi matematici ben compresi.

    (Ad esempio, gli schemi di differenza finita possono essere derivati ​​usando approssimazioni di Taylor di un determinato ordine. È certamente possibile - e alcune persone lo fanno - ottenere schemi di differenza di ordine molto elevato e implementarli, ma esiste una legge di rendimenti decrescenti : questo può essere automatizzato solo in parte, e quindi richiede molto sforzo e alcune condizioni sempre più restrittive devono essere soddisfatte per ottenere effettivamente la corrispondente maggiore precisione da esse. Inoltre, a un certo punto è meglio utilizzare un diverso schema del tutto come metodi spettrali.)

Il tema comune qui è che sia i modelli che gli schemi numerici presentano una gamma di applicabilità ed è importante scegliere la giusta combinazione per un determinato scopo. Questo è esattamente il motivo per cui uno scienziato computazionale deve conoscere sia la scienza del dominio (per sapere quale modello è valido in quale situazione) sia la matematica (per sapere quale metodo è applicabile a quale modello e quale precisione)! Ignorare queste etichette "usa solo come indicato" porta a produrre il tipo di "stronzate computazionali" (nel senso tecnico di Harry Frankfurt) a cui si riferivano i professori CFD.

Per quanto riguarda il motivo per cui utilizzare un modello computazionale quando si dispone di un modello fisico (come una galleria del vento): Uno dei motivi è che il software in esecuzione può essere più economico di ordini di grandezza rispetto alla creazione di un modello e metterlo in una galleria del vento. Inoltre, di solito non è né uno né l'altro: ad esempio, quando si progetta un'auto o un aeroplano, si eseguono centinaia o migliaia di simulazioni per restringere le cose, e quindi solo per il / i candidato / i finale / i mettere un modello in un vento tunnel.


Aggiornare:

Usare l'apprendimento automatico invece della simulazione numerica è come dire "non avere un modello è meglio che avere un modello approssimativo", che dubito che chiunque nella fluidodinamica (o in qualsiasi altro campo) sarebbe d'accordo. Detto questo, è certamente possibile (e effettivamente fatto) utilizzare l'apprendimento automatico per selezionare "parametri geometrici o applicativi" sconosciuti in base all'accordo con i dati misurati; tuttavia, anche qui metodi basati su modelli come quantificazione dell'incertezza o problemi inversi (bayesiani) di solito funzionano molto meglio (e sono basati su rigorosi principi matematici). Selezione numerica in linea di principio sono anche possibili parametri come la dimensione del gradino o l'ordine del metodo che utilizza l'apprendimento automatico, ma non riesco a vederne il vantaggio poiché esiste una teoria matematica che ti dice esattamente come scegliere questi parametri in base al tuo modello (matematico).

Aggiornamento 2:

L'articolo a cui ti colleghi riguarda la computer grafica , non la scienza computazionale : il loro obiettivo non è quello di avere una simulazione accurata (cioè una soluzione numerica di un modello matematico) di un processo fisico, ma qualcosa che assomiglia ad uno ad occhio nudo (un caso estremo di "dinamica dei fluidi colorati" ...) - è una questione molto diversa. In particolare, non vi è alcun errore associato all'output della rete addestrata rispetto alla soluzione corrispondente alle equazioni di Navier-Stokes, che è una parte indispensabile di qualsiasi metodo numerico.


(E la tua prima domanda parte da una premessa errata: in ogni approccio, il problema determina il modello, il modello determina la discretizzazione, la discretizzazione determina il risolutore.)


C'è una proiezione nello spazio delle soluzioni, ma non necessariamente nella "soluzione". Sono arrugginito in questo momento. L'idea è di utilizzare il sistema empiricamente addestrato per limitare la regione del pacchetto di soluzioni accettabili in cui la proiezione si verifica dai suoi limiti originali ad essere più vicini alla soluzione fisica.
EngrStudent,

2
Stai confondendo di nuovo la mappa e il territorio: un modello matematico (ben posizionato) ha una soluzione unica (per ogni dato dato). Questa soluzione è possibile calcolare l'accuratezza arbitraria (con sforzo crescente) utilizzando un metodo numerico (adatto). D'altra parte, non esiste una "soluzione fisica", ci sono solo misurazioni. Se questi non concordano con la simulazione nell'accuratezza della misurazione e della numerazione, stavi risolvendo il modello sbagliato e il tuo problema non è quello della scienza computazionale, ma della fisica di base.
Christian Clason,

4
Inoltre, un commento: una parte fondamentale della scienza (e, in particolare, della matematica) è un linguaggio tecnico molto preciso con un significato fisso e non ambiguo - questo è l'unico modo in cui tutti possono essere sicuri di parlare effettivamente della stessa cosa, quando piccole differenze di interpretazione possono avere un effetto enorme. Non attenersi alla terminologia comunemente accettata e utilizzare invece termini come "la regione del pacchetto di soluzioni accettabili" rende molto difficile sapere cosa intendi. (Posso solo immaginare che potresti parlare di qualcosa come la calibrazione del modello, i problemi inversi o l'assimilazione dei dati.)
Christian Clason,

Un'altra difficoltà con gli esperimenti è che sono inevitabilmente distorti dall'apparecchiatura utilizzata. Una serie di esperimenti presso una struttura non è necessariamente conclusiva, vale a dire che ci si può aspettare che diverse gallerie del vento diano risultati a volte significativamente diversi. La Conferenza internazionale sui carri armati di rimorchio ha affrontato questo problema con una vasta serie di test su oltre 50 carri armati di rimorchio in tutto il mondo. Vedere: "Serie ITTC nel mondo per l'identificazione dei pregiudizi delle strutture - Procedure tecniche". nmri.go.jp/turbulence/group/…
Lysistrata,

una buona regola empirica dell'autore:in every approach, the problem determines the model, the model determines the discretization, the discretization determines the solver.
Sascha Gottfried,

7

Penso che stai mescolando un paio di idee diverse che causano confusione. Sì, ci sono molti modi per discretizzare un determinato problema. Scegliere un modo appropriato può sembrare "voodoo" quando apprendi queste cose in classe, ma quando i ricercatori le scelgono, lo fanno attingendo all'esperienza combinata del campo, come pubblicata in letteratura. Pertanto fanno scelte molto più informate di quanto uno studente possa fare.

Domanda 1: se stai risolvendo un problema e passi da uno schema all'altro, il tempo di esecuzione cambierà, i criteri di convergenza potrebbero cambiare o il tuo comportamento asintotico, ma un punto molto importante è che la tua soluzione convergente finale NON dovrebbe cambiare . In tal caso, devi perfezionare le tue maglie o c'è qualcosa di sbagliato nel tuo schema numerico. Forse potresti usare un algoritmo di ottimizzazione per creare i tuoi schemi numerici e migliorare le prestazioni per una specifica classe di problemi, ma molte volte gli schemi derivati ​​dalla mano vengono creati con una convergenza ottimale / comportamento asintotico matematicamente dimostrabile per il numero di termini coinvolti o il tipo di mesh utilizzato.

Ora il paragrafo precedente non tiene conto di cose come diversi modelli di turbolenza, che sono diverse formulazioni / approssimazioni matematiche della fisica, quindi ci si aspetta che abbiano soluzioni diverse. Questi sono di nuovo molto studiati in letteratura e non credo che i programmi siano in grado di guardare i fenomeni fisici e produrre un modello matematico che predica correttamente la risposta di sistemi fisici simili.

Domanda 2: Sì, potresti ricavare uno schema che utilizza l'intera mesh in una sola volta, usando del codice per farlo. Mi sento persino sicuro di dire che per alcune maglie esistono tali codici e potrebbero darti il ​​tuo schema nel giro di un paio d'ore (una volta trovato il codice). Il problema è che non batterai mai Nyquist. Esiste un limite alla quantità di passaggi temporali adottati, a seconda della frequenza massima della risposta del sistema e un limite alla quantità di celle / elementi mesh che è possibile avere in base alle frequenze spaziali della soluzione.

Ciò non spiega nemmeno il fatto che spesso il lavoro computazionale coinvolto nell'uso di uno schema più complesso è spesso non lineare con complessità. Il motivo per cui la maggior parte degli studenti impara i metodi RK4 per l'integrazione temporale è che quando inizi a passare a metodi con un ordine superiore a quello, ottieni più valutazioni della tua derivata più velocemente di quanto guadagni ordini del tuo metodo. Nel regno spaziale, i metodi di ordine superiore aumentano notevolmente il riempimento della matrice, quindi hai bisogno di meno punti mesh, ma il lavoro che fai invertendo la matrice sparsa aumenta notevolmente, compensando almeno parzialmente i tuoi guadagni.

Non sono sicuro di cosa ti riferisca alla domanda tre. Stai parlando di trasformare soluzioni vicine a un problema in soluzioni migliori? In tal caso, raccomando qualche lettura leggera su multigrid. Se stai chiedendo di trasformare schemi numerici decenti in schemi sorprendenti, penso che il resto della mia risposta tocchi almeno quello.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.