论文阅读:When and why PINNs fail to train A neural tangent kernel perspective
When and why PINNs fail to train A neural tangent kernel perspective
PINN方法下NTK定义
Neural tangent kernel (NTK)
神经网络的训练过程中,参数更新公式如下:
θ
k
+
1
=
θ
k
−
η
∇
L
(
θ
k
)
\boldsymbol{\theta}_{k+1}=\boldsymbol{\theta}_k-\eta\nabla L(\boldsymbol{\theta}_k)
θk+1=θk−η∇L(θk)
其中,
θ
k
\boldsymbol{\theta}_{k}
θk 表示
k
k
k 时刻的神经网络参数,
η
\eta
η 表示学习率,
∇
L
(
θ
k
)
\nabla L(\boldsymbol{\theta}_k)
∇L(θk) 则表示神将网络在参数为
θ
k
\boldsymbol{\theta}_{k}
θk 时的损失的导数。对上式移项可得:
θ
k
+
1
−
θ
k
η
=
−
∇
L
(
θ
k
)
\frac{\boldsymbol{\theta}_{k+1}-\boldsymbol{\theta}_k}\eta=-\nabla L(\boldsymbol{\theta}_k)
ηθk+1−θk=−∇L(θk)
其中,左侧部分类似于一个导数的离散形式,因此,可以写成如下形式:
lim
η
→
0
θ
k
+
1
−
θ
k
η
=
d
θ
(
t
)
d
t
=
−
∇
L
(
θ
(
t
)
)
\lim_{\eta \rightarrow 0} \frac{\boldsymbol{\theta}_{k+1}-\boldsymbol{\theta}_k}\eta = \frac{d\boldsymbol{\theta}(t)}{dt}=-\nabla L(\boldsymbol{\theta}(t))
η→0limηθk+1−θk=dtdθ(t)=−∇L(θ(t))
也就是,当学习率无穷小时,神经网络参数的变化情况,也称为梯度流。
对于一般的神经网络,可以假设其损失函数如下:
L
(
θ
)
=
1
2
∥
y
(
θ
)
−
y
ˉ
∥
2
2
L(\boldsymbol{\theta})=\frac 1 2 \|\boldsymbol{y}(\boldsymbol{\theta})-\bar{\boldsymbol{y}}\|_2^2
L(θ)=21∥y(θ)−yˉ∥22
其中,
y
(
θ
)
\boldsymbol{y}(\boldsymbol{\theta})
y(θ) 为网络输出,
y
ˉ
\bar{\boldsymbol{y}}
yˉ 为真解,
1
2
\frac 1 2
21 为避免求导产生常数项。于是可以将上式转换如下:
d
θ
(
t
)
d
t
=
−
∇
y
(
θ
)
(
y
(
θ
)
−
y
ˉ
)
\frac{d\boldsymbol{\theta}(t)}{dt} =-\nabla\boldsymbol{y}(\boldsymbol{\theta})(\boldsymbol{y}(\boldsymbol{\theta})-\bar{\boldsymbol{y}})
dtdθ(t)=−∇y(θ)(y(θ)−yˉ)
此时,可以得到:
d
y
(
t
)
d
t
=
∇
y
(
θ
)
T
d
θ
(
t
)
d
t
=
−
∇
y
(
θ
)
T
∇
y
(
θ
)
(
y
(
θ
)
−
y
ˉ
)
\frac{d\boldsymbol{y}(t)}{dt}= \nabla\boldsymbol{y}(\boldsymbol{\theta})^T\frac{d\boldsymbol{\theta}(t)}{dt}= -\color {red} {\nabla}\boldsymbol{y}(\boldsymbol{\theta})^T\nabla\boldsymbol{y}(\boldsymbol{\theta})\color {black}(\boldsymbol{y}(\boldsymbol{\theta})-\bar{\boldsymbol{y}})
dtdy(t)=∇y(θ)Tdtdθ(t)=−∇y(θ)T∇y(θ)(y(θ)−yˉ)
观察上式红色的部分,这部分可以写成一个矩阵的形式,以
H
(
θ
)
\boldsymbol{H}(\boldsymbol{\theta})
H(θ) 来表示,称之为神经正切核(NTK):
d
y
(
t
)
d
t
=
−
H
(
θ
)
(
y
(
θ
)
−
y
ˉ
)
\frac{d\boldsymbol{y}(t)}{dt}= -\boldsymbol{H}(\boldsymbol{\theta}) (\boldsymbol{y}(\boldsymbol{\theta})-\bar{\boldsymbol{y}})
dtdy(t)=−H(θ)(y(θ)−yˉ)
可以看到,神经网络的训练过程变成了一个线性常微分方程的形式。同时,已经有人证明了,当网络足够宽时,模型输出的雅可比矩阵不会随着训练过程发生变化,也就是说:
∇
y
(
θ
(
t
)
)
≈
∇
y
(
θ
0
)
⟹
H
(
w
(
t
)
)
≈
H
(
θ
0
)
\nabla\boldsymbol{y}(\boldsymbol{\theta}(t))\approx\nabla\boldsymbol{y}(\boldsymbol{\theta}_0)\implies\boldsymbol{H}(\boldsymbol{w}(t))\approx\boldsymbol{H}(\boldsymbol{\theta}_0)
∇y(θ(t))≈∇y(θ0)⟹H(w(t))≈H(θ0)
对于一个足够宽的神经网络,其神经正切核将不会随着训练而改变。
PINN中的NTK
在PINN中,同样有下式:
d
θ
(
t
)
d
t
=
−
∇
L
(
θ
(
t
)
)
\frac{d\boldsymbol{\theta}(t)}{dt}=-\nabla L(\boldsymbol{\theta}(t))
dtdθ(t)=−∇L(θ(t))
令
u
(
t
)
=
u
(
x
b
,
θ
(
t
)
)
=
{
u
(
x
b
i
,
θ
(
t
)
)
}
i
=
1
N
b
u(t)=u(\boldsymbol{x}_b,\boldsymbol{\theta}(t))=\{u(\boldsymbol{x}_b^i,\boldsymbol{\theta}(t))\}_{i=1}^{N_b}
u(t)=u(xb,θ(t))={u(xbi,θ(t))}i=1Nb ,同时
L
u
(
t
)
=
L
u
(
x
r
,
θ
(
t
)
)
=
{
L
u
(
x
r
,
θ
(
t
)
)
}
i
=
1
N
r
\mathcal{L}u(t)=\mathcal{L}u(\boldsymbol{x}_r,\boldsymbol{\theta}(t))=\{\mathcal{L}u(\boldsymbol{x}_r,\boldsymbol{\theta}(t))\}_{i=1}^{N_r}
Lu(t)=Lu(xr,θ(t))={Lu(xr,θ(t))}i=1Nr ,于是可以得到如下结果:
[
d
u
(
x
b
,
θ
(
t
)
)
d
t
d
L
u
(
x
r
,
θ
(
t
)
)
d
t
]
=
−
[
K
u
u
(
t
)
K
u
r
(
t
)
K
r
u
(
t
)
K
r
r
(
t
)
]
⋅
[
u
(
x
b
,
θ
(
t
)
)
−
g
(
x
b
)
L
u
(
x
r
,
θ
(
t
)
)
−
f
(
x
r
)
]
\begin{bmatrix}\frac{du(\boldsymbol{x}_b,\boldsymbol{\theta}(t))}{dt}\\\frac{d\mathcal{L}u(\boldsymbol{x}_r,\boldsymbol{\theta}(t))}{dt}\end{bmatrix}=-\begin{bmatrix}\boldsymbol{K}_{u\boldsymbol{u}}(t)&\boldsymbol{K}_{u\boldsymbol{r}}(t)\\\boldsymbol{K}_{r\boldsymbol{u}}(t)&\boldsymbol{K}_{r\boldsymbol{r}}(t)\end{bmatrix}\cdot\begin{bmatrix}u(\boldsymbol{x}_b,\boldsymbol{\theta}(t))-g(\boldsymbol{x}_b)\\\mathcal{L}u(\boldsymbol{x}_r,\boldsymbol{\theta}(t))-f(\boldsymbol{x}_r)\end{bmatrix}
[dtdu(xb,θ(t))dtdLu(xr,θ(t))]=−[Kuu(t)Kru(t)Kur(t)Krr(t)]⋅[u(xb,θ(t))−g(xb)Lu(xr,θ(t))−f(xr)]
其中,
K
r
u
(
t
)
=
K
u
r
T
(
t
)
\boldsymbol{K}_{ru}(t)=\boldsymbol{K}_{\boldsymbol{u}r}^T(t)
Kru(t)=KurT(t) ,
K
u
u
(
t
)
∈
R
N
b
×
N
b
,
K
u
r
(
t
)
∈
R
N
b
×
N
r
,
K
r
r
(
t
)
∈
R
N
r
×
N
r
\boldsymbol{K}_{uu}(t)\in\mathbb{R}^{N_b\times N_b},\boldsymbol{K}_{ur}(t)\in\mathbb{R}^{N_b\times N_r},\boldsymbol{K}_{rr}(t)\in\mathbb{R}^{N_r\times N_r}
Kuu(t)∈RNb×Nb,Kur(t)∈RNb×Nr,Krr(t)∈RNr×Nr ,其第
i
,
j
i,j
i,j 个元素可表示如下:
(
K
u
u
)
i
j
(
t
)
=
⟨
d
u
(
x
b
i
,
θ
(
t
)
)
d
θ
,
d
u
(
x
b
j
,
θ
(
t
)
)
d
θ
⟩
(
K
u
r
)
i
j
(
t
)
=
⟨
d
u
(
x
b
i
,
θ
(
t
)
)
d
θ
,
d
L
u
(
x
r
j
,
θ
(
t
)
)
d
θ
⟩
(
K
r
r
)
i
j
(
t
)
=
⟨
d
L
(
x
r
i
,
θ
(
t
)
)
d
θ
,
d
L
(
x
r
j
,
θ
(
t
)
)
d
θ
⟩
\begin{aligned} (\boldsymbol{K}_{uu})_{ij}(t)&=\left\langle\frac{du(\boldsymbol{x}_b^i,\boldsymbol{\theta}(t))}{d\boldsymbol{\theta}},\frac{du(\boldsymbol{x}_b^j,\boldsymbol{\theta}(t))}{d\boldsymbol{\theta}}\right\rangle\\(\boldsymbol{K}_{ur})_{ij}(t)&=\left\langle\frac{du(\boldsymbol{x}_b^i,\boldsymbol{\theta}(t))}{d\boldsymbol{\theta}},\frac{d\mathcal{L}u(\boldsymbol{x}_r^j,\boldsymbol{\theta}(t))}{d\boldsymbol{\theta}}\right\rangle\\(\boldsymbol{K}_{rr})_{ij}(t)&=\left\langle\frac{d\mathcal{L}(\boldsymbol{x}_r^i,\boldsymbol{\theta}(t))}{d\boldsymbol{\theta}},\frac{d\mathcal{L}(\boldsymbol{x}_r^j,\boldsymbol{\theta}(t))}{d\boldsymbol{\theta}}\right\rangle \end{aligned}
(Kuu)ij(t)(Kur)ij(t)(Krr)ij(t)=⟨dθdu(xbi,θ(t)),dθdu(xbj,θ(t))⟩=⟨dθdu(xbi,θ(t)),dθdLu(xrj,θ(t))⟩=⟨dθdL(xri,θ(t)),dθdL(xrj,θ(t))⟩
其中,
⟨
⋅
,
⋅
⟩
\left\langle \cdot,\cdot \right\rangle
⟨⋅,⋅⟩ 表示
θ
\theta
θ 中所有神经网络参数的内积。例如,
(
K
u
u
)
i
j
(
t
)
=
∑
θ
∈
θ
d
u
(
x
b
i
,
θ
(
t
)
)
d
θ
⋅
d
u
(
x
b
j
,
θ
(
t
)
)
d
θ
(\boldsymbol{K}_{uu})_{ij}(t)=\sum_{\theta\in\boldsymbol{\theta}}\frac{du(\boldsymbol{x}_b^i,\boldsymbol{\theta}(t))}{d\theta}\cdot\frac{du(\boldsymbol{x}_b^j,\boldsymbol{\theta}(t))}{d\theta}
(Kuu)ij(t)=θ∈θ∑dθdu(xbi,θ(t))⋅dθdu(xbj,θ(t))
下文将使用
K
(
t
)
\boldsymbol{K}(t)
K(t) 来表示矩阵
[
K
u
u
(
t
)
K
u
r
(
t
)
K
r
u
(
t
)
K
r
r
(
t
)
]
\begin{bmatrix}\boldsymbol{K}_{\boldsymbol{uu}}(t)&\boldsymbol{K_{ur}}(t)\\\boldsymbol{K_{ru}}(t)&\boldsymbol{K_{rr}}(t)\end{bmatrix}
[Kuu(t)Kru(t)Kur(t)Krr(t)] ,也就是PINN的神经正切核(NTK)。值得注意的是,
K
u
u
,
K
r
r
\boldsymbol{K}_{\boldsymbol{uu}},\boldsymbol{K}_{\boldsymbol{rr}}
Kuu,Krr 以及
K
(
t
)
\boldsymbol{K}(t)
K(t) 均为半正定矩阵。事实上,令
J
u
(
t
)
J_{u}(t)
Ju(t) 和
J
r
(
t
)
J_{r}(t)
Jr(t) 分别为
u
(
t
)
u(t)
u(t) 和
L
u
(
t
)
\mathcal Lu(t)
Lu(t) 关于
θ
\theta
θ 的雅可比矩阵。然后,可以观察到
K
u
u
(
t
)
=
J
u
(
t
)
J
u
T
(
t
)
,
K
r
r
(
t
)
=
J
r
(
t
)
J
r
T
(
t
)
,
K
(
t
)
=
[
J
u
(
t
)
J
r
(
t
)
]
[
J
u
T
(
t
)
,
J
r
T
(
t
)
]
.
\boldsymbol{K}_{uu}(t)=\boldsymbol{J}_u(t)\boldsymbol{J}_u^T(t),\quad\boldsymbol{K}_{rr}(t)=\boldsymbol{J}_r(t)\boldsymbol{J}_r^T(t),\quad\boldsymbol{K}(t)=\begin{bmatrix}\boldsymbol{J}_u(t)\\\boldsymbol{J}_r(t)\end{bmatrix}\begin{bmatrix}\boldsymbol{J}_u^T(t),\boldsymbol{J}_r^T(t)\end{bmatrix}.
Kuu(t)=Ju(t)JuT(t),Krr(t)=Jr(t)JrT(t),K(t)=[Ju(t)Jr(t)][JuT(t),JrT(t)].
PINN方法下NTK分析
对于PINN方法下的NTK,作者证明了如下结论:
假设激活函数
σ
\sigma
σ 是平滑的并且具有有界二阶导数
σ
¨
\ddot \sigma
σ¨。然后对于只有一个隐藏层的全连接神经网络,当
N
→
∞
N \rightarrow \infty
N→∞ 时
u
(
x
,
θ
)
→
D
G
P
(
0
,
Σ
(
1
)
(
x
,
x
′
)
)
u
x
x
(
x
,
θ
)
→
D
G
P
(
0
,
Σ
x
x
(
1
)
(
x
,
x
′
)
)
,
\begin{aligned}&u(x,\boldsymbol{\theta})\xrightarrow{\mathcal{D}}\mathcal{GP}(0,\Sigma^{(1)}(x,x^{\prime}))\\&u_{xx}(x,\boldsymbol{\theta})\xrightarrow{\mathcal{D}}\mathcal{GP}(0,\Sigma_{xx}^{(1)}(x,x^{\prime})),\end{aligned}
u(x,θ)DGP(0,Σ(1)(x,x′))uxx(x,θ)DGP(0,Σxx(1)(x,x′)),
其中,
D
\mathcal{D}
D 表示分布收敛于。同时,
Σ
x
x
(
1
)
(
x
,
x
′
)
=
E
u
,
v
∼
N
(
0
,
1
)
[
u
4
σ
¨
(
u
x
+
v
)
σ
¨
(
u
x
′
+
v
)
]
.
\Sigma_{xx}^{(1)}(x,x')=\mathbb{E}_{u,v\sim\mathcal{N}(0,1)}\Big[u^4\ddot{\sigma}(ux+v)\ddot{\sigma}(ux'+v)\Big].
Σxx(1)(x,x′)=Eu,v∼N(0,1)[u4σ¨(ux+v)σ¨(ux′+v)].
上述定理证明,在PINN方法中,足够宽的神经网络会在初始化时的函数值和PDE残差之间引入联合高斯过程,这与普通神经网络的表现一致。
同时,作者还证明了,对于初始化时只有一个隐藏层的PINN,当
N
→
∞
N \rightarrow \infty
N→∞ 时,PINN的 NTK
K
(
t
)
\boldsymbol{K}(t)
K(t) 概率收敛于确定性限制核,即
K
(
0
)
=
[
K
u
u
(
0
)
K
u
r
(
0
)
K
r
u
(
0
)
K
r
r
(
0
)
]
→
[
Θ
u
u
(
1
)
Θ
u
r
(
1
)
Θ
r
u
(
1
)
Θ
r
r
(
1
)
]
:
=
K
∗
\boldsymbol{K}(0)=\begin{bmatrix}\boldsymbol{K}_{u\boldsymbol{u}}(0)&\boldsymbol{K}_{u\boldsymbol{r}}(0)\\\boldsymbol{K}_{r\boldsymbol{u}}(0)&\boldsymbol{K}_{r\boldsymbol{r}}(0)\end{bmatrix}\to\begin{bmatrix}\Theta_{\boldsymbol{u}\boldsymbol{u}}^{(1)}&\Theta_{\boldsymbol{u}\boldsymbol{r}}^{(1)}\\\Theta_{r\boldsymbol{u}}^{(1)}&\Theta_{r\boldsymbol{r}}^{(1)}\end{bmatrix}:=\boldsymbol{K}^*
K(0)=[Kuu(0)Kru(0)Kur(0)Krr(0)]→[Θuu(1)Θru(1)Θur(1)Θrr(1)]:=K∗
另外,作者也证明了:
存在常数
C
>
0
C \gt 0
C>0,使得网络的所有参数一致有界于
t
∈
T
t \in T
t∈T , 即:
sup
t
∈
[
0
,
T
]
∥
θ
(
t
)
∥
∞
≤
C
\sup_{t\in[0,T]}\|\boldsymbol{\theta}(t)\|_\infty\leq C
t∈[0,T]sup∥θ(t)∥∞≤C
存在一个常数
C
>
0
C \gt 0
C>0 使得:
∫
0
T
∣
∑
i
=
1
N
b
(
u
(
x
b
i
,
θ
(
τ
)
)
−
g
(
x
b
i
)
)
∣
d
τ
≤
C
∫
0
T
∣
∑
i
=
1
N
r
(
u
x
x
(
x
r
i
,
θ
(
τ
)
)
−
f
(
x
r
i
)
)
∣
d
τ
≤
C
\begin{gathered} \int_0^T\left|\sum_{i=1}^{N_b}\left(u(x_b^i,\boldsymbol{\theta}(\tau))-g(x_b^i)\right)\right|d\tau\leq C \\ \int_0^T\left|\sum_{i=1}^{N_r}\left(u_{xx}(x_r^i,\boldsymbol{\theta}(\tau))-f(x_r^i)\right)\right|d\tau\leq C \end{gathered}
∫0T
i=1∑Nb(u(xbi,θ(τ))−g(xbi))
dτ≤C∫0T
i=1∑Nr(uxx(xri,θ(τ))−f(xri))
dτ≤C
假设激活函数
σ
\sigma
σ 是平滑的并且
∣
σ
(
k
)
∣
≤
C
,
k
=
0
,
1
,
2
,
3
,
4
|\sigma(k)| \le C,k = 0, 1, 2, 3, 4
∣σ(k)∣≤C,k=0,1,2,3,4,其中
σ
(
k
)
\sigma(k)
σ(k) 表示
σ
\sigma
σ 的
k
k
k 阶导数,可以得到:
lim
N
→
∞
sup
t
∈
[
0
,
T
]
∥
K
(
t
)
−
K
(
0
)
∥
2
=
0
\lim_{N\to\infty}\sup_{t\in[0,T]}\|\boldsymbol{K}(t)-\boldsymbol{K}(0)\|_2=0
N→∞limt∈[0,T]sup∥K(t)−K(0)∥2=0
结合上式,可以得到:
K
(
t
)
≈
K
(
0
)
≈
K
∗
,
∀
t
K(t)\approx K(0)\approx K^*,\quad\forall t
K(t)≈K(0)≈K∗,∀t
这意味着PINN中,当神经网络足够宽的时候,正切核也基本不会发生变化。由于正切核在训练中几乎不发生变化,因此可以将训练过程写成如下形式:
[
d
u
(
x
b
,
θ
(
t
)
)
d
t
d
u
x
x
(
x
r
,
θ
(
t
)
)
d
t
]
≈
−
K
(
0
)
[
u
(
x
b
,
θ
(
t
)
)
−
g
(
x
b
)
u
x
x
(
x
r
,
θ
(
t
)
)
−
f
(
x
r
)
]
\begin{bmatrix}\frac{du(\boldsymbol{x}_b,\boldsymbol{\theta}(t))}{dt}\\\frac{d\boldsymbol{u}_{xx}(\boldsymbol{x}_r,\boldsymbol{\theta}(t))}{dt}\end{bmatrix}\approx-\boldsymbol{K}(0)\begin{bmatrix}u(\boldsymbol{x}_b,\boldsymbol{\theta}(t))-g(\boldsymbol{x}_b)\\u_{xx}(\boldsymbol{x}_r,\boldsymbol{\theta}(t))-f(\boldsymbol{x}_r)\end{bmatrix}
[dtdu(xb,θ(t))dtduxx(xr,θ(t))]≈−K(0)[u(xb,θ(t))−g(xb)uxx(xr,θ(t))−f(xr)]
或者:
[
d
u
(
x
b
,
θ
(
t
)
)
d
t
d
u
x
x
(
x
r
,
θ
(
t
)
)
d
t
]
≈
(
I
−
e
−
K
(
0
)
t
)
⋅
[
g
(
x
b
)
f
(
x
r
)
]
\begin{bmatrix}\frac{du(\boldsymbol{x}_b,\boldsymbol{\theta}(t))}{dt}\\\frac{d\boldsymbol{u}_{xx}(\boldsymbol{x}_r,\boldsymbol{\theta}(t))}{dt}\end{bmatrix}\approx\left(I-e^{-\boldsymbol{K}(0)t}\right)\cdot\begin{bmatrix}g(\boldsymbol{x}_b)\\f(\boldsymbol{x}_r)\end{bmatrix}
[dtdu(xb,θ(t))dtduxx(xr,θ(t))]≈(I−e−K(0)t)⋅[g(xb)f(xr)]
同时,由于正切核是半正定矩阵,因此可以将其分解为
K
(
0
)
=
Q
T
Λ
Q
\boldsymbol{K}(0)=Q^T\Lambda Q
K(0)=QTΛQ 的形式。于是上式可以改写为:
[
d
u
(
x
b
,
θ
(
t
)
)
d
t
d
u
x
x
(
x
r
,
θ
(
t
)
)
d
t
]
−
[
g
(
x
b
)
f
(
x
r
)
]
≈
(
I
−
e
−
K
(
0
)
t
)
⋅
[
g
(
x
b
)
f
(
x
r
)
]
−
[
g
(
x
b
)
f
(
x
r
)
]
≈
−
Q
T
e
−
Λ
t
Q
⋅
[
g
(
x
b
)
f
(
x
r
)
]
\begin{aligned} \begin{bmatrix}\frac{du(\boldsymbol{x}_b,\boldsymbol{\theta}(t))}{dt}\\\frac{du_{x\boldsymbol{x}}(\boldsymbol{x}_r,\boldsymbol{\theta}(t))}{dt}\end{bmatrix}-\begin{bmatrix}g(\boldsymbol{x}_b)\\f(\boldsymbol{x}_r)\end{bmatrix}& \approx\left(I-e^{-\boldsymbol{K}(0)t}\right)\cdot\begin{bmatrix}g(\boldsymbol{x}_b)\\f(\boldsymbol{x}_r)\end{bmatrix}-\begin{bmatrix}g(\boldsymbol{x}_b)\\f(\boldsymbol{x}_r)\end{bmatrix} \\ &\approx-\boldsymbol{Q}^Te^{-\boldsymbol{\Lambda}t}\boldsymbol{Q}\cdot\begin{bmatrix}g(\boldsymbol{x}_b)\\f(\boldsymbol{x}_r)\end{bmatrix} \end{aligned}
[dtdu(xb,θ(t))dtduxx(xr,θ(t))]−[g(xb)f(xr)]≈(I−e−K(0)t)⋅[g(xb)f(xr)]−[g(xb)f(xr)]≈−QTe−ΛtQ⋅[g(xb)f(xr)]
上式等价于:
Q
(
[
d
u
(
x
b
,
θ
(
t
)
)
d
t
d
u
x
x
(
x
r
,
θ
(
t
)
)
d
t
]
−
[
g
(
x
b
)
f
(
x
r
)
]
)
≈
−
e
−
Λ
t
Q
⋅
[
g
(
x
b
)
f
(
x
r
)
]
Q\left(\begin{bmatrix}\frac{du(\boldsymbol{x}_b,\boldsymbol{\theta}(t))}{dt}\\\frac{d\boldsymbol{u}_{xx}(\boldsymbol{x}_r,\boldsymbol{\theta}(t))}{dt}\end{bmatrix}-\begin{bmatrix}g(\boldsymbol{x}_b)\\f(\boldsymbol{x}_r)\end{bmatrix}\right)\approx-e^{-\boldsymbol{\Lambda}t}Q\cdot\begin{bmatrix}g(\boldsymbol{x}_b)\\f(\boldsymbol{x}_r)\end{bmatrix}
Q([dtdu(xb,θ(t))dtduxx(xr,θ(t))]−[g(xb)f(xr)])≈−e−ΛtQ⋅[g(xb)f(xr)]
可以看出,上式中左侧的第
i
i
i 个分量将以大约
e
−
λ
i
t
e^{−λ_it}
e−λit 的速率衰减。换句话说,内核的特征值表征了绝对训练误差下降的速度。特别是,与具有较大特征值的核特征向量相对应的目标函数的分量将被更快地学习。对于全连接网络,NTK 矩阵较高特征值对应的特征向量通常表现出较低的频率。
更一般地,梯度下降
t
t
t 步后 PINN 的 NTK 由下式给出:
K
(
t
)
=
[
K
u
u
(
t
)
K
u
r
(
t
)
K
r
u
(
t
)
K
r
r
(
t
)
]
=
[
J
u
(
t
)
J
r
(
t
)
]
[
J
u
T
(
t
)
,
J
r
T
(
t
)
]
=
J
(
t
)
J
T
(
t
)
\boldsymbol{K}(t)=\begin{bmatrix}\boldsymbol{K}_{uu}(t)&\boldsymbol{K}_{ur}(t)\\\boldsymbol{K}_{ru}(t)&\boldsymbol{K}_{rr}(t)\end{bmatrix}=\begin{bmatrix}\boldsymbol{J}_u(t)\\\boldsymbol{J}_r(t)\end{bmatrix}\begin{bmatrix}\boldsymbol{J}_u^T(t),\boldsymbol{J}_r^T(t)\end{bmatrix}=\boldsymbol{J}(t)\boldsymbol{J}^T(t)
K(t)=[Kuu(t)Kru(t)Kur(t)Krr(t)]=[Ju(t)Jr(t)][JuT(t),JrT(t)]=J(t)JT(t)
∑ i = 1 N b + N r λ i ( t ) = T r ( K ( t ) ) = T r ( J ( t ) J T ( t ) ) = T r ( J T ( t ) J ( t ) ) = T r ( J u T ( t ) J u ( t ) + J r T ( t ) J r ( t ) ) = T r ( J u ( t ) J u T ( t ) ) + T r ( J r ( t ) J r T ( t ) ) = ∑ i = 1 N b λ i u u ( t ) + ∑ i = 1 N r λ i r r ( t ) \begin{aligned} \sum_{i=1}^{N_b+N_r}\lambda_i(t)& =Tr\left(\boldsymbol{K}(t)\right)=Tr\left(\boldsymbol{J}(t)\boldsymbol{J}^T(t)\right)=Tr\left(\boldsymbol{J}^T(t)\boldsymbol{J}(t)\right) \\ &=Tr\left(\boldsymbol{J}_u^T(t)\boldsymbol{J}_u(t)+\boldsymbol{J}_r^T(t)\boldsymbol{J}_r(t)\right)=Tr\left(\boldsymbol{J}_u(t)\boldsymbol{J}_u^T(t)\right)+Tr\left(\boldsymbol{J}_r(t)\boldsymbol{J}_r^T(t)\right) \\ &=\sum_{i=1}^{N_b}\lambda_i^{\boldsymbol{u}\boldsymbol{u}}(t)+\sum_{i=1}^{N_r}\lambda_i^{r\boldsymbol{r}}(t) \end{aligned} i=1∑Nb+Nrλi(t)=Tr(K(t))=Tr(J(t)JT(t))=Tr(JT(t)J(t))=Tr(JuT(t)Ju(t)+JrT(t)Jr(t))=Tr(Ju(t)JuT(t))+Tr(Jr(t)JrT(t))=i=1∑Nbλiuu(t)+i=1∑Nrλirr(t)
其中, λ i ( t ) , λ i u u ( t ) , λ i r r ( t ) \lambda_i(t),\lambda_i^{\boldsymbol{u}\boldsymbol{u}}(t),\lambda_i^{\boldsymbol{r}\boldsymbol{r}}(t) λi(t),λiuu(t),λirr(t) 分别表示 K ( t ) , K u u ( t ) , K r r ( t ) \boldsymbol{K}(t),\boldsymbol{K}_{uu}(t),\boldsymbol{K}_{rr}(t) K(t),Kuu(t),Krr(t) 的特征值。这表明总训练误差的整体收敛速度由 K u u \boldsymbol{K}_{uu} Kuu 和 K r r \boldsymbol{K}_{rr} Krr 的特征值共同表征。同时, u ( x b , θ ) u(x_b,\boldsymbol{\theta}) u(xb,θ) 和 u x x ( x r , θ ) u_{xx}(x_r,\boldsymbol{\theta}) uxx(xr,θ) 的单独训练误差分别由 K u u \boldsymbol{K}_{uu} Kuu 和 K r r \boldsymbol{K}_{rr} Krr 的特征值决定。上述观察促使作者给出以下定义:
对于正半定核矩阵
K
∈
R
n
×
n
K\in\mathbb{R}^{n\times n}
K∈Rn×n,平均收敛速度
c
c
c 定义为其所有特征值
λ
i
λ_i
λi 的平均值,即
c
=
∑
i
=
1
n
λ
i
n
=
T
r
(
K
)
n
c=\frac{\sum_{i=1}^n\lambda_i}n=\frac{Tr(K)}n
c=n∑i=1nλi=nTr(K)
特别地,对于任意两个分别具有平均收敛速度
c
1
c_1
c1 和
c
2
c_2
c2 的核矩阵
K
1
,
K
2
\boldsymbol{K}_{1},\boldsymbol{K}_{2}
K1,K2 ,如果
c
1
≫
c
2
c_1\gg c_2
c1≫c2 ,则可以说
K
1
\boldsymbol{K}_{1}
K1 支配
K
2
\boldsymbol{K}_{2}
K2 。
上图为作者在一维泊松问题上用具有100个神经元的单隐层神经网络进行的试验,从图中可以观察到 PINN 的 NTK 特征值快速衰减。这导致目标函数高频分量的收敛速度极其缓慢。因此作者认为,PINN 也受到光谱偏差的影响。此外,对于不同频率的函数(不同的 a a a), K \boldsymbol{K} K 的特征值分布看起来相似,这可以启发性地解释 PINN 倾向于几乎同时学习所有频率,如 Lu 等人所观察到的
这里的另一个关键观察结果是, K r r \boldsymbol{K}_{rr} Krr 的特征值远大于 K u u \boldsymbol{K}_{uu} Kuu ,即, K r r \boldsymbol{K}_{rr} Krr 支配 K u u \boldsymbol{K}_{uu} Kuu 。因此,PDE 残差的收敛速度比拟合 PDE 边界条件的速度快得多,这可能会阻止网络逼近正确的解。根据作者的经验,高频函数通常会导致 K r r \boldsymbol{K}_{rr} Krr 的特征值较高,但在某些情况下 K u u \boldsymbol{K}_{uu} Kuu 可以主导 K r r \boldsymbol{K}_{rr} Krr 。作者认为 K u u \boldsymbol{K}_{uu} Kuu 和 K r r \boldsymbol{K}_{rr} Krr 之间的这种差异是 PINN 经常无法训练和产生准确预测的关键根本原因之一。
损失加权方法
根据上文分析,
K
r
r
\boldsymbol{K}_{rr}
Krr 的特征值远大于
K
u
u
\boldsymbol{K}_{uu}
Kuu ,这可能会阻止网络逼近正确的解。因此,可以根据NTK理论来为损失函数动态加权,损失函数可以表示如下:
L
(
θ
)
=
L
b
(
θ
)
+
L
r
(
θ
)
=
λ
b
2
N
b
∑
i
=
1
N
b
∣
u
(
x
b
i
,
θ
)
−
g
(
x
b
i
)
∣
2
+
λ
r
2
N
r
∑
i
=
1
N
r
∣
r
(
x
r
i
,
θ
)
∣
2
\begin{aligned} \mathcal{L}(\boldsymbol{\theta})& =\mathcal{L}_b(\boldsymbol{\theta})+\mathcal{L}_r(\boldsymbol{\theta}) \\ &=\frac{\lambda_b}{2N_b}\sum_{i=1}^{N_b}|u(x_b^i,\boldsymbol{\theta})-g(x_b^i)|^2+\frac{\lambda_r}{2N_r}\sum_{i=1}^{N_r}|r(x_r^i,\boldsymbol{\theta})|^2 \end{aligned}
L(θ)=Lb(θ)+Lr(θ)=2Nbλbi=1∑Nb∣u(xbi,θ)−g(xbi)∣2+2Nrλri=1∑Nr∣r(xri,θ)∣2
其中,
λ
b
\lambda_b
λb和
λ
r
\lambda_r
λr 是一些超参数,可以在训练期间利用反向传播梯度统计数据手动或自动调整。这里,训练数据
{
x
b
i
,
g
(
x
b
i
)
}
i
=
1
N
b
\{x_b^i,g(x_b^i)\}_{i=1}^{N_b}
{xbi,g(xbi)}i=1Nb 和
{
x
r
i
,
f
ˉ
(
x
b
i
)
}
\{x_r^i,\bar{f}(x_b^i)\}
{xri,fˉ(xbi)} 可以对应于在梯度下降的每次迭代中随机采样的完整数据批次或小批次。可以推导出对应于上述损失函数的输出
u
(
x
,
θ
)
u(x, \theta)
u(x,θ) 和
u
(
x
,
θ
)
u(x, \theta)
u(x,θ)的变化过程:
[
d
u
(
x
b
,
θ
(
t
)
)
d
t
d
L
u
(
x
r
,
θ
(
t
)
)
d
t
]
=
−
[
λ
b
N
b
K
u
u
(
t
)
λ
r
N
r
K
u
r
(
t
)
λ
b
N
b
K
r
u
(
t
)
λ
r
N
r
K
r
r
(
t
)
]
⋅
[
u
(
x
b
,
θ
(
t
)
)
−
g
(
x
b
)
L
u
(
x
r
,
θ
(
t
)
)
−
f
(
x
r
)
]
:
=
K
~
(
t
)
⋅
[
u
(
x
b
,
θ
(
t
)
)
−
g
(
x
b
)
L
u
(
x
r
,
θ
(
t
)
)
−
f
(
x
r
)
]
\begin{gathered} \begin{bmatrix}\frac{du(\boldsymbol{x}_b,\boldsymbol{\theta}(t))}{dt}\\\frac{d\mathcal{L}u(\boldsymbol{x}_r,\boldsymbol{\theta}(t))}{dt}\end{bmatrix} =-\begin{bmatrix}\frac{\lambda_b}{N_b}\boldsymbol{K}_{uu}(t)&\frac{\lambda_r}{N_r}\boldsymbol{K}_{ur}(t)\\\frac{\lambda_b}{N_b}\boldsymbol{K}_{ru}(t)&\frac{\lambda_r}{N_r}\boldsymbol{K}_{rr}(t)\end{bmatrix}\cdot\begin{bmatrix}u(\boldsymbol{x}_b,\boldsymbol{\theta}(t))-g(\boldsymbol{x}_b)\\\mathcal{L}u(\boldsymbol{x}_r,\boldsymbol{\theta}(t))-f(\boldsymbol{x}_r)\end{bmatrix} \\ :=\widetilde{\boldsymbol{K}}(t)\cdot\begin{bmatrix}u(\boldsymbol{x}_b,\boldsymbol{\theta}(t))-g(\boldsymbol{x}_b)\\\mathcal{L}u(\boldsymbol{x}_r,\boldsymbol{\theta}(t))-f(\boldsymbol{x}_r)\end{bmatrix} \end{gathered}
[dtdu(xb,θ(t))dtdLu(xr,θ(t))]=−[NbλbKuu(t)NbλbKru(t)NrλrKur(t)NrλrKrr(t)]⋅[u(xb,θ(t))−g(xb)Lu(xr,θ(t))−f(xr)]:=K
(t)⋅[u(xb,θ(t))−g(xb)Lu(xr,θ(t))−f(xr)]
观察上式可以发现,
λ
b
\lambda_b
λb和
λ
r
\lambda_r
λr 的大小以及小批量的大小将对
K
~
(
t
)
\widetilde{\boldsymbol{K}}(t)
K
(t) 的奇异值产生至关重要的影响,训练误差
u
(
x
b
,
θ
)
u(\boldsymbol{x}_b,\boldsymbol{\theta})
u(xb,θ) 和
L
u
(
x
r
,
θ
)
\mathcal{L}u(\boldsymbol{x}_r,\boldsymbol{\theta})
Lu(xr,θ) 的收敛速度也同样如此。基于这些观察,作者认为可以通过校准权重或批量大小来克服之前讨论的
K
r
r
\boldsymbol{K}_{rr}
Krr 和
K
r
r
\boldsymbol{K}_{rr}
Krr 之间的差异,使得
u
(
x
b
,
θ
)
u(\boldsymbol{x}_b,\boldsymbol{\theta})
u(xb,θ) 和
L
u
(
x
r
,
θ
)
\mathcal{L}u(\boldsymbol{x}_r,\boldsymbol{\theta})
Lu(xr,θ) 的每个分量在幅度上具有相似的收敛速度。由于操纵批量大小可能会涉及额外的计算成本(例如,可能会导致批量过大),因此这里作者选择固定批量大小并仅考虑根据调整权重
λ
b
\lambda_b
λb和
λ
r
\lambda_r
λr 。
首先,方程 6.5 和 6.6 中的更新可以在梯度下降循环的每次迭代时进行,也可以以用户指定的频率进行(例如,每 10 个梯度下降步骤)。为了计算特征值之和,只需计算相应NTK矩阵的迹即可,这样可以节省一些计算资源。此外,作者指出 NTK K ( t ) \boldsymbol{K}(t) K(t) 的计算与每次迭代时输入网络的训练数据点相关,这意味着每次迭代时内核的值不一定相同。然而,如果假设所有训练数据点都是从相同的分布中采样的,并且每次迭代时 NTK 的变化可以忽略不计,那么计算出的内核应该近似等于置换矩阵。因此,每次迭代时 K ( t ) \boldsymbol{K}(t) K(t) 特征值的变化也可以忽略不计,因此上述算法的训练过程应该是稳定的。
实验结果
PINN NTK 收敛性实验
考虑具有如下强迫项的泊松方程:
f
(
x
)
=
−
π
2
sin
(
π
x
)
,
x
∈
[
0
,
1
]
g
(
x
)
=
0
,
x
=
0
,
1.
\begin{array}{l}f(x)=-\pi^2\sin(\pi x),\quad x\in[0,1]\\g(x)=0,\quad x=0,1.\end{array}
f(x)=−π2sin(πx),x∈[0,1]g(x)=0,x=0,1.
其精确解为
u
(
x
)
=
sin
(
π
x
)
u(x)=\sin(\pi x)
u(x)=sin(πx) ,其损失函数如下:
L
(
θ
)
=
L
b
(
θ
)
+
L
r
(
θ
)
=
1
2
∑
i
=
1
N
b
∣
u
(
x
b
i
,
θ
)
−
g
(
x
b
i
)
∣
2
+
1
2
∑
i
=
1
N
r
∣
u
x
x
(
x
r
i
,
θ
)
−
f
(
x
r
i
)
∣
2
\begin{aligned} \mathcal{L}(\boldsymbol{\theta})& =\mathcal{L}_b(\boldsymbol{\theta})+\mathcal{L}_r(\boldsymbol{\theta}) \\ &=\frac12\sum_{i=1}^{N_b}|u(\boldsymbol{x}_b^i,\boldsymbol{\theta})-g(\boldsymbol{x}_b^i)|^2+\frac12\sum_{i=1}^{N_r}|u_{xx}(\boldsymbol{x}_r^i,\boldsymbol{\theta})-f(\boldsymbol{x}_r^i)|^2 \end{aligned}
L(θ)=Lb(θ)+Lr(θ)=21i=1∑Nb∣u(xbi,θ)−g(xbi)∣2+21i=1∑Nr∣uxx(xri,θ)−f(xri)∣2
上图中,左中两幅图为具有不同宽度的单隐层神经网络参数与NTK随着训练的变化情况,可以看到,随着宽度的提升,网络的参数和NTK变化幅度变小。右侧的图为宽度为500的神经网络在第0步和第10000步时NTK的特征值,从大到小排列的可视化,可以看出,其特征值几乎没有发生改变。
上图为基于三层神经网络做的实验,可以看出,结果与单层神经网络类似,因此推测先前基于单隐层神经网络的推导结果同样可以应用于多隐层神经网络上来。
PINN 的自适应训练
考虑具有如下强迫项的泊松方程:
f
(
x
)
=
−
16
π
2
sin
(
4
π
x
)
,
x
∈
[
0
,
1
]
g
(
x
)
=
0
,
x
=
0
,
1.
\begin{array}{l}f(x)=-16\pi^2\sin(4\pi x),\quad x\in[0,1]\\g(x)=0,\quad x=0,1.\end{array}
f(x)=−16π2sin(4πx),x∈[0,1]g(x)=0,x=0,1.
其精确解为
u
(
x
)
=
sin
(
4
π
x
)
u(x)=\sin(4\pi x)
u(x)=sin(4πx) .
由于 NTK 在训练期间几乎没有变化。这意味着权重
λ
b
\lambda_b
λb和
λ
r
\lambda_r
λr 是由NTK在初始化时确定的,因此它们可以被视为训练期间的固定权重。此外,由于先前实验已经知道在此示例中
K
r
r
\boldsymbol{K}_{rr}
Krr 支配
K
u
u
\boldsymbol{K}_{uu}
Kuu 。因此,梯度下降第
t
t
t 步的超参数
λ
b
\lambda_b
λb和
λ
r
\lambda_r
λr 的更新规则可以简化为:
λ
b
=
∑
i
=
1
N
b
+
N
r
λ
i
(
t
)
∑
i
=
1
N
b
λ
i
u
u
(
t
)
≈
∑
i
=
1
N
r
λ
i
r
r
(
t
)
∑
i
=
1
N
b
λ
i
u
u
(
t
)
≈
T
r
(
K
r
r
(
0
)
)
T
r
(
K
u
u
(
0
)
)
λ
r
=
∑
i
=
1
N
b
+
N
r
λ
i
(
t
)
∑
i
=
1
N
r
λ
i
r
r
(
t
)
≈
1.
\begin{aligned}\lambda_b&=\frac{\sum_{i=1}^{N_b+N_r}\lambda_i(t)}{\sum_{i=1}^{N_b}\lambda_i^{uu}(t)}\approx\frac{\sum_{i=1}^{N_r}\lambda_i^{rr}(t)}{\sum_{i=1}^{N_b}\lambda_i^{uu}(t)}\approx\frac{Tr(K_{rr}(0))}{Tr(K_{uu}(0))}\\\lambda_r&=\frac{\sum_{i=1}^{N_b+N_r}\lambda_i(t)}{\sum_{i=1}^{N_r}\lambda_i^{rr}(t)}\approx1.\end{aligned}
λbλr=∑i=1Nbλiuu(t)∑i=1Nb+Nrλi(t)≈∑i=1Nbλiuu(t)∑i=1Nrλirr(t)≈Tr(Kuu(0))Tr(Krr(0))=∑i=1Nrλirr(t)∑i=1Nb+Nrλi(t)≈1.
上图为不使用动态损失权重和使用动态损失权重后的结果对比,明显可以看出,使用动态损失权重取得了更好的效果。(正如上图中高亮部分所示,由于NTK几乎不变,因此由NTK导出的损失权重在训练过程中其实也是固定的,这里的100是由于之前 K r r \boldsymbol{K}_{rr} Krr 差不多是 K u u \boldsymbol{K}_{uu} Kuu 特征值均值的100倍。所谓的动态应该是指针对不同问题,其权重会发生变化)
上图为作者手动调整权重得到的不同权重下训练得到的 L 2 L^2 L2 误差。可以看到,当权重在100左右时,模型效果就比较好了,继续增大权重,后续方差变大,会增加训练过程的不稳定性。
一维波动方程
考虑如下一维波动方程:
u
t
t
(
x
,
t
)
−
4
u
x
x
(
x
,
t
)
=
0
,
(
x
,
t
)
∈
(
0
,
1
)
×
(
0
,
1
)
u
(
0
,
t
)
=
u
(
1
,
t
)
=
0
,
t
∈
[
0
,
1
]
u
(
x
,
0
)
=
sin
(
π
x
)
+
1
2
sin
(
4
π
x
)
,
x
∈
[
0
,
1
]
u
t
(
x
,
0
)
=
0
,
x
∈
[
0
,
1
]
.
\begin{aligned} &u_{tt}(x,t)-4u_{xx}(x,t)=0,\quad(x,t)\in(0,1)\times(0,1) \\ &u(0,t)=u(1,t)=0,\quad t\in[0,1] \\ &u(x,0)=\sin(\pi x)+\frac12\sin(4\pi x),\quad x\in[0,1] \\ &u_t(x,0)=0,\quad x\in[0,1]. \end{aligned}
utt(x,t)−4uxx(x,t)=0,(x,t)∈(0,1)×(0,1)u(0,t)=u(1,t)=0,t∈[0,1]u(x,0)=sin(πx)+21sin(4πx),x∈[0,1]ut(x,0)=0,x∈[0,1].
其真解为:
u
(
x
,
t
)
=
sin
(
π
x
)
cos
(
2
π
t
)
+
1
2
sin
(
4
π
x
)
cos
(
8
π
t
)
.
u(x,t)=\sin(\pi x)\cos(2\pi t)+\frac12\sin(4\pi x)\cos(8\pi t).
u(x,t)=sin(πx)cos(2πt)+21sin(4πx)cos(8πt).
由于其形式与先前推倒时不同,因此,重写如下:
[
d
u
(
x
u
,
θ
(
t
)
)
d
t
d
u
t
(
x
u
t
,
θ
(
t
)
)
d
t
]
:
=
K
~
(
t
)
⋅
[
u
(
x
b
,
θ
(
t
)
)
−
g
(
x
b
)
u
t
(
x
u
t
,
θ
(
t
)
)
L
u
(
x
r
,
θ
(
t
)
)
]
\begin{bmatrix}\frac{du(\boldsymbol{x}_u,\boldsymbol{\theta}(t))}{dt}\\\frac{d\boldsymbol{u}_t(\boldsymbol{x}_{u_t},\boldsymbol{\theta}(t))}{dt}\\\end{bmatrix}:=\widetilde{\boldsymbol{K}}(t)\cdot\begin{bmatrix}u(\boldsymbol{x}_b,\boldsymbol{\theta}(t))-g(\boldsymbol{x}_b)\\u_t(\boldsymbol{x}_{u_t},\boldsymbol{\theta}(t))\\\mathcal{L}u(\boldsymbol{x}_r,\boldsymbol{\theta}(t))\end{bmatrix}
[dtdu(xu,θ(t))dtdut(xut,θ(t))]:=K
(t)⋅
u(xb,θ(t))−g(xb)ut(xut,θ(t))Lu(xr,θ(t))
其中:
K
~
(
t
)
=
[
λ
u
N
u
J
u
(
t
)
λ
u
t
N
u
t
J
u
t
(
t
)
λ
r
N
r
J
r
(
t
)
]
⋅
[
J
u
T
(
t
)
,
J
u
t
T
(
t
)
,
J
r
T
(
t
)
]
,
[
K
u
(
t
)
]
i
j
=
[
J
u
(
t
)
J
u
T
(
t
)
]
i
j
=
⟨
d
u
(
x
u
i
,
θ
(
t
)
)
d
θ
,
d
u
(
x
u
j
,
θ
(
t
)
)
d
θ
⟩
[
K
u
t
(
t
)
]
i
j
=
[
J
u
t
(
t
)
J
u
t
T
(
t
)
]
i
j
=
⟨
d
u
t
(
x
u
t
i
,
θ
(
t
)
)
d
θ
,
d
u
(
x
u
t
j
,
θ
(
t
)
)
d
θ
⟩
[
K
r
(
t
)
]
i
j
=
[
J
r
(
t
)
J
r
T
(
t
)
]
i
j
=
⟨
d
L
u
(
x
r
i
,
θ
(
t
)
)
d
θ
,
d
L
u
(
x
r
j
,
θ
(
t
)
)
d
θ
⟩
.
\begin{aligned} &\widetilde{\boldsymbol{K}}(t)=\begin{bmatrix}\frac{\lambda_u}{N_u}\boldsymbol{J}_u(t)\\\frac{\lambda_{u_t}}{N_{u_t}}\boldsymbol{J}_{u_t}(t)\\\frac{\lambda_r}{N_r}\boldsymbol{J}_r(t)\end{bmatrix}\cdot\begin{bmatrix}\boldsymbol{J}_u^T(t),\boldsymbol{J}_{u_t}^T(t),\boldsymbol{J}_r^T(t)\end{bmatrix}, \\ &\left[\boldsymbol{K}_u(t)\right]_{ij}=\left[\boldsymbol{J}_u(t)\boldsymbol{J}_u^T(t)\right]_{ij}=\left\langle\frac{du(\boldsymbol{x}_u^i,\boldsymbol{\theta}(t))}{d\boldsymbol{\theta}},\frac{du(\boldsymbol{x}_u^j,\boldsymbol{\theta}(t))}{d\boldsymbol{\theta}}\right\rangle \\ &[\boldsymbol{K}_{u_t}(t)]_{ij}=\left[\boldsymbol{J}_{u_t}(t)\boldsymbol{J}_{u_t}^T(t)\right]_{ij}=\left\langle\frac{du_t(\boldsymbol{x}_{\boldsymbol{u}_t}^i,\boldsymbol{\theta}(t))}{d\boldsymbol{\theta}},\frac{du(\boldsymbol{x}_{\boldsymbol{u}_t}^j,\boldsymbol{\theta}(t))}{d\boldsymbol{\theta}}\right\rangle \\ &\left[\boldsymbol{K}_r(t)\right]_{ij}=\left[\boldsymbol{J}_r(t)\boldsymbol{J}_r^T(t)\right]_{ij}=\left\langle\frac{d\mathcal{L}u(\boldsymbol{x}_r^i,\boldsymbol{\theta}(t))}{d\boldsymbol{\theta}},\frac{d\mathcal{L}u(\boldsymbol{x}_r^j,\boldsymbol{\theta}(t))}{d\boldsymbol{\theta}}\right\rangle. \end{aligned}
K
(t)=
NuλuJu(t)NutλutJut(t)NrλrJr(t)
⋅[JuT(t),JutT(t),JrT(t)],[Ku(t)]ij=[Ju(t)JuT(t)]ij=⟨dθdu(xui,θ(t)),dθdu(xuj,θ(t))⟩[Kut(t)]ij=[Jut(t)JutT(t)]ij=⟨dθdut(xuti,θ(t)),dθdu(xutj,θ(t))⟩[Kr(t)]ij=[Jr(t)JrT(t)]ij=⟨dθdLu(xri,θ(t)),dθdLu(xrj,θ(t))⟩.
于是,其损失权重可表示如下:
λ
u
=
T
r
(
K
u
)
+
T
r
(
K
u
t
)
+
T
r
(
K
r
)
T
r
(
K
u
)
λ
u
t
=
T
r
(
K
u
)
+
T
r
(
K
u
t
)
+
T
r
(
K
r
)
T
r
(
K
u
t
)
λ
r
=
T
r
(
K
u
)
+
T
r
(
K
u
t
)
+
T
r
(
K
r
)
T
r
(
K
r
)
\begin{gathered} \lambda_u=\frac{Tr(\boldsymbol{K}_u)+Tr(\boldsymbol{K}_{\boldsymbol{u}_t})+Tr(\boldsymbol{K}_r)}{Tr(\boldsymbol{K}_u)} \\ \lambda_{u_t}=\frac{Tr(\boldsymbol{K}_u)+Tr(\boldsymbol{K}_{u_t})+Tr(\boldsymbol{K}_r)}{Tr(\boldsymbol{K}_{u_t})} \\ \lambda_{r}=\frac{Tr(\boldsymbol{K}_{u})+Tr(\boldsymbol{K}_{u_{t}})+Tr(\boldsymbol{K}_{r})}{Tr(\boldsymbol{K}_{r})} \end{gathered}
λu=Tr(Ku)Tr(Ku)+Tr(Kut)+Tr(Kr)λut=Tr(Kut)Tr(Ku)+Tr(Kut)+Tr(Kr)λr=Tr(Kr)Tr(Ku)+Tr(Kut)+Tr(Kr)
上图为结果对比,可以看见使用损失加权后,PINN学习到了真实解。
上图为三个NTK的特征值可视化,可以发现,随着训练的进行,特征值趋于稳定
上图为对权重的可视化,可以发现,随着训练的进行,损失权重很快就收敛了,在此后的训练过程中就几乎没有发生变化了。
总结
这篇文章从NTK的角度出发,首先证明了PINN中NTK的性质没有发生变化,随后根据分析过程中发现的不同损失项之间的NTK特征值具有数量级上的差异这一特性,提出应该为不同损失项添加权重。整个过程非常自然,并且包含了大量的数学推导。虽然是基于泊松方程以及单隐层神经网络做的推导,但作者很贴心地附上了多隐层神经网络的实验结果,利用实验表明上述结论大概率适用于多隐层神经网络。
但文中提到的 PINN也受频谱偏差影响
和 对于不同频率的函数,NTK的特征值分布看起来相似,这可以启发性地解释 PINN 倾向于几乎同时学习所有频率,如 Lu 等人所观察到的
。这里感觉有点矛盾?主要我不是很清楚一般的神经网络NTK特征值分布的情况,同时PINN中NNTK 矩阵较高特征值对应的特征向量是否也表现出较低的频率。
单就我的实验来看,PINN表现出的传播性会更强一些,对于不同的频率,没有特别明显的倾向性。
上图为一般的神经网络对 sin ( π x ) + cos ( x ) \sin(\pi x) +\cos(x) sin(πx)+cos(x) 的拟合,可以明显看出神经网络先拟合了频率较小的部分,然后再去拟合高频的部分
上图为利用PINN对泊松方程的近似,其中,泊松方程的精确解同样为 sin ( π x ) + cos ( x ) \sin(\pi x) +\cos(x) sin(πx)+cos(x). 从上图中可以看出,PINN似乎是一个“波浪”一个“波浪”地在近似,表现出一定的传播性,而对频率没有表现出明显的偏好。
相关链接: