Wykorzystanie uczenia maszynowego w obliczeniowej dynamice płynów

9

Tło:
Zbudowałem tylko jedno działające rozwiązanie numeryczne dla 2d Navier-Stokes na kurs. Było to rozwiązanie dla przepływu wnęki napędzanej pokrywką. Kurs omawiał jednak szereg schematów dyskretyzacji przestrzennych i dyskretyzacji czasowych. Wziąłem też więcej zajęć z manipulowaniem symbolami w stosunku do NS.

Niektóre z podejść numerycznych do obsługi konwersji równania analitycznego / symbolicznego z PDE na różnicę skończoną obejmują:

  • Euler FTFS, FTCS, BTCS
  • Niedbały
  • Leapfrog Midpoint
  • Lax-Wendroff
  • MacCormack
  • siatka offsetowa (dyfuzja przestrzenna umożliwia rozprzestrzenianie się informacji)
  • TVD

Wydawało mi się wtedy, że „insert-name znajduje schemat i zdarza się, że działa”. Wiele z nich pochodziło z czasów „obfitego krzemu”. Wszystkie są przybliżeniami. W limicie oni. teoretycznie prowadzić do PDE.

Podczas gdy bezpośrednia symulacja numeryczna ( DNS ) jest zabawna, a Reynolds Averaged Navier-Stokes ( RANS ) jest również zabawny, są to dwa „punkty końcowe” kontinuum między obliczeniowo wykonalnymi i w pełni reprezentującymi zjawiska. Istnieje wiele rodzin podejść do nich.

Podczas wykładu powiedziałem profesorom CFD, że większość solverów CFD robi ładne zdjęcia, ale w większości te zdjęcia nie przedstawiają rzeczywistości i że może być bardzo trudne i wymaga dużo pracy, aby uzyskać rozwiązanie solvera, które reprezentuje rzeczywistość.

Sekwencja rozwoju (jak rozumiem, nie wyczerpująca) to:

  1. zacznij od równań rządzących -> PDE
  2. określ swoją dyskretyzację przestrzenną i czasową -> reguły siatki i FD
  3. dotyczą domeny, w tym warunków początkowych i warunków brzegowych
  4. rozwiązać (wiele odmian inwersji macierzy)
  5. przeprowadzać kontrole rzeczywistości rzeczywistej, dopasowywać do znanych rozwiązań itp.

  6. zbudować kilka prostszych modeli fizycznych pochodzących z wyników analitycznych

  7. testuj je, analizuj i oceniaj
  8. iteracja (powrót do kroku 6, 3 lub 2)

Myśli:
Ostatnio pracowałem z modelami CART, drzewami ukośnymi, losowymi lasami i drzewami z podwyższoną gradientem. Kierują się bardziej matematycznymi regułami, a matematyka steruje kształtem drzewa. Pracują, aby dobrze zdywersyfikować formy.

Chociaż te podejścia numeryczne stworzone przez człowieka działają nieco, istnieje szerokie „voodoo” potrzebne do połączenia ich wyników ze zjawiskami fizycznymi, które mają być modelowane. Często symulacja zasadniczo nie zastępuje rzeczywistych testów i weryfikacji. Łatwo jest użyć niewłaściwego parametru lub nie uwzględniać zmienności geometrii lub parametrów aplikacji występujących w prawdziwym świecie.

Pytania:

  • Czy istnieje podejście pozwalające, aby natura problemu określała
    odpowiednią dyskretyzację, schemat różnicowania przestrzennego i czasowego, warunki początkowe lub rozwiązanie?
  • Czy można zastosować rozwiązanie wysokiej rozdzielczości w połączeniu z technikami uczenia maszynowego do stworzenia schematu różnicowania, który ma znacznie większe rozmiary kroków, ale zachowuje zbieżność, dokładność i tym podobne?
  • Wszystkie te schematy są dostępne w sposób „ludzki możliwy do uzyskania” - zawierają garść elementów. Czy istnieje schemat różnicowania z tysiącami elementów, który lepiej sobie radzi? Jak powstaje?

Uwaga: w osobnym pytaniu zajmę się tym, co empirycznie zinicjalizowane i empirycznie wyprowadzone (w przeciwieństwie do analitycznego).

AKTUALIZACJA:

  1. Wykorzystanie uczenia głębokiego w celu przyspieszenia przepływów sieci Boltzmanna. Przyspieszono ~ 9-krotnie dla ich konkretnego przypadku

    Hennigh, O. (w druku). Lat-Net: Symulacje przepływu skompresowanej kraty Boltzmanna z wykorzystaniem głębokich sieci neuronowych. Źródło: https://arxiv.org/pdf/1705.09036.pdf

    Repo z kodem (myślę):
    https://github.com/loliverhennigh/Phy-Net

  2. O 2 rzędy wielkości szybsze niż GPU, 4 rzędy wielkości lub ~ O (10.000x) szybsze niż procesor i ten sam sprzęt.

    Guo, X., Li, W. i Ioiro, F. Konwolucyjne sieci neuronowe dla aproksymacji o stałym przepływie. Źródło: https://autodeskresearch.com/publications/convolutional-neural-networks-steady-flow-approximation

  3. Inni, którzy analizowali ten temat około 20 lat temu:

    Muller, S., Milano, M. & Koumoutsakos P. Zastosowanie algorytmów uczenia maszynowego do modelowania i optymalizacji przepływu. Center for Turbulence Research Coroczne podsumowania badań 1999 Źródło: https://web.stanford.edu/group/ctr/ResBriefs99/petros.pdf

Update (2017):
Ten charakteryzuje wykorzystanie metod non-gradient głębokiego uczenia się areną, która została wyłącznie na podstawie gradientu. Chociaż bezpośrednią implikacją aktywności jest głębokie uczenie się, sugeruje ona również, że GA może być stosowana jako równoważnik w rozwiązywaniu bardzo trudnego, bardzo głębokiego, bardzo złożonego problemu na poziomie zgodnym lub przewyższającym metody oparte na spadku.

W ramach tego pytania może sugerować, że atak oparty na uczeniu maszynowym na większą skalę może pozwolić na „szablony” w czasie i przestrzeni, które znacznie przyspieszają konwergencję metod w domenie gradientowej. Artykuł dochodzi nawet do stwierdzenia, że ​​czasem podążanie w kierunku spadku gradientu oddala się od rozwiązania. Podczas gdy w jakimkolwiek problemie z lokalnymi optymami lub trajektoriami patologicznymi (większość rzeczywistych problemów o wysokiej wartości ma niektóre z nich), oczekuje się, że gradient nie jest globalnie informacyjny, nadal dobrze jest go skwantyfikować i zweryfikować empirycznie tak, jak był w tym artykule oraz zdolność do „przeskoczenia granicy” bez konieczności „zmniejszania uczenia się” w miarę rozpędu lub niedostatecznego relaksu.

Aktualizacja (2019):
Wygląda na to, że Google ma teraz wkład „jak znaleźć lepszy solver” układanki AI. link Jest to część tworzenia sztucznej inteligencji przez AI.

** Aktualizacja (2020): ** A teraz robią to i robią to dobrze ...
https://arxiv.org/pdf/1911.08655.pdf

Można argumentować, że mogliby następnie zdekonstruować swój NN w celu ustalenia faktycznej dyskretyzacji. Szczególnie podoba mi się rysunek 4.

EngrStudent
źródło
5
Witamy w Scicomp.SE! Twoje pytanie jest nieco bardziej filozoficzne niż zwykle w przypadku tej witryny, ale nie mogłem się oprzeć podaniu moich dwóch centów. Niemniej jednak wydaje mi się, że warto zadać sobie pytanie „trudne”: kiedy warto stosować metody różnic skończonych bardzo wysokiego rzędu i jak są one uzyskiwane i wdrażane w praktyce? Polecam przepisanie pytania, aby skupiło się na tym aspekcie (w takim przypadku chętnie usunę moją nieistotną odpowiedź), lub zadam je jako nowe pytanie (użyj „zadaj swoje pytanie” w żółtym polu na Dół strony).
Christian Clason,
8
Myślę, że podstawowe nieporozumienie wynika z faktu, że twoja sekwencja jest zbyt krótka - na początku brakuje (przynajmniej!) Jednego kroku: jak decydować o równaniach rządzących. Jeśli wyniki symulacji nie zgadzają się ze zjawiskami fizycznymi (a twoje metody numeryczne są poprawne - ta część to czysta matematyka, nie ma voodoo, jest albo dobra, albo zła), to tutaj musisz wrócić. Żadna sztuczka matematyczna nie może nadrobić niewłaściwych założeń modelowania.
Christian Clason,
4
To po prostu nieprawda (w zależności od tego, co dokładnie rozumiesz przez „odpowiedź”). Tworzysz model (przechodząc od pierwszych zasad lub modyfikując istniejący), rozwiązujesz go z pożądaną dokładnością i porównujesz wyniki z obserwacjami eksperymentalnymi. Jeśli się zgadzają, napisz artykuł; jeśli nie, wróć i udoskonal swój model. Spłucz, powtórz. Tak właśnie działa (każda) nauka (rozwiązanie numeryczne jest całkowicie przypadkowe).
Christian Clason,
3
Dokładnie o tym mówię - jeśli okaże się, że nie można odtworzyć pomiarów, chyba że uwzględnisz w swoim modelu konserwację wafli (lub cokolwiek innego), to właśnie to robisz. Jak myślisz, w jaki sposób wymyśliłeś pięć zasad, które wymieniasz? Tyle tylko, że współczesna nauka stała się tak skomplikowana, że ​​nie jest już ani jedna osoba, która dokonuje pomiarów, próbuje znaleźć modele predykcyjne, studiuje ich właściwości matematyczne, wyprowadza numeryczne metody ich rozwiązania i pozwala im działać z rozsądną wydajnością.
Christian Clason,
1
@EngrStudent nie jest bezpośrednią odpowiedzią na twoje drugie pytanie, ale pracowaliśmy nad ulepszeniem modeli RANS (możesz użyć grubszej siatki i dużego kroku czasowego), które są strasznie niedokładne w złożonych przepływach, ale są znacznie tańsze niż DNS. Używamy kombinacji odwrotnego problemu i sieci neuronowej, aby ulepszyć te modele przy użyciu danych eksperymentalnych. Zajrzyj na arxiv.org/abs/1608.03990 i odnośniki tam. Nie sądzę, że można całkowicie zignorować równanie rządzące i utrzymać podobny poziom dokładności (przynajmniej w chwili obecnej).
Maverick

Odpowiedzi:

20

To od dawna żart, że CFD oznacza „kolorową dynamikę płynów”. Niemniej jednak jest wykorzystywany - i użyteczny - w szerokim zakresie zastosowań. Wierzę, że twoje niezadowolenie wynika z niewystarczającego rozróżnienia między dwoma połączonymi, ale różnymi krokami: stworzenia modelu matematycznego procesu fizycznego i rozwiązania go numerycznie. Pozwól mi trochę skomentować:

  1. Żaden matematyczny (a właściwie żaden) model rzeczywistości fizycznej nigdy nie jest poprawny ; w najlepszym wypadku jest przydatny do przewidywania wyników pomiarów w bardzo precyzyjnie określonym (ale miejmy nadzieję, dużym) zestawie okoliczności. Obejmuje to fakt, że musi być możliwe uzyskanie takiej prognozy przy określonej konfiguracji; dlatego mamy całą hierarchię modeli od kwantowej teorii pola do mechaniki Newtona. W szczególności równania Naviera-Stokesa nie opisują przepływu płynu, dają prognozę konkretnych aspektów zachowania niektórych płynów w określonych warunkach.

  2. W przypadku bardziej skomplikowanych modeli matematycznych (takich jak równania Naviera-Stokesa) nigdy nie można uzyskać dokładnego rozwiązania (a zatem przewidywania), a jedynie przybliżenie liczbowe. To nie jest takie złe, jak się wydaje, ponieważ pomiary, z którymi chcesz je porównać, nigdy nie są dokładne. Podobnie jak w przypadku wyboru modeli, istnieje kompromis między dokładnością a wykonalnością - nie ma sensu tracić czasu ani pieniędzy na uzyskanie dokładniejszego rozwiązania niż to konieczne. W tym momencie staje się jedynie pytaniem, jak w przybliżeniu numerycznie rozwiązać (w tym przypadku) częściowe równanie różniczkowe, które jest przedmiotem całego pola matematycznego: analizy numerycznej. To pole dotyczy dowodzeniaoszacowania błędów dla niektórych metod numerycznych (ponownie, pod pewnymi, wyraźnie określonymi warunkami). Twoje stwierdzenie „insert-name znajduje schemat i zdarza się, że działa”, jest rażąco niesprawiedliwe - powinno być „insert-name znajduje schemat i dowodzi , że działa”. Ponadto schematy te nie są wyciągane z cienkiego powietrza - wywodzą się z dobrze zrozumiałych zasad matematycznych.

    (Na przykład schematy różnic skończonych można uzyskać za pomocą przybliżeń Taylora dla danego zamówienia. Z pewnością możliwe jest - i niektórzy ludzie - uzyskanie schematów różnic bardzo wysokiego rzędu i ich wdrożenie, ale istnieje prawo malejących zysków : można to zautomatyzować tylko częściowo, a zatem wymaga dużo wysiłku, a niektóre coraz bardziej restrykcyjne warunki muszą być spełnione, aby faktycznie uzyskać z nich odpowiednią wyższą dokładność. Ponadto, w pewnym momencie lepiej jest zastosować zupełnie inny schemat, taki jak metody spektralne).

Wspólnym tematem jest to, że zarówno modele, jak i schematy numeryczne mają szereg zastosowań, i ważne jest, aby wybrać odpowiednią kombinację do danego celu. Właśnie dlatego naukowiec obliczeniowy musi znać zarówno dziedzinę nauki (aby wiedzieć, który model jest prawidłowy w jakiej sytuacji), jak i matematykę (wiedzieć, która metoda ma zastosowanie do jakiego modelu i do jakiej dokładności)! Ignorowanie tych etykiet „używaj tylko zgodnie z zaleceniami” prowadzi do tego rodzaju „komputerowych bzdur” (w sensie technicznym Harry'ego Frankfurta), o których wspominali profesorowie CFD.

Dlaczego warto korzystać z modelu obliczeniowego, gdy masz model fizyczny (taki jak tunel aerodynamiczny): Jednym z powodów jest to, że uruchamianie oprogramowania może być o rząd wielkości tańsze niż tworzenie modelu i umieszczanie go w tunelu aerodynamicznym. Zazwyczaj nie jest to ani-albo: Na przykład, projektując samochód lub samolot, przeprowadziłbyś setki lub tysiące symulacji, aby zawęzić sytuację, a następnie tylko dla ostatecznego kandydata (-ów) wystawił model na wiatr tunel.


Aktualizacja:

Używanie uczenia maszynowego zamiast symulacji numerycznej jest jak powiedzenie „brak modelu jest lepszy niż posiadanie modelu przybliżonego”, co do którego wątpię, czy ktokolwiek w dziedzinie dynamiki płynów (lub jakiejkolwiek innej dziedzinie) zgodziłby się z tym. To powiedziawszy, z pewnością jest możliwe (i faktycznie zrobione) wykorzystanie uczenia maszynowego do wyboru nieznanych „parametrów geometrii lub aplikacji” na podstawie zgodności z zmierzonymi danymi; jednak tutaj również metody oparte na modelach, takie jak kwantyfikacja niepewności lub odwrotne (bayesowskie) problemy, zwykle działają znacznie lepiej (i są oparte na rygorystycznych zasadach matematycznych). Wybieranie numeryczne parametry, takie jak wielkość kroku lub kolejność metody wykorzystującej uczenie maszynowe, są również w zasadzie możliwe, ale nie widzę korzyści, ponieważ istnieje teoria matematyczna, która mówi dokładnie, jak wybrać te parametry na podstawie modelu (matematycznego).

Aktualizacja 2:

Artykuł, do którego linkujesz, dotyczy grafiki komputerowej , a nie nauki obliczeniowej : ich celem nie jest dokładna symulacja (tj. Numeryczne rozwiązanie modelu matematycznego) procesu fizycznego, ale coś, co po prostu wygląda gołym okiem (skrajny przypadek „kolorowej dynamiki płynów” ...) - to zupełnie inna sprawa. W szczególności nie ma żadnego błędu związanego z wyjściem wyuczonej sieci w porównaniu z odpowiednim rozwiązaniem równań Naviera-Stokesa, co jest nieodzowną częścią każdej metody numerycznej.


(A twoje pierwsze pytanie zaczyna się od fałszywej przesłanki: w każdym podejściu problem określa model, model określa dyskretyzację, dyskretyzacja określa solver).

Christian Clason
źródło
Występuje projekcja w przestrzeń rozwiązań, ale niekoniecznie na „rozwiązanie”. Jestem teraz zardzewiały. Chodzi o to, aby wykorzystać empirycznie wyszkolony system, aby ograniczyć obszar paczki akceptowalnych rozwiązań, w które występuje rzut od pierwotnych granic, do zbliżenia się do rozwiązania fizycznego.
EngrStudent,
2
Znowu mylisz mapę i terytorium - (dobrze postawiony) model matematyczny ma unikalne rozwiązanie (dla dowolnych danych). To rozwiązanie można obliczyć z dowolną dokładnością (przy rosnącym wysiłku) przy użyciu (odpowiedniej) metody numerycznej. Z drugiej strony nie ma „fizycznego rozwiązania”, są tylko pomiary. Jeśli nie zgadzają się one z symulacją w zakresie dokładności pomiaru i liczb, rozwiązałeś niewłaściwy model , a twoim problemem nie jest nauka obliczeniowa, ale podstawowa fizyka.
Christian Clason,
4
Również komentarz: podstawowa część nauki (a zwłaszcza matematyki) jest bardzo precyzyjnym językiem technicznym o ustalonym i jednoznacznym znaczeniu - to jedyny sposób, w jaki wszyscy mogą być pewni, że naprawdę mówią o tym samym, kiedy niewielkie różnice w interpretacji mogą mieć ogromny wpływ. Nie trzymanie się powszechnie przyjętej terminologii i stosowanie zamiast tego terminów takich jak „region paczki akceptowalnych rozwiązań” bardzo utrudnia zrozumienie, co masz na myśli. (Mogę tylko zgadywać, że mówisz o czymś takim jak kalibracja modelu, odwrotne problemy lub asymilacja danych).
Christian Clason,
Inną trudnością związaną z eksperymentami jest to, że są one nieuchronnie tendencyjne w stosunku do używanego sprzętu. Jedna seria eksperymentów w jednym obiekcie niekoniecznie jest rozstrzygająca, tzn. Można oczekiwać, że różne tunele aerodynamiczne dadzą czasem znacząco różne wyniki. Międzynarodowa konferencja poświęcona temu zagadnieniu została przeprowadzona na podstawie obszernej serii testów w ponad 50 zbiornikach holowniczych na całym świecie. Patrz: „ITTC Worldwide Series for Identification Biases Facility - Procedures Technical”. nmri.go.jp/turbulence/group/…
Lysistrata
dobra ogólna zasada autora:in every approach, the problem determines the model, the model determines the discretization, the discretization determines the solver.
Sascha Gottfried
7

Myślę, że mieszasz kilka różnych pomysłów, które powodują zamieszanie. Tak, istnieje wiele różnych sposobów dyskretyzacji danego problemu. Wybór odpowiedniego sposobu może wyglądać jak „voodoo”, gdy uczysz się tych rzeczy w klasie, ale kiedy wybierają je badacze, robią to, opierając się na połączonym doświadczeniu w tej dziedzinie, jak opublikowano w literaturze. Dlatego dokonują o wiele bardziej świadomych wyborów niż student.

Pytanie 1: Jeśli rozwiązujesz problem i przełączasz się z jednego schematu na inny, czas działania ulegnie zmianie, kryteria konwergencji mogą się zmienić lub twoje zachowanie asymptotyczne, ale bardzo ważne jest to, że ostateczne zbieżne rozwiązanie NIE powinno ulec zmianie . Jeśli tak, musisz udoskonalić swoje siatki lub coś jest nie tak z twoim schematem numerycznym. Być może możesz użyć jakiegoś algorytmu optymalizacyjnego do stworzenia schematów numerycznych i poprawy wydajności dla określonej klasy problemów, ale wiele razy schematy wyprowadzane ręcznie są tworzone z matematycznie możliwym do udowodnienia optymalnym zachowaniem zbieżności / asymptozy dla liczby zaangażowanych terminów lub zastosowanego typu siatki.

Teraz powyższy akapit nie uwzględnia takich rzeczy, jak różne modele turbulencji, które są różnymi sformułowaniami matematycznymi / przybliżeniami fizyki, więc oczekuje się, że będą miały różne rozwiązania. Ponownie zostały one szczegółowo zbadane w literaturze i nie sądzę, aby programy były w stanie spojrzeć na zjawiska fizyczne i stworzyć model matematyczny, który właściwie przewiduje reakcję podobnych układów fizycznych.

Pytanie 2: Tak, możesz uzyskać schemat, który wykorzystuje całą siatkę naraz, używając do tego jakiegoś kodu komputerowego. Czuję się nawet bezpiecznie mówiąc, że w przypadku niektórych siatek takie kody istnieją i mogą dać ci twój schemat w ciągu kilku godzin (gdy znajdziesz kod, który jest). Problem polega na tym, że nigdy nie pokonasz Nyquista. Istnieje limit wielkości kroków, które podejmujesz, w zależności od maksymalnej częstotliwości odpowiedzi twojego systemu oraz limit wielkości komórek / elementów siatki, które możesz mieć w zależności od częstotliwości przestrzennych rozwiązania.

To nawet nie tłumaczy faktu, że często praca obliczeniowa związana ze stosowaniem bardziej złożonego schematu jest często nieliniowa ze złożonością. Powodem, dla którego większość uczniów uczy się metod RK4 do integracji czasowej jest to, że kiedy zaczynasz chodzić do metod z wyższym rzędem niż to, zyskujesz więcej ocen pochodnej szybciej niż zyskujesz porządki swojej metody. W sferze przestrzennej metody wyższego rzędu znacznie zwiększają wypełnienie macierzy, więc potrzebujesz mniej punktów siatki, ale praca, którą wykonujesz odwracając rzadką macierz, znacznie się zwiększa, przynajmniej częściowo kompensując twoje zyski.

Nie jestem pewien, o czym mówisz w pytaniu trzecim. Czy mówisz o zamianie bliskich rozwiązań problemu na lepsze? Jeśli tak, polecam lekki odczyt na wielu sieciach. Jeśli pytasz o zamianę porządnych schematów numerycznych w niesamowite, myślę, że reszta mojej odpowiedzi przynajmniej na to się odnosi.

Godric Seer
źródło