Використання машинного навчання в обчислювальній динаміці рідини


9

Передумови:
Я створив лише одне робоче числове рішення для 2d Navier-Stokes. Це було рішення для потоку порожнини, керованого кришкою. Курс, однак, обговорював ряд схем просторових дискрецій та часових дискрецій. Я також взяв більше курсових робіт з маніпуляції символами, застосованих до NS.

Деякі числові підходи для перетворення аналітичного / символічного рівняння з PDE в кінцеву різницю включають:

  • Euler FTFS, FTCS, BTCS
  • Ослаблений
  • Середній стрибок
  • Лакс-Вендроф
  • MacCormack
  • зміщення сітки (просторова дифузія дозволяє поширювати інформацію)
  • ТВД

Мені на той час це здавалося як "вставка-ім'я знаходить схему, і це трапляється". Багато з них були з часів "рясного кремнію". Вони всі наближення. У межі вони. теоретично приводять до PDE.

У той час як пряме числове моделювання ( DNS ) є цікавим, а Reynolds Averaged Navier-Stokes ( RANS ) також є цікавим, вони є двома "кінцевими точками" континууму між обчислювально простежуваними та повною мірою представляють явища. Існує кілька сімей підходів, які живуть інтер'єром до них.

У мене на лекції викладачі CFD говорили, що більшість вирішальників CFD роблять гарні зображення, але здебільшого ці фотографії не представляють реальності, і це може бути дуже важко, і потрібно багато роботи, щоб отримати рішення, що вирішує дійсно представляє реальність.

Послідовність розвитку (наскільки я розумію, не вичерпна) така:

  1. Почніть з керуючих рівнянь -> PDE
  2. визначте свою просторову та часову дискретизацію -> сітка та правила FD
  3. застосовуються до домену, включаючи початкові умови та граничні умови
  4. вирішити (безліч варіацій інверсії матриці)
  5. виконувати грубі перевірки реальності, відповідність відомим рішенням тощо.

  6. побудувати кілька простіших фізичних моделей, отриманих на основі аналітичних результатів

  7. перевірити їх, проаналізувати та оцінити
  8. ітерація (стрибок назад на будь-який крок 6, 3 або 2)

Думки:
Останнім часом я працюю з моделями CART, косими деревами, випадковими лісами та деревами, що підсилюють градієнт. Вони слідують більш математично виведеним правилам, а математика керує формою дерева. Вони працюють над тим, щоб добре скласти дискретні форми.

Хоча ці числові підходи, створені людиною, працюють дещо, існує велика «вуду», необхідна для підключення їх результатів до фізичних явищ, які вони призначені для моделювання. Часто моделювання істотно не замінює реальне тестування та перевірку. Використовувати неправильний параметр легко або не враховувати зміни в геометрії чи параметрах застосувань у реальному світі.

Запитання:

  • Чи існував якийсь підхід, щоб дозволити природі проблеми визначити
    відповідну схему дискретизації, просторову та часову диференціацію, початкові умови чи рішення?
  • Чи може рішення високої чіткості в поєднанні з технікою машинного навчання використовувати схему розрізнення, яка має значно більші розміри кроків, але зберігає конвергенцію, точність тощо?
  • Усі ці схеми є доступними "по-людськи витягнутими" - у них є кілька елементів. Чи існує схема розрізнення з тисячами елементів, яка робить кращу роботу? Як воно виводиться?

Примітка. Я буду проаналізувати емпірично інтіалізований та емпірично отриманий (на відміну від аналітичного) окремий питання.

ОНОВЛЕННЯ:

  1. Використання глибокого навчання для прискорення гратчастих потоків Больцмана. Дав ~ 9x прискорення для їх конкретного випадку

    Генні, О. (у пресі). Lat-Net: Моделювання потоку стисненої решітки Больцмана за допомогою глибоких нейронних мереж. Отримано з: https://arxiv.org/pdf/1705.09036.pdf

    Репо з кодом (я думаю):
    https://github.com/loliverhennigh/Phy-Net

  2. Приблизно на 2 порядки швидше, ніж GPU, на 4 порядки або ~ O (10000x) швидше, ніж процесор, і таке ж обладнання.

    Гоо, X., Лі, Ш. та Іоїро, Ф. Конволюційні нейронні мережі для наближення постійного потоку. Отримано з: https://autodeskresearch.com/publications/convolutional-neural-networks-steady-flow-approximation

  3. Інші, хто розглядав цю тему приблизно 20 років тому:

    Мюллер, С., Мілано, М. та Кумуцакос П. Застосування алгоритмів машинного навчання для моделювання та оптимізації потоків. Щорічний науковий опис Центру досліджень турбулентності 1999 Отримано з: https://web.stanford.edu/group/ctr/ResBriefs99/petros.pdf

Оновлення (2017):
це характеризує використання неградієнтних методів у глибокому навчанні, арена, що базується виключно на градієнті. Незважаючи на те, що безпосереднє значення діяльності полягає в глибокому навчанні, це також дозволяє припустити, що GA може бути використаний як рівнозначний при вирішенні дуже важкої, дуже глибокої, дуже складної проблеми на рівні, що відповідає методам, що ґрунтуються на градієнті або перевершує їх.

В рамках цього питання може бути припущено, що більш масштабний, на основі машинного навчання напад може дати можливість «шаблонам» у часі та просторі, що істотно прискорить конвергенцію методів градієнт-домену. У статті йдеться про те, що іноді йдучи у напрямку спуску градієнта відходить від рішення. Хоча при будь-яких проблемах з локальними оптимами або патологічними траєкторіями (більшість найважливіших проблем у реальному світі є деякі з них) очікується, що градієнт не є глобально інформативним, все ж приємно його кількісно оцінити та перевірити емпірично, як це було у цій роботі та вміння «стрибати на межі», не вимагаючи «скорочення навчання», коли ви отримуєте імпульс чи недостатню релаксацію.

Оновлення (2019 р.):
Схоже, Google тепер має внесок "як знайти кращий вирішувач" фрагмент головоломки AI. посилання Це частина, що робить AI зробити вирішувачем.

** Оновлення (2020): ** А тепер вони роблять це, і це роблять добре ...
https://arxiv.org/pdf/1911.08655.pdf

Можна стверджувати, що вони могли потім деконструювати свою мережу NN, щоб визначити фактичну дискретизацію. Особливо мені подобається фігура 4.


5
Ласкаво просимо до Scicomp.SE! Ваше запитання трохи більш філософське, ніж зазвичай для цього сайту, але я не міг протистояти, даючи свої два центи. Проте, я думаю , що є сенс «жорсткий» питання там: Коли дуже високого порядку різницеві методи варто, і як вони отримані і реалізовані на практиці? Я рекомендую або переписати своє запитання, щоб зробити його зосередженим на цьому аспекті (в такому випадку я з радістю видалю свою вже невідповідну відповідь), або задайте її як нове запитання (використовуйте "задати власне питання" в жовтому полі на внизу сторінки).
Крістіан Класон

8
Я думаю, що основне непорозуміння випливає з того, що ваша послідовність занадто коротка - на початку є (принаймні!) Один крок: як визначитися з керуючими рівняннями. Якщо результати моделювання не узгоджуються з фізичними явищами (а ваші числові методи правильні - ця частина є чистою математикою, вуду немає, правильно чи неправильно), то тут вам слід повернутися назад. Жодна кількість математичних хитрощів не може компенсувати невідповідні припущення щодо моделювання.
Крістіан Класон

4
Це просто неправда (залежно від того, що саме ви маєте на увазі під «відповіддю»). Ви робите модель (переходячи від перших принципів або модифікуючи існуючу), вирішуєте її до потрібної точності і порівнюєте вихід з експериментальними спостереженнями. Якщо вони згодні, добре, напишіть папір; якщо ні, поверніться та вдосконаліть свою модель. Промийте, повторіть. Ось так працює (будь-яка) наука (числове рішення з нею зовсім випадкове).
Крістіан Класон

3
Це саме те, про що я говорю - якщо ви виявите, що ви не можете відтворити вимірювання, якщо ви також не включите в свою модель збереження китів (чи будь-що інше), то це ви робите. Як ви думаєте, як винайшли п'ять принципів, які ви перераховуєте? Просто сучасна наука стала настільки складною, що вже не одна людина проводить вимірювання, намагаючись знайти прогностичні моделі, вивчаючи їхні математичні властивості, виводячи чисельні методи їх вирішення та змушуючи їх працювати з розумною ефективністю.
Крістіан Класон

1
@EngrStudent не є прямою відповіддю на ваше друге запитання, але ми працювали над вдосконаленням моделей RANS (ви можете використовувати більш грубу сітку та великий крок часу), які страшенно неточні у складних потоках, але значно дешевші, ніж DNS. Ми використовуємо комбінацію зворотної задачі та нейронної мережі для вдосконалення цих моделей за допомогою експериментальних даних. Подивіться на arxiv.org/abs/1608.03990 та посилання на нього. Я не думаю, що можна повністю ігнорувати керуюче рівняння і підтримувати аналогічний рівень точності (принаймні, в даний час).
maverick

Відповіді:


20

Це багаторічний жарт, що CFD означає «барвисту динаміку рідини». Тим не менш, він використовується - і корисний - у широкому діапазоні застосувань. Я вважаю, що ваше невдоволення випливає з недостатньо розмежування двох взаємопов’язаних, але різних етапів: створення математичної моделі фізичного процесу та її чисельного вирішення. Дозвольте мені трохи прокоментувати:

  1. Жодна математична (або насправді будь-яка) модель фізичної реальності ніколи не є правильною ; в кращому випадку це корисно для прогнозування результатів вимірювань у дуже точно розмежованому (але, сподіваємось, великому) наборі обставин. Сюди входить той факт, що необхідно мати можливість отримати таке передбачення з урахуванням конкретної конфігурації; тому ми маємо цілу ієрархію моделей від квантової теорії поля до ньютонівської механіки. Зокрема, рівняння Нав'є-Стокса не описують потік рідини, вони дають прогноз конкретних аспектів поведінки певних рідин за певних умов.

  2. Для більш складних математичних моделей (таких як рівняння Нав'є-Стокса) ніколи не можна отримати точне рішення (а значить, і прогнозування), а лише числове наближення. Це не так вже й погано, як це звучить, оскільки вимірювання, з якими ви хочете порівняти їх самі по собі ніколи не є точними. Як і у виборі моделей, існує компроміс між точністю і тяговістю - немає сенсу витрачати час або гроші на отримання більш точного рішення, ніж потрібно. У цей момент стає суто питання про те, як чисельно наблизити розв’язок (у даному випадку) часткового диференціального рівняння, що є предметом цілого математичного поля: чисельного аналізу. Це поле стосується доведенняоцінки помилок для певних числових методів (знову ж таки, за певних, чітко визначених умов). Ваше твердження "вставка-ім'я знаходить схему, і воно буває спрацьоване", є абсолютно несправедливим - воно повинно бути "вставка-ім'я знаходить схему і доводить, що вона працює". Також ці схеми не витягуються з повітря - вони походять від добре зрозумілих математичних принципів.

    (Наприклад, схеми кінцевих різниць можуть бути отримані, використовуючи наближення Тейлора даного порядку. Безумовно, можна (а деякі люди) отримувати різницькі схеми дуже високого порядку та впроваджувати їх, але існує закон зменшення прибутку : це може бути автоматизовано лише частково, а значить, потрібно докласти чимало зусиль, і повинні бути виконані певні дедалі обмежуючі умови, щоб фактично отримати з них відповідну більш високу точність. Також у якийсь момент краще взагалі використовувати іншу схему, наприклад спектральні методи.)

Загальна тема тут полягає в тому, що як моделі, так і числові схеми мають широкий спектр застосування, і важливо підібрати правильну комбінацію для заданої мети. Саме тому вченому-обчислювачеві необхідно знати як доменну науку (знати, яка модель справедлива в якій ситуації), так і математику (знати, який метод застосований до якої моделі та до якої точності)! Ігнорування цих етикетів "використовувати лише як вказівки" призводить до створення типу "обчислювальної фігни" (в технічному сенсі Гаррі Франкфурта), про яку висловилися професори CFD.

Щодо того, навіщо використовувати обчислювальну модель, коли у вас є фізична модель (наприклад, вітровий тунель): Одна з причин полягає в тому, що запущене програмне забезпечення може бути на порядок дешевше, ніж створення моделі та розміщення її у вітроенергетичному тунелі. Крім того, зазвичай це не те, або: Наприклад, проектуючи автомобіль чи літак, ви запускаєте сотні чи тисячі симуляцій, щоб звузити речі, а потім лише для остаточного кандидата (ів) поставите модель на вітер тунель.


Оновлення:

Використовувати машинне навчання замість чисельного моделювання - це як сказати "не мати моделі краще, ніж мати приблизну модель", з якою я сумніваюся, хто з динамікою рідини (або будь-якого іншого поля) погодиться. При цьому, безумовно, можна (і фактично зроблено) використовувати машинне навчання для вибору невідомих "параметрів геометрії чи програми" на основі узгодження з вимірюваними даними; однак тут і методи, що базуються на моделях, такі як кількісне визначення невизначеності або (баєсові) зворотні задачі, як правило, працюють набагато краще (і ґрунтуються на жорстких математичних принципах). Вибір числового такі принципи, як розмір кроків або порядок методу за допомогою машинного навчання, також можливі в принципі, але я не бачу переваги, оскільки існує математична теорія, яка точно говорить вам, як вибрати ці параметри на основі вашої (математичної) моделі.

Оновлення 2:

Документ, на який ви посилаєтесь, стосується комп'ютерної графіки , а не обчислювальної науки : їх мета - не точне моделювання (тобто чисельне рішення математичної моделі) фізичного процесу, а щось, що просто схоже на одне неозброєним оком (крайній випадок "барвистої динаміки рідини" ...) - це зовсім інша справа. Зокрема, для виходу тренованої мережі немає жодної помилки порівняно з відповідним рішенням рівнянь Нав'є-Стокса, що є невід'ємною частиною будь-якого числового методу.


(І ваше перше запитання починається з помилкової передумови: при кожному підході проблема визначає модель, модель визначає дискретизацію, дискретизація визначає вирішувач.)


Є проекція в простір рішень, але не обов'язково до рішення "". Я зараз іржавий. Ідея полягає у використанні емпірично навченої системи для обмеження області посилки прийнятних рішень, в яку проекція відбувається від початкових меж, щоб бути ближчим до фізичного рішення.
EngrStudent

2
Ви знову плутаєте карту та територію - математична модель (добре поставлена) має унікальне рішення (для будь-яких даних). Це рішення ви можете обчислити довільною точністю (зі збільшенням зусиль), використовуючи (підходящий) числовий метод. З іншого боку, немає ні «фізичного рішення», є тільки вимір. Якщо вони не згодні з моделюванням в межах точності вимірювання та чисельності, ви вирішили неправильну модель , і ваша проблема стосується не обчислювальної науки, а основної фізики.
Крістіан Класон

4
Також коментар: Фундаментальна частина науки (і, зокрема, математики) - це дуже точна технічна мова з фіксованим та однозначним значенням - це єдиний спосіб, коли всі можуть бути впевнені, що насправді говорять про одне і те ж, коли невеликі відмінності в тлумаченні можуть мати величезний ефект. Якщо не дотримуватися загальноприйнятої термінології, а використовувати натомість такі терміни, як "область посилки прийнятних рішень", це дуже важко зрозуміти, що ви маєте на увазі. (Я можу лише здогадуватися, що ви можете говорити про щось на зразок калібрування моделі, зворотних проблем чи засвоєння даних.)
Крістіан Класон

Інша складність експериментів полягає в тому, що вони неминуче упереджуються до обладнання, яке використовується. Одна серія експериментів на одному об'єкті не обов'язково є переконливою, тобто можна очікувати, що різні вітрогенератори дадуть іноді суттєво різні результати. Міжнародна конференція буксирувальних танків вирішила це питання з великою серією випробувань на> 50 буксирних танків по всьому світу. Див. "Серія ITTC у всьому світі для виявлення нахилів об'єкта - технічні процедури". nmri.go.jp/turbulence/group / ...
Лісістрата

гарне правило від автора:in every approach, the problem determines the model, the model determines the discretization, the discretization determines the solver.
Саша Готфрід

7

Я думаю, ви змішуєте пару різних ідей, які викликають плутанину. Так, існує широкий спектр способів дискретизації певної проблеми. Вибір відповідного способу може виглядати як «вуду», коли ви вивчаєте ці речі на уроці, але коли дослідники вибирають їх, вони роблять це, спираючись на комбінований досвід галузі, як це опубліковано в літературі. Тому вони роблять набагато більш усвідомлений вибір, ніж міг студент.

Питання 1: Якщо ви вирішуєте проблему і переходите від однієї схеми до іншої, час роботи буде змінюватися, критерії конвергенції можуть змінитися або ваша асимптотична поведінка, але дуже важливим моментом є те, що ваше остаточне конвергентне рішення НЕ повинно змінюватися . Якщо це так, вам або потрібно вдосконалити свої сітки, або в вашій числовій схемі щось не так. Можливо, ви могли б використовувати якийсь алгоритм оптимізації для створення ваших числових схем та підвищення продуктивності для конкретного класу проблем, але багато разів схеми, отримані вручну, створюються з математично виправданим оптимальним конвергенційним / асимптотичним поведінкою для кількості використовуваних термінів або типу сітки.

Тепер вищевказаний абзац не враховує такі речі, як різні моделі турбулентності, які є різними математичними формулюваннями / наближеннями фізики, тому очікується, що вони мають різні рішення. Вони знову дуже вивчені в літературі, і я не думаю, що програми ставляться до того, що вони можуть розглянути фізичні явища та створити математичну модель, яка належним чином прогнозує реакцію подібних фізичних систем.

Питання 2: Так, ви можете отримати схему, яка використовує всю сітку одразу, використовуючи для цього якийсь комп'ютерний код. Я навіть почуваю себе впевнено, кажучи, що для деяких сіток такі коди існують і можуть дати вам свою схему за пару годин (як тільки ви знайдете код, який є). Проблема в тому, що ти ніколи не переможеш Nyquist. Існує обмеження на кількість тимчасових кроків, які ви здійснюєте, залежно від максимальної частоти відгуку вашої системи, і обмеження на те, наскільки великі клітини / елементи сітки ви можете мати, залежно від просторових частот рішення.

Це навіть не враховує той факт, що часто обчислювальна робота, яка бере участь у використанні більш складної схеми, часто нелінійна зі складністю. Причина, чому більшість студентів вивчають методи RK4 для інтеграції в часі, полягає в тому, що, коли ви починаєте переходити до методів більш високого порядку, ви отримуєте більше оцінок своєї похідної швидше, ніж отримуєте замовлення свого методу. У просторовій царині методи вищого порядку значно збільшують заповнення матриці, тому вам потрібно менше сітчастих точок, але робота, яку ви робите, інвертуючи розріджену матрицю, значно збільшується, принаймні частково компенсуючи ваші прибутки.

Я не впевнений, що ви маєте на увазі під питанням три. Ви говорите про перетворення близьких рішень проблеми на кращі рішення? Якщо так, то я рекомендую легке читання на мультирешітці. Якщо ви запитуєте про перетворення гідних чисельних схем на дивовижні, я думаю, що решта моєї відповіді принаймні стосується цього.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.