论文阅读:DAS-PINNs A deep adaptive sampling method for solving high-dimensional partial differential equations
)
DAS-PINNs A deep adaptive sampling method for solving high-dimensional partial differential equations
问题分析
误差来源
假设
u
(
x
,
Θ
N
∗
)
u(x,\Theta_N^*)
u(x,ΘN∗) 是网络在有限数据集上最小化
J
N
(
u
(
x
;
Θ
)
)
J_N(u(x;\Theta))
JN(u(x;Θ)) 所等取得的最好结果,
u
(
x
,
Θ
∗
)
u(x,\Theta^*)
u(x,Θ∗) 是网络最小化
J
(
u
(
x
;
Θ
)
)
J(u(x;\Theta))
J(u(x;Θ)) 所等取得的最好结果,即
u
(
x
;
Θ
∗
)
=
arg
min
Θ
J
(
u
(
x
;
Θ
)
)
,
u
(
x
;
Θ
N
∗
)
=
arg
min
Θ
J
N
(
u
(
x
;
Θ
)
)
.
\begin{gathered} u(\boldsymbol{x};\Theta^{*}) =\arg\min\limits_{\Theta}J(u(\boldsymbol{x};\Theta)), \\ {u(\boldsymbol{x};\Theta_{N}^{*})} =\arg\min\limits_{\Theta}J_N(u(x;\Theta)). \end{gathered}
u(x;Θ∗)=argΘminJ(u(x;Θ)),u(x;ΘN∗)=argΘminJN(u(x;Θ)).
那么,易得:
u
(
x
;
Θ
N
∗
)
−
u
(
x
)
=
u
(
x
,
Θ
N
∗
)
−
u
(
x
;
Θ
∗
)
+
u
(
x
;
Θ
∗
)
−
u
(
x
)
u(x;\Theta_N^*)-u(x)=u(x,\Theta_N^*)-u(x;\Theta^*)+u(x;\Theta^*)-u(x)
u(x;ΘN∗)−u(x)=u(x,ΘN∗)−u(x;Θ∗)+u(x;Θ∗)−u(x)
也即:
E
(
∥
u
(
x
;
Θ
N
⋆
)
−
u
(
x
)
∥
Ω
)
≤
E
(
∥
u
(
x
,
Θ
N
⋆
)
−
u
(
x
;
Θ
⋆
)
∥
Ω
)
+
∥
u
(
x
;
Θ
⋆
)
−
u
(
x
)
∥
Ω
\mathbb{E}(\|u(\boldsymbol{x};\Theta_N^{\star})-u(\boldsymbol{x})\|_\Omega)\leq\mathbb{E}(\|u(\boldsymbol{x},\Theta_N^{\star})-u(x;\Theta^{\star})\|_\Omega)+\|u(\boldsymbol{x};\Theta^{\star})-u(\boldsymbol{x})\|_\Omega
E(∥u(x;ΘN⋆)−u(x)∥Ω)≤E(∥u(x,ΘN⋆)−u(x;Θ⋆)∥Ω)+∥u(x;Θ⋆)−u(x)∥Ω
可以看到,网络的损失主要由两部分构成,一部分为逼近误差,另一部分为统计误差。逼近误差部分主要由网络的拟合能力决定;而统计误差则主要由训练点的选取决定。本文主要关注第二部分统计误差的减小。
误差分析
假设
X
∈
R
d
X\in\mathbb{R}^d
X∈Rd ,
Y
∈
R
Y\in\mathbb{R}
Y∈R 服从一个联合分布
ρ
X
,
Y
\rho_{X,Y}
ρX,Y , 网络模型为
Y
^
=
m
(
X
)
\hat{Y}=m(X)
Y^=m(X) , 要近似的目标函数为
y
=
h
(
x
)
y=h(x)
y=h(x) , 可得
L
2
L^2
L2 范数下最优模型为:
m
∗
(
x
)
=
arg
min
m
(
x
)
[
L
(
Y
,
Y
^
)
=
∫
(
y
−
m
(
x
)
)
2
ρ
X
,
Y
(
x
,
y
)
d
x
d
y
]
.
m^*(\boldsymbol x)=\arg\min\limits_{m(\boldsymbol x)}\left[L(Y,\hat Y)=\int(y-m(\boldsymbol x))^2\rho_{X,Y}(\boldsymbol x,y)dxdy\right].
m∗(x)=argm(x)min[L(Y,Y^)=∫(y−m(x))2ρX,Y(x,y)dxdy].
但由于实际中只能获得离散的数据点作为训练集,于是离散后如下:
m
w
∗
(
x
)
=
arg
min
m
w
∈
W
[
L
N
(
Y
,
Y
^
)
=
1
N
∑
i
=
1
N
(
y
(
i
)
−
m
w
(
x
(
i
)
)
)
2
]
m_{\mathbf{w^*}}(x)=\arg\min\limits_{m\mathbf{w}\in W}\left[L_N(Y,\hat{Y})=\frac{1}{N}\sum\limits_{i=1}^N(y^{(i)}-m_{\mathbf{w}}(x^{(i)}))^2\right]
mw∗(x)=argmw∈Wmin[LN(Y,Y^)=N1i=1∑N(y(i)−mw(x(i)))2]
其中,
L
N
L_N
LN 可以看做对
L
L
L 的蒙特卡洛近似,下标
w
w
w 表示模型的参数。
当
ρ
X
,
Y
(
x
,
y
)
=
δ
(
y
−
h
(
x
)
)
ρ
(
x
)
\rho_{X,Y}(\boldsymbol{x},y)=\delta(y-h(\boldsymbol{x}))\rho(\boldsymbol{x})
ρX,Y(x,y)=δ(y−h(x))ρ(x) ,并且
m
(
x
)
∈
V
m(x) \in V
m(x)∈V 时,可以得到对函数的连续最小二乘逼近:
m
V
∗
(
x
)
=
arg
min
m
(
x
)
∈
V
[
L
V
(
Y
,
Y
^
)
=
∫
(
m
(
x
)
−
h
(
x
)
)
2
ρ
(
x
)
d
x
]
m_V^*(\boldsymbol{x})=\arg\min\limits_{m(\boldsymbol{x})\in V}\left[L_V(Y,\hat{Y})=\int(m(\boldsymbol{x})-h(\boldsymbol{x}))^2\rho(\boldsymbol{x})dx\right]
mV∗(x)=argm(x)∈Vmin[LV(Y,Y^)=∫(m(x)−h(x))2ρ(x)dx]
其中,
V
V
V 是一个线性空间。此时,
m
V
∗
(
x
)
m^*_V(x)
mV∗(x) 就是
h
(
x
)
h(x)
h(x) 在空间
V
V
V 中服从
p
(
x
)
p(x)
p(x) 加权
L
2
L^2
L2 范数意义下的最佳近似。
同样,离散后如下:
m
b
^
∗
(
x
)
=
arg
min
m
b
⊂
V
[
L
V
,
N
(
Y
,
Y
^
)
=
1
N
∑
i
=
1
N
(
m
b
(
x
(
i
)
)
−
h
(
x
(
i
)
)
)
2
]
m_{\hat{\boldsymbol{b}}^*}(x)=\arg\min\limits_{m_{\boldsymbol{b}}\subset V}\left[L_{V,N}(Y,\hat{Y})=\frac{1}{N}\sum\limits_{i=1}^N(m_{\boldsymbol{b}}(x^{(i)})-h(x^{(i)}))^2\right]
mb^∗(x)=argmb⊂Vmin[LV,N(Y,Y^)=N1i=1∑N(mb(x(i))−h(x(i)))2]
随后可对其误差进行估计(详细推导请看原文):
∥
m
ϑ
^
∗
(
x
)
−
h
(
x
)
∥
ρ
≤
C
ln
δ
−
1
N
+
∥
m
V
∗
(
x
)
−
h
(
x
)
∥
ρ
.
\|m_{\hat{\vartheta}^*}(x)-h(\boldsymbol{x})\|_\rho\le C\sqrt{\frac{\ln\delta^{-1}}{N}}+\|m_V^*(x)-h(\boldsymbol{x})\|_\rho.
∥mϑ^∗(x)−h(x)∥ρ≤CNlnδ−1+∥mV∗(x)−h(x)∥ρ.
右边第一项是由于随机样本导致的
L
V
L_V
LV 近似的统计误差,它的存在不依赖于
V
V
V 的选择。当
N
N
N 趋于无穷大时,统计误差趋于零,只剩下近似误差。也就是说,在将机器学习技术应用于函数逼近时,既要注意假设空间
W
W
W ,又要注意随机样本
{
x
(
i
)
}
i
=
1
N
\{x(i)\}^N_{i=1}
{x(i)}i=1N即训练集的选择,得到统计误差和近似误差之间的权衡。
对于低维问题,经典方法如有限元方法通过使用高斯求积规则来避免统计误差,这意味着由于统计误差的存在,机器学习技术通常不如经典方法有效。另一方面,对于高维问题,由于维数灾难,经典方法可能无法获得相对较小的近似误差,而机器学习技术可能通过使用能力更强的假设空间(例如神经网络)和足够的样本量,获得相对较小的统计误差。
假设
ζ
=
∫
Ω
1
I
(
x
)
d
x
≈
∫
Ω
r
2
(
x
)
d
x
≪
1
\zeta=\int_\Omega1_I(\boldsymbol{x})d\boldsymbol{x}\approx\int_\Omega r^2(\boldsymbol{x})dx\ll1
ζ=∫Ω1I(x)dx≈∫Ωr2(x)dx≪1 ,并且
∣
Ω
∣
=
1
|\Omega| = 1
∣Ω∣=1 ,,考虑使用如下蒙特卡洛来对积分进行近似:
P
^
MC
=
1
N
∑
i
=
1
N
1
I
(
x
(
i
)
)
.
\hat{P}_{\text{MC}}=\frac{1}{N}\sum\limits_{i=1}^N1_I(\boldsymbol{x}^{(i)}).
P^MC=N1i=1∑N1I(x(i)).
于是可以得到误差估计如下:
Var
1
/
2
(
P
MC
)
^
ζ
=
N
−
1
/
2
(
(
1
−
ζ
)
/
ζ
)
1
/
2
≈
(
ζ
N
)
−
1
/
2
\frac{\operatorname{Var}^{1/2}(\hat{P_{\text{MC}})}}{\zeta}=N^{-1/2}((1-\zeta)/\zeta)^{1/2}\approx(\zeta N)^{-1/2}
ζVar1/2(PMC)^=N−1/2((1−ζ)/ζ)1/2≈(ζN)−1/2
从上式可以看出,为了获得
O
(
1
)
O(1)
O(1) 的相对误差,需要
O
(
1
/
ζ
)
O(1/\zeta)
O(1/ζ) 的样本点数量。因此,在高维问题上,需要更有效的采样方法。
解决方法
加权
蒙特卡洛近似的误差主要来自于残差分布剧烈变化的区域,那么一个自然的想法就是,让残差始终保持均匀,也即,是残差的方差保持在比较小的状态。
为方便起见,考虑如下残差:
J
r
(
u
(
x
;
Θ
)
)
=
E
[
r
2
]
=
∫
Ω
r
2
(
x
;
Θ
)
d
x
=
∫
Ω
r
2
(
x
;
Θ
)
p
(
x
)
p
(
x
)
d
x
≈
1
N
r
∑
i
=
1
N
r
,
r
2
(
x
1
(
i
)
;
Θ
)
p
(
x
Ω
(
i
)
)
J_{r}\left(u(x;\Theta)\right)=\mathbb{E}[r^{2}]=\int_{\Omega}r^{2}(x;\Theta)dx=\int_{\Omega}\frac{r^{2}(x;\Theta)}{p(x)}p(x)dx\approx\frac{1}{N_{r}}\sum_{i=1}^{N_{r}},\frac{r^{2}(x_{1}^{(i)};\Theta)}{p(x_{\Omega}^{(i)})}
Jr(u(x;Θ))=E[r2]=∫Ωr2(x;Θ)dx=∫Ωp(x)r2(x;Θ)p(x)dx≈Nr1i=1∑Nr,p(xΩ(i))r2(x1(i);Θ)
其中,点集由概率密度函数
p
(
x
)
p(x)
p(x) 生成。如果由
p
(
x
)
p(x)
p(x) 生成的
r
2
(
X
)
p
−
1
(
X
)
r^2(X)p^{-1}(X)
r2(X)p−1(X) 的方差,比均匀分布产生的
r
2
(
X
)
r^2(X)
r2(X) 更小的话,那么就可以实现减小统计误差的效果。而这个概率密度函数的最优选择自然是
p
∗
(
x
)
=
r
2
(
x
;
Θ
)
μ
p^*(x)=\frac{r^2(x;\Theta)}{\mu}
p∗(x)=μr2(x;Θ) ,其中
μ
=
∫
Ω
r
2
(
x
;
Θ
)
d
x
\mu=\int_{\Omega}r^{2}(\boldsymbol{x};\Theta)d\boldsymbol{x}
μ=∫Ωr2(x;Θ)dx 。也即,
p
(
x
)
p(x)
p(x) 就是由残差诱导的概率分布。
KRnet
但是,要如何获得这个概率分布,并从中采样是一个问题。
在这里,作者使用了KRnet来生成概率分布并进行采样。KRnet是一种归一化流,其特点是具有可逆的性质。利用KRnet,将输入分布映射到一个先验分布如:高斯分布或均匀分布。当需要采样时,只需要在先验分布上采样,随后利用KRnet逆运算,将采样点映射回输入分布就可得到按输入分布采样的结果。
更多关于KRnet的资料:
根据上述描述,不难看出,KRnet的loss函数可以设计为:
H
(
r
X
^
,
p
^
K
R
n
e
t
)
≈
−
1
N
r
∑
i
=
1
N
r
r
X
^
(
x
B
(
i
)
)
p
^
K
R
n
e
t
(
x
B
(
i
)
;
Θ
^
f
)
log
p
^
K
R
n
e
t
(
x
B
(
i
)
;
Θ
f
)
H(\hat{r_X},\hat{p}_{\mathrm{KRnet}})\approx-\frac{1}{N_r}\sum_{i=1}^{N_r}\frac{\hat{r_X}(x_B^{(i)})}{\hat{p}_{\mathrm{KRnet}}(x_B^{(i)};\hat{\Theta}_f)}\log\hat{p}_{\mathrm{KRnet}}(x_B^{(i)};\Theta_f)
H(rX^,p^KRnet)≈−Nr1i=1∑Nrp^KRnet(xB(i);Θ^f)rX^(xB(i))logp^KRnet(xB(i);Θf)
也即,KRnet分布和残差诱导分布的KL散度。
而PINN的loss函数为:
J
N
l
S
(
u
(
x
;
Θ
)
)
=
1
N
r
∑
i
=
1
N
r
r
2
(
x
Ω
,
k
(
i
)
;
Θ
)
p
^
kRet
(
x
Ω
,
k
(
i
)
;
Θ
f
∗
(
k
)
)
+
1
N
b
∑
i
=
1
N
b
b
2
(
x
∂
Ω
,
k
(
i
)
;
Θ
)
J_N^{\mathrm{lS}}(u(x;\Theta))=\frac{1}{N_r}\sum_{i=1}^{N_r}\frac{r^2(x_{\Omega,k}^{(i)};\Theta)}{\hat{p}\text{kRet}(x_{\Omega,k}^{(i)};\Theta_{f}^{*(k)})}+\frac{1}{N_b}\sum_{i=1}^{N_b}b^2(x_{\partial\Omega,k}^{(i)};\Theta)
JNlS(u(x;Θ))=Nr1i=1∑Nrp^kRet(xΩ,k(i);Θf∗(k))r2(xΩ,k(i);Θ)+Nb1i=1∑Nbb2(x∂Ω,k(i);Θ)
完整算法
还有每次增加部分点的,但我认为两种方法差别不大,就不再展示,感兴趣可以阅读原文。
实验结果
作者在Peak、Bimodal和Exponential三个用例上进行了测试。
Peak
− Δ u ( x ) = s ( x ) i n Ω , u ( x ) = g ( x ) o n ∂ Ω \begin{aligned} -\Delta u(x)&=s(x)\quad \mathrm{in} \Omega ,\\ u(x)&=g(x)\quad \mathrm{on} \partial \Omega\\ \end{aligned} −Δu(x)u(x)=s(x)inΩ,=g(x)on∂Ω
其中,
x
=
[
x
1
,
x
2
]
T
x=[x_1,x_2]^{\mathrm{T}}
x=[x1,x2]T ,
Ω
=
[
−
1
,
1
]
2
\Omega =[-1,1]^2
Ω=[−1,1]2 ,真解为:
u
(
x
1
,
x
2
)
=
exp
(
−
1000
[
(
x
1
−
0.5
)
2
+
(
x
2
−
0.5
)
2
]
)
u(x_1,x_2)=\exp \left( -1000[(x_1-0.5)^2+(x_2-0.5)^2] \right)
u(x1,x2)=exp(−1000[(x1−0.5)2+(x2−0.5)2])
Bimodal
− ∇ ⋅ [ u ( x ) ∇ v ( x ) ] + ∇ 2 u ( x ) = s ( x ) i n Ω , u ( x ) = g ( x ) o n ∂ Ω \begin{aligned} -\nabla \cdot [u(x)\nabla v(x)]&+\nabla ^2u(x)=s(x)\quad \mathrm{in} \Omega ,\\ u(x)&=g(x)\quad \mathrm{on} \partial \Omega\\ \end{aligned} −∇⋅[u(x)∇v(x)]u(x)+∇2u(x)=s(x)inΩ,=g(x)on∂Ω
其中,
x
=
[
x
1
,
x
2
]
T
x=[x_1,x_2]^{\mathrm{T}}
x=[x1,x2]T ,
v
(
x
)
=
x
1
2
+
x
2
2
v(x)=x_{1}^{2}+x_{2}^{2}
v(x)=x12+x22 ,
Ω
=
[
−
1
,
1
]
2
\Omega =[-1,1]^2
Ω=[−1,1]2 ,真解为:
u
(
x
1
,
x
2
)
=
e
−
1000
[
(
x
1
−
0.5
)
2
+
(
x
2
−
0.5
)
2
]
+
e
−
1000
[
(
x
1
+
0.5
)
2
+
(
x
2
+
0.5
)
2
]
u(x_1,x_2)=\mathrm{e}^{-1000[(x_1-0.5)^2+(x_2-0.5)^2]}+\mathrm{e}^{-1000[(x_1+0.5)^2+(x_2+0.5)^2]}
u(x1,x2)=e−1000[(x1−0.5)2+(x2−0.5)2]+e−1000[(x1+0.5)2+(x2+0.5)2]
Exponential
− Δ u ( x ) + u ( x ) − u 3 ( x ) = s ( x ) , x i n Ω u ( x ) = g ( x ) , x o n ∂ Ω . \begin{aligned} -\Delta u(x)+u(x)-u^3(x)&=s(x),\quad x\,\,\mathrm{in} \Omega\\ u(x)&=g(x),\quad x\,\,\mathrm{on} \partial \Omega .\\ \end{aligned} −Δu(x)+u(x)−u3(x)u(x)=s(x),xinΩ=g(x),xon∂Ω.
其中,
Ω
=
[
−
1
,
1
]
10
\Omega =[-1,1]^{10}
Ω=[−1,1]10 , 真解为:
u
(
x
)
=
e
−
10
∥
x
∥
2
2
u(x)=\mathrm{e}^{-10\parallel x\parallel _{2}^{2}}
u(x)=e−10∥x∥22
总结
这篇文章从方差的角度给出了减小统计误差的方法,不过最后pdf的选取依然是以残差诱导的分布。但通过KRnet来近似残差分布确实让我眼前一亮,又了解到有趣的工具了。本文证明的部分还是十分完备的,而且简单易懂,适合阅读。
相关链接: