今天要整理的论文是《FEA-Net: A Deep Convolutional Neural Network With Physics
Prior For Efficient Data Driven PDE Learning》,还是一篇用深度学习求解pde的论文,但是和上次整理的论文《DeepXDE:a deep learning library for solving differential equations》中的方法截然不同
上次论文中求解pde的网络称为PINN,是一个全连接网络,纯粹基于数据的常规神经网络,根本没有考虑pde的物理含义
而本篇文章中求解pde的网络称为FEA-Net,是一个基于FEA方法的CNN网络,它把深度学习网络和pde数值求解器结合起来,在网络中并入了物理知识。
那么这篇论文是如何把物理知识并入神经网络的呢?以下从两个方面梳理:
(1)FEA中的矩阵向量相乘转化为卷积操作,从而构造出卷积核
(2)根据雅可比求解器(求解pde的一种数值方法)设计一个卷积神经网络
1.由FEA(有限元分析)中的公式推导卷积核
(1)FEA方法回顾:
使用FEA求解pde将得到一个线性方程组
(具体变换及含义参照…),f是系统外部的载荷矢量,x是系统响应,待求解,K是整体刚度矩阵,由单元刚度矩阵组装而成 C是取决于材料性质的本构矩阵,B是取决于单元形状和阶数的形状矩阵。如果是同一材料,所有单元的C相同;如果网格是均匀的即单元形状大小相同,所有单元的B也是相同;那么,所有单元的单元刚度矩阵相同。后面会根据这个性质把K简化为一个极简的卷积滤波器。
(2)转化为矩阵表示:
如果解域是矩形,且解域中的节点均匀分布,可以把载荷矢量 f f f和响应矢量 x x x看作图像,分别用 F F F、 X X X表示;假设解域划分为 n ∗ n n*n n∗n个单元,则 f f f、 x x x均是 n ∗ n n*n n∗n的矩阵
(3)构造卷积核
根据有限元的局部支撑性质,上图中红色的点
n
o
d
e
(
i
,
j
)
node(i,j)
node(i,j)只受其周围四个单元的影响,也就是说
F
F
F的像素值只受相邻的
X
X
X像素值的影响(根据公式
K
x
=
f
Kx=f
Kx=f),因此,这四个单元的单元刚度矩阵可以合并形成卷积核
首先根据上面的分析,响应和载荷之间的关系如下:
(其中单元刚度矩阵的下标暂时还没理解)
可得:
其中,
W
和
X
W和X
W和X中间的符号表示卷积操作,而
W
W
W可从上面公式推导出来((1)中假设各单元的单元刚度矩阵相同)
又
K
e
K^e
Ke是对称矩阵,所以
W
W
W可以写作如下:
其中的元素是有物理含义的,
W
s
i
d
e
1
Wside1
Wside1和
W
s
i
d
e
2
Wside2
Wside2表示侧节点上只有单元响应时所需的负载,
W
s
e
l
f
Wself
Wself表示节点本身只有单位响应时的负荷大小
(4)小结:
首先,重塑载荷矢量
f
f
f和响应矢量
x
x
x为载荷图像
F
F
F和响应图像
X
X
X
然后,大刚度矩阵
K
K
K被简化为一个极简卷积滤波器
W
W
W
那么,矩阵向量的乘积运算就转换成卷积运算
2.FEA-Net结构:把迭代求解器转换成CNN
(1)雅可比求解器
求解线性方程组
K
x
=
f
Kx=f
Kx=f的数值求解器很多,且大多都涉及对残差的迭代计算
这里用的是雅可比求解器(本方法对其他求解器也适用),它的迭代公式如下:
ω
\omega
ω 是个超参,这里设为2/3;
D
D
D和
R
R
R是
K
K
K的对角阵和非对角阵
(2)转换成CNN
(这个公式不是太明白,x是一个列向量,X是一个矩阵,P是标量)
R是除了该点本身之外的所有相邻点对该点的影响,它的等效卷积滤波器在中心为零,-R的等效卷积核如下:
则(1)的迭代公式可以转变成如下公式:
通过这个迭代公式可以构造如下CNN结构,该网络称为FEA-Net
g
g
g表示网络结构
(3)对于未知材料,给出一个载荷矢量求出一个系统响应
构建与(2)中相同的网络结构,通过给定的载荷和用于参考的响应最小化损失来得到最优的卷积核((2)中的卷积核由刚度矩阵推导出来的,因为已知材料;这里材料未知,无法求出刚度矩阵,只能训练网络找出最优的卷积核)
β
\beta
β是惩罚项,
E
、
μ
E、\mu
E、μ是已知范围的物理参数
和其它的网络相同,反向传播算法也可以应用于FEA-Net中
总结:
这篇论文难得的地方就在于把数值求解方法和深度神经网络结合了起来,把矩阵向量乘积转化为卷积操作这个步骤特别妙,最终得到的FEA-Net的求解效果很好,适用范围也广
但是,在看论文的过程中发现,它假设的前提很多(不清楚数值求解方法中是否也会有这些假设,也不清楚影响有多大);而且好像不适合计算非矩形区域的解,对于复杂的几何区域可能不好求解;另外,在求卷积核的过程中,需要人工求解刚度矩阵(不清楚刚度矩阵的求解难度如何),但是后面提出也是可以训练得到的,就可以节省这一步。