Pull to refresh
4
0
Send message
-\sum_{ij}\frac{\partial}{\partial x_i}\left(a_{ij}(x) \frac{\partial u}{\partial x_j} \right) + b^{2}(x) u(x) = f(x),\,x\in\Gamma = [0, 1]^{D},\,\left.u\right|_{\partial\Gamma} = 0,\,a_{ij}(x) \geq c > 0,\mathcal{P}(N_1, N_2, \alpha) = \left\{f(x) = \mathcal{R}\left(\sum_{m=0}^{N_1}\sum_{n=0}^{N_2}\frac{c_{mn}\exp\left(2\pi i(mx_1 + nx_2)\right)}{(1+m+n)^\alpha}\right):\mathcal{R}(c), \mathcal{I}(c)\simeq \mathcal{N}(0, I)\right\}.\begin{equation}     \label{eq:elliptic_1}     \begin{split}     &a(x) = \begin{pmatrix}         \alpha(x) & 0 \\         \gamma(x) & \beta(x)     \end{pmatrix}     \begin{pmatrix}         \alpha(x) & \gamma(x) \\         0 & \beta(x)     \end{pmatrix},\\     &\,\alpha(x),\beta(x) \simeq 0.1\mathcal{P}(5, 5, 2) + 1;\,\gamma(x),\,b(x),\,f(x) \simeq \mathcal{P}(5, 5, 2).     \end{split} \end{equation}

Тут приведен пример для elliptic equation 2D. Мы генерируем $a(x)$, $b(x)$, f(x)как показано выше, а потом используем традиционный солвер, чтобы получить точные решения $u(x)$. Таким образом, набираем выборку.

Я правильно понимаю, что выборка решений - это множество (упорядоченное) функций u(x)с индексом, определяющим номер функции в выборке -- да. Если да, то являются ли все эти функции определенными во всех точках отрезка [0, 1] -- да, Может быть, даже непрерывными при достаточно гладких (даже непрерывных?) функциях-параметрах -- да, но мы также проверяем на достаточно интересных случаях(например, для эллиптического уравнения a(x)-- "ступенька").

Советую посмотреть статью про FNO (ссылка на статью есть в посте). Там есть пункт: Learning rate в котором написано про генерацию выборки, также внизу есть различные примеры применения.

Для примера из поста. Самый простой пример: генерируем набор {a(x), f(x)} из какого-нибудь распределения, а дальше, используя солвер, получаем решение u(x). Таким образом собираем выборку(набор наблюдений) и обучаем neural operator (FNO, SNO, ...). "Выборка параметров PDE" -- это {a_j(x), f_j(x)}, "выборка решений" -- это {u_j(x)}

Для того, чтобы обучить neural operator нужно иметь некоторую выборку (параметров PDEs, решений), полученную с использование традиционных солверов. Естественно получить (очень)большую выборку теме же традиционными солверами не всегда просто как с точки зрения вычислительных ресурсов, так и с точки зрения времени. Основное преимущество предлагаемого способа заключается в том, чтобы увеличить уже существующую исходную выборку так, чтобы ошибка на тестовой выборки была как можно меньше, причем не съедая большое количество ресурсов. В статье это показана на пример как для 1D, так и для 2D.

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

Если речь идет про neural operators (FNO, SNO, DilResNet, ...), то они получают приближенное решение с достаточной степенью точности. Да, конечно, причем neural operators решают давольно большой спектр PDEs. Советую перейти по ссылкам в посте, чтобы более подробно ознакомиться.

Information

Rating
Does not participate
Registered
Activity