PINN
# PINN
基于物理原理的神经网络,一种用于解决涉及非线性偏微分方程的正问题和逆问题的深度学习框架。
# 通用方程示例:
- “ 非线性 ” 意味着算子 𝒩 中可能包含
或其导数的高次项(如 , ),这使得方程比线性方程复杂得多,也更难求解。 - “ 参数
” 是方程中的关键物理常数。例如,在流体力学中,它可能代表粘度;在热传导中,它可能代表热扩散率。
# 论文要解决的两大问题
基于这个统一的PDE框架,论文明确提出了两个要解决的核心任务:
# 问题一:数据驱动的PDE求解(正问题)
“给定固定的模型参数
,关于系统的未知隐藏状态 我们能说什么?”
假设我们已经知道支配物理系统的精确方程(即我们知道算子 𝒩 的形式和参数
# 问题二:数据驱动的PDE发现(反问题)
“哪些参数
能最好地描述观测到的数据?”
假设我们观察到系统的大量数据,我们大致知道物理过程应该由哪类PDE描述(即我们知道算子
# 如何求解PDE?(问题1)
论文提出了两种算法模型解决这一问题。
# 连续时间模型
核心思想:不对方程进行任何离散化,而是直接用一个神经网络来逼近整个时空域上的未知解
# 1. 构建物理信息神经网络
首先,论文从待求解的PDE出发:
我们定义一个新的函数
对于一个精确解
现在用一个深度神经网络 来近似解函数
由于
关键点:
- 网络
和 共享相同的权重和偏置参数。 不是一个独立的网络,而是由 通过自动微分衍生而来的“物理信息”网络。 - 这就构成了一个物理信息神经网络,因为它内嵌了控制系统的物理定律。
# 2. 设计损失函数
如何训练这个共享参数的网络?通过定义一个特殊的损失函数来同时满足两个要求:拟合数据 和遵守物理。
损失函数由两部分组成:
a) 数据损失
这一项描述了网络预测值
时的初始温度分布。 - 在整个时间范围内,边界
和 处的固定温度。
它能确保网络的预测结果贴合我们已知的少量真实数据。
b) 物理损失
这项描述了在域内一系列配点 上,强制PDE残差
这一项充当了一个强大的物理正则化器。它告诉网络:“在这些没有数据的地方,你的预测也必须遵守PDE所描述的物理定律。”
# 离散时间模型
在论文3.1节的末尾提到,连续时间模型需要在整个计算域内选取大量的配置点(
# 1. 龙格库塔回顾
对于一个一般的偏微分方程
其中
论文将上述方程巧妙地重新排列,得到一组定义在相同时间点上的等式:
这个变换是关键。现在等式的左边都是初始状态
# 2. 构建物理信息神经网络
将一个q+1维输出网络的输出定义为所有中间状态和最终状态:
这个神经网络以空间坐标
物理信息神经网络:
将上面神经网络的输出代入变换后的龙格-库塔方程(即
这个网络就是"物理信息"的载体,因为它内嵌了离散化的物理定律(PDE)。
# 3. 设计损失函数
训练的目标是让物理信息神经网络的输出尽可能接近已知的初始数据
损失函数为:
其中
# 如何发现PDE?(问题2)
这节讲述如何用数据驱动发现偏微分方程,也提出了两种算法模型来解决这一问题,即连续时间模型和离散时间模型。
# 连续时间模型
这一节的核心思想是:我们不仅用一个神经网络去拟合观测数据,还用另一个衍生网络去直接表示控制物理系统的PDE本身。通过将PDE的残差作为损失函数的一部分,我们同时学习系统的状态和其背后的物理定律。
# 1. 构建物理信息神经网络
我们考虑一个参数化的非线性PDE,其一般形式为:
:系统的隐藏状态(我们只有它的部分噪声观测值)。 :一个由参数λ 参数化的非线性微分算子。λ
我们的目的是从对
首先构建第一个网络来近似隐藏的状态
其中W,b是网络的权重和偏置。
一开始不太理解什么是用网络来近似隐藏的方程,查阅后明白:一个足够大的神经网络可以以任意精度逼近任何连续函数,实际上,这个神经网络本身就是一个函数,我们把它训练成我们想要的隐藏的
接着构建第二个网络,即用来约束物理规律的网络,它利用了第一个网络构造出
注意,这里的算子形式论文里假设是已知的。即虽然不知道方程具体啥样,但是知道它大概属于什么类型,我们的目的是求方程里的参数λ。
于是就有两个共享参数的神经网络:
:预测物理场。 :强制执行物理定律λ
# 2. 设计损失函数
出发点是找到一组参数
其中
# 离散时间模型
这里和3.2节的离散时间模型很像,就多了一个要学习的参数λ,网络结构大同小异,不作赘述了。
# 1. 设计损失函数
这里先给出损失函数定义
为什么3.2节中的损失函数是
因为3.2节我们只有一个时间步的数据,但要预测整个时间演化。这是一个初值问题,需要边界条件来确保解的唯一性
在4.2节中,我们有两个时间步的完整数据。当知道系统在两个时间步的完整状态时,边界行为已经被数据唯一确定了。任何违反正确边界条件的解都会自动导致与
时刻数据的失配。