Multi-Grade Deep Learning for Partial Differential Equations

论文阅读:Multi-Grade Deep Learning for Partial Differential Equations with Applications to the Burgers Equation

  • Multi-Grade Deep Learning for Partial Differential Equations with Applications to the Burgers Equation
    • 符号定义
      • 偏微分方程定义
      • FNN定义
      • PINN定义
    • 多级学习
    • 两阶段模型
    • 实验结果
      • 1D Burgers
  • 总结

Multi-Grade Deep Learning for Partial Differential Equations with Applications to the Burgers Equation

符号定义

偏微分方程定义

一个偏微分方程可以定义如下:
F ( u ( t , x ) ) = 0 , x ∈ Ω , t ∈ ( 0 , T ] , I ( u ( 0 , x ) ) = 0 , x ∈ Ω , t = 0 , B ( u ( t , x ) ) = 0 , x ∈ Γ , t ∈ ( 0 , T ] , \begin{aligned}\mathcal{F}(u(t,x))&=0,&x\in\Omega,&t\in(0,T],\\\mathcal{I}(u(0,x))&=0,&x\in\Omega,&t=0,\\\mathcal{B}(u(t,x))&=0,&x\in\Gamma,&t\in(0,T],\end{aligned} F(u(t,x))I(u(0,x))B(u(t,x))=0,=0,=0,xΩ,xΩ,xΓ,t(0,T],t=0,t(0,T],
其中 Ω ⊂ R d \Omega\subset\mathbb{R}^d ΩRd d d d 为计算域的维度, Γ \varGamma Γ Ω \Omega Ω 的边界,$ \mathcal{F}$ 为非线性微分算子, I , B \mathcal{I},\mathcal{B} I,B 分别表示初始条件和边界条件的(非线性)算子, u u u 是要学习的未知解。并且其中 T > 0 T > 0 T>0,初始状态 u ( 0 , x ) u(0, x) u(0,x) u u u Γ \varGamma Γ 上的数据已知。

FNN定义

s , t s,t s,t 为两个正整数。 FNN 是将 s s s 维度的输入向量映射到 t t t 维度的输出向量的函数。深度为 D D D 的 FNN 是由输入层、 D − 1 D − 1 D1 个隐藏层和输出层组成的神经网络。令 d i d_i di 表示第 i i i 个隐藏层中的神经元数量,令 W i ∈ R d i × d i − 1 W_i\in\mathbb{R}^{d_i\times d_{i-1}} WiRdi×di1 b i ∈ R d i b_i \in \mathbb{R}^{d_i} biRdi 分别表示第 i i i 层的权重矩阵和偏置向量。设 σ : R → R \sigma:\mathbb{R}\to\mathbb{R} σ:RR 表示激活函数, x : = [ x 1 , x 2 , … , x s ] T ∈ R s \mathbf{x}:=\left.[x_1,x_2,\ldots,x_s]^T\right.\in\mathbb{R}^s x:=[x1,x2,,xs]TRs 是输入向量。第一个隐藏层的输出表示为 H 1 ( x ) \mathcal{H}_1(\mathbf{x}) H1(x),通过使用 W 1 W_1 W1 b 1 b_1 b1 将激活函数应用于输入的仿射变换来定义。具体来说,我们有
H 1 ( x ) = σ ( W 1 x + b 1 ) , x ∈ R s \mathcal{H}_1(\mathbf{x})=\sigma(W_1\mathbf{x}+b_1),\quad\mathbf{x}\in\mathbb{R}^s H1(x)=σ(W1x+b1),xRs
其中 W 1 ∈ R d 1 × s W_1\in\mathbb{R}^{d_1\times s} W1Rd1×s b 1 ∈ R d 1 b_1 \in \mathbb{R}^{d_1} b1Rd1 。对于深度 D ≥ 3 D \ge 3 D3 的神经网络,第 ( i + 1 ) (i+1) (i+1) 个隐藏层的输出可以被识别为第 i i i 个隐藏层输出的递归函数,定义为
H i + 1 ( x ) : = σ ( W i + 1 H i ( x ) + b i + 1 ) , i = 1 , 2 , … , D − 2 \mathcal{H}_{i+1}(\mathrm{x}):=\sigma(W_{i+1}\mathcal{H}_i(\mathrm{x})+b_{i+1}),\quad i=1,2,\ldots,D-2 Hi+1(x):=σ(Wi+1Hi(x)+bi+1),i=1,2,,D2
最后,深度为 D 的神经网络的输出定义为
N D ( x ) : = W D H D − 1 ( x ) + b D \mathcal{N}_D(\mathbf{x}):=W_D\mathcal{H}_{D-1}(\mathbf{x})+b_D ND(x):=WDHD1(x)+bD
可训练网络参数集表示为 Θ : = { W i , b i } i = 1 D \Theta:=\{W_i,b_i\}_{i=1}^D Θ:={Wi,bi}i=1D,它由所有层的所有权重矩阵和偏差向量组成。

PINN定义

PINN 的损失函数由三个部分组成:PDE 损失、初始条件损失和边界条件损失。假设 N D \mathcal N_D ND 是一个要学习的深度神经网络,PINN的损失函数的三个分量定义如下:

  • PDE 的损失:
    L o s s P D E ( N D ) : = 1 N f ∑ i = 1 N f ∣ F ( N D ( t f i , x f i ) ) ∣ 2 , ( t f i , x f i ) ∈ ( 0 , T ] × Ω , Loss_{PDE}(\mathcal{N}_D):=\frac1{N_f}\sum_{i=1}^{N_f}|\mathcal{F}(\mathcal{N}_D(t_f^i,x_f^i))|^2,\quad(t_f^i,x_f^i)\in(0,T]\times\Omega, LossPDE(ND):=Nf1i=1NfF(ND(tfi,xfi))2,(tfi,xfi)(0,T]×Ω,

    其中, ( t f i , x f i ) (t_f^i,x_f^i) (tfi,xfi) 是从计算域中随机生成的采样点。

  • 初始条件损失:
    L o s s I ( N D ) : = 1 N 0 ∑ i = 1 N 0 ∣ L ( N D ( 0 , x 0 i ) ) ∣ 2 , x 0 i ∈ Ω Loss_I(\mathcal{N}_D):=\frac1{N_0}\sum_{i=1}^{N_0}|\mathcal{L}(\mathcal{N}_D(0,x_0^i))|^2,\quad x_0^i\in\Omega LossI(ND):=N01i=1N0L(ND(0,x0i))2,x0iΩ
    其中, x 0 i x_0^i x0i 是在初始条件上随机生成的采样点。

  • 边界条件损失:
    L o s s B ( N D ) : = 1 N b ∑ i = 1 N b ∣ B ( N D ( t b i , x b i ) ) ∣ 2 , ( t b i , x b i ) ∈ ( 0 , T ] × Γ Loss_B(\mathcal{N}_D):=\frac1{N_b}\sum_{i=1}^{N_b}\left|\mathcal{B}(\mathcal{N}_D(t_b^i,x_b^i))\right|^2,\quad(t_b^i,x_b^i)\in(0,T]\times\Gamma LossB(ND):=Nb1i=1Nb B(ND(tbi,xbi)) 2,(tbi,xbi)(0,T]×Γ
    其中, ( t b i , x b i ) (t_b^i,x_b^i) (tbi,xbi) 是从边界上随机生成的采样点。

于是,总的PINN损失如下:
L o s s ( N D ) : = L o s s P D E ( N D ) + L o s s I ( N D ) + L o s s B ( N D ) . Loss(\mathcal{N}_D):=Loss_{PDE}(\mathcal{N}_D)+Loss_I(\mathcal{N}_D)+Loss_B(\mathcal{N}_D). Loss(ND):=LossPDE(ND)+LossI(ND)+LossB(ND).
PINN 的主要思想是利用神经网络通过最小化损失函数(残差)来学习 PDE 的近似解。令 N D ( ∙ ) : = N D ( Θ ; ∙ ) \mathcal{N}_D(\bullet):= \mathcal{N}_D(\Theta;\bullet) ND():=ND(Θ;) 为具有深度 D D D 和网络参数 Θ \Theta Θ 的神经网络。为了获得PDE的近似解,PINN相对于网络参数 Θ \Theta Θ 最小化上式定义的损失函数,即
min ⁡ Θ L o s s ( N D ( Θ ; ∙ ) ) \min_\Theta Loss(\mathcal{N}_D(\Theta;\bullet)) ΘminLoss(ND(Θ;))

多级学习

可以通过定义一个深度为 k 1 k_1 k1 的神经网络 N k 1 \mathcal N_{k_1} Nk1 开始,其参数为 Θ 1 : = { W i 1 , b i 1 } i = 1 k 1 \Theta_1:=\{W^1_i,b^1_i\}_{i=1}^{k_1} Θ1:={Wi1,bi1}i=1k1。于是可以设置 u 1 = u 1 ( Θ 1 ; ∙ ) : = N k 1 ( Θ 1 ; ∙ ) u_1=u_1(\Theta_1;\bullet):=\mathcal{N}_{k_1}(\Theta_1;\bullet) u1=u1(Θ1;):=Nk1(Θ1;) 为 1 级神经网络。为了学习 1 级参数,可以对如下最小化问题求解:
min ⁡ Θ 1 L o s s ( u 1 ( Θ 1 ; ∙ ) ) \min_{\Theta_1}Loss(u_1(\Theta_1;\bullet)) Θ1minLoss(u1(Θ1;))
对上述最小化问题求解后,就得到了 1 级的近似解,表示为 u 1 ∗ = N k 1 ∗ : = N k 1 ( Θ 1 ∗ ; ∙ ) u_1^*=\mathcal{N}_{k_1}^*:=\mathcal{N}_{k_1}(\Theta_1^*;\bullet) u1=Nk1:=Nk1(Θ1;),其中 Θ 1 ∗ : = { W i 1 ∗ , b i 1 ∗ } i = 1 k 1 \Theta_1^*:=\{W_i^{1*},b_i^{1*}\}_{i=1}^{k_1} Θ1:={Wi1,bi1}i=1k1 是学习到的参数。于是近似解 u 1 u_1 u1 可以表示为:
u 1 ∗ ( x ) = W k 1 1 ∗ H k 1 − 1 1 ∗ ( x ) + b k 1 1 ∗ u_1^*(\mathbf{x})=W_{k_1}^{1*}\mathcal{H}_{k_1-1}^{1*}(\mathbf{x})+b_{k_1}^{1*} u1(x)=Wk11Hk111(x)+bk11
其中 H k 1 − 1 1 ∗ \mathcal{H}_{k_1-1}^{1*} Hk111 是没有输出层的网络 N k 1 1 ∗ \mathcal{N}_{k_1}^{1*} Nk11 W k 1 1 ∗ W_{k_1}^{1*} Wk11 表示连接最后一个隐藏层和输出层的权重矩阵, b k 1 1 ∗ b_{k_1}^{1*} bk11 表示相应的偏差向量。

接下来,就可以构建 2 级神经网络,用 u 2 u_2 u2 表示,它建立在 1 级神经网络之上,使用网络 N k 2 : = N k 2 ( Θ 2 ; ∙ ) \mathcal{N}_{k_2}:=\mathcal{N}_{k_2}(\Theta_2;\bullet) Nk2:=Nk2(Θ2;) ,参数 Θ 2 : = { W j 2 , b j 2 } j = 1 k 2 \Theta_2:=\{W^2_j,b^2_j\}_{j=1}^{k_2} Θ2:={Wj2,bj2}j=1k2。具体来说,就是首先删除 1 级的输出层,并将网络 N k 2 \mathcal{N}_{k_2} Nk2 堆叠在 1 级的最后一个隐藏层之上,以定义 2 级的神经网络。即,
u 2 = u 2 ( Θ 1 ; ∙ ) : = N k 2 ( Θ 2 ; ∙ ) ∘ H k 1 − 1 1 ∗ u_2=u_2(\Theta_1;\bullet):=\mathcal{N}_{k_2}(\Theta_2;\bullet)\circ\mathcal{H}_{k_1-1}^{1*} u2=u2(Θ1;):=Nk2(Θ2;)Hk111
其中“ ∘ \circ ”表示复合算子, H k 1 − 1 1 ∗ \mathcal{H}_{k_1-1}^{1*} Hk111 是没有输出层的网络 N k 1 1 ∗ \mathcal{N}_{k_1}^{1*} Nk11

在这里插入图片描述

2级神经网络的参数可以通过解决如下最小化问题来进行学习:
min ⁡ Θ 2 L o s s ( u 1 ∗ ( ∙ ) + u 2 ( Θ 2 ; ∙ ) ) \min_{\Theta_2}Loss(u_1^*(\bullet)+u_2(\Theta_2;\bullet)) Θ2minLoss(u1()+u2(Θ2;))
得到最优参数 Θ 2 ∗ : = { W j 2 ∗ , b j 2 ∗ } j = 1 k 2 \Theta_2^*:=\{W_j^{2*},b_j^{2*}\}_{j=1}^{k_2} Θ2:={Wj2,bj2}j=1k2 并定义:
u 2 ∗ : = u 2 ( Θ 2 ∗ ; ∙ ) = N k 2 ( Θ 2 ∗ ; ∙ ) ∘ H k 1 − 1 1 ∗ u_2^*:=u_2(\Theta_2^*;\bullet)=\mathcal{N}_{k_2}(\Theta_2^*;\bullet)\circ\mathcal{H}_{k_1-1}^{1*} u2:=u2(Θ2;)=Nk2(Θ2;)Hk111
值得注意的是, H k 1 − 1 1 ∗ \mathcal{H}_{k_1-1}^{1*} Hk111 在训练过程中是固定的,于是从上式中可以看出, u 2 ∗ u_2^* u2 学习了 1 级解 u 1 ∗ u_1^* u1 的残差,以更好地逼近偏微分方程的解。

于是可以通过重复上述过程来构造一个 ℓ + 1 \ell+1 +1 级的神经网络。假设对于 1 ≤ i ≤ ℓ 1 \le i \le \ell 1i,已经学习了 i i i 级的神经网络 u i u_i ui,可以使用参数为 Θ ℓ + 1 : = { W j ℓ + 1 , b j ℓ + 1 } j = 1 k ℓ + 1 \Theta_{\ell+1}:=\{W_j^{\ell+1},b_j^{\ell+1}\}_{j=1}^{k_{\ell+1}} Θ+1:={Wj+1,bj+1}j=1k+1 的神经网络 N k ℓ + 1 ( Θ ℓ + 1 ; ∙ ) \mathcal{N}_{k_{\ell+1}}(\Theta_{\ell+1};\bullet) Nk+1(Θ+1;) 定义 ℓ + 1 \ell+1 +1级神经网络 u ℓ + 1 u_{\ell+1} u+1,即
u ℓ + 1 ( Θ ℓ + 1 ; x ) : = ( N k ℓ + 1 ( Θ ℓ + 1 ; ∙ ) ∘ H k ℓ − 1 ℓ ∗ ∘ ⋯ ∘ H k 2 − 1 2 ∗ ∘ H k 1 − 1 1 ∗ ) ( x ) u_{\ell+1}(\Theta_{\ell+1};\mathbf{x}):=(\mathcal{N}_{k_{\ell+1}}(\Theta_{\ell+1};\bullet)\circ\mathcal{H}_{k_{\ell}-1}^{\ell*}\circ\cdots\circ\mathcal{H}_{k_2-1}^{2*}\circ\mathcal{H}_{k_1-1}^{1*})(\mathbf{x}) u+1(Θ+1;x):=(Nk+1(Θ+1;)Hk1Hk212Hk111)(x)
其中 H k i − 1 i ∗ \mathcal{H}_{k_i-1}^{i*} Hki1i 表示没有输出层的神经网络 N k i ∗ : = N k i ( Θ i ∗ ; ∙ ) \mathcal{N}_{k_i}^*:=\mathcal{N}_{k_i}(\Theta_i^*;\bullet) Nki:=Nki(Θi;),学习参数为 { W j i ∗ , b j i ∗ } j = 1 k i − 1 , i = 1 , 2 , … , ℓ . \{W_j^{\boldsymbol{i}*},b_j^{\boldsymbol{i}*}\}_{j=1}^{\boldsymbol{k}_i-1},i=1,2,\ldots,\ell. {Wji,bji}j=1ki1,i=1,2,,. 通过求解如下最小化问题可以得到 ℓ + 1 \ell+1 +1 级最优参数 Θ ℓ + 1 ∗ = { W j ℓ + 1 ∗ , b j ℓ + 1 ∗ } j = 1 k ℓ + 1 \Theta_{\ell+1}^*=\left.\{W_j^{\ell+1*},b_j^{\ell+1*}\}_{j=1}^{k_{\ell+1}}\right. Θ+1={Wj+1,bj+1}j=1k+1
min ⁡ Θ ℓ + 1 L o s s ( ∑ i = 1 ℓ u i ∗ ( ∙ ) + u ℓ + 1 ( Θ ℓ + 1 ; ∙ ) ) \min_{\Theta_{\ell+1}}Loss\left(\sum_{i=1}^{\ell}u_i^*(\bullet)+u_{\ell+1}(\Theta_{\ell+1};\bullet)\right) Θ+1minLoss(i=1ui()+u+1(Θ+1;))
然后可以令 u ℓ + 1 ∗ : = u ℓ + 1 ( Θ ℓ + 1 ∗ ; ∙ ) u_{\ell+1}^*:=u_{\ell+1}(\Theta_{\ell+1}^*;\bullet) u+1:=u+1(Θ+1;)。最后,通过对所有 ℓ + 1 \ell + 1 +1 个等级的近似值求和,可以得到神经网络
u ˉ ℓ + 1 ∗ : = ∑ i = 1 ℓ + 1 u i ∗ \bar{u}_{\ell+1}^*:=\sum_{i=1}^{\ell+1}u_i^* uˉ+1:=i=1+1ui

两阶段模型

前文中描述的学习策略涉及逐级学习的方法。随着级数的增加,需要学习的残差振荡变得更加明显。然而,由于每个等级的神经网络的层数相对较少(在稍后介绍的实验中通常少于 6 层),网络可能难以捕获底层残差振荡中包含的更复杂的模式。此外,MGDL 模型可能会陷入局部最小化器而错过全局最小化器。解决这些问题需要扩大优化器的搜索区域。为此,作者解冻了先前级和以前的一些训练过的网络的一些层并对它们进行重新训练,以提高生成的 DNN 解决方案的准确性。这个过程被称为训练的第二阶段。

下面描述第二阶段的训练。假设经过第一阶段的训练,已经构建了神经网络 u ˉ L ∗ : = ∑ i = 1 L u i ∗ \bar{u}_L^*:=\sum_{i=1}^Lu_i^* uˉL:=i=1Lui,其具有 L L L 级。其近似解 u L ∗ u^*_L uL 具有如下表达式:
u L ∗ ( x ) : = ( N k L ∗ ∘ H k L − 1 L − 1 ∗ ∘ ⋯ ∘ H k 2 − 1 2 ∗ ∘ H k 1 − 1 1 ∗ ) ( x ) u_L^*(\mathbf{x}):=(\mathcal{N}_{k_L}^*\circ\mathcal{H}_{k_L-1}^{L-1*}\circ\cdots\circ\mathcal{H}_{k_2-1}^{2*}\circ\mathcal{H}_{k_1-1}^{1*})(\mathbf{x}) uL(x):=(NkLHkL1L1Hk212Hk111)(x)
其中 N k L ∗ \mathcal{N}^*_{k_L} NkL L L L 级进行训练,其参数为 Θ L ∗ \Theta^*_L ΘL。可以解冻 u L ∗ u^*_L uL 的最后 k k k 层作为新的可训练层,其中 k > k L k \gt k_L k>kL。可以表示为:
Θ L , k : = { W j L , k , b j L , k } j = 1 k \Theta_{L,k}:=\{W_j^{L,k},b_j^{L,k}\}_{j=1}^k ΘL,k:={WjL,k,bjL,k}j=1k
可以使用符号 u ~ L : = u ~ L ( Θ L , k ; ∙ ) \widetilde{u}_L:=\widetilde{u}_L(\Theta_{L,k};\bullet) u L:=u L(ΘL,k;) 来表示通过解冻 u L ∗ u^*_L uL 最后 k k k 层并解决最小化问题而从 u L ∗ u^*_L uL 获得的神经网络
min ⁡ Θ L , k L o s s ( u ˉ L − 1 ∗ ( ∙ ) + u ~ L ( Θ L , k ; ∙ ) ) . \min_{\Theta_{L,k}}Loss(\bar{u}_{L-1}^*(\bullet)+\widetilde{u}_L(\Theta_{L,k};\bullet)). ΘL,kminLoss(uˉL1()+u L(ΘL,k;)).
可以使用 u L ∗ u^*_L uL k k k 层参数作为初始化来解决上述最小化问题,并获得新参数 Θ L , k ∗ \Theta^*_{L,k} ΘL,k。然后可以定义函数 u ~ L ∗ : = u ~ L ( Θ L , k ∗ ; ∙ ) \widetilde{u}_L^*:=\widetilde{u}_L(\Theta_{L,k}^*;\bullet) u L:=u L(ΘL,k;)。因此,第二阶段生成 PDE 的近似解,由下式给出
u a p p r : = u ˉ L − 1 ∗ + u ~ L ∗ u_{appr}:=\bar{u}_{L-1}^*+\widetilde{u}_L^* uappr:=uˉL1+u L
在这里插入图片描述

实验结果

作者将提出的 TS-MGDL 方法应用于 1D、2D 和 3D Burgers 方程的求解上并与单级方法进行了对比。

1D Burgers

u t ( t , x ) + u ( t , x ) u x ( t , x ) − 0.01 π u x x ( t , x ) = 0 , t ∈ ( 0 , 1 ] , x ∈ ( − 1 , 1 ) , u_t(t,x)+u(t,x)u_x(t,x)-\frac{0.01}\pi u_{xx}(t,x)=0,\quad t\in(0,1],x\in(-1,1), ut(t,x)+u(t,x)ux(t,x)π0.01uxx(t,x)=0,t(0,1],x(1,1),

初始条件与边界条件如下:
u ( 0 , x ) = − sin ⁡ ( π x ) , u ( t , − 1 ) = u ( t , 1 ) = 0 u(0,x)=-\sin(\pi x),\\ u(t,-1)=u(t,1)=0 u(0,x)=sin(πx),u(t,1)=u(t,1)=0
作者采用哈默斯利采样方法随机生成训练样本点。沿着边界,总共生成了 N b : = 80 N_b := 80 Nb:=80 个随机点。此外,根据初始条件生成 N 0 : = 120 N_0 := 120 N0:=120 个随机点。在内部区域 ( 0 , 1 ] × ( − 1 , 1 ) (0, 1] × (−1, 1) (0,1]×(1,1) 中,生成 N f : = 10 , 000 N_f := 10, 000 Nf:=10,000 个随机点。测试集由时空区域 [ 0 , 1 ] × [ − 1 , 1 ] [0, 1] × [−1, 1] [0,1]×[1,1] 均匀划分得到的网格点组成,测试点总数为 100 × 256 100×256 100×256

在这里插入图片描述

上表为作为对比的三个单级方法的神经网络设置

在这里插入图片描述

上表为对应的多级网络的设置,这里一共有三级。数字旁边的星号(*)表示第一阶段本级训练时,对应的权重参数固定为前年级训练的权重参数。

在这里插入图片描述

上表为多级网络的训练结果,可以看到,作者在不同级数设置了不同的学习率和epoch。

为早期等级设置更高的学习率,可以使网络快速学习基本(大规模)特征,并继续学习更复杂(小规模)特征。这可以加快训练过程并提高网络的整体准确性。而在更高等级使用较低的学习率有助于微调学习的表示并提高网络的准确性。在训练的第二阶段,使用低学习率使网络能够仔细调整这些表示以更好地适应训练数据,从而提高准确性。

同样,如果早期级数中的epoch数量太大,则可能会陷入不需要的局部最小值,这可能会导致后续等级的优化变得困难。在第一阶段的训练过程中,随着级数的提高,训练难度逐渐加大,epoch数也要相应增加。由于梯度下降通常在迭代开始时表现出损失更快的下降,因此可以通过在第一阶段为等级设置较少量的epoch来利用这一点来捕捉快速下降的阶段。另一方面,在第二阶段建议使用更多的epoch以实现增强的数值近似。

在这里插入图片描述

上表为多级网络和三个单级网络的对比。

在这里插入图片描述

上图为不同阶段结果的可视化。

在这里插入图片描述

误差的可视化。

在这里插入图片描述

上图为四个方法训练时的loss下降情况。

总结

本文针对PDE求解问题,通过设计多级神经网络结构,来让后续网络层学习先前网络层的误差,并设计了对应的两阶段训练方式。最后通过数值实验验证了其有效性。

可以看出来,作者是想模仿Res-Net的方法,但似乎只是更改网络结构带来的数值精度提高并不明显,所以又设计了二阶段训练方式。感觉可以增加对单级神经网络使用二阶段训练的实验作为对比,那样或许会更有说服力。目前本文还未公开代码,但文中说是用DeepXDE实现的。等他公开代码了我应该会来试一下,但感觉我对网络结构方面的研究没太大兴趣呢。

相关链接:

  • 原文:[2309.07401] Multi-Grade Deep Learning for Partial Differential Equations with Applications to the Burgers Equation (arxiv.org)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/130469.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android:自定义原生TimePickerDialog样式

效果图&#xff1a; 目标效果图&#xff1a; 原生效果&#xff1a; 实现&#xff1a; 首先是Dialog样式&#xff1a; <style name"TimePickerDialogStyle" parent"style/Theme.AppCompat.DayNight.Dialog.Alert"><item name"android:time…

Stretched mesh

https://www.particleincell.com/2015/stretched-mesh/

JavaScript入门——(5)函数

1、为什么需要函数 函数&#xff1a;function&#xff0c;是被设计为执行特定任务的代码块 说明&#xff1a;函数可以把具有相同或相似逻辑的代码“包裹”起来&#xff0c;通过函数调用执行这些被“包裹”的代码逻辑&#xff0c;有利于精简代码方便复用。 比如之前使用的ale…

大运新能源天津车展深度诠释品牌魅力 为都市人群打造理想车型

如今&#xff0c;新能源汽车行业发展潜力巨大&#xff0c;不断吸引无数车企入驻新能源汽车赛道&#xff0c;而赛道的持续紧缩也让一部分车企很难找到突破重围的机会。秉持几十年的造车经验&#xff0c;大运新能源凭借雄厚的品牌实力从一众车企中脱颖而出。从摩托车到重卡&#…

ThreeJS-3D教学五-材质

我们在ThreeJS-3D教学二&#xff1a;基础形状展示中有简单介绍过一些常用的材质&#xff0c;这次我们举例来具体看下效果&#xff1a; 代码是这样的&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&…

USB协议层数据格式

USB协议 1. 硬件拓扑结构2. 协议层2.1 字节/位传输顺序2.2 SYNC域2.3 包格式2.3.1 PID域2.3.2 令牌包(Token)2.3.3 数据包2.3.4 握手包 2.4 传输细节2.4.1 传输(Transfer)和事务(Transaction)2.4.2 过程(stage)和阶段(phase)2.4.3 批量传输2.4.4 中断传输2.4.5 实时传输2.4.6 控…

算法通过村第十三关-术数|青铜笔记|数字与数学

文章目录 前言数字统计专题符号统计阶乘0的个数 溢出问题整数反转字符串转整数回文数 进制专题七进制数进制转换 总结 前言 提示&#xff1a;生活是正着来生活&#xff0c;倒着去理解。 --戴维迈尔斯《社会心理学》 数学是学生时代掉头发的学科&#xff0c;那算法是毕业后掉头发…

【JavaScript】浅拷贝与深拷贝

引言 浅拷贝、深拷贝是对引用类型而言的。 引用类型的变量对应一个栈区地址&#xff0c;这个栈区地址处存储的值是存放的真正的数据的堆区地址。 基本数据类型的变量也对应一个栈区地址&#xff0c;但是该地址存储的是其真正的值。 let a b发生了什么&#xff1f; let obj…

怎么抓取淘宝商品详情数据?

抓取淘宝商品数据成为了众多企业和个人研究市场趋势、竞品分析、价格监控等目的的重要手段。本文将深入探讨如何抓取淘宝商品数据&#xff0c;以及涉及的法律和伦理问题。 一、抓取淘宝商品详情数据的方法 抓取淘宝商品数据的方法多种多样&#xff0c;其中最常见的包括&#…

途虎养车上市、京东养车“震虎”,如何突围汽车后市场?

“汽车后市场第一股”终于来了&#xff01; 赶在十一黄金周之前&#xff0c;途虎养车股份有限公司(09690.HK&#xff0c;下称“途虎养车”)于9月26日挂牌港交所&#xff0c;开盘价为28港元/股&#xff0c;与发行价持平&#xff1b;IPO首日报收29.50港元/股&#xff0c;涨幅5.3…

【gitlab】从其他仓库创建项目

需求描述 解决方法 以renren-fast脚手架为例 第一步 第二步 第三步 第四步 参考文章

【unity】制作一个角色的初始状态(左右跳二段跳)【2D横板动作游戏】

前言 hi~ 大家好&#xff01;欢迎大家来到我的全新unity学习记录系列。现在我想在2d横板游戏中&#xff0c;实现一个角色的初始状态-闲置状态、移动状态、空中状态。并且是利用状态机进行实现的。 本系列是跟着视频教程走的&#xff0c;所写也是作者个人的学习记录笔记。如有错…