deeponettrans
2021年,《Nature Machine Intelligence》
题目:
DeepONet:基于算子的通用近似定理学习非线性算子以识别微分方程
作者:
LuLu, Pengzhan Jin, George Em Karniadakis* (布朗大学应用数学系教授, 美国工程院院士)
单位:
Division of Applied Mathematics, Brown University, Providence, RI 02912, USA
LSEC, ICMSEC, Academy of Mathematics and Systems Science, Chinese Academy of Sciences, Beijing 100190, China
摘要
虽然,众所周知神经网络是连续函数的通用近似器,但一个鲜为人知且可能更加强大的结果是,具有单个隐藏层的神经网络能够准确地近似任何非线性连续运算符。这个通用近似定理暗示了神经网络在从数据中学习非线性算子方面的潜在应用。然而,这一定理只保证足够大的网络有小的近似误差,且没有考虑重要的优化和泛化误差。为在实践中实现这一定理,我们提出了深度算子网络(Deep Operator Networks, DeepONet)来从一个相对较小的数据集中准确有效地学习算子。一个DeepONet由两个子网络构成,一个(分支网络)用于在固定数量的传感器$x_i$处对输入函数进行编码, 其中$i=1,…,m$;另一个(主干网络)用于编码输出函数的位置。我们对识别两种算子(即,动态系统和偏微分方程)进行了系统仿真,并证明了与全连接网络相比,DeepONet显著降低了泛化误差。我们还从理论上推导了近似误差与传感器数量(在其上定义了输入函数)以及输入函数类型的相关性,并用计算结果验证了该定理。更重要的是,我们在我们的计算测试中观察到了高阶误差收敛,即多项式率(从半阶到四阶),甚至是相对于训练数据集大小的指数收敛。
1 引言
通用近似定理指出,如果没有限制隐藏层的宽度和深度,神经网络可以用于近似任意连续函数到任意精度。但是,另一个更令人惊讶且尚未被充分重视的近似结果表明,具有单个隐藏层的神经网络能够精确地近似任何非线性连续泛函(从函数空间到实数的一个映射)或者(非线性)算子(从函数空间到另一个函数空间的一个映射)。
在复习算子的近似定理之前,我们先介绍一些在本文中用到的符号。设$G$是一个输入函数$u$的算子,$G(u)$是对应的输出函数。对$G(u)$定义域内的任意点$y$,输出$G(u)(y)$是一个实数。因此,网络的输入由$u$和$y$两部分组成,且输出为$G(u)(y)$(见图1A)。尽管我们的目标是学习以函数作为输入的算子,但我们不得不离散地表示输入函数,以便应用网络近似方法。在实践中,一种直接且简单的方法是在足够多的但有限的许多位置${x_1, x_2, …, x_m}$ 处使用函数值;我们称这些位置为“传感器”(见图1A)。紧接着,我们陈述算子的通用近似定理。
- 定理一 算子的通用近似定理。假设$\sigma$是一个连续非多项式函数,$X$是一个巴拿赫空间,$K_1 \subset X$, $K_2 \subset \mathbb{R}^d$ 分别是在$X$和$\mathbb{R}^d$上的紧集,$V$是在$C(K_1)$上的紧集,$G$是一个将$V$映射到$C(K_2)$的非线性连续算子。则对于任何$\varepsilon > 0$,都有正整数$n, p, m$,常数$c_i^k, \xi^k_{ij}, \theta^k_i \in \mathbb{R}, w_k \in \mathbb{R}^d, x_j \in K_1, i=1,…,n, k=1,…,p, j=1,…,m$,使得
$$
\begin{equation}
\left|G(u)(y)-\sum_{k=1}^{p}\underbrace{\sum_{i=1}^{n}c_{i}^{k}\sigma\left(\sum_{j=1}^{m}\xi_{ij}^{k}u(x_{j})+\theta_{i}^{k}\right)}{branch}\underbrace{\sigma(w{k}\cdot y+\zeta_{k})}_{trunk}\right|<\varepsilon
\end{equation}
$$
对于所有的$u \in V$和$y \in K_2$都成立。
图1:DeepONet的问题设置和架构说明。(A)网络学习算子$G:u \mapsto G(u)$需要取两个输入即$\left[ u(x_1),u(x_2),…,u(x_m) \right ]$和$y$。(B)训练数据的说明。对每个输入函数$u$,我们要求在相同的分散传感器$x_1, x_2, …, x_m$上有相同的评估次数。但是,我们没有对输出函数求值(评估?)的数量和位置施加任何约束。©根据定理1所堆叠的DeepONet具有一个主干网络和$p$个堆叠的分支网络。(D)无堆叠的DeepONet有一个主干网络和一个分支网络。
这个近似定理表明了神经网络在从数据中学习非线性算子方面的潜在应用,即类似于深度学习社区现在在做的事情——从数据中学习函数。但是这个定理没有告诉我们怎么有效地学习算子。以经典的图像分类任务为例,神经网络对函数的通用近似定理表明,全连接神经网络FNN具备准确近似基准分类函数的能力,但在实践中,FNN的性能却与具备特定架构的网络相去甚远,比如广泛使用的卷积神经网络(CNN)或近期的胶囊神经网络(CapsNet)。性能的差距在于,神经网络的精度可以通过将总误差分为三类来表征:近似、优化和泛化。通用近似定理只保证了对于足够大的网络的较小的近似误差,但是他们没有考虑优化误差和泛化误差。而这两个误差在实践中对总误差的贡献同等重要,而且往往占据主导地位。有用的网络应该易于训练,即表现出较小的优化误差,并且能很好地推广到看不见的数据,即较小的泛化误差。
为了证明神经网络学习非线性算子的能力和有效性,我们通过在传感器和训练数据集上使用最弱可能约束,将问题设置的尽可能一般。具体的,唯一所需的条件是传感器的位置${x_1, x_2, …, x_m}$是相同的,但是不一定在所有输入函数$u$的格子上,而我们不对输出位置$y$施加任何约束(图1B)。为了准确高效地学习算子,我们提出了一个特殊的网络架构——深度算子网络(DeepONet),以实现更小的总误差。我们将证明基于两个子网络的设计显著提高了DeepONet的泛化能力,这两个子网络分别是用于输入函数的分支网络和用于评估输出函数的位置的主干网络。
我们考虑两种类型的算子,即动态系统(例如常微分方程形式)和偏微分方程。非线性系统常用差分或微分方程来描述,且非线性动态设施(对象?plant)的识别是控制理论的一个主要问题。【一些工作[22,33]使用神经网络来识别动态系统,但它们只考虑了差分方程描述的动态系统。其他一些工作[20,24,23,9]预测了特定动态系统的演变,而不是识别新的看不见的输入信号的系统行为。他们使用的网络架构包括FNN[24]、递归神经网络(RNN)[20]、储备池计算[20]、残差网络[23]、自动编码器[9]、神经常微分方程[6]和神经跳跃随机微分方程[12]。对于识别偏微分方程,一些工作将输入和输出函数视为图像,然后使用细胞神经网络来学习图像到图像的映射[30,34],但这种方法只能应用于特定类型的问题,其中输入函数$u$的传感器分布在等间距网格上,并且训练数据必须包括所有$G(u)(y)$值,其中$y$也在等间距网格上。在没有这种限制的另一种方法中,偏微分方程由未知系数参数化,然后仅从数据中识别系数值[2,26,31,21,15]。或者,基于广义移动最小二乘[28]的广义CNN可以用于非结构化数据,但它只能近似局部算子,不能学习积分算子等其他算子。】
本文组织如下。在第二节,我们展示了DeepONet的两种网络架构:堆叠的DeepONet和无堆叠的DeepONet,然后介绍了数据生成的过程。在第三节,我们展示了 用于近似ODE算子时 能够准确表示输入函数所需的传感器数量 的理论分析。在第四节,我们测试了FNN、堆叠的DeepONet和无堆叠的DeepONet在不同例子中的性能,并展示了无堆叠DeepONet的准确性和收敛速度。最后,我们在第五节对文章进行了总结。
2 方法
2.1 深度算子网络(DeepONets)
我们专注于在更通用的设置中学习算子,其中对训练数据集的唯一要求是用于输入函数的传感器${x_1, x_2, …, x_m}$的一致性。在这种通用设置中,网络的输入包括两个独立的组件:$\left[u(x_1),u(x_2),…,u(x_m)\right]^T$和$y$(见图1A),目标是通过设计网络架构来实现良好的性能。一个直接的解决方案是直接使用经典网络,如FNN、CNN或者RNN,并将两个输入连接在一起作为网络输入,即$\left[u(x_1),u(x_2),…,u(x_m), y\right]^T$。然而,输入没有任何特定的结构,因此选择像CNN或者RNN这样的网络是没有意义的。因此我们使用FNN作为基准模型。
在高维问题中,$y$是具有$d$个分量的向量,所以$y$的维数与$u(x_i)$的维数不再匹配(其中$i=1,2,…,p$)。这也阻止了我们平等地对待$u(x_i)$和$y$,也因此至少需要两个子网络分别处理$\left[u(x_1),u(x_2),…,u(x_m)\right]^T$和$y$。尽管通用近似定理(定理1)对总误差没有任何保证,但它仍为我们提供了方程(1)中的网络结构。定理1只考虑具有一个隐藏层的浅层网络,因此我们将其扩展至深度网络,深度网络比浅层的具备更多的表达能力。我们提出的架构如图1C所示,具体如下。首先是一个“主干”网络,它以$y$为输入,且输出$\left[ t_1, t_2, …, t_p \right]^T \in \mathbb{R}^p$。除了主干网络之外,还有"p"个分支网络,且每个分支网络以$\left[ u(x_1),u(x_2),…,u(x_m) \right]^T $为输入,输出张量$b_k \in \mathbb{R}$(对于$k=1,2,…,p$)。我们将它们合并在一起:
$$G(u)(y) \approx \sum^p_{k=1}b_kt_k.$$
我们注意到,主干网络也在最后一层中应用激活功能,即$t_k=\sigma(\cdot)$(对于$k=1,2,…,p$),因此这个主干网络也可以被视为 最后一层中的每个权重是由其他的分支网络参数化的 而不是 经典单变量参数化的 主干网络。我们还注意到,在等式1中,每个$b_k$分支网络的最后一层不具有偏差(bias)。尽管在定理1中不需要偏差,但是加入偏差可能会减少泛化误差进而提高性能。除了在分支网络中加入偏差之外,我们也在最后阶段中加入了一个偏差$b_0 \in \mathbb{R}$:
$$
\begin{equation}
G(u)(y) \approx \sum^p_{k=1}b_kt_k + b_0.
\end{equation}
$$
在实际应用中,$p$至少是10阶的,并且使用许多分支网络在计算和存储上都是昂贵的。因此,我们将所有的分支网络合并为了一个分支网络(图1D),即单个分支网络输出向量$[b_1, b_2, …, b_p]^T \in \mathbb{R}^p $。在第一个DeepONet(图1C)中,有$p$个分支网络并行堆叠,因此我们将其命名为“堆叠的DeepONet”,将第二个DeepONet(图1D)成为“无堆叠的DeepONet”。
DeepONet是一种高级网络架构,其没有定义主干网络和分支网络的内部架构。为了证明单独的DeepONet具备良好的性能,我们选择了最简单的FNN作为本研究中的子网络的架构。使用卷积层可能会进一步提高精度。但是,卷积层一般适用于在等间距网格上的具有${x_1, x_2, …, x_m }$的方形区域,因此作为替代方案,我们可以使用注意力机制。
将一些先验知识体现到神经网络中,通常会产生良好的泛化能力,这种归纳偏置已经反映在许多网络中,如用于图像的CNN和用于序列数据的RNN。DeepONet甚至使用FNN作为其子网络的成功也得益于其强大的归纳偏置。输出$G(u)(y)$具有两个独立的输入$u$和$y$,因此明确地使用主干和分支网络与该先验知识是一致的。更广泛地说,$G(u)(y)$可以被视为$y$对$u$的条件作用的函数。找到一种有效的方法来表示条件作用输入仍然是一个开放问题,且已经提出了不同的方法,比如feature-wise transformations。
2.2 数据生成
过程的输入信号$u(x)$在系统识别中起着重要作用。显然,输入信号是影响过程以收集其相应信息的唯一可能性,并且识别信号的质量决定了精度的上限(在最佳情况下,该精度可以通过任何模型来实现)。在本研究中,我们主要考虑两个函数空间:高斯随机场(GRF)和正交(Chebyshev)多项式。
我们使用零均值化高斯随机场:
$$u \sim \mathcal{G}(0,k_l(x_1, x_2)),$$
其中协方差核$k_l(x_1, x_2)=\exp(-||x_1-x_2||^2 / 2l^2)$是长度-尺度参数$l>0$的径向基函数。长度-尺度参数$l$决定了采样函数的平滑度,$l$值越大,$u$越平滑。
令$M>0$且$T_i$是第一类切比雪夫多项式。我们将N次正交多项式定义为:
$$V_{poly}=\left{ \sum_{i=0}^{N-1}a_iT_i(x):|a_i|\le M \right}.$$
我们通过从$\left[ -M, M \right]$中随机采样$a_i$来从$V_{poly}$生成数据集,以获得$u$的样本。
在从选定的函数空间中采样$u$后,我们使用Runge-Kutta(4,5)和偏微分方程组用二阶有限差分法求解常微分方程组,得到参考解。我们注意到,一个数据点是一个三元组$(u,y,G(u)(y))$,因此一个特定输入$u$可能出现在具有不同$y$值的多个数据点中。例如,大小为10000的数据集可能仅从100个u的轨迹中生成。并且每个数据集对100个y位置上的$G(u)(y)$进行评估。
3 用于识别非线性动态系统的传感器数量
在本节中,我们探究了对于识别非线性动态系统需要多少传感器来达到精度$\varepsilon$。假设动态系统服从以下ODE系统:
$$
\begin{equation}
\begin{cases}
\frac{d}{dx}\mathbf{s}(x)=\mathbf{g}(\mathbf{s}(x), u(x),x) \
\mathbf{s}(a) = \mathbf{s_0}
\end{cases}
\end{equation}
$$
其中 $u \in V$(一个$C[a,b]$的紧集)是输入信号,$s : [a,b] \rightarrow \mathbb{R}^K$是用作输出信号的系统(3)的解。
令 $G$ 作为映射输入$u$到输出$\mathbf{s}$的算子,即,$Gu$满足
$$(Gu)(x)=\mathbf{s_0}+\int^x_a\mathbf{g}((Gu)(t),u(t),t)dt$$
现在,我们一致从$[a,b]$中选择$m+1$个点 $x_j=a+j(b-a)/m, j=0,1,…,m$,并定义函数$u_m(x)$如下:
$$u_m(x)=u(x_j)+\frac{u(x_{j+1})-u(x_j)}{x_{j+1}-x_j}(x-x_j),x_j\leq x\leq x_{j+1},j=0,1,\cdots,m-1.$$
用$\mathcal{L}_m$表示映射$u$到$u_m$的算子,且设$U_m={\mathcal{L}_m(u) | u \in V}$,这显然是$C[a,b]$的紧子集(因为$V$是紧的且连续算子$\mathcal{L}m$保持紧性)。自然地,$W_m:=V \cup U_m$作为两个紧集的并集也是紧的。然后,集合$W:=\bigcup^{\infty}{i=1} W_i$,定理7(哪来的?)指出$W$仍然是紧集。因为$G$是连续算子,所以$G(W)$在$C([a,b];\mathbb{R}^K)$是紧的。随后的讨论主要在$W$和$G(W)$中进行。为了便于分析,我们假设$\mathbf{g}(\mathbf{s}, u, x)$在$G(W) \times W$上满足关于$\mathbf{s}$和$u$的Lipschitz条件,即存在一个常数$c>0$使得
$$\begin{array}{l}|\boldsymbol{g}(\boldsymbol{s_1},u,x)-\boldsymbol{g}(\boldsymbol{s_2},u,x)|_2\leq c|\boldsymbol{s_1}-\boldsymbol{s_2}|_2\|\boldsymbol{g}(\boldsymbol{s},u_1,x)-\boldsymbol{g}(\boldsymbol{s},u_2,x)|2\leq c|u_1-u_2|\end{array}.$$
注意这个条件很容易实现,例如,只要$\mathbf{g}$在$G(W) \times W$上关于$\mathbf{s}$和$u$是可微的。
对于$u \in V$,$u_m \in U_m$,存在一个依赖于$m$和紧空间$V$的常数$\kappa(m,V)$,使得
$$
\begin{equation}
\max\limits{x\in[a,b]}|u(x)-u_m(x)|\leq\kappa(m,V),\quad\kappa(m,V)\to0 \text{ as } m\to\infty.
\end{equation}
$$
当$V$是具有RBF核的GRF时,我们有$\kappa(m,V) \sim \frac{1}{m^2l^2}$【证明详见附录C】。基于这些概念,我们有以下定理。
定理 2 假设$m$是一个正整数,使得$c(b-a)\kappa(m,V)e^{c(b-a)}$小于$\varepsilon$,则对于任何$d \in [a,b]$,存在$\mathcal{W}_1 \in \mathbb{R}^{n \times (m+1)}, b_1 \in \mathbb{R}^{m+1},\mathcal{W}_2 \in \mathbb{R}^{K \times n}, \mathbb{R}^{K}$,使得
$$|(Gu)(d)-(\mathcal{W}_2\cdot\sigma(\mathcal{W}_1\cdot[u(x_0)\quad\cdots\quad u(x_m)]^T+b_1)+b_2)|_2<\varepsilon $$
适用于所有的$u \in V$。
【该部分证明详见附录B】
4 仿真结果
在本节中,我们首先证明了,即使在最简单的线性问题中,因为更小的泛化误差,DeepONets比FNN具有更好的性能,然后证明了DeepONets对三个非线性ODE和PDE问题的能力。在所有问题中,我们使用学习率为0.001的Adam优化器,并且选择确保训练是收敛的迭代次数。表1和表2中列出了其他参数和网络大小。
表一:每个问题的默认参数,除非另有说明。我们注意到,一个数据点是三元组$(u, y, G(u)(y))$,因此一个特定输入$u$可以生成具有不同$y$值的多个数据点。
表二:每个问题的DeepONet大小,除非另有说明。
4.1 简单一维动态系统
一个一维动态系统由下式描述:
$$\frac{ds(x)}{dx}=g(s(x),u(x),x),\quad x\in[0,1],$$
其中初始条件$s(0)=0$。我们的目标是预测 任何$u(x)$在整个域$[0,1]$上的 $s(x)$。
4.1.1 线性情况: $g(s(x),u(x),x)=u(x)$
我们首先通过选择$g(s(x),u(x),x)=u(x)$来考虑线性问题,相当于学习反导数算子
$$G:u(x)\mapsto s(x)=\int_0^xu(\tau)d\tau.$$
作为基准,我们训练FNN来学习反导数算子。为了获得FNN的最佳性能,我们对三个超参数进行网格搜索:深度从2到4,宽度从10到2560,学习率从0.0001到0.01。学习率为0.01、0.001和0.0001的测试数据集的均方误差(MSE)如图2所示。尽管我们选择深度最大只到4,但结果表明,进一步增加深度并不能改善误差。在所有这些超参数中,对于深度为2、宽度为2560、学习率为0.001的网络,获得了最小的测试误差$\sim 10^{−4}$。我们观察到,当网络较小时,由于相对较弱的表达能力,使得训练误差较大,泛化误差(测试误差和训练误差之间的差异)较小。而当网络规模增大时,训练误差减小,但泛化误差增大。我们注意到FNN还没有到达过拟合区域,在该区域只是测试误差增加。
与FNN相比,DeepONet具有更小的泛化误差,也即具有更小的测试误差。在这里,我们的目标不是寻找最佳的超参数,只测试表2中列出的两个DeepONet的性能。具有偏差的无堆叠DeepONet的训练轨迹如图3A所示,泛化误差可忽略不计。我们观察到,对于堆叠和无堆叠的DeepONet,向分支网络和等式(2)添加偏差降低了训练和测试误差(图3B);具有偏差的DeepONet也具有更小的不确定性,即,对于从随机初始化开始的训练更稳定(图3B)。与堆叠的DeepONet相比,尽管无堆叠的DeepONet具有较大的训练误差,但由于泛化误差更小,使得其测试误差也更小。因此,具有偏置的无堆叠DeepONet可实现最佳性能。此外,与堆叠的DeepONet相比,无堆叠的DeepONet具有更少的参数数量,因此可以使用更少的内存更快地进行训练。
图2:为学习反导数算子而训练的FNN的误差(线性情况)。(A和B)学习率0.01。(C和D)学习率0.001。(E和F)学习率0.0001。(A,C,E)实线和虚线分别是训练过程中的训练误差和测试误差。蓝色、红色和绿色线分别表示大小(深度2,宽度10)、(深度3,宽度160)和(深度4,宽度2560)的FNN。(B、D、F)蓝色、红色和绿色线分别表示深度为2、3和4的FNN。(D)中的阴影区域是来自具有不同训练/测试数据和网络初始化的10次运行的一个标准差(standard-deviation,SD)。为了清楚起见,只显示了学习率0.001的SD(图D)。u的传感器数量为$m=100$。
图3:为学习反导数算子而训练的DeepONets的误差(线性情况)。(A) 有偏差的无堆叠DeepONet的训练轨迹。(B) 与FNN的最佳误差相比,有/无偏差的堆叠/无堆叠DeepONets的训练/测试误差。误差条是从具有不同训练/测试数据和网络初始化的10次运行中得出的标准差。
4.1.2 非线性情况: $g(s(x),u(x),x)=-s^2(x)+u(x)$
接下来我们通过$g(s(x),u(x),x)=-s^2(x)+u(x)$来考虑非一个线性问题。因为$s(x)$可能对某些$u$爆炸(?),我们通过去除1‰的最坏预测来计算测试MSE。在网络训练过程中,堆叠的和无堆叠的DeepONet的训练MSE和测试MSE都有所下降,但无堆叠的DeepONet训练MSE与测试MSE之间的相关性更紧密(图4A),即泛化误差更小。在具有随机训练数据集和网络初始化的多次运行中,也观察到无堆叠DeepONet的训练和测试MSE之间的这种紧密相关性(图4B)。此外,无堆叠DeepONet的测试MSE和训练MSE几乎遵循线性相关性
$$\mathrm{MSE_{test}}\approx10\times\mathrm{MSE_{train}}-10^{-4}.$$
图4C显示,由于较小的泛化误差,无堆叠的DeepONet具有较小的测试MSE。DeepONet甚至适用于分布外预测,见图5中的三个预测示例。在下面的研究中,我们将使用无堆叠的DeepONet。
图4:非线性ODE:与堆叠的DeepONet相比,无堆叠的DeepONet具有更小的泛化误差和更小的测试MSE。(A)训练过程中一个堆叠/无堆叠DeepONet的训练MSE和测试MSE之间的相关性。(B) 在具有随机训练数据集和网络初始化的10次运行中,堆叠/无堆叠DeepONet的最终训练MSE和测试MSE之间的相关性。无堆叠DeepONet的训练和测试MSE遵循线性相关性(黑色虚线)。(C) B中数据点的平均值和标准差。
图5:非线性ODE:训练的无堆叠DeepONet对三个分布外输入信号的预测。蓝线和红线表示参考解和DeepONet的预测。
4.2 带有外力的重力摆
重力摆在外力作用下的运动描述为:
$$
\begin{aligned}&\frac{ds_{1}}{dt}=s_{2},\&\frac{ds_{2}}{dt}=-k\sin s_{1}+u(t),\end{aligned}
$$
初始条件$s(0)=0$,$k$由重力加速度和摆锤长度决定。这个问题由三个因素表征:(1)$k$,(2)最大预测时间$T$,和(3)输入函数空间。学习网络的精度由四个因素决定:(1)传感器点的数量$m$;(2) 训练数据集大小;(3) 网络架构,(4)优化器。我们研究了这些因素对准确性的影响。
4.2.1 传感器的数量
区分两个输入函数所需的传感器数量取决于$k$的值、预测时间$T$和输入函数空间。对于$k=1$、$T=1$和$l=0.2$的情况,当传感器的数量$m$很小时,随着传感器数量的增加,误差呈指数衰减(图6A):
$$\mathrm{MSE} \propto 4.6^{-#\mathrm{sensors}}.$$
当$m$已经很大时,增加$m$的效果可以忽略不计。如箭头所示,这种转变发生在$\sim 10$个传感器处。
为了预测更长时间的$s$,需要更多的传感器(图6B)。例如,预测$T=5$之前需要$\sim 25$个传感器。如果函数$u$与较小的$l$相对应不那么平滑,那么它也需要更多的传感器(图6C)。然而,传感器的数量对$k$不敏感(图6D)。尽管很难量化$m$对$T$和$l$的确切依赖性,但通过拟合计算结果,我们表明
$$m \propto \sqrt{T} \text{ and } m \propto l^{-1}.$$
在定理2中,$m$应该足够大以使$Te^{cT} \kappa(m,V)$小。在附录C中,我们从理论上证明了具有RBF核的GRF函数空间的$m \propto l^{-1}$,这与我们的计算结果一致。与计算结果相比,界中的$Te^{cT}$是松散的。
图6:重力摆:不同$T$、$k$和$l$所需的传感器数量。(A)在$k=1$、$T=1$和$l=0.2$的情况下,训练MSE(方形符号)和测试MSE(圆形符号)随着传感器数量的增加而减少。在(B)$T$、(C)$l$和(D)$k$的不同条件下,训练和测试MSE与传感器数量的关系。为了清楚起见,未显示SD。箭头指示误差衰减率减小的位置。
4.2.2 误差趋势与收敛
在这里,我们研究了不同条件下的误差趋势,包括预测时间、网络大小和训练数据集大小。我们首先观察到,训练和测试误差都随着最大预测时间呈指数级增长(图7A):
$$\mathrm{MSE} \propto 8^{T}.$$
我们注意到,误差不是时间$T$的误差,而是域$[0,T]$上的平均误差,因为我们预测的是任何$t \in [0, T]$的$s(T)$。如图6B所示,对于$T=5$,100个传感器点就足够了,因此误差增加的可能原因是:(1)网络太小,(2)训练数据不够。因为$T=1$中的误差已经很小了,为了利用误差,我们在下面的实验中使用$T=3$。通过改变网络宽度,我们能观察到存在一个最佳宽度使网络达到最小的误差(图7B)。合理的是,将宽度从1增加到100会减少误差,但当宽度进一步增加时,误差反而会增加。这可能是由于优化误差增加,并且可以使用更好的学习率来找到更好的网络。
为了检验训练数据集大小的影响,我们选择宽度为100的网络来消除网络大小的影响。使用不同数据集大小的训练、测试和泛化误差如图7C和D所示,且我们有:
$$\text{MSE}{\text{test}}\propto\begin{cases}e^{-x/2000},&\text{for small dataset}\x^{-0.5},&\text{for large dataset}\end{cases},\
\text{MSE}{\text{gen}}\propto\begin{cases}e^{-x/2000},&\text{for small dataset}\x^{-1},&\text{for large dataset}\end{cases},$$
其中$x$是训练数据点的数量。令人惊讶的是,当训练数据集大小$<10^4$时,测试误差和泛化误差具有指数收敛性。即使对于大型数据集,泛化误差的$x^{−1}$收敛率仍然高于学习理论[19]中的经典$x^{−0.5}$。这种快速收敛证实了DeepONet的卓越性能,尤其是在小数据集区域。
图7:重力摆:误差趋势和收敛性。(A) 如果我们将网络大小固定在宽度40并且将训练数据大小固定在10000点,则对于长期预测,训练误差(蓝色)和测试误差(红色)都会快速增加。(B) 当网络宽度增加($T=3$)时,训练和测试错误先减少后增加。(C) 当使用更多的训练数据时($T=3$,宽度100),测试误差减小。(D) 对于小的训练数据集,测试误差和泛化误差具有指数收敛性,然后分别以速率$x^{−0.5}$和$x^{−1}$收敛($T=3$,宽度100)。
4.2.3 输入函数空间
接下来,我们研究了不同函数空间的影响,包括具有不同长度尺度l的GRF和具有不同基数的Chebyshev多项式的空间。对于固定的传感器数量,我们观察到存在一个临界长度尺度,在该尺度周围训练和测试误差快速变化,见图8A和B中的箭头。在具有不同基数的切比雪夫多项式的空间中也观察到了临界值周围的急剧转变(图8B)。临界值和传感器数量之间的关系为
$$l \propto m^{-1} \quad \text{and} \quad #\text{Bases} \propto \sqrt{m}$$
$l$和$m$之间的反比关系与附录C中的理论结果和第4.2.1节中的计算结果一致。因此,当函数空间复杂度增加时,可以增加$m$以很好地捕捉函数。
图8:重力摆:不同输入函数空间的误差。训练误差(实线)和测试误差(虚线)(A)对于不同长度尺度$l$的GRF函数空间。颜色对应于插图中所示的传感器数量。(B) 不同基函数数量的切比雪夫多项式。
4.3 具有源项的扩散反应系统
具有源项$u(x)$的扩散反应系统描述为:
$$\frac{\partial s}{\partial t}=D\frac{\partial^2s}{\partial x^2}+ks^2+u(x),\quad x\in[0,1],t\in[0,1],$$
初始/边界条件为零,其中$D=0.01$为扩散系数,$k=0.01$为反应速率。我们使用DeepONet来学习从$u(x)$映射到PDE解$s(x,t)$的算子。在前面的例子中,对于每个输入$u$,我们只使用$s(x)$的一个随机点进行训练,相反,我们也可以使用$s(x)$的多个点。为了生成训练数据集,我们在100乘100的网格上使用二阶隐式有限差分方法求解扩散反应系统,然后对于每个$s$,我们从这些10000=100×100的网格点中随机选择P个点(图9A)。因此,数据集大小等于$P$与$u$个样本数量的乘积。我们确认,训练和测试数据集不包括来自相同$s$的数据。
我们研究了相对于$u$样本数量和$P$值的误差趋势。当我们使用100个随机$u$样本时,测试误差首先随着$P$的增加而减小(图9B),然后由于其他因素而饱和,例如有限数量的$u$样本和固定的神经网络大小。我们观察到类似的误差趋势,但随着$P$固定且$u$样本数量的增加,饱和度会变低(图9C)。此外,在这个PDE问题中,DeepONet能够从一个小的数据集中学习,例如,当只使用$100u$样本($P=1000$)进行训练时,DeepONet可以达到$\sim 10^{−5}$的测试误差。我们记得我们在10000个网格点上进行测试,因此平均每个位置点只有$100×1000/10000=10$个训练数据点。
在误差饱和之前,关于$P$值和$u$样本数量二者的收敛率在大部分范围内服从多项式定律(图10A和B)。相对于$P$的收敛速度取决于$u$样本的数量,更多的$u$样本会导致更快的收敛,直到它饱和(图10C中的蓝线)。类似地,相对于$u$样本数量的收敛速度取决于$P$的值(图10C中的红线)。此外,在收敛的初始范围内,我们观察到指数收敛(图10D和E),如4.2.2节所示。指数收敛$e^{−x/k}$中的系数$1/k$也取决于$u$样本的数量或$P$的值(图10F)。图10C和F中的收敛速度随着$u$样本的数量或$P$的值而增加是合理的,因为训练数据点的总数等于$P \times #u$。然而,通过拟合这些点,令人惊讶的是,存在$ln(x)$或$e^{−x}$此类形式的明显趋势,我们还不能完全解释这一点,因此需要更多的理论和计算研究。
图9:学习扩散反应系统。(A)(左)输入函数$u(x)$的随机样本的示例。(中)在$P$个不同的$(x,t)$位置处的相应输出函数$s(x,t)$。(右)训练数据点的输入和输出配对。训练数据点的总数是$P$乘以$u$样本数量的乘积。(B)当使用100个随机$u$样本时,对于随机点数量$P$的不同值,训练误差(蓝色)和测试误差(红色)。(C)当$P=100$时,不同数量$u$样本的训练误差(蓝色)和测试误差(红色)。阴影区域表示标准差。
图10:不同数量训练数据点的误差收敛率。(A)对于不同数量的$u$样本,测试误差相对于$P$的收敛性。(B)对于$P$的不同值,测试误差相对于$u$样本的数量的收敛性。(C)对于不同数量的$u$样本或$P$值,多项式收敛率。(D)对于不同数量的$u$样本,测试误差关于$P$的指数收敛性。(E)对于不同的$P$值,测试误差关于$u$样本数量的指数收敛性。(F)关于$u$样本的数量或$P$值,指数收敛$e^{−x/k}$中的系数$1/k$。
5 总结
在本文中,我们在更一般的设置中公式化了学习算子的问题,并提出了学习非线性算子的DeepONet。在DeepONet中,我们首先构建两个子网络,分别对输入函数和位置变量进行编码,然后将它们合并在一起计算输出。我们在四个常/偏微分方程问题上测试了DeepONet,并表明DeepONet可以通过使用这种归纳偏差来实现较小的泛化误差。在我们的模拟中,我们系统地研究了不同因素对测试误差的影响,包括传感器数量、最大预测时间、输入函数空间的复杂性、训练数据集大小和网络大小。我们观察到关于训练数据集大小的不同阶多项式甚至指数误差收敛。据我们所知,这是首次在深度学习中观察到指数收敛。此外,我们从理论上推导了近似误差对不同因素的依赖性,这与我们的计算结果一致。
尽管取得了上述成就,但在理论和计算方面还需要做更多的工作。例如,算子近似的网络大小没有任何理论结果,类似于函数近似的宽度和深度的边界。我们在理论上也不理解为什么DeepONets会引起小的泛化误差。另一方面,在本文中,我们将完全连接的神经网络用于两个子网络,但正如我们在第2.1节中所讨论的,我们也可以使用其他网络架构,如卷积神经网络或“注意力”机制。这些修改可以进一步提高DeepONets的准确性。
附录
A 近似非线性算子的神经网络
我们在表3中列出了本文中使用的主要符号和含义。
符号 | 含义 |
---|---|
$X$ | 具有范数 $\lVert \cdot \rVert_{X}$ 的Banach空间 |
$\mathbb{R}^d$ | d维欧氏空间 |
$K$ | 一个Banach空间上的一个紧集 |
$C(K)$ | 定义在$K$上的具有范数$\lVert f \rVert_{C(K)}$的所有连续函数的Banach空间 |
$V$ | C(K)上的一个紧集 |
$u(x)$ | 一个输入信号 |
$s(x)$ | 一个输出信号 |
$f$ | 一个函数或者泛函 |
$G$ | 一个算子 |
$(\mathbf{TW})$ | 所有的Tauber-Wiener函数 |
$\sigma$ | 一个激活函数 |
${x_1, x_2, …, x_m}$ | $m$个传感器点 |
$n,p$ | 定理4和5中的神经网络大小超参数 |
$N$ | 基函数的数量 |
$M$ | 某个上界的值 |
设$C(K)$表示定义在紧集$K \subset X$上的具有范数$\lVert f \rVert_{C(K)}=\max_{x \in K}|f(x)|$的所有连续函数的Banach空间,其中$X$是Banach空间。我们首先回顾Tauber-Wiener(TW)函数的定义和充分条件,以及连续算子的定义。
定义一 (TW)。如果函数$\sigma: \mathbb{R} \rightarrow \mathbb{R}$(连续或不连续)满足所有线性组合$\sum_{i=1}^{N}c_i\sigma(\lambda_ix+\theta_i), \lambda_i \in \mathbb{R}, \theta_i \in \mathbb{R}, i=1,2,…,N $, 在每个$C([a,b])$中是稠密的,则$\sigma$称为Tauber-Wiener(TW)函数。
定理3 (TW的充分条件) 假设$\sigma$是连续函数,且$\sigma$(缓增广义函数),则$\sigma \in (TW)$,当且仅当$\sigma$不是多项式。
很容易验证我们现在使用的所有激活函数,如sigmoid、tanh和ReLU,都是TW函数。
定义2 (连续性)。设$G$是拓扑空间$X$和$Y$之间的一个算子。如果对于每$\varepsilon > 0$,且存在一个常数$ \delta > 0 $,使得对于满足$\lVert x - y \rVert_{X} < \delta$的所有的$x,y \in X$有
$$\lVert G(x) - G(y) \rVert_{Y} < \varepsilon,$$
则我们称$G$为连续的。
我们回顾了Chen & Chen[5]关于逼近非线性连续泛函和算子的两个主要定理。
定理4 (泛函的普遍逼近定理)。假设 $\sigma \in (TW)$,$X$是Banach空间,$K \subset X$是一个紧集,$V$是$C(K)$中的一个紧集,$f$是定义在$V$上的一个连续函数,那么对于任何$\varepsilon > 0$,都有一个正整数$n$,$m$个点$x_1, x_2, …, x_m \in K$,以及实常数$c_i, \theta_i, \xi_{ij}, i=1,…,n, j=1,…,m$,使得
$$\left|f(u)-\sum_{i=1}^nc_i\sigma\left(\sum_{j=1}^m\xi_{ij}u(x_j)+\theta_i\right)\right|<\varepsilon $$
适用于所有的$u \in V$。
定理5 (算子的普遍逼近定理)。假设 $\sigma \in (TW)$,$X$是Banach空间,$K_1 \subset X, K_2 \subset \mathbb{R}^d$分别是$X$和$\mathbb{R}^d$中的两个紧集,$V$是$C(K_1)$中的紧集,$G$是一个非线性连续算子,它将$V$映射到$C(K_2)$中,那么对于任何$\varepsilon > 0$,都有正整数$n,p,m$,实常数$c_i^k, \xi_{ij}^k, \theta_{i}^k, \zeta_k \in \mathbb{R}, w_k \in \mathbb{R}^d, x_j \in K_1, i=1,…,n, k=1,…,p, j=1,…,m$,使得
$$\left|G(u)(y)-\sum_{k=1}^{p}\sum_{i=1}^{n}c_{i}^{k}\sigma\left(\sum_{j=1}^{m}\xi_{ij}^{k}u(x_{j})+\theta_{i}^{k}\right)\sigma(w_{k}\cdot y+\zeta_{k})\right|<\varepsilon $$
适用于所有$u \in V$以及$y \in K_2$。
定理4和5都要求函数空间的紧性。事实上,像$C([0, 1])$这样的函数空间对于实际应用来说“太大了”,因此适合考虑具有紧性的较小空间。下面的Arzela–Ascoli定理给出了紧性的充要条件。
定义3 (一致有界)。设$V$是集合$K$上的实值函数族。如果存在一个常数$M$,使得对所有的$f \in V$以及所有的$x \in K$有:
$$|f(x)| \le M ,$$
则我们称$V$一致有界。
定义4 (等度连续) 设$V$是集合$K$上的实值函数族。如果对于每个$\varepsilon > 0$,存在一个$\delta > 0$,使得对所有的$f \in V$以及所有的满足$|x-y|<\delta$的$x,y \in K$有:
$$|f(x) - f(y)| < \varepsilon ,$$
则我们称$V$是等度连续的。
定理6 (Arzela–Ascoli定理)。令$X$是一个Banach空间,且$K \subset X$是一个紧集。当且仅当$C(K)$的子集$V$是一致有界且等度连续时,$V$是预紧的(具有compact closure)。
B 用于识别非线性动态系统的传感器数量
引理7。$W:=\bigcup^\infty_{i=1}W_i$是紧的。
证明:
首先,我们证明了$W$是预紧的。对于任何$\varepsilon>0$,通过(4),存在一个$m_0$,使得
$$|u-\mathcal{L}m(u)|C<\frac{\varepsilon}{4},\quad\forall u\in V,\forall m>m_0.$$
由于$W{m0}$是受等连续性约束的紧集,因此存在一个$\delta>0$使得
$$|x-y|<\delta\Rightarrow|u(x)-u(y)|<\frac{\varepsilon}{2},\quad\forall u\in W{m_0},\forall x,y\in[a,b].$$
现在,对所有的$u \in W$ 以及所有的$x,y \in [a,b], |x-y|<\delta$,如果$u \in W_{m0}$,自然我们有$|u(x)-u(y)|<\frac{\varepsilon}{2}<\varepsilon$,否则$u \in \bigcup^\infty_{i=m_0+1}U_i$。假设$u=\mathcal{L}m(v),m>m_0,v \in V$,则有下式成立:
$$\begin{aligned}
|u(x)-u(y)|=& =|u(x)-v(x)+v(x)-v(y)+v(y)-u(y)| \
&\leq|\mathcal{L}{m}(v)(x)-v(x)|+|v(x)-v(y)|+|\mathcal{L}{m}(v)(y)-v(y)| \
&\leq2|\mathcal{L}{m}(v)-v|{C}+|v(x)-v(y)| \
&<2\cdot\frac{\varepsilon}{4}+\frac{\varepsilon}{2}=\varepsilon,
\end{aligned}$$
这表明了$W$的等度连续。此外,很明显,$W$是一致有界的,因此通过应用Arzela–Ascoli定理,我们知道$W$是预紧的。
接下来我们展示$W$是闭的。设${w_i}^\infty{i=1}$是一个收敛于$w_0 \in C[a,b]$的序列。如果存在一个$m$使得${w_i} \subset W_m$,那么$w_0 \in W_m \subset W$。否则,存在${w_i}$的子序列${\mathcal{L}{i{n}}(v_{i_n})}$使得随着$n \rightarrow \infty$ 有 $v_{i_n} \in V$以及$i_n \rightarrow \infty$。那么我们有
$$\begin{aligned}
|v_{i_n}-w_0|C=& =|v{i_{n}}-\mathcal{L}{i{n}}(v_{i_{n}})+\mathcal{L}{i{n}}(v_{i_{n}})-w_{0}|{C} \
&\leq|v{i_{n}}-\mathcal{L}{i{n}}(v_{i_{n}})|{C}+|\mathcal{L}{i_{n}}(v_{i_{n}})-w_{0}|{C} \
&\leq\kappa(i{n},V)+|\mathcal{L}{i{n}}(v_{i_{n}})-w_{0}|{C},
\end{aligned}$$
这意味着$w_0=\lim{n\rightarrow \infty}v_{i_{n}} \in V \subset W$。
接下来我们给出定理2的证明。
证明:对于$u \in V$和$u_m \in U_m$,根据界(4)和Lipschitz条件,我们可以得到:
$$\begin{aligned}
|(Gu)(d)-(Gu_{m})(d)|{2}& \leq c\int{a}^{d}|(Gu)(t)-(Gu_{m})(t)|{2}dt+c\int{a}^{d}|u(t)-u_{m}(t)|dt \
&\leq c\int_{a}^{d}|(Gu)(t)-(Gu_{m})(t)|{2}dt+c(b-a)\kappa(m,V).
\end{aligned}$$
通过Gronwall不等式,我们有:
$$|(Gu)(d)-(Gu_m)(d))|2\leq c(b-a)\kappa(m,V)e^{c(b-a)}.$$
定义$S_m={(u(x_0),u(x_1),\cdots ,u(m)) \in \mathbb{R}^{m+1} |u \in V}$,它是$R^{m+1}$中的一个紧集,并且$S_m$和$U_m$之间存在一个双射映射。此外,我们定义了$S_m$上的向量值函数:
$$\varphi(u(x_0),u(x_1),\cdots,u(x_m))=(Gu_m)(d).$$
对于任何$\varepsilon>0$,令$m$足够大使得$c(b-a)\kappa(m,V)e^{c(b-a)} < \varepsilon $。利用神经网络对高维函数的通用近似定理,存在$\mathcal{W}1\in\mathbb{R}^{n\times(m+1)},b_1\in\mathbb{R}^{m+1},\mathcal{W}2\in \mathbb{R}^{K \times n}, b_2 \in \mathbb{R}^{K}$,使得
$$|\boldsymbol{\varphi}(u(x{0}),\cdots,u(x{m}))-(\mathcal{W}{2}\cdot\sigma(\mathcal{W}{1}\cdot[u(x{0})\quad\cdots\quad u(x_{m})]^{T}+b_{1})+b_{2})|{2}\<\varepsilon-c(b-a)\kappa(m,V)e^{c(b-a)}.$$
因此我们有
$$\begin{aligned}&|(Gu)(d)-(\mathcal{W}{2}\cdot\sigma(\mathcal{W}{1}\cdot[u(x{0})\quad\cdots\quad u(x_{m})]^{T}+b_{1})+b_{2})|_{2}\&\leq|(Gu)(d)-(Gu_m)(d)|_2+ \& |(Gu_m)(d)-(\mathcal{W}_2\cdot\sigma(\mathcal{W}_1\cdot[u(x_0)\quad\cdots\quad u(x_m)]^T+b_1)+b_2)|_2\&<c(b-a)\kappa(m,V)e^{c(b-a)}+\varepsilon-c(b-a)\kappa(m,V)e^{c(b-a)}=\varepsilon.\end{aligned}$$
总之,通过选择$m$的值,使$c(b-a)\kappa(m,V)e^{c(b-a)}$小于$\varepsilon$足以实现精度$\varepsilon$。
C 具有径向基函数核的高斯随机场
假设$X(t)\sim\mathcal{G}(0,\exp(-\frac{|x-y|^{2}}{l^{2}}))$。然后有
$$X(t)=\sqrt{2}(\pi)^{\frac{1}{4}}\int_{\mathbb{R}^{+}}(l)^{\frac{1}{2}}\cos(\omega t)\exp(-\frac{l^{2}\omega^{2}}{8})dW(\omega)-\\sqrt{2}(\pi)^{\frac{1}{4}}\int_{\mathbb{R}^{+}}(l)^{\frac{1}{2}}\sin(\omega t)\exp(-\frac{l^{2}\omega^{2}}{8})dB(\omega),$$
其中$W$和$B$是独立的标准布朗运动。应用变量$\lambda=l\omega$的变化并将$X(t)$写为
$$X(t)=\sqrt{2}(\pi)^{\frac14}\int_{\mathbb{R}^+}\cos(\frac{\lambda}{l}t)\exp(-\frac{\lambda^2}{8})dW(\lambda)-\\sqrt{2}(\pi)^{\frac14}\int_{\mathbb{R}^+}\sin(\frac{\lambda}{l}t)\exp(-\frac{\lambda^2}{8})dB(\lambda).$$
在区间$[t_i, t_{i+1}]$上应用线性插值$\prod_1$,则:
$$\begin{aligned}
\mathbb{E}[(X(t)-\Pi_1X(t))^2]& = 2(\pi)^{\frac{1}{2}}\int_{\mathbb{R}^{+}}((I-\Pi_{1})\cos(\frac{\lambda}{l}t))^{2}\exp(-\frac{\lambda^{2}}{4})d\lambda \
&+2(\pi)^{\frac12}\int_{\mathbb{R}^+}((I-\Pi_1)\sin(\frac{\lambda}{l}t))^2\exp(-\frac{\lambda^2}{4})d\lambda \
&\leq (\pi)^{\frac{1}{2}}(t_{i+1}-t_{i})^{4}\int_{\mathbb{R}^{+}}(\frac{\lambda}{l})^{4}\exp(-\frac{\lambda^{2}}{4})d\lambda \
&= 24\pi\frac{(t_{i+1}-t_i)^4}{l^4},
\end{aligned}$$
其中我们回顾了$[a,b]$上线性插值的误差估计(通过泰勒展开):
$$|(I-\Pi_1)g(t)|=\frac{1}{2}(b-a)^2|f’'(\xi)|,$$
其中$\xi$位于$a$和$b$之间。那么通过Borel-Cantelli引理,我们得到
$$|X(t)-\Pi_1X(t)|\leq C\frac{(t_{i+1}-t_i)^{2-\epsilon}}{l^2},\quad\epsilon>0,$$
其中$C$是具有有限方差的高斯随机变量的绝对值。因此,对具有$m$个点的$X(t)$进行分段线性插值将导致阶数为$O(\frac{1}{m^2 l^2})$的收敛。