第二十六周机器学习笔记:PINN求正反解求PDE文献阅读——正问题

news2024/12/23 15:37:03

第二十六周周报

  • 摘要
  • Abstract
  • 文献阅读《Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations》
    • 1. 引言
    • 2. 问题的设置
    • 3.偏微分方程的数据驱动解
      • 3.1 连续时间模型
        • 3.1.1 Example:Schrödinger方程(薛定谔方程)
      • 3.2 离散型时间模型
        • 3.2.1 Example:Allen-Cahn方程
  • 总结

摘要

本周周报主要详细分析了一篇PINN求正反解的经典文献,文献主要讲述了作者是如何利用PINN正反解求PDE的。之前的深度神经网络在缺乏数据的情况下很容易发生过拟合现象且缺乏鲁棒性。相比较之下,PINN的优势在处理这些问题时,就只需要少量的训练数据就可以训练出一个精确度较高的预测模型。其中,PINN的核心思想是通过在损失函数中构造物理规律的残差项,来对网络的预测值进行限制,然后再通过自动微分、反向传播技术使其不断优化模型,最终使得深度神经网络的预测的值即有精度的同时又符合当下的物理规律。PINN模型它不仅能够进行传统意义上的监督学习任务,还能够在训练过程中强制遵守物理定律,特别是由一般非线性偏微分方程(PDEs)描述的物理定律。同时作者也提出了PINN可能会遇到的问题即,处理高维问题中可能会有点吃力,虽然这对一个或两个空间维度的问题没有造成重大问题,但它可能会在高维问题中引入严重的瓶颈,因为在高维空间的情况下,偏微分方程所需的搭配点总数将呈指数增长。

Abstract

The weekly report this week provided a detailed analysis of a classic literature on PINN for both forward and inverse solutions. The literature primarily discusses how the authors utilized PINN to solve PDE. Traditional deep neural networks are prone to overfitting and lack robustness in the absence of data. In contrast, PINN offer significant advantages in handling these issues, requiring only a small amount of training data to train a highly accurate predictive model. The core idea of PINN is to construct residual terms of physical laws in the loss function to constrain the network’s predictions, and then to continuously optimize the model through automatic differentiation and backpropagation techniques, ultimately ensuring that the deep neural network’s predictions are not only accurate but also comply with the prevailing physical laws. PINN models are not only capable of performing traditional supervised learning tasks but also enforce adherence to physical laws during training, especially those described by general nonlinear partial differential equations (PDE).

文献阅读《Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations》

在摘要中,这篇文章首先介绍了Physics-Informed Neural Networks (PINNs) 是一种特殊的神经网络,它不仅能够进行传统意义上的监督学习任务,还能够在训练过程中强制遵守物理定律,特别是由一般非线性偏微分方程(PDEs)描述的物理定律。
论文解决了两类问题:

  1. 数据驱动的偏微分方程(PDEs)求解(已知模型和条件,目的是求解模型)
  2. 数据驱动的偏微分方程发现(不确定模型和条件,目的是确认模型)

为了解决这两类问题,根据数据的特性提出了两种算法(连续型和离散型),每个算法都有其自身的应用场景和优势

最后通过一系列经典问题来对框架的有效性进行验证。
在这里插入图片描述

1. 引言

随着深度学习和机器学习的发展,计算所需的资源和训练所需的数据集数量都得到了极大的提升。
但是在研究一些复杂的物理问题、生物工程问题中或者是一些冷门的问题上,可获取的数据实在难得,想要获取数据就要付出高昂的成本,对于研究来说是非常耗时耗力的。

在这种小数据体制下,多数机器学习技(深度学习、卷积神经网络等) ,模型在缺乏数据的情况下很容易发生过拟合现象,缺乏鲁棒性。

在这种情况下训练一个机器学习的模型,效果肯定是不好的。但是对于一些物理和生物工程问题,我们有大量的已经验证过的知识目前还没有被机器学习实践所利用。(例如一些物理公式)
这些先验信息都可以作为正则化代理(regularization agent),将可接受的解空间限制在可管理的大小。

PINN的核心思想其实就是把一种将物理定律和约束整合到神经网络训练过程的损失函数中。
这种方法通过在损失函数中加入物理方程的约束,使得神经网络的预测不仅依赖于数据,还受到物理规律的约束。

例如,在流体动力学问题中,可以通过加入这样的约束去过滤掉违反质量守恒原理的且流动解。将这种结构化信息编码到学习算法中,可以放大算法所看到的数据的信息内容,使其能够快速地将自己导向正确的解决方案,所以即使数据量稀少,也能够很好地进行泛化。
在这里插入图片描述
在这里作者提到了利用结构化先验信息来构建数据高效且物理信息丰富的学习器,解决线性问题时的表现非常出色,例如,作者使用了高斯过程回归来设计针对特定线性算子的函数表示,并且能够准确推断解决方案并为数学物理中的几个原型问题提供不确定的估算。
但是其如果应用在在非线性问题中存在着一些问题:

  1. 第一个问题是作者在对时间上非线性项进行线性化,这限制了所提方法的应用范围到离散时间领域,且强非线性情况下不利于预测的准确性。
  2. 第二个问题是高斯过程回归的贝叶斯特性要自己设置先验概率,这可能会限制模型的表示能力,并在非线性问题会降低模型的鲁棒性。

拓展:
刚刚提到了到正则代理,就想起了正则化,正则化知识的复习:
正则化,是用于防止模型过拟合,提高模型的泛化能力。PINN看似跟正则化很像实际上却不是正则化。
正则化通过在模型的训练过程中(通常在损失函数/代价函数中)添加一个惩罚项来实现,这个惩罚项通常与模型的复杂度相关。

比如在线性回归问题,增加了惩罚项的代价函数如下:
J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J(\theta)=\frac{1}{2 m}\left[\sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n} \theta_{j}^{2}\right] J(θ)=2m1[i=1m(hθ(x(i))y(i))2+λj=1nθj2]

λ ∑ j = 1 n θ j 2 就是惩罚项 \lambda \sum_{j=1}^{n} \theta_{j}^{2}就是惩罚项 λj=1nθj2就是惩罚项

以下线性回归和逻辑回归的正则化:
在这里插入图片描述

2. 问题的设置

  • 为了解决上述非线性而产生的问题,作者使用了深度神经网络(DNN),因为其通过不断的叠加能够拟合出任何复杂的非线性模型,所以其能够很好的解决非线性的问题,而且其不需要事先做出线性化或假设出局部时间步进。
    在这里插入图片描述
  • 此外,作者还使用自动微分技术(反向传播)对神经网络对输入坐标和模型参数进行微分,从而创建出物理信息神经网络(PINNs),至于PINN的特性这里就不再赘述了。
    在这里插入图片描述
    作者的目标是为建模和计算建立一个新的模型,将深度学习与数学物理的发展相结合。
    作者使用了相对简单的前馈神经网络架构,其具有双曲正切激活函数,且损失函数没有额外的正则化(例如L1/L2惩罚、dropout等)。
    所以,作者将将论文分为两部分:
  1. 介绍他们在数据驱动的偏微分方程解(即求模型的解) 的工作。
  2. 介绍他们数据驱动的偏微分方程发现(即如何确认模型) 的工作。
    在这里插入图片描述
    作者提出的是一般形式的偏微分方程,这个方程涵盖了包括守恒定律、扩散过程、平流-扩散-反应系统和动力学方程在内的数学物理中的广泛问题。
    方程如下:在这里插入图片描述
    其中,作者使用一维Burgers方程来举例
    在这里插入图片描述
    什么是一维Burgers方程呢?
    在这里插入图片描述
    所以当一维Burgers方程对应于作者提出的一般形式的偏微分方程有如下关系:
    U t + N [ u ; λ ] = U t + λ 1 u u x − λ 2 u x x ,下标表示时间或空间的偏导数。 U_{t}+N[u;\lambda] = U_{t}+\lambda_1 u u_x - \lambda_2 u_{xx} ,下标表示时间或空间的偏导数。 Ut+N[u;λ]=Ut+λ1uuxλ2uxx,下标表示时间或空间的偏导数。
    当 λ 1 = 1 和 λ 2 = ν 时, U t + N [ μ , λ ] = 0 就变回了标准的一维 B u r g e r s 方程。 当 λ _1 =1 和 λ _2=ν 时,U_{t}+\mathcal{N}[\mu, \lambda]=0就变回了标准的一维Burgers方程。 λ1=1λ2=ν时,Ut+N[μ,λ]=0就变回了标准的一维Burgers方程。

对于测量出系统的噪声值,作者对此提出了两个问题。

  1. 第一个问题是偏微分方程的数据驱动解法
    即正问题:方程和定解条件均已知是求解模型,除初始/边界外,解u未知,目的是求解模型
  2. 第二个问题是偏微分方程的数据驱动发现
    即反问题:方程或定解条件中存有目的是确定模型未知因素,通常有内点处u的信息,目的是确定模型

3.偏微分方程的数据驱动解

3.1 连续时间模型

作者通过上面提到的一般形式的偏微分方程,并通过例子来解释方程的适用性

u t + N [ u ] = 0 , x ∈ Ω , t ∈ [ 0 , T ] u_{t}+\mathcal{N}[u]=0, x \in \Omega, t \in[0, T] ut+N[u]=0,xΩ,t[0,T]

然后作者定义f(t, x)(一般叫做残差项) 建立了一个等式为: f : = u t + N [ u ] f:=u_{t}+\mathcal{N}[u] f:=ut+N[u]
深度神经网络逼近u(t, x)这个假设与方程f(t,x)一起得到了一个物理信息神经网络
该网络可以通过使用自动微分(反向传播)对函数组成进行微分的链式法则推导出来,其参数与表示u(t, x)的网络相同。
尽管由于微分算子n的作用而具有不同的激活函数,但神经网络u(t, x)和f(t, x)之间的共享参数可以通过最小化均方误差损失来学习

作者给出了其损失函数的方程,可以看到作者将其将算是函数分为了两部分:

  1. 计算真实值与网络预测值的误差项MESu(对应于初始数据和边界数据)
  2. 计算预测值与物理规律的误差项MESf(在有限的一组搭配点所施加的结构)
     Loss  = M S E u + M S E f = 1 N u ∑ i = 1 N u ∣ u ^ ( t u i , x u i ) − u i ∣ 2 + 1 N f ∑ i = 1 N f ∣ f ( t f i , x f i ) ∣ 2 \color{red} \text { Loss }={M S E_{u}+M S E_{f}}=\frac{1}{N_{u}} \sum_{i=1}^{N_{u}}\left|\hat{u}\left(t_{u}^{i}, \mathbf{x}_{u}^{i}\right)-u^{i}\right|^{2}+\frac{1}{N_{f}} \sum_{i=1}^{N_{f}}\left|f\left(t_{f}^{i}, \mathbf{x}_{f}^{i}\right)\right|^{2}  Loss =MSEu+MSEf=Nu1i=1Nu u^(tui,xui)ui 2+Nf1i=1Nf f(tfi,xfi) 2
    在这里插入图片描述
    其中参数的含义解释如下:
    { t u i , x u i , u i } i = 1 N u \left\{t_{u}^{i}, x_{u}^{i}, u^{i}\right\}_{i=1}^{N_{u}} {tui,xui,ui}i=1Nu表示初始和边界训练数据。
    在这里插入图片描述
    ( t f i , x f i ) (t_{f}^{i}, \mathbf{x}_{f}^{i}) (tfi,xfi)表示的是用于强制执行物理规律的配置点。
    在这里插入图片描述
    配置点是什么?
    如论文中所提到的, ( t f i , x f i ) (t_{f}^{i}, \mathbf{x}_{f}^{i}) (tfi,xfi)被称为配置点。一开始看到配置点这个概念,我十分的困惑,于是便去探究这个概念是什么?
    配置点:配置点是指那些网络需要在这些点上进行预测的特定时间和空间位置,用于确保网络的预测在这些点上满足物理方程,而不是基于实际观测数据。
    简单来说,就是在变量定义域内(如x∈[-1,1],t∈[0,Π/2]),我们就需要在定义域内采样变量,作为配置点。
    配置点的采样也是需要具体问题进行具体分析,比如一些问题中,某些点(如:边界条件上的点)的影响比较大,我们就需要对这些点进行采样作为配置点,来验证.

从论文给出的损失函数中有这么一项: 1 N f ∑ i = 1 N f ∣ f ( t f i , x f i ) ∣ 2 \frac{1}{N_{f}} \sum_{i=1}^{N_{f}}\left|f\left(t_{f}^{i}, \mathbf{x}_{f}^{i}\right)\right|^{2} Nf1i=1Nf f(tfi,xfi) 2,其被称为残差项,这也是PINN的核心所在,残差项要尽可能的趋于0。
其解释如下:
在这里插入图片描述
补充拓展:
什么是初始条件和边界条件?
刚刚在Loss function中,提到了MSEu中的数据是表示初始和边界训练数据,那到底初始和边界的概念是什么呢?
在这里插入图片描述
初始条件和边界条件提供了问题约束,使得DNN的预测结果不仅满足物理方程,而且符合问题的实际情况。如果没有初始条件和边界条件,PDE的解将不唯一,网络的预测也将失去意义。

复习:
说到残差项,我想起了之前学习深度学习时候,提到的一个残差结构(其用于防止梯度爆炸和梯度消失),我就想这两个概念是不是有联系,但其实它们之间是属于两个概念,区别如下:
在这里插入图片描述

3.1.1 Example:Schrödinger方程(薛定谔方程)

作者通过利用Schrödinger方程(薛定谔方程)例子,来突出作者方法处理周期边界条件、复值解以及控制偏微分方程中不同类型非线性的能力。

非线性薛定谔方程是一个经典的场方程,用于研究量子力学系统
其包括光纤和/或波导中的非线性波传播、玻色-爱因斯坦凝聚态和等离子体波。
在光学中,非线性项来自于给定材料的折射率对强度的依赖。
对于玻色-爱因斯坦凝聚态,非线性项是相互作用的N体系统的平均场相互作用的结果。

1. Schrödinger方程(薛定谔方程)方程,初始条件、边界条件如下:
i h t + 0.5 h x x + ∣ h ∣ 2 h = 0 , x ∈ [ − 5 , 5 ] , t ∈ [ 0 , π / 2 ] , 其中 h ( t , x ) 是复值解。 周期性边界条件为: h ( 0 , x ) = 2 sech ⁡ ( x ) , h ( t , − 5 ) = h ( t , 5 ) , h x ( t , − 5 ) = h x ( t , 5 ) , \begin {array}{l}i h_{t}+0.5 h_{x x}+|h|^{2} h=0, \quad x \in[-5,5], \quad t \in[0, \pi / 2],其中 h(t,x) 是复值解。 \\周期性边界条件为: \\h(0, x)=2 \operatorname{sech}(x), \\h(t,-5)=h(t, 5), \\h_{x}(t,-5)=h_{x}(t, 5), \end{array} iht+0.5hxx+h2h=0,x[5,5],t[0,π/2],其中h(t,x)是复值解。周期性边界条件为:h(0,x)=2sech(x),h(t,5)=h(t,5),hx(t,5)=hx(t,5),
补充:什么是复值解?
在这里插入图片描述
2. 作者将残差项定义 f ( t , x ) f(t, x) f(t,x)为:
f : = i ℏ ∂ h ∂ t + 0.5 ∂ 2 h ∂ x 2 + ∣ h ∣ 2 h f := i\hbar \frac{\partial h}{\partial t} + 0.5 \frac{\partial^2 h}{\partial x^2} + |h|^2 h f:=ith+0.5x22h+h2h
作者在 h(t, x)上放置一个复值神经网络先验。如果 u 表示 h 的实部,v 表示虚部,那么在 h ( t , x ) = [ u ( t , x ) v ( t , x ) ] h(t, x) =[u(t, x) \quad v(t, x)] h(t,x)=[u(t,x)v(t,x)] 上放置一个多输出神经网络先验。
(由于复值解h(t,x) 被分解为实部和虚部,作者设计了一个神经网络,它有两个输出:一个用于实部 u(t,x),另一个用于虚部 v(t,x)。这种网络被称为多输出神经网络。)

3. 作者将损失函数定义如下:
M S E = M S E 0 + M S E b + M S E f M S E 0 是初始数据的损失 ; M S E b 强制执行周期性边界条件的损失 M S E f 网络预测值中采样配置点在薛定谔方程的损失 M S E 0 = 1 N 0 ∑ i = 1 N 0 ∣ h ( 0 , x 0 i ) − h 0 i ∣ 2 , M S E b = 1 N b ∑ i = 1 N b ( ∣ h i ( t b i , − 5 ) − h i ( t b i , 5 ) ∣ 2 + ∣ h x i ( t b i , − 5 ) − h x i ( t b i , 5 ) ∣ 2 ) , M S E f = 1 N f ∑ i = 1 N f ∣ f ( t f i , x f i ) ∣ 2 MSE=MSE_{0}+MSE_{b}+MSE_{f} \\ MSE_0 是初始数据的损失; \\ MSE_b强制执行周期性边界条件的损失 \\ MSE_f网络预测值中采样配置点在薛定谔方程的损失 \\ \begin{array} {l}MSE_{0}=\frac{1}{N_{0}} \sum_{i=1}^{N_{0}}\left|h\left(0, x_{0}^{i}\right)-h_{0}^{i}\right|^{2}, \\ MSE_{b}=\frac{1}{N_{b}} \sum_{i=1}^{N_{b}}\left(\left|h^{i}\left(t_{b}^{i},-5\right)-h^{i}\left(t_{b}^{i}, 5\right)\right|^{2}+\left|h_{x}^{i}\left(t_{b}^{i},-5\right)-h_{x}^{i}\left(t_{b}^{i}, 5\right)\right|^{2}\right), \\ MSE_{f}=\frac{1}{N_{f}} \sum_{i=1}^{N_{f}}\left|f\left(t_{f}^{i}, x_{f}^{i}\right)\right|^{2} \end{array} MSE=MSE0+MSEb+MSEfMSE0是初始数据的损失;MSEb强制执行周期性边界条件的损失MSEf网络预测值中采样配置点在薛定谔方程的损失MSE0=N01i=1N0 h(0,x0i)h0i 2,MSEb=Nb1i=1Nb( hi(tbi,5)hi(tbi,5) 2+ hxi(tbi,5)hxi(tbi,5) 2),MSEf=Nf1i=1Nf f(tfi,xfi) 2

  1. 为了验证PINN方法的精度,作者使用传统的谱方法模拟了薛定谔方程,创建了一个高分辨率的数据集。
    作者从初始状态 h ( 0 , x ) = 2 sech ( x ) h(0, x) = 2 \text{sech}(x) h(0,x)=2sech(x)开始,假设周期性边界条件 h ( t , − 5 ) = h ( t , 5 ) h(t, -5) = h(t, 5) h(t,5)=h(t,5) h x ( t , − 5 ) = h x ( t , 5 ) h_x(t, -5) = h_x(t, 5) hx(t,5)=hx(t,5),使用Chebfun软件包,通过256模式的谱傅里叶离散化和Fourth-order explicit Runge–Kutta temporal integrator‌,时间步长为 Δ t = π / 2 × 1 0 − 6 \Delta t = \pi/2 \times 10^{-6} Δt=π/2×106,积分到最终时间 t = π / 2 t = \pi/2 t=π/2

     离散傅里叶变换(Discrete Fourier Transform,DFT)傅里叶分析方法是信号分析的最基本方法
     傅里叶变换是傅里叶分析的核心,通过它把信号从时间域变换到频率域,进而研究信号的频谱结构和变化规律。
     
     Fourth-order explicit Runge–Kutta temporal integrator‌是一种常用的数值方法
     用于求解常微分方程(ODEs)的近似解。该方法通过迭代计算来逼近真实解,具有较高的精度和较好的稳定性。
    

在数据的设置方面,作者所观察到的都是 { x 0 i , h 0 i } i = 1 N 0 \{x_0^i, h_0^i\}_{i=1}^{N_0} {x0i,h0i}i=1N0在时间t = 0时潜在函数h(t, x)的测量值。在配置点采样中,作者设置 N f = 20 , 000 N_f =20,000 Nf=20,000 个随机采样的配置点用于在解的域内强制执行方程: f : = i ℏ ∂ h ∂ t + 0.5 ∂ 2 h ∂ x 2 + ∣ h ∣ 2 h f := i\hbar \frac{\partial h}{\partial t} + 0.5 \frac{\partial^2 h}{\partial x^2} + |h|^2 h f:=ith+0.5x22h+h2h

这些点是通过空间填充拉丁超立方抽样策略生成的,这是一种确保采样点在空间中均匀分布的方法

‌拉丁超立方抽样(Latin Hypercube Sampling,简称LHS)
是一种从多元参数分布中近似随机抽样的方法,属于分层抽样技术‌。

在数据集的设置中,训练集由 N 0 = 50 N_0=50 N0=50 个从高分辨率数据集中随机抽取的数据点和 N b = 50 N_b=50 Nb=50 个用于强制执行周期性边界条件的配置点组成。

在神经网络结构上,作者使用一个5层深的神经网络,每层有100个神经元,激活函数为双曲正切函数,来联合表示潜在函数 h ( t , x ) = [ u ( t , x )   v ( t , x ) ] h(t, x) = [u(t, x) \ v(t, x)] h(t,x)=[u(t,x) v(t,x)]

实验结果解读如下:

  1. 图中的颜色代表了函数 ∣h(t,x)∣ 的幅度,颜色条(color bar)显示了幅度值的范围,从0.5到3.5。颜色从浅黄色到深蓝色,表示幅度从小到大。
  2. 横轴表示空间空间x的范围,从-5到5。
  3. 纵轴表示时间时间t的范围,从0到1.4。
  4. 图中的黑色叉号×表示用于训练物理信息神经网络(PINN)的150个数据点。
    这些数据点是初始状态 h(0,x) 的测量值。
  5. 图中的虚线可能表示了特定的时间点,这些时间点可能是用于评估或比较预测解与精确解的时间点。

图中的颜色变化显示了PINN预测的薛定谔方程解随时间和空间的演变。
从图中可以看出,预测的解在 x=0 附近有一个明显的幅度变化,这是薛定谔方程的波函数在该区域的干涉或相位变化。且波形在 x 轴中心附近较为集中,随着时间的推移,波形可能会发生扩散或干涉现象,这是量子力学中波函数的典型行为。
在这里插入图片描述
此外,作者给出了不同时刻t = 0.59, 0.79, 0.98的精确解和预测解之间的比较。仅使用少量初始数据,物理信息的神经网络就可以准确地捕获Schrödinger方程的复杂非线性行为。
在这里插入图片描述

作者随后提出了PINN可能会遇到的问题即,处理高维问题中可能会有点吃力,虽然这对一个或两个空间维度的问题没有造成重大问题,但它可能会在高维问题中引入严重的瓶颈,因为全局执行物理通知约束**(即,在我们的情况下是偏微分方程)所需的搭配点总数将呈指数增长。)**
此外,我还去搜索了一下PINN解PDE会遇到的困难:

3.2 离散型时间模型

此外,作者还针对离散型数据提出了一般形式的模型:
在这里插入图片描述
在离散型的时间模型中作者使用了Runge-Kutta方法

Runge-Kutta方法:是一种用于求解常微分方程的数值方法
它通过在每个时间步长内进行多个中间步骤(或阶段)来提高求解的精度。
作者提到的是具有 q 阶的一般形式的Runge-Kutta方法。

u n + c i = u n − Δ t ∑ j = 1 q a i j N [ u n + c j ] , i = 1 , … , q u n + 1 = u n − Δ t ∑ j = 1 q b j N [ u n + c j ] \begin{array}{l}u^{n+c_i} = u^n - \Delta t \sum_{j=1}^{q} a_{ij} \mathcal{N}[u^{n+c_j}], \quad i = 1, \ldots, q \\ u^{n+1} = u^n - \Delta t \sum_{j=1}^{q} b_j \mathcal{N}[u^{n+c_j}] \end{array} un+ci=unΔtj=1qaijN[un+cj],i=1,,qun+1=unΔtj=1qbjN[un+cj]
这是作者提出Runge-Kutta方法的一般形式,其用于数值求解常微分方程。
其中 u n u^n un 表示在时间步 n n n 的解, Δ t \Delta t Δt 是时间步长, q q q 是阶段数, a i j a_{ij} aij b j b_j bj 是方法的权重系数, N \mathcal{N} N 表示微分方程的非线性部分。

其可以等价的表示为: u n = u i n , i = 1 , … , q , u n = u q + 1 n \begin{array}{l}u^{n}=u_{i}^{n}, \quad i=1, \ldots, q, \\u^{n}=u_{q+1}^{n}\end{array} un=uin,i=1,,q,un=uq+1n

作者说明了在Runge-Kutta方法中,当前时间步的解 u n u^n un 可以由前一个时间步的解 u n + c j u^{n+c_j} un+cj通过加权和的方式计算得出。
其中 u i n : = u n + c i + Δ t ∑ j = 1 q a i j N [ u n + c j ] , i = 1 , … , q , u q + 1 n : = u n + 1 + Δ t ∑ j = 1 q b j N [ u n + c j ] . \begin{array}{l}u_{i}^{n}:=u^{n+c_{i}}+\Delta t \sum_{j=1}^{q} a_{i j} \mathcal{N}\left[u^{n+c_{j}}\right], \quad i=1, \ldots, q, \\u_{q+1}^{n}:=u^{n+1}+\Delta t \sum_{j=1}^{q} b_{j} \mathcal{N}\left[u^{n+c_{j}}\right] .\end{array} uin:=un+ci+Δtj=1qaijN[un+cj],i=1,,q,uq+1n:=un+1+Δtj=1qbjN[un+cj].

然后作者使用一个多输出神经网络来预测 u n + c 1 ( x ) u^{n+c_1}(x) un+c1(x) u n + 1 ( x ) u^{n+1}(x) un+1(x) 的值,又通过将神经网络的预测结果与方程 u i n : = u n + c i + Δ t ∑ j = 1 q a i j N [ u n + c j ] , i = 1 , … , q u q + 1 n : = u n + 1 + Δ t ∑ j = 1 q b j N [ u n + c j ] . \begin{array}{l}u_{i}^{n}:=u^{n+c_{i}}+\Delta t \sum_{j=1}^{q} a_{i j} \mathcal{N}\left[u^{n+c_{j}}\right], \quad i=1, \ldots, q\\u_{q+1}^{n}:=u^{n+1}+\Delta t \sum_{j=1}^{q} b_{j} \mathcal{N}\left[u^{n+c_{j}}\right] .\end{array} uin:=un+ci+Δtj=1qaijN[un+cj],i=1,,quq+1n:=un+1+Δtj=1qbjN[un+cj].结合,得到一个物理信息神经网络,这个网络以变量 x x x 作为输入,并输出 u 1 n ( x ) u_1^n(x) u1n(x) u q + 1 n ( x ) u_{q+1}^n(x) uq+1n(x)

3.2.1 Example:Allen-Cahn方程

作者通过引用Allen-Cahn方程,强调提出的离散时间模型处理控制偏微分方程中不同类型非线性的能力。Allen-Cahn方程是一个在反应扩散系统中描述多组分合金系统中相分离过程的偏微分方程。用于描述相分离过程,包括有序-无序转变。方程如下:
u t − 0.0001 u x x + 5 u 3 − 5 u = 0 , x ∈ [ − 1 , 1 ] , t ∈ [ 0 , 1 ] u_t - 0.0001 u_{xx} + 5u^3 - 5u = 0, \quad x \in [-1, 1], \quad t \in [0, 1] ut0.0001uxx+5u35u=0,x[1,1],t[0,1]

初始条件为: u ( 0 , x ) = x 2 cos ⁡ ( π x ) u(0, x) = x^2 \cos(\pi x) u(0,x)=x2cos(πx)
周期性边界条件为: u ( t , − 1 ) = u ( t , 1 ) u x ( t , − 1 ) = u x ( t , 1 ) \begin{array}{l}u(t,-1)=u(t, 1) \\u_{x}(t,-1)=u_{x}(t, 1)\end{array} u(t,1)=u(t,1)ux(t,1)=ux(t,1)

在网络模型的设计中,作者使用了一个具有4个隐藏层和每层200个神经元的离散时间物理信息神经网络。网络的输出层预测了101个作者感兴趣的量,对应于100个Runge-Kutta阶段 u n + c i ( x ) u^{n+c_i}(x) un+ci(x)和最终时间的解 u n + 1 ( x ) u^{n+1}(x) un+1(x)

实验结果如下:
从 $ = 0.1$的平滑初始数据开始,可以在单步时间步长内预测 t = 0.9 t = 0.9 t=0.9 的几乎不连续解,相对 L 2 L_2 L2误差为 6.99 × 1 0 − 3 6.99 \times 10^{-3} 6.99×103
在这里插入图片描述
在这里插入图片描述
作者表示通过使用PINN和Runge-Kutta方法,可以在保持稳定性和高预测精度的同时,使用大时间步长来解决复杂的时空问题。

总结

在本周的周报中,我精读了一篇关于物理信息神经网络(PINNs)的经典文献,文献讲述了PINN在求解正反问题中涉及非线性偏微分方程(PDEs)的应用。PINNs作为一种特殊的深度学习框架优势在于,即使在数据稀缺的情况下,也能通过物理规律配合少量训练数据训练出高精度的预测模型,从而避免了传统深度神经网络在数据不足时容易发生的过拟合现象和缺乏鲁棒性的问题。
文献中提出的PINNs核心思想是在损失函数中加入物理规律的残差项,通过自动微分和反向传播技术不断优化模型,使得网络预测的值既准确又符合物理规律。这种方法将物理定律和约束整合到神经网络训练过程中,使得神经网络的预测不仅依赖于数据,还受到物理规律的约束,从而提高了模型的预测精准度和鲁棒性。作者通过一系列经典问题验证了PINNs框架的有效性,并提出了两种算法(连续型和离散型)来解决数据驱动的PDEs求解和发现问题,每种算法都有其特定的应用场景和优势。同时作者也在各种例子中,展示了如何构建通过初始条件、周期性边界条件、物理方程来构建PINN的loss function,特别是在Schrödinger方程和Allen-Cahn方程的应用中,PINN展现了求解方程解u的能力。
这一周大致把PINN的正问题弄懂了,主要物理基础比较薄弱,看公式的时候需要不断地进行课外学习科普,下一周计划继续阅读文献把文献的如何确认模型的部分(PINN求反问题)弄懂的然后再对实验的内容进行复现,理解论文中PINN的代码部分,从而更深入的理解PINN。之后打算结合水文方向的论文一起看,学习一下PINN在水文方面的预测应用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

米思奇图形化编程之ESP32控制LED灯闪烁方案实现

目录 一、项目概述 二、硬件准备 三、硬件连接 四、软件编程 五、验证效果 六、总结 一、项目概述 本项目使用米思奇图形化编程环境,编写micropython软件代码,实现了控制ESP32开发板上LED灯闪烁效果。该项目可为后续更复杂的物联网项目打下基础。…

完全离线使用,效率直接拉满

现在越来越多的人使用OCR软件来提高自己的工作效率,今天给大家推荐一款电脑端的文字识别工具,对比以往的软件来说,功能更加丰富全面。 Umi-OCR 美术、舞蹈、音乐 打开软件之后需要安装一下。 软件主要有截图OCR识别、批量OCR识别、批量文档识…

CSDN外链失效3:

参考我之前的博客: 外链失效博客1:随想笔记1:CSDN写博客经常崩溃,遇到外链图片转存失败怎么办_csdn外链图片转存失败-CSDN博客 外链失效博客2:网络随想2:转语雀_md格式转语雀lake格式-CSDN博客 markdown…

Java 中的字符串

目录 Java 中的字符串字符串的创建字符串的比较字符串的拼接如何定义一个空的字符串 Java 中的字符串 字符串的创建 在 Java 中,可以通过以下几种方式创建字符串: 1.使用字符串字面量: String str "Hello, World!";2.使用 new…

U盘结构损坏且无法访问:原因、恢复方案与预防措施

U盘结构损坏现象描述 U盘,这一小巧便捷的存储设备,在日常工作和学习中扮演着重要角色。然而,当U盘出现结构损坏且无法访问时,用户往往会陷入焦虑与困惑。具体表现为,将U盘插入电脑后,系统无法识别U盘&…

basic_ios及其衍生库(附 GCC libstdc++源代码)

basic_ios及其衍生库(附 GCC libstdc源代码) 我们由这张图展开我们的讨论 对于Date对象&#xff0c;只有实现了<<重载到输出流才可以插入到stringstream ss中 现在我有疑问stringstream是怎么做到既能输出又能输入的&#xff1f; 而且为什么stringstream对象能传给ostre…

【开源库 | minizip】Linux(Ubuntu18.04)下,minizip的编译、交叉编译

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a; 2024-12-20 …

Gin-vue-admin(1):环境配置和安装

目录 环境配置如果443网络连接问题&#xff0c;需要添加代理服务器 后端运行前端运行 环境配置 git clone https://gitcode.com/gh_mirrors/gi/gin-vue-admin.git到server文件目录下 go mod tidygo mod tidy 是 Go 语言模块系统中的一个命令&#xff0c;用于维护 go.mod 文件…

java: 无效的目标发行版: xx

java: 无效的目标发行版: xx 背景java: 无效的目标发行版: xx 在 Intellij 的修复 背景 这里单独针对Intellij开发工具对 “java: 无效的目标发行版: xx”错误的修复。 java: 无效的目标发行版: xx 在 Intellij 的修复 同一台电脑使用多个JDK的时候容易出现在运行程序时容易…

vscode+编程AI配置、使用说明

文章目录 [toc]1、概述2、github copilot2.1 配置2.2 使用文档2.3 使用说明 3、文心快码&#xff08;Baidu Comate&#xff09;3.1 配置3.2 使用文档3.3 使用说明 4、豆包&#xff08;MarsCode&#xff09;4.1 配置4.2 使用文档4.3 使用说明 5、通义灵码&#xff08;TONGYI Lin…

leetcode-80.删除有序数组的重复项II-day12

总结&#xff1a;不必过于死磕一道题目&#xff0c;二十分钟没做出来就可参考题解

Docker 入门:如何使用 Docker 容器化 AI 项目(一)

引言 在人工智能&#xff08;AI&#xff09;项目的开发和部署过程中&#xff0c;环境配置和依赖管理往往是开发者遇到的挑战之一。开发者通常需要在不同的机器上运行同样的代码&#xff0c;确保每个人使用的环境一致&#xff0c;才能避免 “在我的机器上可以运行”的尴尬问题。…

EdgeX Core Service 核心服务之 Core Command 命令

EdgeX Core Service 核心服务之 Core Command 命令 一、概述 Core-command(通常称为命令和控制微服务)可以代表以下角色向设备和传感器发出命令或动作: EdgeX Foundry中的其他微服务(例如,本地边缘分析或规则引擎微服务)EdgeX Foundry与同一系统上可能存在的其他应用程序…

Keil5 STM32库函数的工程

库函数来间接的操作寄存器 条件编译&#xff0c;如果你定义了USE_STDPERIPH_DRIVER &#xff08;使用标准外设驱动&#xff09;这个字符串&#xff0c;stm32f10x_conf.h才有效

Vue2五、自定义指令,全局局部注册、指令的值 ,插槽--默认插槽,具名插槽 ( 作用域插槽)

一、自定义指令 使用步骤 1. 注册 (全局注册 或 局部注册) &#xff0c;在 inserted 钩子函数中&#xff0c;配置指令dom逻辑 2. 标签上 v-指令名 使用 1、自定义指令&#xff08;全局&#xff09; Vue.directive("指令名"&#xff0c;{ 指令的配置项 insert…

Docker部署GitLab服务器

一、GitLab介绍 1.1 GitLab简介 GitLab 是一款基于 Git 的开源代码托管平台&#xff0c;集成了版本控制、代码审查、问题跟踪、持续集成与持续交付&#xff08;CI/CD&#xff09;等多种功能&#xff0c;旨在为团队提供一站式的项目管理解决方案。借助 GitLab&#xff0c;开发…

MySQL基础笔记(三)

在此特别感谢尚硅谷-康师傅的MySQL精品教程 获取更好的阅读体验请前往我的博客主站! 如果本文对你的学习有帮助&#xff0c;请多多点赞、评论、收藏&#xff0c;你们的反馈是我更新最大的动力&#xff01; 创建和管理表 1. 基础知识 1.1 一条数据存储的过程 存储数据是处理数…

使用qemu搭建armv7嵌入式开发环境

目录 目录 1 概述 2 环境准备 2.1 vexpress系列开发板介绍 2.2 安装工具 2.2.1 安装交叉工具链 2.2.2 安装qemu 2.2.3 安装其他工具 3 启动uboot 3.1 uboot下载与编译 3.1.1 下载 3.1.2 编译 3.2 使用qemu启动uboot 4 启动kernel 4.1 下载和编译kernel 4.1.1 下…

数据思维的哲学思考

引言 天地合而万物生&#xff0c;阴阳接而变化起。 《荀子礼论》 数据思维的哲学基础源于唯物主义哲学。在马克思的唯物主义思想中&#xff0c;世界是物质的&#xff0c;物质是运动的&#xff0c;运动是有规律的&#xff0c;规律是客观的。 数据思维的哲学基础就是&#xff…

Dijkstra(迪杰斯特拉)最短路径算法可视化演示

Dijkstra(迪杰斯特拉)算法&#xff0c;是一种解决带权图中单源最短路径的经典算法。它由荷兰计算机科学家 Edsger Dijkstra 于1956年提出。在现实生活中&#xff0c;这个算法被广泛应用于导航系统、网络路由等场景。 比如在地图导航中&#xff0c;城市可以看作图中的节点&…