DAS-PINNs A deep adaptive sampling method for solving high-dimensional partial differential equation

该论文提出了一种名为DAS-PINNs的深度学习方法,用于解决高维偏微分方程的求解问题。它关注于通过加权采样减少统计误差,特别是通过使用KRnet来适应性地生成概率分布并进行采样。实验结果显示,这种方法在处理峰值、双峰和指数函数等案例时表现良好,有效地减少了误差并提高了求解精度。
摘要由CSDN通过智能技术生成


)

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 XRd , Y ∈ R Y\in\mathbb{R} YR 服从一个联合分布 ρ 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^)=(ym(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)=argmwWmin[LN(Y,Y^)=N1i=1N(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)=δ(yh(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)=argmbVmin[LV,N(Y,Y^)=N1i=1N(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)dx1 ,并且 ∣ Ω ∣ = 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=1N1I(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)^=N1/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)dxNr1i=1Nr,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)p1(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=1Nrp^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=1Nrp^kRet(xΩ,k(i);Θf(k))r2(xΩ,k(i);Θ)+Nb1i=1Nbb2(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[(x10.5)2+(x20.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)=e1000[(x10.5)2+(x20.5)2]+e1000[(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)=e10x22

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

这篇文章从方差的角度给出了减小统计误差的方法,不过最后pdf的选取依然是以残差诱导的分布。但通过KRnet来近似残差分布确实让我眼前一亮,又了解到有趣的工具了。本文证明的部分还是十分完备的,而且简单易懂,适合阅读。

相关链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuelanghanbao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值