Статья будет переработана позже. Известный, и во многом печальный, факт: Реальные физические системы обсчитываются сложными численными методами за очень большое время на суперкомпьютерах.Менее известный, но более радостный, факт: Есть нейронные сети, которые делают это быстрее (пусть и с меньшей точностью).  В реальных сложных производствах, вроде создания тонких пленок, разработке мембран и т.д., требуются либо сакральные знания технологов, передающиеся из поколений в поколения, либо хотя бы какие то приблизительные оценки на входные параметры процессов, которые необходимы для производства (параметры установки, ее геометрия, соотношения веществ, etc). К сожалению, сколь-нибудь адекватные физические оценки получить можно лишь с помощью длительных расчетов динамики происходящих процессов. И валидны они будут в лучшем случае для одной конкретной установки и конкретных условий. Что же делать? Аппроксимировать! Допустим, мы захотели посмотреть, как себя будет вести сильно разреженный газ в каких то конкретных условиях. Подобные явления описываются некоторыми дифференциальными уравнениями с граничными условиями. Т.е. задачей Коши. Для примера: одномерное уравнение Больцмана без столкновений где f - функция распределения, v - скорость.  Для решения подобных задач вводятся так называемые разностные сетки, в узлах которых мы определяем параметры нашей системы, вводим сеточные функции, вычисляем дискретизованные производные и ищем решения наших уравнений. Типичная дискретизованная версия уравнения Больцмана выглядит так: где t -  шаг по временной сетке, h - шаг по пространственной. Точность итоговых вычислений зависит от размерности сеток, и от них же зависит длительность и сложность вычислений. Типичное число точек для сетки координатной для реальных задач - порядка сотен тысяч точек. Такие сетки вводятся для всех переменных. Для многомерных задач ситуация драматично ухудшается - необходимо вводить сетки для каждой из координат. Подобные вычисления для реальных задач обычно затрачивают месяца на суперкомпьютерах. В бытность мою студентом, мы часто шутили про то, что публикации в физических журналах о нейронных сетях - это обычно попытка аппроксимировать какой то приближенный метод нейронной сетью. Т.е. получить приближение в квадрате. Ну, в целом, мы не то чтобы ошибались. Итак. У нас есть нейронные сети и множество различных архитектур для них. Наивное решение: Возьмем произвольную архитектуру и прогоним через нее наши данные. На выходе мы получим некоторую нейронную сеть, которая будет играть роль нашей функции распределения. Допустим даже, что данная нейронная сеть имеет очень низкую ошибку в том числе и на тестовом датасете. Но вот проблема: для ряда случаев нарушаются законы сохранения, пусть и не сильно. Гарантированно избежать этого мы не можем. К сожалению, это означает, что такая аппроксимация становится абсолютно бесполезной, ибо решения с нарушением законов сохранения - нефизичны и ведут к появлению абсолютно магических явлений вроде взявшихся неоткуда источников энергии в системе. Динамические системы достаточно чувствительны к таким проблемам, так что почти все решение становится бесполезным. С формальной точки зрения мы решали задачу оптимизации произвольной функции распределения по произвольному пространству параметров. Но что, если мы заранее зададим в функцию потерь в таком виде, чтобы удовлетворялись законы сохранения? Например: Напрямую добавим в лосс функцию слагаемое, которое будет зануляться только в случае выполнения законов сохранения.  Таким образом мы ограничили пространство параметров только теми, которые лежат в некотором подпространстве - считай, выделили поверхность, на котором выполняются законы сохранения.Достаточное ли это решение? Ну, почти. На самом деле, мы в качестве дополнительного слагаемого нужно выбрать такое, которое будет учитывать все свойства аппроксимируемых уравнений, которые мы знаем. Граничных условий, законов сохранения, etc. То есть: где BC - boudary condition - граничные условия, а DE - differential equation - дифференциальное уравнение. Таким образом такая функция потерь должна минимизироваться на тех решениях, для которых выполняются и граничные условия, и само дифференциальное уравнение. Нейронная сеть с таким типом Loss функцией и называется PINN - Physics-informed neural network.  Такой тип функции потерь решает сразу несколько проблем: Сохранение физичности решения. Ускорение обучения - за счет уменьшения пространства поиска параметров сети. Уменьшение количества необходимых для обучения данных - ведь мы напрямую заложили в сеть априорные сведения о свойствах решения. На самом деле PINN - это частный случай более глубокой идеи, которая сейчас активно развивается в нейронных сетях.  Добавление дополнительных членов, связанных не только с самими признаками, которые мы изучаем, но и с их производными (в данном случае - дифференциальными уравнениями) порождает требование к нейронной сети учитывать гладкость пространства решений. Таким образом мы как бы учитываем некоторые инварианты нашего многообразия. Конструировать сети с учетом геометрических свойств изучаемой задачи можно разными способами. Подробности, не связанные с PINN, можно посмотреть в достаточно спорной, но интересной статье: линк.  Data Scientist, Teamlead