Pull to refresh
94.54

Как аугментация помогает нейронным сетям решать уравнения в частных производных

Level of difficultyHard
Reading time6 min
Views4.9K

Меня зовут Александр Рудиков, я младший научный сотрудник Сколтеха. Я работаю в группе под руководством Ивана Оселедца, которая занимается решением дифференциальных уравнения с помощью нейронных сетей. Не так давно мы придумали, как сделать этот процесс точнее и доложили свои результаты на конференции ICML 2023, по итогам которой была опубликована статья в сборнике трудов. В этом тексте я хотел бы поделиться нашими наработками и подробнее рассказать, что именно мы сделали.

Введение

Обширные явления реального мира, такие как турбулентность, атмосферная циркуляция и напряжение деформируемых материалов и т.д., описываются лежащими в их основе дифференциальными уравнениями в частных производных (PDEs). Следовательно, решение PDEs является общей фундаментальной проблемой для многих научных и инженерных областей и может принести дальнейшую пользу важным приложениям реального мира. Например, моделирование воздушного потока для проектирования аэродинамического профиля крыла летательного аппарата, моделирование атмосферы для прогнозирования погоды, молекулярная динамика и т.д.

Традиционный подход к численному решению PDEs основан на использовании различных солверов, которые используют те или иные классические методы. Например, метод конечных элементов (FEM) или метод конечных разностей (FDM), которые решают PDEs путем дискретизации расчетной области. Однако, в этом случае точность численного решения сильно зависит от дискретизации расчетной сетки: грубые сетки работают быстро, но менее точно; мелкие — точны, но медленны. В реальных приложениях решение PDEs обычно требует очень хорошей дискретизации и, следовательно, очень сложны, времязатратны и трудоемки для традиционных солверов.

В последние несколько лет на решение этой проблемы направлены усилия ученых, занимающихся нейронными сетями (NNs). Широко известно, что NNs являются универсальными аппроксиматорами непрерывных функций. Более важным фактом является то, что NN с одним скрытым слоем может точно аппроксимировать любой нелинейный непрерывный оператор. Недавно в рамках нового направления было предложено изучение бесконечномерных операторов с помощью NNs. Нейронный оператор устраняет зависящую от сетки дискретизацию, создавая единый набор параметров NN, которые можно использовать с различными дискретизациями расчетной сетки. В этом случае мы имеем возможность передавать решения между расчетными сетками. Кроме того, нейронный оператор нужно обучить только один раз. Наконец, нейронный оператор не требует знания лежащего в основе PDE, только данные, полученные экспериментально или с помощью солверов.

Машина решает PDE. http://stock.adobe.com/
Машина решает PDE. http://stock.adobe.com/

Нейронный оператор

Так ка же работает нейронный оператор? Рассмотрим простой пример параметрической краевой задачи:

\begin{split}    &\frac{d}{dx}\left(a(x) \frac{d}{dx} u(x)\right) = f(x),\\    &x\in[0, 1],\,u(0) = u(1) = 0.    \end{split}  \tag{1}

Существует некоторый оператор G, отображающий коэффициент диффузии и правую часть aj(x), fj(x) в решение uj(x), т.е. uj = G(aj, fj). Для того, чтобы получить решение uj используются традиционные солверы. Основная цель нейронного оператора — это построить аппроксимацию G путем построения параметрического отображения Gθ:

u_j \approx  G(a_j, f_j, \theta^{\dagger}) = G_{\theta^{\dagger}}(a_j, f_j),

где θ ∈ Θ — некоторый конечномерный вектор параметров. Если определить функционал качества как

C~:~\mathcal{U \times U} \rightarrow \mathbb{R}, \quad u_j \in \mathcal{U},

то искомый вектор параметров находится как

\frac{1}{N}\sum_{j=1}^{N}C(G(a_j, f_j, \theta),~ G^{\dagger}(a_j, f_j)) \rightarrow \min_{\theta \in \Theta}.

Другими словами, задача сводится к обыкновенному поиску минимума функции потерь.

Трудности решения PDEs с помощью нейронных операторов

Такой подход получает решение довольно быстро, но его основная трудность заключается в том, что, чтобы получить хорошую точность решения, обучающих пар наблюдений {aj, uj}Nj=1 должно быть много. В этом случае, как уже было сказано выше, мы используем традиционный солвер, чтобы получить решения uj, со всеми сопутствующими сложностями.

В классическом машинном обучении было предложено несколько способов, целью которых было увеличение количества данных без существенных вычислительных затрат. Следует заметить, что для задач, связанных с PDEs, методов увеличения данных без существенных вычислительных затрат очень мало. Наша команда, в которую входят специалисты из Сколтеха, ИВМ РАН и AIRI, разработала новый метод, позволяющий увеличивать набор данных для обучения нейронного оператора.

Центральной идеей предложенного подхода является принцип общей ковариантности. Он заключается в том, что физика явления не зависит от выбора системы координат. Математически, ковариантность означает, что физические поля являются геометрическими объектами с определенными законами преобразования при изменении системы координат.

В ряде случаев такие преобразования оставляют инвариантными уравнения, но в большинстве случаев сохраняется только форма уравнения. Более точно, для PDEs преобразование координат, выбранное соответствующим образом, приводит к изменению параметров задачи (например, поля проницаемости, коэффициента конвекции, начальных или граничных условий и т.д.). Мы использовали этот факт для построения вычислительно дешевой и широко применяемой стратегии увеличения данных (или аугментации), основанной на простых случайных преобразованиях системы координат.

Базовый пример аугментации для PDEs

Приведем простой пример нашего подхода для параметрической краевой задачи (1). Основное наблюдение состоит в том, что, когда известно PDEs, то можно извлечь больше информации из каждого полученного решения с помощью преобразования координат. Предположим, что y(ξ) является аналитической строго монотонной функцией: [0, 1] [0, 1]. Используя xy(ξ) как координатное преобразование, можно переписать уравнение (1) в координатах ξ следующим образом:

\begin{equation}       \begin{split}    &\frac{d\xi}{d y}\frac{d}{d\xi}\left(a(y(\xi)) \frac{d\xi}{d y}\frac{d}{d\xi} u(y(\xi))\right) = f(y(\xi)),\\    &\xi\in[0, 1],\,u(y(0)) = a,\,u(y(1)) = b.    \end{split}\end{equation}  \tag{2}

Как видим, преобразованное уравнение (2) имеет ту же параметрическую форму, что и исходное (1). Как следствие, если тройка функций a(x), u(x), f(x) решает исходное уравнение (1), то тройка модифицированных функции a(y(x))dx/dy, u(y(x)), f(y(x))dy/dx также решает то же уравнение (1), где мы переименовали переменную ξ в x. Таким образом, мы можем создавать новые решения из старых с использованием гладких преобразований координат и интерполяции. Как генерировать гладкие преобразования координат?

Поскольку любая строго монотонная положительная функция, отображающая [0, 1], представляет собой правильное преобразование координат, можно использовать кумулятивные функции распределения со строго положительной плотностью вероятности. Можно придумать много параметрических семейств плотностей вероятностей. Например, используя тригонометрические ряды:

\begin{equation}    \begin{split}    &p(x) = 1 + \sum_{k=1}^{N}\frac{\left(c_k \cos(2\pi k x) + d_k\sin(2\pi k x)\right)}{c_0},\\    & c_0 = \sum_{k=1}^{N}\left(\left|c_k\right| + \left|d_k\right|\right) + \beta,\,\beta>0.    \end{split}\end{equation} \tag{3}

После интегрирования получаем кумулятивную функцию распределения, которая служит преобразованием координат

\begin{equation}      y(x) = x + \sum_{k=1}^{N}\frac{\left(c_k \sin(2\pi k x) + d_k(1-\cos(2\pi k x))\right)}{2\pi k c_0}.\end{equation} \tag{4}

Таким образом, вся процедура аугментации краевой задачи (1) может быть компактно записана как

\begin{equation} \underset{\text{solve (1)}}{a(x), u(x), f(x)} \longrightarrow \underset{y(x) \text{ from (4)}}{a(y(x))\big/\frac{dy}{dx}, u(y(x)), f(y(x)) \frac{dy}{dx}}. \end{equation} \tag{5}

Рисунок ниже иллюстрирует предложенный подход для одномерной задачи (1) и частного набора преобразований (5):

Первый столбец слева содержит a(x),f(x) и u(x), которые решают дифференциальное уравнение (1). Все остальные столбцы получаются путем преобразования координат.
Первый столбец слева содержит a(x),f(x) и u(x), которые решают дифференциальное уравнение (1). Все остальные столбцы получаются путем преобразования координат.

Общая стоимость таких координатных преобразований для одной пары наблюдений {aj(x), fj, uj} составляет O(N), где N — количество узлов расчетной сетки. Это существенно быстрее, чем, например, решение уравнений Навье — Стокса методом конечных элементов, для которых сложность растет полиномиально.

Проверка на практике

Предложенная аугментация универсальна и может быть использована для любого нейронного оператора. Мы продемонстрировали подход на примере решения уравнения переноса, волнового уравнения, уравнения Навье — Стокса, эллиптических уравнений двух типов. В их исследования использовались следующие нейронные операторы: FNO, SNO, MLP, DilResNet, DeepONet и U-Net. Эксперименты проводились как для D = 1, так и для D = 2, где D — это количество аргументов.

Проведенные эксперименты показали, что наша аугментация позволяет ощутимо снизить ошибку обученного нейронного оператора при тестировании. Наименьшее снижение наблюдалось при работе с MLP — ошибка снизилась на 17%. Наилучший же результат был достигнут при работе с сетью DilResNet — там этот показатель вырос до 80%. В среднем по нейронным операторам и уравнениям предложенный подход сократил ошибку тестирования на 23%.

На рисунке ниже представлен результат сравнения нейронных операторов, обученных на данных с аугментацией и без нее. Степень возмущения решетки (grid distortion), полученной преобразованием системы координат, была рассчитана как максимальная разница между исходными координатами x и преобразованными x(ξ).

Зависимость ошибки предсказания от возмущения решетки при решении с помощью FNO и DilResNet с применением предложенной аугментации и без нее
Зависимость ошибки предсказания от возмущения решетки при решении с помощью FNO и DilResNet с применением предложенной аугментации и без нее

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

Tags:
Hubs:
Total votes 12: ↑12 and ↓0+12
Comments31

Articles

Information

Website
airi.net
Registered
Employees
101–200 employees